idea对称密码算法剖析new

idea对称密码算法剖析new

ID:34513303

大小:414.20 KB

页数:9页

时间:2019-03-07

idea对称密码算法剖析new_第1页
idea对称密码算法剖析new_第2页
idea对称密码算法剖析new_第3页
idea对称密码算法剖析new_第4页
idea对称密码算法剖析new_第5页
资源描述:

《idea对称密码算法剖析new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据实用第一,翅?‘日慧密集IDEA对称密码算法剖析敬茂华陶文金摘要:学习算法的一种非常有效的方法就是分析经典算法的代码实现。IDEA算法是一种典型的对称密钥密码算法。是一种密钥长度为128位的分组密码算法,这种算法既可以用于加密,也可以用于解密,具有代码量少、运行速度快、安全性高等特点。本文首先剖析了IDEA算法原理,然后对基于Vc++的IDEA算法的c++实例进行了解析。关键词:IDEA;对称密码;分组密码;C语言1引言IDEA(InternationalDataEncryptionAlgorithm:国际数据加密算法)是1990年由瑞士联邦技术学院的XJ.

2、IJai和Massey提出的PES(ProposedEncryptionStandard:建议标准算法)的改进版本。于1992年命名为IDEA。IDEA对PES的抗差分分析的能力进行了强化处理,其安全性非常高,同一种算法既可以用于加密.又可以用于解密.其唯一的区别仅仅在于子密钥的生成方法不同。IDEA算法在诸如邮件加密系统PGP等多种商业产品中被广泛使用。IDEA是一种分组长度为64位的分组密码算法.密钥长度为128位。128位的密钥用于产生52个子密钥。在整个加密过程中.总共需要进行8轮迭代运算,整个迭代过程需要48个子密钥。另外4个子密钥用于最终的64位密文的输

3、出变换。IEDA算法基于。相异代数群上的混合运算”的设计思想,其迭代运算中采用了三种数学运算:16位整数的模2K加法运算、16位分组的按位异或运算和16位整数的模2~l乘法运算。为了叙述简洁。在后文中将直接称这三种运算为加法、乘法和异或运算。这j种运算中的任何一对运算都不满足分配律,也不满足结合律,这让它们的组合能对输入作出复杂的变换.从而使得攻击者无法使用化简的方式来分析明文及密钥之间的关系,因此。对IDEA算法的密码分析要比对只使用异或运算的DES算法的分析要困难得多。2算法原理及框架IDEA的加密过程包括两个部分:明文到密文加密的8轮迭代运算和子密钥的产生。2

4、.1IDEA加密迭代运算IDEA加密迭代运算过程如图1所示。输入的64位明文数据分组被分成4个16位的子分组.分别记为Xl、X2、X3和X4。这四个分组作为算法的第一轮的输人,整个加密过程总共进行8轮迭代运算。最终产生64位的密文输出。在图1中。每轮运算分为两部分。第一部分是变换运算.其方法是采用加法及乘法运算将4个16位的子明文分组与4个子密钥混合,产生4个16位的输出。具体的变换方法是:(1)Xl和第一个子密钥进行乘法运算。(2)X2和第二个子密钥加法运算。(3)X3和第三个子密钥加法运算。(4)X4和第四个子密钥乘法运算。然后将这4个16位输出进行两两配对,采

5、用逻辑异或(XOR)运算将数据混合,产生2个16位的输出,即:将(1)和(3)的结果进行异或运算,将(2)和(4)的结果进行异ZX·X2Y-巧Xt16位明文子分组Yi:16位密文子分组zi⋯:16位子密钥口:16位整数的模216加O:16位分组的按位异或O:]6㈣g2’6+1乘圈1lDEA加密过程一、2√厂8一万方数据·-·-··-COMPUTERPROGIIJlMMINGMAINTENANCE------·-·--·--···-·-··-·-·-····-·---··-·-一-·-·---··-·一-·-··-··-····-·-·一-----···或运算。这两个

6、16位的输出.连同另外的两个子密钥成为第二部分的输入。第二部分是用于产生扩散特性的乘加(MA)运算。MA运算生成2个16位输出。MA的输出再与变换运算的输出采用XOR运算产生4个16位的最后输出.这4个16位的最后输出即成为下一轮运算的原始输入。在这4个最后结果中的第2、3个输出是经位置互换而得到的.这样处理的目的是对抗差分分析攻击。明文分组在经过8论加密后.再经过最后的输出变换形成正式的密文。最后的输出变换与前面每一轮的变换运算大致相同。惟一不同之处在于第2、3个输出是不需要经过位置互换的。这种特殊安排的目的在于可以使用与加密算法相同结构的解密算法进行解密,从而简

7、化了设计及使用IDEA算法的复杂性。2.2IDEA子密钥的产生2.2.1加密子密钥的产生IDEA一次完整的加密运算需要52个子密钥。它们都是由一个128位的加密密钥产生的。其产生方法如下:首先将128位加密密钥分成8份:Z1、Z2⋯⋯、z8。其中Zl对应加密密钥中的最高有效的16位。而z8则对应于加密密钥中的最低有效的16位。然后将加密密钥循环左移25位后,用同样的方法得到另外的新的8个子密钥。如此Zl到z52陆续生成52个子密钥。2.2.2解密子密钥的产生IDEA的解密过程与加密过程完全相同.即将密文分组作为输入而逐步恢复明文。所不同的是参与迭代运算的解密子密

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。