⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 中国信息安全组织--pki与pmi技术--对称算法(一) des算法.htm

📁 技术说明,还有RSA算法、HASH算法、MD5、sha1RSA等的C源码.
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0059)http://www.infosecurity.org.cn/content/pki_pmi/DES_arit.htm -->
<HTML xmlns:o = "urn:schemas-microsoft-com:office:office"><HEAD><TITLE>中国信息安全组织--PKI与PMI技术--对称算法(一) DES算法</TITLE>
<SCRIPT language=JavaScript>function doZoom(size){ document.getElementById('zoom').style.fontSize=size+'px'}</SCRIPT>

<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1226" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId>
<STYLE type=text/css>.p13 {
	FONT-SIZE: 13px; FONT-FAMILY: "宋体"
}
.pd13 {
	FONT-WEIGHT: bold; FONT-SIZE: 13px; FONT-STYLE: normal; FONT-FAMILY: "宋体"; TEXT-DECORATION: underline
}
.p12 {
	FONT-SIZE: 12px; FONT-FAMILY: "宋体"
}
TABLE {
	FONT-SIZE: 12px; LINE-HEIGHT: 150%; FONT-FAMILY: "宋体"
}
.table1 {
	FONT-SIZE: 14px; LINE-HEIGHT: 110%; FONT-FAMILY: "宋体"
}
.tdb {
	BORDER-RIGHT: #feb154 1px solid; PADDING-RIGHT: 20px; BORDER-TOP: #feb154 1px solid; PADDING-LEFT: 20px; PADDING-BOTTOM: 0px; BORDER-LEFT: #feb154 1px solid; PADDING-TOP: 20px; BORDER-BOTTOM: #feb154 1px solid
}
.tdb2 {
	BORDER-RIGHT: #feb154 1px solid; BORDER-TOP: #feb154 1px solid; BORDER-LEFT: #feb154 1px solid; BORDER-BOTTOM: #feb154 1px solid
}
SELECT {
	FONT-SIZE: 12px; FONT-FAMILY: "宋体"
}
A {
	FONT-SIZE: 12px; COLOR: #000000; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
A:hover {
	FONT-SIZE: 12px; COLOR: #ed1254; FONT-FAMILY: "宋体"; TEXT-DECORATION: underline
}
A.head {
	FONT-SIZE: 12px; COLOR: #dddddd; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
A.head:hover {
	FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
A.product {
	FONT-SIZE: 12px; COLOR: #000000; FONT-FAMILY: "宋体"; TEXT-DECORATION: underline
}
A.product:hover {
	FONT-SIZE: 12px; COLOR: #ed1254; FONT-FAMILY: "宋体"; TEXT-DECORATION: underline
}
product.head {
	FONT-SIZE: 12px; COLOR: #dddddd; FONT-FAMILY: "宋体"; TEXT-DECORATION: underline
}
product.head:hover {
	FONT-SIZE: 12px; COLOR: #ffffff; FONT-FAMILY: "宋体"; TEXT-DECORATION: underline
}
.LI {
	FONT-SIZE: 12px; LINE-HEIGHT: 17px; FONT-FAMILY: 宋体,arial
}
.tdbord {
	BORDER-RIGHT: #feb154 1px solid; BORDER-TOP: black 0px solid; BORDER-LEFT: #feb154 1px solid; BORDER-BOTTOM: #feb154 0px solid
}
.tdb1 {
	BORDER-RIGHT: #feb154 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #feb154 1px solid; PADDING-LEFT: 20px; PADDING-BOTTOM: 0px; BORDER-LEFT: #feb154 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #feb154 1px solid
}
</STYLE>
</HEAD>
<BODY leftMargin=0 topMargin=0>
<TABLE cellSpacing=0 cellPadding=0 width=20 align=center border=0>
  <TBODY>
  <TR>
    <TD bgColor=#000066>
      <TABLE borderColor=#003399 height=194 cellSpacing=1 cellPadding=0 
      width=735 border=0>
        <TBODY>
        <TR>
          <TD bgColor=#6699ff height=20>
            <TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" 
            border=0>
              <TBODY>
              <TR>
                <TD vAlign=center align=middle width="18%" height=19><B><SPAN 
                  class=t14>查看文章</SPAN></B></TD>
                <TD width="82%" 
                background="中国信息安全组织--PKI与PMI技术--对称算法(一) DES算法.files/tabtitleline.jpg" 
                height=19>&nbsp;</TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD vAlign=top bgColor=#ffffff>
            <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TBODY>
              <TR>
                <TD vAlign=top align=middle height=408><BR>
                  <TABLE width="100%" border=0>
                    <TBODY>
                    <TR>
                      <TD align=middle height=40><B><FONT 
                        style="FONT-SIZE: 16px" color=#000033>标题</FONT></B><FONT 
                        color=#000033><B><FONT 
                        style="FONT-SIZE: 16px">:对称算法(一)DES算法<BR><BR></FONT></B><BR></FONT><FONT 
                        color=#999999><BR><FONT color=#000099>时间:<!--webbot                                bot="Timestamp" S-Type="EDITED"                                S-Format="%Y-%m-%d" startspan -->2004-07-17<!--webbot                                bot="Timestamp" endspan i-checksum="12449" --> 
                        </FONT></FONT><FONT class=f14 id=zoom><FONT 
                        color=#000066><IMG height=8 
                        src="中国信息安全组织--PKI与PMI技术--对称算法(一) DES算法.files/colorline.jpg" 
                        width=710></FONT></FONT></TD></TR>
                    <TR>
                      <TD align=right><FONT color=#000066>来源:中国信息安全组织 [原创] 
                        张荣华&nbsp;<BR>Email:webmaster@infosecurity.org.cn 
                        rainbow_zrh@sina.com<BR><BR><BR><BR></FONT></TD></TR></TBODY></TABLE>
                  <P align=left><IMG height=10 
                  src="中国信息安全组织--PKI与PMI技术--对称算法(一) DES算法.files/icon4.gif" 
                  width=10 border=0> <FONT color=#003399><B>1 
                  简介</B></FONT><BR>&nbsp; DES是Data Encryption 
                  Standard(数据加密标准)的缩写。它是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准,二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色[10]。<BR>&nbsp; 
                  DES是一个分组加密算法,他以64位为分组对数据加密。同时DES也是一个对称算法:加密和解密用的是同一个算法。它的密匙长度是56位(因为每个第8位都用作奇偶校验),密匙可以是任意的56位的数,而且可以任意时候改变。其中有极少量的数被认为是弱密匙,但是很容易避开他们。所以保密性依赖于密钥。<BR><B><FONT 
                  color=#003399><IMG height=10 
                  src="中国信息安全组织--PKI与PMI技术--对称算法(一) DES算法.files/icon4.gif" 
                  width=10 border=0> 2 算法框架[11]</FONT></B>:<BR>&nbsp; 
                  DES对64(bit)位的明文分组M进行操作,M经过一个初始置换IP置换成m0,将m0明文分成左半部分和右半部分m0=(L0,R0),各32位长。然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密匙结合。经过16轮后,左,右半部分合在一起经过一个末置换,这样就完成了[12]。<BR>&nbsp; 
                  在每一轮中,密匙位移位,然后再从密匙的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作替代成新的32位数据,在将其置换换一次。这四步运算构成了函数f。然后,通过另一个异或运算,函数f的输出与左半部分结合,其结果成为新的右半部分,原来的右半部分成为新的左半部分。将该操作重复16次,就实现了。具体图4所示。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; 
                  <IMG height=461 
                  src="中国信息安全组织--PKI与PMI技术--对称算法(一) DES算法.files/des_alg.jpg" 
                  width=527 
                  border=0><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  图4 DES算法框图<BR><BR><B><FONT color=#003399><IMG height=10 
                  src="中国信息安全组织--PKI与PMI技术--对称算法(一) DES算法.files/icon4.gif" 
                  width=10 border=0> 3 DES解密</FONT></B><BR>&nbsp; 
                  在经过所有的代替、置换、异或盒循环之后,你也许认为解密算法与加密算法完全不同。恰恰相反,经过精心选择的各种操作,获得了一个非常有用的性质:加密和解密使用相同的算法。<BR>DES加密和解密唯一的不同是密匙的次序相反。如果各轮加密密匙分别是K1,K2,K3….K16那么解密密匙就是K16,K15,K14…K1。<BR><B><FONT 
                  color=#003399><IMG height=10 
                  src="中国信息安全组织--PKI与PMI技术--对称算法(一) DES算法.files/icon4.gif" 
                  width=10 border=0> 4 DES的几种工作方式</FONT></B><BR>&nbsp; <FONT 
                  color=#cc3300>第一种电子密本方式(ECB)</FONT><BR>&nbsp;&nbsp; 
                  将明文分成n个64比特分组,如果明文长度不是64比特的倍数,则在明文末尾填充适当数目的规定符号。对明文组用给定的密钥分别进行加密,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。<BR>&nbsp; 
                  <FONT color=#cc3300>第二种密文分组链接方式(CBC)</FONT><BR>&nbsp;&nbsp; 
                  在CBC方式下,每个明文组xi在加密前与先一组密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式报内组重的缺点,但由于明文组加密前与一组密文有关,因此前一组密文的错误会传播到下一组。<BR>&nbsp; 
                  <FONT 
                  color=#cc3300>第三种密文反馈方式(CFB),可用于序列密码</FONT><BR>&nbsp;&nbsp; 
                  明文X=(x0,x1,……,xn-1),其中xi由t个比特组成0&lt;t≤64。CFB实际上将DES作为一个密钥流发生器,在t比特密文的反馈下,每次输出t比特乱数对t比特明文进行加密。由于CFB是密文反馈,它对密文错误较敏感,t比特密文中只要有一个比特错误,就会导致连续数个t 
                  比特出错。<BR>&nbsp; <FONT 
                  color=#cc3300>第四种输出反馈方式(OFB),可用于序列密码</FONT><BR>&nbsp;&nbsp; 
                  与CFB唯一不同的是OFB是直接取DES输出的t个比特,而不是取密文的t个比特,其余都与CFB相同。但它取的是DES的输出,所以它克服了CFB的密文错误传播的缺点 

                  <TABLE cellPadding=5 width="100%" border=0>
                    <TBODY>
                    <TR>
                      <TD class=c><FONT class=f14 id=zoom>
                        <P class=MsoNormal 
                        style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 20pt; mso-line-height-rule: exactly" 
                        align=left><SPAN lang=EN-US 
                        style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"><o:p></SPAN></FONT><FONT 
                        color=#000099><B></o:p></B></FONT></P><FONT class=f14 
                        id=zoom>
                        <P class=MsoNormal 
                        style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 20pt; mso-line-height-rule: exactly" 
                        align=left><SPAN lang=EN-US 
                        style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体"><o:p>&nbsp;</o:p> 
                        </SPAN></P></FONT></TD></TR>
                    <TR>
                      <TD align=right>【<A 
                        href="javascript:window.close()"><FONT 
                        color=#000066>关闭窗口</FONT></A>】</TD></TR></TBODY></TABLE>
                  <HR>

                  <P align=center><A 
                  href="http://www.infosecurity.org.cn/aboutus.html"><B>关于我们</B></A>| 
                  <A 
                  href="http://www.infosecurity.org.cn/zgjs.html"><B>征搞启示</B></A> 
                  | <A 
                  href="http://www.infosecurity.org.cn/rightdecl.html"><B>版权信息</B></A> 
                  | <A 
                  href="http://www.infosecurity.org.cn/contactus.html"><B>联系我们</B></A> 

                  <CENTER><FONT color=#0480fb>版本所有:中国信息安全组织 <SPAN class=t-w2>&copy; 
                  2003-2004</SPAN></FONT></CENTER></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -