Ring Lattices & Module-LWE

From Vectors to Polynomials Ring-SIS and Ring-LWE Ideal Lattices and Hardness Module Lattices and ML-KEM

From Vectors to Polynomials

The two problems assembled in the previous pages, the short-integer-solution problem and learning with errors, are hard, reduction-grounded, and conjecturally quantum-resistant, but they are not yet efficient enough to deploy. The obstruction is size. A single learning-with-errors sample is one noisy scalar \(\langle \mathbf{s}, \mathbf{a} \rangle + e \in \mathbb{Z}_q\), extracted from a fresh random vector \(\mathbf{a} \in \mathbb{Z}_q^n\). Producing enough pseudorandomness to encrypt a message therefore costs a matrix of independent random entries, and every operation is a full matrix-vector product. Keys grow as \(n^2\), and arithmetic with them is quadratic.

This page removes that cost by changing the algebraic home of the samples. The flat vector space \(\mathbb{Z}_q^n\) is replaced by a quotient of a polynomial ring, in which a single element carries \(n\) coordinates at once and multiplication mixes them all in near-linear time.

The Ring \(R = \mathbb{Z}[x]/(f(x))\)

The construction reuses two objects already built in the algebra pages. The first is the polynomial ring \(\mathbb{Z}[x]\), whose elements are formal integer-coefficient polynomials. The second is the factor ring construction, which collapses a ring modulo an ideal. Fix a monic polynomial \(f(x) \in \mathbb{Z}[x]\) of degree \(n\), and let \((f(x))\) denote the principal ideal it generates, that is, the set of all polynomial multiples of \(f\). The ring at the center of this page is the quotient \[ R = \mathbb{Z}[x]/(f(x)). \]

Passing to this quotient imposes a single relation, \(f(x) = 0\). Every polynomial is reduced modulo \(f\), so each residue class has a unique representative of degree less than \(n\), and because \(f\) is monic, the division that produces it introduces no denominators. As an additive group, then, \(R\) is isomorphic to \(\mathbb{Z}^n\). An element is determined by its \(n\) integer coefficients \((a_0, a_1, \ldots, a_{n-1})\). What the polynomial structure adds beyond \(\mathbb{Z}^n\) is a multiplication that the flat vector space does not possess. The product of two residues is formed as polynomials and reduced again modulo \(f\).

Reducing the coefficients modulo an integer \(q\) in turn gives the finite ring \[ R_q = R/qR = \mathbb{Z}_q[x]/(f(x)), \] whose elements are degree-\(\lt n\) polynomials with coefficients drawn from \(\mathbb{Z}_q\). This \(R_q\) is the polynomial analogue of the coordinate space \(\mathbb{Z}_q^n\) that hosted the earlier problems: additively identical to it, but now closed under a ring multiplication. A random element of \(R_q\) is a single object that stands in for a full random vector, and this is the source of the compression to come.

The Choice of \(f\)

The modulus polynomial \(f\) is not arbitrary. Two families recur throughout the theory. The first is \(f(x) = x^n - 1\), which makes multiplication by \(x\) act as a cyclic shift of the coefficient vector and so gives the ring a circulant structure. The second, and the one adopted by the key-encapsulation standard of the final section, is \(f(x) = x^n + 1\) with \(n\) a power of two. This \(f\) is a cyclotomic polynomial, whose complex roots are the primitive \(2n\)-th roots of unity, the points \(e^{i\pi(2k+1)/n}\) evenly spaced on the unit circle. The polynomial \(x^n + 1\) is also irreducible over \(\mathbb{Q}\). Substituting \(x + 1\) for \(x\) does not affect irreducibility, since the substitution is invertible and preserves degrees. Modulo \(2\), squaring is additive, so \((x + 1)^n \equiv x^n + 1\) because \(n\) is a power of two. The polynomial \((x + 1)^n + 1\) therefore has leading coefficient \(1\), every other coefficient even, and constant term \(2\), and Eisenstein's criterion at the prime \(2\) applies. Irreducibility makes the quotient \(\mathbb{Q}[x]/(f)\) a field. Since \(R\) sits inside that field, again because division by the monic \(f\) introduces no denominators, \(R\) is free of the zero divisors that a reducible \(f\) would introduce, a property the hardness discussion below will need.

