摘要:随着云服务的快速发展,数据的共享和传播受到了广泛关注。基于属性的条件代理重加密(attribute-based conditional proxy re-encryption, AB-CPRE)能安全且高效地实现数据群组共享和传播而被广泛应用。然而,现有的AB-CPRE方案无法实现同一组内多个数据传播者协同将数据传播给新的用户组,仅支持单一数据传播者,灵活性差。此外,现有方案中用户生成验证值所需的计算开销随着密文中属性数增加而增加,导致云服务器和用户之间的公平验证效率低。针对上述不足,提出一种可支持公平验证的数据群组灵活协同共享方案。该方案构造了一种协同传播树结构,以实现同一组内多个数据传播者协同将数据传播给新用户组。此外,该方案设计了计算开销恒定的验证值生成机制,使用户仅需常数级计算开销即可生成验证值,从而高效实现云服务器和用户间的公平可验证。最后,形式化安全性证明和性能评估表明,所提方案是可证明安全和公平可验证的,并在验证值生成、重加密密钥生成和解密阶段比现有方案高效。
关键词:协同数据传播;基于属性的条件代理重加密;协同传播树;公平可验证
论文《可支持公平验证的数据群组灵活协同共享方案》发表在《网络与信息安全学报》,版权归《网络与信息安全学报》所有。本文来自网络平台,仅供参考。

