现代密码学第4章5:IDEA算法.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分组密码: IDEA算法 本节主要内容 1、IDEA基本概念 2、IDEA设计原理 3、IDEA加密过程 4、IDEA解密过程 1. IDEA基本概念IDEA(International Data Encryption Algorithm)是瑞士的James Massey,Xuejia Lai等人提出的加密算法,在密码学中属于数据块加密算法(Block Cipher)类。IDEA使用长度为128bit的密钥,数据块大小为64bit。从理论上讲,IDEA属于“强”加密算法,至今还没有出现对该算法的有效攻击算法。 IDEA基本概念早在1990年,Xuejia Lai等人在EuroCrypt’90年会上提出了分组密码建议PES(Proposed Encryption Standard)。在EuroCrypt’91年会上, Xuejia Lai等人又提出了PES的修正版IPES(Improved PES)。目前IPES已经商品化,并改名为IDEA。IDEA已由瑞士的Ascom公司注册专利,以商业目的使用IDEA算法必须向该公司申请许可。 IDEA基本概念IDEA是一个分组长度为64位的分组密码算法,密钥长度为128位(抗强力攻击能力比DES强),同一算法既可加密也可解密。IDEA能抗差分分析和相关分析;IDEA似乎没有DES意义下的弱密钥;IDEA的“混淆”和“扩散”设计原则来自三种运算,它们易于软、硬件实现(加密速度快) IDEA运算 异或运算() 整数模216加( + ) 整数模216+1乘()(IDEA的S盒) 扩散由称为MA结构的算法基本构件提供。 IDEA运算 实现上的考虑 使用子分组:16bit的子分组; 使用简单操作(易于加法、移位等操作实现) 加密解密过程类似; 规则的结构(便于VLSI实现)。 例如 0000000000000000⊙00000=00001 这是因为216×215 mod (216+1)=215+1。表3.6给出了操作数为2比特长时3种运算的运算表。在以下意义下,3种运算是不兼容的: ① 3种运算中任意两种都不满足分配律,例如 a + (b ⊙ c)≠(a + b ) ⊙ (a + c ) ② 3种运算中任意两种都不满足结合律,例如 a +(b  c)≠(a + b )  c3种运算结合起来使用可对算法的输入提供复杂的变换,从而使得对IDEA的密码分析比对仅使用异或运算的DES更为困难。 算法中扩散是由称为乘加(multiplication/addition, MA)结构(见图4.14)的基本单元实现的。该结构的输入是两个16比特的子段和两个16比特的子密钥,输出也为两个16比特的子段。这一结构在算法中重复使用了8次,获得了非常有效的扩散效果。3. IDEA加密过程加密过程(如图4.15所示)由连续的8轮迭代和一个输出变换组成,算法将64比特的明文分组分成4个16比特的子段,每轮迭代以4个16比特的子段作为输入,输出也为4个16比特的子段。最后的输出变换也产生4个16比特的子段,链接起来后形成64比特的密文分组。每轮迭代还需使用6个16比特的子密钥,最后的输出变换需使用4个16比特的子密钥,所以子密钥总数为52。图4.15的右半部分表示由初始的128比特密钥产生52个子密钥的子密钥产生器。图4.16是IDEA第1轮的结构示意图,以后各轮也都是这种结构,但所用的子密钥和轮输入不同。从结构图可见,IDEA不是传统的Feistel密码结构。每轮开始时有一个变换,该变换的输入是4个子段和4个子密钥,变换中的运算是两个乘法和两个加法,输出的4个子段经过异或运算形成了两个16比特的子段作为MA结构的输入。MA结构也有两个输入的子密钥,输出是两个16比特的子段。 IDEA第1轮的轮结构 IDEA加密过程最后,变换的4个输出子段和MA结构的两个输出子段经过异或运算产生这一轮的4个输出子段。注意,由X2产生的输出子段和由X3产生的输出子段交换位置后形成W12和W13,目的在于进一步增加混淆效果,使得算法更易抵抗差分密码分析。 7. 将第5步的结果与第五个子密钥相乘。 8. 将第6步和第7步的结果相加。 9. 将第8步的结果与第六个子密钥相乘。 10.将第7步和第9步的结果相加。 11.将第1步和第9步的结果相异或。 12.将第3步和第9步的结果相异或。 13.将第2步和第10步的结果相异或。 14.将第4步和第10步的结果相异或。算法的第9步是一个输出变换,如图4.17所示。它的结构和每一轮开始的变换结构一样,不同之处在于输出变换的第2个和第3个输入首先交换了位置,目的在于撤销第8轮输出中两个子段的交换。还需注意,第9步仅需4个子密钥,而前面8轮中每轮需要6个子密钥。 I

文档评论(0)

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

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

1亿VIP精品文档

相关文档