Multiplication modulo \(x^n + 1\) is negacyclic. Shifting past the top degree wraps around with a sign flip, since \(x^n \equiv -1\). Concretely, for \(a, b \in R\) the product coefficients are \[ (a \cdot b)_k = \sum_{i+j=k} a_i b_j - \sum_{i+j=k+n} a_i b_j, \] the first sum collecting the ordinary convolution terms and the second the wrapped terms that cross degree \(n\), negated. A naive evaluation of this product is still quadratic in \(n\). The near-linear speed advertised above comes from evaluating it through a fast transform, a point the final section makes precise once the standardized parameters are in view.

One Ring Element for Many Scalars

The structural payoff is already visible at the level of counting. In the coordinate world, a random \(\mathbf{a} \in \mathbb{Z}_q^n\) is \(n\) independent scalars, and pairing it with a secret produces a single pseudorandom scalar. In the ring world, a random \(a \in R_q\) is likewise \(n\) coefficients. Multiplying it by a secret ring element \(s \in R_q\), however, produces another full ring element \(a \cdot s \in R_q\), that is, \(n\) pseudorandom scalars at once. The ring multiplication has taken a single random object and manufactured a vector's worth of output from it.

The price is that these \(n\) output scalars are no longer independent. They are the coordinates of one product in a structured ring, tied together by the relation \(f(x) = 0\). Every efficiency this page gains, and every specialization of the hardness assumption it must accept in exchange, traces back to that single trade of independence for structure.

Fixing the basis \(1, x, \ldots, x^{n-1}\) makes this correspondence mechanical. Multiplication by a fixed \(a \in R_q\) is a linear map on \(\mathbb{Z}_q^n\), represented by a structured \(n \times n\) matrix whose columns are the successive shifts of \(a\) (cyclic for \(x^n - 1\), negacyclic for \(x^n + 1\)). A single ring element thus encodes an entire structured matrix, and a single ring equation encodes \(n\) scalar equations of the earlier kind. The next section installs the two problems that live in this ring, each the direct polynomial image of one built before.

Ring-SIS and Ring-LWE

Each of the two lattice problems from the previous pages has a direct image in the ring \(R_q\), obtained by the same substitution throughout. A random vector from \(\mathbb{Z}_q^n\) becomes a single random element of \(R_q\), and an inner product of vectors becomes a product in \(R_q\). What was a matrix of \(nm\) independent scalars becomes a short list of \(m\) ring elements, and the hardness assumption narrows accordingly.

The Ring Analogue of the Hash

The short integer solution problem sought a short integer combination of random vectors summing to zero. Its ring form replaces the vectors by ring elements and the integer combination by a combination with short ring coefficients.

Definition: The Ring Short Integer Solution Problem (Ring-SIS)

Fix the ring \(R = \mathbb{Z}[x]/(f(x))\) with coefficient modulus \(q\), a real bound \(\beta \gt 0\), and a number of samples \(m\). Given \(m\) uniformly random ring elements \(a_1, \ldots, a_m \in R_q\), the problem \(\mathrm{Ring}\)-\(\mathrm{SIS}_{q, \beta, m}\) asks for a nonzero vector of ring elements \((z_1, \ldots, z_m) \in R^m\), of norm \(\|(z_1, \ldots, z_m)\| \leq \beta\), satisfying \[ a_1 z_1 + \cdots + a_m z_m = 0 \bmod q, \] where the norm of a tuple of ring elements is measured through the Euclidean norm of their combined coefficient vectors.

The compression is immediate from the counting of the previous section. Because a single random \(a_i \in R_q\) already carries \(n\) coordinates and multiplication by it acts as a full \(n \times n\) structured matrix, the number of ring samples needed to guarantee a short solution is smaller than the coordinate count by a factor of \(n\). The coordinate problem needed \(m \approx n \log q\) columns, whereas here \(m \approx \log q\) ring elements suffice. The matrix that the coordinate problem stored explicitly is now generated on demand from \(m\) polynomials.

The Ring Analogue of the Encryption

Learning with errors hid a secret behind noisy inner products. Its ring form hides a secret ring element behind noisy ring products. The error is then no longer a single scalar but a small element of the ring, a polynomial all of whose coefficients are drawn from the error distribution.

Definition: The Ring-LWE Distribution