引言
随着云服务的快速发展,用户逐渐选择在云上共享数据资源。在现实应用场景中,除数据共享之外,数据协同传播需求日益增加。为了保证数据的隐私性和可用性,进行协同传播的数据通常需要被重新加密成新用户可以解密的密文。由于生成重加密密文需要大量计算成本,执行重加密的实体可能会返回不正确的重加密密文给用户,以节省自身的计算资源。相反,用户即使收到正确的重加密密文,也可能恶意指责该密文是错误的以拒绝支付上述实体执行重加密操作的成本。因此,实现可支持公平验证的数据群组灵活协同共享是一个迫切需要解决的问题。
条件代理重加密(conditional proxy re-encryption, CPRE)是常用的一种技术,这是因为它能够安全高效地实现数据群组共享和传播。通过该技术,数据传播者只需生成与特定条件相关联的重加密密钥并上传至云服务器,即可完成数据传播任务,而无须像其他加密技术一样下载密文、解密密文、最终重新加密数据。然而,传统的CPRE方案仅基于关键词条件,难以适应云环境中数据所有者可能具有的多种传播需求。例如,家庭照片只允许家人传播,而工作文件则只允许同事传播。基于属性的CPRE(attribute-based conditional proxy re-encryption, AB-CPRE)能够实现细粒度的重加密操作,因此,是一种非常适用于云环境的加密机制。数据传播者只需生成满足细粒度条件的重加密密钥,并将其上传至云服务器即可。随后,云服务器利用接收到的重加密密钥对原始密文进行重加密,并将其传播给可以解密的新用户组。此外,为验证重加密密文的正确性,确保云服务器免受用户的恶意指责,即验证云服务器和用户间的公平交易,有学者提出公平可验证的AB-CPRE方案。
尽管AB-CPRE方案在数据群组共享和细粒度传播方面比其他加密方案更高效灵活,但它仍然存在以下不足。首先,该方案无法实现同一组内多个数据传播者协同传播数据至新的用户组,仅支持单一数据传播者的传播操作,灵活性差,因此难以适用于医疗或者机关单位等高度协同需求的场景。其次,现有的公平可验证AB-CPRE方案中用户生成验证值所需的计算开销随着原始密文的属性数量增加而增加,无法高效实现云服务器和用户之间的高效验证。因此,设计可支持公平验证的数据群组灵活协同共享方案是一项具有挑战性的任务。
针对上述不足,本文提出一种可支持公平验证的数据群组灵活协同共享方案。该方案设计了一种协同传播树结构作为基础模块,以实现多数据传播者协同传播的权限控制。即数据所有者可以为叶子节点赋予随机陷门特征,只有当多个数据传播者同时满足预设的随机陷门,数据才能够被传播到新用户组。此外,为高效实现云服务器和用户之间的公平验证,本文设计了一个常数级开销的验证值生成机制,大大降低了用户生成验证值所需的计算开销。
本文的主要贡献如下:
1. 提出一种可支持公平验证的数据群组灵活协同共享方案,该方案设计了协同传播树结构以实现同一组内多个数据传播者的协同传播。
2. 设计一种计算开销恒定的验证值生成机制,大大降低了用户生成验证值所需的计算开销,进而高效实现云服务器和用户间的公平可验证。
3. 给出正式的安全性证明和全面的性能评估。安全性证明表明本文方案是可证明安全以及公平可验证的。此外,实验评估表明本文验证值生成的计算开销是常数级的,且重加密密钥生成阶段和解密等阶段的计算开销更高效。
1 相关工作
1.1 属性基加密
Ge等设计了一种基于密文策略的属性基加密(ciphertext policy attribute-based encryption, CPABE)的协同访问控制方案,实现密文大小不会随着属性数量的增加而增加。He等提出一种基于区块链的协同解密CP-ABE方案,利用线性秘密共享方案来实现协同解密。Xue等提出一种改进的属性基加密方案,实现同一组用户能够互相共享特定的属性。Chen等提出基于文件分层和协同解密的CP-ABE方案,将文件层次的思想融入协同解密中。Madani等提出一种基于属性的访问控制模型的扩展,实现了用户可在多云的环境下进行协同解密。Zhang等提出一种可验证机制来验证多参与方是否满足密文中的访问树结构,有效防止不必要的协作而浪费计算资源,此外,该方案考虑了多协同者合作访问共享数据。Li等将权重的ABE与协同访问机制结合,实现高效的协同共享方案。然而,上述方案并没有考虑加密信息可能需要由多个参与者协同地传播到一个新的用户组中。
1.2 基于属性的条件代理重加密
Huang等提出一种改进的AB-CPRE方案,支持具有属性和时间条件的数据群组共享和传播。Huang等基于AB-CPRE机制进一步实现了对涉及多个数据所有者共同数据的隐私保护。Deng等提出AB-CPRE机制与身份广播加密机制的组合方案,完善了“多对多”访问模型。Ge等设计了一种公平可验证的AB-CPRE方案,验证重加密密文正确性的同时,可保护云服务器免受恶意指控。Jiang等增强重加密密文在不可信云环境下的可验证性和可信性。Xie等提出了基于ABE和聚合数字签名的可验证外包方案,其使用聚合数字签名来检测重加密密文的正确性。Sun等提出公平可验证的广播授权框架用于安全的灵活数据共享。但上述方案在生成验证阶段所需的验证值时,用户需要消耗大量的计算开销。
2 预备知识
2.1 决策双线性Diffie-Hellman假设
2.2 离散对数假设
给出一个元组 ((e, G, G_{T}, g, p, g^{varepsilon})),其中,(e: G×G o G_{T}) 是双线性对运算,(g) 是 (G) 的生成元,(varepsilon in Z_{p}^{*})。离散对数假设意味着概率多项式时间敌手 (A) 找到整数 (varepsilon) 的优势是可忽略的。形式上,一个概率多项式时间敌手 (A) 的优势 (Adv_{DL}=Pr[A(e, G, G_{T}, g, p, g^{varepsilon})=varepsilon]) 是可忽略的。
3 问题表述
3.1 系统模型
系统模型由6个实体组成:可信机构、仲裁机构、云服务器、数据所有者、数据传播者和用户。可信机构用于生成系统参数,并为系统中的用户分发身份密钥和属性密钥;仲裁机构负责响应用户和云服务器的公平可验证请求,防止用户对云服务器的恶意指控;云服务器提供一个存储和共享加密数据的平台,此外可以使用数据传播者上传的重加密密钥生成重加密密文;数据所有者能够安全地将数据外包到云服务器中,同时为数据传播定义一个协同传播树对数据进行加密,从而限制数据由特定的授权用户传播;数据传播者分为发起者和协同者,两者都具备生成重加密密钥的能力,此外,数据传播者是数据所有者定义的接收者之一;用户对云服务器中数据发出访问请求,并解密密文,此外,用户还可向仲裁机构提出验证请求来验证重加密密文的正确性。
3.2 形式化算法
可支持公平验证的数据群组灵活协同共享方案包括8个概率多项式时间算法,详细描述如下:
1. (Setup(lambda, n) o (pk, msk)):可信机构输入安全参数 (lambda in N) 和系统中允许存在的最大用户数量 (n in N),输出公钥元组 (pk) 和主密钥元组 (msk)。
2. (KeyGen(u, pk, msk, S^{u}) o (sk^{u}, ak^{u})):可信机构输入用户标识符 (u),公钥元组 (pk),主密钥元组 (msk),以及用户的属性集 (S^{u}),输出用户的身份密钥 (sk^{u}) 和属性密钥 (ak^{u})。
3. (Encrypt(m, pk, U, T) o ct_{ au}):数据所有者输入明文数据 (m),公钥元组 (pk),接收者标识符集合 (U),以及协同传播树 (T),输出初始密文 (ct_{ au}) 并上传至云服务器。
4. (RKeyGen(u, pk, sk^{u}, ak^{u}, ct_{ au}, U') o rk^{u}):数据传播者输入用户标识符 (u),公钥元组 (pk),用户的身份密钥 (sk^{u}) 以及属性密钥 (ak^{u}),新接收者标识符集合 (U'),以及初始密文 (ct_{ au}),输出重加密密钥 (rk^{u}) 并发送给云服务器。
5. (REncrypt(u, pk, rk^{u}, ct_{ au}) o ct):云服务器输入用户标识符 (u),公钥元组 (pk),重加密密钥 (rk^{u}) 以及原始密文 (ct_{ au}),输出重加密密文 (ct) 并将其传播给指定的用户组。
6. (Decrypt(u, pk, sk^{u}, ct) o m):用户输入标识符 (u),公钥元组 (pk),身份密钥 (sk^{u}) 和原始密文 (ct_{ au}),解密后输出明文数据 (m)。
7. (ProofGen(u', pk, sk^{u'}, ct) o pi):用户输入标识符 (u'),公钥元组 (pk),身份密钥 (sk^{u'}) 和重加密密文 (ct),输出验证过程所需的验证值 (pi) 并上传至仲裁机构。
8. (Verify(ct_{ au}, rk^{u}, ct, pi) o True / False):仲裁机构输入原始密文 (ct_{ au}),重加密密钥 (rk^{u}),重加密密文 (ct) 以及用户提交的验证值 (pi),若验证通过,则输出 (True),否则输出 (False)。
3.3 安全性定义
本文方案的安全性定义由概率多项式时间敌手 (A) 和挑战者 (C) 共同完成如下游戏,具体过程如下:
- 初始化:敌手 (A) 选择挑战标识集 (U^{*}) 以及协同传播树 (T^{*}),并将它们发送给挑战者 (C)。然后,挑战者 (C) 运行 (Setup) 算法输出一个公钥元组 (pk) 并将其发送给敌手 (A)。
- 阶段1:敌手 (A) 请求标识符 (u_{i} otin U^{*}) 的身份密钥 (sk^{u_{i}}),与属性集 (T^{*}) 的属性密钥 (ak)。然后,挑战者 (C) 执行 (KeyGen) 算法返回对应的密钥。此外,敌手 (A) 还可以请求对于标识符 (u_{i} otin U^{*}) 和属性集 (S^{u_{i}} otin T^{*}) 的重加密密钥 (rk^{u_{i}})。挑战者 (C) 通过执行 (RKeyGen) 算法返回重加密密钥。
- 挑战:敌手 (A) 挑战两个等长的消息 (m_{0}) 和 (m_{1}),挑战者 (C) 选择随机比特 (b in {0,1}) 并加密明文 (m_{b}),返回原始密文 (ct_{ au}^{*}) 给敌手 (A)。
- 阶段2:该阶段与阶段1相同。
- 猜测:敌手 (A) 输出猜测 (b' in {0,1}),如果 (b'=b) 意味着敌手 (A) 赢得游戏。
3.4 设计目标
假设可信机构和仲裁机构都是可信实体,云服务器则是半可信实体。本文方案将满足如下3个设计目标:
1. 数据机密性:用户如果不在数据所有者或数据传播者授权集合中,则无法获取任何数据。此外,云服务器无法获取任何隐私信息。
2. 公平可验证:用户在云服务器传播重加密密文时可验证重加密密文的正确性。此外,当收到正确的重加密密文时,用户不能恶意地指责云服务器。
3. 抗合谋:未经授权的数据传播者无法合谋产生有效的重加密密钥。此外,未经授权的数据传播者不能与云服务器合谋获取任何隐私信息。
4 协同传播树
为实现协同传播,本文设计了协同传播树作为后续方案的基础模块。其中,非叶子节点包含了三元组 ({(x, y), TG, t}),叶子节点则包含了四元组 ({(x, y), att_{x}^{y}, t, RT}),详细说明如下:
1. 非叶子节点:元素 ((x, y)) 表示每个节点位置,其中 (x) 表示行,(y) 表示列。(TG) 表示限门,其包含的类型为 (AND)、(OR)、(n'-of-m(n'
2. 叶子节点:元素 ((x, y)) 表示每个节点位置。不同之处在于叶子节点包含4个元素,其中,(att_{x}^{y}) 表示该节点属性。(RT) 表示随机陷门,其被定义两种状态:暴露或未暴露。如果云服务器能够获取到该节点的秘密值,则该随机陷门状态为暴露;否则,该随机陷门状态为不暴露。此外,叶子节点的门限值 (t) 为1。
5 方案构造
假设 (e: G × G o G_{T}) 是一个双线性映射,其中 (G) 和 (G_{T}) 是素数阶为 (p) 的乘法群,(H_{1}:{0,1}^{*} o Z_{p}^{*}),(H_{2}:{0,1}^{*} o G) 和 (H_{3}: G_{T} o G) 是3个抗碰撞哈希函数。方案详细说明如下:
5.1 Setup算法
该算法由可信机构执行,生成公钥元组 (pk) 与主密钥元组 (msk):
1. 选择随机数 (g, h, v, phi, varphi leftarrow G)。
2. 选择随机数 (eta, eta_{1}, eta_{2}, gamma, heta_{1}, cdots, heta_{n} leftarrow Z_{p}^{*})。
3. 计算 (h^{eta}, v^{eta}, g^{gamma}, h^{eta_{1}-eta_{2}}, g^{eta_{1}eta_{2}}, e(g, h), e(g, h)^{gamma})。
4. 对于 (i in [1, n]),计算 (h^{gamma^{i}})、(v^{gamma^{i}})。
5. 设置 (pk leftarrow (h, h^{gamma}, cdots, h^{gamma^{n}}, v, v^{gamma}, v^{gamma^{2}}, cdots, v^{gamma^{n}}, h^{eta}, v^{eta}, e(g, h)^{gamma}, e(g, h), g^{gamma}, h^{eta_{1}-eta_{2}}, g^{eta_{1}eta_{2}}, phi, varphi))。
6. 设置 (msk leftarrow (g, gamma, eta, eta_{1}, eta_{2}, heta_{1}, cdots, heta_{n}))。
7. 返回 (pk, msk)。
5.2 KeyGen算法
该算法生成用户的身份密钥 (sk^{u}),以及属性密钥 (ak^{u}),其中用户分为两个类型(发起者和协同者);属性集 (S^{u}) 被分为两个不同的子集:(S_{1}^{u}) 包含不允许协同的属性;(S_{2}^{u}) 包含允许协同的属性:
1. 解析 (pk) 和 (msk)。
2. 选择随机数 (r^{u} leftarrow Z_{p}^{*})。
3. 计算 (sk^{u}=g^{1/(gamma+H_{1}(u))}),(d_{0}^{u}=g^{(gamma+r^{u}(eta_{1}-eta_{2}))/eta})。
4. 对于每个属性 (i in S_{1}^{u}),选择随机数 (r_{i}^{u} leftarrow Z_{p}^{*}),计算 (d_{i}^{u}=g^{r^{u}} H_{2}(i)^{r_{i}^{u}}),(d_{i}^{u'}=h^{r_{i}^{u}(eta_{1}-eta_{2})})。
5. 如果用户是数据传播的发起者,对于每个属性 (j in S_{2}^{u}),选择随机数 (r_{j}^{u} leftarrow Z_{p}^{*}),计算 (d_{j}^{u''}=g^{r^{u}eta_{1}} H_{2}(j)^{r_{j}^{u}})、(d_{j}^{u'''}=h^{r_{j}^{u}})、(e_{tr}^{u}=h^{( heta_{m}+r^{u})/eta_{1}})。
6. 否则,对于每个属性 (j in S_{2}^{u}),选择随机数 (r_{j}^{u} leftarrow Z_{p}^{*}),计算 (d_{j}^{u''}=g^{r^{u}eta_{2}} H_{2}(j)^{r_{j}^{u}})、(d_{j}^{u'''}=h^{r_{j}^{u}})、(e_{tr}^{u}=h^{(r^{u}- heta_{m})/eta_{1}})。
7. 设置 (ak^{u} leftarrow (d_{0}^{u}, {d_{i}^{u}, d_{i}^{u'}}_{i in S_{1}^{u}}, {d_{j}^{u''}, d_{j}^{u'''}}_{j in S_{2}^{u}}, e_{tr}^{u}))。
8. 返回 (sk^{u}, ak^{u})。
5.3 Encrypt算法
1. 解析 (pk)。
2. 生成一个密钥 (ck leftarrow MLE.KeyGen(m))。
3. 计算根节点的 (d_{1}^{1}=t-1),选择随机数 (a_{1}, a_{2}, cdots, a_{d_{1}^{1}} leftarrow Z_{p}^{*})、(ell leftarrow Z_{p}^{*}),并设置 (q_{1}^{1}(0)=ell)、(q_{1}^{1}(x) leftarrow ell+a_{1}x+cdots+a_{d_{1}^{1}}x^{d_{1}^{1}})。
4. 对于其他节点在位置 ((x, y) in T),计算 (d_{x}^{y}=t-1),选择随机数 (b_{1}, cdots, b_{d_{x}^{y}} leftarrow Z_{p}^{*}),计算 (q_{x}^{y}(0)=q_{parent(x,y)}(index(x,y))),设置 (q_{x}^{y}(x_{1})=q_{x}^{y}(0)+b_{1}x_{1}+cdots+b_{d_{x}^{y}}x_{1}^{d_{x}^{y}})。
5. 选择随机数 (k leftarrow Z_{p}^{*}),计算 (delta=H_{1}(MLE.Encrypt(m, ck)))、(c_{1}=(m | ck) oplus e(g, h)^{kdelta})、(c_{2}=h^{kdelta} cdot prod_{u_{i} in U}(y+H_{1}(u_{i})))、(c_{3,1}=v^{etaelldelta})、(c_{3,2}=v^{kdelta cdot prod_{u_{i} in U}[(gamma+H_{1}(u_{i}))/H_{1}(u_{i})]})、(c_{3,3}=v^{etaell})、(c_{3,4}=v^{k cdot prod_{u_{i} in U}[(gamma+H_{1}(u_{i}))/H_{1}(u_{i})]})、(c_{4}=g^{-gamma kdelta})、(c_{5}=h^{eta/delta})、(c_{6}=e(g, h)^{gammaelldelta})。
6. 对于每个无 (RT) 的叶子节点在 ((x, y) in Y),计算 (c_{(x,y)}=h^{q_{x}^{y}(0)(eta_{1}-eta_{2})delta})、(c_{(x,y)}'=H_{2}(att_{(x,y)})^{q_{x}^{y}(0)delta})。
7. 对于每个有 (RT) 的叶子节点在 ((x, y) in X),计算 (c_{(x,y)}'=H_{2}(att_{(x,y)})^{q_{x}^{y}(0)delta})、(c_{(x,y)}''=h^{q_{x}^{y}(0)delta})、(hat{c}_{(x,y)}=g^{q_{x}^{y}(0)eta_{1}eta_{2}delta})。
8. 计算 (c_{8}=h^{eta t})、(overline{c}=phi^{H_{1}(m)} varphi^{H_{1}(ck)})。
9. 设置 (c_{x}^{y} leftarrow {c_{(x,y)}, c_{(x,y)}'}_{(x,y) in Y})、(c_{x}^{y'} leftarrow {c_{(x,y)}', c_{(x,y)}'', hat{c}_{(x,y)}}_{(x,y) in X})、(c leftarrow (c_{0}, c_{1}, c_{2}, c_{3,1}, c_{3,2}, c_{3,3}, c_{3,4}, c_{4}, c_{5}, c_{6}, c_{8}, overline{c}))。
10. 返回 (ct_{ au} leftarrow (c_{x}^{y}, c_{x}^{y'}, c))。
5.4 RKeyGen算法
1. 解析 (pk)、(ak^{u})、(ct_{ au})。
2. 选择随机数 (k')、(s leftarrow Z_{p}^{*})。
3. 计算 (r_{1}^{u}=sk^{u} cdot v^{s/H_{1}(u)}=g^{1/(gamma+H_{1}(u))} cdot v^{s/H_{1}(u)})、(r_{2}^{u}=h^{k' cdot prod_{u_{i} in U'}(gamma+H_{1}(u_{i}))})、(r_{3}^{u}=H_{3}(e(g, h)^{k'}) cdot h^{s})、(r_{4}^{u}=g^{-gamma k'})、(r_{5}^{u}=d_{0}^{u} cdot v^{s}=g^{[gamma+r^{u}(eta_{1}-eta_{2})]/eta} cdot v^{s})。
4. 对于每个属性 (i in S_{1}^{u}),设置 (r_{i}^{u} leftarrow d_{i}^{u}),(r_{i}^{u'} leftarrow d_{i}^{u'})。
5. 对于每个属性 (j in S_{2}^{u}),设置 (r_{j}^{u''} leftarrow d_{j}^{u''}),(r_{j}^{u'''} leftarrow d_{j}^{u'''})。
6. 设置 (r^{u''''} leftarrow e_{tr}^{u}),(r_{6}^{u} leftarrow ({r_{i}^{u}, r_{i}^{u'}}_{i in S_{1}^{u}}, {r_{j}^{u''}, r_{j}^{u'''}}_{j in S_{2}^{u}}, r^{u''''}))。
7. 计算 (r_{7}^{u}=e(h^{s}, v^{etaell}))、(r_{8}^{u}=e(v^{-s}, h)^{k cdot prod_{u_{i} in U}[(gamma+H_{1}(u_{i}))/H_{1}(u_{i})]})。
8. 返回 (rk^{u} leftarrow (r_{1}^{u}, r_{2}^{u}, r_{3}^{u}, r_{4}^{u}, r_{5}^{u}, r_{6}^{u}, r_{7}^{u}, r_{8}^{u}))。
5.5 REncrypt算法
云服务器利用标识符假设为 (u) 的发起者上传的 (rk^{u}) 运行递归算法 (DecryptNode(ct_{ au}, rk^{u}, (x, y))),该算法输入原始密文 (ct_{ au}),与一组属性 (S^{u}) 相关联的重加密密钥 (rk^{u}) 和协同传播树 (T) 中一个节点的位置信息 ((x, y)),具体过程如下:
- 如果 ((x, y)) 是一个叶子节点,且该节点的属性 (z=att_{(x,y)}) 定义如下:当该节点不满足随机陷门 (RT) 特征,如果 (z otin S_{1}^{u}),则设置算法 (DecryptNode(ct_{ au}, rk^{u}, (x, y))=perp)。否则,计算 (DecryptNode(ct_{ au}, rk^{u}, (x, y))=frac{e(r_{z}^{u}, c_{(x,y)})}{e(r_{z}^{u'}, c_{(x,y)}')}=e(g, h)^{r^{u} q_{x}^{y}(0)(eta_{1}-eta_{2})delta})。
- 当该节点满足随机陷门特征时,算法 (DecryptNode) 则不仅需要涉及发起者的 (rk^{u}) 而且需涉及协同者 (u_{1}) 上传的 (rk^{u_{1}}),如果 (z otin S_{2}^{u}) 或 (z otin S_{2}^{u_{1}}),则算法 (DecryptNode=perp)。否则,计算 (DecryptNode(ct_{ au}, rk^{u}, (x, y))=frac{e(r_{z}^{u''}, c_{(x,y)}'')}{e(r_{z}^{u'''}, c_{(x,y)}')}=e(g, h)^{r^{u} q_{x}^{y}(0)eta_{1}delta}),以及 (DecryptNode(ct_{ au}, rk^{u_{1}}, (x, y))=frac{e(r_{z}^{u_{1}''}, c_{(x,y)}'')}{e(r_{z}^{u_{1}'''}, c_{(x,y)}')}=e(g, h)^{r^{u_{1}} q_{x}^{y}(0)eta_{2}delta})。
- 如果 ((x, y)) 是非叶子节点时,则先选择该节点大小为 (t) 的孩子节点 (n') 集合,并将它们存储在集合 (S_{(x,y)}) 中,如果不存在该集合,则算法 (DecryptNode) 返回。其中,孩子节点 (n') 设定如下:如果孩子节点不满足随机陷门特征,则 (n') 只需与发起者 (u) 关联;如果 (n') 满足随机陷门特征,则 (n') 必须与 (u) 和协同者 (u_{1}) 相关联,其中,(u eq u_{1})。
对于不具备 (RT) 的节点 (n' in S_{(x,y)}),调用 (DecryptNode(ct_{ au}, rk^{u}, (x, y))) 算法,并将该算法的输出存储在 (f_{n'})。这意味着云服务器利用发起者上传的重加密密钥 (rk^{u}) 解密得到该孩子节点 (n') 所关联的秘密值。对于具备 (RT) 特征的孩子节点 (n' in S_{(x,y)}),调用 (DecryptNode),并将该算法的输出存储在 (f_{n'}^{u}) 和 (f_{n'}^{u_{1}}) 中。这意味云服务器可以分别利用发起者和协同者上传的重加密密钥解密得到该孩子节点 (n') 所对应的准秘密值。最后,云服务器需要将这两个输出 (f_{n'}^{u}) 和 (f_{n'}^{u_{1}}) 合并为 (f_{n'}),该具备 (RT) 特征的节点才最终被暴露,合并公式如下:
[f_{n'}=f_{n'}^{u} cdot f_{n'}^{u_{1}} cdot eleft(hat{c}_{(x,y)}, frac{(e_{tr}^{u})^{-1}}{e_{tr}^{u_{1}}} ight)=e(g, h)^{r^{u} q_{n'}(0)delta(eta_{1}-eta_{2})}]
云服务器可以进一步使用多项式插值公式来计算 (f_{(x,y)}=prod_{n' in S_{(x,y)}} f_{n'}^{q_{parent(n')}(index(n'))}),其中 (j=index(n')),(S_{(x,y)}'=index(n'): n' in S_{(x,y)})。通过解密节点 (1,1) 得到 (A=f(1,1)=e(g, h)^{r^{u} q_{1}^{1}(0)(eta_{1}-eta_{2})delta}=e(g, h)^{r^{u}ell(eta_{1}-eta_{2})delta})。
随后,云服务器可以定义以下等式 ( riangleright_{gamma}(u, U)=gamma^{-1}left(prod_{u_{i} in U cap u_{i} eq u}(gamma+H_{1}(u_{i}))-prod_{u_{i} in U cap u_{i} eq u} H_{1}(u_{i}) ight)) 并计算:
[c_{5}'=e(c_{5}, r_{5}^{u}) / (c_{6} cdot A)=eleft(h^{eta/delta}, v^{s} ight)]
[c_{1}'=c_{1} cdot left(eleft(c_{4}, h^{ riangleright_{gamma}(u,U)} ight) cdot eleft(r_{1}^{u}, c_{2} ight) ight)^{-1/prod_{u_{i} in U cap u_{i} eq u} H_{1}(u_{i})}=(m | ck) oplus eleft(v^{s}, h^{-kdelta} ight)^{prod_{u_{i} in U}frac{(gamma+H_{1}(u_{i}))}{H_{1}(u_{i})}}]
最后,云服务器设置 (c_{2}' leftarrow r_{2}^{u}),(c_{3}' leftarrow r_{3}^{u}),(c_{4}' leftarrow r_{4}^{u}),(overline{c}' leftarrow overline{c}),(c_{6}' leftarrow c_{3,1} cdot c_{3,2}),并传播重加密密文 (ct) 给新用户组 (U'),其中,(ct=(c_{0}', c_{1}', c_{2}', c_{3}', c_{4}', c_{5}', c_{6}', overline{c}'))。
5.6 Decrypt算法
算法输入用户标识符 (u),公钥元组 (pk),身份密钥 (sk^{u}) 和原始密文 (ct_{ au})。如果 (u in U),用户定义 ( riangleright_{gamma}(u, U)=gamma^{-1}left(prod_{u_{i} in U cap u_{i} eq u}(gamma+H_{1}(u_{i}))-prod_{u_{i} in U cap u_{i} eq u} H_{1}(u_{i}) ight)),并计算 (zeta=left(e(c_{4}, h^{ riangleright_{gamma}(u,U)}) cdot e(sk^{u}, c_{2}) ight)^{1/prod_{u_{i} in U cap u_{i} eq u} H_{1}(u_{i})}=e(g, h)^{kdelta})。最后,用户获得 ((m | ck)=c_{1} oplus e(g, h)^{kdelta})。如果 (overline{c}'=phi^{H_{1}(m)} varphi^{H_{1}(ck)}),则输出明文数据 (m)。
5.7 ProofGen算法
输入用户标识符 (u'),公钥元组 (pk),用户的身份密钥 (sk^{u'}) 和重加密密文 (ct=(c_{0}', c_{1}', c_{2}', c_{3}', c_{4}', c_{5}', c_{6}', overline{c}'))。如果 (u' in U'),用户可以定义以下等式 ( riangleright_{gamma}(u', U')=gamma^{-1}left(prod_{u_{i} in U' cap u_{i} eq u'}(gamma+H_{1}(u_{i}))-prod_{u_{i} in U' cap u_{i} eq u'} H_{1}(u_{i}) ight)),并计算 (zeta'=left(e(c_{4}', h^{ riangleright_{gamma}(u',U')}) cdot e(sk^{u'}, c_{2}') ight)^{1/prod_{u_{i} in U' cap u_{i} eq u'} H_{1}(u_{i})}=e(g, h)^{k'delta})。然后,用户计算 (z'=c_{3}' / H_{3}(zeta')=h^{s}),并可以获得 ((m | ck)=(c_{1}' cdot e(z', c_{6}')) oplus c_{5}')。当 (overline{c}'=phi^{H_{1}(m)} varphi^{H_{1}(ck)}),用户得到 (m) 和 (ck)。最后,用户生成验证阶段所需的验证值 (pi=(m, ck)) 并上传至云服务器。
5.8 Verify算法
输入原始密文 (ct_{ au}),重加密密钥 (rk^{u}),重加密密文 (ct) 以及用户上传的验证值 (pi=(m, ck))。仲裁机构首先会验证以下公式 (overline{c}'=overline{c}),(c_{2}'=r_{2}^{u}),(c_{3}'=r_{3}^{u}),(c_{4}'=r_{4}^{u}),(c_{6}'=c_{3,1} cdot c_{3,2}) 是否成立。如果上述公式中存在某一个公式不成立,则输出 (False),表明云服务器未正确生成重加密密文。否则,仲裁机构将会继续计算 (delta=H_{1}(MLE.Encrypt(m, ck))) 并进一步验证以下等式 (overline{c}'=overline{c}=phi^{H_{1}(m)} varphi^{H_{1}(ck)}),(c_{1}' eq (m | ck) oplus (r_{8}^{u})^{delta}) 和 (c_{5}' eq (r_{7}^{u})^{delta}) 是否成立。如果上述公式成立,表明云服务器未正确生成重加密密文,并输出 (False),否则,该算法将会输出 (True)。
6 安全性证明
6.1 定理1
假设决策双线性Diffie-Hellman在群 (G) 下成立,本文方案满足选择明文攻击下不可区分性(indistinguishability under chosen plaintext attack, IND-CPA)。
证明:本文通过描述敌手 (A) 和挑战者 (C) 之间的博弈来证明本文方案是IND-CPA安全的。
- 初始化:敌手 (A) 选择挑战身份集合 (U^{*}) 和挑战传播策略 (T^{*})。挑战者 (C) 随机选择 (x in Z_{p}^{*}) 并运行 (Setup) 算法生成系统所需的公钥元组 (pk)、哈希函数 (H_{1})、(H_{2}) 和 (H_{3}) 以及主密钥元组 (msk),其中 (v^{gamma^{i}}=h^{gamma^{i} cdot x}(i in [0, n]))。
- 阶段1:挑战者 (C) 保存映射表 (L_{k}),其存储敌手 (A) 的查询元组。敌手 (A) 可查询具有标识符 (u_{i}) 的身份密钥 (sk^{u_{i}}) 和带有属性集 (S^{u_{i}}) 的属性密钥 (ak^{u_{i}})。如果 (u_{i} in U^{*}) 且 (S^{u_{i}} in T^{*}),挑战者 (C) 将会返回 (perp)。否则,挑战者 (C) 运行 (KeyGen) 算法生成对应的用户密钥对并返回给 (A)。此外,敌手 (A) 还可以对重加密密钥 (rk^{u_{i}}) 发起查询,其中,用户标识符 (u_{i} otin U^{*}) 以及属性集 (S^{u_{i}} otin T^{*})。挑战者 (C) 运行 (RKeyGen) 算法生成重加密密钥并提供给敌手 (A) 并记录到 (L_{k})。
- 挑战:敌手 (A) 挑战等长消息 (m_{0}) 和 (m_{1})。挑战者 (C) 选择 (b in {0,1}),运行 (Encrypt) 算法来生成挑战密文 (ct_{ au}^{*}) 并发送给敌手 (A)。
- 阶段2:该阶段与阶段1保持一致。
- 猜测:敌手 (A) 输出一个猜测 (b')。
在以下生成接收者标识符集 (U') 的重加密密钥查询的情况下,证明发现 (A) 成功破解本文方案:
1. 如果 (U' cap L_{k} eq emptyset),(A) 解密 (h^{s}) 来破坏本文方案安全性,然后则有 (A_{Dis}(g^{y}, sk^{u_{i}} cdot v^{s/H_{1}(u_{i})})) 成立。由于敌手 (A) 可以计算 (h^{gamma+H_{1}(u_{i})}) 和 (v=h^{x}),则 (A_{Dis}(e(g^{y}, h^{(gamma+H_{1}(u_{i}))}), e(g^{1/(gamma+H_{1}(u_{i}))} cdot h^{x cdot s/H_{1}(u_{i})}, h^{(gamma+H_{1}(u_{i}))}))) 成立,其中,由于 (e(g, h)) 是公共参数,则会有 (A_{Dis}(e(g^{y}, h^{(gamma+H_{1}(u_{i}))}) cdot e(g, h)^{-1} cdot e(h, h)^{x cdot s cdot (gamma+H_{1}(u_{i}))/H_{1}(u_{i})})) 成立。因 (g^{y}) 是随机选择的,则存在 (c in Z_{p}^{*}) 使 (e(g^{y}, h^{gamma+H_{1}(u_{i})}) cdot e(g, h)^{-1}=e(g, h)^{y(gamma+H_{1}(u_{i}))-1}=e(h, h)^{c})。显然,敌手 (A) 已知 (h^{x})、(h^{s}) 和 (h^{(gamma+H_{1}(u_{i}))/H_{1}(u_{i})})。因此,当 (A_{Dis}(e(h, h)^{c}, e(h, h)^{x cdot s cdot (gamma+H_{1}(u_{i}))/H_{1}(u_{i})})) 成立,敌手 (A) 可通过区分 (e(h, h)^{c}) 和 (e(h, h)^{x cdot s cdot (gamma+H_{1}(u_{i}))/H_{1}(u_{i})}) 来打破定理1中的假设。
2. 如果 (U' cap L_{k}= emptyset),则 (A) 可在不知道任何 (u_{i} in U') 情况下破坏本文方案的IND-CPA安全性。
因此,由反证法思路,定理1可以被证明。
6.2 定理2
假设 (H_{1}) 是抗碰撞哈希函数且离散对数成立,本文方案是公平可验证的。
证明:假设存在一个能够以不可忽略的优势 (epsilon) 破解本文方案公平可验证性的敌手 (A)。该证明可构建挑战者 (B),(B) 能够以优势 (epsilon) 解决离散对数问题,并以概率 (epsilon' geq epsilon - Adv_{DL} - Adv_{MLE}) 打破哈希函数 (H_{1}) 的抗碰撞性,其中,(Adv_{DL}) 为打破离散对数假设的优势,(Adv_{MLE}) 为打破MLE算法的优势。
- 初始化:挑战者 (B) 选择挑战身份集合 (U^{*}) 和挑战传播策略 (T^{*})。挑战者 (B) 随机选择 (varepsilon)、(eta) 并运行 (Setup) 算法来生成系统所需的公钥元组 (pk),最后生成 (H_{1})、(H_{2}) 和 (H_{3})。
- 阶段1:当敌手 (A) 发出 (O_{ak^{u}}(S^{u}))、(O_{rk^{u}}(S^{u}, overline{U})) 和 (O_{Verify}(ct_{ au}, rk^{u}, ct, pi)) 查询时,由于挑战者 (B) 知道 (msk),则挑战者 (B) 通过 (KeyGen)、(RKeyGen) 和 (Verify) 算法生成密钥和重加密密钥,然后返回结果给 (A)。
- 挑战:敌手 (A) 输出消息 (m^{*}) 和传播策略 (T^{*}),并将其发给 (B)。(B) 计算 (ct_{ au}^{*}=Encrypt(m^{*}, T^{*}, U^{*})),(ct^{*}=REncrypt(ct_{ au}^{*}, rk^{u^{*}})),其中 (rk^{u^{*}}) 是符合 (T^{*}) 以及用户组 (overline{U}) 的重加密密钥,并将 (ct_{ au}^{*})、(ct^{*}) 发送给 (A)。
- 阶段2:该阶段与阶段1保持一致。
- 猜测:敌手 (A) 输出一个验证值 (pi=(m', ck')) 和一个重加密密文 (ct^{*}(overline{U}))。挑战者 (B) 选择一个符合 (overline{U}) 的用户标识符 (u),并使用 (msk) 生成一个身份密钥 (sk^{u})。然后,挑战者 (B) 可以解密 (ct^{*}(overline{U})) 以获取 (m^{*}) 和 (ck^{*})。如果 (A) 赢了游戏,这意味着 (m' otin {m^{*}, perp}),即 (overline{c}'=overline{c}^{*}),进而推导得到 (varepsilon cdot (H_{1}(m') - H_{1}(m^{*})) = eta cdot (H_{1}(ck') - H_{1}(ck^{*}))),最后,挑战者 (B) 可以从上述公式计算出 (varepsilon = [eta (H_{1}(ck') - H_{1}(ck^{*}))] / [(H_{1}(m') - H_{1}(m^{*}))])。
分析:如果敌手 (A) 赢得了上述游戏,则意味着 (Verify(ct_{ au}^{*}, rk^{u^{*}}, ct^{*}, pi)=False),并可得到 (delta=H_{1}(m' | ck'))、(overline{c}'=phi^{H_{1}(m')} varphi^{H_{1}(ck')})、(overline{c}^{*}=phi^{H_{1}(m^{*})} varphi^{H_{1}(ck^{*})})、(c_{1}' eq (m' | ck') oplus (r_{8}^{u^{*}})^{delta})。由于 (c_{5}' eq (r_{7}^{u^{*}})^{delta}) 成立,有 ((m' | ck') eq (m^{*} | ck^{*}))。此外,由于存在等式 (overline{c}'=overline{c}^{*}=phi^{H_{1}(m')} varphi^{H_{1}(ck')}),则将会进一步存在等式 (phi^{H_{1}(m^{*})} varphi^{H_{1}(ck^{*})}=phi^{H_{1}(m')} varphi^{H_{1}(ck')})。将 (varphi=phi^{eta}) 表示为未知的随机值,然后有 (H_{1}(m')=H_{1}(m^{*})) 或者 (H_{1}(ck')=H_{1}(ck^{*}))。否则,任何人都可使用得到的值来计算 (eta=(H_{1}(m') - H_{1}(m^{*})) / (H_{1}(ck^{*}) - H_{1}(ck'))) 并解决离散对数假设。同时,挑战者 (B) 可找到抗碰撞哈希函数 (H_{1}) 的一个碰撞元组,其中,(m' eq m^{*}),(H_{1}(m')=H_{1}(m^{*})),或者 (ck' eq ck^{*}),(H_{1}(ck')=H_{1}(ck^{*}))。挑战者 (B) 找到这样一个碰撞元组的优势是 (epsilon - Adv_{DL} - Adv_{MLE})。
因此,假设 (H_{1}) 是一个抗碰撞的哈希函数并且离散对数假设成立,则本文方案是公平可验证的。
6.3 定理3
本文方案是抗合谋的。
证明:首先,考虑未经授权的数据传播者合谋的情况,在 (Encrypt) 算法中,原始密文包含了一个随机秘密值 (ell)。因此,为了成功执行重加密操作,云服务器必须使用重加密密钥恢复 (A=e(g, h)^{r^{u}ell(eta_{1}-eta_{2})delta})。然而,当数据传播者上传的重加密密钥不符合原始密文中的协同传播树时,则云服务器无法获取 (A=e(g, h)^{r^{u}ell(eta_{1}-eta_{2})delta})。其次,同一组内的数据传播者可以使用 (e_{tr}^{u}) 协同解密满足随机陷门特征的叶子节点,但不在同一组中的数据传播者则无法协同解密这些叶子节点。这是因为数据传播者所拥有的 (e_{tr}^{u}) 与唯一的随机值 ( heta_{m}) 相关联。最后,即使数据传播者与云服务器相互勾结以访问密文,这样的合谋攻击也不会生效,这是因为云服务器在任何阶段都无法获得任何隐私信息。
7 性能评估
仿真实验基于Java语言和椭圆双曲线系统算法库,硬件平台是Intel Core i5 CPU@2.20 Ghz,内存24 GB。本节将现有方案与本文方案的计算开销、通信开销进行比较。
7.1 计算开销评估
(1)Encrypt算法计算开销
所有方案在该算法上的计算开销都随着属性数量的增加而线性增加。本文方案比VF-CP-ABPRE方案更高效,其中当属性数量为25个时,本文加密时间仅需1186.2 ms。具体来说,本文方案需 ((10+2|A_{ au}|+|A_{X}|)E + 2E_{t}
计算开销实现数据传播者进行数据协同传播。其中,VF-PPBA方案的计算开销为 ((4+2|A_{ au}|)E + E_{t}),比本文方案高效,但是该方案并不支持协同传播功能。VF-CP-ABPRE方案需要为同一个属性生成多个密文,因此,计算开销为 ((4+3|A_{ au}|)E + E_{t})。
(2)RKeyGen计算开销
本文方案与属性数量无关,比其他方案更高效。当属性数量为25个时,VF-CP-ABPRE和VF-PPBA方案分别需要2072.7 ms、2153.6 ms,而本文仅需152.7 ms。具体来说,本文方案只需根据标识符来定义新用户组而无须生成新的访问策略,因此在该阶段计算开销仅需 (6E + 2P + E_{t})。其他方案要为新用户组生成新访问策略,故计算开销为 ((5+|A_{ au}|+3|A|)E + 2E_{t}) 和 ((9+2|A_{ au}|+2|A|)E + 3E_{t})。
(3)Decrypt算法计算开销
本文方案在该阶段的效率明显高于其他两个对比方案。当属性数量为25个时,本文方案计算开销仅需要91.5 ms,而VF-CP-ABPRE和VF-PPBA方案则分别需要918.1 ms和497.2 ms。具体来说,在解密原始密文的过程中,本文方案只需要用户解密一个与属性无关的广播密文即可,因此仅需要 (2P + 3E_{t}) 的计算开销。VF-CP-ABPRE和VF-PPBA方案则都需要用户解密基于属性加密的密文,即这两个方案的计算开销都与原始密文的属性数量呈线性关系,因此,这两个方案计算开销分别为 ((1+2|A_{ au}|)P + 2E + |A_{ au}|E_{t}) 和 ((3+|A_{ au}|)P + 2E + 2E_{t})。
(4)ProofGen算法计算开销
本文方案验证值生成算法的计算开销是常量级的。相比所要对比的两个方案,本文方案在该阶段上所需的计算开销是最高效的。除此之外,其他两个对比方案的计算开销都会随着属性数量的增加而增加,而本文方案的计算开销则保持在107.7 ms。具体来说,本文方案由于只需要用户解密一个与属性数量无关的广播密文,故仅需要 (3P + 3E_{t}) 的计算开销即可生成验证阶段所需要的验证值。然而,VF-CP-ABPRE和VF-PPBA方案都需要用户解密基于属性加密的密文,因此,这两个方案计算的开销分别为 ((1+2|A|)P + 2E + (|A|+1)E_{t}) 和 (4P + (2+|A|)E + 3E_{t})。
(5)不同算法的计算开销评估
本文方案的计算开销与数据传播者数量相关性实验测试显示,RKeyGen、Decrypt和ProofGen算法的计算开销保持恒定,与数据传播者数量无关,经测试执行上述算法分别需要152.7 ms、91.5 ms和107.7 ms。然而,Encrypt算法的计算开销随着数据传播者的数量增加而线性增加,当数据传播者数量为4时,执行该算法计算开销为674 ms。
7.2 通信开销评估
(1)Encrypt算法通信开销
所有方案的通信开销都随着原始密文中的属性数量增加而增加,当属性数量为15个时,本文方案通信开销为5.125 KB。具体来说,为了传播与细粒度的协同传播相关的原始密文,本文方案通信开销为 ((2|A_{ au}|+|A_{X}|+9)|G| + 2|G_{t}|)。因不需要为协同传播来传播额外密文,VF-CP-ABPRE和VF-PPBA方案的通信开销为 ((3+2|A_{ au}|)|G| + |G_{t}|) 和 ((3+|A_{ au}|)|G| + |G_{t}|)。
(2)REncrypt通信开销
本文方案在该阶段上的通信开销是恒定不变的,并且明显高效于所要对比的两个方案。本文方案的通信开销始终为0.875 KB。具体来说,本文方案由于只需要定义新用户的标识符集而并不需要传播关于新访问策略的密文,故通信开销仅为 (5|G| + 2|G_{t}|)。然而,为了让新用户能够访问到数据,方案VF-CP-ABPRE和VF-PPBA都需要传播新访问策略的密文,因此,这两个方案的通信开销分别为 ((3+2|A|)|G| + 3|G_{t}|) 和 ((6+|A|)|G| + 4|G_{t}|)。
(3)不同算法的通信开销评估
不同算法的通信开销评估显示,在REncrypt算法中,云服务器传播重加密密文过程中所需的通信开销与数据传播者的数量无关,始终为0.875 KB。但是,在Encrypt算法中,生成的初始密文大小与数据传播者数量呈线性相关,因此其通信开销呈不断递增趋势。当数据传播者数量为4时,传播Encrypt算法的密文通信开销为4.375 KB。
8 结束语
本文提出的可支持公平验证的数据群组灵活协同共享方案通过设计协同传播树结构和计算开销恒定的验证值生成机制,不仅实现了多传播者协作的灵活性,还降低了验证值生成等阶段的计算开销,从而确保了云服务器与用户之间的公平验证效率。另外,理论分析和性能评估表明,本文方案是IND-CPA安全、高效和公平可验证的。未来的研究将聚焦于海量数据传播者环境下进一步优化方案的性能。
参考文献
[1] 葛文婷, 李卫海, 俞能海. 基于属性加密的块级云数据去重方案[J]. 网络与信息安全学报, 2023, 9(5): 106-115.
[2] ZHANG J, SU S, ZHONG H, et al. Identity-based broadcast proxy re-encryption for flexible data sharing in VANETs[J]. IEEE Transactions on Information Forensics and Security, 2023, 18: 4830–4842.
[3] QIU J, HWANG G, LEE H. Efficient conditional proxy re-encryption with chosen-ciphertext security[C]//Proceedings of 2014 Ninth Asia Joint Conference on Information Security, Berlin: Springer, 2014: 104-110.
[4] HU H, ZHOU Y, ZENG C, et al. Efficient and HRA secure universal conditional proxy re-encryption for cloud-based data sharing[J]. Applied Sciences, 2022, 12(19): 9586-9600.
[5] XU P, JIAO T, WU Q, et al. Conditional identity-based broadcast proxy re-encryption and its application to cloud email[J]. IEEE Transactions on Computers, 2016, 65(1): 66-79.
[6] CUI J, LI B, ZHONG H, et al. Achieving revocable attribute group-based encryption for mobile cloud data: a multi-proxy assisted approach in VANETs[J]. IEEE Transactions on Dependable and Secure Computing, 2023, 20(4): 2988-3001.
[7] SUN J, XU G, ZHANG T, et al. Verifiable, fair and privacy-preserving broadcast authorization for flexible data sharing in clouds[J]. IEEE Transactions on Information Forensics and Security, 2023, 18: 683-698.
[8] GE C, SUSILO W, BAEK J, et al. A verifiable and fair attribute-based proxy re-encryption scheme for data sharing in clouds[J]. IEEE Transactions on Dependable and Secure Computing, 2022, 19(5): 2907-2919.
[9] 刘尚, 郭银章. 云计算多授权中心CP-ABE代理重加密方案[J]. 网络与信息安全学报, 2022, 8(3): 176-188.
[10] GE J, WEN M, WANG L, et al. Attribute-based collaborative access control scheme with constant ciphertext length for smart grid[C]//IEEE International Conference on Communications, 2022: 540-546.
[11] HE Y, WANG H, LI Y, et al. An efficient ciphertext-policy attribute-based encryption scheme supporting collaborative decryption with blockchain[J]. IEEE Internet of Things Journal, 2022, 9(4): 2722–2733.
[12] XUE Y, XUE K, GAI N, et al. An attribute-based controlled collaborative access control scheme for public cloud storage[J]. IEEE Transactions on Information Forensics and Security, 2019, 14(11): 2927-2942.
[13] CHEN N, LI J, ZHANG Y, et al. Efficient CP-ABE scheme with shared decryption in cloud storage[J]. IEEE Transactions on Computers, 2022, 71(1): 175-184.
[14] MADANI M A, KERKRI A, AISSAOUI M. MC-ABAC: an ABAC-based model for collaboration in multi-cloud environment[J]. International Journal of Advanced Computer Science and Applications, 2023, 14(6): 1182-1190.
[15] ZHANG Y, LI B, LIU B, et al. An attribute-based collaborative access control scheme using blockchain for IoT devices[J]. Electronics, 2020, 9(2): 285-307.
[16] LI X, WANG H, MA S, et al. Revocable and verifiable weighted attribute-based encryption with collaborative access for electronic health record in cloud[J]. Cybersecurity, 2024, 7(18): 2523-3246.
[17] HUANG Q, YANG Y, FU J. Secure data group sharing and dissemination with attribute and time conditions in public cloud[J]. IEEE Transactions on Services Computing, 2021, 14(4): 1013-1025.
[18] HUANG Q, YANG Y, YUE W, et al. Secure data group sharing and conditional dissemination with multi-owner in cloud computing[J]. IEEE Transactions on Cloud Computing, 2021, 9(4): 1607-1618.
[19] DENG H, ZHANG J, QIN Z, et al. Policy based broadcast access authorization for flexible data sharing in clouds[J]. IEEE Transactions on Dependable and Secure Computing, 2022, 19(5): 3024-3037.
[20] JIANG L, ALAZAB M, QIN Z. Secure task distribution with verifiable re-encryption in mobile-crowdsensing-assisted emergency IoT system[J]. IEEE Internet of Things Journal, 2024, 11(3): 3896-3908.
[21] XIE C, SHI R, ZHANG X, et al. Verifiable outsourcing EMRs scheme with attribute-based encryption in cloud-edge environments[J]. Journal of Information Security and Applications, 2023, 76: 103526-103538.
转载请注明来自:http://www.lunwencheng.com/lunwen/dzi/22736.html