通用Feistel方案攻击方法解析
1. 区分4轮Feistel置换与随机置换
通过计数N,我们可以找到一种区分4轮Feistel置换和随机置换的方法。这种通用攻击需要$O(2^{\frac{n}{2}})$个选择查询和$O(2^{\frac{n}{2}})$次计算,具体做法是存储$S_i \oplus L_i$的值并统计碰撞情况。
需要注意的是,针对3轮和4轮Feistel方案的攻击最早发表于相关研究中,并且被独立重新发现。此攻击对大多数4轮Feistel方案有效,但并非对所有4轮Feistel方案都一定有效。
2. 对5轮Feistel置换的通用攻击(使用$O(2^{\frac{7n}{4}})$个随机明文)
2.1 5轮Feistel置换的符号表示
设$i$为整数,对于任意给定的$i$,$[L_i, R_i]$是$I_{2n}$中的一个2n位字符串,令$\Psi^5[L_i, R_i] = [S_i, T_i]$。引入中间变量$X_i$、$P_i$和$Y_i$,满足以下关系:
[
\begin{cases}
X_i = L_i \oplus f_1(R_i) \
P_i = R_i \oplus f_2(X_i) \
Y_i = X_i \oplus f_3(P_i)
\end{cases}
]
由此可得$S_i = P_i \oplus f_4(Y_i)$和$T_i = Y_i \oplus f_5(S_i)$。同时,以下条件(C)始终满足:
[
\begin{cases}
R_i = R_j \Rightarrow
超级会员免费看
订阅专栏 解锁全文
17

被折叠的 条评论
为什么被折叠?



