Page 367 - 《软件学报》2025年第9期
P. 367

4278                                                       软件学报  2025  年第  36  卷第  9  期


                  q                  1/a
                 a Q), 其目标是计算   e(P,Q) ,  C  与  A 的具体交互过程如下.
                    ● 初始化阶段.     C  随机选取  k ∈ [1,q],B k ∈ Z , 然后选取  q−1  个不同的随机数  t 1 ,t 2 ,...,t k−1 , t k+1 ,...,t q ∈ Z ∗ N   对于
                                                     ∗

                                                     N
                                                               q        q−1
                                                              ∏         ∑
                                                                             i
                 ∀i ∈ [1,q]\{k}, 计算   B i = B k −t i , 同时生成如下多项式  f(x) =  (x+t i ) =  c i x , 随后根据困难问题实例设置  SM9-
                                                              i=1,i,k   i=0
                                               q−1                                         q
                                               ∑                                          ∑
                                                                                                 i
                                                    i
                 PAEKS 方案中的系统参数,     P 2 = f(a)Q =  c i (a Q),P 1 = ψ(P 2 ) = f(a)P, 设置发送方的公钥为  pk S =  c i−1 (a Q) = aP 2 ,
                                                i=0                             q−2        i=1  q−2
                                                                          f(x)  ∑              ∑
                                                                                    i
                                                                                                    i
                 上述过程中的     a 是未知的, 并且   ψ(Q) = P. 对于任意  i ∈ [1,q]\{k}, 令   f i (x) =  =  d i x , 可计算  U i =  d i (a Q) =
                                                                          a+t i
                                                                                i=0            i=0
                        f(a)    P 2
                 f i (a)Q =  Q =   , 即对于任意的二元组        (t i ,U i ),i ∈ [1,q]\{k}  都是可计算的. 随后计算   pk R = −pk S − B k P 1 =
                        a+t i  a+t i
                 −(a+ B k )P 1 , 上述过程中隐式地设置了   sk S = y = a, sk R = x = −(a+ B k ). 然后, 选取一字节表示的私钥生成函数标识
                 符  hid. 最后, 返回系统参数   params = (P 1 ,P 2 ,g,N,hid).
                    ● 哈希询问阶段. 此阶段,      A 可适应性地选取关键词        w i ∈ {0,1}  向  C  进行如下两类哈希询问.
                                                                   ∗
                    (1)   H 1  询问: 为响应  A 的询问,  C  维持列表  L 1 =< w i ,V i ,B i >, 如果询问项  < w i ,V i > 存在列表  L 1  中, 则按照列表
                                           i
                 中记录的   B i  响应. 否则, 记   w i  是第   个新关键词的询问. 设  H 1 (w i ||hid||V i ,N) = B i , 最终返回  B i  并更新列表.
                    (2)   H 2  询问: 针对  A 发起的二元组  < C i ,u i > 询问,   C  维持列表  L 2 =< C i ,u i ,K i >, 如果询问项  < C i ,u i > 存在列表
                 L 2  中, 则按照列表中记录的    K i  响应. 否则,   C  随机选取   K i , 设  H 1 (C i ||u i ,klen) = K i  同时更新  L 2 .
                    ● 询问阶段    1. 此阶段,   A 可适应性地选取关键词      w i ∈ {0,1}  并向  C  进行如下两种询问.
                                                                 ∗
                    (1) 关键词密文询问        : 首先  C  查询  A 询问的关键词   w i  是否在列表  L 1  中, 如果不存在, 则按照  H 1  询问阶段
                                    O C w
                 生成关键词对应的表项, 由于是         C  生成的表项, 其无法计算出       V i = [xy]P 1 , 因此记   V i = ⋆. 如果  i = k, 输出失败. 否则
                                ∗                         , 随后按照   PAEKS                    = C 1 ||C 3 ||C 2  并返
                 C  选取随机数   r i ∈ Z , 计算   Q w i  = [t i ]P 1 + pk R ,C 1 = r i Q w i  算法生成关键词密文   C w i
                                N
                 回给  A. 与  SM9-PAEKS  方案中的关键词密文相比可知,         O C w  响应的关键词密文与真实方案中的关键词密文是不
                 可区分的.
                    (2) 关键词陷门询问        : 首先  C  查询  A 询问的关键词是否在列表       L 1  中, 如果不存在, 则按照   H 1  询问阶段生
                                    O T w
                 成关键词对应的表项, 由于是         C  生成的表项, 因此其无法计算出        V i = [xy]P 2 , 故记   V i = ⋆. 如果  i = k, 输出失败. 否则
                                                  (        )                             (            )
                                                       1                                         B i
                 C   可  根  据  初  始  化  阶  段  的  B i = B k −t i ,   计  算     B i ,  P 2 ,   进  而     C   可  计  算  元  组  (B i ,P 2 − B i U i ) = B i ,P 2 −  P 2 =


                                                     x+ B i                                     x+ B i
                 (        )
                      x                              x
                  B i ,  P 2 . 最终,   C  返回关键词陷门  T w i  =  P 2 . 分析  SM9-PAEKS  方案中的关键词陷门形式和谕言机      O T w
                    x+ B i                          B i + x
                 响应的形式可知, 从     A 的角度而言, 是不可区分的.

                    ● 挑战阶段.    A  决定结束上述询问后, 选取挑战关键词            w ,w ∈ {0,1} ,w  = w  C  随机选取  b ∈ {0,1}, 如果
                                                                                   ,
                                                                    ∗
                                                                                 ∗
                                                                             ∗

                                                                  ∗
                                                                          ∗
                                                                  0
                                                                                 1
                                                                    1
                                                                             0
                                                                                      t ∗
                                                                                   ∗
                      ,
                  ∗                               ∗   ∗  ∗     klen    ∗   ∗      r =  , 由于系统设置阶段隐
                 w , w k C  终止此次模拟, 否则选取随机数       t ∈ Z ,K ∈ {0,1}  , 计算  C = −t P 1 , 若设
                  b                                   N                1              a
                                                 ∗
                                           ∗
                                       ∗
                                                       ∗
                 式地设置了    x = −a− B k , 有  C = −t P 1 = −r aP 1 = r (B k P 1 + pk R ). 随后, 按照  SM9-PAEKS  方案中的  PAEKS  算法生

                                       1
                    ∗  ∗                  ∗  ∗  ∗  A 的角度而言, 挑战密文和真实密文是不可区分的, 即上述模拟过程
                 成  C ,C . 最后返回关键词密文     C ||C ||C . 从
                    2  3                  1  3  2
                                                       ∗
                 和真正的方案攻击不可区分. 除非          A 询问过关于    u = e(pk R ,P 2 ) r∗  的值.
                    ● 询问阶段    2. 在此阶段,  A 可继续进行同询问阶段        1  的询问, 但是此处限制     A 询问的关键词    w i < {w 0 ,w 1 }.
                    ● 猜测阶段.   A 输出对挑战关键词密文中关键词的猜测, 若猜测正确                  A 赢得上述游戏, 否则失败.       C  可忽略  A
                                                             ∗
                 的猜测, 从   L 2  中选择元组  < C 1 ,u,K i >, 选择的元组包含  u  的概率为  1/q H 2  . 由于  A 不可区分上述模拟与真实方案,
                                                 ∗
                 那么其将以不可忽略的优势询问           H 2  关于  u  的值.
                    根据上述分析,     C  可通过如下方式解决困难问题实例:

                                             ∗        r ∗                  t ∗
                                            u =e(pk R ,P 2 ) = e(f(a)(−a− B k )P, f(a)Q) a
                                                     − f 2 (a)at ∗ − f 2 (a)t ∗ B k
                                              =e(P,Q)   a
                                                         f 2 (a)t ∗ B k
                                              =e(P,Q) − f 2 (a)t ∗ −  a                               (7)
   362   363   364   365   366   367   368   369   370   371   372