基于身份的通用重加密方案

基于身份的混洗网络通用重加密

研究文章

哈比卜·阿拉·亚贾姆*,贾瓦德·莫哈杰里和马哈茂德·萨尔马齐扎德
电气工程系,电子研究所,谢里夫理工大学,德黑兰,伊朗 n

摘要

为了提供匿名性,通用密码系统已被应用于多种场景,包括具有多个接收者的混洗网络。与普通的重加密密码 系统不同,用于密文重加密的通用密码系统不需要知晓接收者的公钥。Golle等人提出了公钥密码学中的通用 密码系统。与公钥密码学不同的是,在基于身份的密码学中,无需公钥基础设施,这使其适用于分发证书或建 立公钥基础设施成本过高的场景。本文中,我们首先将通用密码系统的定义以及通用语义安全的概念推广到基 于身份的密码学中,然后提出了两个基于身份的通用密码系统方案,最后证明了这两个方案的安全性。第一个 方案在计算和通信方面具有更高的效率,而第二个方案在标准模型下具有安全性证明,并且具备更紧密的安全 边界。版权所有©2015JohnWiley&Sons,Ltd.

关键词 匿名性;加密;混币网络;基于身份的 *通讯 哈比卜·阿拉·亚贾姆,电气工程系,电子研究所,谢里夫理工大学,德黑兰,伊朗
电子邮件:hyajam@ee.sharif.edu

1. 引言

混洗网络是由多个混合服务器组成的网络,旨在提供 匿名通信。由于与其他提供匿名通信的方法相比具有 更高的性能,以及在其他协议中的多种应用, Chaum[1]首次提出了这些网络的概念[2][3–5],,并 引起了广泛关注。混洗网络提供了一种可灵活访问的 匿名服务,因此成为互联网等开放网络中最流行的匿 名通信方法[6]。

重加密混合网络是一种知名的混洗网络类型,旨 在提供鲁棒性,并在混洗操作期间保持密文大小不变 [7,8]。这类混合网络基于重加密密码系统。其中最著 名的重加密密码系统之一是ElGamal密码系统[9], 该系统受到了广泛关注,并已被应用于多种混洗网络 中。

在普通的重加密密码系统中,对密文执行重加密 需要接收者的公钥。对于所有消息只有一个接收者的 混洗网络(例如普通电子投票网络),这并不成问题。然而,当重加密混洗网络中存在多个接收者时,情况 就不同了。在匿名通信网络的情况下,发送者必须在每个密文中 附带接收者的公钥。因此,在这种情况下无法保持接 收者匿名性。此外,每条消息的发送者仅在向同一接 收者发送消息的一小群发送者中保持匿名,而发往相 同接收者的密文显然可被关联。因此,在存在多个接 收者的情况下,发送者匿名性的程度会降低。

为了克服这一缺点,Golle等人[10]引入了通用重 加密密码系统。与普通重加密密码系统不同,通用密 码系统中的重加密既不需要关于接收者公钥的任何信 息,也不会泄露关于接收者公钥的任何信息。除了应 用于多接收者混洗网络外,通用密码系统还广泛应用 于车载网络[11,12],、射频识别(RFID)系统[13],中的隐私保护、互联网投票系统[14],等领域。

一种通用密码系统最显著的安全属性之一被称为 通用语义安全性,这是此类方案所需满足的一项安全 要求。直观上讲,如果攻击者无法区分两个特定消息 的重加密版本,则该通用密码系统具有通用语义安全 性。

在所有公钥密码系统中,都需要存在一个公钥基 础设施。然而,在基于身份的密码学中,不需要公钥 基础设施。基于身份的密码学思想最早由Shamir于 1986[15]提出。最早受到高度评价的基于身份的加密 方案之一是Boneh–Franklin方案[16]。该方案基于 双线性映射,对于实际应用非常高效。该方案的安全 性在随机预言模型中得到证明,其安全边界与攻击者 的密钥提取请求次数成正比。2006年,Gentry提出了 第一个在标准模型中具有安全性证明且相对于密钥提 取查询次数具有固定安全边界的基于身份的加密方案 [17]。2009年,首个基于基于身份的重加密密码系统 的混洗网络方案被提出[18]。

本文的贡献在于将[10]中提供的通用密码系统的 定义扩展到基于身份的密码学,并提出了两个基于身 份的通用密码系统方案。基于身份的密码系统适用于 证书分发成本较高的场景,因为它们不需要任何公钥 基础设施,例如无线传感器网络[19]和空中交通监视 网络[20]。在本文中,我们将通用语义安全的定义推广 到基于身份的密码学环境中,并证明了我们提出的两 个方案的安全性。第一个方案基于Boneh–Franklin 的基于身份的[16]加密。与第二个方案相比,它在计 算和通信方面具有更高的效率。第二个方案基于 Gentry的基于身份的加密[17]。该方案在标准模型中 被证明是安全的,其安全边界相对于攻击者请求的密 钥提取查询次数更紧且固定。

