基于向量承诺的紧凑群签名撤销

使用向量承诺的可撤销群签名与紧凑撤销列表

沙希达图尔·萨迪亚(B)和中西彻
日本广岛市东广岛,广岛大学信息工程系
{d152447,t‐nakanishi}@hiroshima‐u.ac.jp

摘要

群签名允许任何群成员对消息进行匿名签名。其中一个重要的问题是高效的成员撤销。利伯特等人提出的方案实现了 O(1)的签名和会员证书大小,O(1)的签名和验证时间,以及 O(log N)的公钥大小,其中 N 是成员总数。然而,由于撤销列表(RL)中包含 O(R)个签名,其中 R 是已撤销成员的数量,导致撤销列表(RL)数据量较大。中西等人提出的方案实现了紧凑的撤销列表,大小为 O(R/T)个签名,适用于任意整数 T。然而,该方案将会员证书大小增加了 O(T)。本文通过使用 vector commitment 压缩撤销条目,将撤销列表大小缩减至 O(R/T),同时保持 O(1)的会员证书大小不变,从而扩展了利伯特等人提出的方案。

关键词 :隐私 · 群签名 · Revocation · Vector 承诺

1 引言

在群签名方案中,群成员可以代表群组对消息进行匿名签名。存在两种类型的权威机构:一种是将用户加入群组的群管理员(GM),另一种是必要时可以从签名中识别出签名者的开启者。群签名方案中的一个重要功能是撤销,即取消用户对消息的签名权限。这是一个关键问题,已得到广泛研究。

最近,利伯特等人[7]提出了一种基于纳奥尔等人的广播加密框架的可扩展方案[10],其中 O(1)签名大小、O(1)签名/验证开销、O(1)会员证书大小,以及 O(log N)公钥大小均得到了实现。然而,该方案在撤销列表(RL)大小方面仍需改进。在该方案中,RL 包含对所有授权用户子集的签名,这些子集由子集差分(SD)方法生成。在最坏情况下,签名数量达到 2R − 1。作为签名,使用了具有7个群元素的AHO签名。因此,在128位安全的情况下,RL 大小为 900R 字节或更大。由于签名者需要在每个吊销周期获取 RL,较大的大小将在移动环境中造成延迟。

有研究致力于减小 RL 大小。中西等人提出了一个[9]使用累加器实现紧凑 RL 的方案 T。在该方案中,由于群管理员对 SD 子集进行累加并对累加值进行签名,签名数量减少了 1/T,且 RL 大小为 O(R/T)。然而,当 T 增大时,公钥大小和会员证书大小也随之增加。另一种方案由阿特拉帕东等人提出[2],该方案通过采用基于身份的撤销(IBR)方法使 RL 大小保持恒定。然而,作为权衡,会员证书大小和签名成本在最坏情况下为 O(R)。

本文中,我们提出了一种具有紧凑撤销列表的可撤销群签名方案。类似于 [9],我们将子集划分为若干个块,并使用向量承诺[8]对其进行压缩。由于该压缩方式比累加器更简单,因此可将撤销列表大小减小至 O(R/T),公钥大小减小至 O(T + log N),同时保持会员证书大小为 O(1)。

2 预备知识

这里,我们介绍所提出的可撤销群签名方案中使用的密码学原语和证明系统。

2.1 双线性映射

我们在系统中使用双线性群和双线性映射,其中 G 和 GT 是阶为 p 的乘法循环群,g 是 G 的随机选取生成元,且 e: G × G → GT 是一个可计算的双线性映射,具有以下性质:

  • 双线性性 :对于所有 u, v ∈ G 和 a, b ∈ Z, e(ua, vb) = e(u, v)ab。
  • 非退化性 :e(g, g) ≠ 1GT,其中 1GT 是 GT 的单位元。

2.2 复杂性假设

此外,[7],我们所提出系统的安全性基于 DLIN 假设(判定线性)[3]、q‐SDH(强 DH)假设[4]、n‐FlexDHE 假设[11]、n‐DHE 假设[5] 以及 q‐SFP(同时灵活配对)假设[1]。

定义1(DLIN假设) 。对于所有 PPT 算法 A,概率
Pr[A(g, g a, g b, g ac, g bd, g c+d)= 1] − Pr[A(g, g a, g b, g ac, g bd, g z)= 1]
可以忽略不计,其中 g ∈R G 和 a, b, c, d, z, ∈R Z p。

定义2(q‐SDH假设) 。对于所有 PPT 算法 A,其概率
Pr[A(g, g a ,…, g a q )=(b, g 1/(a+b) ∧ b ∈ Z p)]
可以忽略不计,其中 g ∈ R G 和 a ∈ R Z p。

