57、可撤销可委托匿名凭证的撤销机制解析

可撤销可委托匿名凭证的撤销机制解析

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 和相关构建模块,实现了在匿名凭证系统中对凭证的撤销和委托功能,同时保证了系统的安全性、可委托性、可再委托性、不可链接性和可验证性等特性。这些特性使得该系统在实际应用中能够更好地保护用户的隐私和权益,同时满足系统管理和安全的需求。

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器模拟器的研究展开,重点介绍基于Matlab代码实现的四轴飞行器动力学建模与仿真方法。研究构建了考虑非线性特性的飞行器数学模型,涵盖姿态动力学与运动学方程,实现了三自由度(滚转、俯仰、偏航)的精确模拟。文中详细阐述了系统建模过程、控制算法设计思路及仿真结果分析,帮助读者深入理解四轴飞行器的飞行动力学特性与控制机制;同时,该模拟器可用于算法验证、控制器设计与教学实验。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及无人机相关领域的工程技术人员,尤其适合从事飞行器建模、控制算法开发的研究生和初级研究人员。; 使用场景及目标:①用于四轴飞行器非线性动力学特性的学习与仿真验证;②作为控制器(如PID、LQR、MPC等)设计与测试的仿真平台;③支持无人机控制系统教学与科研项目开发,提升对姿态控制与系统仿真的理解。; 阅读建议:建议读者结合Matlab代码逐模块分析,重点关注动力学方程的推导与实现方式,动手运行并调试仿真程序,以加深对飞行器姿态控制过程的理解。同时可扩展为六自由度模型或加入外部干扰以增强仿真真实性。
基于分布式模型预测控制DMPC的多智能体点对点过渡轨迹生成研究(Matlab代码实现)内容概要:本文围绕“基于分布式模型预测控制(DMPC)的多智能体点对点过渡轨迹生成研究”展开,重点介绍如何利用DMPC方法实现多智能体系统在复杂环境下的协同轨迹规划与控制。文中结合Matlab代码实现,详细阐述了DMPC的基本原理、数学建模过程以及在多智能体系统中的具体应用,涵盖点对点转移、避障处理、状态约束与通信拓扑等关键技术环节。研究强调算法的分布式特性,提升系统的可扩展性与鲁棒性,适用于多无人机、无人车编队等场景。同时,文档列举了大量相关科研方向与代码资源,展示了DMPC在路径规划、协同控制、电力系统、信号处理等多领域的广泛应用。; 适合人群:具备一定自动化、控制理论或机器人学基础的研究生、科研人员及从事智能系统开发的工程技术人员;熟悉Matlab/Simulink仿真环境,对多智能体协同控制、优化算法有一定兴趣或研究需求的人员。; 使用场景及目标:①用于多智能体系统的轨迹生成与协同控制研究,如无人机集群、无人驾驶车队等;②作为DMPC算法学习与仿真实践的参考资料,帮助理解分布式优化与模型预测控制的结合机制;③支撑科研论文复现、毕业设计或项目开发中的算法验证与性能对比。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注DMPC的优化建模、约束处理与信息交互机制;按文档结构逐步学习,同时参考文中提及的路径规划、协同控制等相关案例,加深对分布式控制系统的整体理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值