AP计算机科学A(APcomputer science A)复习备考攻略视频教程
43803 人在学
由于现在社会的电子商务和电子政务的普及,有一个安全的加密技术是非常重要的。而像在移动商务中对于数据传输的安全性的要求很高,所以就要用到IDEA这样的加密算法为其加密,下面我们就来了解一下IDEA以及IDEA的应用方面。
IDEA介绍
IDEA是International Data Encryption Algorithm 的缩写,是由瑞士联邦技术学院James Massey,Xuejia Lai等人在1990年提出的加密算法,在加密学中属于数据块加密算法类。原本的名字为PES( Proposed Encryption Standard),后来在1992年两人对其进行了改进强化了抗差分分析的能力,然后改称为IDEA。IDEA的使用长度为128bit的密钥,数据块大小为64bit。
它基于“相异代数群上的混合运算”设计思想算法,并且用硬件和软件实现都比在DES上实现容易。自IDEA面试以来已经经历了很多的详细审查,对密码分析具有很强的抵抗能力,并且在多种商业软件中被使用。在理论上来说IDEA属于很强的加密算法,在现在来说还没有出现对其能有效攻击的算法。
IDEA算法是在EDS算法上发展而来的,因为DES所具有的密钥太短,所以IDEA的密钥为128位。并且IDEA采用软甲加速和硬件加速实现的一样的快速。IDEA设计了一系列的加密轮次,每次加密的时候都会使用一个子密钥,这个子密钥是在完整的加密密钥中生成的。注意,IDEA的加密和解密过程都是一样的,只是使用的密钥不同,这里就不多说。
密钥的产生
在加密之前,IDEA通过密钥扩展将128bit的密钥扩展为52Byte的加密密钥EK(Encryption Key),然后又EK计算出解密密钥DK(Decryption Key)。IDEA总共进行8轮迭代操作,每轮需要6个子密钥,另外还需要4个额外子密钥,所以总共需要52个子密钥,这个52个子密钥都是从128位密钥中扩展出来的。EK和DK分为8组半密钥,每组长度为6Byte,前8组密钥用于8圈加密,最后半组密钥(4Byte)用于输出变换。
密钥扩展的过程如下:
1)将128bit的密钥作为EK的前8byte;
2)将前8byte循环左移25bit,得到下一8byte,将这个过程循环7次;
3)在第7次循环时,取前4byte作为EK的最后4byte;
4)至此52byte的EK生成完毕。
加密过程图
解密过程图
IDEA算法相对于来说是一个比较新的算法,它的安全性研究也在不断的进行当中。而且在IDEA算法公布之后不久就要学者提出:它的密钥扩展算法存在着缺陷,会导致IDEA算法中存在很多的弱密钥类,但是这个缺陷只要通过简单的修改密钥扩展算法就可以解决。
在1997年的EuroCrypt’97年会上,John Borst等人提出了对圈数减少的IDEA的两种攻击算法:对3.5圈IDEA的截短差分攻击(Truncate Diffrential Attack)和对3圈IDEA的差分线性攻击(Diffrential Linear Attack)。
设计者尽最大努力使该算法不受差分密码分析的影响,数学家已证明IDEA算法在其8圈迭代的第4圈之后便不受差分密码分析的影响了。而且假定穷举法有效的话,那么即使设计一秒可以试验10亿个密钥的专用芯片并将其投入到此工作,也要大概一千年才能解决这个问题;换一种角度来说,如果使用1024个这样的芯片是有可能在一天之内找到密钥的,但是现在还不能制造这样一台机器。所以就现在来说IDEA还是安全的。
应用方面
在PGP(Pretty Good Privacy)中就是使用IDEA算法为其分组进行加密。SSL(Secure Socket Layer)安全套接字层的加密算法库SSLRef中也包含了IDEA。IDEA算法专利的所有者Ascom公司也推出了一系列基于IDEA算法的安全产品,包括:基于IDEA的Exchange安全插件、IDEA加密芯片、IDEA加密软件包等。
加密技术在现代技术的数据传输中的作用尤其重要,文中只是简单的了解了关于IDEA这一个加密算法。总的来说,IDEA加密算法加密速度快,密钥产生方法简单,硬件、软件均容易实现。