Page 244 - 《软件学报》2021年第12期
P. 244

3908                                Journal of Software  软件学报 Vol.32, No.12, December 2021

             ②  选择两个随机数γ,k∈Z p .令验证密钥的检索密钥RK pp =k,数据库的查询密钥EK DB =(C,γ);
             ③  选择随机数α∈Z p 作为伪随机函数(PRF)的密钥,并建立伪随机函数 PRF(α,t)为: PRF                (, )tα  =  g kα t+ 1 ;
                                                                                       j+1
             ④  记 j 为模幂操作的索引,对于∀j∈[2n+2]\{n+1},执行 MExp 协议的初始化算法 ME.Setup(u,α ,p)生成模
         幂计算求值密钥 ME.EK[j]和验证密钥 ME.VK[j].其中,u 和α         j+1 分别为底和幂.当 j=2n+2 时,执行算法 ME.Setup(F,
         C,p)生成求值密钥 ME.EK[j]和验证密钥 ME.VK[j],其中,F={PRF(α,i)|i=0,1,…,n}为底;
             ⑤  令验证密钥的恢复密钥VK pp ={ME.VK[j]| 0 ≤ j ≤ 2n+2∧j≠n+1 }、计算密钥EK pp ={ME.EK[j]| 0 ≤ j ≤ 2n+2∧j≠n+1 }.其中,
           ME .VK [ ]{j =  g  j k  ,2  , g  j k  ,3  , ,r t  ,t  },ME .EK [ ]{(j =  b  ,w  )  ,(b′  ,w′  )  ,(h  ,s w  ...w  ),(h  ,s w′  ...w′  )};
                             j  j ,0  j ,1       , j i  , j i i∈  [] n  , j i  , j i i∈  [] n  j ,0  j ,0  j ,0  , j n  j ,1  j ,1  j ,0  , j n
             ⑥  最终,数据拥有者保持 PRF 密钥α,EK DB ,VK pp 和RK pp 私有,并将EK pp 发送给云服务器.值得注意的是:数
         据拥有者在执行算法 ME.Setup 时只选择一次随机的六元组,在后面的操作中都使用该六元组.也就是说:对于所
         有的 i∈[5]和 j∈[2n+2]\{n+1},均满足 k j,i =k 0,i .
             3)  验证密钥计算算法.
             该算法根据接收到的验证密钥的计算密钥来计算编码后的验证密钥.算法的主要步骤如下.
             ①  云服务器收到验证密钥的计算密钥EK pp 后,将其分解为{ME.EK[j]| 0 ≤ j ≤ 2n+2∧j≠n+1 };
             ②  云服务器执行算法 ME.Compute(ME.EK[j])生成编码后的结果 ME.σ y[j] 和证据 ME.π y[j] ;
             ③  令编码后的数据库验证密钥 σ          VK DB  、证据 π VK DB  分别为{ME.σ y[j] | 0 ≤ j ≤ 2n+2∧j≠n+1 },{ME.π y[j] | 0 ≤ j ≤ 2n+2∧j≠n+1 },其

         中, ME .σ  yj  =  { { w b , j i , ji },R j ,0  , } ME .π  y [ ] j  =  {{w′ b′ , j i  , ji  },R j ,1 };
                 []
             ④  最终云服务器将σ      VK DB  和 π VK DB  发给数据拥有者.
             4)  验证密钥恢复算法.
             该算法用于对云服务器返回的结果进行验证,并恢复出数据库的验证密钥.算法的主要步骤如下.
             ①  数据拥有者将VK pp ,σ   VK DB  和 π VK DB  分别解析为
                         {ME.VK[j]| 0 ≤ j ≤ 2n+2∧j≠n+1 },{ME.σ y[j] | 0 ≤ j ≤ 2n+2∧j≠n+1 }和{ME.π y[j] | 0 ≤ j ≤ 2n+2∧j≠n+1 }.
             ②  执行算法 ME.Verify(ME.VK[j],ME.σ y[j] ,ME.π y[j] ).
             ③  当 j∈[2n+2]\{n+1}时,数据拥有者验证是否满足如下等式:
                                                           j t
                                                  ) =
                                        (g  j k  ,2 R  j t  ,0 w  j b  ,0 r  j  (g  j k  ,3  R w′  j b′  ,1 )  (1)
                                                           ,1
                                             j ,0  j ,0   j ,1  j ,1
             若不满足,则输出⊥并丢弃;否则,令:
                                       U =  j  ME .[ ] (y j =  g  j k  ,2  R j j t ,0 ,0  w j ,0 j b  ,0  ) =  u α j+ 1 .
             当 j=2n+2 时,验证是否满足等式:
                                     ⎛       n  b ⎞  j r  ⎛  n  b′ ⎞
                                     ⎜  g  j k  ,2 R j ,0 ∏  j t  ,0  w  , j i ⎟  , ji  =  ⎜  g  j k  ,3 R j ,1 ∏  j t  ,1  w′ , j i ⎟  , ji  (2)
                                     ⎝      i=  0  ⎠  ⎝     i=  0  ⎠
             若不满足,则输出⊥并丢弃;否则,令:
                                                                − pp 1  n
                                                               RK
                                                         n
                                   γ
                             σ   =  gME .[ ]y j  RK − pp 1  =  g γ  ⎛  ⎜  g  j k  ,2  R  ,0 ∏  j t  ,0  w b ⎞  , j i ⎟  , j i  =  g ∏  γ  g  i c α i+ 1 .
                               DB
                                                 ⎝     j  i=  0  ⎠    i=  0
             ④  数据拥有者将{U j } j∈[2n+2]\{n+1} 添加到数据库的查询密钥EK DB 中,并将更新后的该值发送给云服务器.此
         时,EK DB ={C,γ,{U j } j∈[2n+2]\{n+1} }.
             ⑤  数据拥有者最终令VK DB ={σ DB ,{U j } j∈[2n+2]\{n+1} ,RK pp ,PRF(α,0)},并通过安全的信道发送给授权的用户.
             5)  查询算法.
             该算法用于查询数据库即执行多项式求值计算.算法的主要步骤如下.
             ①  当云服务器收到数据拥有者发来的EK DB 以及授权用户发来的查询索引 x 后,首先将EK DB 分解为{C,γ,
                                 2
                                     n
         {U j } j∈[2n+2]\{n+1} },并令 X={1,x,x ,…,x };
   239   240   241   242   243   244   245   246   247   248   249