《国际数据加密算法》PPT课件_第1页
《国际数据加密算法》PPT课件_第2页
《国际数据加密算法》PPT课件_第3页
《国际数据加密算法》PPT课件_第4页
《国际数据加密算法》PPT课件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国际数据加密算法(IDEA),目录,IDEA算法的产生,IDEA加密算法简介,IDEA设计原理,IDEA子密钥的产生,IDEA解密方法,IDEA算法的产生,国际数据加密算法(IDEA)是瑞士的著名学者提出的。它在1990年正式公布并在以后得到增强。这种算法不同于DES/3DES的结构,设计上采用后来成为Lai-Messay的结构,设计思想基于“相异代数群上的混合运算”。发展IDEA也是因为感到DES具有密钥太短等缺点。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。,与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。由于IDEA是在美国之外提出并发展起来的,避开了美国法律上对加密技术的诸多限制,因此,有关IDEA算法和实现技术的书籍都可以自由出版和交流,可极大地促进IDEA的发展和完善。但由于该算法出现的时间不长,针对它的攻击也还不多,还未经过较长时间的考验。因此,尚不能判断出它的优势和缺陷。,IDEA加密算法简介,IDEA(InternationalDataEncryptionAlgorithm)是瑞士的JamesMassey,XuejiaLai等人提出的加密算法,在密码学中属于数据块加密算法(BlockCipher)类。IDEA使用长度为128bit的密钥,数据块大小为64bit。从理论上讲,IDEA属于“强”加密算法,至今还没有出现对该算法的有效攻击算法。,IDEA是一种由8个相似圈(Round)和一个输出变换(OutputTransformation)组成的迭代算法。IDEA的每个圈都由三种函数:模(216+1)乘法、模216加法和按位XOR组成。在加密之前,IDEA通过密钥扩展(KeyExpansion)将128bit的密钥扩展为52Byte的加密密钥EK(EncryptionKey),然后由EK计算出解密密钥DK(DecryptionKey)。EK和DK分为8组半密钥,每组长度为6Byte,前8组密钥用于8圈加密,最后半组密钥(4Byte)用于输出变换。IDEA的加密过程和解密过程是一样的,只不过使用不同的密钥(加密时用EK,解密时用DK),密钥扩展的过程如下:1将128bit的密钥作为EK的前8byte;2将前8byte循环左移25bit,得到下一8byte,将这个过程循环7次;3在第7次循环时,取前4byte作为EK的最后4byte;4至此52byte的EK生成完毕。,IDEA设计原理,算法中明文和密文分组长度都是64比特,密钥长128比特。其设计原理可从强度和实现两方面考虑。1.密码强度算法的强度主要是通过有效的混淆和扩散特性而得以保证。,混淆是通过使用以下3种运算而获得,3种运算都有两个16比特的输入和一个16比特的输出:逐比特异或。模216(即65536)整数加法,表示为,其输入和输出作为16位无符号整数处理。模216+1(即65537)整数乘法,表示为,其输入、输出中除16位全为0作为216处理外,其余都作为16位无符号整数处理。例如00000000000000001000000000000000=1000000000000001这是因为216215mod(216+1)=(216+1)215-215=-215=215+1mod(216+1),算法中扩散是由称为乘加(MA)结构的基本单元实现的。该结构的输入是两个16比特的子段和两个16比特的子密钥,输出也为两个16比特的子段。,2.实现IDEA可方便地通过软件和硬件实现。软件实现采用16比特子段处理,可通过使用容易编程的加法、移位等运算实现算法的3种运算。硬件由于加、解密相似,差别仅为使用密钥的方式,因此可用同一器件实现。,实现上的考虑使用子分组:16bit的子分组;使用简单操作(易于加法、移位等操作实现)加密解密过程类似;规则的结构(便于VLSI实现),加密过程,图表示由初始的128比特密钥产生52个子密钥的子密钥产生器,加密过程由连续的8轮迭代和1个输出变换组成.每轮迭代以4个16比特的子段作为输入,输出也为4个16比特的子段,链接起来后形成64比特的密文分组。每轮需使用6个16比特的子密钥,输出变换需使用4个16比特的子密钥,所以子密钥总数为52。,每轮开始时有一个变换,该变换的输入是4个子段和4个子密钥,变换中的运算是两个乘法和两个加法,输出的4个子段经过异或运算形成了两个16比特的子段作为MA结构的输入。MA结构也有两个输入的子密钥,输出是两个16比特的子段。变换的4个输出子段和MA结构的两个输出子段经过异或运算产生这一轮的4个输出子段。由X2产生的输出子段和由X3产生的输出子段交换位置后形成W12和W13,目的在于进一步增加混淆效果,使得算法更易抵抗差分密码分析。,输出变换的结构和每一轮开始的变换结构一样,不同之处在于输出变换的第2个和第3个输入首先交换了位置,目的在于撤销第8轮输出中两个子段的交换。第9步仅需4个子密钥,而前面8轮中每轮需要6个子密钥。,子密钥的产生,56个16bit的子密钥从128bit的密钥中生成前8个子密钥Z1,Z2,Z8直接从加密密钥中取,即Z1取前16比特(最高有效位),Z2取下面的16比特,依次类推。然后加密密钥循环左移25位,再取下面8个子密钥Z9,Z10,Z16,取法与Z1,Z2,Z8的取法相同。这一过程重复下去,直到52子密钥都被产生为止。,解密方法,加密解密实质相同,但使用不同的密钥;解密密钥以如下方法从加密子密钥中导出:解密循环I的头4个子密钥从加密循环10I的头4个子密钥中导出;解密密钥第1、4个子密钥对应于1、4加密子密钥的乘法逆元;2、3对应2、3的加法逆元;对前8个循环来说,循环I的最后两个子密钥等于加密循环9I的最后两个子密钥,第i(i=1,9)轮解密的前4个子密钥由加密过程第(10-i)轮的前4个子密钥得出:其中第1和第4个解密子密钥取为相应的第1和第4个加密子密钥的模216+1乘法逆元,第2和第3个子密钥的取法为:当轮数i=2,8时,取为相应的第3个和第2个加密子密钥的模216加法逆元。i=1和9时,取为相应的第2个和第3个加密子密钥的模216加法逆元。第i(i=1,8)轮解密的后两个子密钥等于加密过程第(9-i)轮的后两个子密钥,左边为加密过程,由上至下,右边为解密过程,由下至上。将每一轮进一步分为两步,第1步是变换,其余部分作为第2步,称为子加密。,输出,解密过程第1轮第1步的输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论