Lattice-Based Cryptography#
The mathematical foundations of ML-KEM and ML-DSA: Learning With Errors, Ring-LWE, Module-LWE, and why lattice problems are believed to be quantum-hard.
Lattice-based cryptography is the most important family of post-quantum algorithms. Both ML-KEM (FIPS 203) and ML-DSA (FIPS 204) are built on lattice problems. Understanding the mathematics gives insight into why these algorithms work, what their security margins are, and where potential weaknesses might lie.
What is a Lattice?#
A lattice in \(\mathbb{R}^n\) is the set of all integer linear combinations of a set of basis vectors:
Think of a lattice as an infinite, regularly-spaced grid of points in \(n\)-dimensional space. In 2D, it looks like a sheet of graph paper (possibly skewed). In high dimensions, lattices have properties that make certain problems extraordinarily difficult.
Hard Lattice Problems#
Two problems form the foundation of lattice cryptography:
Shortest Vector Problem (SVP): Given a lattice basis, find the shortest non-zero lattice vector.
Closest Vector Problem (CVP): Given a lattice and a target point, find the lattice point closest to the target.
Both problems are NP-hard in their exact forms. More importantly for cryptography, their approximate versions (finding vectors within a polynomial factor of optimal) remain hard for both classical and quantum algorithms.
The best known quantum algorithm for SVP still requires \(2^{\Omega(n)}\) time, where \(n\) is the lattice dimension. This is the basis for believing lattice cryptography is quantum-resistant.
Learning With Errors (LWE)#
The Learning With Errors problem, introduced by Oded Regev in 2005, is the specific lattice problem that underpins modern lattice cryptography.
The Problem#
Given:
A random matrix \(\mathbf{A} \in \mathbb{Z}_q^{m \times n}\)
A secret vector \(\mathbf{s} \in \mathbb{Z}_q^n\)
A small error vector \(\mathbf{e} \in \mathbb{Z}_q^m\) (entries drawn from a narrow distribution)
The LWE samples are:
Search-LWE: Given \((\mathbf{A}, \mathbf{b})\), find \(\mathbf{s}\).
Decision-LWE: Distinguish \((\mathbf{A}, \mathbf{b})\) from \((\mathbf{A}, \mathbf{u})\) where \(\mathbf{u}\) is uniformly random.
Without the error \(\mathbf{e}\), this is just a linear system solvable by Gaussian elimination. The error makes it hard. Regev proved that solving LWE is at least as hard as solving worst-case lattice problems (SVP, CVP) in dimension \(n\).
Why the Error Matters#
The error vector \(\mathbf{e}\) is what makes the problem hard. Each entry of \(\mathbf{e}\) is small (typically drawn from a centered binomial distribution with standard deviation \(\sigma \approx 1\)). The ratio \(\alpha = \sigma / q\) determines the hardness:
Too small \(\alpha\): The error can be rounded away, reducing to a linear system
Too large \(\alpha\): The ciphertext becomes too noisy to decrypt correctly
Just right: Hard to solve, yet decryption works with high probability
This balance is the core design challenge in lattice-based schemes.
Ring-LWE and Module-LWE#
Plain LWE has large key sizes because \(\mathbf{A}\) is a random \(m \times n\) matrix. Structured variants trade some generality for efficiency:
Ring-LWE#
Replace \(\mathbb{Z}_q^n\) with the polynomial ring \(R_q = \mathbb{Z}_q[x]/(x^n + 1)\). Now:
\(\mathbf{A}\) is a single polynomial \(a \in R_q\) (instead of a matrix)
\(\mathbf{s}, \mathbf{e}\) are polynomials in \(R_q\)
\(b = a \cdot s + e \in R_q\)
Multiplication in \(R_q\) can be performed efficiently using the Number Theoretic Transform (NTT), the finite-field analog of the FFT. This reduces:
Key sizes from \(O(n^2)\) to \(O(n)\)
Multiplication from \(O(n^2)\) to \(O(n \log n)\)
Module-LWE (used in ML-KEM and ML-DSA)#
Module-LWE is the middle ground: elements are vectors of polynomials over \(R_q\). The matrix \(\mathbf{A}\) is \(k \times k\) with entries in \(R_q\):
The parameter \(k\) controls the security level:
ML-KEM Variant |
\(k\) |
\(n\) (poly degree) |
\(q\) |
Security |
|---|---|---|---|---|
ML-KEM-512 |
2 |
256 |
3329 |
Level 1 |
ML-KEM-768 |
3 |
256 |
3329 |
Level 3 |
ML-KEM-1024 |
4 |
256 |
3329 |
Level 5 |
Module-LWE gives more flexibility than Ring-LWE (security scales by adjusting \(k\)) while being more efficient than plain LWE (polynomial arithmetic via NTT).
Security Hierarchy#
Plain LWE (most conservative, largest keys)
⊇
Module-LWE (ML-KEM, ML-DSA)
⊇
Ring-LWE (most efficient, smallest keys)
Any attack on Module-LWE implies an attack on plain LWE. Conversely, special structure in Ring-LWE could theoretically enable attacks not possible against plain LWE. No such attacks are known, but Module-LWE provides a safety margin.
The Number Theoretic Transform (NTT)#
Polynomial multiplication is the performance bottleneck in lattice cryptography. The NTT accelerates it from \(O(n^2)\) to \(O(n \log n)\).
For \(R_q = \mathbb{Z}_q[x]/(x^{256}+1)\) with \(q = 3329\):
Forward NTT: Convert polynomial \(a(x)\) to its evaluation representation \(\hat{a}\)
Pointwise multiply: \(\hat{c}_i = \hat{a}_i \cdot \hat{b}_i \pmod{q}\)
Inverse NTT: Convert back to coefficient representation
The modulus \(q = 3329\) was chosen specifically because \(3329 = 2^8 \cdot 13 + 1\), which means \(\mathbb{Z}_q\) has 256th roots of unity, enabling the NTT over degree-256 polynomials.
All NTT arithmetic uses Montgomery multiplication for constant-time modular reduction, preventing timing side-channel attacks.
Concrete Security Estimates#
The security of ML-KEM is estimated by analyzing the best known classical and quantum attacks:
Classical Attacks#
The best classical attack against LWE is the primal lattice attack using BKZ (Block Korkine-Zolotarev) lattice reduction:
Algorithm |
Complexity (ML-KEM-768) |
|---|---|
BKZ-2.0 |
\(\approx 2^{182}\) operations |
BKZ with sieving |
\(\approx 2^{170}\) operations |
Dual attack |
\(\approx 2^{175}\) operations |
Quantum Attacks#
Grover’s algorithm can speed up the sieving subroutine in BKZ:
Algorithm |
Complexity (ML-KEM-768) |
|---|---|
Quantum BKZ (Grover-enhanced sieving) |
\(\approx 2^{153}\) operations |
This still provides \(> 128\) bits of quantum security, well above the NIST Category 3 threshold.
No Exponential Quantum Speedup
Unlike factoring (where Shor’s algorithm gives an exponential speedup), the best known quantum speedup for lattice problems is at most polynomial. Grover’s algorithm provides a quadratic speedup for the sieving step, but the overall lattice reduction still requires exponential time. This is why lattice cryptography is considered quantum-resistant.
Known Attacks and Research Directions#
The lattice cryptanalysis community is active. Key developments to watch:
Attack |
Status |
Impact |
|---|---|---|
Primal/dual lattice attacks (BKZ) |
Well-understood |
Sets concrete security parameters |
Algebraic attacks on Ring/Module-LWE |
No breakthrough |
Could exploit polynomial ring structure |
Quantum sieving speedups |
Modest (\(\sqrt{}\) speedup) |
Accounted for in parameter selection |
Side-channel attacks |
Practical risk |
Mitigated by constant-time implementations |
SIKE-style structural attacks |
Not applicable to LWE |
Different algebraic structure |
The 2022 break of SIKE (an isogeny-based scheme) by classical attacks serves as a reminder that no scheme is unconditionally secure. However, LWE has withstood over 15 years of intensive cryptanalysis with no significant structural weakness found.
From Math to Code#
The journey from abstract lattice math to a working KEM:
Mathematical Problem Implementation
───────────────────── ──────────────
Module-LWE ML-KEM specification
↓ ↓
Sample A from seed SHAKE-128 XOF expansion
Sample s, e from CBD Centered binomial distribution
Compute t = As + e NTT-domain matrix-vector multiply
Compress/decompress Lossy encoding for smaller ciphertexts
FO transform CCA2 security via re-encapsulation
↓ ↓
IND-CCA2 secure KEM Constant-time Rust/C implementation
Each mathematical operation maps to a specific algorithmic primitive. The security proof guarantees that breaking the KEM requires solving Module-LWE, and solving Module-LWE requires solving worst-case lattice problems.
Further Reading#
Regev, O. (2005). “On Lattices, Learning with Errors, Random Linear Codes, and Cryptography.” STOC 2005.
Lyubashevsky, V., Peikert, C., Regev, O. (2013). “On Ideal Lattices and Learning with Errors Over Rings.” EUROCRYPT 2010.
Bos, J. et al. (2018). “CRYSTALS-Kyber: A CCA-Secure Module-Lattice-Based KEM.” IEEE Euro S&P 2018.
Albrecht, M. et al. (2024). Lattice Estimator – Tool for estimating concrete security of lattice parameters.