面向云计算优化的基于属性的加密

摘要

在本研究中,我们旨在使基于属性的加密(ABE)更适用于对存储在云中的数据进行访问控制。为此,我们着重于赋予加密者对访问权限的完全控制权,在存在多个独立权威机构的情况下实现可行的密钥管理,并支持切实可行的用户撤销机制,这在实际应用中至关重要。我们的主要成果是对莱科和沃特斯的去中心化CP‐ABE方案[6]进行扩展,引入了基于身份的用户撤销功能。我们的撤销机制通过将撤销事件的计算负担从云服务提供商转移至用户端而变得可行,尽管这会为用户运行的加密和解密算法带来一定的永久性但可接受的开销。因此,计算开销被分摊到大量潜在用户身上,而不是集中在单一方(例如代理服务器)上,从而避免了性能瓶颈。我们方案的形式化安全证明在通用双线性群和随机预言机模型下给出。

关键词 :云存储,访问控制,基于属性的加密,多机构,用户撤销。

1 引言

近期趋势表明,企业正从使用自有数据中心转向将数据存储外包给云服务提供商。除了成本节约外,灵活性是推动外包数据存储的主要动力,但另一方面也引发了安全性问题,这使我们不得不考虑加密的必要性。传统密码系统旨在将数据机密编码传输至目标接收者(例如从爱丽丝到鲍勃),这种方式似乎限制了云环境所提供的机会和灵活性。设想以下场景:一些公司正在合作开展一个密码学项目,每家公司均有员工共同参与某些任务。假设爱丽丝希望与参与该子任务的人员以及来自不同公司的项目管理者共享某个子任务的部分数据。我们发现,若使用传统技术对这些数据进行加密,则会导致接收者必须事先确定,此外,他们必须共享相同的私钥,或者必须存储多个加密版本(使用不同的密钥)。这些因素削弱了云环境应提供的安全性、效率和灵活性。

由萨哈伊和沃特斯提出的基于属性的加密(ABE)[12]旨在用于一对多加密,其中密文是为满足特定要求的用户进行加密的。在云环境中实现细粒度访问控制的最合适变体称为密文策略(CP‐ABE),在这种方案中,密文与由加密者确定的访问策略相关联,而属性用于描述用户,相应地,属性被嵌入到用户的私钥中。当且仅当用户的属性满足密文中给定的访问结构时,该用户才能解密密文,因此可以在无需预先知道接收者的情况下实现数据共享,从而在加密后仍保持云环境的灵活性。

回到前面的例子,使用CP‐ABE,Alice可以使用以下布尔公式表示的访问策略对消息M进行加密:“CryptoProject”AND(“Subtask Y” OR “Manager”)。将密文上传到云后,每家公司的员工都可以轻松访问该密文,但只有那些私钥中拥有满足访问策略的一组属性的员工才能恢复数据(例如 “CryptoProject”, “Subtask Y”)。

尽管具有良好的特性,但CP‐ABE的采用仍需进一步完善。ABE系统的一个关键特性是能够抵抗合谋攻击。在大多数情况下(例如[2,14]),这是通过将特定用户的属性私钥与一个随机数绑定实现的,从而确保只有包含相同随机值的属性才能用于解密。因此,私钥必须由一个中心权威机构颁发,该机构需要能够验证其为系统中每个用户所颁发的所有属性或凭证。然而,即使在我们的示例中也表明,跨信任域颁发的属性或凭证是必不可少的,而这些属性或凭证必须在不同的组织内部进行验证(例如 “Manager” attribute)。为了解决这个问题,我们将利用莱科和沃特斯关于去中心化CP‐ABE的研究成果[6]。

另一个相关的问题是用户撤销。在日常使用中,更改用户权限的工具至关重要,因为可能会发生意外事件并影响这些权限。需要撤销某人的情况可能包括解雇或发现恶意行为。在属性基加密(ABE)中,撤销尤其困难,因为不同的用户可能持有与相同属性集相关联的功能私钥(除了随机化因素外)。我们强调,用户撤销仅适用于特殊情况,如上述情况,所有其他情况均可通过正确使用属性更简单地处理(例如,一个属性可以包含其计划的有效期,如 “CryptoProject2015”)。

