现代密码学4章节5IDEA算法讲课教案.pptVIP

  • 2
  • 0
  • 约4.22千字
  • 约 45页
  • 2020-04-10 发布于天津
  • 举报
分组密码: IDEA算法;本节主要内容; IDEA(International Data Encryption Algorithm)是瑞士的James Massey,Xuejia Lai等人提出的加密算法,在密码学中属于数据块加密算法(Block Cipher)类。 IDEA使用长度为128bit的密钥,数据块大小为64bit。从理论上讲,IDEA属于“强”加密算法,至今还没有出现对该算法的有效攻击算法。; 早在1990年,Xuejia Lai等人在EuroCrypt’90年会上提出了分组密码建议PES(Proposed Encryption Standard)。在EuroCrypt’91年会上, Xuejia Lai等人又提出了PES的修正版IPES(Improved PES)。目前IPES已经商品化,并改名为IDEA。IDEA已由瑞士的Ascom公司注册专利,以商业目的使用IDEA算法必须向该公司申请许可。;异或运算( ) 整数模216加( + ) 整数模216+1乘( )(IDEA的S盒) 扩散由称为MA结构的算法基本构件提供。;实现上的考虑 使用子分组:16bit的子分组; 使用简单操作(易于加法、移位等操作实现) 加密解密过程类似; 规则的结构(便于VLSI实现)。;2. IDEA设计原理;例如 0000000000000000⊙1000000000000000 =1000000000000001 这是因为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 )  c; 3种运算结合起来使用可对算法的输入提供复杂的变换,从而使得对IDEA的密码分析比对仅使用异或运算的DES更为困难。 算法中扩散是由称为乘加(multiplication/addition, MA)结构(见图4.14)的基本单元实现的。 该结构的输入是两个16比特的子段和两个16比特的子密钥,输出也为两个16比特的子段。这一结构在算法中重复使用了8次,获得了非常有效的扩散效果。;IDEA算法的扩散主要是由乘加结构的基本单元实现的。; ; ;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轮的轮结构;Y1; 最后,变换的4个输出子段和MA结构的两个输出子段经过异或运算产生这一轮的4个输出子段。注意,由X2产生的输出子段和由X3产生的输出子段交换位置后形成W12和W13,目的在于进一步增加混淆效果,使得算法更易抵抗差分密码分析。;在每一轮中,执行的顺序如下: 1. X1和第一个子密钥相乘。 2. X2和第二个子密钥相加。 3. X3和第三个子密钥相加。 4. X4和第四个子密钥相乘。 5. 将第1步和第3步的结果相异或。 6. 将第2步和第4步的结果相异或。;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

文档评论(0)

1亿VIP精品文档

相关文档