Elliptic Curve Cryptography (ECC): Complete Guide
Elliptic Curve Cryptography (ECC) is a public-key cryptosystem that offers the same security as RSA or ElGamal with much smaller key sizes. Introduced by Neal Koblitz and Victor Miller in 1985, ECC is based on the Elliptic Curve Discrete Logarithm Problem (ECDLP) which is significantly harder to solve than integer factorization for equivalent key sizes.
Standard Curves
| Curve | Bit size | Security | Use case |
| secp256r1 (P-256) | 256-bit | 128-bit | TLS, HTTPS, JWT ES256 |
| secp384r1 (P-384) | 384-bit | 192-bit | FIPS compliance, high security |
| secp521r1 (P-521) | 521-bit | 260-bit | Maximum security applications |
| Curve25519 | 256-bit | 128-bit | Signal, WireGuard, SSH |
ECC vs RSA Key Sizes
| ECC key size | RSA equivalent | Security level |
| 256-bit | 3072-bit RSA | 128-bit |
| 384-bit | 7680-bit RSA | 192-bit |
| 521-bit | 15360-bit RSA | 260-bit |
Core ECC Algorithms
- ECDH — Elliptic Curve Diffie-Hellman: key exchange
- ECDSA — Elliptic Curve Digital Signature Algorithm: signing
- ECIES — Elliptic Curve Integrated Encryption Scheme: hybrid encryption (used here)
References
- Koblitz, N. (1987). "Elliptic Curve Cryptosystems"
- NIST FIPS 186-4: Digital Signature Standard
- SafeCurves — safe elliptic curves for cryptography
- ECC on Wikipedia