Stop taking RSA and elliptic curves on faith — build the arithmetic yourself until you can prove why breaking them is hard.
You can use RSA without understanding a line of it: call a library, get a keypair, ship. Then someone asks why 2048 bits is safe and 512 is not, why the public exponent is almost always 65537, or what goes wrong if two keys accidentally share a prime — and the whole thing turns into a black box you are trusting on reputation. This course closes that gap by making you build the arithmetic yourself. You start where every scheme starts — division with remainder, the Euclidean algorithm, Bézout’s identity — and work up through modular inverses, the Chinese Remainder Theorem, primality testing, Euler’s theorem, quadratic residues, finite fields, and the elliptic-curve group law. Every module ends in running Python: your own Miller-Rabin, your own GF(2^8) multiply reproducing AES MixColumns, your own secp256k1 point decompression, Wiener’s attack pulling a private exponent out of a public key. By the end you can read a cryptosystem’s security argument, name the hardness assumption holding it up, and say precisely what would have to break for the scheme to fall.
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 applyFinished the tasks? Take the prompt to your AI and get tested on it. We copy the prompt and open the app — just paste it in.
Wrapping numbers at a modulus is how you compute with enormous secrets and stay in range — and how RSA decryption gets four times faster.
Nobody proves a 2048-bit prime is prime — they gamble, carefully. Learn the sieve, the density law, and the test your crypto library runs.
Modular exponentiation loops back on itself, and that single fact is the entire reason your private key can undo what your public key did.
Half the numbers mod p have a square root and half do not — telling them apart cheaply is how a compressed public key unpacks into a point.
See AES, elliptic curves, and the discrete log as the same three structures in disguise, and every new scheme takes half the time to learn.
Drawing a line through two points on a curve turns out to be addition — the trick that lets 256 bits do what RSA needs 3,072 bits to do.
Approximating a number by simple fractions sounds harmless, right up to the point where it hands you a private exponent from a public key.
Prime density is not trivia — it sets how long key generation takes and how much ground an attacker has to cover before finding yours.
Security is just an attacker’s runtime. Implement the best-known attacks yourself and you can finally say what a key size really buys you.
Complete all modules, then submit the required number of capstone projects. Each must earn a passing rating from an admin reviewer.
Choose one: implement RSA key generation and encrypt/decrypt from scratch using your number theory library; implement ECDH key exchange over a named curve; or factor a 64-bit semiprime using Pollard's rho. Write a 6–8 page report explaining the mathematical underpinnings, security assumptions, and one known attack.
I'm studying Number Theory with a cryptographic focus: divisibility, GCD, extended Euclidean algorithm, modular arithmetic, Fermat's little theorem, Euler's theorem, primitive roots, quadratic residues, Legendre symbols, elliptic curves over finite fields, analytic number theory (prime counting, PNT), and computational algorithms (Miller-Rabin, Pollard's rho, BSGS). Context: 1. My goal: [e.g. "understand why RSA works", "prepare for a cryptography course", "understand ECC"] 2. My math background: [e.g. "comfortable with modular arithmetic", "last math course was calculus"] 3. A specific thing I'm confused about: [e.g. "why does Euler's theorem imply RSA decryption works?"] Answer: - For (3): give me a concrete proof sketch and a Python snippet that demonstrates the property. - Based on (1): which modules are most critical for my goal? - What's the number-theoretic hardness assumption at the heart of the cryptosystem I care about?
The computational reference. Essential for Modules 9–10.