HomeGuidesProjects
Schedule time with me

Learning Quantum and Post-Quantum Cryptography

An eighteen-month plan from the arithmetic under RSA to the lattice mathematics under ML-KEM, written for a working cryptographic engineer about to spend their days on the post-quantum transition. Classical cryptography first and properly, then enough quantum mechanics to see exactly what Shor's algorithm breaks and what it costs, then the post-quantum families to the level of implementing the standards from their FIPS documents alone and defending their parameters.

The checklist and the gate log are mine. Signed out, the page is read-only.

Blocks are scored on gates, not hours. A gate is an implementation that passes the published test vectors, a proof that survives a check against the book, or a written assessment someone else has read, and the block is done when the gate passes.

Each block lists practice that scores you as well as reading: challenge sites, test vectors, problem sets with answers. Those cannot report back here, so I write their results in the gate log: a set completed, a vector suite passed, a parameter estimate reproduced.

The ideas

Eight ideas carry the whole subject; everything after is one of them applied. Each stage returns to all eight at more depth, and the second column is what owning one looks like.

IdeaYou own it when

Security is a reduction

A scheme is secure relative to a hardness assumption, and the proof is an algorithm: anyone who breaks the scheme is turned into someone who breaks the assumption. There is no other kind of security argument.

You write the reduction for a given scheme yourself, with the simulator and the loss stated, and can say what breaks if a hypothesis is dropped.

Structure is what a quantum computer eats

Shor's algorithm finds hidden periods, and factoring, discrete logarithms and elliptic curves all reduce to period finding. Problems without that structure, lattices and hashes among them, only lose the square root that Grover takes.

Shown a new hardness assumption, you say whether a quantum computer gets a polynomial or a square-root advantage against it, and why.

Amplitudes interfere

A quantum computer is not trying every answer at once. Amplitudes can be negative, and an algorithm is a way of arranging for the wrong answers to cancel and the right one to add up.

You explain Grover's rotation picture from memory, say why iterating past the optimum makes it worse, and why this gives a square root and no more.

Information-theoretic versus computational

The one-time pad and quantum key distribution are secure against any computer, at the cost of a channel that must already be authenticated. Everything post-quantum is computational, secure only for as long as its assumption holds.

You can say which half of a deployed system is which, and what the authentication in a quantum key distribution link is actually protected by.

Measurement disturbs, states cannot be copied

Measuring a quantum state in the wrong basis changes it, and no process copies an unknown state. Between them these are the whole of why an eavesdropper on a quantum channel leaves marks.

Given a protocol on a quantum channel, you name the measurement an attacker is forced to make and compute the error rate it leaves behind.

Errors hide secrets

A system of linear equations is easy; the same system with a little noise added to each equation is the learning with errors problem, and nobody knows how to solve it, quantum computer or not. Every lattice standard is this idea in a polynomial ring.

You write out ML-KEM's key generation, encapsulation and decapsulation as operations on module elements, and derive the decryption failure bound from the noise sizes.

Parameters are a cryptanalysis budget

A parameter set is chosen by costing the best known attack and leaving a margin. For lattices that is the block size at which lattice reduction finds the short vector, and the margin is the argument that has to be defended.

You run the lattice estimator on a scheme's parameters and reproduce the security level its designers claim, then say which attack sets it and what a better one would cost.

The job is migration

Traffic recorded today is decrypted when the machine arrives, so key exchange had to move first and signatures follow. Most of the work is finding where cryptography is, not choosing what replaces it.

Handed a system, you produce an inventory of its cryptography, rank what is exposed to harvest-now-decrypt-later, and put each item on the published transition timeline.

The standards

The documents the transition is measured against, and where each stood in September 2026. Check the dates before quoting any of them: this table is a snapshot, and the additional-signature process in particular moves every few months.

