差分故障攻击与算术到布尔掩码转换技术
差分故障攻击技术
差分故障攻击是一种针对特定密码结构的攻击方法。其核心思路是利用最后一个θ层的扩散特性,判断最后一个非线性层γ之前的差异是否可能源于故障,以此为最后一轮密钥提供区分标准。该攻击使用的故障模型较为宽松和现实,只需字节上出现随机故障即可,且故障位置的选择并非关键,只有特定位置的故障(一般在θR−2和θR−1之间,AES中在θR−3和θR−1之间)可被利用,其他位置的故障可忽略。
对KHAZAD的应用
KHAZAD是一种64位块、128位密钥的分组密码。它有8轮,结构与常见的描述一致,密钥加法使用异或操作。其γ层由8个相同的对合8×8 S盒组成,θ层具有最优字节分支数(即9)且也是对合的。
攻击步骤如下:
1. 两个发生在θR−1和θR−2之间的故障足以恢复KR,因为每个故障都能提供KR所有字节的信息。
2. 仅知道KR不足以恢复整个密钥,因此在得知KR后,剥去最后一轮。
3. 利用发生在θR−2和θR−3之间的故障,为KR−1选择约2568 · (8 · 255−7) ≃2105个候选密钥。
4. 对这些候选密钥进行穷举搜索,结合KR和KR−1的信息计算主密钥。
在实际攻击中,使用2对正确的密文对(C; C∗),约90%的情况下能得到KR的唯一候选密钥,否则可能剩下2个或4个候选密钥。这一情况与S盒的选择有关,对差分密码分析越差的S盒,对故障攻击的抵抗力越强。例如,将攻击应用于使用AES S盒的KHAZAD修改版本时,从2对正确的密文对(C; C∗)中获得唯一候选密钥的概率为96%。
超级会员免费看
订阅专栏 解锁全文
35

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



