Numbers that
are polynomials
The lattice exhibits showed why hard problems on a grid protect a key. But the deployed post-quantum standards don't use plain grids — they use lattices built from polynomials, where a whole list of numbers multiplies as a single object and wraps around a ring boundary. That structure is what makes ML-KEM fast enough to ship.
A coefficient list that acts as one number
A polynomial like 3 + 2X + 5X² + X³ is just its list of coefficients, [3, 2, 5, 1]. In the ring R_q = Z_q[X]/(Xⁿ+1) two rules apply: every coefficient is reduced mod q, and any power Xⁿ or higher wraps back down — because Xⁿ is defined to equal −1. That single rule, Xⁿ = −1, is what makes the ring "negacyclic."
Watch the multiplication wrap
Multiplying two polynomials would normally push degrees up to 2n−2. The ring folds everything above degree n−1 back down with a sign flip, and reduces mod q, so the product is another length-n list. Edit either polynomial's coefficients and watch the product — and the terms that wrapped — recompute.
Why a ring and not just a grid
A single ring element already packs n numbers. Stack a few of them into a module and you have a lattice with enormous dimension but a tiny, structured description — you store a handful of polynomials, not a giant matrix. That compression is the difference between a post-quantum scheme that's a research curiosity and one that fits in a TLS handshake.
The arithmetic inside every ML-KEM operation
ML-KEM and ML-DSA spend nearly all their time doing exactly this: multiplying polynomials in R_q, accelerated by the Number Theoretic Transform. Both standards (see Modern Cryptography) are built on Module-LWE, which is the LWE problem transplanted from plain vectors into this ring. This exhibit is the structure those primitives are made of.
Bridges: Finite Fields (coefficients mod q) → here → Lattices (the geometry). Tested logic in crypto-algebra.js.