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

张语晗 等: 对缩减轮     SPECK  改进的差分-线性分析                                               2281


                                        n
                                           n
                                                  n
                                               n
                    SPECK2n         E k : F ×F → F ×F  被定义为:
                                        2  2   2  2
                            的轮函数
                                          E k (x,y) = ((x ≫ a⊞y)⊕k,y ≪ b⊕(x ≫ a⊞y)⊕k.
                                                                                n
                    SPECK2n  的密钥编排复用轮函数来生成轮密钥. 令            K = (l m−2 ,...,l 0 ,k 0 ), l i ,k i ∈ F , m ∈ {2,3,4} 是  SPECK2n  的一
                                                                                2
                 个密钥,  l i ,k 满足:

                                                   
                                                   l i+m−1 = (k i ⊞l i ≫ a)⊕i
                                                                     .
                                                   
                                                   
                                                   
                                                    k i+1 = k i ≪ b⊕l i+m−1
                    SPECK2n  的轮函数和密钥编排的分解图如图            4  所示.

                                            x r       y r
                                             a
                                                           l i+m−2  l i  k i
                                                                               n
                                                                      E i
                                                       b
                                         k r
                                            x r+1     y r+1
                                              图 4 SPECK2n  的轮函数和密钥编排

                  3.2   应 用
                    我们将算法     1  应用于  SPECK  算法中, 首次得到了     SPECK32  的  11  轮差分-线性区分器和    SPECK48  的  12  轮
                 差分-线性区分器.
                    为了能够在较短的时间内返回           SPECK  的好的差分-线性区分器. 参考        Chen  等人  [13] 在  ASIACRYPT 2023  中的
                 测试方法, 对于中间部分相关性的测量, 我们首先选择                2 26  大小的样本量来测试, 然后当算法       1  返回一个好的差分-
                 线性特征时, 我们再使用       2 30  大小的样本量和   100  个随机密钥来进一步确认中间部分相关性的准确性, 基于该策略
                 我们能够快速地搜索到        SPECK  新的差分-线性区分器. 事实上, 在       SPECK32 的  11 轮差分-线性区分器和      SPECK48
                 的  12  轮差分-线性区分器中中间部分的相关性均是不小于                2 −10   的. 基于统计理论, 无论是  2 26  大小的样本量还是
                 2 30  大小的样本量都能够得到较准确的测量值.
                  3.2.1    应用于  SPECK32
                    我们首先预计算了       SPECK32 的  2 轮、3 轮和  4 轮最优、次优、次次优差分特征的输出差分集合                S 、S 、S ∆ 4
                                                                                                2
                                                                                                    3
                                                                                                ∆
                                                                                                    ∆
                 和  SPECK32  的  2  轮、3  轮和  4  轮最优、次优、次次优线性特征的输入线性掩码集合              S 、S 、S . 集合  S (p,b)
                                                                                            4
                                                                                     2
                                                                                         3
                                                                                                   r 0
                                                                                         Λ
                                                                                     Λ
                                                                                            Λ
                                                                                                   ∆
                                                                                 r1
                 表示概率为    p, 输出差分的活跃比特个数为         b 的  r 0  轮差分特征的输出差分的集合,      S (q,b) 表示相关性为   q, 输入线
                                                                                 Λ
                                         r 1  轮线性特征的输入线性掩码的集合. 我们使用基于             SAT  的自动化搜索方法来获
                 性掩码的活跃比特个数为         b 的
                                    r1
                        r 0        S (q,b). 表         2                       E m  部分的差分-线性逼近的相关性
                 得集合   S (p,b) 和集合          5  中列出了   S  的部分元素. 本文中, 在计算
                        ∆           Λ                 ∆
                 时, 我们使用   2 30  大小的样本集合.

                                                                2
                                               表 5 SPECK32  的  S  的部分元素
                                                               ∆

                  b的取值            p = 2 −1                  p = 2 −2                    p = 2 −3
                                                                                   2
                                                                                     −3
                   b = 1            -                         -                   S (2 ,1) = {[3,10,1,2]}
                                                                                   ∆
                                                                                 2
                                                                                   −3
                                                     −2
                                                   2
                   b = 2            -             S (2 ,2) = {[8,24],[15,31],[10,26]}  S (2 ,2) = {[1,17],...,[3,19]}
                                                   ∆
                                                                                 ∆
                                                                               2
                                                   2
                           2
                                                                                 −3
                             −1
                                                     −2
                   b = 3  S (2 ,3) = {[1,15,31],[1,3,17]}  S (2 ,3) = {[1,15,31],...,[10,12,26]}  S (2 ,3) = {[1,15,31],...,[10,12,26]}
                                                                               ∆
                           ∆
                                                   ∆

                    表  6  中列出了  S  的部分元素.
                                 4
                                 Λ
                    基于算法    1, 结合预计算得到     SPECK32  的  2  轮、3  轮和  4  轮最优、次优、次次优差分特征的输出差分集合
   397   398   399   400   401   402   403   404   405   406   407