4、IDEA算法

参考:

https://blog.csdn.net/qq_40279192/article/details/107420773?

IDEA数据加密算法_Walter_Jia的博客-CSDN博客_idea算法


IDEA算法

IDEA算法流程

IDEA算法相关


IDEA算法

        IDEA(International Data Encryption Algorithm )即国际数据加密算法,在1990年来学嘉 和Massey提出的建议标准算法PES(Proposed Encryption Standard)的基础上,两位学者改进强化其抗差分分析的能力,并在商品化之后改名为IDEA。它也是对64bit大小的数据块加密的分组加密算法。它基于“相异代数群上的混合运算”设计思想,算法用硬件和软件实现都很容易,且比DES在实现上快的多。IDEA自问世以来,已经经历了大量的详细审查,对密码分析具有很强的抵抗能力,在多种商业产品中被使用。

        类似于DES,IDEA算法也是一种分组(数据块)加密算法,其中密钥长度为128位,明密文都为64位。它设计了一系列加密轮次,每轮加密使用一个从完整的加密密钥中生成的子密钥。它比DES更加强大,采用软件实现和采用硬件实现同样快速。不普及的原因仅仅是其受专利保护。

IDEA算法流程

明文数据分组

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个子密钥生成完毕。

加密解密

加密:IDEA加密过程分为两个部分:

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位),多个密文块拼接得到密文。

注意:加密过程中的加和乘不只是"加"和"乘",而是加后用2^16求模,乘后用 2^16+1求模。IDEA采用求模算法,保证即使两个16位数加或者相乘的结果超过17位,也能缩减到16位。
 

解密

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

IDEA算法相关

1、IDEA算法特点

  • 分组密码:明文分组64位;
  • 对称密码算法:密钥长度为128位
  • 优点:IDEA算法比RSA算法加、解密速度快得多;
  • 缺点:解密过程子密钥需要求逆且有些微小差别。

2、安全性

        安全性:暴力破译IDEA,需要进行2^128次加密运算,即使取得正确的密钥只要平均搜索一半的密钥空间,依旧很难破解IDEA。同时,设计者尽最大努力使该算法不受差分密码分析的影响,数学家已证明IDEA算法在其8圈迭代的第4圈之后便不受差分密码分析的影响了,目前来看,比DES算法要相对安全得多;

IDEA算法应用

  • PGP(Pretty Good Privacy就使用IDEA作为其分组加密算法,使用了其商业版权;
  • 安全套接字层SSL(Secure Socket Layer)也将IDEA包含在其加密算法库SSLRef中;
  • IDEA算法专利的所有者Ascom公司也推出了一系列基于IDEA算法的安全产品,包括:基于IDEA的Exchange安全插件、IDEA加密芯片、IDEA加密软件包等。

注:

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

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三九笔墨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值