Explore
Every topic, in plain words
A one-line answer for each of the 21 topics on this site, grouped by kind, with a first stop for each when you're ready to go deeper.
Foundations
The math and primitives underneath everything else — modular arithmetic, hashing, randomness, key derivation.
- The history and purpose of cryptography
- Before the math: what cryptography is actually trying to do, and the 2,500-year arms race between codemakers and codebreakers that got us here. First stop: read the module (20 min) →
- The math underneath: modular arithmetic & one-way functions
- Every public-key algorithm in this catalog leans on the same idea: a calculation that's easy in one direction and effectively impossible to undo in the other. First stop: read the module (22 min) →
- Hash functions & digital signatures
- One-way fingerprints for data, and the mechanism that proves a message is authentic and untampered — without encrypting anything. First stop: read the module (26 min) →
- Password hashing & key derivation: PBKDF2, bcrypt, scrypt, Argon2
- A cryptographic hash is too fast for passwords. KDFs deliberately slow things down — and not all of them do it the same way. First stop: read the module (11 min) →
- Key sizes & security levels: what the numbers mean
- 128-bit AES, 2048-bit RSA, 256-bit ECC — these numbers aren't comparable at face value. Here's how to actually read them. First stop: read the module (10 min) →
- Random number generation: the primitive everything else depends on
- Every key, nonce, and IV in this catalog assumes truly unpredictable randomness. When that assumption breaks, everything built on top breaks with it. First stop: read the module (10 min) →
- Why quantum computers break this: Shor's algorithm
- The bridge module: why everything above is called "classical" cryptography, and exactly what a future quantum computer would do to it. First stop: read the module (11 min) →
Symmetric-key
One shared key encrypts and decrypts. Fast, and doing most of the actual work in any connection.
- Symmetric-key cryptography & AES
- The same key locks and unlocks the data. Fast, simple in concept, and everywhere — from disk encryption to the bulk of every TLS session. First stop: read the module (26 min) →
- Stream ciphers & ChaCha20-Poly1305
- Not every symmetric cipher works in fixed blocks. ChaCha20 generates a keystream instead — and paired with Poly1305, it's AES-GCM's fastest rival. First stop: read the module (10 min) →
Public-key
Two mathematically linked keys solve the problem symmetric crypto can't: sharing a secret with a stranger.
- RSA & public-key cryptography
- Two mathematically linked keys — one public, one private — solve the problem symmetric crypto can't: how do you share a secret with someone you've never met? First stop: read the module (30 min) →
- RSA padding: OAEP, PKCS#1 v1.5, and why raw RSA fails
- Textbook RSA is deterministic and malleable. Padding schemes are what actually make RSA encryption and signing safe to use in the real world. First stop: read the module (13 min) →
- Elliptic Curve Cryptography (ECC / ECDSA)
- The same public-key guarantees as RSA, with dramatically smaller keys — because the underlying hard problem is different math entirely. First stop: read the module (28 min) →
Protocols
How the primitives above get composed into systems you actually use — HTTPS, SSH, certificates, messaging.
- Diffie-Hellman key exchange
- Two parties agree on a shared secret over a public channel, without ever transmitting the secret itself — the idea that started public-key cryptography. First stop: read the module (24 min) →
- X.509 certificates & the PKI trust hierarchy
- A certificate is just a signed statement binding a public key to an identity. Here's what's actually inside one, and how revocation works. First stop: read the module (24 min) →
- JSON Web Tokens & API authentication
- JWTs put a signed claim in every request header. They're everywhere in modern APIs — and a few well-known implementation mistakes keep recurring. First stop: read the module (20 min) →
- SSH: key exchange, host keys, and authentication
- The protocol behind every remote login and git push combines the same primitives as TLS, arranged slightly differently. First stop: read the module (10 min) →
- TLS in practice: how HTTPS puts it all together
- Every padlock icon runs a coordinated handshake combining key exchange, certificates, symmetric encryption, and integrity checks — in under a round trip. First stop: read the module (16 min) →
- End-to-end encrypted messaging: the Signal Protocol
- TLS protects data in transit to a server. The Signal Protocol's Double Ratchet goes further — encrypting so not even the server operator can read your messages. First stop: read the module (13 min) →
Practice
Where cryptography meets the real world — attacks, blockchains, and the risk that's already here.
- Side-channel & timing attacks: when the math is fine but the implementation isn't
- A cryptographic algorithm can be mathematically unbreakable and still leak its secret key through how long it takes to run. First stop: read the module (11 min) →
- Cryptography inside blockchains: hashing, Merkle trees, and signatures
- Bitcoin and Ethereum don't invent new cryptography — they compose the same primitives in this catalog into a specific, tamper-evident structure. First stop: read the module (12 min) →
- Harvest now, decrypt later: the risk that's already here
- You don't need a working quantum computer today to be at risk today. Anything encrypted now with RSA or ECC can simply be recorded and decrypted later. First stop: read the module (9 min) →