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

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


                    根据  Misty L-FK                      (x 5 ,y 5 ) 的值为:
                                 结构的加密过程, 可得到密文
                          x 5 = y 0 ⊕ F 1 (x 0 )⊕k 1 ⊕ F 2 (y 0 )⊕k 2 ⊕ F 3 (y 0 ⊕ F 1 (x 0 )⊕k 1 )⊕k 3 ⊕ F 4 (y 0 ⊕ F 1 (x 0 )⊕k 1 ⊕ F 2 (y 0 )⊕k 2 )⊕k 4 ,

                                   y 5 = x 5 ⊕ F 5 (y 0 ⊕ F 1 (x 0 )⊕k 1 ⊕ F 2 (y 0 )⊕k 2 ⊕ F 3 (y 0 ⊕ F 1 (x 0 )⊕k 1 )⊕k 3 )⊕k 5 .
                                              y 5  异或后可得:
                    将密文的左半部分       x 5  和右半部分

                                                                                                     (11)
                                   x 5 ⊕y 5 = F 5 (y 0 ⊕ F 1 (x 0 )⊕k 1 ⊕ F 2 (y 0 )⊕k 2 ⊕ F 3 (y 0 ⊕ F 1 (x 0 )⊕k 1 )⊕k 3 )⊕k 5
                    根据公式    (11) 可设函数:

                                                                                                     (12)
                                    G(x,y) = F 5 (y⊕ F 1 (x)⊕k 1 ⊕ F 2 (y)⊕k 2 ⊕ F 3 (y⊕ F 1 (x)⊕k 1 )⊕k 3 )⊕k 5
                                                                      n/2
                             y
                                             y 0 x,y ∈ {0,1}
                 其中, 变量   x 和   分别对应明文   x 0  和  ,     n/2   且  G(x,y) ∈ {0,1} . 在公式  (12) 的基础上, 我们可以构建新的
                 5  轮  Misty L-FK  结构密钥恢复攻击, 具体过程如下.
                               (x ,y = F 1 (x )) (x ,y = F 1 (x )), 并查询其密文. 根据公式  (11)、(12) 分别进行计算, 并对输出进
                                                    2
                                1
                                  1
                                            2
                                          ,
                                        1
                                               2
                    (1) 选择明文    0  0    0   0  0    0
                 行异或可得:

                                                     1
                                1
                                  1
                                                                              2
                                         2
                                       2
                             G(x ,y )⊕G(x ,y ) = F 5 (k 1 ⊕ F 2 (y )⊕k 2 ⊕ F 3 (k 1 )⊕k 3 )⊕ F 5 (k 1 ⊕ F 2 (y )⊕k 2 ⊕ F 3 (k 1 )⊕k 3 ).
                                0
                                                     0
                                                                              0
                                         0
                                  0
                                       0
                                   1                       2                         1      2    1  1
                                                                                             ,
                                                ,
                    (2) 设  β 1 = k 1 ⊕ F 2 (y )⊕k 2 ⊕ F 3 (k 1 )⊕k 3 β 2 = k 1 ⊕ F 2 (y )⊕k 2 ⊕ F 3 (k 1 )⊕k 3 , 则  β 1 ⊕β 2 = F 2 (y )⊕ F 2 (y ) G(x ,y )⊕G
                                   0                       0                         0      0    0  0
                                                                       ,
                   2  2                1     2                             1  1   2  2    1  y  值, 可通过
                                                                                              2
                   (x ,y ) = F 5 (β 1 )⊕ F 5 (β 1 ⊕ F 2 (y )⊕ F 2 (y )) . 由于已知公开函数   F 5  和   F 2 G(x ,y )⊕G(x ,y )  值,  y  和
                   0  0                0     0                             0  0   0  0    0   0
                 Grover 算法求出  β 1  值.
                           β 1  值和公式            k 5 .
                    (3) 根据          (12), 可计算出
                                                                          k 4 k 3 k 2  和  .
                    (4) 在计算出  k 5  后, 可使用步骤  (1)–(3) 类似的方法依次恢复出轮密钥  ,  ,           k 1
                    复杂度分析. 在对      5  轮  Misty L-FK  结构的密钥恢复攻击过程中, 我们仅需选择         2  个明密文对, 且在依次恢复
                                                 n/4                                n/4            O(1) 且
                 轮密钥   k 5 k 1  的时间复杂度分别都为    O(2 ). 综上, 我们的攻击总体时间复杂度为           O(2 ), 数据复杂度为
                         –
                 经典存储复杂度可忽略不计.
                    若在  5  轮  Misty L-FK  结构的基础上再增加   r −5 轮, 则可先穷举轮密钥     k 6 k r , 再重复以上步骤恢复其他轮密
                                                                              –
                                                           O(2 n/4+(r−5)n/2           O(1) 且经典存储复杂度
                 钥, 并用明密文进行验证正确性. 则整体时间复杂度为                         ), 数据复杂度依然仅为
                 可忽略不计.

                 5.3   对  Misty R-KF  结构的密钥恢复攻击
                    如图  10 所示的  4 轮  Misty R-KF 结构, 其中,   (             k i  为轮密钥且  |k i | = n/2 i = 1,2,3,4 (x 0 ,y 0 )
                                                                                                  ),
                                                                                          (
                                                     F i i = 1,2,3,4) 为轮函数,
                 为  4  轮  Misty R-KF  结构的明文输入且  |(x 0 ,y 0 )| = n (x 4 ,y 4 ) 作为密文输出.
                                                       ,


                                           y 1             y 2             y 3
                           y 0                                                                y 4
                                                                                              x 4
                           x 0      F 1            F 2             F 3             F 4
                                                           x 2             x 3
                                           x 1
                                                                              k 4
                               k 1             k 2            k 3
                                                 图 10 4  轮  Misty R-KF  结构

                    根据  Misty R-KF                                                 y 4  异或后可得:
                                  结构的加密过程, 得到密文        (x 4 ,y 4 ), 并将左半部分   x 4  和右半部分
                                         x 4 ⊕y 4 = F 3 (F 1 (x 0 ⊕k 1 )⊕ F 2 (F 1 (x 0 ⊕k 1 )⊕y 0 ⊕k 2 )⊕k 3 )  (13)
                    由公式   (13) 可设函数:

                                          G(x,y) = F 3 (F 1 (x⊕k 1 )⊕ F 2 (F 1 (x⊕k 1 )⊕y⊕k 2 )⊕k 3 )  (14)
                                                                  n/2
                                         y 0 x,y ∈ {0,1}
                 其中, 变量   x 和  y 分别对应  x 0  和  ,   n/2   且  G(x,y) ∈ {0,1} . 依据公式  (14), 我们提出以下针对  4 轮  Misty R-
                 KF  结构的密钥恢复过程.
   404   405   406   407   408   409   410   411   412   413   414