定义3 n‐FlexDHE假设 。对于所有 PPT 算法 A,该概率
Pr[A(g, ga 1,…, ga n, ga n+2,…, ga 2n)=(gμ, gμa n+1, gμa 2n) ∈(G{1G}) 3]
对于某些 μ ∈ Z∗ p,其中 g ∈R G 和 a ∈R Zp,该值可以忽略不计。

定义4(n‐DHE假设) 。对于所有 PPT 算法,其概率
Pr[A(g, ga,…, ga n, ga n+2,…, ga 2n)= ga n+1]
可以忽略不计,其中 g ∈R G 和 a ∈R Zp。n‐FlexDHE 假设强于 n‐DHE 假设,即前者蕴含后者。

定义5 (q‐SFP假设) 。对于所有 PPT 算法,概率
Pr
⎡ ⎢⎣ A(gz, hz, gr, hr, a, a˜, b, b˜,{(zj, rj, sj, tj, uj, vj, wj)} q j=1)
=(z∗, r∗, s∗, t∗, u∗, v∗, w∗) ∈ G7 ∧ e(a, a˜)= e(gz, z∗)e(gr, r∗)e(s∗, t∗)∧ e(b, b˜)= e(hz, z∗)e(hr, u∗)e(v∗, w∗)∧ z∗ ≠ 1G ∧ z∗ ≠ zj for all1 ≤ j ≤ q
⎤ ⎥⎦
是可忽略的,其中 (gz, hz, gr, hr, a, a˜, b, b˜) ∈ G8 以及所有满足上述关系的元组 {( zj, rj, sj, tj, uj,vj, wj)} q j=1)。

2.3 AHO 结构保持签名

在之前的系统中[7],AHO 签名[1]被用作结构保持签名,其中签名的知识可以通过以下格罗斯‐萨哈伊(GS)证明来证明。AHO 签名允许我们对多个元素进行签名,从而获得具有常数大小的签名。

AHO 密钥生成 :选择具有素数阶 p 的双线性群 G, GT 以及一个双线性映射 e。选择 g, Gr, Hr ∈ G 和 μz, νz, μ1,…, μk, ν1,…, νk, αa, αb ∈R Z p。计算 Gz= Gμ z r, Hz= Hν z r, G1= Gμ 1 r,…, Gk= Gμ k r, H1= Hν 1 r,…, H=Hν k r, A= e(Gr, g α a),B= e(Hr, g α b)。输出公钥为 pk=(G, GT,p, e, g, Gr, Hr, Gz, Hz, G1,…, Gk, H1,…, Hk, A, B),私钥为 sk=(αa, αb, μz, νz, μ1,…, μk, ν1,…, νk)。

AHOSign : 给定一个消息向量(M1,…, Mk) ∈ G k 以及 sk,选择 β, ε, η, ι, κ ∈R Z p,并计算 θ1= g β,以及
θ2= g ε−μ z β ∏ k i=1 M −μ i i , θ3= G η r , θ4= g(αa −ε)/η, θ5= g ι−ν z β ∏ k i=1 M −ν i i , θ6= H κ r , θ7= g (αb −ι)/κ.
输出签名 σ=(θ1,…, θ7)。

AHO 验证 :给定一个消息向量 (M1,…, Mk) ∈ Gk 和签名 σ=(θ1,…, θ7),如果以下方程成立,则接受这些输入:
A= e(Gz, θ1)· e(Gr, θ2)· e(θ3, θ4)·∏k i=1 e(Gi, Mi),
B= e(Hz, θ1)· e(Hr, θ5)· e(θ6, θ7)·∏k i=1 e(Hi, Mi).
该签名在 q‐SFP 假设下对选择消息攻击是存在不可伪造的[1]。

[1]中的重随机化算法允许我们对 AHO 签名进行公开随机化,以获得关于相同消息向量的另一个签名 (θ1′,…, θ7′)。在该随机化签名的 GS 证明中,(θ′ i)i=3,4,,7 可以被揭示,但 (θ′ i)i=1,2,5 是被承诺的,如[7]所示。

2.4 GS 证明

为了证明双线性映射关系中的秘密知识,我们使用 Groth‐Sahai(GS)证明[6]。我们采用基于 DLIN 假设的实例化。GS 证明需要一个公共参考字符串(CRS)(f1, f2, f3) ∈ G3 用于 (f1,1, g),f2=(1, f2, g),其中 f1, f2 ∈ G。对于元素 X ∈ G,其承诺为 C=(1,1, X) · fr 1 · fs 2 · ft 3,其中 r, s, t ∈R Z∗ p。在完全可靠证明中,公共参考串为 f3= f ξ1 1 · f ξ2 p。在见证不可区分性情况下,f1, f2, f3 是线性无关的。

对于指数值 x ∈ Zp,承诺为 C= f˜ x · f r 1 · f s 2,其中 ˜ ˜r, s ∈R Z ∗ p 以及公共参考串 f, f1, f2。在完全可靠证明中,f, f1, f2 是线性无关的(我们可以对 f3= f ξ 1 ξ 2 f˜= f3 ·(1,1, g))。在见证不可区分性的情况下,f˜= f ξ 1 ξ 2

使用 GS 证明,证明者可以证明配对积方程的集合:
∏ n i=1 e(Ai, Xi)·∏ n i=1∏ n j=1 e(Xi, Xj) ai j= t,
对于秘密变量 X1,…, Xn ∈ G 和公开常数 A1,…, An ∈ G, aij ∈Zp, t ∈ GT。此外,我们还可以证明多指数方程:
∏ m i=1 Ayi i ·∏ n j=1 X b j j ·∏ m i=1∏ n j=1 Xyi γ i j j = T,
对于秘密变量 X1,…, Xn ∈ G, y1,…, ym ∈ Z p 和公开常量 T, A1,…, Am ∈ G, b1,…, bn, γij ∈ Z p。

2.5 向量承诺

我们采用一种称为向量承诺[8]的原语,其中对多个值的向量进行承诺,并且该承诺可以在特定坐标处打开。通常情况下,承诺是随机化的以实现隐藏性。然而,如[7]所示,我们使用非随机化版本,因为我们仅需要绑定性质。该承诺的公钥为 pkvc=(g1,…, gn, gn+2,…, g2n),其中 gi= g γ i 对于每个 γ ∈R Zp。为了对向量 →−m=(m1,…, mn) ∈ Zn p 进行承诺,承诺者计算 C=∏n κ=1 gmκ n+1−κ。
单个群元素 Wi= ∏n κ=1,κ≠i g mκ n+1−κ+i 提供了证据,表明 mi 是 i‐th 分量 →−m。
它满足验证关系 e(gi, C)=e(g, Wi) · e(g1, gn)mi。无法为某个坐标 i 对两个不同消息打开承诺的安全性依赖于 n‐FlexDHE 假设或 n‐DHE 假设(参见定理1的证明概要)。

3 可撤销群签名的语法与安全性

如[7]中所述,我们定义可撤销群签名。

3.1 语法

可撤销群签名方案的算法和协议如下。

建立算法 :给定一个安全参数 λ ∈ N、群成员的最大数量 N ∈ N 和一个划分参数 T ∈ N,该算法生成一个群公钥 Y、群管理员(GM)的密钥 SGM 以及开启者的私钥 SOA。该算法初始化一个包含集合数据结构 Stusers= φ 和字符串数据结构 Sttrans= ε 的公共状态 St。

加入协议 :该交互式协议在群管理员(GM)和潜在的群成员 u 之间进行。共同输入为 Y。结果是,该成员获得一个会员密钥 secu 和一个会员证书 certu。GM 使用 Stuser= Stuser ∪{u} 和 Sttrans= Sttrans‖ . 在数据库中更新 St。

撤销算法 :该算法由群管理员(GM)运行。输入为 Y 和被撤销用户的集合 Rt。该算法允许 GM 为新的吊销周期 t 生成更新的撤销列表 RLt。

签名算法 :该算法由 u 运行。输入为 t,RLt, certu, secu 以及消息 M,若 u ∈Rt 成立,则输出 ⊥;否则输出签名 σ。

验证算法 :该算法由验证者运行。给定 σ, t, RLt, M, Y,若签名有效且未被撤销,则此确定性算法输出1,否则输出0。

打开算法 :该算法由开启者运行。给定 St,SOA, M 以及针对吊销周期 t 关于 Y 的有效签名 σ,它输出 u ∈ Stusers ∪{⊥},即作为群成员的身份 u 或打开失败。

3.2 安全性

可撤销群签名方案中有三个安全要求。第一个是抗错误识别攻击安全性。该要求意味着攻击者无法计算出一个群签名,使得打开算法识别出的成员在已腐败但未被撤销的成员之外。第二个是抗诬陷攻击安全性,这意味着即使除该成员外的所有人都(包括群管理员)共谋,诚实成员也不会被追溯到其未签发的签名。第三个是匿名性,即签名的匿名性和不可链接性。形式化定义见[7]。

4 先前的方案

在本节中,我们将解释利伯特等人[7]提出的可撤销群签名,并讨论其存在的遗留问题。在[7]方法中,采用子集差分(SD)方法,如图1所示。在二叉树中,群成员被分配到叶子节点。每个节点 v 通过一个整数的标识符 ID(v) 进行索引。当一个用户成为群组成员时,群管理员(GM)会为其颁发一个签名证书,该签名包含从根到用户叶子的路径上的节点 ID,即 (I1,…, I),其中 表示树的层级。

在 SD 方法中,未撤销用户被划分为不相交子集(子树),其中子集 Si 由主节点 Pi(子树的根节点)和次节点 Si(Pi 的后代)定义。该子集 Si 包含以 Pi 为根的子树的所有叶子节点,但排除以 Si 为根的子树的叶子节点。Pi 和 Si 的层级分别表示为 φi 和 ψi。

在图1的示例中,具有 ID(v) = 8 用户由路径 (I1, I2, I3, I4)=(1,2,4,8) 区分。该 S1 用户包含在以 P1 为根的子集中,但不包含在以 S1 为根的子集中。

对于每次撤销,群管理员都会更新一个撤销列表 RL,其中包含所有子集条目的签名数据集 Ri=(φi, ψi,ID(Pi),ID(Si))。用户在生成群签名时,会获取包含其叶节点的子集的撤销数据,并证明 ID(Pi) = Iφi 和 ID(Si) ≠ Iψi 以证明其未被撤销。该关系表示其叶节点 v 在层级 φi 上与 Pi 相连,但在层级 ψi 上不与 Si 相连,这意味着 u 位于以 Pi 为根的子树中,但不在以 Si 为根的子树中。该证明以零知识证明的方式完成,以确保匿名性。

该方案的问题在于 RL 的大小。我们有 m ≤ 2R−1[7]。每个条目都由 GM 使用 AHO 签名进行签名。此外,一个 AHO 签名包含7个双线性群元素。对于 R= 10,000,在128位安全下签名的大小可能约为8 MB。签名者需要在每个撤销周期获取庞大的 RL,这将在移动环境中造成延迟。

示意图0

5 所提出的方案

5.1 构造思想

所提出的方案是从先前的方案[7]扩展而来。在先前的方案中,群管理员对撤销列表中的每一项(φi、ψi、ID(Pi)、ID(Si))进行签名。而在所提出的方案中,使用向量承诺[8]对条目中每种类型的多个元素进行压缩后再签名。例如,ID(P1)⋯⋯ID(Pn) 被划分为每块包含 T 个元素的块,如 ID(P1)⋯⋯ID(PT),每个元素块被累积到一个向量承诺中。通过这种累积方式,撤销列表中需要签名的条目数量减少为 m/T。

