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) 比特置换
                    根据置换矩阵的特性建立如下代数方程:
   373   374   375   376   377   378   379   380   381   382   383