Fix a secret ring element \(s \in R_q\) and an error distribution \(\chi\) over \(R\). Typically \(\chi\) is a discrete Gaussian applied to each coordinate, of width \(\alpha q\) for some error rate \(\alpha \lt 1\). The Ring-LWE distribution \(A_{s, \chi}\) over \(R_q \times R_q\) is sampled by choosing \(a \in R_q\) uniformly at random, drawing an error \(e \leftarrow \chi\), and outputting \[ (a, b = a \cdot s + e \bmod q). \] The search problem asks, given many independent samples from \(A_{s, \chi}\) for a fixed secret \(s\), to recover \(s\).

As in the coordinate case, the problem that matters for building pseudorandomness is not the search form but the decision form. What is demanded is that the samples be indistinguishable from pure randomness, not merely that the secret be hard to recover.

Definition: Decision-Ring-LWE

Given \(m\) independent samples \((a_i, b_i) \in R_q \times R_q\), where every sample is drawn either (1) from \(A_{s, \chi}\) for a uniformly random secret \(s \in R_q\) fixed across all samples, or (2) from the uniform distribution on \(R_q \times R_q\), decision-Ring-LWE asks to distinguish which of the two is the case, with non-negligible advantage.

The same compression the hash enjoyed carries over. One Ring-LWE sample \((a_i, b_i)\) delivers a full pseudorandom ring element \(b_i \in R_q\), worth \(n\) pseudorandom scalars, from a single random \(a_i\) and one near-linear ring multiplication. Coordinate learning with errors produced only a single scalar per random vector. This is the efficiency the coordinate problems could not supply, and it is bought entirely with the algebraic structure of \(R_q\).

Structured Samples, Narrowed Assumption

The ring problems are not new hardness assumptions conjured from nothing. They are the coordinate problems restricted to inputs with algebraic symmetry. A Ring-LWE sample, read through the coefficient-vector identification of the previous section, is a coordinate learning-with-errors instance whose random matrix is forced to be structured. Its \(n\) rows are the successive \(x\)-shifts of a single row rather than \(n\) independent draws. Solving Ring-LWE therefore solves a special case of coordinate learning with errors, which makes the ring assumption formally stronger. There could, in principle, be an algorithm that exploits the structure and breaks the ring problem without touching the general one. Whether that structure can be exploited is the subject of the next section, where the hardness of these problems is tied not to arbitrary lattices but to lattices that inherit the symmetry of the ring.

Ideal Lattices and Hardness

The coordinate problems earned their credibility by reduction. Solving them on random instances was shown at least as hard as solving lattice problems in the worst case. The ring problems must earn the same credibility, and the argument follows the same shape. The lattices it reaches, however, are no longer arbitrary. They carry the algebraic symmetry of the ring, and that symmetry both sharpens the geometry and narrows the class of instances the guarantee covers.

From Ring Ideals to Lattices

The geometric object attached to the ring is built from its ideals. Recall that an ideal of a ring is an additive subgroup closed under multiplication by every ring element. Fix the coefficient-vector identification of the first section, sending each element of \(R\) to its coordinate vector in \(\mathbb{Z}^n\). Under this map, an ideal \(I \subseteq R\), being in particular an additive subgroup of \(R \cong \mathbb{Z}^n\), becomes an additive subgroup of \(\mathbb{Z}^n\). That subgroup is discrete, since distinct integer vectors lie at distance at least \(1\), so by the characterization of lattices as discrete additive subgroups it is a lattice in \(\mathbb{Z}^n\). A lattice arising this way is called an ideal lattice.

Definition: Ideal Lattice

Let \(R = \mathbb{Z}[x]/(f(x))\), identified with \(\mathbb{Z}^n\) through the coefficient embedding that sends a residue of degree \(\lt n\) to its vector of coefficients. An ideal lattice is the image under this embedding of an ideal \(I \subseteq R\), that is, a lattice \(\mathcal{L} \subseteq \mathbb{Z}^n\) whose preimage is closed not only under addition but under multiplication by every element of \(R\).

The extra closure is what distinguishes an ideal lattice from a generic one, and its geometric consequence is a hidden symmetry. Because an ideal is closed under multiplication by \(x\), and multiplication by \(x\) is a coordinate shift (cyclic for \(f = x^n - 1\), negacyclic for \(f = x^n + 1\)), an ideal lattice is mapped to itself by that shift. A single short vector in such a lattice therefore generates a whole orbit of \(n\) short vectors, its successive shifts, all of the same length. Generic lattices have no such structure. In a generic lattice, a short vector tells one nothing about the location of others.

