Page 376 - 《软件学报》2025年第5期
P. 376
2276 软件学报 2025 年第 36 卷第 5 期
Y = AK(AC L (PB(SC L (AK(C 78 )))))
= AC L (PB(SC L (C 78 ⊕RK 78 )))⊕RK 79
= AC L (PB(SC L (C 78 ⊕RK 78 ⊕∆in)⊕∆out))⊕RK 79
= AC L (PB(SC L (C 78 ⊕RK 78 ⊕∆in))⊕ PB(∆out)⊕RK 79
= AC L (PB(SC L (C 78 ⊕RK 78 ⊕∆in))⊕(RK 79 ⊕ PB(∆out)) (5)
所以对于任意给定的输入输出差分对 (∆in, ∆out) , 最后两轮密钥 (RK 78 , RK 79 ) 均有对应的等价轮密钥 (RK 78 ⊕
∆in, RK 79 ⊕ PB(∆out)) . 攻击者使用正确轮密钥、等价轮密钥分别对同一 S 盒输入进行加密, 均能够得到相同的
输出.
40
均匀分布
35 非均匀分布
31.64
30
半字节的分布律 (%) 25
20
15
10
5 10.55 10.55 3.51 10.55 3.51 3.51 10.55 3.51 3.51 3.51
1.18 1.18 1.18 1.18 0.38
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
半字节取值
图 2 半字节分布律
在外核轮的设计中, 每个 S 盒含有 3 组特殊的差分输入和差分输出对, 分别为: (6, 10)、(9, 15) 和 (15, 5). 对于
单个 S 盒, 若产生 4 组密钥解, 则这 4 组密钥解均能从 S 盒的输出倒推回正确的输入, 导致现有的统计故障分析难
以对等价密钥进行筛选. 当故障注入轮数越深, 涉及的轮密钥数量越多, 相应的等价密钥空间越大, 进一步增加恢
复唯一原始密钥的难度. 如表 5 所示, rk 77 、 rk 78 和 rk 79 分别表示最后 3 轮中运算中, 某个 S 盒替换运算对应的半
pb 表示对应位置半字节的比特置换操作.
字节轮密钥,
表 5 最后 2 轮及最后 3 轮的密钥解
序号 最后2轮等价密钥 最后3轮等价密钥
1 (rk 78 ,rk 79 ) (rk 77 ,rk 78 ,rk 79 )
2 (rk 78 ⊕6,rk 79 ⊕ pb(10)) (rk 77 ,rk 78 ⊕6,rk 79 ⊕ pb(10))
3 (rk 78 ⊕9,rk 79 ⊕ pb(15)) (rk 77 ,rk 78 ⊕9,rk 79 ⊕ pb(15))
4 (rk 78 ⊕15,rk 79 ⊕ pb(5)) (rk 77 ,rk 78 ⊕15,rk 79 ⊕ pb(5))
5 - (rk 77 ⊕6,rk 78 ⊕ pb(10),rk 79 )
6 - (rk 77 ⊕9,rk 78 ⊕ pb(15),rk 79 )
7 - (rk 77 ⊕15,rk 78 ⊕ pb(5),rk 79 )
攻击者在进行统计故障分析时, 即使区分器能筛选出全部的等价密钥, 但仍然不能正确区分等价密钥与正确
密钥. 对最后两轮加密过程进行分析时, 若每个 S 盒产生 4 组密钥解, 则对于全部 32 个 S 盒, 最终会产生 4 = 2 64
32
个等价密钥. 若分析过程扩展到最后 3 轮计算, 则会出现以下两种情况.
情况 1. 若等价轮密钥出现在倒数第 1 轮和倒数第 2 轮时, 则:
Y = AC L (PB(SC L (AC L (PB(SC L (C 77 ⊕RK 77 )))⊕RK 78 ⊕∆in)⊕∆out))⊕RK 79
= AC L (PB(SC L (AC L (PB(SC L (C 77 ⊕RK 77 )))⊕RK 78 ⊕∆in)))⊕(RK 79 ⊕ PB(∆out)) (6)
情况 2. 若等价轮密钥出现在倒数第 2 轮和倒数第 3 轮时, 则: