# ECC（椭圆曲线密码学）是什么？定义、例子与常见误区

> ECC 即椭圆曲线密码学，是基于有限域上椭圆曲线代数结构的公钥密码技术，能用较短的密钥提供很高的安全强度。

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

ECC 是一类公钥密码技术的总称，安全性建立在椭圆曲线离散对数问题之上。TLS 中它扮演两个角色：用 [ECDHE](https://ssl.sh/zh/glossary/ecdhe/) 做密钥交换，用 [ECDSA](https://ssl.sh/zh/glossary/ecdsa/) 或 EdDSA 做签名。常见曲线有 NIST 的 [P-256](https://ssl.sh/zh/glossary/p-256/) 和 P-384、Curve25519（用于密钥交换时称 X25519），以及 Ed25519 签名所用的 Curve25519 爱德华兹形式。

## 为什么重要
达到同样的安全强度，ECC 所需的密钥比 RSA 或有限域 Diffie-Hellman 小得多，证书更小、握手数据更少、每条连接消耗的 CPU 也更少。今天几乎所有 TLS 密钥交换都基于椭圆曲线，"ECC 证书"（即使用 ECDSA 密钥的证书）也是大多数 CA 的标准选项，阿里云、腾讯云的证书服务里通常把它标为 ECC 或 ECDSA。与 RSA 一样，ECC 在足够大的量子计算机上会被 Shor 算法破解，因此现在正与后量子算法组合成混合密钥交换。

## 例子
按 NIST SP 800-57 的大致等效强度对比：

```text
Security level   RSA / DH modulus   ECC key size
112 bits         2048 bits          224 bits
128 bits         3072 bits          256 bits (P-256, X25519)
192 bits         7680 bits          384 bits (P-384)
```

查看本机 OpenSSL 支持的曲线：

```bash
openssl ecparam -list_curves
```

## 常见误区
- **ECC 是一种证书类型。** ECC 指的是数学方法，所谓"ECC 证书"只是公钥为 ECDSA 密钥的证书。
- **ECC 比 RSA 新，所以能抗量子。** Shor 算法对两者都有效，替代方案是 ML-KEM、ML-DSA 等后量子算法。
- **哪条曲线都能干任何事。** X25519 是密钥交换函数，不能用于签名，TLS 服务器证书使用的是 P-256 这类签名曲线。

## 相关术语

- [ECDSA](https://ssl.sh/zh/glossary/ecdsa/): ECDSA 是基于椭圆曲线的数字签名算法，在 TLS 证书中作为 RSA 的替代方案，密钥和签名更小、签名运算更快。
- [ECDHE](https://ssl.sh/zh/glossary/ecdhe/): ECDHE 是椭圆曲线上的临时 Diffie-Hellman 密钥交换，TLS 双方每次握手都生成新的椭圆曲线密钥对，并据此协商出共享密钥。
- [P-256](https://ssl.sh/zh/glossary/p-256/): P-256 是 NIST 标准化的 256 位素数域椭圆曲线，也叫 secp256r1 或 prime256v1，广泛用于 ECDSA 证书和 ECDHE 密钥交换。
- [Ed25519](https://ssl.sh/zh/glossary/ed25519/): Ed25519 是在 Curve25519 爱德华兹形式上实现的 EdDSA 签名方案，由 RFC 8032 定义，公钥 32 字节，签名 64 字节且为确定性签名。
- [RSA](https://ssl.sh/zh/glossary/rsa/): RSA 是 1977 年提出的公钥算法，TLS 用它对证书和握手进行签名，在 TLS 1.3 之前还用它传输会话密钥。
- [密钥长度](https://ssl.sh/zh/glossary/key-size/): 密钥长度是密钥的位数，其安全含义取决于算法，例如 256 位的 ECDSA 密钥比 2048 位的 RSA 密钥更强。
- [后量子密码](https://ssl.sh/zh/glossary/post-quantum-cryptography/): 后量子密码（PQC）是专为抵御大规模量子计算机攻击而设计的公钥密码算法，用来替代可能被量子计算机破解的 RSA 和 ECC。
