完全安全的隐藏密文策略属性基代理重加密
摘要
我们提出了一种隐藏密文策略属性基代理重加密方案。数据所有者可以将基于某个访问策略的密文转换为具有相同明文但不同访问策略的密文的能力委托给半可信代理。与传统方案相比,本方案在加密和重加密过程中能够隐藏用户属性信息,从而更好地保护用户隐私。我们还利用对偶系统技术证明了该方案在标准假设下是完全安全的。据我们所知,这是首个同时实现这些特性的方案。
关键词 :属性基代理重加密 · 隐藏策略 · 完全安全 · 委托
1 引言
基于属性的加密(ABE)提供了细粒度访问控制,是云数据安全共享的良好解决方案。ABE方案主要有两种类型:密钥策略ABE(KP‐ABE),其中密文与属性集合相关联,而密钥与访问策略相关联;密文策略ABE(CP‐ABE),其中密钥与属性集合相关联,而密文与访问策略相关联。
基于属性的代理重加密(AB‐PRE)是代理密码学在属性基加密(ABE)中的一种应用 [4,15,19,26]。AB‐PRE方案允许数据所有者将重加密的能力委托给半可信代理。通过这种方式,代理能够执行重加密操作,从而降低数据所有者的计算开销。授权用户仅需使用其自身的私钥即可解密重加密后的数据,无需任何其他组件。此外,代理无法泄露任何敏感数据。然而,当前的密文策略属性基代理重加密(CP‐AB‐PRE)方案中存在一个问题 [4,15,19,27]。在这些方案中,由用户属性组成的密文策略会暴露给代理,因此,
代理可以获取有关所有者和用户的部分属性信息。用户的属性可能包含其敏感信息。这些数据涉及用户隐私,不应暴露给第三方。
为了解决上述问题,我们借鉴了方案中出现的隐藏策略概念 [9,12,13,21,22] 来提出一种隐藏密文策略属性基代理重加密方案。通过使用我们的方案,代理能够获取到用户的少量敏感数据或隐私信息。
我们的贡献
通过采用与门策略,我们提出了首个完全安全的隐藏 CP‐AB‐PRE 方案,能够更好地保护用户的隐私。我们的方案具有以下特性:
- 单向性 (密文 CT 可以被转换为 CT′,但不能从 CT′ 被转换)。
- 非交互性 (数据所有者能够自行生成重加密密钥,而无需不可信第三方的参与)。
- 多用途性 (加密数据可以被多次重加密)。
- 主密钥安全性 (代理或用户在重加密和解密过程中无需获取数据所有者的私钥)。
- 重加密控制 (数据所有者可以决定加密数据是否能够被重加密)。
- 抗共谋 (用户无法通过合谋他们的密钥来获得不属于他们任何一人的明文)。
表1展示了我们的CP‐AB‐PRE方案与其他方案在主要特性上的对比。
| 方案 | 梁等人 [15] | 罗等人 [19] | 杜等人 [4] | 梁等人 [14] | 我们的 |
|---|---|---|---|---|---|
| Unidirectionality | √ | √ | √ | √ | √ |
| Non-interactive | √ | √ | √ | √ | √ |
| Multi-use | √ | √ | × | √ | √ |
| Master key security | √ | √ | √ | √ | √ |
| Re-encryption control | √ | √ | × | √ | √ |
| Collusion resistant | √ | √ | √ | √ | √ |
| Hidden policy | × | × | × | × | √ |
| Fully secure | × | × | × | √ | √ |
相关工作
代理重加密最初由Blaze等人提出 [2],它可以将带有密文的密钥转换为另一个密钥,而无需泄露私钥和密文的明文。但为了实现委托,需要对代理有不切实际的信任水平,因为在重加密过程中可能会泄露敏感信息。为了解决这个问题,阿特尼塞等人在 2005 [1] 中提出了一种新的代理重加密方案。格林和阿特尼塞提出了一个基于身份的代理重加密(IB‐PRE)方案 2007 [5],但它仅在随机预言模型下被证明是安全的。随后,许多改进的IB‐PRE方案被提出 [3,7,16,20,23]。在属性基加密(ABE)方案被提出后,郭等人提出了第一个属性基代理重加密(AB‐PRE)方案 [26],这也是首个密钥策略属性基代理重加密方案,但该方案具有双向性。随后,梁等人提出了首个CP‐AB‐PRE方案 [15] 并实现了多用途性特性,但随着重加密次数的增加,密文大小呈线性增长。2010 年,罗等人提出了一种CP‐AB‐PRE方案 [19] 允许数据所有者决定是否对密文进行重加密。同年,余等人在其论文中引入了一种新的数据机密性特性 [27],但他们的方案存在合谋攻击问题。杜等人于2011年提出了一种新的AB‐PRE方案,以支持抗合谋特性。还有一些其他AB‐PRE方案在 2011 [4,6,8,25] 中被提出。之后,刘等人引入了时间戳,并提出了两个AB‐PRE方案 [17,18] 可防止被撤销用户访问加密数据。随后在2012年,徐等人提出了一种具有恒定数量配对运算的 AB‐PRE 方案,以降低计算开销 [24]。然而,上述所有方案均未实现完全安全性。
2014年,梁等人通过结合对偶系统加密技术,提出了一个完全安全的 CP‐AB‐PRE 方案 [14],然后在2016年,李等人在同一系统下提出了另一个完全安全的方案 [11]。截至目前,此前的所有CP‐AB‐PRE方案均未实现隐藏策略特性。因此,本文针对这一问题展开研究。
组织结构
本文组织结构如下:我们首先在第2节中介绍与密文策略属性基代理重加密相关的访问结构、复杂性假设和安全模型。在第3节中,我们提出隐藏策略的CP‐AB‐PRE方案的构造方法。在第4节中,我们证明了该方案的完全安全性。最后在第5节中,对我们的工作进行结论总结。
2 访问结构和复杂性假设
2.1 访问结构
在我们的方案中,采用与门作为基本的访问策略,支持负属性和通配符。负属性表示用户不应具有该属性,而通配符表示该属性不予考虑。我们的方案还支持多值属性。
我们使用诸如 $ W=[W_1, \cdots, W_n]=[1, 0,
,
, 0] $ 其中 $ n=5 $ 的表示法来指定密文策略。密文策略中的通配符
*
表示“不关心”值,可视为对所有属性的与门操作。例如,上述密文策略意味着想要解密的接收者必须在 $ W_1 $ 上取值为 1,在 $ W_2 $ 和 $ W_5 $ 上取值为 0,而 $ W_3 $ 和 $ W_4 $ 的取值在与门中无关紧要。具有策略 $ [1, 0, 1, 0, 0] $ 的接收者可以解密该密文,但具有策略 $ [1, 1, 1, 0, 1] $ 的接收者不能。
为了支持多值属性,我们采用以下表示方法。给定一个属性列表 $ L=[v_1,t_1, v_2,t_2, \cdots, v_n,t_n] $,其中 $ t_i $ 表示属性集合 $ L_i $ 中的第 $ t_i $ 个属性。对于一个密文策略 $ W=[W_1, W_2,\cdots, W_n] $,若对所有 $ i= 1,\cdots, n $,$ v_{i,t_i} \in W_i $ 或 $ W_i= * $ 成立,则称 $ L $ 满足 $ W $,否则 $ L $ 不满足 $ W $。我们使用符号 $ L \models W $ 表示 $ L $ 满足 $ W $。
2.2 复杂性假设
基本通用群假设
给定一个群生成器 G,我们定义以下分布:
$$
G=(N= p_1p_2p_3, G, G_T, e) \leftarrow_R G, g_1 \in G_{p_1}, g_2, X_2, Y_2 \in G_{p_2}, g_3 \in G_{p_3}, \alpha, s \in \mathbb{Z}
N,
$$
$$
D=(G, g_1, g_2, g_3, g_1^\alpha X_2, g^s_1Y_2), T_0= e(g_1, g_1)^{\alpha s}, T_1 \in G_T.
$$
我们定义算法 A 破解该假设的优势为:
$$
\text{Adv}
{G,A}^{1}(\lambda):= |\Pr[A(D, T_0)= 1] - \Pr[A(D, T_1)= 1]|.
$$
一般子群判定假设
我们让 $ G $ 表示一个群生成器,$ Z_0, Z_1, Z_2,\dots, Z_k $ 表示 $ {1, 2, 3} $ 的一组非空子集,其中每个 $ Z_i $ 对于 $ i \ge 2 $ 满足 $ G=(N= p_1p_2p_3, G, G_T, e) \leftarrow_R G $。
子群中的三方Diffie‐Hellman假设
给定一个群生成器 $ G $,我们定义以下分布:
$$
G=(N= p_1p_2p_3, G, G_T, e) \leftarrow_R G, g_1 \in G_{p_1}, g_2 \in G_{p_2}, g_3 \in G_{p_3}, x, y, z \in \mathbb{Z}
N,
$$
$$
D=(G, g_1, g_2, g_3, g^x_2, g^y_2, g^z_2), T_0= g^{xyz}_2, T_1 \in G
{p_2}.
$$
我们定义算法 A 破解该假设的优势为:
$$
\text{Adv}
{G,A}^{3DH}(\lambda):= |\Pr[A(D, T_0)= 1] - \Pr[A(D, T_1)= 1]|.
$$
如果对于任意PPT算法 A,G 满足三方Diffie‐Hellman假设,则 $\text{Adv}
{G,A}^{3DH}(\lambda)$ 是 $ \lambda $ 的可忽略函数。
源群 q‐子群中的并行BDHE假设
给定一个群生成器 G 和一个正整数 q,我们定义如下分布:
$$
G=(N= p_1p_2p_3, G, G_T, e) \leftarrow_R G, g_1 \in G_{p_1}, g_2 \in G_{p_2}, g_3 \in G_{p_3}, c, d, f, b_1,\dots, b_q \in \mathbb{Z}
N.
$$
攻击者将获得:
$$
D=(G, g_1, g_2, g_3, g^f_2 , g^{df}_2 , g^c_2, g^{c^2}_2,\dots, g^{c^q}_2, g^{c^{q+2}}_2,\dots, g^{c^{2q}}_2,
$$
$$
g^{c^i b_j}_2 \forall i\in[2q]\setminus{q+ 1}, j \in[q], g^{dfb_j}_2 \forall j \in[q], g^{d f c^i b
{j’} b_j}
2 \forall i \in[q], j, j’ \in[q] \text{ s.t. } j \ne j’).
$$
我们还定义了 $ T_0= g^{dc^{q+1}}_2, T_1 \in G
{p_2} $。
我们定义算法 A 破解该假设的优势为:
$$
\text{Adv}
{G,A}^{q}(\lambda):= |\Pr[A(D, T_0)= 1] - \Pr[A(D, T_1)= 1]|.
$$
我们说 G 在子群中满足源群 q‐平行BDHE假设,如果对于任意PPT算法 A,$\text{Adv}
{G,A}^{q}(\lambda)$ 是 $ \lambda $ 的可忽略函数。
2.3 安全模型
CP‐ABE系统的完全安全性定义通过挑战者与攻击者之间的安全游戏来描述,其过程如下:
- 系统建立 。挑战者运行 Setup 算法并将公共参数 PP 发送给攻击者,且挑战者知道主密钥 MSK。
- 阶段1 。攻击者自适应地向挑战者查询对应于属性集合 $ S_1,\dots, S_{Q_1} $ 的私钥。每次查询,挑战者通过运行 KeyGen(MSK, PP, S_k) 生成私钥并响应。攻击者也可以请求访问策略 W′ 的重加密密钥,挑战者将运行 RKGen(SKL, W′) 算法进行响应。
- 挑战 。攻击者选择两个等长的消息 $ M_0 $ 和 $ M_1 $ 以及一个访问结构 W。挑战者抛掷一枚随机硬币 $ b \in {0, 1} $,并在 W 下对 $ M_b $ 进行加密以生成 CT。然后将 CT 发送给攻击者。
- 阶段2 。阶段2与阶段1类似,但攻击者自适应地查询对应于属性集合 $ S_{Q_1+1},\dots, S_Q $ 的私钥。注意,在挑战阶段中,这些属性均不应满足访问结构 W。
- 猜测 。攻击者输出对 b 的猜测 $ b’ $。
攻击者在此游戏中的优势定义为 $ \Pr[b= b’] - \frac{1}{2} $。
3 我们的构造
系统建立($1^k, n$)
一个可信权威生成元组 $ G=[p, G, G_T, g \in G, e] $ 和随机值 $ w \in \mathbb{Z}^*_p $。
对于每个属性 $ i $,其中 $ 1 \le i \le n $,该权威生成随机值 $ {a_{i,t}, b_{i,t} \in \mathbb{Z}^*
p}
{1\le t\le n_i} $ 和随机点 $ {A_{i,t} \in G}
{1\le t\le n_i} $。它计算 $ Y= e(g, g)^w $。公钥 PK 和主密钥 MK 是
$$
PK={Y,p, G, G_T, g, e,{{A^{a
{i,t}}
{i,t}, A^{b
{i,t}}
{i,t}}
{1\le t\le n_i}}
{1\le i\le n}},
$$
$$
MK={w,{a
{i,t}, b_{i,t}}
{1\le t\le n_i}}
{1\le i\le n}}.
$$
KeyGen(MK, L)
令 $ L=[L_1, L_2,\dots, L_n]=[v_{1,t_1}, v_{2,t_2},\dots, v_{n,t_n}] $ 为获得相应私钥的用户的属性列表。可信权威随机选取值 $ s_i $、$ \lambda_i \in \mathbb{Z}^*
p $ 以及随机元素 $ R, R_0, R_1, R_2 \in G
{p_3} $。对于 $ 1 \le i \le n $,设置 $ s= \sum^n_{i=1} s_i $,并计算
$$
D_0= g^{w-s}R。
$$
对于 $ 1 \le i \le n $,该权威计算
$$
D_{i,0}= g^{s_i}(A_{i,t_i})^{a_{i,t_i} b_{i,t_i} \lambda_i}R_0, \quad D_{i,1}= g^{a_{i,t_i} \lambda_i}R_1, \quad D_{i,2}= g^{b_{i,t_i} \lambda_i}R_2。
$$
私钥 SKL 构造如下:
$$
SK_L={D_0,{D_{i,0}, D_{i,1}, D_{i,2}}_{1\le i\le n}}。
$$
加密(PK, M, W)
一个加密者使用密文策略 $ W=[W_1, W_2,\dots, W_n] $ 对消息 $ M \in G_T $ 进行加密。它选择一个随机值 $ r \in \mathbb{Z}^
_p $ 并设置 $ C= MY^r, C_0= g^r $,然后选择另一个随机值 $ h \in \mathbb{Z}^
p $ 并计算
$$
C’_0= h^r。
$$
对于 $ 1 \le i \le n $,它选取随机值 $ {r
{i,t} \in \mathbb{Z}^*
p}
{1\le t\le n_i} $ 并计算 $ C_{i,t,1}, C_{i,t,2} $ 如下:如果 $ v_{i,t} \in W_i $,
$$
C_{i,t,1}=(A_{i,t}^{b_{i,t}})^{r-r_{i,t}}, \quad C_{i,t,2}=(A_{i,t}^{a_{i,t}})^{r_{i,t}};
$$
如果 $ v_{i,t} \notin W_i $,$ C_{i,t,1}, C_{i,t,2} $ 是随机的。
密文 CT 为:
$$
CT={\tilde{C}, C_0, C’
0,{{C
{i,t,1}, C_{i,t,2}}
{1\le t\le n_i}}
{1\le i\le n}}。
$$
重加密密钥生成(私钥L, W)
设 $ SK_L $ 表示一个有效的私钥,$ W $ 表示一个访问策略。为了为 $ W $ 生成重加密密钥,选择 $ d \in \mathbb{Z}
p $ 并计算 $ g^d $、$ D’
{i,0}= D_{i,0}h^d $。设置
$$
D’
0= D_0, \quad D’
{i,1}= D_{i,1}, \quad D’
{i,2}= D
{i,2},
$$
并计算 $ C $,其为在访问策略 $ W $ 下对 $ E(g^d) $ 的密文,即
$$
C = \text{Encrypt}
{PK}(E(g^d), W)。
$$
对应的重加密密钥为
$$
RK
{L \to W} = {D’
0, {{D’
{i,j}}
{1\le j\le 2}}
{1\le i\le n}, C}。
$$
重加密(Re‐encrypt($RK_{L\to W’}, CT_W$))
令 $ RK_{L\to W’} $ 为访问策略 $ W’ $ 的一个有效重加密密钥,$ CT_W $ 为一个结构良好的密文
$$
{\tilde{C}, C_0, C’
0,{{C
{i,t,1},C_{i,t,2}}
{1\le t\le n_i}}
{1\le i\le n}}。
$$
针对 $ 1 \le i \le n $,计算
$$
E_i = e(C_0,D’
{i,0}) \cdot e(C
{i,t,1},D’
{i,1}) \cdot e(C
{i,t,2},D’
{i,2}) = e(g, g)^{rs_i}e(g, h)^{rd},
$$
然后计算
$$
\bar{C} = e(C_0, D’_0) \cdot \prod^n
{i=1} E_i = e(g, g)^{wr}e(g, h)^{nrd},
$$
形成的重加密密文为
$$
CT’ = {\tilde{C}, C’_0, \bar{C}, C}。
$$
解密($CT_W, SK_L$)
接收者尝试使用其 $ SK_L $ 在不知道 $ W $ 的情况下对密文策略进行解密,具体步骤如下:
假设 $ L=[L_1, L_2,\dots, L_n]=[v_{1,t_1}, v_{2,t_2},\dots, v_{n,t_n}] $ 是用户的属性列表。
-
如果 CT 是原始格式正确的密文,则对于 $ 1 \le i \le n $, $ C’ {i,1}=C {i,t,1}, C’ {i,2}= C {i,t,2} $,其中 $ L_i= v_{i,t_i} $,
$$
M= \frac{\tilde{C} \cdot \prod^n_{i=1} e(C’ {i,1} ,D {i,1}) \cdot e(C’ {i,2} ,D {i,2})}{e(C_0,D_0) \cdot \prod^n_{i=1} e(C_0,D_{i,0})}。
$$ -
否则,如果 CT 是重加密后的格式正确密文,则
1. 使用私钥 $ SK_L $ 从 $ C $ 中解密 $ E(g^d) $ 并将其解码为 $ g^d $。
2.
$$
M= \frac{\tilde{C} \cdot e(C’_0, g^d)^n}{\bar{C}}。
$$
4 安全证明
我们利用对偶系统 [10] 在一般子群判定假设、子群中的三方Diffie-Hellman假设以及子群中的源群q-并行BDHE假设下证明了该方案的完全安全。
令 $ \text{Game} {\text{real}} $ 表示第2.3节中定义的真实安全游戏。我们假设 $ g_2 \in G {p_2} $ 并给出半功能性密钥和半功能性密文的定义。
-
半功能密钥 。 设 $ L=[L_1, L_2,\cdots, L_n]=[v_{1,t_1}, v_{2,t_2},\cdots, v_{n,t_n}] $ 为一个属性列表。我们首先运行正常的 KeyGen 算法以生成一个正常密钥 $ D_0,{D_{i,0}, D_{i,1}, D_{i,2}} {1\le i\le n} $。然后选择一个随机元素 $ W \in G {p_2} $,并生成半功能密钥:
$$
D_0 W,{D_{i,0}, D_{i,1}, D_{i,2}}_{1\le i\le n}。
$$ -
半功能性密文 。 然后我们生成半功能性密文,首先运行正常的 Encrypt 算法以生成一个正常密文,其形式为 $ \tilde{C}, C_0, C’ 0, C {i,t,1}, C_{i,t,2} $。我们假设 $ A_{i,t}= g^{u_{i,t}} $,因此
$$
C_{i,t,1}=(g^{u_{i,t}b_{i,t}})^{r_{i,t}},\quad C_{i,t,2}=(g^{u_{i,t}a_{i,t}})^{r-r_{i,t}}。
$$
然后我们选择随机指数 $ r’, r’ {i,t} \in \mathbb{Z}^*_p $,并构造半功能性密文如下:
$$
\tilde{C}, C_0g^{r’}_2, C’_0g^{r’}_2, C {i,t,1}g^{u’ {i,t}b’ {i,t}r’ {i,t}}_2 , C {i,t,2}g^{u’ {i,t}a’ {i,t}(r’-r’_{i,t})}_2 。
$$ -
Game$_k$ 。 设 $ Q $ 表示攻击者发起的密钥查询总数。在此游戏中,提供给攻击者的密文是半功能的,前 $ k $ 个密钥也是半功能的,其余密钥为正常密钥。
我们定义了一些转换以完成我们的安全证明。最初,我们从 $ \text{Game} {\text{real}} $ 转换到 $ \text{Game}_0 $,然后从 $ \text{Game}_0 $ 转换到 $ \text{Game}_Q $,依此类推。最后,我们得到从 $ \text{Game} {Q-1} $ 到 $ \text{Game} Q $ 的转换。在 $ \text{Game}_Q $ 中,提供给攻击者的密文以及所有的密钥都是半功能的。接着,我们从 $ \text{Game}_Q $ 转换到 $ \text{Game} {\text{final}} $。 $ \text{Game}_{\text{final}} $ 与 $ \text{Game}_Q $ 类似,只是提供给攻击者的密文是对随机消息的半功能加密。
为了完成从 $ \text{Game}_{k-1} $ 到 $ \text{Game}_k $ 的转换,我们定义了另外两种类型的半功能性密钥如下:
-
名义半功能性密钥 。 名义半功能性密钥与半功能性密文共享值 $ a’ {i,t_i}, b’ {i,t_i}, u’ {i,t_i} $。然后选择随机指数 $ s’$ 和 $ s’_i $。名义半功能性密钥的构造如下:
$$
D_0g^{-s’}_2, D {i,0}g^{s’ i+u’ {i,t_i}a’ {i,t_i}b’ {i,t_i}\lambda’ i}_2, D {i,1}g^{a’ {i,t_i}\lambda’_i}_2, D {i,2}g^{b’_{i,t_i}\lambda’_i}_2 。
$$ -
临时半功能性密钥 。 临时半功能性密钥与半功能性密文共享值 $ a’ {i,t_i}, b’ {i,t_i}, u’ {i,t_i} $。然后选择随机的 $ W \in G {p_2} $ 和随机指数 $ s’ $ 以及 $ s’ i $。临时半功能性密钥构造如下:
$$
D_0W, D {i,0}g^{s’ i+u’ {i,t_i}a’ {i,t_i}b’ {i,t_i}\lambda’ i}_2, D {i,1}g^{a’ {i,t_i}\lambda’_i}_2, D {i,2}g^{b’_{i,t_i}\lambda’_i}_2 。
$$
对于任意 $ k(1 \le k \le Q) $,我们给出 $ \text{GameN}_k $ 和 $ \text{GameT}_k $ 的定义:
-
GameN$_k$ 。 $ \text{GameN}_k $ 与 $ \text{Game}_k $ 类似,只是提供给攻击者的第 $ k $ 个密钥是一个名义上的半功能密钥。
-
GameT$_k$ 。 $ \text{GameT} k $ 与 $ \text{Game}_k $ 类似,不同之处在于提供给攻击者的第 $ k $ 个密钥是一个临时的半功能密钥。为了实现从 $ \text{Game} {k-1} $ 到 $ \text{Game} k $ 的转换,我们首先从 $ \text{Game} {k-1} $ 转换到 $ \text{GameN}_k $,然后从 $ \text{GameN}_k $ 转换到 $ \text{GameT}_k $,最后从 $ \text{GameT}_k $ 转换到 $ \text{Game}_k $。接着我们给出以下引理以完成我们的证明。
-
引理1 。 不存在任何PPT攻击者能够实现一个不可忽略的差异在 $ \text{Game}_{\text{real}} $ 和 $ \text{Game}_0 $ 之间的优势差异。我们在一般子群判定假设下证明该引理。
-
证明 。 给定一个PPT攻击者 $ A $ 在 $ \text{Game} {\text{real}} $ 和 $ \text{Game}_0 $ 之间取得显著优势差异,我们将构造一个PPT算法 $ B $ 以破解一般子群判定假设。 $ B $ 被给予 $ g_1 $( $ G {p_1} $ 中的一个随机元素)、 $ g_3 $( $ G_{p_3} $ 中的一个随机元素)以及 $ T $(其要么是 $ G_{p_1} $ 中的一个随机元素,要么是 $ G_{p_1p_2} $ 中的一个随机元素)。由于 $ T $ 的不同取值, $ B $ 将使用 $ A $ 来模拟 $ \text{Game}_{\text{real}} $ 或 $ \text{Game}_0 $。
$ B $ 首先运行 Setup 算法并生成公共参数:
$$
N,p, G, G_T, g_1, e, Y= e(g_1, g_1)^w,{A^{a_{i,t}}
{i,t}= g^{u
{i,t}a_{i,t}}
1 , A^{b
{i,t}}
{i,t}= g^{u
{i,t}b_{i,t}}
1 }
{1\le t\le n_i}}
{1\le i\le n}.
$$
$ A
{i,t}, w,u_{i,t},a_{i,t}, b_{i,t} $ 由 $ B $ 随机选取,且主密钥为 $ B $ 所知。 $ B $ 将公共参数发送给 $ A $。当 $ A $ 请求私钥或重加密密钥时, $ B $ 运行正常的 KeyGen 算法或正常的 RKGen 算法以生成所请求的密钥。
另一方面, $ A $ 被允许请求一个挑战密文。 $ A $ 首先选择两个相同长度的消息 $ M_0 $ 和 $ M_1 $,以及一个访问策略 $ W $,然后将它们发送给 $ B $。 $ B $ 通过抛硬币选择一个随机比特 $ b $,然后在 $ W $ 下对 $ M_b(b \in{0, 1}) $ 进行加密,过程如下:它隐式地将 $ g^r $ 设为 $ T $ 的 $ G_{p_1} $ 部分。它还选择 $ \tilde{r}
{i,t}, r’’ \in \mathbb{Z}_N, \forall t \in[1, n_i], \forall i \in[1, n] $,并隐式地设置 $ r
{i,t} = \tilde{r}
{i,t} $。密文构造如下:
$$
\tilde{C}= Me(g_1, T)^w, C_0= T, C’_0= T^{r’‘}, C
{i,t,1}=(T^{u_{i,t}b_{i,t}})^{\tilde{r}
{i,t}}, C
{i,t,2}=(T^{u_{i,t}a_{i,t}})^{1-\tilde{r}
{i,t}}.
$$
如果 $ T \in G
{p_1} $,这是一个分布正确的正常密文,并且 $ B $ 已使用 $ A $ 正确模拟了 $ \text{Game}
{\text{real}} $。如果 $ T \in G
{p_1p_2} $,则这是一个半功能性密文,其中 $ g^{r’}
2 $ 是 $ T $ 的 $ G
{p_2} $ 部分, $ u’
{i,t} $ 等于 $ u
{i,t} \mod p_2 $ 的值, $ a’
{i,t} $ 等于 $ a
{i,t} \mod p_2 $ 的值, $ b’
{i,t} $ 等于 $ b
{i,t} \mod p_2 $ 的值, $ r’ - r’
{i,t} $ 等于 $ 1 - \tilde{r}
{i,t} \mod p_2 $ 的值。然后 $ B $ 已使用 $ A $ 正确模拟了 $ \text{Game}_0 $。
-
引理2 。 对于任意 $ k \in[1, Q] $,不存在PPT攻击者能在 $ \text{Game}_{k-1} $ 和 $ \text{GameN}_k $ 之间实现非可忽略的优势差异。我们将在一般子群判定假设下证明此引理。
-
证明 。 给定一个PPT攻击者 $ A $,对于某个介于1和 $ Q $ 之间的 $ k $,在 $ \text{Game} {k-1} $ 与 $ \text{GameN}_k $ 之间取得不可忽略的优势差异,我们将构造一个PPT算法 $ B $ 来攻破一般的子群判定假设。 $ B $ 被给予 $ g_1, g_3, X_1X_2, Y_2Y_3, T $,其中 $ g_1, X_1 $ 是 $ G {p_1} $ 的生成元, $ X_2 $ 是 $ G_{p_2} $ 的生成元, $ g_3, Y_3 $ 是 $ G_{p_3} $ 的生成元,而 $ T $ 要么是 $ G_{p_1}G_{p_3} $ 中的随机元素,要么是 $ G_{p_1p_2p_3} $ 中的随机元素。由于 $ T $ 取值的不同, $ B $ 将利用 $ A $ 模拟 $ \text{Game}_{k-1} $ 或 $ \text{GameN}_k $。
$ B $ 首先运行 Setup 算法并生成公共参数:
$$
N,p, G, G_T, g_1, e, Y= e(g_1, g_1)^w,{A^{a_{i,t}}
{i,t} =g^{u
{i,t}a_{i,t}}
1 , A^{b
{i,t}}
{i,t} =g^{u
{i,t}b_{i,t}}
1 }
{1\le t\le n_i}}
{1\le i\le n} 。
$$
$ A
{i,t}, w,u_{i,t},a_{i,t}, b_{i,t} $ 由 $ B $ 随机选取,且主密钥由 $ B $ 掌握。 $ B $ 将公共参数发送给 $ A $。当 $ A $ 请求私钥或重加密密钥时, $ B $ 运行正常的 KeyGen 算法或正常的 RKGen 算法以生成所请求的密钥。
针对 $ A $ 的前 $ k-1 $ 个密钥查询, $ B $ 按如下方式生成半功能性密钥:首先运行正常的 KeyGen 算法以生成一个正常密钥 $ D_0,{D_{i,0}, D_{i,1}, D_{i,2}}
{1\le i\le n} $,然后选择一个随机指数 $ \tau \in \mathbb{Z}_N $,并构造半功能性密钥为:
$$
D_0(Y_2Y_3)^\tau, {D
{i,0}, D_{i,1}, D_{i,2}}
{1\le i\le n}。
$$
接着 $ B $ 运行 RKGen 算法并生成重加密密钥:
$$
D_0(Y_2Y_3)^\tau,{D
{i,0}h^r, D_{i,1}, D_{i,2}}
{1\le i\le n}。
$$
这里 $ h $ 是 $ G
{p_1} $ 的一个随机元素,而 $ r $ 是 $ \mathbb{Z}^*_p $ 的一个随机元素。
然后 $ B $ 按照引理1中的方式生成半功能性挑战密文,该密文是消息 $ M_b $ 在策略 $ W $ 下的密文。它选择随机指数 $ \tilde{r}
{i,t}, \forall i \in[1, n], t \in[1, n_i] $,并隐式地设置 $ g^r= X_1 $ 和 $ r
{i,t} = \tilde{r}
{i,t} $。它选择一个随机指数 $ r’’ $,半功能性密文为:
$$
\tilde{C}= Me(g_1, X_1X_2)^w, C_0= X_1X_2, C’_0=(X_1X_2)^{r’‘},
$$
$$
C
{i,t,1}=(X_1X_2)^{u_{i,t}b_{i,t} \tilde{r}
{i,t}}, C
{i,t,2}=(X_1X_2)^{u_{i,t}a_{i,t}(1-\tilde{r}
{i,t})}。
$$
我们隐式地设置 $ g^{r’}_2= X_2 $, $ u’
{i,t} $ 等于 $ u_{i,t} $ 对 $ p_2 $ 取模的值, $ a’
{i,t} $ 等于 $ a
{i,t} $ 对 $ p_2 $ 取模的值, $ b’
{i,t} $ 等于 $ b
{i,t} $ 对 $ p_2 $ 取模的值,而 $ r’ - r’
{i,t} $ 等于 $ 1 - \tilde{r}
{i,t} $ 对 $ p_2 $ 取模的值。
为了为属性列表生成第 $ k $ 个请求的密钥 $ L $, $ B $ 随机选择指数 $ \tilde{\lambda}
i \in \mathbb{Z}_N $ 和元素 $ R, R_0, R_1, R_2 \in G
{p_3} $。它设置如下:
$$
D_0=g^wT^{-s}R, D_{i,0}= T^{s_i}T^{u_{i,t}a_{i,t}b_{i,t} \tilde{\lambda}
i}R_0, D
{i,1}= T^{a_{i,t} \tilde{\lambda}
i}R_1, D
{i,2}= T^{b_{i,t} \tilde{\lambda}_i}R_2。
$$
-
引理3 。 不存在能够取得不可忽略差异的PPT攻击者在 $ \text{GameN}_k $ 和 $ \text{GameT}_k $ 之间的优势差异,对于任意的 $ k \in[1, Q] $。我们在三方 Diffie‐Hellman假设下证明此引理。
-
证明 。 给定一个PPT攻击者 $ A $,对于某个介于1和 $ Q_1 $ 之间的 $ k $,在 $ \text{GameN} k $ 与 $ \text{GameT}_k $ 之间实现了不可忽略的优势差异,我们将构造一个PPT算法 $ B $,用于攻破子群中的三方Diffie‐Hellman假设。 $ B $ 被给予 $ g_1, g_2, g_3, g^x_2, g^y_2, g^z_2, T $,其中 $ T $ 要么是 $ g^{xyz}_2 $,要么是 $ G {p_2} $ 的一个随机元素。由于 $ T $ 取值不同, $ B $ 将用 $ A $ 模拟 $ \text{GameN}_k $ 或 $ \text{GameT}_k $。
$ B $ 首先运行 Setup 算法并生成公共参数:
$$
N,p, G, G_T, g_1, e, Y= e(g_1, g_1)^w,{A^{a_{i,t}}
{i,t} = g^{u
{i,t}a_{i,t}}
1 , A^{b
{i,t}}
{i,t} = g^{u
{i,t}b_{i,t}}
1 }
{1\le t\le n_i}}
{1\le i\le n}。
$$
$ A
{i,t}, w,u_{i,t},a_{i,t},b_{i,t} $ 由 $ B $ 随机选取,且主密钥为 $ B $ 所知。 $ B $ 将公共参数发送给 $ A $。当 $ A $ 请求私钥或重加密密钥时, $ B $ 运行正常的 KeyGen 算法或正常的 RKGen 算法以生成所请求的密钥。
针对 $ A $ 的前 $ k -1 $ 个密钥请求, $ B $ 通过首先运行正常的 KeyGen 算法,然后乘以 $ G_{p_2} $ 的一个随机元素来生成半功能性密钥。
通过 $ A $ 生成第 $ k $ 个密钥查询时,首先运行正常的 KeyGen 算法以生成一个普通密钥 $ D_0,{D_{i,0}, D_{i,1}, D_{i,2}}
{1\le i\le n} $。然后选择随机指数 $ s’_i, u’
{i,t}, a’
{i,t}, b’
{i,t}, \lambda’
i \in \mathbb{Z}_N $,由此形成密钥:
$$
D_0T, D
{i,0}g^{s’
i+u’
{i,t}a’
{i,t}b’
{i,t}\lambda’
i}_2 , D
{i,1}g^{a’
{i,t}\lambda’_i}_2 , D
{i,2}g^{b’
{i,t}\lambda’_i}_2 。
$$
然后 $ B $ 运行 RKGen 算法并生成重加密密钥:
$$
D_0T, D
{i,0}g^{s’
i+u’
{i,t}a’
{i,t}b’
{i,t}\lambda’
i}_2 h^r, D
{i,1}g^{a’
{i,t}\lambda’_i}_2 , D
{i,2}g^{b’
{i,t}\lambda’_i}_2 。
$$
如果 $ T= g^{xyz}_2 $,这将是一个分布正确的名义半功能密钥;当 $ T $ 在 $ G
{p_2} $ 中随机时,这将是一个分布正确的临时半功能密钥。
为了为消息 $ M_b $ 和访问策略 $ W $ 生成半功能性挑战密文, $ B $ 首先运行正常的 Encrypt 算法以生成一个正常密文 $ \tilde{C}, C_0, C’
0,{{C
{i,t,1}, C_{i,t,2}}
{1\le t\le n_i}}
{1\le i\le n} $。然后选择随机指数 $ r’, r’
{i,t} \in \mathbb{Z}^*_p $。半功能性密文构造如下:
$$
\tilde{C}= Me(g, g)^{wr}, C_0g^{r’}_2, C’_0g^{r’}_2, C
{i,t,1}g^{u_{i,t}b_{i,t}r’
{i,t}}_2 , C
{i,t,2}g^{u_{i,t}a_{i,t}r’_{i,t}}。
$$
-
引理4 。 不存在任何PPT攻击者能够对任意从1到 $ Q $ 的 $ k $ 在 $ \text{GameT}_k $ 和 $ \text{Game}_k $ 之间取得显著的优势差异。我们在一般子群判定假设下证明此引理。
-
证明 。 该引理的证明与引理2类似,只是 $ B $ 使用 $ Y_2Y_3 $ 在第 $ k $ 个密钥的 $ D_0 $ 部分上添加一个随机的 $ G_{p_2} $ 分量,以便在 $ T $ 没有 $ G_{p_2} $ 分量的情况下将其变为半功能密钥。
-
引理5 。 不存在能够使得 $ \text{Game} Q $ 和 $ \text{Game} {\text{final}} $ 之间的优势差异达到不可忽略程度的PPT攻击者。我们在基本通用群假设下证明此引理。
-
证明 。 给定一个PPT攻击者 $ A $ 在 $ \text{Game} Q $ 和 $ \text{Game} {\text{final}} $ 之间取得显著的优势差异,我们将构造一个PPT算法 $ B $ 来攻破基本通用群假设。 $ B $ 被给予 $ g_1, g_2, g_3, g^w_1 X_2, g^r_1Y_2, T $,其中 $ T $ 要么是 $ e(g_1, g_1)^{wr} $,要么是 $ G_{p_2} $ 中的一个随机元素。由于 $ T $ 取值不同, $ B $ 将用 $ A $ 模拟 $ \text{Game} Q $ 或 $ \text{Game} {\text{final}} $。
$ B $ 首先运行 Setup 算法并生成公共参数:
$$
N,p, G, G_T, g_1, e, Y= e(g_1, g_1)^w ,{A^{a_{i,t}}
{i,t} = g^{u
{i,t}a_{i,t}}
1 , A^{b
{i,t}}
{i,t} = g^{u
{i,t}b_{i,t}}
1 }
{1\le t\le n_i}}
{1\le i\le n} 。
$$
响应 $ A $ 在属性列表 $ L $ 下的密钥请求, $ B $ 按如下方式生成半功能密钥。它选择随机指数 $ r’, \tilde{r}
{i,t} $ 和随机元素 $ R, R_0, R_1, R_2 \in G_{p_3} $。半功能密钥构造如下:
$$
D_0 =(g^w_1 X_2)g^{-s}
1 Rg^{r’}_2 , D
{i,0} = g^{s_i}
1 g^{u
{i,t}a_{i,t}b_{i,t}\lambda_i}
1 R_0 , D
{i,1} = g^{a_{i,t}\lambda_i}
1 R_1 , D
{i,2} = g^{b_{i,t}\lambda_i}
1 R_2 。
$$
然后 $ B $ 运行 RKGen 算法并生成重加密密钥:
$$
D_0 =(g^w_1 X_2)g^{-s}_1 Rg^{r’}_2 , D
{i,0} = g^{s_i}
1 g^{u
{i,t}a_{i,t}b_{i,t}\lambda_i}
1 h^r R_0 , D
{i,1} = g^{a_{i,t}\lambda_i}
1 R_1 , D
{i,2} = g^{b_{i,t}\lambda_i}
1 R_2 。
$$
为了在访问策略 $ W $ 下为 $ M_b $ 生成半功能性密文, $ B $ 选择随机指数 $ \tilde{r}
{i,t}, r’ $ 并隐式设置 $ r= r’ \tilde{r}
{i,t} $,半功能性密文的构造如下:
$$
\tilde{C}= M_bT, C_0= g^{r’}_1 Y_2, C’_0= h^{r’} Y_2,
$$
$$
C
{i,t,1}=(g^{r’}
1 Y_2)^{u
{i,t}b_{i,t} \tilde{r}
{i,t}}, C
{i,t,2}=(g^{r’}
1 Y_2)^{u
{i,t}a_{i,t}(1-\tilde{r}
{i,t})}。
$$
在此半功能性密文中, $ g^{r’}_2 $ 等于 $ Y_2 $, $ u’
{i,t} $ 等于 $ u_{i,t} $, $ a’
{i,t} $ 等于 $ a
{i,t} $, $ b’
{i,t} $ 等于 $ b
{i,t} $, $ 1 - \tilde{r}
{i,t} $ 等于 $ r - r
{i,t} $,对每个 $ i, t $ 模 $ p_2 $。如果 $ T=e(g_1, g_1)^{\alpha s} $,则是 $ M_b $ 的一个正确分布的半功能性加密,且 $ B $ 已正确模拟了 $ \text{Game}
Q $。如果 $ T $ 是 $ G_T $ 中的一个随机元素,则这是随机消息的一个正确分布的半功能性加密,且 $ B $ 已正确模拟了 $ \text{Game}
{\text{final}} $。
5 结论
在本工作中,我们提出了一种隐藏密文策略属性基代理重加密方案,解决了重加密过程中隐私泄露的问题。此外,我们进一步证明了该方案在标准模型下是完全安全的。在未来工作中,我们计划设计一种新的CP‐AB‐PRE方案,以降低重加密过程的计算开销并提供更强的表达能力。
6万+

被折叠的 条评论
为什么被折叠?



