服务器辅助的可撤销基于身份的加密
1 引言
基于身份的加密(IBE)[26]消除了传统公钥加密(PKE)系统中对公钥基础设施(PKI)的需求。在IBE系统中,每个用户都可以使用任意字符串(例如电子邮件地址或电话号码)作为其公钥。相应的解密密钥由一个称为密钥生成中心(KGC)的可信机构计算生成。基于身份的加密已通过使用对运算(例如 [5,7,23]或其他数学工具[6,8]进行了深入研究。IBE还被推广到分层基于身份的加密[12],模糊基于身份的加密[22]和属性基加密[11]。在IBE及其所有推广形式中,提供一种机制以实现对(受损)用户的撤销是重要且必要的。在PKI 环境中,可通过公开可用的证书吊销列表实现高效的撤销(例如[1,10,19,20])。然而,在IBE环境中实现高效的用户撤销却相当具有挑战性。
为了解决基于身份的加密(IBE)中的密钥撤销问题,博内和富兰克林 (BF)[5]提出发送方使用接收者的身份id与当前时间段相结合(即id||t)来加密消息,同时密钥生成中心(KGC)为每个未被撤销用户在每个时间段t内颁发解密密钥DKid||t。然而,BF方法效率低下:KGC必须在每个时间段内生成 O(N −r)个新的解密密钥,其中 N是用户的总数, r是在时间段t中被撤销用户数量。因此,KGC的工作负载与 N成正比。此外,每个未被撤销用户都需要与 KGC保持一个安全通道以获取其新的解密密钥。
博尔迪列娃、戈亚尔和库马尔(BGK)[3]提出并形式化了可撤销IBE的概念。他们基于Sahai和Waters的模糊基于身份的加密方案以及Naor等人提出的基于树的撤销方案,在选择性身份安全模型中设计了一种高效的R‐IBE方案。[22][19]在他们的方案中,每个用户持有一组长期秘密密钥。密钥生成中心在每个时间段公开广播一组密钥更新信息,使得只有未被撤销的用户才能结合其长期秘密密钥和密钥更新信息计算出新的解密密钥。与BF方法相比,BGK方法将密钥更新的总大小从线性降低到对数级别(即 O(rlog N r)),相对于用户数量而言。然而,在实际应用中,BGK方法可能存在以下两个限制:(1)所有未被撤销的用户需要定期与密钥生成中心通信并更新其解密密钥;(2)密钥更新信息和用户私钥的大小均随用户数量呈对数增长,分别为 O(r log N r) 和 O(log N)。第一个限制由于可撤销IBE的系统模型而无法避免;而第二个限制正如 Lee等人所解释的那样,是基于树的撤销方法固有的特性。[21],其他遵循BGK可撤销IBE模型的可撤销IBE方案也存在此类限制。由此产生了一个自然的问题:是否可以在一种新的可撤销IBE系统模型中克服这两个限制?
我们的想法
在本文中,我们提出了一种新的可撤销IBE系统模型,以克服 BGK方法中的两个局限性。我们的想法基于以下观察:在BGK方法中,用户端的几乎所有工作负载都可以委托给一个 不可信的第三方服务器。我们的系统模型称为服务器辅助的可撤销IBE( SR‐IBE),如图1所示。具体而言,SR‐IBE系统包含四种参与方:密钥生成中心、发送方、接收者和一个服务器,其工作流程如下:
- (密钥分发:密钥生成中心 −→接收者和服务器) 在系统设置阶段,密钥生成中心为每个接收者/用户颁发一个长期私钥以及相应的一组长期公钥。前者交给接收者,后者交给服务器。
- (加密:发送方 −→服务器) 发送方针对某个身份和时间段对消息进行加密。生成的密文被发送到服务器。
- (部分解密:服务器 −→接收者) 服务器使用与密文中嵌入的接收者身份和时间段相对应的转换密钥,将密文转换为部分解密的密文。
- (解密:接收者) 接收者使用其长期私钥或当前时间段的委托解密密钥,从部分解密的密文中恢复出发送方的消息。
- (密钥更新:密钥生成中心 −→服务器) 在每个密钥更新周期,密钥生成中心将一组密钥更新发送给服务器,而不是所有未被撤销的用户。服务器结合密钥更新和存储的用户公钥,为所有用户生成当前时间段的转换密钥。
与标准的可撤销IBE一样,SR‐IBE中的KGC被假定为完全可信且不会被攻破。然而,在我们的模型中,服务器被假定为untrusted,即它不保存任何秘密数据,仅根据系统规范执行公开的存储和计算操作。这种不可信服务器的概念远弱于文献中semi-trusted第三方的概念,后者通常被假定为部分可信。
用于存储一些私钥,且不能与其他方共谋。我们强调,在这两种情况下,服务器(或第三方)都应执行正确的操作,并向用户(或其他方)提供正确的结果。我们将提出一个针对RS‐IBE的正式安全模型(见第3节),涵盖标准R‐IBE模型中考虑的所有已知威胁。我们还将构造一个具体的SR‐IBE方案。值得注意的是,即使假设服务器是不可信服务器,我们的方案仍能同时实现以下优势:
– 在标准模型下,基于Seo和Emura提出的可撤销IBE的改进安全模型,在判定性双线性Diffie‐Hellman假设下,可证明地抵抗自适应身份攻击和解密暴露攻击。
– 每个用户的私钥大小为常数(即, O(1))。
– 用户与KGC在密钥更新期间无需通信。
– 从KGC发送给服务器的密钥更新信息的大小在用户数量上是对数级的(即,O(rlog Nr)),与基于树的方法相同。
为了展示我们方法的优势,我们在表1和2中分别对我们的方案与一些具有代表性的非服务器辅助的可撤销IBE[3,5,17,18,24]以及一种服务器辅助的可撤销IBE[14]进行了详细比较。显然,在我们的SR‐IBE中,未被撤销的用户不需要与密钥生成中心或服务器通信,而在之前的所有方案中(包括[14],的服务器辅助方案),用户必须在每次密钥更新期间与密钥生成中心或服务器进行通信。此外,在之前的方案中几乎全部由用户承担的计算开销,在我们的SR‐IBE中均由服务器承担,同时并未牺牲安全性(即该方案仍在[24]提出的精细化完整安全模型下是安全的)。值得注意的是,[21]中的方法利用多线性映射解决了基于树的方法中存在的第二个问题,但其公钥参数的大小随用户数量线性增长,且其安全性是在选择性撤销列表模型下证明的,该模型弱于自适应身份模型。
的作者[14]展示了如何将密钥生成中心(KGC)的工作负载委托给一个半可信服务器,他们将其称为外包密钥生成中心(outsourced KGC)。在他们的方法中,尽管每个用户持有的私钥大小是恒定的,但由于其撤销策略为对每个用户随机分割主私钥,外包密钥生成中心必须管理一个外包主密钥以及大量私钥份额(与用户数量呈线性关系)。因此,[14]中的方法无法防止外包密钥生成中心与被撤销用户之间的合谋攻击,如表2所示。
我们的SR‐IBE的上述特性对于手机等轻量级用户设备尤其具有吸引力。SR‐IBE的一个优秀应用场景是安全电子邮件系统,其中邮件服务器存储用户的公钥,并执行密钥更新和部分解密;而邮件接收者只需存储其(固定长度)私钥,并用它从部分解密的消息中恢复邮件内容。此外,SR‐IBE系统支持解密密钥委托。当用户在一段时间内离开办公室时,他可以将在此期间的解密密钥委托给他的同事或助手。
2 预备知识
符号说明
在本文中, N表示自然数集,κ ∈ N表示安全参数。如果 S是一个有限集合,则 s←R S表示从 S中均匀随机选取一个元素 s的操作。如果 X是定义在 S上的随机变量,则我们用 x← X表示根据分布 X采样一个值 x ∈ S的过程。我们称一个函数 negl 在 κ上是可忽略的,如果对于每个正多项式 poly(·),都存在一个 N,使得对所有κ> N,negl(κ) < 1/poly(κ)。概率多项式时间算法(PPT)A是指在输入 x时,使用随机性计算 A(x)且其运行时间被poly(κ)所限制的算法。
双线性群
设 G, GT为素数阶p的群,令 g为 G的生成元。一个可有效计算的映射eˆ: G× G→ GT若满足以下两个条件,则称为(对称)对运算:
– (双线性) 对于所有 a,b ∈ Zp,我们有 eˆ(ga, gb) =eˆ(g, g)ab;
– (非退化性) 对于 G 的任意生成元 g,eˆ(g, g) 是 GT 的一个生成元(即 eˆ(g, g) = 1)。
我们用 BP(κ)表示一个双线性群生成器,它以安全参数 κ作为输入,输出双线性群的描述 G=(G, GT, eˆ,p, g)。
DBDH假设
令 G=(G, GT, eˆ, q, g) ← BP(κ)。判定性双线性Diffie‐Hellman假设(DBDH)指出,对于任意概率多项式时间算法而言,要区分元组(G, g a, g b, g c, eˆ(g, g) abc)与元组(G, g a, g b, g c, Z)是困难的,其中 a, b, c←R Z p和 Z←R GT。
沃特斯 IBE 方案[28]
设 G为一个素数阶群 p。对于身份id=(b1,…, bn) ∈{0, 1} n和 U= (u0, u1,…, un) ∈ G n+1,我们用FWat,U(id) = u0·∏ n i=1 u b i i 表示Waters IBE方案中使用的哈希函数。
沃特斯IBE方案由以下五个PPT算法组成 :
SysWat(κ) :输入 κ,输出系统参数ppWat=(G, h, U),其中G← BP(κ), h←R G和 U←R G n+1。
SetupWat(ppWat) :输入ppWat,输出主公钥MPK Wat= g1= g α和主私钥MSKWat= hα,其中 α←R Z p 。
PrivKGWat(MSKWat, id) :输入主私钥MSKWat和身份id ∈{0, 1} n,输出用户的私钥SKid=( h α · FWat,U(id) r , g r ),其中 r←R Z p 。
EncWat(MPKWat, id M) :输入MPKWat、id ∈{0, 1}n和消息 M ∈ G,选择 z←R Zp并输出 CTid=(C0, C1, C2),其中 C0=eˆ(g1, h)z · M,C1= gz, C2= FWat,U(id)z。
DecWat(SKid, CTid) :输入SKid=(d1, d2)和 CTid=(C0, C1, C2),输出M= C0 · K−1,其中 K= eˆ(g1, C1) · eˆ(d2, C2)−1。
我们采用标准的(自适应)基于身份的加密(IBE)的ID‐CPA安全性,其定义例如见[5]。由[28],可得以下定理。
定理1(Waters IBE的安全性 [28,定理 1]) 。在DBDH假设下,Waters IBE方案是ID-CPA安全的,且其安全性证明导致了一个因子为 O(nQ)的归约损失,其中 Q是私钥查询次数。
3 SR‐IBE的定义与安全性
定义1(SR‐IBE)
一个SR-IBE方案涉及四个参与方:密钥生成中心(KGC)、发送方、接收者和第三方(即服务器)。各方之间的算法定义如下:
pp ← Sys(κ) :这是由密钥生成中心(KGC)运行的系统参数生成算法。它以安全参数 κ为输入,输出一个被所有参与方共享的系统参数 pp。
(MPK, MSK,RL,ST) ←Setup(pp N) :这是由密钥生成中心(KGC)运行的设置算法。它以系统参数 pp 和用户最大数量 N 作为输入,输出主公钥 MPK、主私钥 MSK、初始撤销列表 RL 和状态 ST。
(PKid,ST) ← PubKG(MSK,id,ST) :这是由密钥生成中心(KGC)运行的公钥生成算法。它以主私钥 MSK、接收者的身份 id 和状态 ST 作为输入,为接收者输出一个公钥 PKid,并更新状态 ST。公钥 PKid通过公共信道发送给服务器。
(KUTK,t,ST) ← TKey Up(MSK,t,RL,ST) :这是由密钥生成中心(KGC)运行的转换密钥更新生成算法。它以主私钥 MSK、时间段 t、撤销列表 RL 和状态 ST 作为输入,输出一个转换密钥更新 KUTK,t以及更新后的状态 ST。密钥更新 KUTK,t通过公共信道发送给服务器。
TKid,t← TranKG(PKid,KUTK,t) :这是由服务器运行的转换密钥生成算法。它以身份 id 的公钥 PKid和时间段 t 的转换密钥更新 KUTK,t作为输入,输出一个转换密钥 TKid,t。
SKid← PrivKG(MSK,id) :这是由密钥生成中心(KGC)运行的私钥生成算法。它以主私钥 MSK 和接收者的身份 id 作为输入,为接收者输出一个私钥 SKid。该私钥必须通过安全信道发送给接收者。
DKid,t ← DecKG(SKid,t) :这是由接收者自己运行的解密密钥生成算法。它以他的私钥SKid和时间段 t 作为输入,输出时间段 t 的解密密钥 DKid,t。
CTid,t← Enc(MPK, id, t M) :这是由发送方运行的加密算法。它以主公钥 MPK、接收者的身份id、一个撤销时间t以及一条消息 M 作为输入,输出一个密文 CTid,t。该密文被发送至服务器。
CTi′d,t ← Transform(TKid,t, CTid,t) :这是由服务器运行的密文转换算法。它以转换密钥TKid,t和一个密文 CTid,t作为输入,并输出一个部分解密的密文 CT′ id,t。该部分解密的密文 CT′ id,t被公开发送给接收者。
M/ ⊥← Dec(DKid,t, CT′ id,t) :这是由接收者运行的解密算法。它以解密密钥DKid, t和部分解密的密文 CT′ id作为输入 ,t,并输出一条消息 M或特殊符号 ⊥。
RL ← Revoke(id,t,RL,ST) :这是由密钥生成中心KGC运行的撤销算法。它以身份id、时间段t、撤销列表RL和状态ST作为输入,并输出一个更新的撤销列表RL。
正确性
正确性要求对于所有安全参数 κ和所有消息 M,如果接收者在时间段t未被撤销,并且所有参与方均遵循规定的算法,则我们有Dec(DKid,t, CT′ id,t) = M。
接下来,我们给出针对自适应身份实体选择明文攻击的语义安全性定义,用于服务器辅助的可撤销IBE方案(简称为SR‐ID‐CPA安全性)。我们首先介绍攻击者可以自适应且重复访问的预言机。
– (公钥预言机) Osr−ibe PubKG(·):输入一个身份id,通过运行Pub KG(MSK, id, ST)输出一个公钥PKid。
– (转换密钥更新预言机) Osr−ibe TKeyUp(·):输入一个时间段t,通过运行TKeyUp(MSK, t, RL, ST)输出KUTK,t。
– (私钥预言机) Osr−ibe PrivKG(·):输入一个身份 id,通过运行PrivKG(MSK,id)输出一个私钥SKid。
– (解密密钥预言机) Osr−ibe DecKG(·, ·):输入一个身份id和一个时间段t,通过运行DecKG(SKid,t)输出DKid,t,其中SKid 是通过PrivKG(MSK,id)获得的。
– (撤销预言机) Osr−ibe Revoke(·, ·):输入一个身份id和一个时间段t,通过运行Revoke(id,t,RL,ST)输出一个更新的撤销列表RL。
定义2(SR‐ID‐CPA安全性)
设 Oibe sr表示上述定义的预言机族。我们称一个 SR-IBE方案是SR-ID-CPA安全的,如果对于任意概率多项式时间算法攻击者 A,函数Adv sr−id−ibe SR−IBE A(κ)关于 κ是可忽略的,其中
Adv sr−id−cpa SR−IBE,A(κ):=
∣ Pr[b′= b: pp← Sys(κ) (MPK, MSK, RL, ST)← Setup(pp) (id ∗ , t∗, M0, M1)← AOibe sr(MPK) b←R{0, 1} CTid∗,t∗← Enc(MPK, id ∗ , t ∗ , Mb) b′← AO ibe sr(CTid∗,t∗)] − 1/2 ∣
在上述定义中,必须满足以下条件:
- M0, M1 ∈ M和 |M0| = |M1|,其中 M是消息空间M。
- Osr−ibe TKey Up(·)和 Osr−ibeRevoke(·, ·)只能按时间的非递减顺序进行查询。
- 如果在时间t上已查询过 Osr−ibe TKey Up(·),则不能在时间t上查询·Revoke( Osr−ibe,·)。
- 如果私钥生成预言机 Osr−ibe PrivKG(·)被查询挑战身份id∗,则必须对任意 t ≤t∗,在(id∗, t)上查询撤销预言机∗Revoke( Osr−ibe,·)。
- 如果身份id在时间 t∗未被撤销,则不能在(id∗, t)上查询DecKG(·,·)。
上述安全概念实质上涵盖了以下场景:
(1)被撤销用户无法访问在未来时间段内加密的密文;
(2)身份id在时间t的被泄露的解密密钥仅会危及在( id,t)下加密的密文的隐私;
(3)除密钥生成中心外,所有其他参与方均可共谋。用户的解密密钥由用户自身更新,因此在用户私钥分发后,用户与密钥生成中心之间无需再进行通信。此外,密钥生成中心与服务器之间的所有通信均通过公共信道进行,攻击者可访问该公共信道。服务器不持有任何秘密数据,仅作为计算设备运行。
4 SR‐IBE方案的构造
4.1 节点选择算法:KUNodes
在本小节中,我们回顾之前可撤销IBE系统中使用的节点选择算法KUNodes如前所述[3,24]。该算法计算一个最小的节点集合Y,对于该集合需要发布转换密钥更新,以便服务器能够为未被撤销的用户生成相应的转换密钥。
我们采用与[3]中类似的符号表示。对于具有 N个叶节点的二叉树BT,其对应 N个用户,我们用root表示二叉树BT的根节点。如果 θ是一个叶节点,则Path(θ)表示从 θ到root路径上的所有节点集合(包括 θ和root)。如果 θ是非叶节点,则 θl和 θr分别表示 θ的左子节点和右子节点。节点选择算法 KUNodes的输入为二叉树BT、撤销列表RL和撤销时间t,其工作方式如下:首先标记所有在撤销时间t之前被撤销用户的祖先节点为被撤销节点。然后,输出所有被撤销节点的未被撤销的子节点。图2给出了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
服务器辅助的可撤销基于身份的加密
4 SR‐IBE方案的构造
4.2 构造方法
我们假设身份空间为{0, 1}n,时间空间为 T。消息空间 M与底层群的相同。我们的SR‐IBE方案包含以下算法:
Sys(κ)
:输入安全参数 κ后,密钥生成中心执行以下操作:
1. 选择 G=(G, GT,p, g, eˆ) ← BP(κ)。
2. 选择一个随机元素 h←R G。
3. 选择一个随机的 n+1 维向量 U=(u0, u1,…, un) ←R G n+1 和一个随机的二维向量 (v0, v1) ←R G 2。
4. 定义并返回公共参数pp =(G, h, U, v0, v1)。
设置(pp N)
:在输入pp和最大用户数量 N后,密钥生成中心执行以下操作:
1. 选择两个随机指数 α, β←R Z p,并设置 g1= g α+β。
2. 初始化撤销列表 RL = ∅ 和状态 ST:=二叉树BT,其中 BT 是具有 N 个叶节点的二叉树。
3. 定义主公钥 MPK = g1 和主私钥 MSK =(hα, hβ)。
4. 返回 (MPK,MSK,RL,ST)。
PubKG(MSK,id,ST)
:将MSK解析为(hα, hβ),将ST解析为二叉树BT。密钥生成中心执行以下操作:
1. 从二叉树BT中选择一个未分配的叶节点 θ,并将身份id存储在此节点中。
2. 对于每个节点 x ∈Path(θ),执行以下操作:
(a) 从二叉树BT中调取gx,1,如果该值未定义,则选择gx,2←R G,设置gx,1 =h α /gx,2,并将数对(gx,1,gx,2)存储在节点 x中。
(b) 选择 rx←R Zp。
(c) 计算(Px,1, Px,2) =(gx,1 · FWat, U(身份id)rx, grx)。
3. 返回公钥PKid={(x,Px,1,Px,2)}x∈Path(θ)以及更新后的状态ST。
TKeyUp(MSK,t,RL,ST)
:将MSK解析为(hα, hβ),将ST解析为二叉树BT。对于所有 x ∈KUNodes(二叉树BT,RL,t),密钥生成中心执行以下操作:
1. 从二叉树BT中获取gx,2。如果未定义,则类似于公钥生成算法,选择(gx, 1,gx,2) ∈ G × G,使得gx,1 · gx,2= hα,并将其存储在节点 x中。
2. 选择 sx←R Zp。
3. 计算(Qx,1,Qx,2) =(gx,2 ·(v0vt 1) sx, gsx)。
4. 将KUTK,t={(x, Qx,1,Qx,2))x∈KUNodes(BT,RL,t)返回给服务器。
TranKG(PKid, KUTK,t) :输入PKid和KUTK,t后,服务器为(身份id, 撤销时间t)生成一个转换密钥,具体步骤如下:将PKid解析为{(x, Px,1, Px,2)}x∈I,并将KUid,t解析为{(x, Qx,1,Qx,2)}x∈J,其中 I, J为某些节点集合。如果 I ∩ J= ∅(即不存在满足 i= j的对(i, j) ∈ I × J),则返回 ⊥;否则任选一个x ∈ I∩J和r′ x, s ′ x←R Zp,计算并返回 TKid,t=(T K1, T K2, T K3),其中
$$
\begin{cases}
T K1= P_{x,1} \cdot Q_{x,1} \cdot F_{\text{Wat},U}(\text{id})^{r’
x} \cdot (v_0 v_1^t)^{s’_x} (= h^\alpha \cdot F
{\text{Wat},U}(\text{id})^{r_x + r’
x} \cdot (v_0 v_1^t)^{s_x + s’_x}) \
T K2= P
{x,2} \cdot g^{r’
x} (= g^{r_x + r’_x}) \
T K3= Q
{x,2} \cdot g^{s’_x} (= g^{s_x + s’_x})
\end{cases}
$$
PrivKG(MSK,id)
:将MSK解析为(hα, hβ),密钥生成中心执行以下操作:
1. 选择rid←R Zp。
2. 计算(Did,1, Did,2) =(hβ · FWat, U(身份id)rid, g r id)。
3. 返回SKid=(Did,1,Did,2)。
DecKG(SKid,t) : 解析SKid为(Did,1, Did,2)。用户选择 r′ id, s′ t←R Zp,然后计算并返回 DKid,t=(D1, D2, D3),其中
$$
\begin{cases}
D1= D_{id,1} \cdot F_{\text{Wat},U}(\text{id})^{r’
{id}} \cdot (v_0 v_1^t)^{s’_t}(= h^\beta \cdot F
{\text{Wat},U}(\text{id})^{r_{id} + r’
{id}} \cdot (v_0 v_1^t)^{s’_t}) \
D2= D
{id,2} \cdot g^{r’
{id}} (= g^{r
{id} + r’_{id}}) \
D3= g^{s’_t} (= g^{s’_t})
\end{cases}
$$
Encrypt(MPK, id, t M)
:在身份id和时间段t下对消息 M进行加密时,发送方选择z←R Z p并设置 CT=(C0, C1, C2, C3),其中
C0= ˆe(g1, h) z · M
C1= g z
C2= FWat,U(id) z
C3=(v0v t 1) z.
它将CTid,t=(id, t CT)返回给服务器。
变换(Transform(TKid,t, CTid,t))
:解析TKid,t为(T K1, T K2, T K3),并将 CTid,t解析为 (身份id,撤销时间t C0, C1, C2, C3)。然后计算
$$
K1= \frac{\hat{e}(C_1, T K_1)}{\hat{e}(C_2, T K_2) \cdot \hat{e}(C_3, T K_3)} (= \hat{e}(g^\alpha, h)^z)
$$
然后,它设置C′ 0 = C0/K1并返回 CT′ id,t =(id, t C′ 0 , C1, C2, C3)给接收者。
解密(Decrypt(DKid,t, CTi′d,t))
:解析DKid,t为(D1, D2, D3),并将CTi′d,t解析为 (id, t (C0′, C1,C2, C3))。然后计算
$$
K2= \frac{\hat{e}(C_1, D_1)}{\hat{e}(C_2, D_2)\cdot \hat{e}(C_3, D_3)} (= \hat{e}(g^z, h^\beta \cdot F_{\text{Wat},U}(\text{id})^{r_{id}+r’
{id}} \cdot (v_0 v_1^t)^{s_t+s’_t}) / (\hat{e}(F
{\text{Wat},U}(\text{id})^z, g^{r_{id}+r’_{id}})\cdot \hat{e}((v_0 v_1^t)^z, g^{s_t+s’_t})) = \hat{e}(g^\beta, h)^z)
$$
并返回 M= C0′/K2。
5 安全证明
该方案的正确性可通过直接计算验证。我们在此省略,仅在下文关注其安全证明。
定理2
。如果存在一个概率多项式时间算法攻击者 A能够攻破所提出的SR-IBE方案的 SR-ID-CPA安全性,则我们可以构造一个概率多项式时间算法攻击者 B来攻破Waters IBE方案的ID-CPA安全性。此外,
$$
\text{Adv}
{SR-IBE,A}^{sr-id-cpa}(\kappa) \leq 2Q|T | \cdot \text{Adv}
{IBE_{\text{Wat}},B}^{id-cpa}(\kappa)
$$
其中 Q是攻击者 A发出的预言机查询的最大数量,T是撤销时间段的集合。
证明概要 。 此处我们仅强调证明的核心思想。感兴趣的读者可参考附录A中的形式化证明。
从高层次上看,我们可以将我们的方案视为徐和海村的传统可撤销IBE方案[24](主私钥为hα)与源自沃特斯IBE方案[28]的两级层次化身份加密方案 (主私钥为 hβ)的结合。第一个组成部分再次基于沃特斯IBE方案构建。在 RIBE中由用户持有的长期私钥现在被公开委托给服务器。每个用户实际上持有 一个底层两级HIBE方案的第一级秘密密钥作为其长期私钥。在证明中,我们将 敌手分为以下两种不同类型。
I型对手 :攻击者向私钥预言机Osr−ibe PrivKG(·)发起查询,使用挑战身份id∗。因此,身份id∗必须在挑战时间t∗之前被撤销。
II型敌手 : 该攻击者从不 使用挑战身份id∗向私钥预言机 Osr−ibe PrivKG(·)发起查询,但可以对解密密钥预言机 Osr−ibe DecKG(·, ·)发起查询,只要查询参数为(id ∗ ,t)且满足t ≠ t∗。
我们可以将我们的证明视为根据所面对的敌手类型,归约到底层可撤销 IBE方案的安全性或HIBE方案的安全性。对于第一类攻击者,其可以获得 HIBE方案的挑战一级秘密密钥,从而获得任何解密密钥。因此,我们无法将安全性归约到底层HIBE方案。相反,我们将其归约到底层RIBE方案的安全性。RIBE预言机可以回答所有公钥查询和转换密钥更新查询。
攻击者,因为挑战身份必须在挑战时间之前被撤销。对于第二种类型的攻击者, 其不会查询挑战身份的私钥,因此即使对于挑战身份和时间段,也可以查询长期公钥和密钥更新。在这种情况下,由于攻击者被禁止查询挑战身份和时间段的解密密钥,因此可以将我们的安全性归约到底层HIBE的安全性。
6 结论
本文中,我们提出了一种新的可撤销IBE系统模型,称为服务器辅助的可撤销 IBE(SR‐IBE)。该模型具有两个理想特性,使其特别适用于计算、通信和存储能力有限的用户。首先,SR‐IBE将先前非服务器辅助的可撤销IBE系统中用户所承担的几乎所有工作负载委托给一个不可信的第三方服务器。其次, SR‐IBE仅要求每个用户存储一个短的长期私钥,使得用户可以完全自主地更新解密密钥,而无需与KGC或第三方服务器进行通信。我们还提出了一个具体的 SR‐IBE方案,并证明了其在标准模型下基于判定双线性Diffie‐Hellman假设, 能够抵御自适应身份攻击和解密暴露攻击。SR‐IBE的一个理想应用是支持移动 用户的安全电子邮件系统,其中邮件服务器可以自然地充当不可信的第三方服务器。
25

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



