IDEA加密算法
推荐参考:
https://blog.csdn.net/qq_40279192/article/details/107420773?
IDEA数据加密算法_Walter_Jia的博客-CSDN博客_idea算法
IDEA(International Data Encryption Algorithm )即国际数据加密算法,在1990年来学嘉 和Massey提出的建议标准算法PES(Proposed Encryption Standard)的基础上,两位学者改进强化其抗差分分析的能力,并在商品化之后改名为IDEA。它也是对64bit大小的数据块加密的分组加密算法。它基于“相异代数群上的混合运算”设计思想,算法用硬件和软件实现都很容易,且比DES在实现上快的多。IDEA自问世以来,已经经历了大量的详细审查,对密码分析具有很强的抵抗能力,在多种商业产品中被使用。
类似于DES,IDEA算法也是一种分组(数据块)加密算法,其中密钥长度为128位,明密文都为64位。它设计了一系列加密轮次,每轮加密使用一个从完整的加密密钥中生成的子密钥。它比DES更加强大,采用软件实现和采用硬件实现同样快速。不普及的原因仅仅是其受专利保护。
一、明文数据分组
1、明文分组:将明文分成N个64位明文块,每次加密的输入位一个明文块。
2、明文块分组:输入的64位数据块被分成4个16位子分组:X1,X2,X3和X4,这4个子分组成为算法的8轮计算第一轮的输入。在每一轮中,这4个子分组相互相异或,相加,相乘,且与6个16-位子密钥相异或,相加,相乘。在轮与轮间,第二和第三个子分组交换。最后在输出变换中4个子分组与4个子密钥进行运算。
二、由密钥产生52个子密钥:K1~K52
IDEA总共进行8轮迭代操作,每轮需要6个子密钥,另外还需要4个额外子密钥用于输出变换,所以总共需要52个子密钥,这个52个子密钥都是从128位密钥中扩展出来的。具体子密钥生成过程是:
首先把输入的Key分成8个16位的子密钥, 1~6号子密钥供第一轮加密使用,7~8号子密钥供第二轮使用;然后把这个128位密钥循环左移25位,这样Key = k26k27k28…k24k25,把新生成的Key在分成8个16位的子密钥,1~4号子密钥供第二轮加密使用(前面已经提供了两个)5~8号子密钥在第三轮加密使用;到此我们已经得到了16个子密钥,如此继续,当循环左移了5次之后已经生成了48个子密钥,还有四个额外的子密钥需要生成,再次把Key循环左移25位,选取划分出来的8个16位子密钥的前4个作为那4个额外的加密密钥,至此,加密使用的52个子密钥生成完毕。
三、加密解密
加密:
1、 8轮迭代操作:每轮6个子密钥->K1~K6、... 、K43~K48
在每一轮中,执行的顺序如下:
(1)X1和第一个子密钥相乘;
(2)X2和第二个子密钥相加;
(3)X3和第三个子密钥相加;
(4)X4和第四个子密钥相乘;
(5)将第(1)步和第(3)步的结果相异或; ·
(6)将第(2)步和第(4)步的结果相异或;
(7)将第(5)步的结果与第五个子密钥相乘;
(8)将第(6)步和第(7)步的结果相加;
(9)将第(8)步的结果与第六个子密钥相乘;
(10)将第(7)步和第(9)步的结果相加;
(11)将第(1)步和第(9)步的结果相异或;
(12)将第(3)步和第(9)步的结果相异或;
(13)将第(2)步和第(10)步的结果相异或;
(14)将第(4)步和第(10)步的结果相异或;
每一轮的输出是第(11)、(12)、(13)和(14) 步的结果形成的4个子分组。将中间两个分组分组交换(最后一轮除外)后,即为下一轮的输入。
2、输出变换:4个子密钥->K49~K52
(1) X1和第一个子密钥相乘;
(2) x2和第二个子密钥相加;
(3) x3和第三个子密钥相加;
(4) x4和第四个子密钥相乘;
最后,这4个子分组重新连接到一起产生密文(64位)。
解密:
解密过程与加密过程完全相同,只是子密钥的生成与模式有所不同。解密子密钥实际上是加密子密钥的逆。
四、 特点
分组密码:明文分组64位;
对称密码算法:密钥长度为128位;
安全性:设计者尽最大努力使该算法不受差分密码分析的影响,数学家已证明IDEA算法在其8圈迭代的第4圈之后便不受差分密码分析的影响了,目前来看,比DES算法要相对安全得多;
优点:IDEA数据比较RSA算法加、解密速度快得多;
缺点:解密过程子密钥需要求逆且有些微小差别。
五、应用
PGP(Pretty Good Privacy)就使用IDEA作为其分组加密算法,使用了其商业版权;
安全套接字层SSL(Secure Socket Layer)也将IDEA包含在其加密算法库SSLRef中;
IDEA算法专利的所有者Ascom公司也推出了一系列基于IDEA算法的安全产品,包括:基于IDEA的Exchange安全插件、IDEA加密芯片、IDEA加密软件包等。
注:
如有错误、侵权,请联系作者更改、删除!!!