Elliptic Curves for Cryptography
Why cryptographers moved to a new kind of group.
| Security level | Symmetric key | RSA / DH key | Elliptic curve key |
|---|---|---|---|
| 80-bit | 80 bits | 1024 bits | 160 bits |
| 128-bit | 128 bits | 3072 bits | 256 bits |
| 192-bit | 192 bits | 7680 bits | 384 bits |
| 256-bit | 256 bits | 15360 bits | 512 bits |
Addition on a curve, not a number line.
| Operation | Integer group (\(\mathbb{Z}_p^*\)) | Elliptic curve (\(E(\mathbb{F}_p)\)) |
|---|---|---|
| Group operation | \(a \cdot b \bmod p\) | \(P + Q\) |
| Repeated operation | \(g^n \bmod p\) | \(nP\) |
| Fast algorithm | Square-and-multiply | Double-and-add |
| Hard problem | Discrete log (DLP) | EC discrete log (ECDLP) |
The best attacks are worse, so keys can be shorter.
The specific curve used in modern protocols.
\[ \begin{array}{lcl} \textbf{Alice} & & \textbf{Bob} \\ \alpha \xleftarrow{R} \{0,1\}^{256} & & \beta \xleftarrow{R} \{0,1\}^{256} \\ u \leftarrow \alpha \cdot G & \xrightarrow{\;u\;} & \\ & \xleftarrow{\;v\;} & v \leftarrow \beta \cdot G \\ w \leftarrow \alpha \cdot v & & w \leftarrow \beta \cdot u \end{array} \]
How the group law becomes real crypto.
| Notation | Meaning | Used in |
|---|---|---|
| \(E(\mathbb{F}_p)\) | Elliptic curve group over \(\mathbb{F}_p\) | Public Key Crypto |
| \(G\) | Base point (generator) of the curve group | ECDH, ECDSA |
| \(nP\) | Scalar multiplication: \(P + P + \ldots + P\) (\(n\) times) | All EC crypto |
| ECDLP | Given \(P\) and \(nP\), find \(n\) | Security assumption |
| X25519 | ECDH on Curve25519 (\(p = 2^{255} - 19\)) | TLS 1.3, Signal, HPKE |
| Ed25519 | EdDSA signatures on Curve25519 | SSH, Signal |
| CDH | Given \(\alpha G\), \(\beta G\), compute \(\alpha \beta G\) | ECDH security |