Applied Cryptography
From base64 and SHA-256 to RSA, AES, ECDSA, TLS 1.3, certificate authorities, the Signal protocol, and zero-knowledge proofs. Cryptography by implementation.
Course sequence
- 01
Build a Base64 Encoder/Decoder
Not startedImplement RFC 4648 base64 encoding from scratch: the alphabet, 3-byte to 4-char encoding, padding, decoding with error handling, and the URL-safe variant used in JWT. Used in email, data URIs, HTTP Basic auth, and PEM-encoded keys.
beginner8 lessons~2h - 02
Build a CSPRNG
Not startedImplement a cryptographic random number generator. Learn why Math.random() and rand() are insecure, how the OS gathers entropy, and implement HMAC-DRBG (NIST SP 800-90A) and Fortuna. The foundation underneath every TLS handshake, every AES IV, every session token.
intermediate8 lessons~2h - 03
Build a Password Hasher
Not startedImplement secure password hashing: salts, PBKDF2-style iteration, bcrypt, argon2id, constant-time comparison, and rehash-on-login. Why SHA/MD5 for passwords is dangerous and what to use instead.
intermediate8 lessons~2h - 04
Build SHA-256 from Scratch
Not startedImplement SHA-256 from raw bit operations. You'll build ROTR/Σ/σ/Ch/Maj, the message schedule, the 64-round compression function, padding, and the full Merkle-Damgård construction. Then add HMAC for message authentication. By the end you'll deeply understand the hash function used in Bitcoin, Git, TLS, and JWT.
intermediate12 lessons~3h - 05
Build AES from Scratch
Not startedImplement the AES block cipher from raw bit operations: state matrix, GF(2^8) arithmetic, the S-box, ShiftRows, MixColumns, key schedule, and full 10-round encryption. Then add modes of operation (ECB, CBC, CTR, GCM). The cipher behind TLS, WPA2, and disk encryption.
advanced12 lessons~3h - 06
Build RSA from Scratch
Not startedImplement RSA from number theory primitives: modular exponentiation, prime generation via Miller-Rabin, modular inverse via extended Euclidean, key generation, encrypt/decrypt, signatures, padding (PKCS#1, OAEP, PSS). Then learn the historical attacks. The asymmetric crypto algorithm behind TLS, PGP, SSH, and Bitcoin until 2024.
advanced12 lessons~3h - 07
Build ECDSA Signatures
Not startedBuild elliptic-curve signatures from scratch: modular arithmetic, finite fields, point addition on secp256k1, scalar multiplication, ECDSA sign/verify. Foundation of Bitcoin, Ethereum, TLS. Includes the famous nonce-reuse attack that broke the PS3.
advanced13 lessons~3h - 08
Build a Certificate Authority
Not startedBuild a working CA: parse X.509 / ASN.1 DER, accept CSRs, validate domain ownership, issue certificates with proper extensions, publish to Certificate Transparency logs, manage revocation via CRL/OCSP, and protect signing keys in HSMs. The infrastructure underlying every HTTPS connection.
advanced10 lessons~3h - 09
Build TLS 1.3
Not startedBuild TLS 1.3 from scratch: AEAD ciphers, HKDF key schedule, ephemeral X25519 key exchange, the 1-RTT handshake, encrypted record layer, session resumption with PSK, and 0-RTT data. The protocol securing every HTTPS request on the modern internet.
advanced14 lessons~4h - 10
Build the Signal Protocol
Not startedBuild end-to-end encryption like Signal/WhatsApp: X3DH for asynchronous key agreement, the Double Ratchet for forward secrecy + break-in recovery, sender keys for group chat, and metadata-privacy techniques. The protocol behind 2 billion encrypted conversations daily.
advanced10 lessons~3h - 11
Build Zero-Knowledge Proofs
Not startedBuild ZK proofs from sigma protocols up to SNARKs: commitments, Schnorr's protocol, Fiat-Shamir transform, OR proofs, arithmetic circuits, R1CS, polynomial commitments, and the production landscape (Groth16, PLONK, STARKs). The cryptographic technique behind Zcash, zkRollups, and private credentials.
advanced10 lessons~3h
Create a free account to track your progress across this path.