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

许垠松 等: 分组密码结构的低数据量子密钥恢复攻击                                                       3331


                              (x ,y ) (x ,y ), 并查询其对应的密文, 根据公式     (13)、(14) 计算出:
                                      1
                                        2
                                1
                                  1
                                   ,
                    (1) 选择明文
                                0  0  0  0

                                                                        1
                                           1
                                                      1
                                             1
                                                                  1
                                        G(x ,y ) = F 3 (F 1 (x ⊕k 1 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕k 3 ),
                                           0  0       0           0     0
                                                                        2
                                                                  1
                                                      1
                                           1
                                             2
                                        G(x ,y ) = F 3 (F 1 (x ⊕k 1 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕k 3 ).
                                           0
                                             0
                                                      0
                                                                        0
                                                                  0
                    ( 2 )   设  β 1 = F 1 (x ⊕k 1 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕k 3 β 2 = F 1 (x ⊕k 1 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕k 3 ,   则  G(x ,y ) =
                                                                                                   1
                                                                                     2
                                 1
                                                                                                     1
                                                                   1
                                                   1
                                                                               1
                                             1
                                                           ,

                                 0           0     0               0           0     0             0  0
                 F 3 (β 1 ) G(x ,y ) = F 3 (β 2 ) , 利用  Grover 算法求出  β 1 和 β 2 值.
                         1
                           2
                      ,
                         0  0
                                                      1     1           1      2             1      1
                    (3) 将   β 1  和  β 2  异或后可得  β 1 ⊕β 2 = F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 ), 设  δ 1 = F 1 (x ⊕k 1 )⊕y ⊕k 2 ,
                                                                               0
                                                            0
                                                      0
                                                                        0
                                                                                             0
                                                                                                    0
                                               2
                        1     2      δ 1 ⊕δ 2 = y ⊕y . 可利用                           1  2
                                            1
                 δ 2 = F 1 (x ⊕k 1 )⊕y ⊕k 2 , 则   0  0  Grover 算法求  β 1 ⊕β 2 = F 2 (δ 1 )⊕ F 2 (δ 1 ⊕y ⊕y )  中未知量  .
                                                                                                 δ 1
                        0
                                                                                        0
                              0
                                                                                     0
                                      2
                                        2
                                   ,
                                  1
                                2
                    (4) 选择明文  (x ,y ) (x ,y ), 并查询其对应的密文, 计算出:
                                0  0  0  0
                                        G(x ,y ) = F 3 (F 1 (x ⊕k 1 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕k 3 ),
                                                                        1
                                                      2
                                                                  2
                                             1
                                           2
                                           0  0       0           0     0
                                           2
                                                                        2
                                                      2
                                             2
                                        G(x ,y ) = F 3 (F 1 (x ⊕k 1 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕k 3 ).
                                                                  2
                                           0  0       0           0     0
                               2          2      1      ,      2           2      2            2  1
                    (5) 设  β 3 =F 1 (x ⊕k 1 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕k 3 β 4 =F 1 (x ⊕k 1 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕k 3 , 则  G(x ,y )=F 3 (β 3 ),
                                                                                               0
                                                                           0
                                                                                  0
                                                 0
                                                               0
                                                                                                 0
                               0
                                          0
                 G(x ,y ) = F 3 (β 4 ), 利用  Grover 算法求出   β 3 和 β 4 值.
                    2
                      2
                    0  0
                                                      2     1           2      2             2      1
                    (6) 将   β 3  和  β 4  异或后可得  β 3 ⊕β 4 = F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 )⊕ F 2 (F 1 (x ⊕k 1 )⊕y ⊕k 2 ), 设  δ 3 = F 1 (x ⊕k 1 )⊕y ⊕k 2 ,
                                                      0     0           0      0             0      0
                                            1
                        2     2      δ 3 ⊕δ 4 = y ⊕y . 可利用                           1  2
                                               2
                 δ 4 = F 1 (x ⊕k 1 )⊕y ⊕k 2 , 则        Grover 算法求  β 3 ⊕β 4 = F 2 (δ 3 )⊕ F 2 (δ 3 ⊕y ⊕y )  中未知量  .
                                                                                                 δ 3
                        0     0             0  0                                     0  0
                                                       1
                                                                 2
                    (7) 将得到的  δ 1  和   δ 3  异或后可得  δ 1 ⊕δ 2 = F 1 (x ⊕k 1 )⊕ F 1 (x ⊕k 1 ). 再利用  Grover 算法求出其中的未知量  k 1 .
                                                                 0
                                                       0
                                                     k 2 k 3  和  .
                    (8) 恢复出轮密钥    k 1  后, 可依次求出轮密钥  ,       k 4
                    复杂度分析. 在对      4  轮  Misty R-KF  结构的密钥恢复攻击过程中, 我们仅需选择         4  个明密文对, 且在步骤     (2)、
                 (3)、 (5)–(8) 中利用  Grover 算法搜索未知量, 每一个未知量的规模为            2 , 所以每一步的时间复杂度都分别为
                                                                         n/2
                    n/4                                    n/4
                 O(2 ). 综上, 该密钥恢复攻击的总体时间复杂度为            O(2 ), 数据复杂度为     O(1)  且经典存储复杂度可忽略不计.
                    若在  4  轮  Misty R-KF  结构上再增加   r −4 轮, 则可先穷举轮密钥   k 5 k r , 再重复以上步骤恢复其他轮密钥, 并
                                                                         –
                                                    O(2 n/4+(r−4)n/2            O(1)  且经典存储复杂度可忽略
                 用明密文验证正确性. 则整体时间复杂度为                        ), 数据复杂度依然仅为
                 不计.

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

                                    k 1          k 2         k 3          k 4         k 5
                                         y 1         y 2          y 3          y 4
                                                                                              y 5
                           y 0
                           x 0  F 1          F 2         F 3          F 4          F 5       x 5
                                         x 1                                  x 4
                                                     x 2          x 3
                                                 图 11 5  轮  Misty R-FK  结构

                    根据  Misty R-KF                                                 y 5  异或后可得:
                                  结构的加密过程, 得到密文        (x 5 ,y 5 ), 并将左半部分   x 5  和右半部分
                                                                                                     (15)
                                                     x 5 ⊕y 5 = F 4 (x 3 )⊕k 5
                    对右半部分密文      y 5  经过函数  F 5  的逆可以求得:

                                                       −1
                                                  x 4 = F (y 5 ) = y 3 ⊕ F 4 (x 3 )⊕k 4              (16)
                                                      5
                    将公式   (15)、(16) 异或后可得:

                                                   −1
                                                  F (y 5 )⊕ x 5 ⊕y 5 = y 3 ⊕k 5 ⊕k 4                 (17)
                                                   5
                 其中,  y 3 = F 3 (F 1 (x 0 )⊕ F 2 (F 1 (x 0 )⊕y 0 ⊕k 1 )⊕k 2 ). 可设函数:

                                                                                                     (18)
                                          G(x,y) = F 3 (F 1 (x)⊕ F 2 (F 1 (x)⊕y⊕k 1 )⊕k 2 )⊕k 4 ⊕k 5
   405   406   407   408   409   410   411   412   413   414   415