# What Is ECC (Elliptic Curve Cryptography)? Definition and Examples

> ECC (Elliptic Curve Cryptography) is public-key cryptography based on elliptic curves over finite fields, giving strong security with small keys.

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

ECC is a family of public-key techniques whose security rests on the elliptic-curve discrete logarithm problem. In TLS it appears in two roles: key exchange with [ECDHE](https://ssl.sh/glossary/ecdhe/), and signatures with [ECDSA](https://ssl.sh/glossary/ecdsa/) or EdDSA. Common curves are NIST [P-256](https://ssl.sh/glossary/p-256/) and P-384, Curve25519 (used as X25519 for key exchange) and its Edwards form behind Ed25519 signatures.

## Why it matters
ECC reaches a given security level with far smaller keys than RSA or finite-field Diffie-Hellman, which means smaller certificates, smaller handshakes and less CPU per connection. Nearly all TLS key exchange today is elliptic-curve based, and "ECC certificates" (certificates with ECDSA keys) are a standard option at most CAs. Like RSA, ECC would be broken by Shor's algorithm on a sufficiently large quantum computer, which is why it is being combined with post-quantum algorithms in hybrid key exchange.

## Example
Approximate equivalent strengths, following 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)
```

List the curves your OpenSSL build supports:

```bash
openssl ecparam -list_curves
```

## Common misconceptions
- **"ECC is a type of certificate."** ECC is the mathematics; an "ECC certificate" is simply a certificate containing an ECDSA public key.
- **"ECC is quantum-safe because it is newer than RSA."** Shor's algorithm breaks both; post-quantum algorithms such as ML-KEM and ML-DSA are the replacements.
- **"Any curve can do any job."** X25519 is a key-exchange function and cannot sign, so TLS server certificates use signature curves such as P-256.

## Related terms

- [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。