为了阐明基于身份的通用重加密的潜力,我们在 此解释一个展示此类方案应用的场景。假设一所大学 希望为讲师提供一个安全的系统,以便他们开展投票 并接收学生的反馈。在该系统中,任何反馈仅对相应 的讲师和学生可见。此外,参与投票的学生的匿名性 必须得到保障。在这种情况下,使用带有公钥基础设 施的传统混洗网络可能会有些繁琐,因为每个学生都 需要访问其讲师的证书,并且每位讲师必须每学期注 册新的公钥。因此,通过使用基于身份的通用重加密, 无需进行证书分发。此外,得益于该方案的接收者匿 名性,某些信息(例如每位讲师收到的反馈数量)对 其本人也是保密的。

1.1. 相关工作

在 Golle 等人于 2004 年提出通用重加密之后,已有各种研 究使用了该技术。通用重加密在不同应用中的应用[11–22],然而,通用 重加密也取得了一些改进。弗尔布罗瑟于2005年显著 提高了该方案在通信效率方面的性能。这一相当简单 的改进,可以无需对密码系统进行根本性修改,直接 扩展到本文提出的基于身份的通用重加密方案中。阿 滕内塞等人于2005年提出了针对通用重加密在RFID隐 私系统中应用的改进,从而提出了一种名为“不可颠 覆加密”的新密码构造[24]。这种新构造通过引入证明 证书,防止主动攻击者追踪RFID标签,从而使密文只 能由授权方解密。2007年,达内齐斯提出了针对基于 通用重加密的多个混洗网络的若干攻击[25]。达内齐斯 指出,这些方案的漏洞并非源于通用重加密的使用, 而是由于对该原语的疏忽使用所致。在接下来的章节 中,我们提出了两个在基于身份环境下具有可证明安 全的通用重加密方案。这些方案可用作多种应用中的 基本构建模块。

本文组织如下。我们在第2节中首先提供一些定义 和预备知识,这些内容是后续章节所必需的。然后在 第3节中,我们介绍将通用密码系统推广到基于身份密 码学的一般化方法,并阐述基于身份的通用密码系统 安全性的含义。接着在第4节中提出我们的第一个基于 身份的通用密码系统,并给出该方案的安全性证明。在第5节中,我们提出另一个类似的方案及其安全性证 明。我们的实现和实验结果在第6节中讨论。最后在第 7节中,我们总结并讨论一些众所周知的安全定义与我 们在证明中使用安全定义之间的关系。

2. 预备知识

在本节中,我们提供一些定义和预备知识,这些内容 是后续章节中方案的证明或解释所必需的。

定义 1. 判定双线性Diffie‐Hellman问题(DBDH): 给定循环群 G 和 Gt,两者的素数阶均为 p,P 是 G 的生 成元,双线性函数 ^e :G G→Gt,以及值 P, aP, bP, cP, Z,其中 Z∈Gt 且 a, b, c ∈Zp,判断是否满足 Z ¼ ê P; Pð Þabc 或 Z 是 Gt 中的一个随机元素。

定义2. 决策双线性Diffie‐Hellman假设( DBDH): 对于任意关于安全参数的概率多项式时间 算法B,如果P∈G且a, b, c, r ∈Zp是相应群中的随机 元素,则AdvDBDH ℬ 的值是可忽略的。AdvDBDH ℬ 的值表 示算法B在解决该问题上的优势。

判定双线性Diffie‐Hellman问题,定义如下:
$$
AdvDℬB DH¼ Pr ℬ P; aP; bP; cP; Z ð Þ⇒0jZ ¼ ̂ eP; P ð Þabc h i - Pr ℬ P; aP; bP; cP; Z ð Þ⇒0 Z ¼ ̂ eP; P ð Þr
$$
(1)

定义3. 决定性q‐ABDHE问题: 给定两个素数阶 p的循环群G和Gt,以及G的生成元P、P′,双线性函 数ê: G G→Gt,还有值 αP, …, αqP, αq+ 2P, Z,其中Z ∈Gt且α ∈Zp,判断Z是否等于ê P; P′;ð Þαqþ1, 还是Z为Gt中的随机元素。

定义4 决定性q‐ABDHE假设: 对于任意关于安全 参数的概率多项式时间算法B,若P;P′; ∈G 且 α、r ∈ Zp是其相应群中的随机元素,则Advq‐ABDHE B的值是 可忽略的。AdvDℬBDH表示算法B在解决q‐ABDHE问题 上的优势,其定义如下:
$$
Advq-ABDHE ℬ ¼ |Pr ℬ ̂e; G; GT; P; P′; αP;…; αqP; αqþ2P′; Z ⇒0jZ ¼ ̂ e P; P′αqþ1 h i - Pr ℬ ̂e; G; GT; P; P′; αP;…; αqP; αqþ2P′; Z ⇒0jZ ¼ ̂ e P; P′r|
$$
(2)

3. 基于身份的通用重加密

在本节中,我们通过使用五个算法简要描述一种基于 身份的通用加密方案。一个通用加密方案由四个算法 组成:密钥生成、加密、解密和重加密[10]。或者, 一种“基于身份的”通用加密系统由以下五个算法组 成:

