# Ed25519是什么？定义、例子与常见误区

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

Source: https://ssl.sh/zh/glossary/ed25519/
Last updated: 2026-11-10

Ed25519 是 EdDSA（爱德华兹曲线数字签名算法）的一个具体实例，规范见 [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032)。它约有 128 位安全强度，设计上便于做成快速的恒定时间实现，并且每次签名的 nonce 由密钥和消息确定性地派生，避免了 [ECDSA](https://ssl.sh/zh/glossary/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](https://ssl.sh/zh/glossary/private-ca/) 中，例如内部微服务之间的 mTLS。它和其他椭圆曲线算法一样不抗量子，标准化的后量子签名对应物是 [ML-DSA](https://ssl.sh/zh/glossary/ml-dsa/)。

## 例子
生成 Ed25519 密钥、为内部服务签一张自签名证书，再生成一把 SSH 密钥：

```bash
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 算法攻破。

## 相关术语

- [ECC](https://ssl.sh/zh/glossary/ecc/): ECC 即椭圆曲线密码学，是基于有限域上椭圆曲线代数结构的公钥密码技术，能用较短的密钥提供很高的安全强度。
- [ECDSA](https://ssl.sh/zh/glossary/ecdsa/): ECDSA 是基于椭圆曲线的数字签名算法，在 TLS 证书中作为 RSA 的替代方案，密钥和签名更小、签名运算更快。
- [数字签名](https://ssl.sh/zh/glossary/digital-signature/): 数字签名是用私钥对消息计算出的一个值，任何持有对应公钥的人都能验证它，从而确认消息来源和内容未被篡改。
- [P-256](https://ssl.sh/zh/glossary/p-256/): P-256 是 NIST 标准化的 256 位素数域椭圆曲线，也叫 secp256r1 或 prime256v1，广泛用于 ECDSA 证书和 ECDHE 密钥交换。
- [ML-DSA](https://ssl.sh/zh/glossary/ml-dsa/): ML-DSA 是 NIST 于 2024 年 8 月在 FIPS 204 中标准化的基于格的后量子数字签名算法，源自 CRYSTALS-Dilithium。
- [私有 CA](https://ssl.sh/zh/glossary/private-ca/): 私有 CA 是企业为自己的系统和设备搭建的证书颁发机构，其根证书只在企业主动安装的设备上受信任。