DocumentWhat it coversWhere it stands
FIPS 203, ML-KEMThe lattice key encapsulation mechanism, from KyberFinal, August 2024
FIPS 204, ML-DSAThe lattice signature, from DilithiumFinal, August 2024
FIPS 205, SLH-DSAThe stateless hash-based signature, from SPHINCS+Final, August 2024
FIPS 206, FN-DSAThe compact lattice signature, from FalconDraft; final expected late 2026 or 2027
SP 800-208The stateful hash-based signatures, LMS and XMSSFinal, October 2020
HQCA code-based key encapsulation mechanism, the backup to ML-KEMSelected March 2025; draft standard pending
Additional signaturesThe second signature competition, nine candidates in round threeRound three since May 2026; standards not before 2028
NIST IR 8547The transition timeline: RSA and elliptic curves deprecated 2030, disallowed 2035Initial public draft, November 2024
CNSA 2.0The national security systems suite and its dates, from software signing in 2025 to everything by 2035In force; dates are per system class
X25519MLKEM768The hybrid key exchange browsers and servers actually deploy in TLS 1.3IETF draft, widely deployed

Rules

  • Implement from the specification alone. Every standard in the plan is written once from its FIPS or RFC with the reference code closed, then checked against the published test vectors. Reading an implementation is not the same as being able to produce one.
  • State the assumption. Every scheme rests on a hardness assumption and every proof is a reduction to it. A claim of security that does not name what it reduces to is marketing.
  • Run every attack you read. A break described in a paper is reproduced, in Sage or Python, on a toy parameter set, before it counts as understood.
  • Never let the arithmetic be the thing that fails. Modular inverses, the Chinese remainder theorem, polynomial multiplication in a quotient ring and the number-theoretic transform are drilled until they are reflexes.
  • Treat quantum-safe on a product sheet as a question, not an answer. Ask which algorithm, which parameter set, which validation, and whether the classical half of a hybrid is still there.
  • Keep the log. A block is done when its gate passes, and the gate is scored from the log, not from how it felt.

Every week

StudySix hours a week from the block's reading, in sittings of at least an hour, with the exercises done as they come rather than saved for later.
CodeFour hours a week in Python, with Sage for anything algebraic. Every scheme in the week's reading is run against real test vectors the same week.
DeriveTwenty minutes a day rederiving one result from memory on paper: a reduction, a decryption correctness bound, the cost of a lattice attack. Timed, checked against the book, kept.
Read the fieldOne paper abstract a day from the IACR ePrint listing, and the week's posts on the NIST post-quantum forum. Ten minutes; the point is to recognise names and problems, not to follow every thread.
ReviewSunday evening: read the week's log, score the derivations, write the next week's three priorities.

Classical cryptography, properly

Weeks 1 to 20

Post-quantum cryptography is classical cryptography with different hardness assumptions. The reductions, the security games, the implementation discipline and the protocol mistakes are all the same, so this stage builds them from the ground up even for someone who has shipped cryptographic code. What was learned on the job is checked against the book here.

You can write a reduction proof for a symmetric or public-key scheme without the book open, you have implemented RSA, Diffie-Hellman and ECDSA from the definitions and broken each one through a known misuse, and you have modelled a protocol in a prover and watched it find an attack.

1. The mathematics underneath

Weeks 1 to 4

Everything later is arithmetic in a finite structure: integers modulo a prime, polynomials modulo another polynomial, vectors over both. This block makes that arithmetic automatic, so the cryptography can be about the cryptography.

  • Work through Shoup chapters 1 to 4 and 7: divisibility, congruences, the extended Euclidean algorithm, the Chinese remainder theorem, and the structure of the multiplicative group modulo n. Do the exercises with a pen before checking.
  • Groups, rings and fields from Shoup chapters 6, 9 and 16 to 19: cyclic groups and generators, polynomial rings, quotient rings, and the construction of finite fields of prime-power order.
  • Linear algebra over a finite field: Gaussian elimination modulo a prime, kernels and images, and the number of solutions of a linear system. This is what code-based and multivariate cryptography live on.
  • The birthday bound, tail bounds, and the probabilistic method well enough to read a security proof: derive why collisions appear after roughly the square root of the space, and what a statistical distance is.
  • Implement, from the definitions, in Python: extended Euclid, modular inverse, the Chinese remainder theorem, square-and-multiply exponentiation, multiplication in the field of 256 elements used by AES, and polynomial multiplication modulo x to the n plus 1.