The Worst-Case Guarantee

With ideal lattices in hand, the hardness of Ring-LWE is stated by exact analogy to the coordinate worst-case hardness theorem. The reduction is again quantum, and the target is again an approximate shortest-vector problem, now restricted to the ideal lattices of the ring.

Theorem: Worst-Case Hardness of Ring-LWE

Let \(R\) be a cyclotomic ring of degree \(n\), with an appropriate modulus \(q\) and an error distribution \(\chi\) of error rate \(\alpha \lt 1\). If there is an efficient algorithm that solves decision-Ring-LWE, then there is an efficient quantum algorithm that solves \(\mathrm{SVP}_\gamma\) on every ideal lattice in \(R\), for an approximation factor \(\gamma = \mathrm{poly}(n)/\alpha\).

The statement mirrors its coordinate ancestor, and its decisive change is that the guarantee ranges over every ideal lattice rather than every lattice. The target problem also becomes \(\mathrm{SVP}_\gamma\), but for \(f = x^n + 1\) little is lost. Multiplication by a nonzero element is invertible in the field \(\mathbb{Q}[x]/(f)\), so the \(n\) shifts of a shortest vector are linearly independent, and they all have the same length. That restriction to ideal lattices is the entire content of the trade made in the first section.

The proof again proceeds in two stages. A quantum reduction first establishes the hardness of the search problem for any ring of integers of a number field. A classical search-to-decision step then uses the special algebraic structure of cyclotomic rings, namely that the number field they generate is Galois over the rationals and that the modulus splits into small-norm prime ideals. The precise form of the error distribution the reduction requires is delicate, most naturally expressed through the geometry of the ring described below. The full argument is beyond the scope of this page. What matters here is the shape of the conclusion and the object it reaches.

Why the Ring Must Be a Domain

The choice of an irreducible modulus \(f\) is not cosmetic, because a reducible modulus opens a shortcut that breaks the hash. Consider Ring-SIS, in its role as the collision problem for the hash, over the reducible modulus \(f = x^n - 1\). Because \(x^n - 1\) factors as \((x - 1)(1 + x + \cdots + x^{n-1})\), the ring \(R = \mathbb{Z}[x]/(x^n - 1)\) is not an integral domain. It contains zero divisors, nonzero elements whose product is zero.

These zero divisors are what the shortcut exploits, though not by annihilating the public multipliers. The \(a_i\) are random, so no fixed element multiplies all of them to zero. The attack works instead through the complementary factor \(g = 1 + x + \cdots + x^{n-1}\), itself a zero divisor since \((x - 1)g = x^n - 1 = 0\) in \(R\). Multiplying any ring element by \(g\) collapses it onto the one-dimensional quotient \(R_q/(x - 1) \cong \mathbb{Z}_q\), since \(a \cdot g = a(1)\, g\), where \(a(1)\) is the sum of the coefficients of \(a\). An attacker restricts the search for a collision to multiples of \(g\), where the problem has effectively been projected down to a single dimension. Among the \(2^m\) choices of \(c_i \in \{0, 1\}\), two give the same value of \(\sum_i a_i(1)\, c_i\) modulo \(q\) once \(2^m \gt q\), and their difference yields integers \(c_i \in \{-1, 0, 1\}\), not all zero, with \(\sum_i a_i(1)\, c_i \equiv 0 \pmod q\). The ring elements \(z_i = c_i\, g\) then solve Ring-SIS with norm at most \(\sqrt{mn}\). The zero divisor \(g\) is thus what breaks the hash, through the low-dimensional image that its multiples form.

For the cyclotomic choice \(f = x^n + 1\), irreducible over \(\mathbb{Q}\), the ring \(R\) is an integral domain and \(f\) has no factor over the integers to play the role of \(x - 1\). Modulo \(q\) the polynomial may still factor, as the final section uses. The bound \(\sqrt{mn}\) above, however, rested on the complementary factor \(g\) having small integer coefficients, all equal to \(1\). A factorization that exists only modulo \(q\) does not in general supply a factor of that kind, and without one the multiples that the argument forms are not short. Closing this one shortcut does not by itself make the problem hard. That guarantee comes from a separate worst-case result tying Ring-SIS to problems on ideal lattices, the counterpart for collisions of the Ring-LWE theorem above, which we state without proof.

