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

