Page 444 - 《软件学报》2026年第3期
P. 444

张明川 等: 支持索引动态更新的高效可搜索属性加密方案                                                     1407


                 E 0 ,E 1 ,E 2 ,E 3 ,E 4 }.

                    模拟器   B  根据属性密钥    UK Y  对密文  CT  δ m   执行外包解密算法  Decrypt 1 (·): 对叶子节点   x  计算  D leaf = e(K 1 ,E 1 )·
                 e(K 2 ,E 2 )/e(K 3 ,E 3 ) = e(g,g) c·r·q x(0) /z ∗  .
                                        (              ) ∆ k,Kn (0)
                                      ∏      c·r·q parent(x) index(x k ) /z  c·r·q n(0) /z ∗
                    对内部节点计算       D n =  e(g,g)            = e(g,g)   , 递归到根节点时得      D r = e(g,g) c·r·r ′ /z ∗ . 最后模
                                     x∈n x
                 拟器  B  将中间密文   CT m = {E m ,D r , M} 发送给敌手  A 2 .
                                                                            ∗      ∗  ∗           B. 模拟
                    挑战阶段: 敌手    A 2  将两个相同长度的明文消息        m 0 , m 1  和一个属性集合  Y , 其中   Y ⊨ Λ  提交给模拟器
                                                                                                    用挑战
                 器   B  对属性集合  Y  执行  KeyGen(·)  算法, 生成相应的属性密钥   UK Y ∗ , 而后随机选取一个明文消息
                                                                                             m ς ,ς∈{0,1}
                        c  r  r ′
                                                                                             ,
                 元组  (g,g ,g ,g ,T µ )  执行加密算法  Encrypt(·). 选取一个安全的对称密钥  CK  计算:  M ς = Enc CK (m ς ) E mς = CK ·T µ ,
                                                                r
                                                                      b·r
                                                                 ,
                                             ,
                             ,   = H 3 (m ς ,h) → Z FileMatch = g H mς ,  E 0 = g E 1 = g ,   ,   ϑ  x 有:  E 2 =
                                            ∗
                                             p
                 h = H 2 (B id ) → G H m ς                               ϑ = H 1 (B id ) E 4 = g , 对属性节点
                                                                                        δ
                 g b·r·q x(0) ,  E 3 = g α x ·r  , 得到密文  CT  δ mς  = {Λ, M,E m ς  ,FileMatch}, 接着使用属性密钥   UK Y  对密文  CT mς  执行外包解密算法
                 Decrypt 1 (·) 得到  D r = e(g,g) c·r·r ′ /z  . 最后, 模拟器   B  将挑战中间密文  CT mς = {E mς ,D r , M ς } 返回给敌手  A 2 .
                    询问阶段    2: 与询问阶段   1  相同, 但不允许对明文     m 和属性集合    Y  进行重复询问.
                                                    ′         ′
                    猜测阶段: 敌手    A 2  输出对   ς 的猜测结果   ς ∈ {0,1}, 若  ς = ς 则判定敌手  A 2  赢得上述游戏.
                                                                                 m ς  的任何信息, 只能随机猜测
                    当   µ = 0 时, 挑战中间密文  CT mς  在群  G T  上具有随机性. 敌手  A 2  无法得到关于
                  ′                          ′                        δ   是由      实例进行的有效加密. 相较于
                 ς  的值, 因而赢得游戏的概率为        Pr[ς = ς|ς = 0] = 1/2. 当  µ = 1 时,  CT mς  DBDH
                                                 ς
                                                                     ε
                                                                                                  ′
                 随机猜测, 敌手     A 2  能更加准确地猜测出   的值, 将这个优势设为  , 则敌手            A 2  赢得游戏的概率为     Pr[ς = ς|ς =
                                                          ′            c  r  r ′
                 1] = ε+1/2. 此时模拟器   B  可以利用敌手   A 2  的输出   ς  对挑战元组  (g,g ,g ,g ,T ς ) 中的  ς  进行判断, 从而以  Adv B =
                 Pr[ς = ς′]−1/2 = 1/2·(1/2)+1/2·(1/2+ε)−1/2 = ε/2  的优势在概率多项式时间内解决    DBDH  困难问题. 由于在
                 概率多项式时间内不存在有效的判定算法验证                DBDH  假设成立, 故而不存在概率多项式时间的敌手               A 2  能以不可
                 忽略的优势破坏上述方案的安全性, 即本文方案的中间密文在选择明文攻击下具有不可区分安全性.
                  5.3   更新令牌的不可伪造性
                                                                                              δ
                                                       ′          UT = {{KW i } i∈I ,{RW i } i∈I ,FileMatch ,E }  后, 需要对
                                                                                           ′
                    当云服务器收到数据所有者上传的对明文                m  的更新令牌
                                                                                              m ′
                                                                                  ϑ
                                     δ
                 UT  中的  BLS  签名组件  E = g H m ′ ·ϑ   和云端加密数据的组件  FileMatch = g H m   和  E 4 = g  进行双线性配对运算, 完成
                                     m ′
                                               ?
                                             δ
                                         e(g,E )=e(FileMatch,E 4 ). 将  BLS  δ                  CDH  困难问
                 对数据所有者更新权限的验证                                     签名组件    E m ′  的不可伪造性归约到
                                             m ′
                                                                   ′          δ                      B  以
                 题上: 若存在一个概率多项式时间的敌手             A 3  能以概率  ε 伪造出   m  的签名组件  E , 则可以构造出一个模拟器
                                                                              m ′
                 ε/qH  的概率解决   CDH  问题.
                    初始化: 选择满足双线性映射         e : G×G = G T , 阶为素数   p 的乘法循环群  G, 生成元  g ∈ G, 将一个  CDH  问题实例
                    a  b                                                      a  b          A 3 , 将主私钥设
                 (g,g ,g ) ∈ G  发送给模拟器  . 模拟器  B  将主公钥  MPK{G,G T ,e,g, p,H 1 ,H 2 ,H 3 ,g ,g }  发送给敌手
                                      B
                 为  MSK = ϑ = a  自己保存.
                    哈希询问阶段: 敌手       A 3  在该阶段最多进行    qH  次询问, 模拟器   B  随机选择  k ∈ {1,2,...,qH} 作为对敌手  A 3  伪
                 造更新令牌中签名组件的猜测值. 构造一个初始为空的询问列表                      Q list  存放敌手   A 3  的询问实例及结果, 将敌手  A 3
                                                                    ,
                 的第  i 次询问的消息实例记为       m i . 当  i , k 时, 计算   h = H 2 (Aid) → G H m i  = H 3 (m i ,h), 得到组件  FileMatch(i) = g H m i  回
                 复给敌手   A 3 , 并将  (i,m i ,H m i  ,FileMatch(i),{DW d i d i ∈D ) 添加到询问列表   Q list  中, 其中  Aid 为敌手   A 3  的标识号. 当  i = k
                                                     }
                                            b
                 时, 计算得到   FileMatch(k) = g H m k ·g  回复给敌手  A 3 .
                    更新令牌请求阶段: 敌手        A 3  在该阶段对选定的消息     m i  请求生成相应的更新令牌, 若      i = k 则算法终止. 当  i , k
                                                             ,FileMatch(i),{KW r } r∈R ,{RW r } r∈R ), 得到相应的更新令牌
                 时, 模拟器   B  从询问列表   Q list  中取出  m i  对应的  (i,m i ,H m i
                                               · ϑ
                                   δ
                                        a H m i = g
                 UT(i) = {FileMatch(i),E = (g )  H m i ,{KW r } r∈R ,{RW r } r∈R }  返回给敌手  A 3 .
                                   m i
                                                                                  m j  进行更新令牌的伪造, 当
                    更新令牌伪造阶段: 敌手        A 3  选择一个上个阶段中未向模拟器          B  查询过的消息
                                                                               a H m k ,{KW r } r∈R ,{RW r } r∈R }. 此时模
                                                      δ
                                                                         +b a
                                                                   ϑ
                 j , k  时算法终止, 否则  UT( j) = {FileMatch( j),E = FileMatch(k) = (g H m k ) = (g )  +b
                                                      m j
                                                             δ
                                                                         a·b
                                                                 a H m j  得到
                 拟器   B  可以通过敌手   A 3  的伪造更新令牌组件     E δ   计算  E /(g )  g , 从而解决    CDH  困难问题. 这与   CDH
                                                      m j    m j
   439   440   441   442   443   444   445   446   447   448   449