The Geometry of the Ring

One subtlety in the hardness statement deserves a closer look: what "short" means for a ring element. The coefficient embedding of the first section, reading an element as its vector of coefficients and taking the ordinary Euclidean norm, is the naive choice, and it suffices for building intuition. But it behaves badly under multiplication. The norm of a product \(a \cdot b\) can be only loosely related to the norms of \(a\) and \(b\), because each coefficient of a product mixes every coefficient of both factors.

The sharper notion, and the one the hardness reduction actually uses, is the canonical embedding. Rather than reading off coefficients, it evaluates a ring element \(z\) at all \(n\) complex roots \(\alpha_1, \ldots, \alpha_n\) of \(f\), sending \(z \mapsto (z(\alpha_1), \ldots, z(\alpha_n)) \in \mathbb{C}^n\). For the cyclotomic \(f = x^n + 1\), these roots are the evenly spaced points on the unit circle named in the first section. The virtue of this map is that it turns ring multiplication into coordinate-wise multiplication of the image vectors, because evaluating a product at a fixed root multiplies the two evaluations. Norms of products are therefore controlled sharply rather than loosely. In this power-of-two case the two geometries differ only by scale. The vectors \((\alpha_1^j, \ldots, \alpha_n^j)\) for \(j = 0, \ldots, n-1\) are mutually orthogonal of length \(\sqrt{n}\), so the canonical embedding multiplies every coefficient-vector length by exactly \(\sqrt{n}\). Other cyclotomic moduli do not enjoy this orthogonality, and there only the canonical embedding gives the sharp control.

The canonical embedding is a device for analysis, and ring elements are never actually computed as tuples of complex numbers. Its role is to give the reduction a geometry in which the error distribution and the shortness of solutions can be measured cleanly, and in cyclotomic rings that geometry is especially regular.

Module Lattices and ML-KEM

The ring construction buys efficiency at the cost of a stronger hardness assumption. Security now rests on ideal lattices rather than arbitrary ones. The key-encapsulation standard described below declines both the single large ring that would concentrate all trust in one ring's structure and the unstructured coordinates that would forfeit the efficiency. Instead, it interpolates between them, working with vectors of ring elements that form a module. This middle path is what reaches the algorithm standardized in 2024.

From Rings to Modules

The interpolation is a single generalization of everything above. Where Ring-LWE fixed a secret ring element \(s \in R_q\) and published noisy products \(a \cdot s + e\), its module form fixes a secret vector of ring elements \(\mathbf{s} \in R_q^k\) and publishes noisy inner products \[ b = \langle \mathbf{a}, \mathbf{s} \rangle + e = a_1 s_1 + \cdots + a_k s_k + e \bmod q, \] where \(\mathbf{a} \in R_q^k\) is a uniformly random vector of ring elements and the inner product is taken in \(R_q\). This is module learning with errors, or Module-LWE.

The rank \(k\) is a tuning dial between the two problems already built. At \(k = 1\) the module problem is exactly Ring-LWE, with a single ring element. If the ring is taken to be \(\mathbb{Z}\) itself, of degree one and with no polynomial structure, the problem collapses back to coordinate learning with errors. Every learning-with-errors problem met so far is one setting of that dial.

The hardness guarantee generalizes in step. Just as Ring-LWE was tied to shortest-vector problems on ideal lattices, Module-LWE is at least as hard as approximating worst-case lattice problems on module lattices, the lattices corresponding to \(R\)-submodules of \(R^k\). These sit strictly between the two earlier worlds: more structured than the arbitrary lattices behind coordinate learning with errors, less structured than the single ideal lattices behind Ring-LWE. This intermediate position, and the reason a standard would deliberately seek it, is the substance of the rank parameter.

The Dial from LWE to Ring-LWE

The three problems of this track are not three separate assumptions but three settings of one rank parameter \(k\) over a base ring of degree \(d\). The degree \(d\) plays the role of \(n\) in the single-ring discussion above and is renamed here because it now varies alongside \(k\). Taking \(R = \mathbb{Z}\) (so \(d = 1\)) and letting \(k\) grow recovers coordinate learning with errors: unstructured, maximal key size, security resting on arbitrary lattices. Taking \(k = 1\) and letting the ring degree \(d\) grow recovers Ring-LWE: maximally structured, minimal key size, security resting on ideal lattices alone. The module regime sits between them: moderate \(k\), moderate \(d\), with the product \(kd\) (the total lattice dimension) held near the security target. It lets a designer trade structure for key size continuously rather than choosing an extreme. The standard described next lives at this interior point.

