Structured lattice schemes do their arithmetic with polynomials instead of long integer vectors. A polynomial of degree less than nn is stored as its nn coefficients, so every ring element is also a vector, and every ring operation is also a structured matrix operation. The tables below list the symbols, how to read them aloud, and the chapters where they appear. The variable is written xx in chapters 1.6 and 2.x and XX in 3.3, 3.5 and FIPS 203/204; both mean the same indeterminate.

Polynomial rings

SymbolRead asMeaning on this siteExampleUsed in
Z[x]\mathbb{Z}[x]“Z adjoin x”All polynomials in xx with integer coefficients.3−x+7x23 - x + 7x^22.6, 2.4, 3.6, 1.6, 3.2
Zq[X]\mathbb{Z}_q[X]“Z q of X”Polynomials whose coefficients are integers modulo qq.16+5X∈Z17[X]16 + 5X \in \mathbb{Z}_{17}[X]3.5, 3.3, 2.3, 3.6
Z[x]/(xn+1)\mathbb{Z}[x]/(x^n + 1)“Z x modulo x to the n plus one”Quotient ring: polynomials of degree less than nn, where products are reduced using xn=−1x^n = -1. nn is a power of 2.x3⋅x2=x5=−xx^3 \cdot x^2 = x^5 = -x for n=4n = 42.4, 2.6, 3.6, 1.6, 2.5, 3.2
RR“R”Shorthand for the integer ring of the chapter, usually Z[x]/(xn+1)\mathbb{Z}[x]/(x^n+1); in 2.6 it can also be Z[x]/(xn−1)\mathbb{Z}[x]/(x^n-1).f,g∈Rf, g \in R2.6, 2.4, 3.6, 3.2, 1.6
Rq=R/qRR_q = R/qR“R q”The same ring with every coefficient also reduced modulo qq: Zq[x]/(xn+1)\mathbb{Z}_q[x]/(x^n+1). Its elements are what Kyber and Dilithium store.s∈Rqs \in R_q3.3, 2.3, 3.1, 2.6, 2.4, 2.5
Rp=R/(p)R_p = R/(p)“R p”NTRU’s second, small modulus (typically p=3p = 3). Written R/(q)R/(q) and R/qRR/qR interchangeably.Fp=f−1(modp)F_p = f^{-1} \pmod{p}2.6
Z[x]/(xn−1)\mathbb{Z}[x]/(x^n - 1)“mod x to the n minus one”Original NTRU ring: xn=+1x^n = +1, so products wrap around without a sign change (cyclic).x5=xx^5 = x for n=4n = 42.6, 1.6, 5.1
Z[x]/(xp−x−1)\mathbb{Z}[x]/(x^p - x - 1)“mod x to the p minus x minus one”NTRU Prime’s ring, with pp prime; chosen to avoid the extra structure of cyclotomic rings.xp=x+1x^p = x + 12.6

Which ring each scheme uses

SchemeRingnnqqChapter
ML-KEM (Kyber)Zq[X]/(X256+1)\mathbb{Z}_q[X]/(X^{256}+1)25633293.1, 3.5
ML-DSA (Dilithium)Zq[X]/(X256+1)\mathbb{Z}_q[X]/(X^{256}+1)2568,380,4173.3
Falcon (FN-DSA)Z[x]/(xn+1)\mathbb{Z}[x]/(x^n+1), mod qq512 or 1024122893.6
Original NTRUZ[x]/(xn−1)\mathbb{Z}[x]/(x^n-1)scheme-dependentpower of 2 or prime, q≫pq \gg p2.6
NTRU PrimeZ[x]/(xp−x−1)\mathbb{Z}[x]/(x^p-x-1)pp primeprime2.6

Polynomials as vectors

A ring element a=a0+a1X+⋯+an−1Xn−1a = a_0 + a_1 X + \dots + a_{n-1} X^{n-1} is identified with its coefficient vector (a0,a1,…,an−1)(a_0, a_1, \dots, a_{n-1}). Addition is coordinate-wise. Multiplication is polynomial multiplication followed by reduction: in Xn+1X^n + 1 rings every Xn+kX^{n+k} becomes −Xk-X^k. That sign flip is why the product is called a negacyclic convolution.

Worked example in Z17[X]/(X4+1)\mathbb{Z}_{17}[X]/(X^4 + 1) with a=1+2X+3X3a = 1 + 2X + 3X^3 and b=2+X2b = 2 + X^2. The schoolbook product is 2+4X+X2+8X3+3X52 + 4X + X^2 + 8X^3 + 3X^5. Replace X5=X⋅X4=−XX^5 = X \cdot X^4 = -X:

ab=2+(4−3)X+X2+8X3=2+X+X2+8X3(mod17).ab = 2 + (4 - 3)X + X^2 + 8X^3 = 2 + X + X^2 + 8X^3 \pmod{17}.

The same product is a matrix–vector product. Column jj of the matrix below holds the coefficients of XjaX^j a: each column is the previous one shifted down by one, with the coefficient that falls off the bottom re-entering at the top with its sign flipped. Such a matrix is called anti-circulant (or negacyclic). In a Xn−1X^n - 1 ring there is no sign flip and the matrix is an ordinary circulant, which is the “circulant block matrix” of the NTRU lattice in 1.6 and 2.6.

Ma=(1−30−221−30021−33021),Ma(2010)≡(2118)(mod17).M_a = \begin{pmatrix} 1 & -3 & 0 & -2 \\ 2 & 1 & -3 & 0 \\ 0 & 2 & 1 & -3 \\ 3 & 0 & 2 & 1 \end{pmatrix}, \qquad M_a \begin{pmatrix} 2 \\ 0 \\ 1 \\ 0 \end{pmatrix} \equiv \begin{pmatrix} 2 \\ 1 \\ 1 \\ 8 \end{pmatrix} \pmod{17}.

This is the ring-versus-matrix view: a Ring-LWE sample b=as+eb = a s + e in RqR_q is an ordinary LWE system b=Mas+eb = M_a s + e whose n×nn \times n matrix is determined by just nn numbers. The matrix is written with columns here; with the row convention used in the embedding guides, use its transpose.

Size of a polynomial

SymbolRead asMeaning on this siteExampleUsed in
∥a∥∞\|a\|_\infty“infinity norm of a”Largest absolute coefficient, with coefficients mod qq first taken in the centred range (−q/2,q/2](-q/2, q/2]. For a vector of polynomials, the maximum over all of them.∥3−5X+X2∥∞=5\|3 - 5X + X^2\|_\infty = 53.3, 2.5, 2.4, 2.6
∥a∥\|a\|“norm of a”Euclidean length of the coefficient vector. Ring-SIS solutions and Falcon signatures are bounded this way.∥1+X−X2∥=3\|1 + X - X^2\| = \sqrt{3}2.4, 3.6
∥h∥1\|h\|_1“one-norm of h”Sum of absolute coefficients. In 3.3 it counts the 1-bits of Dilithium’s hint vector.∥h∥1>ω\|h\|_1 > \omega means too many hint bits3.3
small, ternaryA polynomial whose coefficients are tiny. Ternary means every coefficient is in {−1,0,1}\{-1, 0, 1\}. These are the short vectors of ring lattices.f=1−X+X3f = 1 - X + X^32.6, 2.4, 3.3

Roots of unity and the NTT

Fast multiplication in RqR_q uses roots of unity modulo qq. The letters are not used consistently across the literature, and on this site ζ\zeta means a different root in each chapter that uses it. Always check which power of it equals −1-1.

SymbolRead asMeaning on this siteExampleUsed in
ω\omega“omega”In 3.5: a primitive mm-th root of unity in Zq\mathbb{Z}_q, meaning ωm≡1\omega^m \equiv 1 and no smaller positive power is 1. In 3.3 the same letter is Dilithium’s maximum hint weight.28≡1(mod17)2^8 \equiv 1 \pmod{17}, so 2 is a primitive 8th root3.5, 3.3
ψ\psi“psi”A primitive 2n2n-th root of unity. The roots of Xn+1X^n + 1 are its odd powers ψ,ψ3,…,ψ2n−1\psi, \psi^3, \dots, \psi^{2n-1}.ψ=2\psi = 2 mod 17 for n=4n = 4: roots 2, 8, 15, 93.5
ζ\zeta“zeta”The fixed root of a specific scheme. ML-KEM: ζ=17\zeta = 17, a primitive 256th root mod 3329 (17128≡−117^{128} \equiv -1). ML-DSA: ζ=1753\zeta = 1753, a primitive 512th root mod 8,380,417 (ζ256≡−1\zeta^{256} \equiv -1). In 3.2 and 1.6 it is a complex root, ζ=eiπ/n\zeta = e^{i\pi/n} or ζ2n\zeta_{2n}.ζBitRev7(k)\zeta^{\mathrm{BitRev}_7(k)} twiddle factors3.5, 3.3, 3.2, 1.6
γi\gamma_i“gamma i”In 3.5: the constants of ML-KEM’s 128 quadratic factors X2−γiX^2 - \gamma_i, with γi=ζ2 BitRev7(i)+1\gamma_i = \zeta^{2\,\mathrm{BitRev}_7(i)+1}. Unrelated to the Hermite constant γn\gamma_n.γ0=17\gamma_0 = 173.5
ntt(a), intt(a^)\mathrm{ntt}(a),\ \mathrm{intt}(\hat a)“N T T of a”The number-theoretic transform and its inverse: evaluate aa at the roots (or reduce it modulo the factors), then map back.intt(ntt(a))=a\mathrm{intt}(\mathrm{ntt}(a)) = a3.5, 3.1, 3.3
a^, s^, f^i\hat a,\ \hat s,\ \hat f_i“a hat”In 3.1 and 3.3: the NTT-domain representation of a polynomial. In 2.2 the hat means Babai’s output vector instead.f^i=f(ζ2i+1)\hat f_i = f(\zeta^{2i+1})3.1, 3.3
BitRev7(k)\mathrm{BitRev}_7(k)“bit-reverse seven of k”Write kk in 7 bits and reverse them. ML-KEM stores its twiddle factors in this order.BitRev7(1)=64, BitRev7(3)=96\mathrm{BitRev}_7(1) = 64,\ \mathrm{BitRev}_7(3) = 963.5
≅\cong“is isomorphic to”Two rings with the same structure. In 3.5 it is the Chinese-remainder splitting behind the NTT.Rq≅∏i=0127Zq[X]/(X2−γi)R_q \cong \prod_{i=0}^{127} \mathbb{Z}_q[X]/(X^2 - \gamma_i)3.5

