6轮IDEA的新攻击方法解析
1. IDEA算法基础回顾
IDEA(International Data Encryption Algorithm)是一种对称密钥分组密码算法。每一轮IDEA由两个层组成,第i轮的输入是四个16位字 $(X_i^1, X_i^2, X_i^3, X_i^4)$。
在第一轮(KA层),第一个和第四个字与子密钥字进行模 $2^{16}+1$ 乘法(其中0被替换为 $2^{16}$),第二个和第三个字与子密钥字进行模 $2^{16}$ 加法。中间值表示为 $(Y_i^1, Y_i^2, Y_i^3, Y_i^4)$,具体计算如下:
- $Y_i^1 = Z_i^1 \odot X_i^1$
- $Y_i^2 = Z_i^2 \boxplus X_i^2$
- $Y_i^3 = Z_i^3 \boxplus X_i^3$
- $Y_i^4 = Z_i^4 \odot X_i^4$
然后,$(p_i, q_i) = (Y_i^1 \oplus Y_i^3, Y_i^2 \oplus Y_i^4)$ 进入第二层(MA层),这是一个由乘法和加法组成的结构。MA变换的两个输出字表示为 $(u_i, t_i)$,计算方式为:
- $u_i = (p_i \odot Z_i^5) \boxplus t_i$
- $t_i = (q_i \boxplus (p_i \odot Z_i^5)) \odot Z_i^6$
我们还使用了MA层的中间值 $s_i = p_i \odot Z_i^5$。第i轮的输出为 $(Y_i^1 \oplus t_i, Y_i^3 \oplus t_i, Y_i^