相关工作

属性基加密(ABE)的概念最初由萨哈伊和沃特斯[12]提出,作为一种基于身份的加密的推广。贝滕科尔特等人[2]提出了首个密文策略属性基加密方案,在该方案中,加密者必须决定谁应该或不应该访问其加密的数据(密文)与策略相关联,而用户的密钥则与描述性属性集合相关联)。这一概念后来由沃特斯在[14]中进一步改进。

构建具有多个权威机构的属性基加密(ABE)系统的问题最初由蔡斯[3]提出,其解决方案引入了使用全局标识符(GID)将用户密钥关联在一起的概念。她的系统依赖于一个中心权威机构,并且仅限于在预定义的一组权威机构上表达严格的AND策略。莱科和沃特斯[6]提出的去中心化属性基加密不依赖任何中心权威机构,任何参与方都可以成为权威机构,且不同权威机构之间无需进行全局协调(甚至彼此无需知晓),只需预先生成一组公共参考参数即可。该方案避免了在整个系统生命周期中对某个单一指定实体的完全信任,该实体必须始终保持活跃且未被破坏。随后出现的其他多机构方案(例如[10,13])虽针对云计算的需求进行了优化,但缺乏高效的用户撤销机制。

贝滕科尔特等人[2]提出了利用过期属性实现属性撤销的方法。对于单权威方案,萨海等人[11]引入了将任务安全委托给第三方以及通过分段密钥生成实现用户撤销的方法。鲁吉等人[10]、王等人[13]以及杨等人[15]指出,在多权威环境中传统的属性撤销会导致严重的计算开销,原因在于需要进行密钥重新生成和密文重新加密。另一种方法是基于身份的撤销,其中两种类型已被应用于沃特斯[14]的方案中。梁等人[9]将控制被撤销集合的权利赋予“系统管理员”,而李等人[8]则借鉴[5]广播加密系统领域的思想,将撤销权直接赋予加密者。这一方法随后由李等人[7]进一步发展,借助对偶系统加密实现了完全安全性。

据我们所知,目前尚无多机构系统集成基于身份的用户撤销功能,而我们的工作是该方向上的首次尝试。

Contribution

基于[6]和[5],我们提出了一种方案,将基于身份的用户撤销功能引入分布式CP‐ABE。通过这一扩展,我们实现了一个具有多个独立属性机构的方案,能够对特定用户(例如具有 IDi的用户)及其所有属性进行系统级撤销,而无需更新属性的公钥和私钥(无论是在周期性更新时,还是在撤销事件发生后)。我们避免了对那些访问结构中包含被撤销用户属性子集的所有密文进行重新加密。撤销权可以直接赋予加密者,就像定义访问结构的权利一样,这适用于云计算场景。

组织

在第2节中,我们介绍了后续使用的理论基础,并定义了具有基于身份的撤销功能的多机构CP‐ABE方案的安全性。在第3节中,可以找到我们的方案的详细信息以及效率和安全性分析。进一步研究的方向在最后一节中提出。

2 背景

我们首先简要介绍双线性映射,给出访问结构和线性秘密共享方案(LSSS)的相关背景的正式定义。然后给出支持基于身份的用户撤销的密文策略属性加密(Ciphertext Policy Attribute-Based Encryption)的算法及安全性定义。

2.1 双线性映射

我们介绍了与具有高效可计算双线性映射的群相关的一些最重要事实。

设 $G_0$ 和 $G_1$ 为两个阶为 $p$ 的乘法循环群。令 $g$ 是 $G_0$ 的一个生成元,$e$ 是一个双线性映射(配对),$e: G_0 \times G_0 \to G_1$,具有以下性质:

  1. 双线性性 :$\forall u, v \in G_1$ 和 $a, b \in \mathbb{Z}_p$,我们有 $e(u^a, v^b) = e(u, v)^{ab}$
  2. 非退化性 :$e(g, g) \neq 1$

