Page 264 - 《软件学报》2020年第12期
P. 264

3930                                Journal of Software  软件学报 Vol.31, No.12, December 2020

                         DecNode ( )x =  ( e B x , )(L e C K =  x ,  i )  ( e g aQ x (0) T i −  x r  , g  t β  )(e g  x r  ,T i  t β  ) =  e ( , )g g  a tQβ  x (0) .
         其中,Q x (0)=s x .
             对于共享访问树 T 的非叶子节点,其解密算法如下:
                                                         (0)     = iindex () z
                                DecNode x           ( )z  , ′ x  , where  ′ =  x S  {index z z S  }
                                       () = ∏ DecNode
                                                      Δ iS
                                                                     ( ): ∈
                                           zS                            x
                                           ∈ x
                                                     = ∏  ( ( , )eg g  atQ z  (0) Δ iS , ′ x (0)
                                                    β
                                                        )
                                           zS
                                           ∈ x
                                                     = ∏  ( ( , )eg g  atQ parent z () (index z  )  , ′ x (0)
                                                    β
                                                            ( )) Δ iS
                                           zS
                                           ∈ x
                                                     =  ∏  ( ( , )eg g  atQ x i () Δ iS , ′ x (0)
                                                    β
                                                        )
                                           zS
                                           ∈ x
                                                β
                                                     = eg  atQ x  (0) ,
                                            ( , )g
         其中, Δ  () x = ∏   x −  j  .
               , iS    jS , j i ≠  i −  j
                       ∈
             共享访问树 T 的根节点解密为
                                                                    β
                                    DecNode (root T  ) =  e ( , )g g  atQβ  root T  (0)  =  e ( , )g g  ats .
             最后再计算:
                                                         at
                                                            ) )
                                         ( eC  , )K  ( e g s ,(g g αβ
                                  F =      0      =        2   =  e (,g g 2 ) α sβ .
                                                           β
                                     DecNode (root T  )  e ( , )g g  ats
             •   用户客户端解密
             数据所有者或共享用户将密文子项 C,C′和云服务器计算的结果 F 下载至本地,解密数据 R 的算法如下:
                                   Decrypt (CT DK = ,  )  C −  =  R e⋅  (,g g 2 ) α s −  =  . R
                                                  F  β  1  (( ,e g g  2 ) α  sβ  ) β  1
                                                αs
             计算 M=C′⊕H 2 (R),s=H 1 (R,M):若 C=R⋅e(g,g 2 ) 且 F=e(g,g 2 ) αsβ ,则输出 M;否则,直接输出⊥.
         5    安全性与性能分析
         5.1   安全性分析
             定理 4.  对于任意基于访问树 T 的秘密共享方案,都存在一个线性秘密共享方案(M,ρ)与之等价.
             证明:不妨假设访问树 T 为二叉树(任意树都可以转换为二叉树).设 T 有 n 个非叶子节点,依次编号为 1,2,…,
         n;设 T 有 m 个叶子节点,依次编号为 1,2,…,m.为每个非叶子节点 i 选择函数 f              i ()x =  ω  i  , x ω  i  ∈  Z * p .
             设从根节点到叶子节点 i 依次经过的非叶子节点(下面简称路径)为 , ,...,ii             2  i ,根据定理 1,第 i 个叶子节点的
                                                                        i n
                                                                  1
         秘密共享数可表示为
                                    i n
                           λ =  s =  s +  ∑  f  (index (i  ))
                            i  i       j i   j+ 1
                                    j= 1
                              s ∑
                                                             1
                             =+  n  b f  j (index (suc ( ))),j  ⎛  ⎜  ⎜  b = ⎨ ⎧ ⎪ 1,  j ∈ { , ,..., }i i 2  i  i n  ⎞  ⎟  ⎟
                                                    ij
                                   ij
                                 j= 1             ⎝   ⎪ ⎩ 0, else   ⎠
                                 n
                               =+ ∑ ω iij  (suc j  ij  1 ,suc j 求             )
                                    b index
                                                          ( ) j在路径上的后继节点
                              s
                                             ( )), (b = 时
                                 i= 1
                                 n      ⎛               ⎧ 1,  suc ( )j 为左孩子 ⎞
                               =+ ∑ ω iij ij ⎜  b c  ,  c =  index (suc ))j = ⎨  ⎟  ⎟
                                                    (
                              s
                                        ⎜
                                          ij
                                 i= 1   ⎝               ⎩ 2, suc ( )j 为右孩子 ⎠
                               =  (1,bc  ,b c  2 i  ,...,b c  )( ,s ωω 2 ,...,ω n ) T
                                                 ,
                                          in in
                                     2 i
                                 i
                                 11 i
                                                 1
                                           T
                                ( ,ωω
                               =  Ms  1 ,  2 ,...,ω n ) .
                                i
   259   260   261   262   263   264   265   266   267   268   269