(1) 设置:该算法以安全参数作为输入,输出系统的 公共参数和主私钥。
(2) 密钥生成:它以主私钥和用户身份作为输入,输出用户私钥。
(3) 加密:它以消息、接收者身份和加密随机因子作为输入,输出密文。
(4) 重加密:它以密文和重加密随机因子作为输入,输出重加密文本。
(5) 解密:它以重加密文本和用户私钥作为输入,输出消息或错误 ⊥,表示无法 使用给定的私钥解密该密文。

现在我们定义基于身份的通用语义安全(ID‐USS), 它仅仅是 [10]中提到的通用语义安全性。ID‐USS将用于评估 基于身份的通用密码系统的安全性,其定义为挑战者 与攻击者之间进行的包含五个阶段的挑战‐响应游戏:

(1) 设置:在此阶段,挑战者执行通用密码系统的设置算法,并将公共参数发送给攻击者,同时保持主 私钥的机密性。
(2) 阶段1:攻击者发出有限数量的密钥提取查询。对于每个查询,挑战者返回相应的私钥。允许攻击 者进行自适应查询。
(3) 挑战:攻击者选择两个身份 id0,id1 和两条等长 消息 M0, M1,以及四个随机加密因子 r00, r01,r10, r 11,并将它们发送给挑战者。攻击者在挑战阶段不 得选择之前已查询过密钥提取的身份。然后挑战者 随机选择一个比特 γ ∈{0, 1},并对消息 M0, M1 针对身份 id0, 进行加密。id1,分别对应,结果将得到两个密文C0, C1。接 下来,将其返回Cγ,C1 γ给攻击者。
(4) 阶段2:在此阶段,攻击者在以下条件下进行与 阶段1类似的额外查询:不得对 id0,id1 中的任何一 个进行密钥提取查询。
(5) 猜测:攻击者输出 γ’ 作为其对 γ 的猜测。

攻击者在破坏基于身份的通用密码系统的语义安 全方面的优势在公式(3)中定义。
$$
Adv_{id-uss}(A) = Pr[γ = γ’] - \frac{1}{2}
$$
(3)

如果对于任意概率多项式时间攻击者,Adv_{id‐uss}(A) 是可忽略的,则该基于身份的通用密码系统是通用语义 安全的。

4. 提议方案I

在本节中,我们将提出第一个基于身份的通用加密系 统,该系统基于 Boneh‐Franklin 基于身份的加密 (IBE)[16]。各方案的说明如下:

(1) 设置:私钥生成器运行此算法以设置系统。该算 法生成一个双线性映射(定义参见[17])为^e :G G→GT,其中G和GT是具有素数阶p的循环群,H : 0; 1 { }→G是一个密码学映射到点的哈希函数, P是群G的生成元。该算法生成一个随机的主私钥s ∈RZ p。该算法的输出是系统的公共参数PP =hP, P Pub, H i,其中PPub=sP为主公钥。

(2) 密钥生成:由私钥生成器运行此算法。该算法 以用户身份id ∈{0, 1}*和主私钥s作为输入,计算出 用户的私钥did= sQid,其中Qid= H(id)。

(3) 加密:对于消息 M∈Z q 的加密,该算法以接收 者用户身份 id∈{0, 1}* 和两个随机因子 r1; r2∈Z P 作 为输入,输出元组 h(U1, V1),(U2, V2) i,其中 U1= r1P,V1 ¼ ê P Pub ð Þ ð Þr1; Hid,U2= r2P 和 V 2 ¼ ê P Pub ð Þ ð Þr2; HidM。

(4) 重加密:该算法以元组 (U1,V1)、(U2,V2) 和两个 随机因子 r’ 1; r 2∈Z q 作为输入,输出元组 hU ’ 1 ’ 1 ; V; U ’ 2 ’ 2 1 ¼ r’ 1U1,V’ 1 ¼ V1 r’ 1,U ’ 2U1 且 V’ 2 ¼V2V1 r’ 2。

(5) 解密:接收者执行此算法。该算法以密文元组 h (U1,V1), (U2,V2) i 和用户的密钥 did 作为输入,若 等式 V1 ¼ ê U 1 id ð Þ; d成立,则输出 M ¼ ê U 2 id ð Þ1; dV2,否则输出错误,表示接收到的密 文并非发给该用户或已损坏。

4.1. 所提方案I的安全性分析

本节包含我们所提密码系统的正确性以及安全性( ID‐USS)的证明。

