密码学系列 - ECDSA vs. EdDSA:主要区别

ECDSA(椭圆曲线数字签名算法)和 EdDSA(Edwards 曲线数字签名算法)都是基于椭圆曲线的签名算法,但 EdDSA 在多个方面优化了 ECDSA,使其更快、更安全且更易于实现。

1. 主要区别对比

特性 ECDSA EdDSA
曲线类型 Weierstrass 曲线(如 secp256k1, secp256r1) Edwards 曲线(如 Curve25519, Curve448)
消息哈希 需要外部哈希(如 SHA-2) 内置哈希(使用 SHA-512 / SHAKE256)
随机数(k) 需要每次签名时生成随机数 kk 不需要随机数,使用确定性签名
抗侧信道攻击 易受攻击(随机数 kk 生成错误会泄露私钥) 更安全(固定哈希方式避免问题)
签名速度 相对较慢(需要逆元计算) 更快(更少的模运算)
签名大小 72 字节(secp256r1) 64 字节(Ed25519)
计算效率 需要逆元计算,计算量较大 更快,基于 Edwards 曲线优化

2. ECDSA 签名原理

ECDSA(Elliptic Curve Digital Signature Algorithm)的工作流程:

  1. 密钥生成:
    • 选择一个私钥 d d d
    • 计算公钥 G P = d G GP = dG GP=dG
  2. 签名过程:
    • 生成随机数 k k k
    • 计算 R = k G R = kG R=kG,取 x x x 坐标作为 r r r
    • 计算 s = k − 1 ( H ( m ) + d r ) m o d    n s = k^{-1} (H(m) + dr) \mod n s=k−1(H(m)+dr)modn
    • 签名为 ( r , s ) (r, s) (r,s)
  3. 验证过程:
    • 计算 u 1 = H ( m ) s − 1 m o d    n u_1 = H(m) s^{-1} \mod n u1=H(m)s−1modn, u 2 = r s − 1 m o d    n u_2 = r s^{-1} \mod n u2=rs−1modn
    • 计算 P ′ = u 1 G + u 2 P P' = u_1 G + u_2 P P′=u1G+u2P
    • 验证 r ′ = x ( P ′ ) m o d    n r' = x(P') \mod n r′=x(P′)modn 是否等于 r r r

缺点:

  • 需要随机数 k k k,如果随机数泄露或重复,私钥会被恢复(如 Bitcoin Android 2013 漏洞)。
  • 计算 s − 1 m o d    n s^{-1} \mod n s−1modn 需要求逆,计算量较大。

3. EdDSA 签名原理

EdDSA(Edwards-curve Digital Signature Algorithm)优化了 ECDSA:

  1. 密钥生成:
    • 私钥: d d d(通过哈希种子确定)
    • 公钥: P = d G P = dG P=dG
  2. 签名过程:
    • 计算哈希 r = H ( d , m ) m o d    n r = H(d, m) \mod n r=H(d,m)modn
    • 计算 R = r G R = rG R=rG
    • 计算挑战值 k = H ( R , P , m ) m o d    n k = H(R, P, m) \mod n k=H(R,P,m)modn
    • 计算 s = r + k d m o d    n s = r + kd \mod n s=r+kdmodn
    • 签名为 ( R , s ) (R, s) (R,s)
  3. 验证过程:
    • 计算 k = H ( R , P , m ) m o d    n k = H(R, P, m) \mod n k=H(R,P,m)modn
    • 计算 s G sG sG 和 R + k P R + kP R+kP 是否相等
    • 若相等,则签名有效

优势:

  • 确定性签名(避免 ECDSA 的随机数问题)
  • 更快的签名计算(使用 Edwards 曲线)
  • 签名大小更小(64 字节 vs. 72 字节)

4. 适用场景

场景 推荐算法
比特币、以太坊 ECDSA(secp256k1)
区块链新协议(Solana, Mina) EdDSA(Ed25519)
TLS, HTTPS 认证 EdDSA(更快,更安全)
硬件受限设备 EdDSA(签名计算更快)

总结

**EdDSA 主要优于 ECDSA 的地方:

  • 确定性签名,不需要随机数 kk,避免随机数问题
  • 计算更快,不需要求逆元,签名验证速度更快
  • 签名更小(64 字节 vs. 72 字节)
  • 安全性更高,抗侧信道攻击能力更强

ECDSA 在比特币、以太坊等区块链上广泛应用,而 EdDSA(如 Ed25519)在新一代区块链(Solana、Zcash)和 TLS 认证中更流行。


: 区块链知识系列
: 密码学系列
: 零知识证明系列
: 共识系列
: 公链调研系列
: BTC系列
: 以太坊系列
: EOS系列
: Filecoin系列
: 联盟链系列
: Fabric系列
: 智能合约系列
: Token系列

相关推荐
mmsx6 小时前
Android APK 加固方案怎么落地:从加壳到校验的组合取舍
android·网络·安全·签名
mmsx2 天前
Android 签名校验为什么能拦住二次打包:指纹与完整性校验
android·签名
deepseek236 天前
AI 模型隐藏任意能力拆解:把加密神经网络塞进宿主权重,能力评估为什么在密码学上抓不到
人工智能·深度学习·神经网络·密码学·模型安全
曼岛_9 天前
[图解密码学]第1章 密码学是什么
网络·密码学·图解密码学
HackTwoHub10 天前
DeepSeek Harness 红队破甲插件|适配 SRC 挖掘场景,区分平台拦截与模型原生输出,用于大模型安全边界合规测评研究
安全·web安全·网络安全·系统安全·密码学·网络攻击模型·安全架构
梦帮科技10 天前
【3.0】上线与运维:节点监控、水龙头、区块浏览器与安全清单
运维·安全·web安全·金融·区块链·密码学·安全架构
梦帮科技11 天前
【3.0修订版】跨链中继与事件编排:Relayer 监听、多签验证与故障自愈
web安全·金融·区块链·密码学·智能合约·安全架构·信任链
黄金龙PLUS11 天前
如何基于置换算法来设计对称加密算法
算法·网络安全·密码学·哈希算法·同态加密
梦帮科技11 天前
【3.0修订版】音乐权利 NFT:MusicRightsNFT 的确权思想与授权关联
网络协议·算法·web3·区块链·密码学·智能合约·零知识证明
HackTwoHub13 天前
Clown SRC skill第二代2.x最新版企业安全研究 Skill|证据优先的 SRC 与白盒审计工作流正式更新
网络·安全·web安全·网络安全·系统安全·密码学·安全架构