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

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


                 S 、S 、S  和 4  SPECK32  的  2  轮、3  轮和  4                                      S 、S 、S ,
                                                                                               2
                  2
                      3
                                                                                                   3
                                                                                                       4
                  ∆   ∆  ∆                         轮最优、次优、次次优线性特征的输入线性掩码集合                     Λ   Λ   Λ
                 我们首次搜索得到了       SPECK32  的  11  轮差分-线性区分器. 11  轮区分器的具体细节如下所示:

                                                 
                                                 r 0 = 3, r m = 4, r 1 = 4
                                                 
                                                 
                                                 
                                                 
                                                  ∆ m = [10,26], λ m = [3]
                                                 
                                                 
                                                 
                                                 
                                                 
                                                 
                                                         r 0 =3   −6
                                                 
                                                  p = Pr(∆ in −−−→ ∆ m ) = 2
                                                 
                                                 
                                                 
                                                                      .
                                                          r m =4
                                                 
                                                  r = Cor(∆ m −−−→ λ m ) = 2 −1.78
                                                 
                                                 
                                                 
                                                 
                                                 
                                                          r 1 =4   −4
                                                 
                                                 q = Cor(λ m −−−→ λ out ) = 2
                                                 
                                                 
                                                 
                                                 
                                                 
                                                        r DL =11
                                                                  −15.79
                                                  Cor(∆ in −−−−→ λ out ) = 2
                                                 
                    最终我们得到了如下的         2  个  SPECK32  的  11  轮区分器:

                                                           r DL =11
                                              D 1 : (8024,8500) −−−−→ (387a,3864)
                                              
                                              
                                                                         .
                                              
                                                           r DL =11
                                              
                                                D 2 : (8024,8500) −−−−→ (3854,3844)

                                               表 6 SPECK32  的  S  的部分元素
                                                                4
                                                               Λ

                  b的取值                     q = 2 −3                               q = 2 −4
                                                                                  −4
                                                                                4
                   b = 1                    -                                  S (2 ,1) = {[3]}
                                                                                Λ
                   b = 2                    -                                       -
                                                                         4
                                                                           −4
                   b = 3                    -                           S (2 ,3) = {[0,14,23],...,[0,15,23]}
                                                                         Λ
                                  4  −3                                   4  −4
                                 S (2 ,1) ={[0, 5, 13, 14, 20, 23],…,    S (2 ,⩾ 4) ={[10, 11, 12, 19],…,
                   b ⩾ 4          Λ                                       Λ
                                    [0, 4, 5, 12, 14, 23, 28, 29]}    [0, 3, 6, 7, 10, 11, 12, 13, 14, 19, 20, 23, 30]}

                    ● SPECK32/64  的  13  轮密钥恢复: 我们以区分器    D 1  下的密钥恢复攻击为例进行介绍, 其他区分器下的攻击过
                 程是类似的. 在    SPECK32  的  11  轮差分-线性区分器   D 1  后添加  2  轮, 我们给出了  SPECK32/64  的  13  轮密钥恢复攻
                      x = (x , x ,..., x ), y = (y ,y ,...,y )  表示  SPECK32/64  r  轮的输入,  k = (k ,k ,...,k )  表示第   轮的轮
                           r
                       r
                                                                                          r
                             r
                                                 r
                                      r
                                                                              r
                                                                                     r
                                                                                  r
                                          r
                                            r
                                   r
                                                                                                  r
                 击. 令                                             第
                           15  14  0      15  14  0                               15  14  0
                                                 r+1
                               r+1
                                              r+1
                                                       r+1
                            r+1
                                     r+1
                 密钥,  x r+1  = (x , x ,..., x ), y r+1  = (y ,y ,...,y ) 表示  SPECK32/64  第  r  轮的输出. 根据  SPECK32/64  的轮函
                            15  14   0        15  14   0
                 数有:

                                                  
                                                    r
                                                            r+1
                                                   y = (x r+1 ⊕y ) ≫ 2
                                                  
                                                  
                                                  
                                                                      .
                                                  
                                                  
                                                    r   r+1  r  r
                                                    x = ((x  ⊕k )⊟y ) ≪ 7
                               r
                                   r
                       r
                    令  t = (x r+1  ⊕k )⊟y , 根据模加操作的定义可以得到:

                                           r  r  r+1  r+1  r+1  r  r  r  r  r  r
                                         t = f (x , x ,..., x ,k ,k ,...,k ,y ,y ,...,y )
                                          i  i  i  i−1  0  i  i−1  0  i  i−1  0
                                         
                                         
                                         
                                         
                                         
                                           r  r
                                          x = t                                ,
                                           i  (i−7)%16
                                         
                                         
                                         
                                         
                                          r  r+1    r+1
                                          y = x (i+2)%16  ⊕y (i+2)%16
                                           i
                                                  r
                                       r+1
                                                            r
                                                      r
                 其中,   f  是关于  x , x ,..., x ,k ,k ,...,k ,y ,y ,...,y  的非线性函数. 将  i = 2,5,6,11,12,13,18,19,20,21,22,27,
                                             r
                              r+1
                       r
                                                    r
                                  r+1
                                           r
                                                      i−1
                                             i−1
                                           i
                                                            0
                              i
                      i
                                       0
                                                  0
                                                    i
                                  i−1
                                                                          12
                         x , 可知对  SPECK32/64  实施  13                     k 和k 13  共  32  个密钥比特. 此时攻击需要
                          12
                 28,29 代入   i                      轮的密钥恢复攻击需要猜测
                 的数据复杂度为      2 15.78×2  = 2 31.56  , 需要的时间复杂度为  2 31.56+32  = 2 63.56 .
                  3.2.2    应用于  SPECK48
                    与  SPECK32  的差分-线性区分器搜索过程类似, 我们首先预计算了                SPECK48  的  2  轮、3  轮和  4  轮最优、次
                                                   3
                                                2
                 优、次次优差分特征的输出差分集合             S 、S 、S  和 4  SPECK48  的  2  轮、3  轮和  4  轮最优、次优、次次优线性特
                                                ∆  ∆   ∆
                                        3
                                            4
                                                                                                     4
                                     2
                 征的输入线性掩码集合        S 、S 、S . 然后利用算法      1  来搜索  SPECK48  的差分-线性区分器. 表     7  中列出了  S  的
                                    Λ   Λ   Λ                                                        ∆
                 部分元素. 本文中, 在计算      E m  部分的差分-线性逼近的相关性时, 我们使用           2 30   大小的样本集合.
   398   399   400   401   402   403   404   405   406   407   408