非二进制密码的线性密码分析
1. 线性密码分析基础
在经典的线性密码分析中(即当明文空间 $M = {0, 1}^n$ 时),攻击者通常会遍历所有的明文 - 密文对,并将 $a \cdot M_i \oplus b \cdot C(M_i)$ 的值累加到一个计数器中,其中 $a$ 和 $b$ 是定义在文本空间上的输入/输出掩码。攻击者最终通过测量计数器相对于 $d/2$ 的偏差来猜测生成器是否实现了某个分组密码实例。当 $C = C_k$($k$ 为某个密钥)时,通过精心选择掩码,偏差可能会很大。此时,线性概率 $LP_{C_k}(a, b) = (2 \cdot Pr_M(a \cdot M \oplus b \cdot C_k(M) = 0) - 1)^2 = \vert E((-1)^{a\cdot M\oplus b\cdot C_k(M)})\vert^2$ 可用于估计针对 $C_k$ 的攻击效率。
下面的定义将这一概念扩展到非二进制线性密码分析:
设 $C : M \to M$ 是有限集 $M$ 上的一个置换,$G_1$ 和 $G_2$ 是集合 $M$ 上的两个群结构。对于所有的群特征 $\chi \in \widehat{G_1}$ 和 $\rho \in \widehat{G_2}$,$C$ 在 $M$ 上相对于 $\chi$ 和 $\rho$ 的线性概率定义为 $LP_C(\chi, \rho) = \vert E_{M\in U_M}[\chi(M)\rho(C(M))]\vert^2$。若 $C$ 是一个随机置换,我们用 $ELP_C(\chi, \rho) = E_C(LP_C(\chi, \rho))$ 表示期望线性概率。
由于直接计算分组密码
超级会员免费看
订阅专栏 解锁全文
1131

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



