数字签名方案与公钥基础设施详解
1. 数字签名算法概述
数字签名在现代密码学中扮演着至关重要的角色,用于确保数据的完整性、认证发送者身份以及不可否认性。常见的数字签名算法有 EdDSA、DSA 和 ECDSA。
1.1 EdDSA
EdDSA 是 Schnorr 签名的高效标准化版本,它使用特定的椭圆曲线组,具有高效性和标准化的特点,在实际应用中能提供较好的性能。
1.2 DSA 和 ECDSA
数字签名算法(DSA)和椭圆曲线数字签名算法(ECDSA)基于不同类别的离散对数问题。它们自 1991 年以来以某种形式存在,并且都被纳入了美国国家标准与技术研究院(NIST)发布的当前数字签名标准(DSS)中,不过在 2019 年 NIST 提议弃用 DSA。
1.2.1 底层识别方案
这两种算法都遵循一个通用模板,可以看作是由底层识别方案构建而成。设 (G) 是一个素数阶 (q) 的循环群,生成元为 (g)。以下是一个识别方案:
1. 证明者选择均匀的 (k \in Z_q^*) 并发送 (I := g^k)。
2. 验证者选择并发送均匀的 (\alpha, r \in Z_q) 作为挑战。
3. 证明者发送 (s := [k^{-1} \cdot (\alpha + xr) \mod q]) 作为响应。
4. 验证者在 (s \neq 0) 且 (g^{\alpha s^{-1}} \cdot y^{r s^{-1}} = I) 时接受。
该识别方案在离散对数问题相对于 (G) 较难的情况下是安全的。诚实执行的记录可以被模拟,攻击者
超级会员免费看
订阅专栏 解锁全文
1424

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



