4、IDEA加密算法

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个子密钥进行运算。

扫描二维码关注公众号,回复: 14772151 查看本文章

二、由密钥产生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加密软件包等。

注:

如有错误、侵权,请联系作者更改、删除!!!

猜你喜欢

转载自blog.csdn.net/weixin_42369053/article/details/117026717