理解国际数据加密算法

1. 基本概念

• 对称加密:加密和解密用同一把密钥,类似用同一把钥匙锁门和开门。

• 数据分块:IDEA将数据切成64位(8字节)的块,每次加密一个块。

• 密钥长度:使用128位(16字节)的密钥,比当时主流的DES算法(56位密钥)更安全。

2. 加密过程(像“多层搅拌”)

IDEA通过8轮“搅拌”(每轮用不同的子密钥)混淆数据,最后再加一轮输出变换。以下是简化步骤:

步骤1:拆分数据块

• 将64位数据块拆成4个16位的小块:A、B、C、D。

步骤2:每轮“搅拌”

• 每一轮用6个子密钥(从主密钥生成)进行以下操作:

  1. 模加(+):A + 子密钥1,结果对65536取余。

  2. 模乘(×):B × 子密钥2,结果对65537取余(65537是质数)。

  3. 模加(+):C + 子密钥3。

  4. 模乘(×):D × 子密钥4。

  5. 异或(⊕):前两步的结果异或。

  6. 再模乘:异或的结果 × 子密钥5。

  7. 再模加和异或:最后将结果与其他块混合,形成新的A、B、C、D。

步骤3:重复8轮

• 经过8轮后,数据已被彻底打乱。

步骤4:最终输出变换

• 用最后4个子密钥对A、B、C、D做一次处理,得到加密后的64位密文。

3. 密钥生成

• 子密钥:从128位主密钥生成52个子密钥(每轮6个,最后4个用于输出变换)。

• 生成方式:通过循环左移和分割密钥,确保每轮的子密钥不同。

4. 解密过程

• 反向操作:用相同的子密钥的“逆”操作解密(如模加改为模减,模乘改为模逆元)。

• 密钥顺序:解密时子密钥的顺序与加密相反。

5. 安全性

• 抗攻击性:混合使用模加、模乘、异或,使得破解难度极高(至今无已知有效攻击)。

• 缺点:因专利问题和AES的出现,现在使用较少,但设计思想仍被借鉴。

举个“做披萨”的比喻

想象你要做一份披萨(加密数据):

1. 分块:把面团分成4份(A、B、C、D)。

2. 每轮加料:每轮撒不同的奶酪(子密钥),搅拌、烘烤(模加、模乘、异或)。

3. 重复8次:每轮换新奶酪,味道越来越复杂。

4. 最终定型:最后一次加料,披萨出炉(密文)。

5. 解密:只有知道每轮用了什么奶酪(密钥)的人,才能逆向还原出原始面团。

总结

• IDEA的核心:通过多层混合运算(模加、模乘、异或)和大量子密钥,将数据彻底混淆。

• 优点:安全、高效(适合90年代的硬件)。

• 现状:虽被AES取代,但仍是密码学史上的重要设计。

你可能感兴趣的:(密码学)