具有消息依赖开启功能的群签名技术解析
1. 引言
在当今的数字世界中,匿名签名技术为用户提供了一定程度的隐私保护。传统的群签名允许群成员匿名签署消息,验证过程仅使用单一的群公钥,不会泄露签名者的身份。然而,在特殊情况下,指定的权威机构(即开启者)可以识别出实际的签名者。但普通群签名赋予了开启者极大的权力,他们可以随意识别任何签名的发起者,这意味着在面对开启者时,签名者几乎没有隐私可言。
为了解决这一问题,我们引入了一种新的群签名类型——具有消息依赖开启功能的群签名(GS - MDO)。这种签名方式通过引入另一个权威机构——许可者,来分散开启者的强大权力。当发现有问题的消息签名时,许可者会针对该消息(而非整个签名消息)颁发一个令牌。开启者只有在拥有这个令牌的情况下,才能从签名中提取签名者的身份;没有令牌,他们则无法做到这一点。
2. 传统群签名的问题
传统群签名在隐私保护方面存在明显的不足,开启者的权力过大。以匿名拍卖为例,开启者可以提取所有竞拍者的身份信息,这严重侵犯了竞拍者的隐私。
为了更直观地理解,我们来看下面的表格:
| 签名类型 | 开启者权力 | 隐私保护情况 |
| ---- | ---- | ---- |
| 传统群签名 | 可随意识别任何签名发起者 | 面对开启者几乎无隐私 |
| GS - MDO | 需许可者令牌才能识别特定消息签名发起者 | 可灵活限制开启者权力,保护隐私 |
3. GS - MDO 的工作原理
GS - MDO 的核心在于许可者和开启者的协作。许可者根据特定消息颁发令牌,开启者凭借令牌提取签名者身份。以下是其工作流程的 mermaid 流程图:
graph LR
A[发现问题消息签名] --> B[许可者颁发令牌]
B --> C[开启者获取令牌]
C --> D[开启者提取签名者身份]
具体来说,当许可者认为某条消息不适合作为匿名群成员的签名消息公开时,例如“Mr. XXX is fool!”,他会针对这条消息颁发一个令牌。开启者使用这个令牌,就可以立即打开对应这条消息的任何签名的签名者身份。
与流行的阈值技术(将开启者拆分为多个不太可信的开启者)不同,GS - MDO 的令牌是基于许可者选择的消息生成的,而不是基于消息的签名。一旦许可者针对某条消息颁发了令牌,开启者无需与其他方交互,就可以立即提取该消息所有签名的签名者身份。此外,如果许可者认为无需再指定其他需要开启的消息,他可以删除自己的记忆以避免秘密泄露。即使许可者删除了秘密,只要消息之前已被许可者指定,开启者仍然可以打开对应签名的签名者身份。
4. GS - MDO 的贡献
4.1 新功能引入
GS - MDO 引入了许可者这一角色,许可者为特定消息颁发令牌,开启者只有在对应消息的令牌可用时,才能从签名中提取签名者的身份。这种功能使得我们可以灵活地限制开启者的能力,而无需复杂的交互过程(如阈值解密)。
4.2 安全定义
我们为 GS - MDO 给出了安全定义,该定义是对 Bellare - Micciancio - Warinschi 模型的扩展,是根据标准群签名与我们引入的消息依赖开启功能之间的差异对该模型进行的自然修改。
4.3 技术分析
我们探讨了构建满足上述安全要求的 GS - MDO 所面临的技术难题。特别地,我们证明了如果底层的 GS - MDO 是安全的,那么可以以黑盒方式从任何 GS - MDO 方案中推导出基于身份的加密(IBE)。这意味着 IBE 是构建 GS - MDO 的关键,没有 IBE 作为构建块,就无法构建 GS - MDO。
4.4 通用构造
基于上述观察,我们提出了一种从 IBE 和自适应非交互零知识(NIZK)证明构建 GS - MDO 的通用方法。需要注意的是,在我们的通用构造中,NIZK 不需要模拟稳健性,而标准群签名的通用构造则需要这一强大属性。
4.5 高效实例化
我们通过将 Groth - Sahai 证明应用于通用构造,提出了一种高效的 GS - MDO 实例。为了在通用构造中使用 Groth - Sahai 证明,我们发现需要一个与 Groth - Sahai 证明兼容的 IBE 方案。由于目前没有已知的此类原语,我们还构建了一个满足这一要求的新 IBE 方案。使用我们的新 IBE 和 Groth - Sahai 证明,可以构建出相当实用的 GS - MDO。具体来说,当使用 256 位素数阶群时,签名大小约为 16 千字节。不过,我们的 IBE 仅具有 k - 弹性安全性,因此得到的 GS - MDO 方案也继承了这一限制(即许可者最多可以颁发 k 个令牌)。
5. GS - MDO 的应用
5.1 匿名公告板系统
GS - MDO 可以用于检测匿名公告板系统中不适当消息的来源。当发现有问题的消息时,许可者颁发令牌,开启者可以识别出签名者的身份。
5.2 匿名拍卖
在匿名拍卖中,竞拍者组成匿名签名者群体。每个竞拍者对自己的出价进行群签名。为了确定获胜者,许可者会为最高出价的签名颁发开启令牌,开启者只能打开最高出价的签名,从而确定获胜者。与阈值方法相比,消息依赖开启方法的优势在于,当有多个竞拍者以相同的最高价格出价时,阈值方法需要为每个获胜者进行交互,通信成本与获胜者的数量成正比;而消息依赖开启方法只需要许可者向开启者进行少量通信,通信成本与获胜者的数量无关。
5.3 身份托管
以自动停车场为例,当顾客进入停车场时,他们会对进入日期(如“2012 - 02 - 20”)生成一个群签名。如果停车场发生事故(如有人被谋杀),开启者可以打开事故发生日期的签名,以确定当天在场的人员。在这种情况下,如果采用阈值技术来分散权力,打开所有相同消息的签名需要大量的交互;而消息依赖开启功能则消除了当局之间的交互,许可者为当天颁发令牌,开启者可以无交互地打开所有签名。
6. 相关工作回顾
6.1 传统群签名构造
自群签名首次提出以来,已经提出了许多高效的构造方法,其中大多数依赖于随机预言模型。早期的许多方案基于强 RSA 假设,而基于离散对数类型假设的群签名方案也相继出现,如 Camenisch 和 Lysyanskaya 的方案基于 LRSW 假设,Boneh、Boyen 和 Shacham 的方案基于 q - 强 Diffie - Hellman 假设。
6.2 无随机预言的群签名
除了基于一般 NIZK 技术的通用构造外,不依赖随机预言的群签名方案直到最近才得以实现。Ateniese、Camenisch、Hohenberger 和 de Medeiros 首次提出了一种基于交互假设的群签名方案,避免了随机预言;随后,Groth 提出了一种避免随机预言和交互假设的群签名方案,但签名大小非常大;Boyen 和 Waters 提出了高效的构造方法,但他们的方案安全保证较弱,仅实现了所谓的 CPA - 匿名性;Groth 又提出了另一种群签名方案,几乎与 Boyen - Waters 方案一样高效,并且满足 Bellare - Shi - Zhang 模型的更高安全保证。
6.3 群管理器权力分散
在群管理器权力分散方面,Kilian 和 Petrank 引入了密码协议的可分离性概念,Camenisch 和 Michels 将这一概念细化并应用于群签名。在他们的设定中,群管理器的权力被分离为两个当局:一个能够允许新成员加入群,但不能识别群签名的发起者;另一个则相反。Bellare、Shi 和 Zhang 以及 Kiayias 和 Yung 对这些分离的当局进行了更正式的建模。
6.4 可追踪签名和契约匿名系统
可追踪签名是群签名的扩展概念,允许群管理器指定某个成员为“行为不端”。一旦成员被指定,任何人都可以在不与管理器交互的情况下检测该成员的签名,而其他成员的签名仍然保持匿名。契约匿名系统基于具有验证者本地撤销功能的群签名,当用户违反合同时,问责服务器会撤销用户的匿名性,并将用户的身份通知服务提供商。但这些方案与消息依赖开启功能不同。
7. 预备知识
7.1 签名方案
签名方案由以下三个算法组成:
- 密钥生成算法 SigKg(1λ):输出一对密钥 (vk, sk)。
- 签名算法 Signsk(M):为消息 M 生成签名 s。
- 验证算法 Verifyvk(M, s):输出 ⊤ 或 ⊥,分别表示“接受”或“拒绝”。
签名方案需要满足正确性,即对于所有的 λ ∈ N,所有在 SigKg(1λ) 范围内的密钥对 (vk, sk),以及所有消息 M,都有 Pr[Verifyvk(M, Signsk(M)) = ⊤] = 1。如果所有 PPT 对手在给定由 SigKg(1λ) 生成的 vk 并可以访问签名预言机的情况下,输出一个未向签名预言机查询过的消息 M 和对应的签名 s 且 Verifyvk(M, s) = ⊤ 的概率可忽略不计,则该签名方案在选择消息攻击下是存在不可伪造的(EUF - CMA)。如果对手在给定 vk 且最多只能访问一次签名预言机的情况下,无法输出一个与从签名预言机获得的消息 - 签名对不同的有效消息 - 签名对,则该签名方案是强不可伪造的一次性签名。
7.2 基于标签的密钥封装机制
基于标签的密钥封装机制(tag - based KEM)由以下三个算法组成:
- 密钥生成算法 TKg(1λ):输出一对密钥 (pk, dk)。
- 封装算法 TEncpk(t):输出 (C, K),其中针对标签 t 的密文 C 封装了一个会话密钥 K ∈ KPKE,KPKE 是与该方案相关的会话密钥空间。
- 解封装算法 TDecdk(t, C):输出解封后的会话密钥 K 或表示无效密文的特殊符号 ⊥。
如果没有 PPT 对手在以下游戏中具有不可忽略的优势,则基于标签的 KEM 是选择性标签弱选择密文安全的:对手被给定安全参数 1λ 并输出一个目标标签 t∗,然后挑战者给出公钥 pk。收到公钥后,对手可以按任意顺序发出解密查询 (t, C),挑战者会返回在标签 t 下对 C 的解密结果。对手不能发出 t = t∗ 的查询。在某个时刻,对手请求挑战,挑战者抛一枚公平硬币 b′,并发送 (C∗, K∗),其中 C∗ 是在标签 t∗ 下生成的密文,K∗ 要么是 C∗ 中封装的会话密钥(当 b′ = 0 时),要么是随机会话密钥(当 b′ = 1 时)。收到挑战后,对手可以再次发出解密查询,同样不能发出 t = t∗ 的查询。最后,对手输出一个比特 b,对手的优势定义为 b = b′ 的概率减去 1/2。
7.3 基于身份的 KEM 及其 k - 弹性变体
k - 弹性基于身份的 KEM 由以下四个算法组成:
- 初始化算法 ISetup(1λ, 1k):输出一对 (par, mk)。
- 密钥提取算法 IExtmk(ID):输出用户解封装密钥 dk ID。
- 封装算法 IEncpar(ID):输出 (C, K),其中针对身份 ID 的密文 C 封装了一个会话密钥 K ∈ KIBE,KIBE 是与该方案相关的会话密钥空间。
- 解封装算法 IDecdk ID(C):输出解封后的会话密钥 K 或表示无效密文的特殊符号 ⊥。
如果没有 PPT 对手在以下游戏中具有不可忽略的优势(在 λ 方面),则 k - 弹性基于身份的 KEM 是 k - 弹性的:对手首先收到公共参数 par。收到参数后,对手可以按任意顺序发出提取查询 ID,挑战者会返回该用户的解封装密钥。在某个时刻,对手请求对身份 ID∗ 进行挑战,挑战者抛一枚公平硬币 b′,并发送 (C∗, K∗),其中 C∗ 是针对用户 ID∗ 的密文,K∗ 要么是 C∗ 中封装的会话密钥(当 b′ = 0 时),要么是随机会话密钥(当 b′ = 1 时)。对手不能请求对之前已查询过解封装密钥的身份进行挑战。收到挑战后,对手可以再次发出提取查询,但不能查询 ID∗ 的解封装密钥。对手在挑战前后的查询总数最多为 k。最后,对手输出一个比特 b,对手的优势定义为 b = b′ 的概率减去 1/2。如果在相同游戏中,即使提取查询的数量不受限制,任何 PPT 对手都具有不可忽略的优势,则称基于身份的 KEM 是完全安全的。
综上所述,具有消息依赖开启功能的群签名(GS - MDO)为解决传统群签名中开启者权力过大的问题提供了一种有效的解决方案。通过引入许可者和消息依赖开启机制,GS - MDO 可以灵活地限制开启者的权力,保护签名者的隐私。同时,它在多个领域都有潜在的应用价值,并且在技术实现上也有相应的理论支持和具体构造方法。尽管目前还存在一些限制,如 k - 弹性安全性的限制,但随着技术的不断发展,GS - MDO 有望在更多场景中得到应用和完善。
8. 技术难点分析
8.1 构建 GS - MDO 的挑战
构建满足安全要求的 GS - MDO 并非易事。一方面,需要保证许可者和开启者之间的协作机制能够有效运行,确保开启者只有在获得许可者针对特定消息颁发的令牌后才能提取签名者身份。另一方面,要保证整个系统的安全性,防止攻击者绕过许可者的控制,随意获取签名者的身份信息。
8.2 IBE 的关键作用
如前文所述,基于身份的加密(IBE)是构建 GS - MDO 的关键。我们可以通过一个简单的逻辑推导来理解其重要性:
1. 假设存在一个安全的 GS - MDO 方案。
2. 由于 GS - MDO 中许可者的令牌与特定消息相关,且开启者需要令牌才能提取签名者身份,这类似于 IBE 中根据身份信息进行加密和解密的过程。
3. 通过对 GS - MDO 方案进行黑盒分析,可以将其转化为一个 IBE 方案。这意味着如果没有 IBE 作为基础,就无法构建出安全的 GS - MDO 方案。
8.3 与其他技术的对比
与传统的群签名技术相比,GS - MDO 引入了消息依赖开启的概念,使得开启者的权力得到了有效限制。而与阈值技术相比,GS - MDO 不需要复杂的交互过程,通信成本更低。以下是它们的对比表格:
| 技术类型 | 开启者权力 | 交互需求 | 通信成本 |
| ---- | ---- | ---- | ---- |
| 传统群签名 | 权力过大,可随意识别签名者身份 | 无 | 无 |
| 阈值技术 | 权力分散,但交互复杂 | 高 | 与参与方数量相关 |
| GS - MDO | 权力受限,需许可者令牌 | 低 | 与消息数量相关 |
9. 通用构造方法
9.1 基于 IBE 和 NIZK 证明的构造
我们提出的通用构造方法是基于 IBE 和自适应非交互零知识(NIZK)证明。具体步骤如下:
1.
初始化
:使用 IBE 的初始化算法 ISetup(1λ, 1k) 生成公共参数 par 和主密钥 mk。
2.
签名生成
:群成员使用 IBE 的封装算法 IEncpar(ID) 对自己的身份 ID 进行封装,生成密文 C 和会话密钥 K。然后,使用 NIZK 证明对签名消息 M 和封装结果进行证明,生成签名 s。
3.
签名验证
:验证者使用群公钥和 NIZK 证明对签名 s 进行验证,如果验证通过,则接受签名。
4.
消息依赖开启
:许可者针对特定消息 M 颁发令牌,开启者使用令牌和 IBE 的解封装算法 IDecdk ID(C) 提取签名者的身份 ID。
9.2 与标准群签名构造的区别
在我们的通用构造中,NIZK 不需要模拟稳健性,而标准群签名的通用构造则需要这一强大属性。这使得我们的构造方法更加灵活,降低了实现的难度。
10. 高效实例化方案
10.1 Groth - Sahai 证明的应用
为了实现高效的 GS - MDO,我们将 Groth - Sahai 证明应用于通用构造。Groth - Sahai 证明是一种非交互零知识证明系统,具有高效性和简洁性的特点。
10.2 新 IBE 方案的构建
为了在通用构造中使用 Groth - Sahai 证明,我们需要一个与 Groth - Sahai 证明兼容的 IBE 方案。由于目前没有已知的此类原语,我们构建了一个新的 IBE 方案。该方案满足与 Groth - Sahai 证明的兼容性要求,使得我们可以将两者结合起来构建高效的 GS - MDO。
10.3 签名大小和安全性限制
当使用 256 位素数阶群时,我们的 GS - MDO 签名大小约为 16 千字节。然而,我们的 IBE 仅具有 k - 弹性安全性,这意味着许可者最多可以颁发 k 个令牌。这是目前方案的一个限制,但随着技术的发展,有望得到改进。
11. 未来展望
11.1 安全性提升
虽然目前的 GS - MDO 方案具有一定的安全性,但仍有提升的空间。例如,可以研究如何提高 IBE 的安全性,使其具有更强的抗攻击能力,从而进一步增强 GS - MDO 的安全性。
12. 应用拓展
除了前面提到的匿名公告板系统、匿名拍卖和身份托管等应用场景,GS - MDO 还有望在更多领域得到应用。例如,在电子政务、医疗数据共享等领域,保护用户的隐私和身份信息至关重要,GS - MDO 可以为这些领域提供有效的解决方案。
13. 性能优化
目前签名大小约为 16 千字节,在一些对性能要求较高的场景中可能会受到限制。未来可以研究如何优化签名大小和验证时间,提高系统的性能。
14. 技术融合
可以将 GS - MDO 与其他先进的密码学技术进行融合,如同态加密、零知识证明等,以实现更复杂的功能和更高的安全性。
12. 总结
具有消息依赖开启功能的群签名(GS - MDO)是一种创新的密码学技术,它通过引入许可者和消息依赖开启机制,有效解决了传统群签名中开启者权力过大的问题,保护了签名者的隐私。在技术实现上,我们提出了通用构造方法,并通过应用 Groth - Sahai 证明和构建新的 IBE 方案实现了高效的实例化。虽然目前方案还存在一些限制,但随着技术的不断发展,GS - MDO 有望在更多领域得到广泛应用,并为数字世界的隐私保护和安全提供更强大的支持。
以下是 GS - MDO 主要流程的 mermaid 流程图:
graph LR
A[系统初始化] --> B[群成员签名]
B --> C[签名验证]
C --> D{是否有问题消息?}
D -- 是 --> E[许可者颁发令牌]
E --> F[开启者提取签名者身份]
D -- 否 --> G[正常结束]
通过以上的分析和介绍,我们对 GS - MDO 有了更深入的了解,相信它在未来的密码学领域将会发挥重要的作用。
超级会员免费看
412

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