Practice

  • CryptoHack, the mathematics track

    Modular arithmetic, lattices and elliptic curve challenges with a scoreboard. Log the challenges finished per week.

Gate

The six routines from the last task pass a hundred random test vectors each, checked against Sage, written and passing in a single sitting of under two hours.

Reading


2. Symmetric cryptography and the idea of a proof

Weeks 5 to 10

Pseudorandom functions, block ciphers, message authentication and hashing are where security games and reductions are first learned, on objects small enough to hold in the head. The proofs here are the template for every proof later, lattice ones included.

  • Katz and Lindell chapters 1 to 3: perfect secrecy, the one-time pad, the definition of computational security, and pseudorandom generators. Write the definitions out from memory at the end of each chapter.
  • Chapters 4 to 7: pseudorandom functions and permutations, modes of operation, message authentication codes, authenticated encryption and hash functions. Do the reduction exercises, not only the reading.
  • Boneh and Shoup part one alongside, for the same material with more rigour and the game-hopping style used in current papers.
  • Boneh's Cryptography I course, all weeks and all problem sets, as the graded check on the reading.
  • Cryptopals sets 1 to 4: every byte-at-a-time and padding-oracle attack implemented yourself. These are the mistakes you will later be paid to find.

Practice

  • Cryptography I

    Boneh's course. The problem sets are graded; log the score on each.

  • Cryptopals

    The challenge sets. Log the set and challenge number finished each week; the gate wants sets one to four.

Gate

Cryptopals sets one to four complete, and a written reduction proof that a cipher-block-chaining MAC on fixed-length messages is a secure MAC if the block cipher is a pseudorandom function, checked line by line against Katz and Lindell.

Reading


3. Public-key cryptography, the part that has to be replaced

Weeks 11 to 16

RSA, Diffie-Hellman and elliptic curves are exactly what a quantum computer removes, so this block learns them well enough to know what is being lost: the group structure, the assumptions, the constructions built on them, and the ways they fail when misused.

  • Katz and Lindell chapters 9 and 10: the algorithms on numbers and the assumptions, factoring, RSA, discrete logarithm, Diffie-Hellman, and the elliptic curve group.
  • Chapters 11 to 13: public-key encryption, hybrid encryption, padding and the random oracle model, digital signatures, and the Fiat-Shamir transform. Fiat-Shamir returns as the heart of ML-DSA.
  • Implement RSA with OAEP, Diffie-Hellman over a safe prime, and ECDSA over the P-256 curve from the definitions, then verify each against the NIST validation program's test vectors.
  • Break each of your implementations through a known misuse: a small exponent with no padding, a reused ECDSA nonce, and an invalid-curve point. Recover the private key in every case.
  • Cryptopals sets 5 to 8: the Diffie-Hellman, RSA and elliptic curve attacks, implemented yourself.

Practice

Gate

Cryptopals sets five to eight complete, and your own ECDSA over P-256 that passes the NIST vectors and recovers a private key from two signatures that reused a nonce, in under one hour from a cold start.

Reading


4. Protocols, implementations and formal tools

Weeks 17 to 20

Cryptography is deployed inside protocols, and most real failures are in the protocol or the implementation rather than the primitive. This block reads TLS 1.3 as a specification, learns constant-time discipline, and picks up the prover that finds protocol attacks mechanically.

  • Read RFC 8446 end to end and draw the TLS 1.3 handshake with every key derived and what each one protects. Then read the Noise framework specification for the same ideas in a smaller space.
  • Real-World Cryptography, the chapters on key exchange, authenticated encryption, secure transport and hardware, for how the pieces are actually assembled and managed.
  • Constant-time programming: read the BearSSL notes, then write a timing attack against a variable-time comparison in your own code and measure it working on your own machine.
  • The Tamarin prover tutorial, then model a two-message authenticated key exchange, remove the authentication, and let the prover find the man in the middle.

Practice

  • Tamarin prover

    The tool itself, with example models. Log which models you built and whether the prover terminated on each.

Gate

A Tamarin model of a two-message key exchange that finds the man-in-the-middle attack when authentication is removed and proves secrecy when it is restored, written and run in one weekend, with a page explaining what the prover checked.

