写点什么

密码学系列之:IDEA

发布于: 2021 年 05 月 17 日

简介

IDEA 的全称是 International Data Encryption Algorithm,也叫做国际加密算法,注意,这里不是我们常用的那个开发工具 IDEA。

今天给大家详细介绍一下 IDEA。

IDEA 简介

IDEA 中文叫做国际加密算法,最开始也被叫做 Improved Proposed Encryption Standard (IPES)。它是一种对称密钥加密算法,最初是由 James Massey 和 Xuejia Lai 在 1991 年提出的。

其目标是替代 DES 算法。IDEA 是对早期的 PES 的一次修订。IDEA 是 OpenPGP 标准的可选算法。

IDEA 的专利在 2012 年已经过期了,现在是可以免费使用的。

IDEA 原理

IDEA 加密块长度是 64bits,密钥长度是 128bits,是由八轮变换和半轮输出转换组合而成的。加密和解密的过程是类似的。我们看下 IDEA 的基本流程图:



上面图中, 蓝色圆圈是 XOR 异或操作,绿色框是加法模数 216。红色的点是乘模 216 + 1,如果输入都是 0(0x0000)那么将会被转换为 216,如果输入是 216,那么会被转换为 0(0x0000)。

八轮操作之后,就是下面的半轮输出转换了,输出转换如下所示(中间两个值的交换抵消了最后一轮结束时的交换,因此没有净交换):



IDEA 子密钥的生成

IDEA 使用的是 Lai–Massey 结构。 每轮使用 6 个 16 位子密钥,最后的半轮使用 4 个子密钥,共 8.5 回合 52 个子密钥。

前面 8 个子密钥直接从密钥中提取,因为密钥的长度是 128bits,刚好可以分成 8 个 16bits 的自密钥。其中第一轮的 K1 为密钥的 16 位。

通过在每 8 组之间将主密钥向左移动 25 位,从而创建更多的 8 组子密钥。

本文已收录于 http://www.flydean.com/idea/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

发布于: 2021 年 05 月 17 日阅读数: 8
用户头像

关注公众号:程序那些事,更多精彩等着你! 2020.06.07 加入

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在公众号:程序那些事!

评论

发布
暂无评论
密码学系列之:IDEA