正确性 下面,我们证明解密算法能够正确运行。我们有:
$$
U1 = r1P; V1 = ̂ ePPub; H(id)^{r1} \quad (4)
$$
$$
U2 = r2P; V2 = ̂ ePPub; H(id)^{r2} \cdot M \quad (5)
$$
And:
$$
U’_1 = r’_1 U1 ; V’_1 = V1^{r’_1}, U’_2 = U2 + r’_2 U1 ; V’_2 = V_2 V_1^{r’_2} \quad (6)
$$
假设:
$$
r’’_1 ≜ r’_1 r_1 ; r’’_2 ≜ r’_2 r_1 + r_2 \quad (7)
$$
然后我们有:
$$
U’_1 = r’’_1 P; V’_1 = ̂ ePPub; H(id)^{r’’_1} \quad (8)
$$
$$
U’_2 = r’’_2 P; V’_2 = ̂ ePPub; H(id)^{r’’_2} \cdot M \quad (9)
$$
在解密阶段,我们将有:
$$
V’_1 = ̂ ePPub; H(id)^{r’’_1} = ̂ er’’_1 sP; H(id) = ̂ er’’_1 P; sQid = ̂ eU’_1; did \quad (10)
$$
$$
̂e U’_2; did^{-1} \cdot V’_2 = ̂e U’_2; did^{-1} \cdot ̂ ePPub; H(id)^{r’’_2} \cdot M = ̂e r’’_1 P; sQid^{-1} \cdot ̂ er’’_1 sP; Qid \cdot M = M \quad (11)
$$
并且解密将被正确执行。

定理1 形式化地表达了上一节中所提出方案的安全性。

定理1. 假设H是一个随机预言机,如果假设 DBDH问题是难以解决的,则任何概率多项式时间攻 击者在ID‐USS实验中对所提方案的优势是可忽略的。

定理1的证明。 我们以算法B作为挑战者和算法 A 作为对手之间的游戏形式,给出所提方案的基于身份 的通用语义安全性的证明。

游戏。 假设算法B获得了一个DBDH问题的实例,即 P, aP, bP, cP, Z,其中Z为ê P; Pð Þabc当 γ= 0成立时, 或当 γ= 1且 γ均匀随机选择时,Z为GT中的一个随机元素。B的目标是通过在ID‐USS游戏中挑战 A来解决DBDH问题。

初始化阶段,B 将公共参数 PP= hP, PPub, Hi 发送 给攻击者 A,其中 PPub= aP,且 H 是一个随机预言机。

H‐查询: A可以在游戏的任何阶段查询随机预言机 H。B使用一个名为Hlist的列表来响应这些查询,并在必 要时向该列表添加新条目。列表中的每个条目都是一个 元组,h身份idi;Qi;bi;cii ∈ 0; 1 { };G;Z p; 0 1 { };。

现在假设A对身份idj发起查询,B将按如下方式响应请求:

如果 idj 已作为 idj, Qj, xj, cj 的条目存在于列表 Hlist 中,则 B 返回该条目的 Qj 作为对 H(idj) 的响应。

否则,B 按照以下步骤进行: (1) 它生成一个随机比特 cj ∈{0, 1},其中 cj = 0 的概 率等于 δ,即 Pr[c = 0]= δ,且 δ 的值对所有查询 是固定的(该值将在我们证明的最后部分讨论并确 定)。 (2) 然后它生成一个随机数 xj ∈Z p,如果 cj = 0 成立,则设 Qj =xjP,但如果 cj = 1 成立,则 设 Qj =xjbP。

(3) 它将元组 hidj,Qj,xj,cj i 添加到列表 Hlist 中, 并返回 Qj 作为对查询 H(idj) 的响应。

阶段1。 此时,A向B查询私钥提取。假设 A查询 idi的私钥。B运行H‐查询应答算法。如果ci= 1,则中 止游戏。否则,设置didi ¼xiPPub并将didi返回给A。A 自适应地重复查询有限次,直到决定阶段1结束。

挑战。 此时, A向B发送两个挑战身份id0,和id1,、 两条等长消息M0,和M1,以及四个加密因子r00,、r 01,、r10,、r11。显然,在阶段1中, A不应对id0,或 id1进行密钥提取查询。B运行H‐查询算法。如果c 0= 0或c1= 0,则它终止游戏。否则,它从列表Hlist中 获取id0,和id1对应的x0,和x1的值。然后生成一个随 机比特γ以及四个随机值r’ 00;r’ 01;r’ 10;r’ 11,接着根 据 γ’确定的排列方式,将以下重加密文本返回给 A:
C’ γ;C’ 1γ:
$$
C’ 0 = \langle r’ {00}cP, Z^{r’ {00} x_0}, r’ {01}cP, Z^{r’ {01} x_0} \cdot M_0 \rangle \quad (12)
$$
$$
C’_1 = \langle r’
{10}cP, Z^{r’ {10} x_1}, r’ {11}cP, Z^{r’_{11} x_1} \cdot M_1 \rangle \quad (13)
$$

阶段2。 A提出更多的密钥提取查询,但限制是 不能对任何身份 id0,id1进行密钥提取查询。B 的响应 方式与阶段1相同。总的密钥提取查询次数为 qE次。

猜测。 现在 A 根据其对 γ′ 的猜测输出 γ′ ′。在此阶段,B 基于其对 γ 的猜测输出 γ′ ′ ′ = γ′ ′⊕γ′。其中, ⊕ 是异或 操作。