如果群运算 $G_0$ 和双线性映射 $e: G_0 \times G_0 \to G_1$ 都是高效可计算的,则称 $G_0$ 为双线性群。注意,由于 $e(g^a, g^b) = e(g, g)^{ab} = e(g^b, g^a)$,该映射 $e$ 是对称的。

2.2 访问结构

定义1(访问结构 [1]) 。设 ${P_1, …, P_n}$ 为一个参与方集合。若 $\forall B, C$:当 $B \in A$ 且 $B \subseteq C$ 时,有 $C \in A$,则称集合 $A \subseteq 2^{{P_1,…,P_n}}$ 是单调的。访问结构(相应地,单调访问结构)是指 ${P_1,…, P_n}$ 的非空子集的一个集合(相应地,单调集合)$A$,即 $A \subseteq 2^{{P_1,…,P_n}}\backslash{\emptyset}$。$A$ 中的集合称为授权集合,不在 $A$ 中的集合称为非授权集合。

在我们的情况下,访问结构 $A$ 将包含授权的属性集合,此外,我们将注意力限制在单调访问结构上。然而,通过将属性的非也作为单独的属性处理,使用我们的技术(效率较低地)实现一般的访问结构是可能的。

2.3 线性秘密共享方案(LSSS)

为了表达访问控制策略,我们将使用线性秘密共享方案。这里我们采用[1]中给出的定义。

定义2(线性秘密共享方案) 。若一个在参与方集合 $P$ 上的秘密共享方案 $\Pi$ 满足以下条件,则称其是线性的(在 $\mathbb{Z}_p$ 上):

  1. 每个参与方的份额构成一个在 $\mathbb{Z}_p$ 上的向量,
  2. 存在一个具有 $\ell$ 行和 $n$ 列的矩阵 $A$,称为 $\Pi$ 的份额生成矩阵。对于所有 $i= 1, …, \ell$,令函数 $\rho$ 定义分配给行 $i$ 的参与方,将该行标记为 $\rho(i)$。当我们考虑列向量 $v=(s; r_2, …, r_n)$ 时,其中 $s \in \mathbb{Z}_p$ 是要共享的秘密,而 $r_2, …, r_n \in \mathbb{Z}_p$ 是随机选取的,则 $Av= \lambda$ 是根据 $\Pi$ 生成的秘密 $s$ 的 $\ell$ 个份额所组成的向量。份额 $(Av)_i= \lambda_i$ 属于参与方 $\rho(i)$。

在[1]中表明,根据上述定义的每个线性秘密共享方案也具有线性重构性质,其定义如下。假设 $\Pi$ 是访问结构 $A$ 的线性秘密共享方案。令 $S \in A$ 为任意授权集合,并令 $I \subset {1, 2, …, \ell}$ 定义为 $I={i|\rho(i) \in S}$。那么存在常数 ${\omega_i \in \mathbb{Z} p} {i\in I}$,使得如果 ${\lambda_i}$ 是根据 $\Pi$ 对任意秘密 $s$ 生成的有效份额,则有 $\sum_{i\in I} \omega_i\lambda_i= s$。此外,在[1]中还表明,这些常数 ${\omega_i}$ 可以在与份额生成矩阵 $A$ 的大小成多项式时间的复杂度内找到;而对于非授权集合,不存在这样的 ${\omega_i}$ 常数。

我们约定,对于任何线性秘密共享方案,$(1, 0, 0, …, 0)$ 是其“目标向量”。对于任意满足条件的行集合 $I$ 属于 $A$,目标向量将位于 $I$ 的张成空间中,但对于任何非授权集合,则不会如此。

使用标准技术(参见[6] - 附录G),可以将任何单调布尔公式转换为 LSSS表示。一个包含 $\ell$ 个节点的访问树将生成一个具有 $\ell$ 行的LSSS矩阵。

2.4 多机构CP‐ABE的撤销机制

