Page 418 - 《软件学报》2026年第1期
P. 418

曹金政 等: 格上困难问题量子求解算法综述                                                            415


                 密钥结构, 研究者构造了对应的量子密钥恢复攻击, 包括基于                    Grover 量子搜索的    NTRU  量子密钥恢复和基于
                 Claw-Finding  量子碰撞的量子密钥恢复, 如图      11  所示.

                                                   NTRU 量子密钥恢复





                                         基于 Grover              基于 Claw-Finding


                                      Fluhrer 等人 , 2015             董经等人 , 2021
                                              [45]
                                                                          [47]
                                  针对 NTRU 的量子密钥恢复攻击          基于漫步 Claw-Finding 的密钥恢复攻击

                                       Laaji 等人 , 2019
                                             [46]
                                    量子密钥、明文恢复攻击
                                                图 11 NTRU  量子攻击发展概况

                  6.1   基于  Grover 搜索的  NTRU  量子密钥恢复
                    Fluhrer 等人  [45] 基于  Grover 量子搜索提出了对  NTRU  的量子密钥恢复, 该方法之后由        Laaji 等人  [46] 扩展为针
                 对密钥或明文的恢复攻击. 本节总结基于             Grover 搜索的  NTRU  量子密钥恢复原理. 首先将        NTRU  的公钥生成过
                 程用向量乘积表示, 根据公钥         h(x) = h 0 +h 1 x+...+h N−1 x N−1  的系数定义矩阵.

                                                                     
                                                      h 0  h 1  ...  h N−1 
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                             ...     
                                                      h N  h 0   h N−2 
                                                                     
                                                                     .
                                                                      
                                                  H =   .  .  .  .  
                                                      .
                                                      .   . .  . .  . .    
                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                       h 2  h 1  ...  h 0
                                                  f · H = pg mod q. 模  p  ( f · H = 0 mod q) mod p. 在乘积多项式模式
                    将   ( f,g) 用系数向量表示, 则得到等式                      可得
                 下, 等式可表示为     (( f 1 f 2 )· H = −f 3 · H mod q) mod p.
                    基于  Grover 量子搜索算法的    NTRU  量子密钥恢复分两步. 首先, 将所有可能的二元组             ( f 3 ,(−f 3 · H mod q) mod p)
                 存储在列表    L. 随后, 搜索   f 1 f 2 , 使得对应的  (( f 1 f 2 )· H mod q) mod p  存在于列表  L, 即可找到一个满足  (( f 1 f 2 )· H =
                 − f 3 · H mod q) mod p 的碰撞. 该过程的搜索空间大小为    | f 1 f 2 |. 根据  NTRU  的循环移位特性, 搜索空间可还继续降
                                       N                                m       m              m   −m
                 至  | f 1 f 2 |/N: 多项式环   F[x]/(x −1) 中的任意两个多项式   f 1 , f 2  存在关系  (x f 1 ) f 2 = (x ) f 1 f 2 . 更进一步,  (x f 1 )(x  f 2 ) =
                 f 1 f 2 , 故  NTRU  密码方案中有  x  −m  f · H = px g mod q. 该结果表示环   F[x]/(x −1) 中多项式乘  x m  表示多项式向右
                                                                           N
                                                  −m
                 或向左循环移动      m  位, 循环移动前后的多项式的系数只有位置发生了变化, 而数值保持不变. 因此, 对于公钥                          h,
                                                                                                     −m
                       −m
                 x −m  f, x g 也是一组可用的私钥, 对密文进行解密之后, 仅需再次循环位移即可得到明文信息, 且私钥对                      (x −m  f, x g)
                                                                        m
                                                                                  m
                 的恢复方法与     ( f,g) 的恢复方法相同. 在乘积多项式模式下, 同样有            ((x f 1 f 2 )· H = −x f 3 · H mod q) mod p, 即只要
                                                         ′
                                                            ′
                                                               ′

                 有满足   (( f 1 f 2 )· H = − f 3 · H mod q) mod p  的多项式  f 、 f 、 f  就可以构造  NTRU  的私钥或其循环移位多项式. 综
                                                        1   2  3
                                                                         √
                 上所述, 基于   Grover 量子搜索的   NTRU  量子密钥搜索的查询复杂度为          O( | f 1 f 2 |/N).
                                                    ˆ
                    文献  [45] 要求使用复杂度    O(1) 的预言机   O 来判定列表    L  中是否存在  (−f 3 · H mod q) mod p 与特定的  (( f 1 f 2 )· H
                 mod q) mod p 值相等, 从而恢复私钥    f. 对存储于  L     ( f 3 ,(−f 3 · H mod q) mod p), 预言定义如下:
                                                        中的
                                              
                                               1,  ( f 1 f 2 mod q) mod p在列表L中有对应值
                                       ˆ                                         .
                                              
                                       O(f 1 f 2 ) = 
                                                0,  其他
                                              
                                              
   413   414   415   416   417   418   419   420   421   422   423