首先,我们假设 A在ID‐USS游戏中针对所提方案 的优势是不可忽略的:
$$
Adv_{id-uss}(A) > ε \quad (14)
$$
同样从游戏的解释中我们得到:
$$
Adv_{id-uss}(A) = Pr[γ = γ′′′|Z = ̂ eP; P(abc)] - \frac{1}{2} \quad (15)
$$
根据DBDH假设的定义,我们可知:
$$
AdvDℬB DH = |Pr[γ = γ’’’; Z = ̂ eP; P(abc)] - Pr[γ = γ’’’; Z is random]| \cdot Pr[abort] \quad (16)
$$
从游戏的解释和(16)式可以推断出:
$$
AdvDℬB DH = |\frac{1}{2} Pr[γ = γ’|Z = ̂ eP; P(abc)] - Pr[γ = γ’|Z is random]| \cdot Pr[abort] \quad (19)
$$
其中Pr abort[ ] 表示游戏不中止的概率。如果Z是GT中 的一个随机元素,则算法 A在猜测正确答案上没有优势。因此:
$$
Pr[γ = γ’|Z is random] = 1/2 \quad (20)
$$
因此,由(15)、(19)和(20)可得:
$$
AdvDℬB DH = \frac{1}{2} \cdot Adv_{id-uss}(A) \cdot Pr[abort] \quad (21)
$$
我们知道,B不中止的概率为 δ^{qE} (1−δ)^2,其中 qE是 A查询密钥提取的次数。为了使该概率最大化,δ应等于1−1/(qE +2)。

引理1。 对于qE> 0的所有取值,以下不等式成立:
$$
(1 - \frac{1}{qE + 2})^{qE} (1 - (1 - \frac{1}{qE + 2}))^2 > \frac{1}{e \cdot (2 + qE)^2} \quad (22)
$$
从引理1可以推断出:
$$
Pr[abort] > \frac{1}{e \cdot (2 + qE)^2} \quad (23)
$$
在这个不等式中,e 是自然对数的底数。因此, B 的优势应满足编号为 (24) 的不等式:
$$
Adv_{DBDH}(ℬ) > \frac{ε}{2e \cdot (2 + qE)^2} \quad (24)
$$
其中,qE 是密钥提取查询的次数。因此,可以从 (21) 和 (24) 轻易推导出:
$$
Adv_{id-uss}(A) ≤ 2e \cdot (2 + qE)^2 \cdot ε_{DBDH} \quad (25)
$$

5. 提议方案II

在本节中,我们提出另一种基于身份的通用密码系统, 该系统基于Gentry在[17]中提出的基于身份的加密方 案。Gentry的IBE在标准模型下具有安全性证明,并 且与某些其他类似方案(如[16,26,27])相比具有更紧 密的安全性界限。

所提方案包含五个算法,分别为设置、密钥生成、 加密、重加密和解密。各算法说明如下:

  1. 设置 :设 ê:G G→Gt 是一个双线性映射,其中 G 和 Gt 是素数阶p的循环群,P、Q 是 G 的生成 元, α 是 Zp 中的一个随机元素。该算法输出公共 参数为元组 PP = ⟨G; Gt; p; ê; P; Q; P1⟩ 以供公开, 并输出系统主私钥 α 予以保密。

  2. 密钥生成 :该算法接收用户身份id ∈Zp和主私 钥 α作为输入。然后生成一个随机值r ∈Zp。最后, 它输出用户的密钥如下:
    $$
    \text{PrivateKey} {id} = \langle r, Q {id} \rangle \quad (26)
    $$
    $$
    Q_{id} = \frac{1}{\alpha - id} (Q - rP) \quad (27)
    $$

  3. 加密 :该算法接收明文消息 M∈Gt、接收者身份 id ∈Zp 和系统公共参数,然后生成 r1,r2 ∈Z p,并输 出元组 C = ⟨U1,V1,W1, U2,V2,W2 ⟩ 作为密文,其 中各元素如公式(28)所示。
    $$
    \begin{aligned}
    U_1 &= r_1 (P_1 - idP), & V_1 &= \hat{e}(P, P)^{r_1}, & W_1 &= \hat{e}(P, Q)^{-r_1} \
    U_2 &= r_2 (P_1 - idP), & V_2 &= \hat{e}(P, P)^{r_2}, & W_2 &= \hat{e}(P, Q)^{-r_2} \cdot M
    \end{aligned}
    \quad (28)
    $$

  4. 重加密 :该算法接收到的密文是元组 C = ⟨U1 ,V1 , W1 , U2 ,V2 ,W2 ⟩。该算法生成两个随机值 r’1 ;r’2 ∈Zp 并输出C’ = ⟨U’1;V’1;W’1;U’2;V’2;W’2⟩,其 中各元素如公式(29)所示。
    $$
    \begin{aligned}
    U’_1 &= r’_1 U_1, & V’_1 &= V_1^{r’_1}, & W’_1 &= W_1^{-r’_1} \
    U’_2 &= r’_2 U_1 + U_2, & V’_2 &= V_2^{r’_2}, & W’_2 &= W_2^{r’_2}
    \end{aligned}
    \quad (29)
    $$

  5. 解密 :该算法接收密文 C =⟨U1,V1,W1, U2,V2, W2 ⟩ 和用户 ⟨Qid⟩ 的密钥 r i 作为输入。然后验证 公式(30)是否成立。如果成立,则使用公式(31)对 密文进行解密;否则输出错误符号 ⊥,表示该密文 无效或并非发给该用户的。
    $$
    W_1 \cdot \hat{e}(U_1, Q_{id}) \cdot V_1^r = 1 \quad (30)
    $$
    $$
    M = W_2 \cdot \hat{e}(U_2, Q_{id}) \cdot V_2^r \quad (31)
    $$

