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

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


                 distinguisher  for  SPECK32  and  a  12-round  differential-linear  distinguisher  for  SPECK48.  Both  outperform  the  best-known  differential-
                 linear distinguishers for these ciphers.
                 Key words:  cryptanalysis; symmetric cipher; differential-linear cryptanalysis; SPECK; block cipher

                    ARX  结构的密码算法是对称密码算法中非常重要的一类密码算法. ARX                     结构组成简单, 仅包含模加        (与/或)、
                 循环移位和异或这       3  个基本操作; 易于实现, 在现在的大多数计算平台中, 如             X86、ARM、8-bit 微处理器等, 都支
                 持模加   (与/或)、移位和异或操作, 仅需要较少的代码量就可以对基于                  ARX  构造的算法进行实现; 性能优越, 无论
                 是在软件平台还是硬件平台, 基于          ARX  构造的算法都表现良好. 结构简单、易于实现、软硬件性能优越等优点使
                                                                                                      [1]
                 得  ARX  结构的密码算法受到广大密码设计者的青睐. ARX                结构被广泛应用于分组密码的设计中, 如              TEA 、
                               [3]
                                              [5]
                                      [4]
                      [2]
                                                       [6]
                 SPECK 、HIGHT 、LEA 、CHAM 、SPARX 等.
                    差分-线性分析是由       Langford  等人  [7] 提出的一种组合类分析方法. 假设算法       E  可以被分解为    E 0  和  E 1  两部分,
                 即   E = E 1 ◦ E 0 , 组合   E 0  部分一条高概率的差分和   E 1  部分一条高相关性的线性逼近可以得到算法       E  的一个有效的
                 差分-线性区分器. 差分-线性分析被用于许多分组密码算法的攻击中, 特别地, 对                      Serpent 和  ICEPOLE  等算法的最
                 好的攻击是基于差分-线性分析的. 值得强调的是, Langford             等人的差分-线性分析框架依赖于两个假设:               E 0  和  E 1
                                 E 0  的输出差分的随机性假设. 在后续的研究中, 许多学者指出上述两个假设在实际情况中并
                 部分的独立性假设和
                 不一定是满足的. Biham      等人  [8]  指出  E 0  输出差分的随机性假设在实际情况下并非一定满足. Blondeau            等人  [9]
                 进行深入研究, 给出了只满足         E 0  和  E 1  部分是独立的情况下差分-线性逼近相关性的精确计算公式.
                    关于   E 0  和  E 1  部分的依赖性问题, Bar-On  等人  [10] 将  boomerang  攻击中的  sandwich  框架的思想  [11] 应用于差分-
                 线性分析框架中, 给出了       DLCT  框架来计算差分-线性逼近的相关性, 该框架考虑了               E 0  和  E 1  之间的依赖性. DLCT
                 框架基于差分线性连接表         (DLCT), 在该框架中密码算法      E  可以被分解为   E 0 、E m 、E 1  这  3 部分, 即  E = E 1 ◦ E m ◦ E 0 .
                 组合  E 0  部分一条高概率的差分,     E m  部分一条高相关性的差分-线性逼近和           E 1  部分一条高相关性的线性逼近可以
                 得到算法   E  的一个有效的差分-线性区分器.          E m  部分差分-线性逼近的相关性借助         DLCT  表或者实验方法来计算
                 得到.
                    ARX  类密码算法的差分-线性分析是密码分析的研究热点. 近些年来有许多相关的工作被提出. 最近, Bellini
                 等人  [12] 将混合整数线性规划    (MILP) 和混合整数二次约束规划         (MIQCP) 技术引入到    ARX  算法的差分-线性区分
                 器搜索中并应用于       SPECK  算法. 但是该方法存在一些限制, 一方面是在差分-线性区分器搜索的建模中存在一些
                 近似导致建模是粗糙的; 另一方面, 受求解效率的影响, 该方法只能应用于分组长度较小的算法中, 如                              SPECK32.
                 Chen  等人  [13] 给出了一个新的搜索  ARX  类密码算法差分-线性区分器的方法, 应用于             SPECK  和  LEA  中, 得到了许
                 多更好的区分器.
                    本文贡献如下. 对     ARX  类分组密码算法的差分-线性区分器搜索算法进行研究. 首先, 通过计算                     SPECK32/64
                 在不同随机密钥下的差分-线性逼近的实际相关性, 进一步展示了样本量的选择跟实验测量的相关性的大小之间
                 的关系. 然后, 结合高相关性的差分-线性逼近中差分部分和线性部分的特点, 我们给出了一个改进的差分-线性区
                 分器搜索算法. 区别于传统的差分-线性区分器搜索算法, 我们从高概率的差分特征和线性特征出发, 然后实验测
                 量中间部分差分-线性逼近的相关性, 搜索到了一些新的区分器. 具体地, 将所提差分-线性区分器搜索算法应用于
                 SPECK  中, 得到了  SPECK32  的  11  轮差分-线性区分器和   SPECK48  的  12  轮差分-线性区分器   (表  1  展示了与已有
                 差分-线性区分器的结果对比). 这些区分器都优于              SPECK  已知最好的差分-线性区分器.

                                                表 1 差分-线性区分器结果对比

                                        算法           轮数         相关性          参考文献
                                      SPECK32        10          2 −12        [12]
                                      SPECK32        10         2 −11.58      [13]
                                      SPECK32        11         2 −15.78     第3.2节
                                      SPECK48        11         2 −17.55      [13]
                                      SPECK48        12         2 −22.96     第3.2节
   391   392   393   394   395   396   397   398   399   400   401