IDEA(国际数据加密算法)的轮函数设计
字数 2097 2025-11-28 23:45:09
IDEA(国际数据加密算法)的轮函数设计
IDEA(International Data Encryption Algorithm)是一种对称分组密码算法,使用64位分组长度和128位密钥。其轮函数设计基于混合运算(异或、模加、模乘),具有强混淆和扩散性质。以下逐步详解其轮函数结构。
1. 轮函数整体结构
- IDEA共8轮,每轮包含4个子步骤:
- 模乘运算(Multiplication Mod 2^16+1)
- 模加运算(Addition Mod 2^16)
- 异或运算(XOR)
- MA函数(Multiplication-Addition Function)
- 每轮输入为64位数据(分成4个16位子块:X₁, X₂, X₃, X₄),输出通过交叉交换后传递到下一轮。
2. 轮函数分步解析
步骤1:输入分块与子密钥分配
- 输入64位数据分4块:
\(X_1, X_2, X_3, X_4\)(每块16位)。 - 每轮需6个子密钥(16位),从128位主密钥扩展生成。
例如,第1轮子密钥记为:\(K_1^{(1)}, K_2^{(1)}, K_3^{(1)}, K_4^{(1)}, K_5^{(1)}, K_6^{(1)}\)。
步骤2:第一层运算(模乘与模加)
- \(Y_1 = X_1 \odot K_1^{(1)}\)(模乘:\(\odot\) 表示模 \(2^{16}+1\) 乘法,输入0视为 \(2^{16}\))
- \(Y_2 = X_2 \boxplus K_2^{(1)}\)(模加:\(\boxplus\) 表示模 \(2^{16}\) 加法)
- \(Y_3 = X_3 \boxplus K_3^{(1)}\)
- \(Y_4 = X_4 \odot K_4^{(1)}\)
步骤3:MA函数(混淆核心)
- 输入:\(Y_2\) 和 \(Y_3\) 进入MA函数,与子密钥 \(K_5^{(1)}, K_6^{(1)}\) 运算:
- \(P = Y_2 \oplus Y_3\)
- \(Q = P \odot K_5^{(1)}\)
- \(R = Q \boxplus (Y_2 \odot K_6^{(1)})\)(先模乘后模加)
- \(S = R \boxplus Q\)
- 输出:MA函数生成两个16位块 \(R\) 和 \(S\)。
步骤4:第二层运算(异或与交换)
- \(Z_1 = Y_1 \oplus R\)
- \(Z_2 = Y_3 \oplus R\)(注意:实际输出中 \(Z_2\) 由 \(Y_3\) 与 \(R\) 异或)
- \(Z_3 = Y_2 \oplus S\)
- \(Z_4 = Y_4 \oplus S\)
- 交换:第1~8轮结束时,交换中间块 \((Z_2, Z_3)\) 后作为下一轮输入(最后一轮无交换)。
3. 运算细节说明
模乘(⊙)的特殊处理
- 定义:\(a \odot b = (a \cdot b) \mod (2^{16}+1)\),其中若输入为0,则视为 \(2^{16}\)(因模数 \(2^{16}+1\) 是素数)。
- 示例:若 \(a=0\),则计算 \(2^{16} \cdot b \mod (2^{16}+1)\),等价于 \((-1) \cdot b \mod (2^{16}+1)\)。
模加(⊞)
- 定义:\(a \boxplus b = (a + b) \mod 2^{16}\),直接对16位整数加法取模。
MA函数的作用
- 通过非线性运算(模乘、模加)将密钥与数据混合,增强抗差分密码分析能力。
- 输入 \(Y_2, Y_3\) 经MA函数后生成的 \(R, S\) 与 \(Y_1, Y_4\) 异或,实现块间依赖。
4. 最后一轮输出变换
- 第9轮(输出变换)使用4个子密钥 \(K_1^{(9)}\) 到 \(K_4^{(9)}\):
\(O_1 = Z_1 \odot K_1^{(9)}\),
\(O_2 = Z_2 \boxplus K_2^{(9)}\),
\(O_3 = Z_3 \boxplus K_3^{(9)}\),
\(O_4 = Z_4 \odot K_4^{(9)}\)。 - 最终输出 \(O_1, O_2, O_3, O_4\) 拼接为64位密文。
5. 设计优势
- 混合运算:异或、模加、模乘的混合使用,避免单一运算的弱点。
- 强度分析:模乘和模加的非线性特性使IDEA抵抗差分和线性密码分析(需至少2^64个明文才能攻破)。
- 专利与应用:曾用于PGP等安全系统,但因专利限制和AES普及而使用减少。
通过以上步骤,IDEA的轮函数实现了高效且安全的混淆与扩散,成为经典分组密码设计范例。