在之前的文章中,我们聊了很多常见的加密算法,今天我们来聊一个名叫“国际数据加密算法”的加密方法——IDEA。

IDEA加密算法
图片来源于网络

IDEA加密算法全称为“International Data Encryption Algorithm”,中文名就是国际数据加密算法。它是由瑞士籍华人来学嘉与瑞士学者James Massey在1990年联合提出的。这种算法是在DES算法的基础上发展出来的,类似于三重DES,发展IDEA也是因为感到DES具有密钥太短等缺点。

IDEA加密

IDEA是块加密,与DES一样,IDEA也处理64位明文块。但是,其密钥更长,共128位。和DES一样,IDEA是可逆的,即可以用相同的算法加密和解密。IDEA也用扩展与混淆进行加密。下图显示了IDEA的工作方法:

IDEA加密
图片来源于网络

64位输入明文块分成4个部分(各16块)P1~ P4。P1~ P4是算法的第一轮输入,共8轮。密钥为128位,每一轮从原先的密钥产生6个子密钥,各位16位。这个6个子密钥作用于4个输入块P1~ P4。第一轮,有6个密钥K1~ K6;第二轮,有6个密钥K7~ K12;最后,第8轮,有6个密钥K43~ K48。最后一步是输出变换,只用4个子密钥(K49~ K52)。产生的最后输出是输出变换的输出,为4个密文块C1~ C4(各为16位),从而构成64位密文块。

IDEA解密

解密过程与加密过程完全相同,只是子密钥的生成与模式有所不同。解密子密钥实际上是加密子密钥的逆。

IDEA的强度

IDEA使用128位密钥,是DES密钥长度的两倍,因此破译IDEA,即要进行2的128次方次加密运算,取得正确的密钥只要平均搜索一半的密钥空间,每微秒执行一次IDEA加密的计算机也要5 400 000 000 000 000 000 000 000年才能破解IDEA。

IDEA的应用

目前IDEA在工程中已有大量应用实例:

PGP(Pretty Good Privacy)就使用IDEA作为其分组加密算法;

安全套接字层SSL(Secure Socket Layer)也将IDEA包含在其加密算法库SSLRef中;

SSL
图片来源于网络

IDEA算法专利的所有者Ascom公司也推出了一系列基于IDEA算法的安全产品,包括:基于IDEA的Exchange安全插件、IDEA加密芯片、IDEA加密软件包等。

IDEA算法相对来说是一个比较新的算法,其安全性研究也在不断进行之中,IDEA算法的应用和研究正在不断的走向成熟。

免责声明:素材源于网络,如有侵权,请联系删稿。