ML-KEM

The key-encapsulation mechanism standardized in 2024 as the primary post-quantum replacement for classical key exchange, named ML-KEM (module-lattice-based key-encapsulation mechanism), is built directly on Module-LWE. Its base ring is the cyclotomic \(R_q = \mathbb{Z}_q[x]/(x^{256} + 1)\) with prime modulus \(q = 3329\), fixed across all security levels. The rank \(k\) is the single parameter that varies, and it takes the values \(k = 2, 3, 4\) to give the three standardized strengths. The degree \(256\) and the prime \(3329\) are chosen together so that the ring supports the fast transform that makes multiplication near-linear, the point promised above and settled now.

Because \(q \equiv 1 \pmod{256}\) but not modulo \(512\), the field \(\mathbb{Z}_q\) contains primitive \(256\)-th roots of unity but no primitive \(512\)-th root. The roots of \(x^{256} + 1\) are primitive \(512\)-th roots of unity, so the polynomial does not split into linear factors. It factors modulo \(q\) into \(128\) quadratic polynomials rather than remaining whole. A number-theoretic transform, the finite-field analogue of the discrete Fourier transform, maps a ring element to its residues modulo those \(128\) factors, in which multiplication becomes a component-wise product of low-degree pieces. The transform and its inverse run in \(O(n \log n)\) time, replacing the \(O(n^2)\) cost of a direct convolution.

The construction proceeds in two stages, following the pattern the classical encryption pages established. First a public-key encryption scheme is built directly from Module-LWE. The public key is a Module-LWE instance, encryption hides a message by adding it to a fresh noisy combination of that instance, and decryption removes the noise using the secret. Because the noise is only bounded, not eliminated, decryption carries a small probability of failure. Such failures are intrinsic to the lattice construction, and the parameters are chosen to make their probability astronomically small.

This scheme is secure against passive eavesdroppers, but not against an adversary who submits crafted ciphertexts and observes the responses. The second stage closes that gap with the Fujisaki-Okamoto transform, a generic procedure that upgrades a passively secure encryption scheme into a key-encapsulation mechanism secure against adaptive chosen-ciphertext attacks. The transform derandomizes encryption and forces the recipient to re-encrypt and verify, so a malformed ciphertext is detected rather than answered. The result is ML-KEM.

NTRU and the Shape of a Ring Problem

Module-LWE is not the only lattice problem to live in a polynomial ring. The NTRU problem, proposed years before Ring-LWE, hides a short secret \(s\) by publishing the ring quotient \(e/s\) of two short elements. It stands in almost the same relation to Ring-LWE that a homogeneous equation stands to an inhomogeneous one. An NTRU sample asks for a secret with \(a \cdot s = e\) for short \(e\), while a Ring-LWE sample asks for a secret with \(b - a \cdot s = e\), which is the same equation carrying an extra term. This kinship is close enough that, for suitable parameters, the decision form of the NTRU problem reduces to the search form of Ring-LWE, so Ring-LWE is at least as hard as NTRU.

NTRU is not a historical curiosity. The signature scheme FALCON, selected in 2022 by the same standardization process that produced ML-KEM, is built on NTRU lattices. The ring geometry of this page therefore underlies both the lattice-based encryption and the lattice-based signatures of the post-quantum suite.

Where the Track Arrives

The cryptography track now completes the arc it has been building toward. The classical schemes fell to a quantum algorithm. The geometry and complexity pages then rebuilt hardness from worst-case lattice problems, and the two preceding pages turned that hardness into a hash and an encryption, conjecturally quantum-resistant but too large to deploy. This page supplied the missing efficiency by moving the whole construction into a polynomial ring, where a single element carries a vector's worth of data and multiplication runs in near-linear time. The price of that speed is a hardness assumption narrowed from arbitrary lattices to the ideal and module lattices that inherit the ring's symmetry. The endpoint is ML-KEM, resting on a chain of reductions that reaches all the way back to the worst-case geometry the earliest pages measured.