一个具有基于身份的用户撤销功能的多机构密文策略属性基加密系统由以下算法组成:

  • 全局设置算法 $(\lambda) \to GP$。全局设置算法以安全参数 $\lambda$ 作为输入,输出系统的全局参数 $GP$。
  • 中央机构设置 $(GP) \to (SK^ , PK^ )$。中心权威机构以 $GP$ 作为输入运行该算法,生成其自身的私钥和公钥对 $SK^ , PK^ $。
  • 身份密钥生成 $(GP, RL, GID) \to K^ _{GID}$。中心权威机构在收到用户请求身份私钥时运行此算法,检查请求是否有效,若有效则生成 $K^ _{GID}$。
  • 权威机构设置 $(GP) \to (PK, SK)$。每个属性权威机构以 $GP$ 作为输入运行该权威机构设置算法,生成其自身的私钥和公钥对 $SK, PK$。
  • 密钥生成 $(GP, SK, GID, i) \to K_{i,GID}$。属性密钥生成算法以一个身份 $GID$、全局参数、属于某个权威机构的一个属性 $i$ 以及该权威机构的私钥 $SK$ 作为输入,生成该属性与身份对应的一对密钥 $K_{i,GID}$。
  • 加密 $(GP,M, (A, \rho){PK}, PK^*, RL) \to CT$。加密算法以消息 $M$、访问矩阵 $A (A, \rho)$、相关权威机构的公钥集合、中心权威机构的公钥、被撤销用户列表以及全局参数作为输入,输出密文 $CT$。
  • 解密 $(GP, CT,(A, \rho){K_{i,GID}}, K^*_{GID}, RL) \to M$。解密算法接收全局参数、被撤销用户列表、密文 $CT$、身份密钥以及一组对应于属性和身份对的密钥,这些密钥均具有相同的固定身份 $GID$。当属性集合 $i$ 满足与密文对应的访问矩阵 $A$ 时,算法输出消息 $M$;否则,解密失败。

2.5 安全模型

我们现在定义具有基于身份撤销功能的多机构CP‐ABE系统的(选择明文)安全性。安全性是通过攻击者算法 $\mathcal{A}$ 与挑战者之间进行的以下安全游戏来定义的。我们假设对手只能静态地腐败权威机构,但密钥查询是自适应进行的。该定义反映了被撤销集合 $RL$ 中的所有用户联合起来共谋的情形(因为攻击者可以获得被撤销集合中所有用户的私钥)。游戏过程如下:

Setup . 挑战者运行全局设置算法以获得全局公钥参数 $GP$。$\mathcal{A}$ 指定一组被攻破的属性权威机构 $AA’ \subseteq AA$,并使用权威机构设置来获取公钥和私钥。对于 $AA \backslash AA’$ 中的诚实机构以及中心权威机构,挑战者通过运行权威机构设置和中央机构设置算法获取相应的密钥,并将公钥提供给攻击者。

密钥查询阶段 。$\mathcal{A}$ 自适应地对身份 $GID_k$(表示第 $k$ 次查询)发起私钥查询。挑战者通过运行身份密钥生成算法,向其提供相应的身份密钥 $K^* {GID_k}$。令 $UL$ 表示所有已查询的身份 $GID_k$ 的集合。$\mathcal{A}$ 还通过向挑战者提交形如 $(i, GID_k)$ 的对进行属性密钥查询,其中 $i$ 是属于一个良好权威的属性。挑战者通过提供相应的密钥 $K {i,GID_k}$ 来响应攻击者。

挑战阶段 。攻击者向挑战者提供两条消息 $M_0, M_1$,一组被撤销的身份 $RL \subseteq UL$ 以及一个访问矩阵 $(A, \rho)$。

$RL$ 和 $A$ 必须满足以下约束条件。设 $V$ 表示由腐败的权威机构所控制的属性标记的 $A$ 的行子集。对于每个身份 $GID_k \in UL$,令 $V_{GID_k}$ 表示由属性 $i$ 标记的 $A$ 的行子集,其中攻击者已查询过 $(i,GID_k)$。对于每个 $GID_k \in UL \backslash RL$,我们要求由 $V \cup V_{GID_k}$ 张成的子空间不包含 $(1, 0,…, 0)$;而对于 $GID_k \in RL$,则允许包含该向量,但我们仅要求由 $V$ 张成的子空间不包含 $(1, 0,…, 0)$。(换句话说,攻击者不能请求一组密钥,这些密钥与从腐败的权威机构获取的任何密钥结合后可实现解密,前提是针对非被撤销的 $GID_k$。对于被撤销的身份,我们仅不允许腐败的属性单独满足访问结构 $A$。)

