Number Theory
Elliptic Curves
A Bitcoin private key is a random 256-bit number k. The public key is the point kG on the curve secp256k1: y^2 = x^3 + 7. The entire security of the system rests on the fact that the discrete-logarithm problem on this curve requires 2^128 operations. Behind every crypto transaction sits algebraic geometry.
- Bitcoin / Ethereum: ECDSA on secp256k1 protects transactions worth hundreds of billions of dollars
- TLS 1.3: ECDH key exchange on the P-256 curve underpins HTTPS connections
- Signal, WhatsApp: X25519 - ECDH on Curve25519 for message encryption
- SSH: Ed25519 signatures on an elliptic curve in modern SSH clients
- Passports and chip cards: ECDSA in EMV chip cards
- Post-quantum cryptography: elliptic-curve isogenies - the SIKE algorithm
y^2 = x^3 + 7. That is the curve secp256k1. A Bitcoin private key is a random 256-bit number k. The public key is the point kG on this curve. The entire security of the system rests on one fact: finding k from G and kG requires 2^128 operations. The geometry of algebraic curves sits behind every transaction.
**What this lesson is really about**: the points on the curve form a group - a non-obvious fact. Algebraic geometry produces the group, number theory over finite fields produces computability, the ECDLP produces security. Three layers, one cryptosystem.
Real curves in production
ECDSA: digital signature
**Elliptic curves in modern systems** From math to production security - TLS 1.3: ECDHE for key exchange. Default: Curve25519 (X25519). Each HTTPS connection: two key pairs, ECDH, shared secret. Perfect forward secrecy: new keys per session. - Bitcoin / Ethereum: ECDSA for transactions. secp256k1. Private key = 32 bytes. Public key = 64 bytes (x, y). Address = Hash160(publicKey). ~400,000 transactions per day need ECDSA verification. - Signal / WhatsApp: X3DH plus Double Ratchet. X3DH (Extended Triple DH): 3 ECDH exchanges for forward secrecy and future secrecy. Curve25519. Double Ratchet rotates keys after each message. - SSH / GPG / JWT: Ed25519 for authentication. EdDSA (Ed25519) is faster than ECDSA, immune to k-reuse, and constant-time. GitHub keys, SSH keys, JWT tokens.