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

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


                                                                                               MPK  发送给
                    系统建立阶段: 模拟器       B  执行  Setup(·) 算法得到系统主公钥    MPK  和系统主私钥    MSK, 将主公钥
                     A 1 .
                 敌手
                    询问阶段    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(·) 算法, 生成相应的属性密钥  UK Y
                                                                   ( j,Aid,Y,UK Y ,TK Y )  添加到询问列表   , 计数器
                                                                                                T
                 和解密私钥     TK Y , 将属性密钥   UK Y  发送给敌手   A 1 . 并将组合
                 j = j+1.
                                                        i
                    腐败私钥查询: 敌手       A 1  对询问列表  T  中的第   项查询解密私钥, 模拟器       B  将组合  (i,Aid,Y,UK Y ,TK Y ) 返回给
                                                       i
                 敌手  A 1 , 更新字典   D = D∪Y . 若询问列表  T  中第   项不存在则算法终止.
                                                  ∗                                               TK Y ∗ , 并
                    挑战阶段: 模拟器     B  对挑战属性集合     Y  运行   KeyGen(·) 算法, 生成相应的属性密钥    UK Y ∗  和解密私钥
                 将属性密钥    UK Y ∗  发送给敌手  A 1 .
                    询问阶段    2: 与询问阶段   1  相同, 但不允许对属性集合       Y  进行重复询问.
                                                                   ′      ′
                    输出阶段: 敌手    A 1  输出与属性密钥    UK Y ∗  相关的解密私钥  TK ∗ , 若   TK ∗ = TK Y ∗, 则敌手  A 1  赢得游戏.
                                                                   Y
                                                                          Y
                    定义  1. 对于任意概率多项式时间内的敌手            A 1 , 若  A 1  输出正确解密私钥的概率是可忽略的, 则称该方案具有
                 解密私钥不可计算性.
                    (2) 中间密文不可区分性
                    通过模拟器     B  和敌手  A 2  之间的安全游戏描述中间密文在选择明文攻击下具有不可区分性.
                                                        ∗           B.
                    初始化阶段: 敌手     A 2  定义一个挑战访问策略      Λ  发送给模拟器
                    系统建立阶段: 模拟器       B  执行  Setup(·) 算法得到系统主公钥    MPK  和系统主私钥    MSK, 将系统主公钥     MPK  发
                 送给敌手   A 2 .
                    询问阶段    1: 敌手  A 2  进行下列自适应查询, 该过程可以重复多项式次.
                                                                                Y
                                                                                          ∗
                    属性密钥查询: 敌手      A 2  向模拟器  B  提交自己的标识号     Aid  和一个属性集合  , 其中     Y ⊭ Λ . 当  Y  在询问列表
                 T  时, 将组合  ( j,Aid,Y,UK Y ,TK Y )  返回给敌手  A 2 . 否则, 模拟器   B  执行  KeyGen(·)  算法, 生成相应的属性密钥  UK Y
                 和解密私钥    TK Y , 并将属性密钥  UK Y  发送给敌手  A 2 .
                                                                           ∗                    UK Y . 模拟
                    中间密文查询: 敌手      A 2  向模拟器  B  提交一个明文   m、访问策略     Λ , Λ  和一个满足   Λ 的属性密钥
                                                               δ                            δ   执行外包解密
                 器   B  根据访问策略  Λ 对明文  m 执行   Encrypt(·) 得到密文  CT , 而后使用属性密钥    UK Y  对密文  CT
                                                               m                            m
                 Decrypt 1 (·) 得到中间密文  CT m . 最后将中间密文  CT m  发送给敌手  A 1 .
                                                                                                ∗
                                                                                                   ∗
                                                                            ∗                 Y ⊨ Λ . 模拟
                    挑战阶段: 敌手    A 2  将两个相同长度的明文消息        m 0 , m 1  和一个属性集合  Y  提交给模拟器  B, 其中
                               ∗                                                                  Λ  执行
                                                                                                    ∗
                 器   B  对属性集合   Y  生成相应的属性密钥     UK Y ∗ , 而后随机选取一个明文消息      m ς , ς ∈ {0,1} 用挑战访问策略
                                          δ                                                CT mς . 最后, 模拟
                 加密算法   Encrypt(·) 得到密文  CT , 接着使用属性密钥      UK Y ∗  执行  Decrypt 1 (·) 得到挑战中间密文
                                          mς
                 器  B  将挑战中间密文   CT mς  发送给敌手  A 2 .
                    询问阶段    2: 与询问阶段   1  相同, 但不允许对属性集合       Y  和明文  m 进行重复询问.
                                                   ς
                                                    ′
                                                         ′
                                                                                  ′
                    猜测阶段: 敌手     A 2  输出对  ς  的猜测结果  . 若  ς = ς, 则敌手  A 2  以  Adv A 2  = |Pr[ς = ς]−1/2| = ε 的优势赢得该
                 游戏.
                    定义  2. 对于任意概率多项式时间敌手          A 2 , 若  A 2  赢得游戏优势的概率是可忽略的, 则称方案在选择明文攻击
                 下具有中间密文不可区分安全性.
                    (3) 更新令牌的不可伪造性
                    初始化阶段: 模拟器      B  执行  Setup(·) 算法得到系统主公钥    MPK  和系统主私钥    MSK, 将系统主公钥     MPK  发送
                 给敌手  A 3 .
                    哈希询问阶段: 敌手       A 3  在该阶段最多进行    qH  次询问, 模拟器   B  随机选择  k ∈ {1,2,...,qH} 作为对敌手  A 3  伪
                 造更新令牌的猜测值. 构造一个初始为空的询问列表                 Q list  存放敌手   A 3  的询问实例及结果. 若  i , k 则计算  H m i  回复
   434   435   436   437   438   439   440   441   442   443   444