The algebraic view: number fields and ideals

For nn a power of 2, Xn+1X^n + 1 is the 2n2n-th cyclotomic polynomial, so Z[x]/(xn+1)\mathbb{Z}[x]/(x^n+1) is the ring of integers of a cyclotomic number field. Chapter 1.6 uses this language; the rest of the site mostly does not need it.

SymbolRead asMeaning on this siteExampleUsed in
Q(ζ2n)\mathbb{Q}(\zeta_{2n})“Q adjoin zeta two n”The cyclotomic field: rational combinations of powers of a primitive 2n2n-th complex root of unity. Its ring of integers is Z[ζ2n]≅Z[x]/(xn+1)\mathbb{Z}[\zeta_{2n}] \cong \mathbb{Z}[x]/(x^n+1).Q(i)\mathbb{Q}(i) for n=2n = 21.6
σ:R→Cn\sigma: R \to \mathbb{C}^n“sigma”In 3.2: the canonical embedding, evaluating a polynomial at the complex roots ζ,ζ3,…,ζ2n−1\zeta, \zeta^3, \dots, \zeta^{2n-1}. Everywhere else σ\sigma is a Gaussian width.f↦(f(ζ),f(ζ3),… )f \mapsto (f(\zeta), f(\zeta^3), \dots)3.2
ideal latticeA lattice that is (the image of) an ideal of the ring, so it is closed under multiplication by xx. In an xn+1x^n + 1 ring that multiplication is a negacyclic rotation: shift the coefficients and negate the one that wraps.x⋅(a0,a1,a2,a3)=(−a3,a0,a1,a2)x \cdot (a_0, a_1, a_2, a_3) = (-a_3, a_0, a_1, a_2)1.6

Modules: vectors and matrices of polynomials

Module-LWE and Module-SIS replace the single ring element by short vectors and small matrices of ring elements. Superscripts give the shape, exactly as for Zqn\mathbb{Z}_q^n.

SymbolRead asMeaning on this siteExampleUsed in
RqkR_q^k“R q to the k”Vectors of kk ring elements. Kyber’s rank k=2,3,4k = 2, 3, 4 selects ML-KEM-512, -768, -1024.s∈Rqks \in R_q^k3.1, 2.3, 3.3
Rqk×ℓR_q^{k \times \ell}“R q k by ell”Matrices with kk rows and ℓ\ell columns of ring elements. Dilithium uses (k,ℓ)=(4,4),(6,5),(8,7)(k, \ell) = (4,4), (6,5), (8,7).A∈Rqk×ℓA \in R_q^{k \times \ell}3.3, 2.5, 2.3
a⊤sa^\top s“a transpose s”Inner product of two module vectors: ∑iaisi\sum_i a_i s_i, each product taken in RqR_q.b=a⊤s+e∈Rqb = a^\top s + e \in R_q2.3, 3.1
Rm, Rk+ℓR^m,\ R^{k+\ell}“R to the m”Module vectors over the integer ring, used for Ring-SIS and Module-SIS solutions.(z1,…,zm)∈Rm(z_1, \ldots, z_m) \in R^m2.4

Each ring element is an nn-vector, so A∈Rqk×ℓA \in R_q^{k \times \ell} is an integer matrix of size kn×ℓnkn \times \ell n built from kℓk\ell anti-circulant blocks. For ML-KEM-768 that is a 768×768768 \times 768 matrix described by nine polynomials.

