- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IDEA算法简介 IDEA是International Data Encryption Algorithm 的缩写,是1990年由瑞士联邦技术学院来学嘉X.J.Lai 和Massey提出的建议标准算法称作PES( Proposed Encryption Standard) 。Lai 和Massey 在1992 年进行了改进强化了抗差分分析的能力改称为IDEA 它也是对64bit大小的数据块加密的分组加密算法密钥长度为128位它基于“相异代数群上的混合运算”设计思想算法用硬件和软件实现都很容易且比DES在实现上快的多。IDEA自问世以来,已经经历了大量的详细审查,对密码分析具有很强的抵抗能力,在多种商业产品中被使用。 IDEA算法简介 这种算法是在DES算法的基础上发展出来的,类似于三重DES。发展IDEA也是因为感到DES具有密钥太短等缺点,已经过时。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。 类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。 由于IDEA是在美国之外提出并发展起来的,避开了美国法律上对加密技术的诸多限制,因此,有关IDEA算法和实现技术的书籍都可以自由出版和交流,可极大地促进IDEA的发展和完善。 IDEA算法详解 1、产生密钥 算法用了52个子密钥(8轮中的每一轮需要6个,其他4个用与输出变换)。首先,将128-位密钥分成8个16-位子密钥。这些是算法的第一批8个子密钥(第一轮六个,第二轮的头两个)。然后,密钥向左环移x位后再分成8个子密钥。开始4个用在第二轮,后面4个用在第三轮。密钥再次向左环移25位产生另外8个子密钥,如此进行直到算法结束。具体是: IDEA总共进行8轮迭代操作,每轮需要6个子密钥,另外还需要4个额外子密钥,所以总共需要52个子密钥,这个52个子密钥都是从128位密钥中扩展出来的。 首先把输入的Key分成8个16位的子密钥, 1~6号子密钥供第一轮加密使用,7~8号子密钥供第二轮使用,然后把这个128位密钥循环左移25位,这样Key = k26k27k28…k24k25 IDEA算法详解 把新生成的Key在分成8个16位的子密钥,1~4号子密钥供第二轮加密使用(前面已经提供了两个)5~8号子密钥供第三轮加密使用。到此我们已经得到了16个子密钥,如此继续,当循环左移了5次之后已经生成了48个子密钥,还有四个额外的子密钥需要生成,再次把Key循环左移25位,选取划分出来的8个16位子密钥的前4个作为那4个额外的加密密钥.供加密使用的52个子密钥生成完毕。 输入的64-位数据分组被分成4个16-位子分组:xl,X2,x3和x4。这4个子分组成为算法的第一轮的输入,总共有8轮。在每一轮中,这4个子分组相互相异或,相加,相乘,且与6个16-位子密钥相异或,相加,相乘。在轮与轮间,第二和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。 IDEA算法详解 2、加/解密过程 在每一轮中,执行的顺序如下: (1)X1和第一个子密钥相乘。 (2)x2和第二个子密钥相加。 (3)X3和第三个子密钥相加。 (4)x4和第四个子密钥相乘。 (5)将第(1)步和第(3)步的结果相异或。 (6)将第(2)步和第(4)步的结果相异或。 (7)将第(5)步的结果与第五个子密钥相乘。 (8)将第(6)步和第(7)步的结果相加。 IDEA算法详解 (9)将第(8)步的结果与第六个子密钥相乘。 (10)将第(7)步和第(9)步的结果相加。 (11)将第(1)步和第(9)步的结果相异或。 (12)将第(3)步和第(9)步的结果相异或。 (13)将第(2)步和第(10)步的结果相异或。 (14)将第(4)步和第(10)步的结果相异或。 每一轮的输出是第(11)、(12)、(13)和(14) 步的结果形成的4个子分组。将中间两个分组分组交换(最后一轮除外)后,即为下一轮的输入。 IDEA算法详解 经过8轮运算之后,有一个最终的输出变换: (1) X1和第一个子密钥相乘。 (2) x2和第二个子密钥相加。 (3) x3和第三个子密钥相加。 (4) x4和第四个子密钥相乘。 最后,这4个子分组重新连接到一起产生密文。 IDEA算法详解 3、密钥对应图 IDEA算法详解 4、加密过程图 IDEA算法详解 IDEA算法详解 6、评价: IDEA算法的密钥长度为128位。设计者尽最大努力使该算法不受差分密码分析的影响,数学家已证明IDEA算法在其8圈迭代的第4圈之后便不受差分密码分析的影响了。假定穷举法攻击有
文档评论(0)