差分分析法解密DES算法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
差分分析法解密DES算法

* * 差分分析法解密DES算法 苏常友 差分分析法的基本思想是通过分析明文差分对相应密文差分影响来获得可能性最大的密钥 (差分分析法的基本思想在这里听不懂不理解不要紧,后面会详细介绍)。其实目前的现状是利用差分分析法对破译16轮DES还不是很现实(主要原因是普通计算机的处理能力有限,而理论上是绝对没问题的),但用它破译轮数较低的DES是很成功的。现实中应用的DES算法为了保证足够的安全性所以比较复杂,比如经过多轮的循环以及密钥的非线性移位。我今天要讲的只是差分分析法的基本原理及主要过程,为了方便大家理解所以我选择先虚构一个简单的3轮类DES算法(主要是把信息位及密钥简化了,把循环轮数减为3轮,以及省去了IP置换,因为IP置换及其逆置换是公开的,查表就可以)。 假设明文信息有12位并且表示为L0R0的形式(即平分 为左右两部分,分别表前6位和后6位),密钥K由9位组 成,第i个加密循环的密钥Ki是由密钥K中第i个位置起的8 位而得来(即密钥每次只向右移1位)。 第i个循环的输出定义如下: Li=Ri-1 和 Ri=Li-1⊕f(Ri-1,Ki) 算法加密过程的主要部分就是函数f(Ri-1,Ki),它输 入6位的Ri-1 和8位的Ki,产生一个6位的输出。 函数的第一个部分是扩展器,它输入6位而输出8位,如 下图: 1 2 3 4 5 6 1 2 4 3 4 3 5 6 图1:函数的扩展过程 比如011001扩展成 函数最主要的组件是S-盒,它是对用户公开的, 我们使用两个: 010 001 110 011 100 111 000 001 100 110 010 000 111 101 011 100 000 110 101 111 001 011 010 101 011 000 111 110 010 001 100 S1 S2 Si盒的输入有四位,第一位表示行:0代表第一行,1代表第二行。后三位表示列的二进制数:000 表示第一列,001表示第二列,以此类推。例如,S1的输入为1010,意味着输出就是S1的第二行第三列,即110。 密钥K由9位组成,第i个加密循环的密钥Ki是由密钥K中第i个位置起的8位而得来。例如,K=010011001,那么K4经过6位以后到达K的最末,最后两位从K的前面开始得到)。 概括一下函数f(Ri-1,Ki),就是输入Ri-1由6位组 成,使用扩展函数将它扩展成8位,然后与Ki异或产生另一个8位的结果,这个结果的前四位发送给S1,后四位给S2,每一个S盒输出3位,连接它们形成6位的数,进入下一轮的循环。我们可以把这个过程表示为下图: Ri-1 E(Ri-1) 4bits 4bits S1 S2 f(Ri-1,Ki) Ki ⊕ 图:函数f过程的描述 举例:Ri-1及Ki已知。 10011001100101 1100 1111 000 100 E 即假如输入是Li-1Ri-1=011100100110,并且 KiRi-1经过函数f后得到000100, 我们将它再与Li-1异或,将得到Ri=011000, 又由于Li=Ri-1,于是得到LiRi=100110011000, 该结果作为下一轮循环的输入。 熟悉前面讲的类DES算法后,现在开始讲解差分分 析法的原理。 面对一个三轮DES加密设备(S盒的内部工作过程已 知),我们希望通过分析若干对明文的输入以及它们的 输出而破译出密钥(明文攻击)。 我们初始设置一个明文为L1R1(用L0R0也可以,我 只是习惯从1开始),经过三轮循环加密后将得到输出 L4R4。根据DES算法,有 R2=L1 ⊕f(R1,K2) L3=R2=L1 ⊕f(R1,K2) R4=L3 ⊕f(R3,K4)=L1 ⊕ f(R1,K2) ⊕f(R3,K4) 假设我们再选择一个明文L*1R*1(其中R*1=R1),我 们将得到它的输出L*4R*4 。对于每一个i,设一个新参数 Ri’=Ri ⊕Ri*,Li’=Li⊕Ri

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档