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

罗王平  等:一种支持快速加密的基于属性加密方案                                                         3929


                                                         *
                 项式 Q j (x),其中,0=Q j (0)且 Q j (x)的其他系数从群 Z 中随机选择.再对非叶子节点 I j 的每个孩子节点
                                                         p
                 I j,child 计算部分秘密值 s i,j =Q j (index(I j,child ))(其中,index(I j,child )表示孩子节点 I j,child 在兄弟节点中的序号,
                 从左往右进行编号),将该秘密值输出至每个叶子节点 L i ∈I j,child 所在 Reduce 操作,即 Map 操作输出的
                 键值对为(L i ,s i,j );
                                                                           ′
                                                       s
                                                                    *
             ¾   针对叶子节点 L i ,Map 操作输入的键值对为(L i ,g ),随机选择 r′∈       Z ,令 r =  r s⋅ ,计算:
                                                                    p
                                                                           i
                                                                        i
                                                                 i
                                            B′′=  i  T i −  i r′  ,C =  i  (g s ) =  i r′  g  i r  .
                                                                                      ′′
                 将计算结果输出至叶子节点 L i 所在的 Reduce 操作,即 Map 操作输出的键值对为 (,( ,L BC               i )).
                                                                                   i
                                                                                      i
             •   Reduce 操作
                                                   ′′
             以叶子节点 L i 在 Map 操作输出的键值对 (,( ,L BC      i )) 与该叶子节点到根节点路径上所有非叶子节点 I j 在
                                                   i
                                                i
         Map 操作输出的键值对(L i ,s i,j )为 Reduce 操作的输入,令 s′ =+ ∑  | parents L  )| s  , i j  (其中,parents(L i )表示根节点到叶子
                                                                ( i
                                                        1
                                                     i
                                                            j=
                                                             1
                                                      as′
         节点 L i 路径上所有非叶子节点集合),计算 B′         i  g B′ =  as′  i  i ′  =  g T i −  i r′  ,该叶子节点 L i 在 Reduce 操作输出的键值对为
                                                       i
              ′
          ( ,( ,L BC i )).
              i
           i
             用 户客户 端将 {}B′  ii T∈  LeafNode  下载 至本 地 ,计算 B =  i  ()B′ =  i  s  g T i − i r  (其中 , s =  ss⋅ ),将密 文子 项 C,C′,C 0 ,
                                                                           ′
                                                            as
                                                             i
                                                                        i
                                                                           i
         {}   LeafNode  上传至云服务器,并将密文 CT 交由云服务器存储.数据 M 在共享访问树 T 下的完整密文 CT 如下:
          B
           ii T∈
                                        α
                       CT =〈  , T C =  R e ⋅  ( ,g g 2 ) ,C′ =  M ⊕  , r C =  g ∀ ∈  LeafNode  : B =  g T i −  i r  ,C =  g  i r  . 〉
                                                        s
                                         s
                                                                        as
                                                         , i T
                                                                         i
                                                                              i
                                                                    i
                                                    0
                      开始
                    选择随机值R
                         R
                                  共享逻辑表达式和g   s
                    计算s,C,C′,C 0                         构建访问树
                                               (L i , g s )            (L j , L set )
                                                               选择d-1次多      选择d-1次多
                                      随机选择r′ i      随机选择r′ i
                                       (令r i =r′ i ·s)  (令r i =r′ i ·s)  项式Q j (x)  项式Q j (x)
                 用                Map           …                        …                云
                 户                                              计算s i,j =     计算s i,j =  Spark 并行处理
                 客   S,C,C′,C 0        计算B″ i ,C i  计算B″ i ,C i  Q j (index(I j,child ))  Q j (index(I j,child ))  服
                 户                                                                        务
                 端                  (L i , (B″ i ,C i ))  (L i , (B″ i ,C i ))  (L i , s i,j )  器
                                                       (L i , s i,j )
                                  Reduce     计算s′ i ,B′ i   …          计算s′ i ,B′ i
                                                          (L i , (B′ i ,C i ))
                                       {B′ i }
                     B i =(B′ i ) s                       整合B′ i ,C i
                                     C,C′,C 0 ,{B i }
                                     存储成功
                      结束                                 存储密文CT
                                         Fig.3    Flow chart of encryption
                                              图 3   加密流程图
             (4)  解密:Decrypt(CT,TK,DK)
             解密时,先将大部分解密工作交由云服务器完成,再由用户客户端完成最后的解密工作.
             •   云服务器解密
             若用户私钥属性集合 S 不满足 T,则直接输出⊥;否则,继续下面的计算.
             对于共享访问树 T 的叶子节点 x,i=att(x)(att(x)为叶子节点 x 的属性),其解密算法为
   258   259   260   261   262   263   264   265   266   267   268