DES置换密码分析.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
置换密码 ( Permutation Cipher ) 1.置换密码又称为换位密码; 2.置换密码通过改变明文消息各元素的相对位置,但明文消息元素本身的取值或内容形式不变; 3.在前面的替代密码中,则可以认为是保持明文的符号顺序,但是将它们用其它符号来替代; 4.这种密码是把明文中各字符的位置次序重新排列来得到密文的一种密码体制。实现的方法多种多样。直接把明文顺序倒过来,然后排成固定长度的字母组作为密文就是一种最简单的置换密码。 DES概述 1.分组加密算法:明文和密文为64位分组长度 2.对称算法:加密和解密除密钥编排不同外,使用同一算法 3.密钥长度: 密钥:k=k1k2…k64 ki = 0,1 (i = 1,2,…64 ) (其中k8,k16,…,k64是奇偶校验位,起作用的仅为56位) 4.密钥可为任意的56位数,但存在弱密钥,容易避开 5.采用混乱和扩散的组合,每个组合先替代后置换,共16轮 6.只使用了标准的算术和逻辑运算,易于实现 DES的描述 1.DES利用56比特长度的密钥K 2.分组长度64比特,密文64比特 3.算法分三个阶段实现: 3.1.对明文X,通过一个固定的初始置换IP得到X0。 X0=IP(X)=L0R0 分为左右两部分 3.2.函数F的16次迭代:LiRi(1=i=16) Li=Ri-1, Ri=Li-1 ? F(Ri-1, Ki) 其中Ki是长为48位的子密钥。子密钥K1,K2,…,K16是作为密钥K(56位)的函数而计算出的。 3.3.对比特串R16L16使用逆置换IP-1得到密文Y。 Y=IP-1(R16L16) DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。   DES算法是这样工作的:如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。   通过定期在通信网络的源端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在金融交易网络的流行做法。 DES算法整体示意图 密钥K计算子密钥: 1.密钥K是长度为64的位串,56位参加子密钥编排。8位是奇偶校验位(为了检错),在密钥编排的计算中,不参加运算。 (1). 给定64位的密钥K,放弃奇偶校验位(8,16,…,64)并根据固定置换PC-1(来排列K中剩下的位。我们写 PC-1(K)=C0D0 其中C0由PC-1(K)的前28位组成;D0由后28位组成。 (2)对1=i=16,计算 Ci=LSi(Ci-1) Di=LSi(Di-1) LSi表示循环左移2或1个位置,取决于i的的值。i=1,2,9和16 时移1个位置,否则移2位置 2.Ki=PC-2(CiDi), PC-2为固定置 注:一共16轮,每一轮使用K生成的一个子密钥。可算出16个表,第i个表中的元素可对应上第i轮密钥使用K中第几比特!如: 第7轮的表7:K7取K中的比特情况: 轮密钥编排 DES中的子密钥的生成 3.DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,整个算法的主流程图如下: 其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则IP见下表: 4.即将输入的第58位换到第一位,第50位换到第2位,...,依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0 是右32位,例:设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:L0=D58D50...D8;R0=D57D49...D7。 5.经过16次迭代运算后。得到L16、R16,将此作为输入,进行逆置换IP-1 ,即得到密文输出。逆置换正好是初始置的逆运算,例如,第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如下表所示: 乘积变换 选择扩展运算E。将输入的32 bit Ri-1扩展成48 bit

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档