5.1. 所提方案II的安全性分析

正确性 下面,我们证明所提方案是正确的。

设密文和重加密后的密文如下:
$$
\begin{aligned}
C &= \langle U_1, V_1, W_1, U_2, V_2, W_2 \rangle \
C’ &= \langle U’_1, V’_1, W’_1, U’_2, V’_2, W’_2 \rangle
\end{aligned}
$$
$$
\begin{aligned}
U’_1 &= r’_1 U_1, & V’_1 &= V_1^{r’_1}, & W’_1 &= W_1^{-r’_1} \
U’_2 &= r’_2 U_1 + U_2, & V’_2 &= V_2^{r’_2}, & W’_2 &= W_2^{r’_2}
\end{aligned}
\quad (32)
$$

假设 r’’1 和 r’’2 如下:
$$
r’’_1 ≜ r’_1 r_1, \quad r’’_2 ≜ r’_2 r_1 + r_2 \quad (33)
$$

因此:
$$
\begin{aligned}
U’_1 &= r’’_1 (P_1 - idP), & V’_1 &= \hat{e}(P, P)^{r’’_1}, & W’_1 &= \hat{e}(P, Q)^{-r’’_1} \
U’_2 &= r’’_2 (P_1 - idP), & V’_2 &= \hat{e}(P, P)^{r’’_2}, & W’_2 &= \hat{e}(P, Q)^{-r’’_2} \cdot M
\end{aligned}
\quad (34)
$$

重新加密后的密文将按如下方式解密:
$$
\begin{aligned}
&W’ 1 \cdot \hat{e}(U’_1, Q {id}) \cdot (V’ 1)^r \
&= W’_1 \cdot \hat{e}(r’’_1 (\alpha P - idP), \frac{1}{\alpha - id} (Q - rP)) \cdot \hat{e}(P, P)^{r’’_1 r} \
&= 1 \quad (35)
\end{aligned}
$$
$$
\begin{aligned}
&M = W’_2 \cdot \hat{e}(U’_2, Q
{id}) \cdot (V’_2)^r \
&= W’_2 \cdot \hat{e}(r’’_2 (\alpha P - idP), \frac{1}{\alpha - id} (Q - rP)) \cdot \hat{e}(P, P)^{r’’_2 r} \
&= M \quad (36)
\end{aligned}
$$

因此该方案是正确的。

安全性 。接下来,我们证明本方案的基于身份的通用 语义安全(ID‐USS)安全需求,该证明基于[17]中提出的 证明。

定理2 。假设 q = qid + 2,其中qid是攻击者发起 的密钥提取请求次数。如果决策性q‐ABDHE假设成 立,则所提方案是ID‐USS安全的。

定理2的证明 。假设A是针对我们方案的基于身份 的通用语义安全的一个攻击者。我们构造一个算法B, 它模拟了一个敌手 A运行的环境。算法B试图利用敌 手 A给出的答案来解决判定性q‐ABDHE问题。接下 来,我们将证明:如果敌手 A对本方案的安全性具有 不可忽略的优势,则算法B在解决判定性q‐ABDHE问 题时也具有不可忽略的优势。根据判定性q‐ABDHE问 题的困难性假设,即任何概率多项式时间算法求解该 问题的优势都是可忽略的,因此我们可以得出结论: 对于任何概率多项式时间攻击者而言,其对本方案安 全性的优势也是可忽略的。

游戏 。算法B用于求解q‐ABDHE,其输入为元组P’; P’ qþ2;P;P1;…;Pq;Z,其中Z的值由一个随机比特 b决定,如果b= 1,则Z = ê(P’ qþ1 , P),否则如果 b= 0,则Z将是Gt中的一个随机元素。这里Pi等于 αiP。

设置 。算法B在群Zp上生成一个q次多项式f(x)。 然后令Q= f(α)P。即使不知道 α,也可以利用P, P1,…, Pq来计算 Q。系统的公共参数将作为元组 ⟨P, Q, P1⟩发 送给攻击者 A。

密钥提取阶段1 。假设攻击者 A正在请求与身份id ∈Zq对应的私钥。如果id= α,换句话说P1 = idP,则算 法B可以为给定的q‐ABDHE问题找到一个解。它可以计 算P q + 1 = αq + 1P,并检查在等式成立的情况下是否满足Z = ̂ e(P’ q + 1 , P),若满足则算法输出b’ = 1,否则输出b’ = 0。然而,如果id ≠α,则算法按如下方式计算F id( x):
$$
F_{id}(x) = \frac{f(x) - f(id)}{x - id} \quad (37)
$$
那么身份id的私钥将是以下元组:
$$
\langle f(id), F_{id}(\alpha)P \rangle \quad (38)
$$
元组是有效私钥这一事实可以通过以下方程来理解:
$$
\begin{aligned}
F_{id}(\alpha)P &= \frac{f(x) - f(id)}{x - id} P \
&= \frac{1}{\alpha - id} (f(\alpha)P - f(id)P) = \frac{1}{\alpha - id} (Q - f(id)P) \quad (39)
\end{aligned}
$$

