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

周搏洋  等:全委托的公共可验证的外包数据库方案                                                         3907


             ③  计算 w i =u i /v 0 ,其中,i∈{0,…,n},并生成逻辑划分如下:
                                             0 c
                                 u 0 0 c  ...u n n c  =  (v w 0 ) ...(v w n )  n c
                                                 0
                                          0
                                              =  v  0 c ++ +  n  w  0 c  ...w  n c
                                           1 ... c
                                           c
                                         0      0   n
                                             =  g k 4 (c +  0 c +  1 ... c n −  ) k t 0 0 0 h  g k th  ⋅  (w  ...w  ) th  w  0 b  ...w  n b
                                               +
                                                       0 0 0
                                                                 0 0
                                                            0  n    0   n
                                              =  g  2 k  (s w 0 ...w n ) th  w 0 0 b  ...w n n b  .
                                                  00
                                            0
             ④  选择随机数 r∈Z p ,计算 w′ = u′ i  /v ,其中,i∈{0,…,n}.将 (u 0 0 c  ...u n n c  ) 进行逻辑划分如下:
                                                                r
                                         1
                                   i
                                       r
                                (u 0 0 c  ...u n n c  ) = (vw′  1  0 ) ...(vw′  rc 0  1  n ) rc n
                                             1 ... c
                                            0 c
                                                  =  v 1 ( rc ++ +  n ) (w′  0  0 c  ...w′  n  n c  ) r
                                           5 (c ++ +
                                                   ) k t
                                                  =  g kr  0 c 1 ... c n −  1 1 1 h  g kt 11 1 h  (w′ ...w′ ⋅  ) t 1 1 h  w′  0 b′  ...w′  n b′
                                                             0  n   0   n
                                                  =  g  3 k  (s w′ 0 ...w′  n ) th  w′  0  0 b′  ...w′  n  n b′  .
                                                   11
                                             1
             ⑤  计算满足 k 3 =k 5 r(c 0 +c 1 +…+c n )−k 1 t 1 h 1 和 rc =  i  b′ +  i  t h 的 b′ 和 t 1 h 1 ,其中,i∈{0,…,n};
                                                      11
                                                           i
             ⑥  令验证密钥为{g      2 k  ,g  3 k  , , , }r t t ,求值密钥为{( ,h s w 0 ...w n ),( ,h s w′ 0 ...w′  n ),( ,b w i i∈  )  [ ]n ,( ,b w′  i ′  i i∈  )  [ ]n  }.
                                                    0
                                                      0
                                    0
                                      1
                                                                        i
                                                                1
                                                              1
             2) ME.Compute(MExp.EK)→{ME.σ y ,ME.π y }
             此步骤由服务器生成编码后的结果 ME.σ y 和证据 ME.π y .具体如下.
                                                                ′
                                                     ,
             ①  将 ME.EK 分解为 ( ,h s w 0 ...w n ),( ,h s w′  1  0 ...w′  n ), ({ b w i i∈ [ ]n  } 和{( ,bw′ i i∈ []n  };
                                                                  )
                                                       )
                                          1
                                                                i
                                                    i
                                 0
                               0
             ②  对于 i∈{0,…,n},计算 w 和 w′ i  i b′ ;
                                  i b
                                  i
                              0 h
             ③  令 R =  (s w 0 ...w n ) 和 R = (s w′  1  0 ...w′  n )  1 h  ;
                       0
                                  1
                   0
                                                   }
             ④  返回结果和证据,分别为 ME        .σ = {{w i i b  } i∈ [] n  ,R 和 ME .π = {{w′ i  i b′ } i∈ [] n  , }.R 1
                                                   0
                                       y
                                                           y
             3) ME.Verify(ME.VK,ME.σ y ,ME.π y )→{ME,y,⊥}
             此步骤为客户端验证计算结果的正确性,具体如下.
             ①  将 ME.VK 分解为{g   2 k  ,g  3 k  , , , }r t t ,ME.σ y 分解为{{w i i b  } i∈ [] n  ,R 0 } ,ME.π y 分解为{{w′ i  i b′ } i∈ [] n  , };R 1
                                       0
                                        1
             ②  计算是否满足等式:
                                                           1 t
                                           0 t
                                         2 k
                                              0 b
                                                     r
                                                         3 k
                                       (g Rw w  1 b  ...w  n b  ) =  g R w′  0 b′  . .. w′  n b′  .
                                           0  0  1  n      1  0  n
                                                                 0 b
                                                               0 t
             若不满足,则终止协议并输出⊥;否则,恢复计算结果 MEy =                g R w w  1 b  ...w  n b  .
                                                             2 k
                                                        .
                                                               0  0  1  n
             MExp 协议有以下的性质.
             1)   正确性:若服务器是诚实地遵循上述过程,协议可确保客户端总是可以输出 ME.y;
             2)   零知识性:协议可确保不遵守协议的恶意服务器无法获得任何秘密输入和输出(运算结果)的信息;
             3)   α-可检查性:协议确保检测到恶意服务器返回的错误结果的概率不小于α.
         3.2   方案详细设计
             本节首先详细介绍了 PVDFD 方案中各个算法的具体构造,然后给出了正确性证明.下面分别进行描述.
             1)  初始化算法.
             该算法用于为方案中的所有实体生成公共参数.算法的主要步骤如下.
             ①  给定安全参数λ,可信第三方首先选择阶为 p∈poly(λ)的两个群G 1 和G 2 满足双线性映射 e:G 1 ×G 1 →G 2 ;
             ②  随机选取两个生成元 g,u∈G 1 ;
             ③  令公共参数 pp=(p,g,u,G 1 ,G 2 ,e)并发送给云服务器、数据拥有者和授权用户.
             2)  密钥生成算法.
             该算法用于生成方案所需密钥.算法的主要步骤如下.
             ①  数据库 DB={(i,v i )|i∈{0,…,n}},其中,数据集大小为A=n+1.数据拥有者先将数据库 DB 插值为多项式
                     i
          F ()x = ∑ n  cx 的形式,使得对于任意的 i∈{0,…,n},均满足F(i)=v i .提取多项式F的系数集合为 C={c 0 ,c 1 ,…,c n };
                 i= 0 i
   238   239   240   241   242   243   244   245   246   247   248