Page 401 - 《软件学报》2026年第5期
P. 401

2280                                                       软件学报  2026  年第  37  卷第  5  期


                                                  
                                                    r 0
                                                  S (p,b), p > 0,b > 0,r 0 > 0
                                                  
                                                    ∆
                                                  
                                                  
                                                  
                                                    r 1
                                                   S (q,b), q > 0,b > 0,r 1 > 0
                                                    Λ
                 从而对搜索过程进行加速. 具体的搜索过程如算法                1  所示.
                 算法  1. 改进的差分-线性区分器搜索算法.
                 输入: 轮数  r DL ;
                 输出: 高相关性的     r DL  轮差分-线性逼近.
                   cor ← 0;
                 WHILE TRUE:

                  确定  r 0 ,r m ,r 1  的值使得  r 0 +r m +r 1 = r DL ;
                  FOR   b ∆  in range  (1,B): /*B  是预先设置的活跃比特个数的阈值*/
                   FOR  b Λ  in range  (1,B):
                    FOR   k ∆  in range  (1,K): /*K  是预先设置的与差分概率和线性相关性有关的阈值*/
                        p = 2 −k ∆ ;
                              r 0      r 0
                        ∆ m ← S (p,b ∆ ); /*  S (p,b ∆ ) 可以通过预计算得到*/
                              ∆        ∆
                     FOR    k Λ  in range  (1,K):
                          q = 2 −k Λ ;
                                r 1      r 1
                          λ m ← S (q,b Λ ); /*  S (q,b Λ ) 可以通过预计算得到*/
                                Λ        Λ
                                   r m
                          r = Cor(∆ m −→ λ m );
                                  2
                          cor ← prq ;
                      IF    cor > cor:
                            cor = cor;
                      END IF
                     END FOR
                    END FOR
                   END FOR
                  END FOR
                 END WHILE


                  3   应用于  SPECK

                  3.1   SPECK  算法简介
                    SPECK  是  NSA  在  2013  年设计的一族轻量级分组密码算法       [2] , SPECK  的参数如表  4  所示.

                                                    表 4 SPECK  的参数

                             分组         密钥长 密钥字                          分组          密钥长 密钥字
                    版本            字大小n              轮数 a b      版本            字大小n               轮数 a b
                            长度2n         度mn   个数m                      长度2n          度mn  个数m
                  SPECK32/64  32    16    64    4    22  7 2  SPECK96/96  96    48     96    2    28  8 3
                  SPECK48/72  48    24    72    3    22  8 3  SPECK96/144  96   48    144    3    29  8 3
                  SPECK48/96  48    24    96    4    23  8 3  SPECK128/128  128  64   128    2    32  8 3
                  SPECK64/96  64    32    96    3    26  8 3  SPECK128/192  128  64   192    3    33  8 3
                 SPECK64/128  64    32    128   4    27  8 3  SPECK128/256  128  64   256    4    34  8 3
   396   397   398   399   400   401   402   403   404   405   406