Page 378 - 《软件学报》2025年第5期
P. 378
2278 软件学报 2025 年第 36 卷第 5 期
器的最值求出所对应的候选密钥, 即为正确密钥. 注入故障位置与可恢复密钥位置对应关系如图 4 所示, 若在 B 77
的第 0、1、2、3 个半字节注入故障, 均可恢复最后一轮密钥相同位置的 16 比特. 攻击者通过对最后一轮密钥取
交集可以减少候选密钥数量.
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 33 66 99 1 34 67 96 2 35 64 97 3 32 65 98 4 37 70 103 5 38 71 100 6 39 68 101 7 36 69 102
0 8 16 24 33 41 49 57 66 74 82 90 99 107 115 123 1 9 17 25 34 42 50 58 67 75 83 91 96 104 112 120
… …
24 25 26 27 28 29 30 31
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
24 57 90 123 25 58 91 120 26 59 88 121 27 56 89 122 28 61 94 127 29 62 95 124 30 63 92 125 31 60 93 126
6 14 22 30 39 47 55 63 68 76 84 92 101 109 117 125 7 15 23 31 36 44 52 60 69 77 85 93 102 110 118 126
故障注入位置 倒数第3轮可恢复 倒数第2轮可恢复 最后一轮可恢复
半字节的编号 密钥比特位编号 密钥比特位编号 密钥比特位编号
图 4 注入故障位置与可恢复密钥位置对应关系
步骤 4. 攻击者多次在 B 77 进行随机半字节故障注入, 通过重复步骤 1–3, 每次故障均可以获得 RK 79 的 16 比特、
RK 78 的 4 比特和 RK 77 的 4 比特. 根据图 4 所示的每次故障可恢复最后 3 轮密钥比特位的关系, 组合每次获取的最
后 3 轮密钥比特信息, 逐步获取 RK 77 、 RK 78 和 RK 79 轮密钥的全部 128 比特等价密钥组.
步骤 5. 攻击者建立代数方程, 并对等价密钥集合进行代数关系分析. DEFAULT 密码不同轮所使用的轮密钥
之间存在着变换关系, 由密钥循环关系可知, 最后 3 轮所使用的密钥分别为 RK 1 、 RK 2 和 RK 3 , 由算法 2 中的密钥
编排算法可知, 3 个轮密钥间存在关系:
RK 2 = AC L (PB(SC L (AC L (PB(SC L (AC L (PB(SC L (AC L (PB(SC L (RK 1 )))))))))))) (9)
RK 3 = AC L (PB(SC L (AC L (PB(SC L (AC L (PB(SC L (AC L (PB(SC L (RK 2 )))))))))))) (10)
密钥编排算法总共进行 4 轮 S 盒替换、比特置换和轮常数加运算. 为了加快求解速度, 攻击者根据不同操作
内的代数关系, 将密钥编排算法第 t+1 轮的 S 盒替换、比特置换和轮密钥加运算分别表示为如下代数方程.
(1) S 盒替换
根据 S 盒内部关系将 S 盒替换运算表示为下列代数方程:
4j 4j 4j+1 4 j 4j+2 4j 4j+1 4 j+3 4j+1 4j+2 4j+3
b t = a t a t ⊕a t a t ⊕a t ⊕a t a t ⊕a t ⊕a t a t
4j+1 4j 4 j+1 4j+2
b t = a t ⊕a t ⊕a t
(11)
4j+2 4j 4j+1 4 j 4j+2 4j+2 4j+1 4j+3 4 j+3 4 j+2 4 j+3
b t = a t a t ⊕a t a t ⊕a t ⊕a t a t ⊕a t ⊕a t a t
4j+3 4j+1 4j+2 4j+3
b t = a t ⊕a t ⊕a t
4 j+k 4 j+k
其中, a t 和 b t 分别表示密钥编排算法中第 t+1 轮 S 盒替换输入状态和输出状态中第 j 个 S 盒的第 k 比特, 并
且 ∈ t [0, 3], j ∈ [0, 31], k ∈ [0, 3].
(2) 比特置换
根据置换矩阵的特性建立如下代数方程: