可撤销可委托匿名凭证的撤销机制解析
1. 背景与基本假设
在可撤销可委托匿名凭证(RDAC)系统的构建中,一些关键的操作和假设起到了重要作用。首先,在构建特定的证明时,需要更新相关变量并进行随机化操作。具体而言,要更新 V 如 CompNMProof 中那样,然后随机化 NMProof ′,使其 y1 和 y2 的承诺与 Proof 中的相同,并将其替换 Proof 中的旧部分,最后输出结果的随机化版本。
为了证明该构造提供了一个可聚合的非成员证明(ADNMP),需要用到 Decisional Strong Diffie Hellman(DSDH)假设。这个假设虽然不属于 uber - 假设家族,但可以在通用群中像 PowerDDH 假设一样被证明。
q - DSDH 定义 :设 (p, G1, G2, GT, e, P1, P2) 为双线性参数,B0, B1 ← G∗1,x0, x1 ← Z∗p 且 b ← {0, 1}。给定 B0, x0B0, …, xq0B0, B1, xbB1, …, xqbB1,没有概率多项式时间(PPT)算法能以非可忽略地优于随机猜测的概率输出 b′ = b。
定理 3 :基于 ESDH、DSDH 以及 GS 实例化的底层假设(SXDH 或 SDLIN),该累加器是一个安全的 ADNMP。
2. RDAC 系统模型
RDAC 系统模型是在 BCCKLS 模型的基础上扩展而来的。系统的参与者包括用户和拥有黑名单 BL 的黑名单管理机构(BA)。对于每个凭证证明,用户会选择一个与其他昵称难以区分的新昵称。为了实现撤销功能,引入了一种新的昵称类型,称为 r - 昵称(r - nym)。当一个 r - 昵称被撤销时,其所有者将无法再证明凭证。
系统中的 PPT 算法如下:
-
Setup(1k)
:输出公共参数 ParaDC、BA 的秘密密钥 SkBA 以及初始为空的黑名单 BL。
-
KeyGen(ParaDC)
:为用户输出一个秘密密钥 Sk 和一个秘密 r - 昵称 Rn。
-
NymGen(ParaDC, Sk, Rn)
:输出一个新的昵称 Nym 以及辅助密钥 Aux(Nym)。用户 O 可以通过发布昵称 NymO 和证明其 r - 昵称 RnO 未被撤销的证明成为根凭证颁发者,并且当 BL 发生变化时需要更新该证明。
-
Issue(ParaDC, NymO, SkI, RnI, NymI, Aux(NymI), Cred, DeInf, NymU, BL, L) ↔ Obtain(ParaDC, NymO, SkU, RnU, NymU, Aux(NymU), NymI, BL, L)
:用户 I 向用户 U 颁发一个级别为 L + 1 的凭证。I 无输出,U 获得凭证 CredU。委托信息 DeInf 是可选的,当包含时,U 还会获得委托信息 DeInfU,用于后续证明其凭证链中所有委托者的 r - 昵称未被撤销。如果 L = 0,则省略 Cred,并且可以选择包含 DeInf = 1。
-
Revoke(ParaDC, SkBA, Rn, BL)
:更新 BL,使被撤销的用户 Rn 无法再证明、委托或接收凭证。
-
CredProve(ParaDC, NymO, Cred, DeInf, Sk, Rn, Nym, Aux(Nym), BL, L)
:使用级别为 L 的凭证 Cred、Sk、Rn 以及可选的 DeInf 输出 CredProof,证明:(i) 级别为 L 的凭证已颁发给 Nym 的所有者;(ii) Nym 的 Rn 未被撤销;(iii)(可选,当包含 DeInf 时)凭证链上所有 r - 昵称未被撤销。
-
CredVerify(ParaDC, NymO, CredProof, Nym, BL, L)
:验证 CredProof 是否为上述陈述的有效证明。
与无撤销功能的可委托匿名凭证模型相比,RDAC 模型引入了 BA 及其秘密密钥 SkBA 和黑名单 BL、r - 昵称、委托信息 DeInf、Revoke 算法以及 CredProof 的两个额外条件(ii)和(iii)。需要注意的是,DeInf 在算法中的包含是可选的,这允许用户选择仅证明自己未被列入黑名单,或者完全证明并委托其凭证链上的所有用户都未被列入黑名单。
以下是这些算法的流程说明:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(Setup):::process
B --> C(KeyGen):::process
C --> D(NymGen):::process
D --> E{是否颁发凭证?}:::decision
E -- 是 --> F(Issue ↔ Obtain):::process
E -- 否 --> G{是否撤销凭证?}:::decision
F --> G
G -- 是 --> H(Revoke):::process
G -- 否 --> I{是否证明凭证?}:::decision
H --> I
I -- 是 --> J(CredProve):::process
J --> K(CredVerify):::process
I -- 否 --> L([结束]):::startend
K --> L
3. BCCKLS 方案与 ADNMP 扩展
BCCKLS 可委托匿名凭证方案使用了一个 F - 不可伪造的认证安全认证方案 AU,包含 AtSetup、AuthKg、Authen、VerifyAuth 等 PPT 算法。AtSetup(1k) 返回公共参数 ParaAt,AuthKg(ParaAt) 生成密钥 Sk,Authen(ParaAt, Sk, m) 生成对消息向量 m 进行认证的认证器 Auth,VerifyAuth(ParaAt, Sk, m, Auth) 仅当 Auth 在 Sk 下有效认证 m 时接受。该方案的安全要求包括 F - 不可伪造性和认证安全性。
在 BCCKLS 中,用户 U 可以生成秘密密钥 Sk ← AuthKg(ParaAt),并通过选择不同的 Open 值生成多个昵称 Nym = Com(Sk, Open)。假设 U 拥有来自 O 的级别为 L + 1 的凭证,设 (Sk0 = SkO, Sk1, …, SkL, SkL + 1 = Sk) 为密钥,使得 Ski 的所有者将凭证委托给 Ski + 1,设 H : {0, 1}∗ → Zp 为抗碰撞哈希函数,ri = H(NymO, attributes, i) 为该级别凭证的一组属性计算得出。U 生成其委托凭证的证明如下:
CredProof ← NIZKPK[SkO in NymO, Sk in Nym]
{(F(SkO), F(Sk1), ..., F(SkL), F(Sk), auth1, ..., authL + 1) :
VerifyAuth(SkO, (Sk1, r1), auth1) ∧
VerifyAuth(Sk1, (Sk2, r2), auth2) ∧ ... ∧
VerifyAuth(SkL - 1, (SkL, rL), authL) ∧
VerifyAuth(SkL, (Sk, rL + 1), authL + 1)}
ADNMP 通过以下方式扩展 BCCKLS 以提供撤销功能。使用 ADNMP 时,BA 的黑名单 BL 包含一个已撤销 r - 昵称的累加集及其累加器值。除了秘密密钥 Sk,用户 U 还拥有累加器域中的秘密 r - 昵称 Rn,并生成昵称 Nym = (Com(Sk, OpenSk), Com(Rn, OpenRn))。ADNMP 允许委托和再委托一个证明,即一个 r - 昵称未被累积在黑名单中(Rn ∉ BL)。U 生成其委托凭证及其凭证链有效性的证明如下:
CredProof ← NIZKPK[SkO in NymO[1], Sk in Nym[1], Rn in Nym[2]]
{(F(SkO), F(Sk1), F(Rn1), ..., F(SkL), F(RnL), F(Sk), F(Rn),
auth1, ..., authL, authL + 1) :
VerifyAuth(SkO, (Sk1, Rn1, r1), auth1) ∧ (Rn1 ∉ BL) ∧
VerifyAuth(Sk1, (Sk2, Rn2, r2), auth2) ∧ (Rn2 ∉ BL) ∧ ... ∧
VerifyAuth(SkL - 1, (SkL, RnL, rL), authL) ∧ (RnL ∉ BL) ∧
VerifyAuth(SkL, (Sk, Rn, rL + 1), authL + 1) ∧ (Rn ∉ BL)}
ADNMP 扩展后的方案具有以下特性:
-
可委托性
:允许用户代表其委托者在没有任何见证的情况下,证明其祖先委托者未被列入不断变化的黑名单。用户和委托者生成的证明彼此难以区分。
-
可再委托性
:允许用户将对委托者的证明再委托给其被委托者。
-
不可链接性
:防止勾结的用户链接同一委托者的委托。
-
可验证性
:允许用户验证委托令牌的正确性。
4. RDAC 方案详细描述
RDAC 方案由多个构建模块组成:
- 一个具有可变形非成员证明系统(NMPS)的 ADNMP,包括 AcSetup、ProveNM、VerifyNM、CompNMWit、Accu、Dele、Rede、Vali、CompNMProof 等算法,以及承诺 ComNM。
- BCCKLS 中的组件,包括认证方案 AU、认证协议 AuthPro、哈希函数 H 和可变形非交互零知识凭证证明系统(CredPS),其中 CredPS 包含 PKSetup、PKProve、PKVerify、RandProof 等算法和承诺 Com。
- 一个可变形证明系统(EQPS),在设置中使用 PKSetup 和 AcSetup,用于证明两个承诺 Com 和 ComNM 承诺的是相同的值。
假设委托密钥 De 包含元素 Ele 的承诺,CompNMProof 和 Rede 会对 De 中的承诺进行随机化,并生成 Ele 的承诺。累加器域和认证器的密钥空间的元素可以通过 Com 进行承诺。以下是该方案各算法的详细描述:
|算法名称|描述|
| ---- | ---- |
|Setup|使用 PKSetup(1k)、AtSetup(1k) 和 AcSetup(1k) 生成 ParaPK、ParaAt 和 (ParaAc, AuxAc)。黑名单包含已撤销 r - 昵称的累加集及其累加器值。输出初始黑名单 BL(累加器集为空且有初始累加器值)、ParaDC = (ParaPK, ParaAt, ParaAc, H) 和 SkBA = AuxAc。|
|KeyGen|运行 AuthKg(ParaAt) 输出秘密密钥 Sk,输出累加器域中的随机 r - 昵称 Rn。|
|NymGen|生成随机的 OpenSk 和 OpenRn,输出昵称 Nym = (Com(Sk, OpenSk), Com(Rn, OpenRn)) 和辅助密钥 Aux(Nym) = (OpenSk, OpenRn)。|
|Issue ↔ Obtain|根据不同条件进行处理。若 L = 0 且 NymO ≠ NymI 则中止;若 NymI 或 NymU 格式不正确、PKVerify 不通过或 r - 昵称已被撤销也中止。双方生成并验证证明,计算 rL + 1,用户 U 接收证明 ProofU。若 L > 0,I 随机化 Cred 得到 CredProofI,U 验证后拼接 ProofU 和 CredProofI 得到 CredU。可选的 DeInf 包含一系列委托密钥和证明,双方进行验证和处理。|
|Revoke|将 r - 昵称 Rn 添加到累加集并更新累加器值。|
|CredProve|若 Nym 格式不正确、PKVerify 不通过或验证 DeInf 失败则中止。使用 ProveNM 生成 Rn 未被列入黑名单的证明 NMProof,生成 EQProof ′L。随机化 Cred 并拼接相关证明得到 CredProof ′。若包含 DeInf,还需生成 NMChainProof 并更新 EQProofj 后输出 CredProof。|
|CredVerify|对 Cred 进行随机化后运行 PKVerify,对 NMProof 和 NMChainProof 运行 VerifyNM,并验证 EQProof ′j,输出接受或拒绝。|
以下是这些算法之间交互的流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(Setup):::process
B --> C(KeyGen):::process
C --> D(NymGen):::process
D --> E{是否进行颁发操作?}:::decision
E -- 是 --> F(Issue ↔ Obtain):::process
E -- 否 --> G{是否进行撤销操作?}:::decision
F --> G
G -- 是 --> H(Revoke):::process
G -- 否 --> I{是否进行凭证证明操作?}:::decision
H --> I
I -- 是 --> J(CredProve):::process
J --> K(CredVerify):::process
I -- 否 --> L([结束]):::startend
K --> L
5. 安全性定理
如果认证方案是 F - 不可伪造且认证安全的;ADNMP 是安全的;CredPS、NMPS 和 EQPS 是可随机化且可组合的零知识证明系统;CredPS 还是部分可提取的;并且 H 是抗碰撞的,那么该构造是一个安全的可撤销可委托匿名凭证系统。
综上所述,可撤销可委托匿名凭证系统通过引入 ADNMP 和相关构建模块,实现了在匿名凭证系统中对凭证的撤销和委托功能,同时保证了系统的安全性、可委托性、可再委托性、不可链接性和可验证性等特性。这些特性使得该系统在实际应用中能够更好地保护用户的隐私和权益,同时满足系统管理和安全的需求。
超级会员免费看
16

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