挑战 。假设攻击者选择了身份 id0,id1、消息 M0, M1 以及加密因子 r00, r01,r10,r11,并将它们传递给算 法B。类似于密钥提取阶段中讨论的情况,如果 id0 或 id1 等于 α,则算法B可以立即解决 q‐ABDHE问 题。因此,我们假设 id ≠α。算法B以与密钥提取阶 段相同的方式为 id0 和 id1 生成两个私钥。这两个私 钥分别为 ⟨r0; Qid1⟩ 和 ⟨r1; Qid0⟩。

设 f’(x) =xq+ 2。我们构造一个q次多项式+ 2如下:
$$
\begin{aligned}
F’ {id0}(x) &= \frac{f’(x) - f’(id0)}{x - id0} = \frac{x^{q+2} - id_0^{q+2}}{x - id_0} \
&= x^{q+1} + id_0x^q + … + id_0^qx + id_0^{q+1} \quad (40)
\end{aligned}
$$
$$
\begin{aligned}
F’
{id1}(x) &= \frac{f’(x) - f’(id1)}{x - id1} = \frac{x^{q+2} - id_1^{q+2}}{x - id_1} \
&= x^{q+1} + id_1x^q + … + id_1^qx + id_1^{q+1} \quad (41)
\end{aligned}
$$

设 P0= α0P= P。算法B 生成四个重加密因子 r’00; r’01; r’10; r’11∈Z q 和一个随机比特 b’’。然后,它将 C’ b’’; C’ 1−b’’ 作为挑战返回给攻击者 A。下文中,F’ id k ;i = id_k^{q+1−i} 是多项式 F’ id k (x) 中项 xi 的系数,且 k,l ∈ {0,1}。
$$
C_k = \langle U_{k0}, V_{k0}, W_{k0}, U_{k1}, V_{k1}, W_{k1} \rangle \quad (42)
$$
$$
U_{kl} = r’ {kl} (f’(\alpha) - f’(id_k))P’ \quad (43)
$$
$$
V
{kl} = Z \cdot \hat{e}\left( \sum_{i=0}^q F’ {id_k,i} P_i, P’ \right)^{r’ {kl}} \quad (44)
$$
$$
W_{k0} = \left( \frac{1}{\hat{e}(U, Q_{id_k}) \cdot V_r} \right)^{r_{k0}} \quad (45)
$$
$$
W_{k1} = M_k \cdot \left( \frac{1}{\hat{e}(U, Q_{id_k}) \cdot V_r} \right)^{r_{k1}} \quad (46)
$$

因此:
$$
\sum_{i=0}^q F’ {id_k,i}P = id_kP_q + … + id_k^qP_1 + id_k^{q+1}P = id_k\alpha^qP + … + id_k^q\alpha P + id_k^{q+1}P = F’ {id_k}(\alpha)P - \alpha^{q+1}P \quad (47)
$$
可以使用 F’ idk;i 和 Pi 计算得出。

密钥提取阶段II 。此阶段与密钥提取阶段I类似。然而,在选择身份时存在另一个限制,即在挑战阶段 中使用过的任何身份都不能被请求用于密钥提取。

猜测 。最后,攻击者A输出其关于b’’的猜测为b’’’。若b’’ = b’’’,则算法B输出其关于b的猜测为b’= 1,否则输出b’= 0。

如果 Z = ê(P’ q+1 , P),则密文中的元素的随 机分布与主方案中的随机分布相同。为了理解这一点, 假设 s = log_P’(F’ {id_k}(\alpha))。根据前面的等式 f’(\alpha) - f’(id_k) = (\alpha - id_k)F’ {id_k}(\alpha),进而:
$$
U_{kl} = r_{kl}s (\alpha - id_k)P \quad (48)
$$
$$
V_{kl} = \hat{e}(P^{q+1}, P’) \cdot \hat{e}\left(P’, \sum_{i=0}^q F’ {id_k,i}P_i\right)^{r {kl}} = \hat{e}(P’, F’ {id_k}(\alpha)P)^{r {kl}} = \hat{e}(P, P)^{sr_{kl}} \quad (49)
$$
因此:
$$
M_k W_{kl} = \hat{e}(U, Q_{id_k}) \cdot (V_r)^{r_{kl}} = \hat{e}(P, Q)^{sr_{kl}} \quad (50)
$$

令 Ω 为由 α、id0, id1,以及密钥提取阶段中所有 被查询的身份组成的集合。若对所有a ∈Ω,f(a)的结 果相互独立,则提取的密钥也将相互独立。因此,若 |Ω| < q+ 2且f是一个系数在Zq中的q次多项式,且这 些系数被独立且均匀随机选择,则所有提取的密钥将 相互独立。因此,我们证明了,如果Z = ê(P’ q+1 , P),则该模拟是完美的。

