Page 403 - 《软件学报》2025年第7期
P. 403

3324                                                       软件学报  2025  年第  36  卷第  7  期


                 qCPA  环境下利用   Simon  算法在多项式时间区分是否随机. 随后, Gouget 等人           [25] 改进了这一结果, 给出了一个 4
                 轮 Misty L  结构的 qCPA 区分器. 而  Cui 等人  [6] 则更进一步, 分别提出了    Misty L-FK  结构的  5  轮  qCPA  区分器和
                 Misty R-FK  结构的  5  轮  qCCA  区分器. Zou  等人  [21] 通过结合  Simon 算法的周期函数和生日攻击的思想, 在     Q1  模
                 型下提出了对     5  轮  Misty L/R-F  结构和  6  轮  Misty L/R-KF/FK  结构的密钥恢复攻击.
                    Type-1  型广义  Feistel 结构是 Feistel 结构的一个推广, CAST-256 [26] 则是基于该结构设计出来的. Deng     等人  [27]

                 基于中间相遇方法提出了         5d −3 轮  d  分支  Type-1  型广义  Feistel 结构的密钥恢复攻击方法. 在量子环境      Q2  模型
                 下, Dong  等人  [14] 基于  Simon  算法提出了  2d −1 轮  Type-1  型广义  Feistel 结构的量子区分器. 随后, Ni 等人  [28] 进一
                                      3d −3 轮  qCPA       d −d +1 轮  qCCA  区分器. Zou  等人  [21]  d −d +1 轮  qCCA
                                                           2
                                                                                           2
                 步改进了这一结果, 提出了                    区分器和                                  在
                 区分器基础上, 在     Q1  模型下提出了   d  Type-1  型广义  Feistel 结构的密钥恢复攻击.
                                             2
                    SMS4  是中国公布的商用分组密码         [29] . You  等人  [30] 提出了  6  轮  SMS4  的  qCPA 区分器. Cid  等人  [31] 进一步证
                 明了  7  轮  SMS4  在量子环境下也是不安全的. Cui 等人      [6] 为了更一般化地评估     SMS4  底层结构, 将  SMS4  所使用的
                 加密结构称为类      SMS4  广义  Feistel 结构, 并提出了  2d −1 轮类  SMS4  广义  Feistel-F/KF  结构的  qCPA 区分器和
                 2d +1 类  SMS4  广义  Feistel-FK  结构的  qCPA 区分器.
                    Cui 等人  [6] 称呼  MARS  分组密码所用的底层结构为类        MARS  广义  Feistel 结构. Moriai 等人  [32] 已证明  5  轮
                 MARS  方案是伪随机的且      8  轮  MARS  方案是超伪随机的. 在     Q2  模型下, Cui 等人  [6] 提出了  2d −1 轮类  MARS  广
                 义     Feistel-F/KF  结构的  qCPA 区分器和  2d +1 类  MARS  广义  Feistel-FK  结构的  qCPA 区分器.

                 2   相关密码结构

                    本文主要针对      Lai-Massey  结构、Misty  结构、Type-1  型广义  Feistel 结构、类  SMS4  广义  Feistel 结构和类
                 MARS  广义  Feistel 结构, 下面就相关概念予以介绍.

                 2.1   Lai-Massey  结构
                    本文中被攻击的       Lai-Massey  结构使用  XOR  运算代替一般的加法和减法运算, 且置换            σ 满足  σ(x L , x R ) = (x R ,
                 x L ⊕ x R ), 如图  1(a) 所示. 第  i    轮  Lai-Massey  结构的输入为  (x i−1 ,y i−1 ), 则输出为  (x i ,y i ) ← (σ(x i−1 ⊕ F i (∆ i−1 )),y i−1 ⊕
                                              i
                                       ,
                 F i (∆ i−1 )), 其中  ∆ i−1 = x i−1 ⊕y i−1 F i  为第   轮轮函数. 在最后一轮, 左半分支将无须置换  σ, 即输出为  (x i ,y i ) ← (x i−1 ⊕
                 F i (∆ i−1 ),y i−1 ⊕ F i (∆ i−1 )). 本文中设  Lai-Massey  结构的输入为   n  比特, 则其左右分支状态均为  n/2  比特.

                                          x i−1         y i−1   x i−1         y i−1
                                                                        k i
                                                 Δ i−1
                                                                   Δ i−1    k i
                                                 F i                   F i

                                           σ                     σ

                                           x i           y i     x i          y i
                                                 (a)                   (b)
                                                    图 1 Lai-Massey  结构

                    类似于   Ito  等人在文献  [16] 中的命名方式, 我们根据密钥注入的方式, 即将轮密钥                k i  与中间态  ∆ i−1  异或后作
                 为轮函数   F i  的输入, 称其为  Lai-Massey-KF  结构, 如图  1(b) 所示.

                 2.2   Misty  结构
                    由于  XOR  运算位置不同, Misty   结构可分为     L  和  R  两种结构, 如图  2  所示. 设  Misty L  结构第  i 轮的输入状态
                                i
                 为   (x i−1 ,y i−1 ), 则其第   轮的输出状态为  (x i ,y i )←(y i−1 ,F i (k i , x i−1 )⊕y i−1 ). 类似地, 如图  2(b) 所示, Misty R  结构第  i 轮的
                 输出状态为    (x i ,y i )←(y i−1 ⊕ F i (k i , x i−1 ),F i (k i , x i−1 )). 同样地, 本文假设  Misty  结构的输入为  n 比特, 则其左右分支状态
                 均为  n/2 比特.
   398   399   400   401   402   403   404   405   406   407   408