Reading


Quantum mechanics, for a cryptographer

Weeks 21 to 36

Enough quantum computing to derive Shor's algorithm and cost it, not to build a machine. Then quantum cryptography proper, quantum key distribution and its no-go theorems, because it is the other answer to the same threat and someone in a cryptography department will be asked to assess it.

You have a state-vector simulator of your own, Shor's algorithm running in it, a defended estimate of what a cryptographically relevant machine costs, and a two-page position on quantum key distribution against post-quantum cryptography that you would sign.

5. Quantum information

Weeks 21 to 26

Qubits, unitaries, measurement, entanglement and the quantum Fourier transform, learned by building a simulator so that every claim about a circuit can be checked against numbers.

  • Nielsen and Chuang chapters 1 and 2: state vectors, the postulates, tensor products, measurement in a basis, the Bloch sphere, and density matrices. Do the exercises.
  • Quantum Country, all essays, with its spaced-repetition prompts kept up for the rest of the stage. It makes the notation automatic.
  • Chapter 4 on quantum circuits and chapter 5 on the quantum Fourier transform and phase estimation. Draw the transform circuit for four qubits by hand and count its gates.
  • Write a state-vector simulator in NumPy for up to ten qubits: single-qubit gates, controlled gates, measurement, and the Fourier transform built from them. Check it against Quirk circuit by circuit.
  • Prove the no-cloning theorem, derive the uncertainty relation for two conjugate bases, and show what a measurement in the wrong basis does to a state. These three are the whole foundation of the next block but one.

Practice

  • Quirk

    A drag-and-drop circuit simulator that shows amplitudes live. Your simulator is scored against it; log the circuits matched.

  • IBM Quantum Learning

    The Qiskit courses with graded exercises. Log the modules finished.

Gate

A ten-qubit state-vector simulator whose amplitudes agree with Quirk to six decimal places on ten circuits including the quantum Fourier transform, and the four-qubit transform circuit derived on paper in under thirty minutes.

Reading


6. Shor, Grover, and what they cost

Weeks 27 to 32

The threat, derived rather than quoted: period finding, the reduction from factoring and discrete logarithms to it, Grover's square root, and the resource estimates that turn an algorithm into a date. This is the block that lets you answer the question everyone asks.

  • Derive Shor's algorithm from phase estimation: order finding, continued fractions, and the classical reduction from factoring to order finding. Nielsen and Chuang section 5.3 and appendix 4.
  • Extend it to the discrete logarithm, then read the elliptic curve version. Understand why P-256 falls to fewer qubits than RSA-2048.
  • Run Shor's algorithm end to end in your own simulator to factor 15 and 21, with the continued fraction step written yourself.
  • Implement Grover's search on four qubits and plot the success probability against iterations; derive the optimal count and prove the square-root bound is tight.
  • Read the 2019 and 2025 resource estimates for RSA-2048 and the 2017 one for elliptic curves. Write down the logical qubit count, the physical count under surface-code assumptions, and the runtime, and be able to say which assumption each number is most sensitive to.

Practice

  • IBM Quantum Learning

    The Shor and Grover modules have exercises with answers; log the ones finished and the scores.

Gate

Shor's algorithm factoring 15 and 21 end to end in your own simulator, and a one-page estimate of the logical and physical qubits and the runtime for RSA-2048 with every assumption stated, defended against the numbers in the 2025 paper.

Reading


7. Quantum cryptography and its limits

Weeks 33 to 36

Quantum key distribution is the other answer to the quantum threat, and it is sold hard. This block learns it well enough to derive a key rate, run the attacks on real implementations, and hold a position on where it belongs, which for most networks is nowhere near the core.

  • BB84, B92 and the entanglement-based protocol, from Nielsen and Chuang chapter 12 and the review paper. Compute the sifting rate and the error an intercept-and-resend attacker leaves, then simulate both.
  • Read the Shor and Preskill proof and write out the argument in two pages: why entanglement purification implies BB84 is secure, and what the threshold error rate is.
  • The photon-number-splitting attack on weak coherent pulses, the decoy-state answer to it, and the GLLP key rate formula. Extend your simulation with both and compute the secret key rate against distance.
  • The no-go theorem for quantum bit commitment, device-independent key distribution, and quantum random number generation, from the Broadbent and Schaffner survey. Know what quantum mechanics cannot do for cryptography as well as what it can.
  • Read the NSA and NCSC positions on quantum key distribution and the ETSI standards work, then write a two-page memo on quantum key distribution against post-quantum cryptography for a federal network, with a recommendation.