设X0为当Z = e(Pq + 1, P)时,攻击者 A对 b’’’的猜测正确的事件,X1为当Z是Gt中的随机元素时,攻击者 A对b’’的猜测错误的事件。显然:
$$
Pr[X_0] - Pr[X_1] = Pr[b’ = 1|Z = e(P^{q+1}, P’)] - Pr[b’ = 1|Z∈RGT] ≤ ϵ’ \quad (51)
$$

现在我们将论证,如果 Z 是群 Gt 中的一个随机元素, 则该模拟不会泄露任何关于 b’’ 的信息。挑战密文由一些 元素组成,这些元素依赖于 rk、 α 和 Z,而与 b’ 无关。rk 是私钥中的一个元素,等于 f(idk)。由于多项式 f 的所 有系数都是均匀随机选择的,因此 rk 具有均匀随机分布。α和Z的随机生成保证了Ukl和Vkl具有均匀的随 机分布。令E表示事件Vkl = ∈U (kl )1/ (α−id_k);P (id_k) 对于任意的k,l ∈{0,1}成立。因此:
$$
Pr[E] ≤ \frac{2}{p} \quad (52)
$$

如果事件E不发生,由于r的随机选择,考虑到以下方程, MkW的值将是随机的:
$$
\hat{e}(U_{kl}, Q_{id_b}) \cdot V_{kl}^r = \hat{e}(U, \frac{1}{\alpha - id_k}(Q - rP)) \cdot V_{kl}^r = \hat{e}(U, Q)^{\frac{1}{\alpha - id_k}} \cdot \left( \frac{V_{kl}}{\hat{e}(U, P)^{\frac{1}{\alpha - id_k}}} \right)^r \quad (53)
$$

因此,U、V 和 W 是服从均匀分布的随机值。因 此,关于比特 b’ 的值没有信息泄露。所以:
$$
Pr[X_1|E] = \frac{1}{4} \quad (54)
$$
$$
Pr[X_1] = Pr[X_1|E] Pr[E] + Pr[\overline{X_1}|E] Pr[\overline{E}] ≤ Pr[\overline{E}] + Pr[\overline{X_1}|E] \quad (55)
$$
因此:
$$
Pr[X_1] - Pr[X_1|E] ≤ Pr[E] \quad (56)
$$

假设攻击者 A对方案的安全性具有最大优势,其 运行时间为t,且密钥提取查询次数为qid ,则:
$$
\epsilon = Pr[X_0] - \frac{1}{4} = Pr[X_0] - Pr[\overline{X_1}|E] = Pr[X_0] - Pr[X_1] + Pr[X_1] - Pr[\overline{X_1}|E] ≤ ϵ’ + \frac{2}{p} \quad (57)
$$

算法B模拟环境所需的时间主要取决于计算Fid(α)P所需的时间,其中Fid(x)是一个q次多项式减1。每次 计算需要在G中进行O(q)次标量乘法。总共需要O(q²)次标量乘法。

6. 实现与实验结果

我们使用MIRACL库[28]实现了这两个方案。这些方案已 修改为可与类型3配对一起使用。两种实现均采用BN曲 线(Barreto–Naehrig曲线),并提供相当于AES‐128 的安全性。所使用的编译器是在Linux下运行的g++,且 编译过程针对64位处理器进行了优化。用于测量运行时 间的处理器为Intel 64位Core i7‐2670QM CPU(Intel, 圣克拉拉,加利福尼亚州,美国),主频为2.20 GHz × 4。

表I. 两个提出方案的算法的运行时间(毫秒)。
基于方案的
Boneh–Franklin IBE
Gentry IBE

表I中的运行时间显示,基于Boneh–Franklin IBE的第一个方案在重加密算法上的运行时间显著更低。在大多数应用中,重加密算法在整个系统整体效率中起着最重要的作用。值得一提的是,基于 Gentry的IBE的方案在加密算法上表现出相对更高的性能,这是由于在幂运算中使用了预计算。

7. 结论

从IND‐ID‐CPA安全性和ANON‐ID‐CPA安全性的定义可以很容易地推导出,基于身份的通用语义安全方案具有这些安全属性。因此,我们提出的方案是 IND‐ID‐CPA安全和ANON‐ID‐CPA安全的。然而需要指出的是,由于我们提出的方案具有式(58)所表达的同态性质,它们并不具备IND‐ID‐CCA安全(有关安全属性的定义参见[17])。
$$
E_{ID}(M_0) \cdot E_{ID}(M_1) = E_{ID}(M_0 \cdot M_1) \quad (58)
$$

通过使用通用密码系统,可以在不知道接收者公 钥的情况下进行重加密。我们将Golle 等人提出的通 用密码系统和通用语义安全性推广到基于身份的密码 学中,并提出了两种此类密码系统。这些密码系统主 要适用于证书分发和公钥基础设施部署成本较高的场 景。第一个所提方案在基于Boneh–Franklin IBE的论文在计算和通信方面 更高效,而第二种方案在标准模型下具有安全性证明, 并享有更紧的安全界限。

内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值