Skip to content
Learning path

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.

mixed11 courses117 lessons~29 hoursFree
Start pathor sign up to track progress

Course sequence

  1. 01

    Build a Base64 Encoder/Decoder

    Not started

    Implement 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
  2. 02

    Build a CSPRNG

    Not started

    Implement 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
  3. 03

    Build a Password Hasher

    Not started

    Implement 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
  4. 04

    Build SHA-256 from Scratch

    Not started

    Implement 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
  5. 05

    Build AES from Scratch

    Not started

    Implement 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
  6. 06

    Build RSA from Scratch

    Not started

    Implement 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
  7. 07

    Build ECDSA Signatures

    Not started

    Build 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
  8. 08

    Build a Certificate Authority

    Not started

    Build 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
  9. 09

    Build TLS 1.3

    Not started

    Build 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. 10

    Build the Signal Protocol

    Not started

    Build 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. 11

    Build Zero-Knowledge Proofs

    Not started

    Build 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.

Applied Cryptography