Practice

  • IBM Quantum Learning

    The key distribution module runs BB84 on real hardware, with the error rate that implies. Log the rate you measured.

Gate

A BB84 simulation with the photon-number-splitting attack and decoy states whose secret key rate matches the GLLP formula within five percent at three distances, and the two-page position memo read and marked up by one colleague.

Reading


Post-quantum cryptography, to expert

Weeks 37 to 78

The standards, the mathematics under them, the attacks that set their parameters, the other families kept as backups, and then the engineering of actually moving systems over. The second half of this stage is the job description; the first half is what makes the second half more than reading vendor sheets.

You have implemented ML-KEM and SLH-DSA from their FIPS documents and passed the validation vectors, you have reproduced the security estimates of the standard parameter sets with the lattice estimator, you have reproduced one published break, and you have written and defended a migration assessment for a real system and given a talk on it.

8. Lattices and the standards built on them

Weeks 37 to 46

ML-KEM, ML-DSA and FN-DSA are all one idea, learning with errors in a polynomial ring, with different constructions on top. This block learns the idea from the worst-case hardness results down to the byte encodings in the FIPS documents.

  • Regev's survey and Peikert's decade paper: lattices, the short integer solution and learning with errors problems, the worst-case to average-case reductions, and the ring and module variants. Derive why a decision LWE solver gives a search one.
  • Lyubashevsky's Basic Lattice Cryptography notes: the Kyber and Dilithium constructions explained from the assumptions up, including Fiat-Shamir with aborts and why the rejection step exists.
  • The number-theoretic transform in the ML-KEM ring: derive the roots of unity, implement the transform and its inverse, and show polynomial multiplication becomes pointwise. This is the arithmetic the whole family runs on.
  • Implement ML-KEM-768 from FIPS 203 alone, with the reference code closed: key generation, encapsulation, decapsulation, the encodings and the Fujisaki-Okamoto transform. Pass the validation program's known-answer vectors.
  • Read FIPS 204 and the draft FIPS 206 the same way and write out ML-DSA's signing loop with the reason for every rejection condition. Implementing it is optional; explaining it is not.
  • Write the proof that the underlying public-key encryption in ML-KEM is secure against chosen-plaintext attack under module learning with errors, and derive the decryption failure probability from the noise distributions.

Practice

  • ACVP test vectors

    NIST's known-answer vectors for ML-KEM, ML-DSA and SLH-DSA, under the generated JSON files. Log which parameter sets pass.

  • CryptoHack, the lattice track

    Learning with errors and reduction challenges with a scoreboard. Log the challenges finished.

Gate

An ML-KEM-768 implementation written from FIPS 203 alone that passes every known-answer vector in the NIST validation set, and the chosen-plaintext security reduction written out and checked by someone who has read the Kyber paper.

Reading


9. Lattice cryptanalysis and why the parameters are what they are

Weeks 47 to 52

A parameter set is a bet on the best attack. This block learns lattice reduction well enough to run it, the estimator well enough to reproduce the security claims in the standards, and the hybrid and side-channel attacks that the estimator does not cover.

  • Implement the LLL algorithm from Nguyen and Vallée's first chapter and use it to break a low-density knapsack cryptosystem and a small RSA instance with a partially known key.
  • Block Korkine-Zolotarev reduction, the Gaussian heuristic, and the core-SVP cost model. Derive why the cost is exponential in the block size and where the constant in the exponent comes from.
  • The primal and dual attacks on learning with errors, and the hybrid attack on small secrets. Work through how each one is costed in the estimator's source.
  • Run the lattice estimator on every ML-KEM and ML-DSA parameter set and reproduce the classical core-SVP numbers in the specifications. Write down which attack sets each one.
  • Read the KyberSlash timing attack and one fault attack on ML-DSA, then find the division in a naive ML-KEM implementation and remove it.

