From Caesar ciphers and Shannon entropy through symmetric encryption, public-key cryptography, digital signatures, zero-knowledge proofs, authenticated encryption, and a preview of homomorphic encryption.
Cryptography is the mathematical engineering discipline that turns hard mathematical problems into security guarantees. This course covers the complete arc of modern cryptography: classical ciphers, information-theoretic security, symmetric encryption, MACs, hash functions, public-key cryptography, digital signatures, zero-knowledge proofs, authenticated encryption, partially homomorphic encryption, and a post-quantum preview. Every topic is grounded in both the mathematics and the real attacks that shaped it.
Built by Lakshya Kumar
Paste this into any AI chat. Fill in the bracketed parts with your context — you'll get back a straight answer on whether this belongs on your plate.
We grant free access case-by-case — students, career-switchers, builders on a tight budget. Sign in to send us a note.
Sign in to applyComplete all modules, then submit the required number of capstone projects. Each must earn a passing rating from an admin reviewer.
Choose one: implement a TLS 1.3 handshake simulation (HKDF, record layer, AEAD); implement a zero-knowledge proof of knowledge for a secret discrete logarithm with Fiat-Shamir; or implement a Paillier-based private sum protocol for 3 parties. Include a security analysis of what your implementation proves and what one change would break it.
I'm studying Cryptography: classical ciphers, information-theoretic security, symmetric encryption (AES, stream ciphers, modes), hash functions and MACs, public-key cryptography (RSA, DH, ECC), digital signatures (ECDSA, Schnorr), zero-knowledge proofs, authenticated encryption (GCM, ChaCha20-Poly1305), partially homomorphic encryption (Paillier), and post-quantum preview. Context: 1. My goal: [e.g. "understand TLS end-to-end", "understand ZKPs for a blockchain project", "audit code that uses crypto libraries"] 2. My background: [e.g. "completed number theory module", "software engineer who calls crypto APIs"] 3. One thing to understand deeply: [e.g. "why does Schnorr work?", "how does AEAD prevent tampering?"] Answer: - For (3): give the mathematical proof in 4 steps, then a Python snippet demonstrating it. - Based on (1): which attack or failure mode is most relevant to my goal? - What's the most common cryptographic mistake at my skill level?
Implement a simplified TLS 1.3 handshake from scratch: key exchange (X25519), key schedule, certificate verification. Confirm interoperability with a real server (e.g., OpenSSL) using your client. Document the bytes on the wire.
Implement a Merkle tree with inclusion + non-inclusion proofs over 1M leaves. Benchmark proof generation, proof verification, and storage. Compare two hash functions (SHA-256 vs Poseidon) and document the tradeoffs for ZK-friendliness.
Build a CLI that encrypts a directory using authenticated encryption (AES-GCM or ChaCha20-Poly1305) + a strong KDF (Argon2id). Include integrity-protected metadata, deletion-proof storage, and a recovery flow from a passphrase. Test against tampered files.
Take a cryptographic implementation (your own or an open-source one) and audit it for side-channel issues: timing, cache, branch. Document any leaks you find and the fix (constant-time alternative). Produce a written audit report.
Free online. The most comprehensive modern reference. Use alongside Modules 7–10.