术语表

Ed25519 (基于 Curve25519 的 EdDSA 签名)

最后核实

定义

Ed25519 是在 Curve25519 爱德华兹形式上实现的 EdDSA 签名方案,由 RFC 8032 定义,公钥 32 字节,签名 64 字节且为确定性签名。

Ed25519 是 EdDSA(爱德华兹曲线数字签名算法)的一个具体实例,规范见 RFC 8032。它约有 128 位安全强度,设计上便于做成快速的恒定时间实现,并且每次签名的 nonce 由密钥和消息确定性地派生,避免了 ECDSA 那种因随机数出错而泄露私钥的问题。RFC 8410 定义了它在 X.509 证书中的用法,TLS 1.3 中有 ed25519 签名方案,NIST 也在 FIPS 186-5 中加入了 EdDSA。

为什么重要

Ed25519 是 SSH 密钥的首选算法,在软件签名等场景中也很常见。但公网网站的情况不同:截至 2026 年 11 月,WebPKI 中的 CA 签发的 TLS 证书使用 RSA 或 ECDSA(P-256/P-384)密钥,所以 Ed25519 服务器证书只出现在你能同时掌控 CA 和客户端的私有 PKI 中,例如内部微服务之间的 mTLS。它和其他椭圆曲线算法一样不抗量子,标准化的后量子签名对应物是 ML-DSA。

例子

生成 Ed25519 密钥、为内部服务签一张自签名证书,再生成一把 SSH 密钥:

openssl genpkey -algorithm ED25519 -out ed25519.key
openssl req -new -x509 -key ed25519.key -days 30 -subj "/CN=internal.example.com" -out ed25519.crt
ssh-keygen -t ed25519 -C "deploy@example.com"

常见误区

  • Ed25519 和 X25519 是一回事。 两者基于同一条底层曲线,但用途不同:Ed25519 用于签名,X25519 用于密钥交换。
  • 网站可以申请公开信任的 Ed25519 证书。 公共 CA 签发的 TLS 证书是 RSA 或 ECDSA,Ed25519 适合在私有 PKI 中使用。
  • Ed25519 是后量子算法。 它属于椭圆曲线密码,和 ECDSA、RSA 一样会被 Shor 算法攻破。

延伸阅读