在[7]中,签名者仅检索包含其叶节点 v 的子树的 (φi, ψi,ID(Pi), ID(Si))。在所提出的方案中,由于我们采用了向量承诺,签名者必须证明向量承诺的正确打开。验证需要 gj 的正确性,以表明第 j 个分量被正确打开。因此,所有 gj 均由群管理员签名,且签名者通过 gj 签名的 GS 证明来证明 gj 的正确性。此外,我们需要证明 gφ 与 g φ 1 兼容,gψ 与 g ψ 1 兼容,因为我们需将 g φ 1 和 g ψ 1 映射到其对应的公共参数 gφ 和 gψ。因此,我们预先准备了 (g φ ψ 签名者使用这些签名的 GS 证明来证明该映射关系。

5.2 构造

建立算法(λ, N, T) : 给定安全参数 λ ∈ N、整数 对应的允许用户数量 N= 2−1,以及用于划分的元素个数 T,执行以下步骤,其中步骤 5 和步骤 6 是在先前的方案[7]基础上新增的。

  1. 选择一个素数阶双线性群 (G, GT),其生成元为 g ←R− G。
  2. 定义 δ0= 1, δ1= 2, δ2= 2, δ3= 5。生成四对密钥 (sk(d) AHO,pk (d) AHO),d ∈{0, 1, 2, 3} 用于 AHO 签名,以分别对包含 {δd} 3 d=0 个群元素的消息进行签名。
  3. 生成向量承诺的 n 维公共参数 pkvc=(g1,…, gn, gn+2,…, g2n) ∈ G 2n−1,其中 n= max(, T)。
  4. 为 GS NIWI 证明生成 CRS:选择 f=(f1, f2, f3) ∈ G3 和 f˜ ∈ G,其中 f1=(f1, 1, g),f2=(1, f2, g),f3= fε1 1 · fε2 2 满足 f1= gβ1,f2= gβ2 ←R− G 和 β1, β2, ε1, ε2 ←R− Z∗ p。设 f˜= f3 ·(1, 1, g)。
  5. 使用 sk(0) AHO,对消息 gj 生成 AHO 签名为 σgj=(θj,1,…, θj,7),适用于所有 1 ≤ j ≤ T。
  6. 使用 sk(1)AHO,对 (gτ, gτ 1) 这一对生成 AHO 签名为 σ˜τ=˜ ˜(θτ,1,…, θτ,7),适用于所有 1 ≤ τ ≤ 。
  7. 选择 (U, V) ←R− G2,其将与生成元 f1, f2, g ∈ G 一起构成公钥加密密钥。
  8. 选择一个强不可伪造的一次性签名 Σ=(G, S, V)。
  9. 将 SGM:=({sk(d) AHO}d∈{0,1,2,3}) 和 SOA:=(β1, β2) 分别设为群管理员和开启者的私钥,并将群公钥设为
    Y:=(g, N, , T,{pk(d) AHO}3d=0,pkvc, f, f˜,(U, V),Σ,{σgi} T i=1,{σk} k=1).

加入协议 :群管理员和一个加入的用户 u 运行以下交互协议[Juser(λ, Y),JGM(λ, St, Y, SGM)],该协议与[7]相同。

  1. Juser 选择 x ←R− Zp,计算 X= gx 并将 X 发送给 JGM。如果 X ∈ G 已存在于数据库 Sttrans 中,则 JGM 停止并返回 ⊥ 给 Juser。
  2. JGM 为 u 在树中分配一个可用的叶子节点 v,其标识符为 ID(v)。从根到 v 路径上对应的一系列标识符为 I1= 1,…, I=ID(v) ∈{N,…, 2N −1}。然后 JGM 执行以下操作:
    a. 对向量 (I1,…, I) 进行承诺,得到 Cv=∏ κ=1 g Iκ n+1−κ。
    b. 使用 sk(2)AHO,生成一个 AHO 签名 σCv=(ϑ1,…, ϑ7),作用于数对 (X, Cv) ∈ G 2,以将 Cv 绑定到用于标识 u 的值 X。
  3. JGM 将 ID(v) 和 Cv 发送给 Juser,若其中任一值被发现不正确,则 Juser 停止运行。否则,Juser 发送一个对 X‖(I1,…, I) 的普通签名 sigu。
  4. JGM 检查该签名是否有效。若无效,则 JGM 中止;否则,JGM 返回 σCv 给 Juser,并将转录信息 u=(X, Cv, σCv , sigu) 存储在 Sttrans 中。
  5. Juser 将会员证书定义为 certu=(ID(v) X, Cv, σCv) ∈{N,…, 2N−1}×G 9。会员密钥 secu 定义为 secu= x ∈ Z p。

Revoke(Y,SGM, t,Rt) : 解析 SGM:={sk(d) AHO}d∈{0,1,2,3} 并执行以下操作。

  1. 使用 SD 方法,找到未撤销用户的子集 S1,…, Sm 的一个覆盖,并令 φi 和 ψi 分别为子集 Si 的主节点(Pi)和次节点(Si)的层级。这些节点的 ID 分别为 ID(Pi) 和 ID(Si)。定义向量 →−Φ, →−Ψ, →−P, 和 →−S 的元素如下。
    →−Φ=(φ1,…, φi,…, φm) →−P=(ID(P1),…, ID(Pi),…, ID(Pm))
    →−Ψ=(ψ1,…, ψi,…, ψm) →−S=(ID(S1),…, ID(Si),…, ID(Sm))

  2. 对于 Ω=⌈m/T⌉,将 S1,…, Sm 划分为包含 T 个元素的 Ω 个序列:
    →−S 1=(S1,…, ST) →−S 2=(ST+1,…, S2T)…,→−S Ω=(S(Ω−1)T+1,…, Sm)。Φ 的元素被划分为 →−Φ 1=(φ1,…, φT) →−Φ 2=(φT+1,…, φ2T)…,→−ΦΩ=(φ(Ω−1)T+1,…, φm)。类似地,得到划分 (→−Ψ 1,…,),(→−P 1,…,) 和 (→−S 1,…,)。

  3. 我们使用向量承诺,将每个元素的分区压缩为 o:
    C→−Φ k =∏T j=1 g φ(k−1)T+j n+1−j , C→−Ψ k =∏T j=1 g ψ(k−1)T+j n+1−j ,
    C→−P k =∏T j=1 g ID(P(k−1)T+j) n+1−j , C→−S k =∏T j=1 g ID(S(k−1)T+j) n+1−j ,
    对于所有 1 ≤ k ≤Ω。

  4. 使用 sk(3)AHO,对 (t, C→−Φ k ,C→−Ψ k , C→−P k , C→−S k) 为 1 ≤ k ≤Ω 生成 AHO 签名 σRLk=(Θk,1,…,Θk,7),其中 t ∈ Zp 为时期编号。
    返回撤销列表
    RLt=(t,Rt,{C→−Φ k , C→−Ψ k , C→−P k , C→−S k} Ω k=1,{σRLk=(Θk,1,…,Θk,7)} Ω k=1).

Sign(Y, t, RLt, certu, secu, M) : 如果 u ∈ Rt,则返回 ⊥。否则,为了对 M ∈{0, 1}∗ 进行签名,生成一个一次性签名密钥对 (SK, VK) ← Gλ。将 certu 解析为 (ID(vu) X, Cvu, σvu) ∈{N,…, 2N − 1}× G 9,并将 secu 解析为 x ∈ Zp。根据先前的方案[7] 执行以下步骤,其中添加了步骤 1、2 和 3。

  1. 使用 RLt,找到包含子集 Si 的向量承诺 (C→−Φ k , C→−Ψ k , C→−P k , C→−S k),其中用户的叶节点 vu 位于该子集中。在承诺 C→−Φ k 中,假设第 j˜ 个分量包含 φi,即 i= (k − 1)T+ j˜。对于 C→−Ψ k、C→−P k 和 C→−S k 也类似处理。定义 φk、j= φi、ψk、j= ψi、Pk、j=Pi、Sk、j=Si。设置 (R1, R2, R3, R4, R˜1, R˜2)=(g φk, ˜ j 1, g ψk, ˜ j 1, g ID(Pk,j˜ 1 ), g ID(Sk,j˜ 1 ), gφk,j˜, g ψk,j˜),并设置 (ϕ0, ϕ2n, ϕ˜0, ϕ˜2n)=(g ID(Pk,j˜), g ID(Pk,j˜ 2n ), g ID(Sk,j˜), g ID(Sk,j˜ 2n ))。计算所有这些元素的 GS 承诺。然后,计算这些向量承诺的见证:
    W→−Φ k =∏ T j=1,j≠j˜ g φ k, j n+1−j+j˜ , W→−Ψ k =∏ T j=1,j≠j˜ g ψ k, j n+1−j+j˜ ,
    W→−P k =∏ T j=1,j≠j˜ g ID(Pk, j) n+1−j+j˜ , W→−S k =∏ T j=1,j≠j˜ g ID(Sk, j) n+1−j+j˜ ,
    满足以下等式。
    e(g˜ j , C→−Φ k )= e(R1, gn)· e(g, W→−Φ k ), e(g˜ j , C→−Ψ k )= e(R2, gn)· e(g, W→−Ψ k ), (1)
    e(g˜ j , C→−P k )= e(R3, gn)· e(g, W→−P k ), e(g˜ j , C→−S k )= e(R4, gn)· e(g, W→−S k ). (2)
    e(R3, g)= e(g1,ϕ0), e(ϕ2n, g)= e(g2n,ϕ0). (3)
    e(R4 , g)= e(g1 , ϕ˜0) , e(ϕ ˜2n , g)= e(g2n , ϕ˜0) . (4)
    为了证明上述打开关系,承诺 g˜ j , C→−Φ k , C→−Ψ k , C→−P k , C→−S k ,W→−Φ k , W→−Ψ k , W→−P k , W→−S k,并计算 (1)–(4) 的 GS 证明作为 πSi。

  2. 为了证明 gj˜ 是正确的,对 gj˜ 上的 AHO 签名 σgj˜ 进行重随机化,得到 (θj′˜, 1,…,θj′˜,7),承诺 {θj˜,i}i={1,2,5} 并按如下方式计算 GS 证明:
    A(0)=e(G(0) z, θ′ j˜,1)· e(G(0) r, θ′ j˜,2)· e(θ′ j˜,3, θ′ j˜,4)· e(G(0), gj˜),
    B(0)=e(H(0) z, θ′ j˜,1)· e(H(0) r,θ′ j˜,5)· e(θ′ j˜,6, θ′ j˜,7)· e(H(0), gj˜).
    我们用 πgj˜ 表示上述证明。

  3. 为了证明 gφk , j˜ 1 (分别地,gψk , j˜ 1)与 gφk,j˜(分别地,gψk,j˜)兼容,对于 τ ∈{φk,j˜, ψk,j˜},对 (gτ 1, gτ) 上的 AHO 签名 σ˜τ 进行重随机化,得到 ˜ ˜ ˜(θ′ τ,1,…,θ′ τ,7),承诺 {θτ,ι}ι={1,2,5},并计算以下内容的 GS 证明:
    A(1)= e(G(1) z, θ˜′ τ,1)· e(G(1) r, θ˜′ τ,2)· e(θ˜′ τ,3, θ˜′ τ,4)· e(G(1) 1, gτ 1)· e(G(1) 2, gτ),
    B(1)= e(H(1) z, θ˜′ kτ,1)· e(H(1) r, θ˜′ τ,5)· e(θ˜′ τ,6, θ˜′ τ,7)· e(H(1) 1, gτ 1)· e(H(1) 2, gτ),
    ˜ ˜ 对于 τ ∈{φk,j˜, ψk,j˜},其中 R1= gτ 和 R1= gτ(分别对应 R2= gτ,R2= gτ)适用于 τ= φk,j˜(分别对应 τ= ψk,j˜)。我们将上述证明记为 πlvl。

  4. 证明签名者是子集 Si 中具有 i=(k−1) 的未被撤销的用户 T+ j˜,提交 Cv,并执行以下操作,这与[7] 相同。
    a. 为了证明 Iφk,j˜ = ID(Pk,j˜),计算 Wφk,j˜ = ∏ l=1,l≠φk,j˜ g Il n+1−l+φk,j˜ 使其满足等式 e(gφk,j˜, Cv)= e(g1, gn) Iφk, j˜ · e(g, Wφk,j˜)。然后,对 Wφk,j˜ 进行承诺,并通过 GS 证明对此进行证明:
    e(R ˜1, Cv)= e(R3, gn)· e(g, Wφk,j˜) .
    我们用 πeq 表示上述证明。
    b. 为了证明 Iψk,j˜ ≠ ID(Sk,j˜),计算满足等式 e(gψk,j˜, Cv)= e(g1, gn) Iψk, ˜ = ∏ l=1,l≠ψk,j˜ g Il n+1−l+ψk,j˜。然后,对 Wψk,j˜ 和群元素 (Γ, ψ0, ψ1, ψ2n)=(g 1/(Iψk,j˜ −ID 1 (Sk,j˜)), g Iψk, ˜ j, g Iψk, ˜ j 1 , g Iψk, ˜ j 2n ) 进行承诺,并计算以下内容的 GS 证明:
    e(R ˜2, Cv)= e(ψ1, gn)· e(g, Wψ k, ˜ j) , e(ψ1/R4, Γ)= e(g1, g1), e(ψ1, g)= e(g1, ψ0), e(ψ2n, g)= e(g2n, ψ0),
    我们用 πneq 表示上述证明。

  5. 为了证明 (E1, E2, E3, E4, E5)=(t, C→−φ k , C→−ψ k , CID( →−P k), C ID( →−S k)) 是从 RLt 导出的,需对 AHO 签名 σRLk 进行重随机化得到 (Θ′ 1 ,…,Θ′ 7),并计算对 {Eτ} 5 τ=2 和 {Θj}j∈{ 1,2,5} 的承诺。然后生成一个 GS 证明 πRL 来证明
    A(3)= e(G(3) z ,Θ′ 1)· e(G(3) r ,Θ′ 2)· e(Θ ′ 3 ,Θ′ 4)· e(G (3) 1 , g t )·∏ 5 τ=2 e(G (3) τ, Eτ),
    B(3)= e(H(3) z ,Θ′ 1)· e(H(3) r ,Θ′ 5)· e(Θ ′ 6 ,Θ′ 7)· e(H (3) 1 , g t )·∏ 5 τ=2 e(G (3) τ, Eτ).

  6. 重新随机化 AHO 签名 σCv 为 (θ1′,…, θ7′),并计算对 X,{θ′ j}j∈{1,2,5} 的承诺集合。然后,生成 GS 证明 πCv 以证明:
    A(2)= e(G(2) z, ϑ′1)· e(G(2) r, ϑ′2)· e(ϑ′3, ϑ′4)· e(G(2) 1,X)· e(G(2) 2, Cv),
    B(2)= e(H(2) z, ϑ′1)· e(H(2) r,ϑ′5)· e(ϑ′6, ϑ′7)· e(H(2) 1,X)· e(H(2) 2, Cv).

  7. 以下步骤与[7]中的相同。使用 VK 作为标签,对 X 进行基于标签的加密,记为 Υ。

  8. 生成一个 GS 证明以证明对 X 的知识,记为 πX,如[7]所示。
  9. 计算一个关于 VK 和对 σVK 的承诺的弱安全 Boneh‐Boyen 签名 σVK= g1/(x+VK)。然后生成一个关于 σVK 验证的 GS 证明 πσVK。
  10. 计算一次性签名 σots= S(SK, (M, RLt,Υ,Ω, com,Π)),其中 Ω 包含重新随机化的第 ι 个分量 σgj˜, σφi, σψi, σRLk, σCv,对应于 ι= 3,4,6,7。com 包含所有承诺,而 Π 包含所有 GS 证明。
    返回签名 σ=(VK Υ,Ω,承诺集合, Π, σots).

验证算法(σ, M, t, RLt, Y) : 如果 σ 中的一次性签名验证无效,或者基于标签的加密未正确形成,则返回 0。若所有 GS 证明均正确通过验证,则返回 1;否则返回 0。

打开算法(M, t,RLt, σ,SOA, Y, St) :如果验证算法(σ, M, t,RLt, Y) = 0,则返回 ⊥;否则,解密 Υ 以获得 ˆX,并在数据库 Strans 中查找记录 〈u, ˆ transcriptu=(Xu, ID(vu) Cvu, σvu, sigu)〉,使得 Xu= X 成立。若在 Strans 中不存在此类记录,则返回 ⊥;否则,返回 u。

5.3 安全性讨论

这里由于篇幅限制,我们仅展示针对错误识别攻击安全性的证明概要。针对框架攻击和匿名性的安全性证明与先前的方案[7]类似。

定理1 . 该方案在假设 q-SFP 和 n-FlexDHE 问题均难解的情况下,能够抵御误识别攻击。

证明概要 。该证明源自[7]。假设攻击者 Amis 输出一个非平凡的签名 σ∗,该签名无法打开至未被撤销且由攻击者控制的群成员。根据伪造签名 σ∗ 中可提取承诺的上下文,类似于[7],我们将以下情况分类:(a) 证书 σv u , σg ˜ j, σφi, σψi, σRLk 的伪造,(b) C→−Φ k ,C→−Ψ k , C→−P k , C→−S k 的错误打开,以及 (c) Iφk, ˜ j ≠ID(Pk,j˜) 或 Iψk, ˜ j =ID(Sk,j˜),原因在于 Cv 的错误打开。

如[7]所述,如果 (a) 中的任何签名被伪造,则意味着对 AHO 签名的伪造,这与 q‐SFP 假设矛盾。因此,我们接下来考虑所有 AHO 签名均被正确生成,但 (b) 中向量承诺的任何打开操作被不当执行的伪造情况。在这种情况下,σ∗ 提供了满足公式 (1)–(4) 的被承诺值。然后,我们可以利用 Amis 构造一个针对 n‐DHE 或 n‐FlexDHE 问题的攻击者 ADHE 或 AFlexDHE。由于有效的 AHO 签名 σφ 和 σψ 已被签发,该攻击者知道值 φ、ψ ∈{1,…, },使得 R1=g1φ 且 R2= g1ψ 成立。类似地,(1) 和 (2) 中 gj˜ 的正确性由其上的 AHO 签名 σgj˜ 保证。因此,如同[7] 的证明(即 Cv 中 ID(Pi) 的打开算法),从 C→−Φ k 或 C→−Ψ k 的错误打开中,我们可以构造出 ADHE,这意味着 AFlexDHE 存在。另一方面,在 C→−P k、C→−S k 错误打开的情况下,R3、R4 的指数是未知的。因此,添加公式 (3) 和 (4) 是为了求解 n‐FlexDHE 假设,如[7] 所述。在这种情况下,如同[7] 的证明(即 Cv 中 ID(Si) 的打开算法),我们可以构造出 AFlexDHE。

剩余的情况是所有 AHO 签名都是正确签发的,且 C→−Φ k 、C→−Ψ k 、C→−P k 和 C→−S k 的打开是正确的,但 (c) Cv 的打开是 ˜ 不正确的,这意味着 Iφk、j˜ ≠ ID(Pk,j˜) 或 Iψk、j˜= ID(Sk,j˜)。请注意,R1= gφk、j˜、˜ R2= gψk、j˜ 是得到保证的,这是由于对 (g φk, j˜ 1,gφk,j˜)(分别地,(g ψk, j˜ σψk、j˜)。在这种情况下,证明与[7] 中相同。

6 效率考虑

本节比较了具有紧凑撤销列表的可撤销群签名方案[7]。在计算开销以及公钥、签名、成员证书和撤销列表的大小(以群元素数量衡量)方面,比较结果如表 1 所示。设 N 为最大用户数,R 为已撤销用户数量,R′ 为最大已撤销用户数,T 为压缩参数。

从表1可以看出,所提出的方案将撤销列表大小从 O(R) 减少到 O(R/T),与 [9] 的方案相同。在 R= 10、000 和 T= 100 的情况下,所提出的方案在128位安全下将撤销列表从约8 MB减少到约70 KB。相较于[9],其优势在于公钥大小从 O(T log N) 减少到 O(T+log N),以及成员证书大小从 O(T) 减少到 O(1)。与[2,7]相比,我们所提出的方案由于向量承诺的 W 次计算,签名时间为 O(T)。签名时间是相对于撤销列表大小的一种权衡,可以通过设置 T 使得两者达到平衡。方案[2] 具有固定的撤销列表大小和群公钥大小,但该方案具有 O(R) 的签名时间和 O(R′) 的成员证书大小。

群公钥大小 签名大小 成员资格证书大小 撤销列表大小 签名算法 time 验证算法 time 撤销 time
[7] O(log N) O(1) O(1) O(R) O(1) O(1) O(R)
[9] O(T log N) O(1) O(T) O(R/T) O(T) O(1) O(R log N)
[2] O(1) O(1) O(R′) O(1) O(R) O(1) O(R)
This work O(T+ log N) O(1) O(1) O(R/T) O(T) O(1) O(R)

考虑到我们所提出的方案由于用户计算时间更短且存储更少,在移动环境中效率更高。

7 结论

在本文中,我们提出了一种具有紧凑型撤销列表的可撤销群签名方案,其中向量承诺压缩了撤销列表中的数据。我们的未来工作包括降低签名开销。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值