Practice

  • The lattice estimator

    Albrecht's Sage tool. Log the parameter sets estimated and the bits the estimate gives for each.

Gate

Your own LLL that recovers the secret of a forty-dimensional low-density knapsack, and an estimator run for every ML-KEM parameter set that reproduces the classical core-SVP security levels in FIPS 203 within two bits, with the setting attack named for each.

Reading


10. Hash-based, code-based, multivariate and isogeny schemes

Weeks 53 to 60

The backups, kept because lattices might fall. Hash-based signatures rest on the least assumption there is and are already required for firmware signing; code-based encryption is the oldest post-quantum scheme and now a standard; multivariate and isogeny schemes are where the most instructive breaks happened.

  • Lamport, Winternitz, Merkle trees, and the stateful schemes in SP 800-208; then the hypertree and few-time signatures that make SLH-DSA stateless. Understand exactly what goes wrong if a stateful key is used twice.
  • Implement SLH-DSA-SHAKE-128s from FIPS 205 alone and pass the known-answer vectors.
  • Goppa codes, the McEliece and Niederreiter systems, and why information-set decoding sets their parameters. Then HQC, the scheme chosen as the backup to ML-KEM, and how it differs.
  • Oil and vinegar signatures and the MAYO candidate, then reproduce Beullens's break of Rainbow on a toy parameter set in Sage.
  • Supersingular isogenies at the level of the Castryck and Decru break: what SIKE assumed, what the attack used, and why SQIsign survives it. Run the published break script and explain each step.
  • Write a comparison of the four families for a firmware signing use case: key and signature sizes, signing and verification speed, the state problem, and what a break in each would look like.

Practice

Gate

SLH-DSA-SHAKE-128s written from FIPS 205 alone and passing every known-answer vector, and the four-family comparison for firmware signing as a one-page table with sizes and speeds measured from your own or reference code.

Reading


11. Migration engineering

Weeks 61 to 68

The job. Hybrid key exchange in real protocols, certificates and signatures, hardware modules and validation, inventory and prioritisation, and the government timelines the work is measured against. The gate is a migration assessment someone else has to read.

  • Read the hybrid key exchange draft for TLS 1.3, then stand up a server and client with a post-quantum capable OpenSSL, capture the handshake, and decode the key share field by field.
  • Post-quantum in SSH, IKEv2 and Signal: read how each one composed the classical and post-quantum halves and what each was worried about. Note where they disagree.
  • ML-DSA in X.509 and the composite signature drafts from the IETF LAMPS working group, and the size problem they create in certificate chains and TLS handshakes.
  • Hardware security modules and FIPS 140-3 validation for the new algorithms: what a validated module can and cannot do today, and how the validation program tests an implementation.
  • NIST IR 8547, CNSA 2.0 and the CISA guidance, as a table: which system class moves by which date. Then the Post-Quantum Cryptography Coalition's migration roadmap for the practical sequence.
  • Pick a real system you can see all of and write a migration assessment: a cryptographic inventory, a ranking by exposure to harvest-now-decrypt-later, a timeline against the standards, and the crypto-agility changes needed first.

Practice

  • Open Quantum Safe

    The demos and interoperability tests. Log which protocols you stood up and which key exchange each negotiated.

Gate

A hybrid TLS 1.3 handshake captured and decoded field by field with the key share sizes annotated, and a migration assessment for one real system with an inventory, a risk ranking and a timeline, read and marked up by two people who work on that system.

Reading


12. The research edge and the community

Weeks 69 to 78, then ongoing

Expert means the field comes to you: you read the new results as they appear, you can reproduce them, you contribute code the field uses, and you can stand in front of the department and explain a break the week it happens.

  • Read the post-quantum forum and the ePrint listing daily and keep a log of every result that would change a parameter set, a standard, or a deployment recommendation, with one paragraph each.
  • Reproduce one implementation or attack paper from the last two years end to end, with a public repository and a write-up of what did and did not reproduce.
  • Land one pull request in PQClean, liboqs or a comparable library: a test, a constant-time fix, a new parameter set, or a port.
  • Formal verification of an implementation: work through a verified ML-KEM component in hax or EasyCrypt far enough to explain what the proof covers and what it leaves out.
  • Give a talk to the department on one recent result, with the mathematics derived on the board and the consequence for a deployment stated.
  • Attend Real World Crypto or the PQCrypto conference, or follow the NIST standardisation conference recordings, and write up three talks that change what you would recommend.

