服务器辅助可撤销属性基加密
崔慧1(B),邓鸿达1,李英久1,和秦保东2
1新加坡管理大学安全移动中心信息系统学院,新加坡,新加坡 {hcui,robertdeng,yjli}@smu.edu.sg
2西南科技大学计算机科学与 技术学院,中国绵阳[email protected]
相关服务:新加坡站群服务器
摘要
作为一种一对多的公钥加密系统,属性基加密(ABE)能够在云存储服务中对加密数据实现可扩展的访问控制。然而,高效的用户撤销在ABE中一直是一个极具挑战性的问题。为解决这一问题,博尔迪列娃、戈亚尔和库马尔[5]提出了一种结合二叉树数据结构与模糊身份基加密的撤销方法,其中密钥生成中心(KGC)通过公共信道定期向所有数据用户广播密钥更新信息。该博尔迪列娃‐戈亚尔‐库马尔方法将密钥更新量大小从用户数量的线性级降低到对数级,并已被广泛应用于后续的可撤销ABE系统中;然而,该方法要求每个数据用户保存大小为对数级的私钥,并且所有未被撤销的数据用户需为每个新的时间段周期性地更新其解密密钥。为进一步优化ABE中的用户撤销机制,本文提出一种称为服务器辅助的可撤销ABE(SR‐ABE)的新概念,在该模型中,数据用户因用户撤销而产生的几乎所有工作负载都被委托给一个不可信服务器,且每个数据用户仅需存储常数大小的密钥。接着我们为SR‐ABE定义了一个安全模型,并提出一个在此模型下安全的具体SR‐ABE方案。有趣的是,由于SR‐ABE构造中采用了密钥嵌入装置,我们的SR‐ABE方案在密钥传输过程中无需任何安全通道,且在解密阶段还具备额外的优势:数据用户仅需执行一次幂运算即可完成对密文的解密。
关键词 :撤销 · Attribute-based加密 · Server-aided
1 引言
基于属性的加密(ABE)[22]是在数据用户通过其属性(或凭证)进行识别,且数据拥有者希望与数据用户共享存储在云中的数据的场景下,保护数据隐私的一种有前景的解决方案。
其属性满足特定访问结构(或策略)。在密文策略基于属性的加密(CP‐ABE)系统中,可信的密钥生成中心(KGC)为每个数据用户根据其属性集颁发私钥,每个数据拥有者对加密消息指定一个属性集上的访问策略1。当与数据用户的私钥相关联的属性集满足密文所关联的访问策略时,该数据用户能够解密该密文。
由于属性基加密(ABE)系统可能涉及大量数据用户,因此针对私钥泄露或用户离职等情况实现高效的用户撤销一直被视为一个非常重要且具有挑战性的问题。博尔迪列娃、戈亚尔和库马尔[5]提出了一种高效的撤销方法,该方法结合了模糊身份基加密(IBE)方案[22]与二叉树数据结构[18],,其中密钥生成中心(KGC)为每个数据用户签发长期私钥,并在每个时间段开始时公开广播密钥更新信息,但只有未被撤销的数据用户才能利用其长期私钥和密钥更新信息生成解密密钥,以解密新生成的密文。文献[1,5,9,21]中基于博尔迪列娃‐戈亚尔‐库马尔思路的可撤销ABE方案减轻了KGC在密钥更新过程中的通信开销,但未能降低数据用户的工作负载,因为每个数据用户必须维护一个对数大小的私钥,且所有未被撤销的数据用户都需要定期更新解密密钥,以便解密新加密的数据。针对这一关键问题,秦等人[19]在基于身份的加密中提出了一个解决方案,称为服务器辅助可撤销身份基加密(SR‐IBE),其中几乎所有数据用户的工 作负载都被委托给一个不信任的服务器,该服务器负责管理由KGC定期发送的数据用户的公钥和密钥更新信息,而每个数据用户只需保留一个常数大小(即 O(1))的私钥,在密钥更新阶段无需与KGC或不信任的服务器进行通信。
然而,这一问题在属性基加密场景中尚未得到足够的关注。
1.1 我们的贡献
受[19]中SR‐IBE的启发,我们提出了一种称为服务器辅助的可撤销ABE(SR‐ABE)的概念,以实现ABE中高效且安全的用户撤销。图1展示了在云存储场景下[24]SR‐ABE方案的架构。该架构包含四种实体:KGC、数据拥有者、数据用户和一个不可信服务器2。需要注意的是,不可信服务器可由任何人运营,包括云存储系统。KGC拥有主私钥,并发布其公共参数。当一个新的数据用户加入时
1 ABE有两种互补的形式:CP‐ABE和密钥策略ABE(KP‐ABE)。在KP‐ABE系统中,情况正好相反,即私钥与访问策略相关联,而密文与一组属性相关联。在本文其余部分中,除非另有说明,我们将重点讨论CP‐ABE。2该服务器是不信任的,意味着它诚实地遵循协议,但不持有任何秘密信息(即,它可能与数据用户共谋),并且服务器执行的所有操作都可以由任何人(包括数据用户)完成(即,服务器的任何不诚实行为都容易被检测到)。
假设爱丽丝加入系统,她首先自行生成一个公钥用户密钥和私钥用户密钥对。她将私钥用户密钥保留,并将其公钥用户密钥(以及证明她知道对应私钥用户密钥的证明)发送给密钥生成中心(KGC)。KGC基于爱丽丝的公钥用户密钥及其属性,为她生成一个公钥属性密钥,并将其发送至不信任服务器。此外,KGC会定期为所有未被撤销的数据用户生成密钥更新信息,并公开传输至不信任服务器。与标准CP‐ABE相同,数据拥有者若要在当前时间段将消息上传至云,会使用系统公钥参数针对某一访问结构和时间段对该消息进行Encrypt,然后将生成的密文外包至云。在解密密文时,数据用户将密文转发至不信任服务器。如果该数据用户未被撤销,且其属性集满足密文中指定的访问结构,则不信任服务器能够利用其公钥属性密钥和密钥更新信息生成一个转换密钥,并使用该密钥对密文进行部分解密。该部分解密后的密文可由数据用户使用其私钥用户密钥完全Decrypt。需要注意的是,SR‐ABE仅要求所有数据用户在用户注册阶段与KGC通信,而由用户撤销引起的所有操作均由不信任服务器完全处理,对数据用户完全透明。
构建SR‐ABE方案的关键挑战在于如何使不可信服务器能够协助解密,同时又无法获知底层明文。在IBE系统中,每个用户具有唯一身份,且每条密文仅指定给一个接收者。因此,在[19]中提出的SR‐IBE方案中,服务器为数据用户部分解密密文后,该用户可利用其基于身份的私钥获取底层明文
密钥。然而,在属性基加密方案中,相同的属性可能在多个用户之间共享,因此如果在[19] SR‐ABE方案中采用主私钥分割方法,在不可信服务器对密文进行部分解密后,只要数据用户的属性集满足密文中的访问结构,无论该数据用户是否已被撤销,他/她都能够完全解密该部分解密的密文。为了应对这一挑战,我们为每个数据用户配备一对自行生成的公钥用户密钥和私钥用户密钥3(即不需要通过安全通道进行密钥传输),然后巧妙地将公钥用户密钥嵌入到由密钥生成中心生成的公钥属性密钥中。因此,不可信服务器仍然可以为未撤销用户对密文进行部分解密,但每一个部分解密的密文都与一个公钥用户密钥绑定,只有拥有对应私钥用户密钥的用户才能完成解密。
我们为SR‐ABE定义了一个安全模型,该模型形式化了可能的实际威胁,并考虑了标准ABE安全概念中的所有攻击者能力。攻击者能够获取其选定属性的数据用户的私钥用户密钥和公钥属性密钥。对于挑战访问结构所对应的加密消息,攻击者不应能够获得任何部分信息。此外,我们还考虑了攻击者可以访问不同时间段的周期性密钥更新、转换密钥,并能够撤销其选择的用户。当加密操作发生在撤销时间之后时,对于任何属性满足挑战访问结构的已被撤销的数据用户,攻击者也不应能够获得其加密消息的任何部分信息。
然后,我们基于Rouselakis和Waters在素数阶群中提出的大宇宙 CP‐ABE方案构造了该模型的一个具体SR‐ABE方案[20]。为了构建该SR‐ABE方案,我们采用了[23]中的技术以及二叉树数据结构[18],并将它们与 Rouselakis‐Waters CP‐ABE方案相结合[20]。在我们的SR‐ABE方案中,转换密钥中每个属性对应的部分采用HIBE方案的第二层私钥形式[6]。我们使用类似于[23]中的技术来生成公钥属性密钥和密钥更新,其中KGC的主私钥被随机分为两部分,分别绑定到公钥属性密钥和密钥更新上。此外,为了将密钥更新量大小从关于数据用户数量的线性级降低为对数级,我们采用了[18]中的二叉树数据结构。我们在第4节中给出了该构造的完整细节。值得注意的是,尽管SR‐ABE源自SR‐IBE,但由于我们在公钥属性密钥生成算法中所采用的工具,我们的SR‐ABE构造具有两个SR‐IBE方案[19]所不具备的额外优势:(1)无需通过安全通道分发私钥,因为它们由各个数据用户自行生成
3该用户密钥对也可以由密钥生成中心生成并安全地发送给数据用户,如[19],但这需要数据用户与密钥生成中心之间通过安全通道进行密钥分发。
他自己/她自己;(2)在解密阶段,每个特权数据用户仅需执行一次幂运算且无需进行配对运算。由于Rouselakis‐Waters CP‐ABE方案[20]是选择性安全的,即攻击者必须提前承诺挑战访问结构,因此基于[20]构建的我们的SR‐ABE方案也是选择性安全的。需要注意的是,这些技术可以应用于完全安全的ABE方案(例如,[21]),以获得完全安全的服务器辅助ABE方案。
总之,本文的贡献可以总结如下:
– 我们首次提出了一种称为服务器辅助可撤销属性基加密(SR‐ABE)的机制,其中数据用户在密钥更新阶段产生的几乎所有工作负载都被委托给一个不可信服务器,每个数据用户只需持有常数大小的私钥用户密钥即可用于解密。
– 我们为SR‐ABE定义了一个安全模型,该模型考虑了攻击者在现实世界中可能执行的所有潜在对抗行为。
– 由于在SR‐ABE构造中采用了特定工具,我们的SR‐ABE方案无需任何安全通道进行密钥传输,并且在解密阶段具有额外优势:数据用户仅需执行一次幂运算即可解密密文。
1.2 相关工作
可撤销IBE 。Boneh和Franklin提出定期更新用户私钥以在IBE中实现用户撤销,但这要求所有用户无论其密钥是否已泄露,都需通过安全通道定期与密钥生成中心(KGC)通信。也就是说,密钥更新量大小与未撤销用户的数量呈线性关系(即 O(N‐R),其中 N是用户总数,R是被撤销用户数)。
Hanaoka等人提出了一种用户无需与KGC交互即可定期更新私钥的方法,其中KGC公开发布密钥更新信息;然而,每个用户都需要拥有一个防篡改硬件设备,使得该方案较为繁琐。博尔迪列娃、戈亚尔和库马尔提出了一种高效的可撤销IBE方案,将密钥更新量大小从线性降低到对数级(即O(log(N))),并消除了密钥更新过程中对安全通道的需求,但所有未撤销用户仍需定期更新其私钥以进行解密。此外,还存在引入第三方的可撤销IBE方案[3,7,10,14,16,19],其中需要一个半可信4或不信任的第三方来持有所有用户私钥的份额,并协助他们解密。一旦用户被撤销,该第三方将停止为其解密(或不允许其解密)。
可撤销ABE 。针对可撤销ABE[1,9],已提出两种用户撤销机制:直接撤销和间接撤销。在直接撤销中,数据拥有者在加密时直接指定撤销列表[2,12,15]。此外,Yang等人[26]通过引入直接
4本文中,除非另有说明,“半可信”意味着该方不允许与数据用户串通。
将撤销能力委托给与数据用户共享解密能力的半可信服务器,并由其终止对已撤销用户的解密操作。在间接撤销中,密钥生成中心通过密钥更新过程间接禁用被撤销的用户。博尔迪列娃、戈亚尔和库马尔[5]提出了一种遵循间接撤销方式的可撤销KP‐ABE方案,阿特拉帕东和今井[1]提出了一个混合可撤销KP‐ABE系统,允许数据拥有者在加密消息时选择直接或间接撤销方式,萨哈伊、塞亚利奥卢和沃特斯[21]提供了一种在属性基加密方案中实现间接撤销的通用方法,崔和邓[9]在多个密钥生成中心分担KGC角色的场景下,提出了两种可撤销ABE方案。
注意,直接撤销可以立即执行而无需密钥更新,但要求所有数据拥有者维护一个当前的撤销列表。这使得系统不再是纯粹的属性基加密,因为在属性基加密环境中,数据拥有者仅根据属性生成密文,而不关心每个数据用户的状况。本文重点关注具有间接撤销的属性基加密。
1.3 组织结构
本文的其余部分组织如下。在第2节中,我们简要回顾与本文相关的概念和定义。在第3节中,我们描述了SR‐ABE的框架,然后提出其安全模型。在第4节中,我们给出了SR‐ABE的具体构造,证明其安全性,并将其与之前的可撤销ABE方案进行比较。我们在第5节中总结全文。
2 预备知识
在本节中,我们回顾本文将使用的密码学基本定义。
2.1 双线性对与复杂性假设
设 G是由 g生成的阶为 p的群, p为一个素数。如果映射eˆ: G× G → G1满足以下性质[8],则我们将其定义为双线性映射。
– 双线性:对于所有 g ∈ G 以及 a, b ∈ Z∗ p ,我们有 eˆ(g a, g b) =eˆ(g, g) ab。– 非退化:eˆ(g, g) = 1。
我们说 G是一个双线性群,如果 G中的群运算是高效可计算的,并且存在一个群 G1以及如上所述的高效可计算的双线性映射eˆ: G× G → G1。
判定性 (q − 1)假设[20]。判定性(q − 1)问题是指,对于任意概率多项式时间算法,给定
→−y= g, gμ, g1/a, ga i, gbj, gμbj, ga ibj, ga i/b2j ∀(i, j) ∈[q, q], ga i/bj ∀(i, j) ∈[2q, q] with i = q+ 1, ga ibj/b 2 j′ ∀(i, j, j′) ∈[2q, q, q] with j = j′, gμa ibj/bj′, gμa ibj/b 2 j′ ∀(i, j, j′) ∈[q, q, q] with j = j′, 很难将(→−y, eˆ(g, g)a q+1μ)与(→−y, Z)区分开来,其中 g ∈ G, Z ∈ G1,a, μ, b1, …, bq ∈ Z∗ p是独立且均匀随机选取的。
2.2 访问结构和线性秘密共享
定义1 (访问结构)[13,25]。设{P1,…, Pn}为一组参与者。如果集合族 A ⊆ 2{P1,…,Pn}满足:对于任意 ∀B, C:当 B ∈ A且 B ⊆ C时,有 C ⊆ A,则称该集合族是单调的。单调访问结构是指{P1,…, Pn}的非空子集构成的一个单调集合族 A,即 A ⊆ 2{P1,…,Pn}{∅}。属于 A的集合称为授权集合,不属于 A的集合称为非授权集合。
定义2 (线性秘密共享方案(LSSS))[13,25]。设 P为一组参与方。设 M为一个大小为 l × n的矩阵。设 ρ: {1,…, l} → P为将每一行映射到一个参与方的标签函数。若一个在参与方集合 P上的秘密共享方案 Π满足以下条件,则称其为在Zp上的线性秘密共享方案,如果
- 每个参与方的份额构成一个在 Zp上的向量。
- 存在一个具有 l行和 n列的矩阵 M ,称为 Π的份额生成矩阵。对于 x= 1,…, l,矩阵 M的第 x行由一个参与方 ρ(i)标记,其中 ρ:{1,…, l} → P是一个将行映射到参与方以进行标注的函数。考虑列向量 →−v=(μ,r2, …, rn),其中 μ ∈ Zp是要共享的秘密,而 r2,…, rn ∈ Zp是随机选取的,则 M →−v是根据 Π得到的秘密 μ的 l个份额的向量。份额(M →−v)i属于参与方 ρ(i)。
据[13]指出,每个LSSS也具有线性重构性质。假设 Π是访问结构 A的一个LSSS。令A为一个授权集合,并将 I ⊆{1,…, l}定义为 I={i|ρ(i) ∈A}。那么向量(1, 0, …, 0)属于由 I索引的矩阵 M的行所张成的空间,并且存在常数 {wi ∈ Z p}i ∈ I,使得对于根据 Π生成的秘密 μ的任何有效份额{vi},我们都有 ∑i ∈ I wivi= μ。这些常数{wi ∈ Z p}i ∈ I可以在关于共享生成矩阵 M[4]大小的多项式时间内求得。
另一方面,对于一个未授权的属性集A′,不存在这样的常数{wi}。此外,在这种情况下,如果 I′={i|ρ(i) ∈A ′ },也成立:存在一个向量 →−w,其第一个分量 w 1是 Z p 中的任意非零元素,并且< Mi , →−w>= 0对所有 i ∈ I′成立,其中 M i是 M[20]的第 i行。
布尔公式[13]。访问策略也可以用单调布尔公式来描述。LSSS访问结构更为通用,且可以从布尔公式的表示形式推导得出。存在标准技术可将任意单调布尔公式转换为相应的LSSS矩阵。该布尔公式可以表示为一个访问树,其中内部节点为与门和或门,叶节点对应属性。相应LSSS矩阵的行数将与访问树中叶节点的数量相同。
2.3 二叉树
我们回顾在[5,19]中描述的二叉树的定义。用BT表示一个具有 N个叶节点的二叉树,对应 N个用户。设root为二叉树BT的根节点。如果 θ是一个叶节点,则Path(θ)表示从 θ到root路径上的所有节点集合,包括 θ和root。如果 θ是非叶节点,则 θl、 θr表示 θ的左子节点和右子节点。假设树中的节点被唯一地编码为字符串,并且该树由其所有节点的描述定义。KUNodes算法用于计算密钥更新所需发布的最小节点集合,使得仅在时间段 t内的未撤销用户能够解密密文。该算法以二叉树BT、撤销列表 rl和时间段 t作为输入,输出BT中的 一组节点,这组节点是满足以下条件的最小节点集合:所有在时间段 t之前或等于 t(即在或之前被撤销的用户)的 rl中的节点,其任何祖先(或自身)都不在该集合中;而所有其他叶节点(对应未撤销用户)恰好有一个祖先(或自身)在该集合中。我们在图2中给出了KUNodes算法工作原理的示意图,其中首先将所有已撤销节点的祖先标记为已撤销,然后输出所有已撤销节点的未撤销子节点。以下是
KUNodes算法的形式化定义。
KUNodes(二叉树BT rl, t)X, Y ← ∅.∀(θi, ti) ∈ rl,如果 ti ≤ t,则将 Path(θi) 添加到 X.∀ x ∈ X,如果 xl∈/ X,则将 xl添加到 Y;如果 xr∈/ X,则将 xr添加到 Y.如果 Y= ∅,则将 根节点 添加到 Y.返回 Y.
3 框架和安全模型
在本节中,我们描述SR‐ABE的框架和安全定义。
3.1 框架
SR‐ABE方案涉及四种实体:密钥生成中心(KGC)、数据拥有者、数据用户和一个不可信服务器,并包含以下九个算法。我们假设服务器维护一个元组列表(身份、属性集合、公钥属性密钥),即(id, A, pkA id)。
– 设置阶段(1λ) →(par, msk, rl, st)。该算法以安全参数 λ作为输入,输出公共参数 par、主私钥 msk、一个初始为空的撤销列表 rl以及状态 st。此算法由密钥生成中心执行。
– UserKG(par, id) →(skid, pkid)。该算法以公共参数 par和一个身份作为输入,输出一个公钥和私钥用户密钥对(skid, pkid)。此算法由每个数据用户运行。
– PubKG(par, msk, id, pkid, A, st) →(pk A id, st)。该算法由密钥生成中心(KGC)执行,以公共参数par、主私钥 msk、一个具有公钥用户密钥 pkid的身份 id、属性集合A以及状态 st作为输入,输出一个针对拥有属性集合A的用户 id的公钥属性密钥 pk A id以及更新后的状态 st。此外,(pk A id, st)将被发送至不可信服务器。
– TKeyUp(par, msk, t, rl, st) →(tkut, st)。该算法以公共参数 par、主私钥 msk、时间段 t、撤销列表 rl和状态st作为输入,输出密钥更新消息 tkut和更新后的状态 st。该算法由密钥生成中心KGC执行,并将(tkut, st)发送给服务器。
– TranKG(par, id, pk A id, tkut) → tkid,t。该算法以公共参数 par、一个身份 id 及其对应的公钥属性密钥 pk A id和一个密钥更新消息 tkut作为输入,输出针对用户 id在时间段 t的转换密钥tkid,t。该算法由服务器运行。
– Encrypt(par, (M, ρ), t, M) → CT。该算法以公共参数 par、访问结构(M, ρ)、时间段 t和消息 M作为输入,输出密文CT。该算法由每个数据拥有者执行,且CT将被存储在云中。
– Transform(par, id, A, tkid,t, CT) →CT′/⊥。该算法以公共参数par、一个具有对应转换密钥tkid,t的身份 id以及密文CT作为输入,当与转换密钥tkid,t相关联的属性集A满足密文CT的访问结构时,输出部分解密后的密文CT′;否则输出 ⊥表示转换失败。该算法由服务器执行。部分解密完成后,将CT′发送给数据用户 id。
– Decrypt(par, id, skid, CT′) → M/⊥。该算法以公共参数 par、一个具有私钥用户密钥 skid的身份 id以及转换后的密文CT′作为输入,输出一个消息 M或一个失败符号 ⊥。此算法由数据用户 id执行。
– 撤销算法(id, t, rl, st) → rl。该算法由密钥生成中心(KGC)执行,输入为待撤销的身份 id、时间段 t、撤销列表 rl 和状态 st,输出更新后的撤销列表 rl。
SR‐ABE方案的正确性要求:对于任意安全参数 λ和任意消息 M,如果数据用户 id在时间段 t未被撤销,并且所有参与方均按照上述算法执行,则有 Decrypt(par,skid, CT′) = M。
3.2 安全模型
下面我们描述SR‐ABE在攻击者算法 A与挑战者算法 B之间关于选择明文攻击下的不可区分性(IND‐CPA安全性)的安全定义。
– 设置阶段。算法 B 运行设置算法,将公共参数 par 提供给算法 A,并保留主私钥 msk、一个初始为空的撤销列表 rl 和状态 st。
– 第一阶段。算法 A 自适应地向算法 B 发出一系列如下查询。
• 私有用户密钥预言机。算法 A对身份 id 发起一个私钥用户密钥查询。算法 B通过运行 UserKG(par, id) 返回 skid。注意,一旦算法 B 执行了 UserKG(par, id),就会将 (id, pkid, skid) 添加到列表中,以便对 id 的所有查询都使用相同的 (skid, pkid)。
• 公有属性密钥预言机。算法 A 对身份 id 和属性集合 A 发出公钥属性密钥查询。算法 B 通过运行 UserKG(par, id)(如果 id 尚未被发送到私有用户密钥预言机)和 PubKG(par, msk, id, pkid,A, st) 返回 pkAid。
• 转换密钥更新预言机。算法 A在时间段 t上发出密钥更新查询。算法 B运行 TKeyUp(par, msk, t, rl, st) 并返回 tkut。
• 转换密钥预言机。算法 A在时间段 t和具有属性集合A的身份 id上发起转换密钥查询。算法 B通过运行UserKG(par, id)(如果 id尚未被发送至私有用户密钥预言机)、PubKG(par, msk, id, pkid,A, st)、TKeyUp(par,返回tk id,t, msk, t, rl, st), TranKG(par, id, pkA id, tkut)。请注意,此预言机不能在时间周期 t上被查询,除非在此之前已对密钥更新预言机在 t上进行了查询。
• 撤销预言机。算法 A对身份id和时间段 t发起撤销查询。算法 B执行 Revoke(id, t, rl, st),并输出更新后的撤销列表 rl。注意,已发起过转换密钥更新查询的时间段 t不能提交给此预言机。
– 挑战。算法 A 输出两个相同大小的消息 M∗ 0、 M∗ 1,一个访问结构 (M∗, ρ∗) 和一个时间段 t∗,满足以下约束条件。
-
情况1:如果(1)身份 id∗已被查询私有用户密钥预言机,且(2)(M∗, ρ∗)可由对Public‐Attribute‐Key预言机发出的关于(id∗, A∗)的查询满足,则 (1)必须在 t= t∗或任何早于 t∗的时间点上对撤销预言机查询(id∗, t),且 (2)不能对转换密钥预言机查询(id∗, t∗)。
-
情况2:如果某个身份 id∗,其属性集合A∗可被挑战访问结构(M∗, ρ∗)满足,并且该身份在 t∗或之前未被撤销,则 id∗不应事先被查询私有用户密钥预言机。算法 B随机选择 γ ∈{0, 1},并通过运行Encrypt(par, (M∗, ρ∗), t∗, M∗ γ)将挑战密文CT∗转发给算法 A。
– 第二阶段。算法 A继续像第一阶段一样向算法 B发出查询,遵循挑战阶段中定义的限制条件。
– 猜测。算法 A对 γ做出猜测 γ′,若 γ′= γ成立,则赢得该游戏。
该算法 A在此游戏中的优势定义为Pr[γ= γ′]−1/2。如果任意概率多项式时间(PPT)攻击者在安全参数 λ下的优势至多为可忽略的,则SR‐ABE方案是 IND‐CPA安全的。此外,如果在设置阶段之前增加一个初始化阶段,其中算法 A承诺其试图攻击的挑战访问结构(M ∗, ρ∗)(以及挑战时间段 t∗),则称该 SR‐ABE方案是选择性IND‐CPA安全的。
备注 。 Seo 和 Emura [23]定义了一种安全模型,以防止一种称为解密密钥泄露攻击的现实威胁,即即使“不同时间段”的所有(短期)解密密钥都被暴露,密文也不会泄露任何明文信息,而基于[1,5,9,21]博尔迪列娃‐戈亚尔‐库马尔技术的可撤销ABE方案无法抵御此类攻击5。为了在我们的IND‐CPA安全性模型中涵盖此类攻击,与以往可撤销ABE中的安全性概念不同,我们在CP‐ABE定义中的攻击者可以访问一个额外的转换密钥预言机,因为在普通ABE方案中由数据用户生成的解密密钥,在我们的SR‐ABE方案中由服务器生成,并被重新命名为转换密钥。
4 服务器辅助可撤销属性基加密
在本节中,我们提出一种SR‐ABE的构造方案,并分析其安全性。
4.1 构造
假设属性空间和时间空间均为Zp,且消息空间为 G1。所提出的SR‐ABE方案基于文献[20]中的CP‐ABE方案,包含以下算法。
– 设置阶段 。该算法以安全参数 λ 作为输入,随机选择一个阶为 p 的素数群 G,其中 g ∈ G 是相应的生成元,并定义一个双线性映射 eˆ: G× G → G1。此外,随机选取 u, h, u0, h0, w, v ∈ G, α ∈ Zp。令 rl 为存储被撤销用户的空列表,BT 为具有至少 N 个叶节点的二叉树。定义两个函数 F1 和 F2,用于将 Zp 中的任意元素 y 映射到 G 中的元素,即 F1(y) = uyh 和 F2(y) = u0yh0。公共参数为 par=(g, w, v, u, h, u0, h0, eˆ(g, g)α),以及 rl 和 st,其中 st 是一个状态,其值设为 BT。主私钥为 msk= α。
– 用户密钥生成 。该算法以公共参数 par和身份 id作为输入。它随机选择 β ∈ Zp,并为用户 id输出一个私钥和公钥用户密钥对(skid, pkid) =(βid, gβid)。
– 公钥生成 。该算法以公共参数 par、主私钥 msk、一个具有公钥 pkid的身份 id、一个属性集合A以及一个状态 st作为输入。令 A1、…、 Ak为A中的元素。它首先从二叉树BT中选择一个未定义的叶节点 θ,并将 id存储在该节点中。然后,对每个节点 x ∈ Path(θ),执行如下操作。
- 它从节点 x 获取 gx。如果 x 尚未被定义,则随机选择 gx ∈ G,计算 g′ x= pkid α/gx,并将 gx 存储在节点 x 中。
-
随机选择 rx, rx,1, …, rx,k ∈ Zp,并计算
Px,1= g ′ x · wrx,
Px,2= g rx,
P(i) x,3= g rx,i,
P(i) x,4= F1(Ai) rx,i · v−rx. -
它输出 pk A id={x, Px,1, Px,2, P(i) x,3, P(i) x,4}x∈Path(θ),i∈[1,k]作为公钥属性密钥和一个更新后的状态 st。
–
TKeyUp
。该算法以公共参数 par、主私钥 msk、时间段 t、撤销列表 rl和状态 st作为输入。对于所有 x ∈ KUNodes(BT, rl, t),从节点 x中提取 gx(注意 gx 在PubKG算法中始终预定义)。然后随机选择 sx ∈Zp,并输出转换密钥更新信息
tkut={x, Qx,1,Qx,2}x∈ KUNodes(BT, rl, t)
其中
Qx,1= gx · F2(t) s x,
Qx,2= g s x。
–
TranKG
。该算法以公共参数 par、一个带有公钥属性密钥 pk A id 的身份 id以及转换密钥更新信息 tku t作为输入。记 I为Path(θ), J为KUNodes(BT, rl, t)。它将 pk A id 解析为{x, Px,1, Px,2, P(i) x,3 , P(i) x,4} x ∈ I,i ∈[1,k], tku t为{x, Qx,1 , Qx,2}x∈ J,其中针对某个集合的节点 I、 J。如果 I ∩ J= ∅,则返回 ⊥。否则,对于任意节点 x ∈ I ∩ J,随机选择 r′x、 r′x,1,…, r′x,k、 s′x ∈ Zp,并计算
tk1= Px,1 · Qx,1 · wr′ x · F2(t)s′ x= pkidα · wrx+r′ x · F2(t)sx+s′ x,
tk2= Px,2 · gr′ x= grx+r′ x,
tk(i) 3= P(i) x,3 · gr′ x,i= grx,i+r′ x,i,
tk(i) 4= P(i) x,4 · F1(Ai)r ′ x,i · v−r′ x= F1(Ai)rx,i+r′ x,i · v−(rx+r′ x),
tk5= Qx,2 · gs′ x= gsx+s′ x.
输出转换密钥tkid,t=(tk1, tk2,{tk(i) 3, tk(i) 4}i∈[1,k], tk5)。
–
Encrypt
。该算法以公共参数 par、一个LSSS访问结构(M, ρ)、一个时间段 t和一条消息 M作为输入。令 M为一个 l× n矩阵。它随机选择一个向量 →−v=(μ, y2,…, yn) ∈ Zn p。这些值将用于共享加密指数 μ。对于 i= 1到 l,计算vi= Mi · →−v,其中 Mi是 M的第 i行。此外,它随机选择μ1,…, μl ∈ Zp,并输出密文CT = ((M, ρ), t, C0, C1,{C(i) 2,C(i) 3, C(i) 4}i∈[1,l], C5),其中
C0= ˆe(g, g)αμ · M,
C1= gμ,
C(i) 2= wvi · vμi,
C(i) 3= F1(Ai) −μi,
C(i) 4= gμi,
C5= F2(t)μ.
–
转换算法
。该算法以公共参数 par、一个身份 id及其对应属性集合A上的转换密钥tkid,t,以及时间段 t和关于访问结构(M, ρ)且具有相同时间段 t的密文 CT作为输入。假设属性集合A满足访问结构(M, ρ)。令 I定义为 I={i: ρ(i) ∈ A}。记{wi ∈ Zp}i∈I为一组常数,使得若{vi}是根据 M对任意秘密 μ 的有效份额,则 ∑i∈I wivi= μ成立。该算法解析密文CT,并输出转换后的密文 CT′=(C′ 0, C0),其中
C′ 0= ∏i∈I(ˆe(C(i) 2, tk2)ˆe(C(i) 3, tk(i) 3)ˆe(C(i) 4, tk(i) 4)) wiˆe(C5, tk5) / ˆe(C1, tk1) = 1 / ˆe(g,pkid α )μ .
– 解密 。该算法以公共参数 par、一个身份 id及其私钥用户密钥skid ,以及一个转换后的密文CT′作为输入,输出消息 M为 M=(C′ 0) 1/β · C0。
– 撤销算法 。该算法以身份 id、时间段 t、撤销列表rl和状态 st作为输入。对于与身份 id相关联的所有节点 x,它将(x, t)添加到 rl中,并输出更新后的 rl。
注释与说明
。在上述方案中,PubKG算法中的 g ′ x也可设置为 g α+β id/gx,使得 KGC按如下方式运行UserKG算法:对于每个 id,KGC随机选择 βid、 r、 r1,…, rk ∈ Z p ,并输出一个私钥用户密钥 skid={K1, K2, K(i) 3 , K(i) 4}i ∈[1,k],其中
K1= g β id · w r ,
K2= g r ,
K(i) 3 = g r i,
K(i) 4 = F1(Ai) r i · v −r .
然而,这需要在密钥生成中心和每个数据用户之间通过安全通道进行密钥传输。此外,密钥生成中心掌握所有数据用户的秘密信息。最后,由于该密钥结构沿用了基本的Rouselakis‐Waters CP‐属性基加密方案[20],每个数据用户的解密计算开销无法降低,且其私钥的存储大小与其被授予的属性数量呈线性关系。
备注 。请注意,我们SR‐ABE构造中采用的技术可用于实现其他密码学原语。
– 服务器辅助可撤销的KP‐ABE 。由于我们的SR‐ABE构造使用了与可撤销 KP‐ABE方案[1]中相同的二叉树数据结构,因此不难看出,我们构造中利用不可信服务器来辅助计算的技术可以简单直接地应用于实现服务器辅助可撤销的KP‐ABE。
– 具有高效解密的服务器辅助可撤销的IBE 。在我们的SR‐ABE方案中,我们将公钥用户密钥嵌入到属性密钥中,使得服务器只能对密文进行部分解密,并将部分解密后的密文交由用户使用其私钥用户密钥完成完全解密。该工具可轻松应用于[19]中的SR‐IBE方案,以降低数据用户的解密开销,并消除密钥分发所需的安全通道。
4.2 安全
定理1 。在判定性 (q−1) 问题下,我们的SR-ABE方案是选择性 IND-CPA 安全的。
证明 。该证明分为两种情况。在情况1中,假设某个身份 id∗ ,其属性集合A∗ 满足挑战访问结构(M ∗, ρ∗),且在挑战时间段 t∗或之前已被撤销。在情况2中,假设某个身份 id∗,其属性集合A∗满足挑战访问结构(M ∗, ρ∗),但在挑战时间段t∗或之前未被撤销。简而言之,在情况1中,允许攻击者对 id∗发起用户私钥查询,而在情况2中该查询被禁止。我们在本文的完整版本6中详细描述了该证明。
4.3 比较
据我们所知,除了本文的工作外,[1,5,21,26]也是在素数阶群中基于双线性对(不包括对偶向量配对空间[21])的可撤销ABE方案。回顾本文的目标,我们旨在通过将数据用户的工作负载委托给不可信服务器,在CP‐ABE系统中实现间接用户撤销,使得KGC通过停止为被撤销的数据用户更新密钥来间接完成用户撤销。在[5]中提出了一种具有间接撤销功能的KP‐ABE方案,其中KGC实现了用户
6请与作者联系以获取。
| R-ABE in[5] | R-ABE in[1] | R-ABE in[26] | R-ABE in[21] | 我们的SR‐ABE | |
|---|---|---|---|---|---|
| 撤销模式 | 间接 | 间接 & 直接 | 直接 | 间接 | 间接 |
| 基于属性的加密类型 | KP‐ABE | KP‐ABE & CP‐ABE | CP‐ABE | KP‐ABE | CP‐ABE |
| 服务器 | − | − | 半信任 | − | 不信任 |
| 密钥暴露抵抗 | No | No | − | No | Yes |
| 安全性 | 选择性的 | 选择性的 | 选择性的 | 选择性的 | 选择性的 |
| 安全通道 | Yes | Yes | Yes | Yes | No |
| 密钥更新大小 | O(R log(N/R)) | O(R log(N/R)) | − | O(R log(N/R)) | O(R log(N/R)) |
| 数据用户密钥存储大小 | O(l log N) | O(l log N) | O(1) | O(l log N) & O(k log N) | O(1) |
| 解密计算成本 | ≥ 2(指数运算+配对运算) | ≥ 3指数运算+4配对运算 | E | ≥ 指数运算 + 配对运算 | E |
通过停止向被撤销的数据用户发布密钥更新信息,从而强制被撤销的数据用户无法更新其解密密钥来实现撤销。文献[1]中提出了一种混合可撤销KP‐ABE系统,允许数据拥有者在加密消息时选择直接或间接撤销模式。在文献[26]中,提出了一种可撤销ABE方案,将直接撤销能力赋予半可信服务器,该服务器共享数据用户的部分解密能力,并阻止对任何被撤销的数据用户执行解密操作。文献[21]中提供了一种支持动态凭证的ABE的通用实现方法,其中密钥生成中心通过停止更新被撤销数据用户的密钥来间接完成撤销。
表1比较了我们的SR‐ABE方案与在素数阶群下的可撤销ABE方案在 [1,5,21,26]中的表现。令 N表示所有数据用户的数量, R表示被撤销的数据用户数量, l表示访问结构中包含的属性数量, k表示与属性密钥相关联的属性集合的大小。同时,用“−”表示不适用,“E”表示幂运算,“P”表示配对运算。从表1中可以直观看出,文献[1,5,21]中的方案需要密钥生成中心与每个数据用户之间通过安全通道进行密钥传输,并且每个数据用户需保存一个私钥,其大小由其属性以及预定义二叉树中相关节点决定。而文献[26]中的方案则不需要
每个数据用户需要存储一个较大尺寸的密钥,但要求密钥生成中心与半可信服务器之间存在安全通道,并且容易受到半可信服务器与被撤销数据用户之间的合谋攻击。显然,我们的SR‐ABE方案相较于先前的解决方案具有优势:它不需要系统参与者之间建立任何安全通道,且能够抵御不可信服务器与被撤销数据用户之间的合谋攻击。此外,我们的SR‐ABE方案在数据用户执行的解密操作中实现了理想的效率,仅需一次幂运算。
5 结论
在本文中,我们提出了一种称为服务器辅助可撤销属性基加密(SR‐ABE)的概念,以实现基于属性的加密(ABE)中的高效用户撤销。我们为SR‐ABE形式化定义了(选择性)IND‐CPA安全性,提出了基于密文策略属性基加密(CP‐ABE)的SR‐ABE具体构造,并证明了所提出的SR‐ABE方案是选择性 IND‐CPA安全的。与以往的可撤销ABE方案相比,我们的SR‐ABE方案具有三个显著优势。第一,我们的SR‐ABE方案将数据用户因密钥更新而产生的几乎所有计算开销委托给一个不可信服务器。第二,在大多数现有的可撤销ABE方案中,每个数据用户需要存储大小与数据用户数量呈对数关系的私钥,而在我们的SR‐ABE方案中,每个数据用户仅需保存一个群元素大小的私钥。第三,在我们的SR‐ABE方案中,解密过程中的大部分计算成本被委托给不可信服务器,数据用户只需执行一次幂运算即可解密密文。除了构建服务器辅助可撤销 CP‐ABE方案外,本文引入的相同技术也可轻松应用于构建服务器辅助可撤销密钥策略ABE方案和IBE方案。