攻击者还必须向挑战者提供其属性出现在标签 $\rho$ 中的任何腐败的权威机构的公钥。

挑战者抛掷一枚随机硬币 $\beta \in {0,1}$,并向攻击者发送在访问矩阵 $(A, \rho)$ 下对 $M_\beta$ 的加密,其中撤销集合为 $RL$。

密钥查询阶段2 。攻击者可以提交额外的属性密钥查询 $(i,GID_k)$,只要它们不违反挑战撤销列表 $RL$ 和矩阵 $(A, \rho)$ 的约束即可。

猜测 。$\mathcal{A}$ 必须提交一个猜测 $\beta’$ 以应对 $\beta$。如果 $\beta’ = \beta$,则攻击者获胜。攻击者在此游戏中的优势定义为 $P(\beta’ = \beta) - \frac{1}{2}$。

定义3 。我们称一个具有基于身份撤销功能的多机构CP-ABE系统是(选择明文)安全的(针对属性机构的静态腐败),如果对于所有大小为安全参数多项式级别的撤销集合 $RL$,所有多项式时间敌手在上述定义的安全游戏中至多具有可忽略的优势。

3 我们的结果

为了构建我们的模型,我们将使用莱科和沃特斯的素数阶群构造[6],因为它具有独立的属性机构这一良好特性。为了实现基于身份的撤销,我们在分布式系统基础上增加了一个中心权威机构。尽管这似乎与分发密钥生成权利的初衷相矛盾,但这个额外的权威机构仅会为用户的全局标识符 ($GID \in \mathbb{Z}_p$) 生成私钥,而属性密钥生成仍保持分布式。我们的中心权威机构不掌握任何单独即可在解密过程中带来优势的信息,这与单权威方案不同,在单权威方案中,该权威机构能够解密所有密文。鉴于此,我们可以说,尽管引入了中心权威机构,我们的系统仍然保持了分布式特性。

我们对云存储场景的方法

我们对第2.4小节中提出的算法的可能应用进行了高层次的描述。出于效率考虑,数据应使用对称密码进行加密,并始终使用新鲜随机数作为密钥,该密钥也会被加密,但使用我们的方案加密,并以这种形式附加到由云服务提供商(CSP)存储的密文上。对于能够获取对称密钥的用户,即拥有必要属性且未被撤销的用户,可以进行解密。属性机构在使用该系统的组织的可信服务器上本地运行,而中心权威机构由CSP运行,CSP还根据组织中授权方的撤销请求来维护(归档、公布)$RL$ revocation list。ABE加密始终使用新鲜的 $RL$,而ABE解密则使用在密文加密时间从CSP获取的 $RL$ 进行。每当编辑数据时,由于使用了新的对称密钥和 $RL$,该方法自然实现了密文的惰性重加密。

我们的技术

我们面临着基于身份的撤销的挑战。为了实现目标功能,我们采用了来自公钥广播加密系统的一些思想[5]。我们使用指数上的秘密共享。

假设一种加密算法需要创建一个带有撤销集合 $RL = {GID^ _1, …, GID^ _r}$ 的加密,涉及 $r$ 个身份。该算法将创建一个指数 $s^ \in \mathbb{Z} p$,并将其拆分为 $r$ 个随机份额 $s_1, …, s_r$,使得 $\sum^r {k=1} s_k = s^ $。然后,它将生成一个密文,使得任何具有 $GID^*_k$ 的被撤销用户将无法使用第 $k$ 个份额,从而无法解密消息 $M$。

这种方法带来了以下挑战。首先,我们需要确保即使解密者的属性满足密文的访问结构,该解密者仍必须执行 $GID$ 次比较。其次,我们需要确保被撤销身份 $GID^*_k$ 的用户无法利用共享信息 $k$ 进行任何有用的操作。第三,我们需要防范多个被撤销用户之间的合谋攻击。