Practice

  • PQClean

    Contributions are the score. Log each pull request opened and its state.

Gate

One reproduced paper with a public repository and write-up, one merged pull request to a post-quantum library, and one talk given to the department, all three inside the same six months.

Reading

  • Cryptology ePrint Archive

    Where results appear first. The daily listing is the reading habit.

  • NIST pqc-forum

    The mailing list where the standards are argued about in public.

  • Real World Crypto

    The conference closest to deployment; the talks are recorded.

  • PQCrypto

    The conference series for the field itself.

  • hax

    The Rust-to-proof toolchain used for the verified ML-KEM in libcrux.

  • EasyCrypt

    The proof assistant behind the Formosa verified implementations.


The bookshelf

Every book the blocks read from, in one place, with what it is for. Free ones are marked, and there is one at every stage. The paid ones are worth a used copy of the edition named.

BookStageWhy this one
A Computational Introduction to Number Theory and Algebra

Victor Shoup, second edition

Free
ClassicalAll the algebra the plan needs, proved, with exercises, from the author of half the reductions in the field.
Introduction to Modern Cryptography

Jonathan Katz and Yehuda Lindell, third edition

ClassicalThe standard textbook. Its definitions and proofs are the template for reading everything after it.
A Graduate Course in Applied Cryptography

Dan Boneh and Victor Shoup

Free
ClassicalDeeper than Katz and Lindell and written in the game-hopping style current papers use. The free one for the stage.
Serious Cryptography

Jean-Philippe Aumasson, second edition

ClassicalWhat breaks in practice, from someone who breaks it. Short enough to read alongside the textbook.
Real-World Cryptography

David Wong

ClassicalHow the primitives are assembled into systems, with a first chapter on post-quantum schemes at the end.
Mathematics of Public Key Cryptography

Steven Galbraith

Free
ClassicalDiscrete logarithms, elliptic curves and lattices at full mathematical depth, free from the author.
Quantum Computation and Quantum Information

Michael Nielsen and Isaac Chuang, tenth anniversary edition

QuantumThe standard text, and its chapter 12 is the only textbook treatment of quantum cryptography most people will need.
Quantum Country

Andy Matuschak and Michael Nielsen

Free
QuantumThe notation made automatic by spaced repetition. Read it before Nielsen and Chuang, not instead.
Introduction to Quantum Computing, lecture notes

John Watrous

Free
QuantumThe same material as a mathematician writes it, for when the textbook is being too gentle.
Advances in quantum cryptography

Stefano Pirandola and others

Free
QuantumA review paper rather than a book, but it is the book on quantum key distribution as deployed, and it is free.
A Decade of Lattice Cryptography

Chris Peikert

Free
Post-quantumThe survey that the lattice standards grew out of, from one of the people who grew them.
Basic Lattice Cryptography: the concepts behind Kyber (ML-KEM) and Dilithium (ML-DSA)

Vadim Lyubashevsky

Free
Post-quantumThe designer explaining the designs at exactly the level an implementer needs.
The LLL Algorithm: Survey and Applications

Phong Nguyen and Brigitte Vallée, editors

Post-quantumLattice reduction from the people who understand it best. The first three chapters are the cryptanalysis block.
Post-Quantum Cryptography

Daniel Bernstein, Johannes Buchmann and Erik Dahmen, editors

Post-quantumFrom 2009, so the parameters are stale, but still the one book that introduces every family side by side.
FIPS 203, 204 and 205

National Institute of Standards and Technology

Free
Post-quantumThe standards themselves. Two of the gates are implemented from these with everything else closed.

Neb Abera

Senior Computer Scientist at MITRE, specializing in secure embedded systems.

© 2026 Neb Abera · Privacy · Text message terms