NTRU and Falcon symbols

SymbolRead asMeaning on this siteExampleUsed in
f,gf, g“f, g”The two small secret polynomials. (f,g)(f, g) is the short vector hidden in the NTRU lattice.ternary, about n/3n/3 nonzero coefficients2.6, 1.6, 3.6
f−1, Fq, Fpf^{-1},\ F_q,\ F_p“f inverse”The inverse of ff in RqR_q (named FqF_q in 2.6) or in RpR_p (FpF_p). Computed with the extended Euclidean algorithm.f⋅Fq≡1(modq)f \cdot F_q \equiv 1 \pmod q2.6, 3.6, 1.6
hh“h”The public key. Chapters 1.6 and 3.6 use h=gf−1 mod qh = g f^{-1} \bmod q; the encryption chapter 2.6 uses h=p⋅Fq⋅gh = p \cdot F_q \cdot g, which puts the factor pp into the key instead of the message step.h∈Rqh \in R_q2.6, 1.6, 3.6
F,GF, G“capital F, G”Falcon’s second pair of trapdoor polynomials, completing (f,g)(f, g) to a full short basis.fG−gF=qfG - gF = q3.6
Λh\Lambda_h“lambda h”The NTRU lattice of pairs (u,v)∈R2(u, v) \in R^2 satisfying one linear congruence with hh, a 2n2n-dimensional lattice. 1.6 writes the condition as v≡huv \equiv hu, 3.6 as u+vh≡0u + vh \equiv 0; both are the same kind of lattice with the roles of the coordinates swapped.(f,g)∈Λh(f, g) \in \Lambda_h when g≡hfg \equiv hf1.6, 3.6

Scheme-specific functions

SymbolMeaningUsed in
HighBits(r), LowBits(r)\mathrm{HighBits}(r),\ \mathrm{LowBits}(r)Dilithium splits each coefficient as r=r1⋅2γ2+r0r = r_1 \cdot 2\gamma_2 + r_0 with r0r_0 centred; HighBits returns r1r_1, LowBits returns r0r_0. Applied coefficient-wise to polynomials and vectors.3.3, 2.5
hh (Dilithium), ω\omegaThe hint vector that lets the verifier recompute HighBits, and ω\omega, the maximum number of 1s it may contain. Not the NTRU public key.3.3
Compress, DecompressKyber’s lossy rounding of coefficients to dd bits (12 to 10 bits for uu, 12 to 4 for vv in 3.1). FIPS 203 defines Compressd(x)=⌈(2d/q) x⌋ mod 2d\mathrm{Compress}_d(x) = \lceil (2^d/q)\,x \rfloor \bmod 2^d and Decompressd(y)=⌈(q/2d) y⌋\mathrm{Decompress}_d(y) = \lceil (q/2^d)\,y \rfloor. Chapter 3.1 describes them in words.3.1

Same symbol, different meaning

SymbolRing meaningOther meaning on this site
ζ\zetaPrimitive 256th root mod 3329 (3.5); primitive 512th root mod 8,380,417 (3.3)Complex root of unity eiπ/ne^{i\pi/n} (3.2, 1.6)
ω\omegaPrimitive root of unity (3.5)Maximum hint weight in Dilithium (3.3)
γi\gamma_iNTT base-case constants (3.5)Hermite constant γn\gamma_n (1.3, 1.4); Dilithium bounds γ1,γ2\gamma_1, \gamma_2 (3.3)
σ\sigmaCanonical embedding (3.2)Gaussian standard deviation (2.3, 6.3 and others)
hhNTRU / Falcon public key (1.6, 2.6, 3.6)Dilithium hint (3.3); hash value in 6.4
 ^\hat{\ }NTT-domain value (3.1, 3.3)Babai’s output v^\hat v (2.2)
Φ\PhiWould be a cyclotomic polynomial in the literatureOn this site only the LLL potential function (1.5)
O\mathcal{O}Would be a ring of integers in the literatureOn this site only big-O notation (4.x)
K\mathcal{K}Would be a number field in the literatureOn this site a convex body (1.3)

Conventions we follow

Further reading

NIST FIPS 203 and FIPS 204 fix the ring, the roots of unity, BitRev, Compress and HighBits exactly as ML-KEM and ML-DSA use them. Lyubashevsky, Peikert and Regev, On Ideal Lattices and Learning with Errors over Rings (Eurocrypt 2010), introduces the cyclotomic-ring and canonical-embedding view. Chris Peikert’s survey A Decade of Lattice Cryptography explains ideal and module lattices in one place. These references are cited from memory.