为了解决第一个问题,我们将利用[6]技术来防止合谋攻击。在这里,用于加密的密钥 $s$ 被分割成若干份额,并进一步通过零的份额进行盲化。这种结构使得解密算法能够同时重构主密钥并并行“去盲化”。当我们希望使该算法成为必要但不足以完成解密时,可以通过将指数中的零的份额替换为另一个随机数 $s^* \in \mathbb{Z}_p$ 的份额,从而破坏密钥的“去盲化”过程。因此,我们可以要求执行另一项计算,即比较解密者与被撤销用户的 $GID$。如果发现匹配,则算法停止;否则,揭示盲化信息,从而允许解密。

第二个挑战通过以下方法解决。拥有 $GID \neq GID^ _k$ 的用户可以获得两个关于份额 $s_k$ 的线性无关方程(在指数中),他将使用这些方程求解份额 $s_k$。然而,如果 $GID = GID^ _k$,所获得的方程将是线性相关的,用户将无法求解该方程组。

在第三种情况下,我们需要担心的攻击是:一个拥有 $GID^ _k$ 的用户处理密文份额 $l$,而另一个拥有 $GID^ _l$ 的用户处理份额 $k$,然后他们合并各自的结果。为了防止合谋,我们使用 $H(GID)$ 作为身份私钥的底数,使得在解密时每个用户在指数中恢复份额 $s_k \cdot \log_g H(GID)$,从而不允许合并来自不同用户的份额。

3.1 我们的构造

基于上述原理,所提出的算法如下:

全局设置 $(\lambda) \to GP$

在全局设置中,选择一个阶为 $p$ 的双线性群 $G_0$。全局公钥参数 $GP$ 为 $p$ 以及 $G_0$ 的一个生成元 $g$,并包含一个将全局标识 $GID \in \mathbb{Z}_p$ 映射到 $G_0$ 元素的函数 $H$(在安全性证明中将其建模为随机预言机)。

中央机构设置 $(GP) \to (SK^ , PK^ )$

该算法选择随机指数 $a, b \in \mathbb{Z}_p$,将其作为私钥 $SK^ = {a, b}$ 保留,并公布 $PK^ = {g^a, g^{1/b}}$。

身份密钥生成 $(GP, RL, GID, SK^ ) \to K^ _{GID}$

当收到用户请求时,首先检查该用户是否在被撤销用户列表中($RL$)或之前已被查询过,若是,则拒绝请求;否则计算 $H(GID)$ 并生成全局身份私钥:
$$
K^*_{GID} = H(GID)^{(GID+a)b}.
$$

权威机构设置 $(GP) \to (PK, SK)$

对于属于该权威机构的每个属性 $i$(这些索引 $i$ 在不同权威机构之间不重复使用),该权威机构选择两个随机指数 $\alpha_i, y_i \in \mathbb{Z}_p$,并公布 $PK = {e(g, g)^{\alpha_i}, g^{y_i} \forall i}$ 作为其公钥。它将 $SK = {\alpha_i, y_i \forall i}$ 保留为其私钥。

密钥生成 $(GP, SK, GID, i) \to K_{i,GID}$

为某个 $GID$ 创建密钥时,对于属于某个权威机构的属性 $i$,该权威机构计算:
$$
K_{i,GID} = g^{\alpha_i} H(GID)^{y_i}
$$

加密 $(GP,M,(A, \rho){PK}, PK^*, RL) \to CT$

加密算法接收一个消息 $M$、一个 $n \times \ell$ 访问矩阵 $A$(其行映射到属性)、全局参数、相关权威机构的公钥、用户身份公钥以及最新的被撤销用户列表。

它选择随机的 $s, s^ \in \mathbb{Z}_p$ 和一个以 $s$ 作为其第一个元素的随机向量 $v \in \mathbb{Z}^\ell_p$。令 $\lambda_x$ 表示 $A_x \cdot v$,其中 $A_x$ 是 $A$ 的第 $x$ 行。它还选择一个以 $s^ $ 作为其第一个元素的随机向量 $w \in \mathbb{Z}^\ell_p$。令 $\omega_x$ 表示 $A_x \cdot w$。

