无随机预言机的多线性映射聚合签名与可验证加密签名
在当今的数字通信和安全领域,签名方案的安全性和效率至关重要。本文将介绍两种重要的签名方案:聚合签名(Aggregate Signatures)和可验证加密签名(Verifiably Encrypted Signatures),并探讨它们的原理、应用和安全性。
1. 签名方案概述
- 聚合签名(AS) :允许将多个签名聚合为一个,节省带宽。例如,在一个网络中,多个节点对不同消息进行签名,通过聚合签名可以将这些签名合并为一个,减少传输的数据量。
- 可验证加密签名(VES) :签名者将签名加密在可信第三方(裁决者)的公钥下,并证明加密值中包含有效签名。在发生争议时,裁决者可以提取出常规签名。
2. 相关概念和背景
- 随机预言机模型与注册密钥模型 :随机预言机模型将哈希函数视为真正的随机函数,但该模型的合理性受到质疑。注册密钥模型要求用户在密钥注册协议中证明对私钥的知晓。
- 复杂度假设 :本文的方案基于广义迪菲 - 赫尔曼假设(Generalized Diffie - Hellman Assumption),该假设描述了一个算法在给定特定输入和访问特定预言机的情况下,解决广义迪菲 - 赫尔曼问题的难度。
3. 聚合签名方案
3.1 方案组成
一个聚合签名方案是一个算法元组 AS = (AggKGen, Sign, Agg, Vf, AggVf),各算法的功能如下:
| 算法 | 功能 |
| ---- | ---- |
| AggKGen(1k) | 为每个用户独立生成密钥对 (sk, pk) |
| Sign(sk, m) | 使用私钥 sk 对消息 m 进行签名,输出签名 σ |
| Agg((pk(1), m(1), σ(1)), …, (pk(q), m(q), σ(q))) | 根据公钥和消息构建聚合签名 S,并输出三元组 (pk, M, S) |
| Vf(pk, m, σ) | 验证签名的有效性,输出一个比特值 |
| AggVf(pk, M, S) | 验证聚合签名的有效性,返回 1 表示有效 |
3.2 安全性
聚合签名的安全性在聚合认证密钥模型中进行形式化。在该模型中,对手被给予一个挑战公钥,试图伪造一个包含该挑战公钥下有效签名的聚合签名。如果对手在不向签名预言机查询特定消息的情况下成功输出有效聚合签名,则视为攻击成功。
我们的聚合签名方案基于 Boneh - Silverberg 签名方案,在标准模型下是安全的。具体来说,如果 Boneh - Silverberg 签名方案是 (t′, q′O, ϵ′) - 不可伪造的,那么我们的方案是 (t, qO, qmax, ϵ) - 安全的,其中 t′ = t + (qmax - 1) TSign,q′O = qO,ϵ′ = ϵ。
下面是聚合签名方案的流程 mermaid 图:
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(生成密钥对):::process
B --> C(签名消息):::process
C --> D(聚合签名):::process
D --> E{验证聚合签名}:::decision
E -->|有效| F([结束]):::startend
E -->|无效| C
4. 可验证加密签名方案
4.1 方案组成
可验证加密签名方案 VES = (VesKGen, VesAdjKGen, Sign, Vf, Create, VesVf, Adj),各算法的功能如下:
| 算法 | 功能 |
| ---- | ---- |
| VesKGen(1k) | 生成签名者的密钥对 (sk, pk) |
| VesAdjKGen(1k) | 生成裁决者的密钥对 (ask, apk) |
| Sign(sk, m) | 使用私钥 sk 对消息 m 进行签名 |
| Create(sk, apk, m) | 使用私钥 sk 和裁决者公钥 apk 对消息 m 生成可验证加密签名 ω |
| VesVf(apk, pk, ω, m) | 验证可验证加密签名的有效性 |
| Adj(ask, apk, pk, ω, m) | 裁决者使用私钥 ask 从可验证加密签名 ω 中提取常规签名 |
4.2 完整性
可验证加密签名方案是完整的,如果对于所有诚实生成的密钥和所有消息,都满足 VesVf(Create(m), m) = 1 且 Vf(Adj(Create(m)), m) = 1。
下面是可验证加密签名方案的流程 mermaid 图:
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(生成签名者和裁决者密钥对):::process
B --> C(签名消息):::process
C --> D(生成可验证加密签名):::process
D --> E{验证可验证加密签名}:::decision
E -->|有效| F(裁决者提取签名):::process
F --> G{验证提取的签名}:::decision
G -->|有效| H([结束]):::startend
G -->|无效| C
5. 应用场景
-
聚合签名的应用
:
- 安全路由 :在网络路由中,多个节点对路由信息进行签名,通过聚合签名可以减少路由信息的传输量。
- 证书链压缩 :在证书链中,多个证书的签名可以聚合为一个,减少证书链的长度。
- 传感器网络 :如印度洋的海啸预警系统,每个传感器节点收集数据并签名,通过聚合签名可以减少数据传输的带宽消耗。
- 可验证加密签名的应用 :主要应用于公平交换协议,确保交易的公平性和安全性。
6. 总结
聚合签名和可验证加密签名方案在数字安全领域具有重要的应用价值。本文提出的方案在标准模型下是安全的,为相关领域的研究和应用提供了新的思路和方法。未来,随着技术的发展,这些签名方案有望在更多领域得到应用和推广。
无随机预言机的多线性映射聚合签名与可验证加密签名
7. 技术细节分析
7.1 复杂度假设
广义迪菲 - 赫尔曼假设是本文方案的重要基础。一个算法 A 尝试解决广义迪菲 - 赫尔曼问题,它接收随机选择的 (a1, …, an) ∈ Z∗ℓ 对应的 (ga1, …, gan) ∈ G1 作为输入,并可以访问一个预言机 OGDH((a1, …, an), ·)。当查询任何严格子集 S ⊂ {1, …, n} 时,预言机 OGDH 会返回 g∑i∈S ai ∈ G1。算法 A 返回 ga1 a2…an 的概率定义为:
AdvGDH
A := Prob[AOGDH(g, ga1, …, gan) = ga1 a2…an : (a1, …, an) ∈ Z∗ℓ]
如果对于任何运行时间最多为 t,查询 OGDH 不超过 qGDH 次的算法 A,概率 AdvGDH
A 都小于 ϵ,则称 GDH 问题是 (t, qGDH, ϵ) - 难的。
7.2 Boneh - Silverberg 签名方案
该签名方案基于 Lysyanskaya 提出的唯一签名方案,其具体算法如下:
-
KeyGen
:密钥生成算法 Kg(1k) 接收安全参数 1k 作为输入,随机选择 2n 个元素 a1,0, a1,1, …, an,0, an,1 ∈ {1, …, ℓ - 1},计算 u1,0 ← ga1,0, u1,1 ← ga1,1, …, un,0 ← gan,0, un,1 ← gan,1,返回私钥 sk = (a1,0, a1,1, …, an,0, an,1) 和公钥 pk = (u1,0, u1,1, …, un,0, un,1)。
-
Signing
:签名算法 Sign(sk, m) 接收消息 m = (m1, …, mn) ∈ {0, 1}n 和签名密钥 sk 作为输入,计算签名 σ ← g∑i=1n ai,mi ∈ G1。消息空间 {0, 1}n 可以通过先对消息进行哈希处理扩展到 {0, 1}∗。
-
Verification
:验证算法 Vf(pk, σ, m) 当且仅当 e (σ, g, …, g) = e (u1,m1, u2,m2, …, un,mn) 时返回 1。Boneh 和 Silverberg 证明了该方案在选择消息攻击下是不可伪造的。
8. 方案优势与挑战
8.1 优势
- 节省带宽 :聚合签名方案可以将多个签名聚合为一个,大大减少了数据传输的带宽消耗,适用于资源受限的网络,如传感器网络。
- 标准模型安全 :本文提出的聚合签名和可验证加密签名方案在标准模型下是安全的,避免了随机预言机模型的潜在问题。
- 多功能性 :聚合签名方案可以作为多签名方案使用,无需进行任何修改。
8.2 挑战
- 多线性映射的实现 :本文的方案基于多线性映射,但其实际可行性尚不清楚。虽然 Boneh 和 Silverberg 指出多线性映射可能来自代数几何或其他领域,但目前还没有有效的实现方法。
- 计算复杂度 :签名和验证过程可能涉及复杂的计算,特别是在处理大量签名时,可能会影响系统的性能。
9. 未来展望
- 多线性映射的研究 :未来需要进一步研究多线性映射的实现方法,以提高方案的实际可行性。
- 性能优化 :探索如何优化签名和验证算法的计算复杂度,提高系统的性能和效率。
- 应用拓展 :将聚合签名和可验证加密签名方案应用到更多领域,如区块链、物联网等,推动数字安全技术的发展。
10. 操作步骤总结
10.1 聚合签名方案操作步骤
- 密钥生成 :使用 AggKGen(1k) 为每个用户独立生成密钥对 (sk, pk)。
- 签名消息 :使用 Sign(sk, m) 对消息 m 进行签名,得到签名 σ。
- 聚合签名 :使用 Agg((pk(1), m(1), σ(1)), …, (pk(q), m(q), σ(q))) 构建聚合签名 S,并输出三元组 (pk, M, S)。
- 验证签名 :使用 Vf(pk, m, σ) 验证单个签名的有效性,使用 AggVf(pk, M, S) 验证聚合签名的有效性。
10.2 可验证加密签名方案操作步骤
- 密钥生成 :使用 VesKGen(1k) 生成签名者的密钥对 (sk, pk),使用 VesAdjKGen(1k) 生成裁决者的密钥对 (ask, apk)。
- 签名消息 :使用 Sign(sk, m) 对消息 m 进行签名。
- 生成可验证加密签名 :使用 Create(sk, apk, m) 生成可验证加密签名 ω。
- 验证可验证加密签名 :使用 VesVf(apk, pk, ω, m) 验证可验证加密签名的有效性。
- 裁决者提取签名 :在需要时,裁决者使用 Adj(ask, apk, pk, ω, m) 从可验证加密签名 ω 中提取常规签名。
11. 结论
聚合签名和可验证加密签名方案为数字安全领域提供了有效的解决方案。本文提出的方案在标准模型下具有安全性,并且具有节省带宽、多功能性等优势。虽然目前面临多线性映射实现和计算复杂度等挑战,但随着技术的发展,这些签名方案有望在更多领域得到广泛应用。通过不断的研究和优化,我们可以进一步提高这些方案的性能和实用性,为数字安全提供更强大的保障。
超级会员免费看
57

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



