IDEA数据加密算法及实现
作者:孤独剑
IDEA对称数据加密算法,是我写的第一个关于加解密方面的算法,在大学宿舍里弄了差不多将近二十个小时终于搞懂了。刚开始受到了“不良”资料的误导走了很长时间的弯路,后来在图书馆看到了正确的介绍才终于把这个算法给弄出来了。
1、 简介
IDEA,即国际数据加密算法
是旅居瑞士中国青年学者来学嘉和著名密码专家J.Massey于1990年提出的。它在1990年正式公布并在以后得到增强。这种算法是在DES算法的基础上发展出来的,类似于三重DES,和DES一样IDEA也是属于对称密钥算法。发展IDEA也是因为感到DES具有密钥太短等缺点,已经过时。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。
类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。
由于IDEA是在美国之外提出并发展起来的,避开了美国法律上对加密技术的诸多限制,因此,有关IDEA算法和实现技术的书籍都可以自由出版和交流,可极大地促进IDEA的发展和完善。但由于该算法出现的时间不长,针对它的攻击也还不多,还未经过较长时间的考验。因此,尚不能判断出它的优势和缺陷。
在PGP(pretty good privacy)中,IDEA算法被采用。
2、 算法详解:
2.1产生密钥
算法用了52个子密钥。首先,将128-位源密钥分成8个16-位子密钥。源密钥再次向左环移25位产生另外8个子密钥,如此进行直到产生完52个密匙。具体是:
IDEA总共进行8