对于访问矩阵 $A$ 的每一行 $A_x$,它选择一个随机的 $r_x \in \mathbb{Z} p$,并假设被撤销用户数量为 $|RL| = r$,选择 $s_k$ 使得 $s^ = \sum^r_{k=1} s_k$ 成立。密文计算如下:
$$
\begin{aligned}
C_0 &= M \cdot e(g, g)^s, \
C_{1,x} &= e(g, g)^{\lambda_x} e(g, g)^{\alpha_{\rho(x)} r_x}, \
C_{2,x} &= g^{r_x}, \
C_{3,x} &= g^{y_{\rho(x)} r_x} g^{\omega_x} \quad \forall x = 1,…, n \
C^
{1,k} &= \left( \frac{g^a}{g^{GID^ _k}} \right)^{-s_k}, \
C^
_{2,k} &= g^{s_k / b} \quad \forall k = 1,…, r.
\end{aligned}
$$

解密 $(GP, CT,(A, \rho){K_{i,GID}}, K^*_{GID}, RL) \to M$

我们假设密文是在访问矩阵 $(A, \rho)$ 下加密的。如果解密者不在被撤销用户列表($RL$)中,并且拥有其 $GID$ 对应的私钥 $K^ {GID}$ 以及访问矩阵 $A$ 的某行子集 $A_x$ 对应的 ${K {i,GID}}$,使得 $(1, 0,…, 0)$ 位于这些行的张成空间中,则解密者按以下步骤进行:首先选择常数 $c_x \in \mathbb{Z} p$,使得 $\sum_x c_x A_x = (1, 0,…, 0)$,并记 $r = |RL|$,然后计算:
$$
\prod_x \left( \frac{C
{1,x} \cdot e(H(GID), C_{3,x})}{e(K_{\rho(x),GID}, C_{2,x})} \right)^{c_x} \prod^r_{k=1} \left( \frac{e(K^
{GID}, C^ _{2,k})}{e(C^ {1,k}, H(GID))} \right)^{1/(GID - GID^*_k)} = e(g, g)^s
$$
消息 $M$ 随后可以通过以下方式获得:
$$
M = C_0 / e(g, g)^s.
$$

T要理解解密算法的正确性 ,请注意以下内容:

$$
A = \prod_x \left( \frac{C_{1,x} \cdot e(H(GID), C_{3,x})}{e(K_{\rho(x),GID}, C_{2,x})} \right)^{c_x} = \prod_x \left( e(g, g)^{\lambda_x + \omega_x \log_g H(GID)} \right)^{c_x} = e(g, g)^{\sum_x \lambda_x c_x} \cdot e(H(GID), g)^{\sum_x \omega_x c_x} = e(g, g)^{s + s^* \log_g H(GID)}
$$

$$
B = \prod^r_{k=1} \left( e(K^ _{GID}, C^ {2,k}) e(C^ _{1,k}, H(GID)) \right)^{-1/(GID - GID^ _k)} = \prod^r {k=1} \left( e(g, g)^{(GID - GID^ _k) s_k \log_g H(GID)} \right)^{-1/(GID - GID^ k)} = e(g, g)^{-\sum^r {k=1} s_k \log_g H(GID)} = e(g, g)^{-s^* \log_g H(GID)}
$$

备注 。假设我们有一个诚实但好奇的CSP,且其不会与用户共谋,则也可以通过对方案进行简单修改来实现间接撤销(类似于[9,11])。换句话说,CSP可以根据相关授权方发出的撤销请求,完全监管用户撤销过程。我们只需修改加密算法,使其按原方式计算 $C, C_0, C_{1,x}, C_{2,x}$,并额外计算 $C’ 3,x = g^{y {\rho(x)} r_x} \forall x = 1, …, n$。这些值将构成 $CT’$ 并发送给CSP,在CSP处完成抗共谋的包含撤销信息的 $CT$ 的计算并发布。$CT$ 的形式与之前相同,唯一的区别是盲化向量 $w$ 由CSP选择,因此 $\omega_x, C^ _{1,k}, C^ {2,k}$(如前所述)以及 $C {3,x} = C’ 3,x \cdot g^{\omega_x}$ 也均由CSP计算。该方法的主要优势在于,可以在发生撤销事件后实现即时且高效的(部分)重加密,因为仅需重新计算 $w, s_k, \omega_x, C^ _{1,k}, C^ {2,k}$ 以及 $C_{3,x}$。

