Page 374 - 《软件学报》2025年第5期
P. 374

2274                                                       软件学报  2025  年第  36  卷第  5  期



                 算法  1. DEFAULT  密码的加密算法.

                 输入: 明文  X  和密钥  K  ;
                 输出: 密文  Y.

                 1. S = X
                 2. FOR r = 0 TO 27 DO
                 3.    S = AK(AC L (PB(SC L (S ))))
                 4. END FOR
                 5. FOR r = 28 TO 51 DO
                 6.    S = AK(AC C (PB(SC C (S ))))
                 7. END FOR
                 8. FOR r = 52 TO 79 DO
                 9.    S = AK(AC L (PB(SC L (S ))))
                 10. END FOR
                 11. Y = S
                 12. RETURN Y
                    在轮数设计中, 整体      80  轮分别采用前    28  轮和后  28  轮为外核轮, 中间  24  轮为内核轮. 内外核轮采用不同的         S
                 盒和轮常数设计, 目的是分别抵御经典密码分析和常见侧信道分析, 如表                      3  和表  4  所示.

                                               表 3 DEFAULT   密码使用的    S  盒

                    位置      0    1   2   3     4    5    6   7    8    9    10   11   12   13   14   15
                   外核轮      0    3   7   14   13    4   10   9    12   15   1    8    11   2    6    5
                   内核轮      1    9   6   15    7   12    8   2    10   14   13   0    4    3    11   5
                  密钥编排      0    3   7   14   13    4   10   9    12   15   1    8    11   2    6    5


                                               表 4 DEFAULT  密码使用的轮常数

                    位置                                    轮常数                                    轮数
                            1    3    7   15   31   62   61   59   55  47   30   60   57   71   第1–28轮
                   外核轮
                            39   14   29  58   53   43   22   44   24  48   33   2    5    11  第53–80轮
                                 1    3    7   15   31   62   61   59  55   47   30   60
                   内核轮                                                                         第29–52轮
                                 57   51  39   14   29   58   53   43  22   44   24   48
                  密钥编排                                      1                                   第1–4轮

                    S  盒是常见分组密码中唯一的非线性组件, 其强度直接影响密码整体的安全性. 为了增强抵御侧信道分析的强度,
                 外核轮   S  盒采用包含  3  个特殊的差分输入和差分输出对的设计. 在外核轮中, 对于               S  盒的任意两个输入, 如果它们的
                 差分输入等于特定的差分输入值           6、9  或  15, 那么它们的差分输出也是相同的, 并且结果分别为            10、15  或  5.
                    算法  2  给出了密钥编排算法      [26] . 原始密钥  K  经过  4  轮  S  盒替换、比特置换和轮常数加变换后, 得到       4  个初始
                 轮密钥   RK 0  、  RK 1  、  RK 2  和  RK 3  , 其中, S  盒替换、比特置换运算与外核轮相同, 轮常数加变换使用的轮常数为       1,
                 如表  3 和表  4 所示. 初始轮密钥循环参与每轮运算中, 每轮轮密钥            RK r  依次对应初始轮密钥     RK r mod 4  , 其中  r ∈ [0,79] .

                 算法  2. DEFAULT  密码的密钥编排算法.

                 输入: 原始密钥    K  ;
                           RK 0 ,RK 1 ,...,RK 78 ,RK 79  .
                 输出: 轮密钥
   369   370   371   372   373   374   375   376   377   378   379