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

1406                                                       软件学报  2026  年第  37  卷第  3  期


                                                                                                     B  接
                    初始化阶段: 选择满足双线性映射           e : G×G = G T , 阶为素数   p 的乘法循环群  G, G T , 生成元  g ∈ G. 模拟器
                 收一个   DL  问题实例   (g,g ) ∈ G  和一个敌手  A 1  定义的挑战属性集合   Y .
                                    1/z
                                                                       ∗
                                                                                                       ∗
                                                                   ∗                               β v ∈ R Z .
                    系统建立: 模拟器     B  对属性域中的每个属性       u ∈ U  选取   α u ∈ R Z , 对伪属性域中的每个伪属性  v ∈ V  选取
                                                                   p                                   p
                                                            ,
                                                                    ∗
                                                                                          ∗
                                          ∗
                                                                          ∗
                                                       ∗
                                               ∗
                 选取抗碰撞的哈希函数         H 1 : {0,1} → Z ,   H 2 : {0,1} → G H 3 : {0,1} ×G → Z , 随机元素  b, c∈ R Z , 计算得到主公钥
                                               p                           p              p
                                                    b  c    b/c  1/z  α u  β v         A 1 , 自己保存主私钥
                 MPK = {G,G T ,e : G×G = G T ,g, p,H 1 ,H 2 ,H 3 ,g,g ,g ,G = g ,g ,{g } u∈U ,{g } v∈V }  发送给敌手
                 MSK = {b,c,α u ,β v } u∈U,v∈V .
                    询问阶段    1: 模拟器  B  构造一个初始为空的询问列表  , 一个空字典            D 以及一个计数器      j = 0. 敌手  A 1  进行下
                                                             T
                 列自适应查询, 该查询过程可以重复多项式有界次.
                                                                                          ∗
                                                                               Y
                    属性密钥询问: 敌手      A 1  向模拟器  B  提交自己的标识符     Aid  和一个属性集合  , 其中     Y , Y . 若  Y  在询问列表
                                                                                                  ,
                                                                                                       ∗
                                                                                                    ′
                 T  中则将相应的组合      ( j,Aid,Y,UK Y ,TK Y ) 返回给敌手  A 1 . 否则, 模拟器   B  执行  KeyGen(·) 算法, 选取  h∈ R G z ∈ R Z ,
                                                                                                       p
                                   ,
                                                          b·z ′
                                                                 z ′
                                         y∈Y ∗ K 2 = g
                                   ∗
                 计算  K 0 = H 3 (Aid,h) = z K 1 = g α y ·z ′ ,   c/(b·z ∗ ) ,  K 3 = g ,  K 4 = g ,   K 5 = BF y,y∈Y ∗. 将属性密钥   UK Y = {K 1 ,K 2 ,K 3 ,K 4 ,K 5 }
                 发送给敌手    A 1 , 并将组合  ( j,Aid,Y,UK Y ,TK Y ) 添加至询问列表   T  中, 计数器   j = j+1.
                                                        i
                    腐败私钥查询: 敌手       A 1  对询问列表  T  中的第   项查询解密私钥, 模拟器       B  将  (i,Aid,Y,UK Y ,TK Y ) 中的解密私
                                                             Y
                                                                              i
                 钥  TK Y = K 0  返回给敌手  A 1 , 并在字典  D 中添加属性集合  . 若询问列表   T  中第   项不存在则该算法终止.
                                                1/z                ∗            UK Y ∗ = {K 1 ,K 2 ,K 3 ,K 4 ,K 5 } 发送给
                    挑战阶段: 模拟器     B  用   DL 实例  (g,g ) ∈ G  对挑战属性集合   Y  生成属性密钥
                                                 1/z c/b
                                                        1/z
                                                                                      ,
                                                                                       ′
                                                                                           ∗
                 敌手  A 1 , 令  G = g b/c   则   K 1 = G b·α y ·z ′ /c ,  K 2 = (g )  = G ,   K 3 = G b·b·z ′ /c ,  K 4 = G  b·z ′ /c ,  K 5 = BF y,y∈Y z ∈ R Z .
                                       y∈Y                                                 p
                    询问阶段    2: 与询问阶段   1  相同, 但不允许对属性集合       Y  进行重复询问.
                                                                 ′      ′
                    输出阶段: 敌手    A 1  输出属性密钥   UK Y ∗  相关的解密私钥  TK ∗ , 若   TK ∗ = TK Y ∗  则敌手  A 1  赢得上述游戏.
                                                                 Y      Y
                                                                ′                              A 1  的输出得
                    若在概率多项式时间内敌手          A 1  输出正确的解密私钥      TK ∗ = TK Y ∗ = z, 则模拟器  B  可以利用敌手
                                                                Y
                   1/z 从而解决  DLP     (g,g ) ∈ G. 由于  DLP  问题在概率多项式时间内不存在有效解, 故而不存在概率多项式
                                        1/z
                 到               问题
                 时间的敌手    A 1  能以不可忽略的优势赢得上述游戏, 因此可以认为本文方案中数据访问者的解密私钥具有不可计
                 算的安全性.
                  5.2   中间密文的不可区分性
                    若  DBDH  假设成立, 则本文方案的中间密文在选择明文攻击下具有不可区分安全性.
                    证明: 假设存在一个敌手        A 2  能在概率多项式时间内以不可忽略的优势            ε 区分出中间密文, 则可以构造一个模
                 拟器  B  能在概率多项式时间内以       ε/2 的优势解决    DBDH  困难假设.
                    初始化阶段: 选择满足双线性映射            e : G×G = G T , 阶为素数   p  的乘法循环群  G, G T , 生成元  g ∈ G, 随机元素
                      ′    ∗                            c  r  r ′              µ = 1  时,           c·r·r ′  . 当
                 c, r, r , γ∈ R Z . 模拟器   B  接收一个挑战元组   (g,g ,g ,g ,T ς ), 其中   ς∈ R {0,1}. 当    T ς = T 1 = e(g,g)
                           p
                                   γ
                 µ = 0  时,  T ς = T 0 = e(g,g) . 敌手  A 2  定义一个挑战访问策略  Λ  发送给模拟器  .
                                                               ∗
                                                                           B
                                                                        ∗                       v ∈ V  选取
                    系统建立阶段: 模拟器       B  对属性域中的每个属性        u ∈ U  选取  α u ∈ R Z , 对伪属性域中的每个伪属性
                                                                        p
                      ∗         ∗                        ∗   ∗        ∗   ,       ∗      ∗         MPK =
                 β v ∈ R Z . 选取  b ∈ R Z , 抗碰撞的哈希函数  H 1 : {0,1} → Z ,   H 2 : {0,1} → G H 3 : {0,1} ×G → Z . 得主公钥
                                                                                         p
                                 p
                      p
                                                             p
                                            b  c  r  r ′  α u  β v                             B  将主公钥
                 {G,G T ,e : G×G = G T ,g, p,H 1 ,H 2 ,H 3 ,g ,g ,g ,g ,{g } u∈U ,{g } v∈V }, 主私钥  MSK = {b,α u ,β v } u∈U,v∈V , 模拟器
                 MPK  发送给敌手   A 2 , 自己保存主私钥   MSK .
                    询问阶段    1: 敌手  A 2  进行下列自适应查询, 该查询过程可以重复多项式有界次.
                                                                                 Y
                                                                                           ∗
                    属性密钥询问: 敌手       A 2  向模拟器  B  提交自己的标识符     Aid  和一个属性集合  , 其中     Y ⊭ Λ . 模拟器  B  执行
                                                                                     b·z ′
                                                                                             z ′
                                                             ∗
                                                              ,
                                                                    y∈Y ∗ K 2 = g
                                     ,
                                          ∗
                                       ′
                 KeyGen(·) 算法, 选取  h∈ R G z ∈ Z , 计算  K 0 =H 3 (Aid,h)=z K 1 = g α y ·z ′ ,   c/(b·z ∗ ) ,  K 3 = g ,  K 4 = g ,  K 5 = BF y,y∈Y ∗ ,
                                          p
                 得到属性密钥     UK Y = {K 1 ,K 2 ,K 3 ,K 4 ,K 5 } 并发送给敌手  A 2 .
                                                                           ∗                    UK Y . 模拟
                    中间密文查询: 敌手      A 2  向模拟器  B  提交一个明文   m、访问策略     Λ , Λ  和一个满足   Λ 的属性密钥
                                                                                     ∗
                                                                                 ′
                 器   B  为自己生成一个标识号      B id , 对明文消息  m  执行  Encrypt(·)  算法. 随机选取  r, r ∈ R Z  和一个安全的对称密钥
                                                                                     p
                                                                                                   r
                 CK  计算得到:  M =Enc CK (m) E m =CK ·e(g,g) c·r·r ′ ,  h = H 2 (B id ) → G H m =H 3 (m,h) → Z FileMatch = g ,  E 0 = g E 1 =
                                                                                                    ,
                                      ,
                                                                  ,
                                                                                 ,
                                                                                ∗
                                                                                            H m
                                                                                p
                                                                                      δ
                            ,
                                  ϑ
                 g ,   ϑ = H 1 (B id ) E 4 = g , 对访问策略  Λ 中的叶节点计算:  E 2 = g b·r·q x(0) ,  E 3 = g α x ·r , 得到密文:  CT = {Λ, M,E m ,FileMatch,
                  b·r
                                                                                      m
   438   439   440   441   442   443   444   445   446   447   448