扰动白盒AES实现的密码分析
1. 分离S盒
在密码分析的第一阶段,攻击者能够推导出原始最后一轮R10的输入字节$y_9^1$,直到未知系数$\alpha_{9,i}$,即$\Lambda_9Y_9^1$。由于连续扰动轮之间线性编码的消除性质,这也对应于前一轮(倒数第二轮)R9的线性等效输出。因此,R9可以表示为:
$\Lambda_9 \circ \text{MixColumns} \circ \text{ShiftRows} \circ {S_{9,0}, \ldots, S_{9,15}} \circ \left[K_8\right] \circ M_8^{-1}[0..15]$
此步骤的目标是通过分离S盒的输出字节,将R9线性等效输出的未知因素纳入秘密S盒中,这可以通过从轮中消除MixColumns操作来实现。但由于$\Lambda_9$中存在未知值,这并不容易,因为MixColumns步骤是对四个字节进行的可逆线性变换。
主要思路是寻找一种变换,使矩阵$\Lambda_9$在MixColumns操作的每四个字节上具有相同的因子$\alpha$。即使这个因子未知,这样的对角矩阵也可以与MixColumns操作交换(与所有元素相同的对角矩阵相乘在方阵群中是可交换操作)。结果,MixColumns操作成为最终操作,可以通过将结果与逆MixColumns操作相乘来消除。
总共有四个并行的MixColumns步骤$MC_i$($i = 0, \ldots, 3$),因为每个步骤$MC_i$作用于四个不同S盒的输出字节。因此,$\Lambda_9$可以分为四个$4 \times 4$对角子矩阵$\Lambda_{9,i}$,每个子矩阵包含与每个$MC_
扰动白盒AES密码分析
超级会员免费看
订阅专栏 解锁全文
10

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