或者,也可以通过简单地发布用户列表而不是 $RL$,直接将撤销权赋予加密者。在这种情况下,$RL$ 将由用户针对每个密文分别定义,并附加到 $CT$ 上。

3.2 效率

传统的基于属性的用户撤销(例如[13,10,15])会影响属性,因此撤销一个用户可能导致所有与被撤销用户具有共同属性的用户的属性私钥更新(一个通用属性可能影响大量用户),并且需要对访问结构中包含被撤销用户任何属性的所有密文进行重新加密(其中大多数密文本就无法被被撤销用户解密)。

在我们的方案中,撤销事件基于身份,因此不会对属性产生任何影响。尽管这是一种权衡,但在另一方面会为加密和解密算法带来一定的计算开销。通过这种方式,权威机构所需的额外计算被减少,并分散到最大的参与方集合——用户中,从而避免了系统的潜在性能瓶颈。同时,额外通信也被减少至仅需发布被撤销用户列表。我们的撤销方案具有以下成本。

密文包含 $2r$ 个额外元素,如果被撤销用户数量为 $r$。为了计算这些值,在 $G_0$ 中需要进行 $3r$ 次幂运算和 $r$ 次乘法运算。或者,被撤销用户列表可能包含 $g^a g^{GID^*_i}$ 而非全局标识符。在这种情况下,与[6]的方案相比,加密者仅需在 $G_0$ 中执行 $2r$ 次额外的幂运算来计算密文。解密算法的开销为 $2r$ 次配对运算、$r$ 次乘法运算以及在群 $G_1$ 中的幂运算。

3.3 安全性

我们指出,从用户的角度来看,当其属性从未满足密文 $CT$ 中定义的访问结构时,我们的构造至少与[6]所提出的方案具有同等安全性,因为 $A$ 的计算等价于其中给出的解密计算。然而在我们的情况下,仅获得消息 $M$ 是不够的。我们将盲化向量 $v$ 的第一个分量从零更改为一个随机数(如我们所做的),导致盲化项无法从 $A$ 中抵消,而我们必须计算 $B$ 以将其约去。$B$ 可以使用任意不同于撤销列表中任何 $GID^*_k$ 的 $GID$ 来计算,并且我们通过在密钥中使用 $H(GID)$ 确保解密者必须在 $A$ 和 $B$ 中使用相同的 $GID$。

定理1 。对于任意的对抗者 $\mathcal{A}$,设 $q$ 为其从群预言机查询以及与安全游戏(如2.5节所述)交互过程中所获得的群元素总数的上界。上述构造在通用双线性群和随机预言机模型下根据定义3是安全的。$\mathcal{A}$ 的优势为 $O(q^2/p)$。

我们的构造在先前用于将 $H$ 建模为随机预言机的通用双线性群模型中被证明是安全的。在此模型中的安全性保证了攻击者仅通过黑盒方式访问群操作和 $H$ 无法攻破我们的方案。直观上,这意味着如果我们的方案存在任何漏洞,则这些漏洞必须利用实例化构造时所使用的椭圆曲线群或密码学哈希函数的具体数学特性。该正式证明可在本文完整版本的[4]中找到。

4 未来工作

我们提出了一种在多权威机构CP‐ABE中实现高效基于身份的用户撤销的方案。未来,我们的工作可以从多个方向继续推进。

基于身份的用户撤销方法可以成为未来在多权威环境中支持非单调访问结构的方法的基础。然而,我们的方案不能直接用于此目的,但可用于推动该领域的思路发展。

我们的构造在通用双线性群模型中的安全性得以证明,尽管我们认为通过调整可能实现完全安全性,基于对偶系统加密方法,莱科和沃特斯[6]在其复合阶群构造中也使用了该方法。即使这类工作会导致我们现有系统的效率适度降低,也将是有趣的。

更多推荐