2.6 NTRU
The oldest lattice cryptosystem — polynomial rings, small coefficients, and the Falcon signature standard.
NTRU (N-th degree Truncated polynomial Ring Units) was introduced by Hoffstein, Pipher, and Silverman, first announced at the Crypto 1996 rump session and formally published at ANTS 1998. It is the oldest lattice-based public key system and the only one that has survived nearly 30 years of public cryptanalysis. NTRU's ring structure inspired the later Ring-LWE framework. Today it is the basis of FIPS 206 (Falcon / FN-DSA), one of NIST's post-quantum standards. The original paper is available at ntru.org.
NTRU differs from LWE in one important way: instead of adding noise to linear equations, it constructs a trapdoor directly from short polynomials in a ring. The resulting scheme is extremely compact — NTRU encryption and Falcon signatures have some of the smallest key and ciphertext sizes in post-quantum cryptography.
Intuition
In NTRU the private key is a pair of polynomials with small coefficients, and the public key is their quotient in a polynomial ring. Dividing is easy. Going back, recovering two small polynomials from their quotient, amounts to finding a short vector in a special lattice, and no efficient method for that is known.
The idea dates from 1996, which makes NTRU one of the oldest lattice cryptosystems still standing, and its keys and ciphertexts are compact.
The Ring Setting
NTRU works in the polynomial ring:
Definition 30 — NTRU Ring
Let (original NTRU) or (Falcon, with a power of 2). NTRU Prime instead uses with prime, a field chosen to avoid the extra algebraic structure of cyclotomic rings. Elements are polynomials of degree less than with integer coefficients. Multiplication in is polynomial multiplication with coefficient reduction. In the ring , coefficients are further reduced modulo .
A polynomial in is called small if all its coefficients are in (ternary) or have small absolute value. Small polynomials are the “short vectors” of NTRU.
NTRU Key Generation — Choosing f, g and Computing h
NTRU’s trapdoor is a pair of small polynomials whose ratio (in the ring) is the public key. Knowing either polynomial individually is not useful — you need both (or their ratio) to decrypt. The key generation process must ensure both invertibility (for correctness) and shortness (for security).
Construction 9 — NTRU Key Generation
Parameters: Ring (or for Falcon), small modulus (typically 3), large modulus (typically a power of 2 or a prime, with ).
Step 1 — Choose secret polynomials: Sample small polynomials with coefficients in and approximately nonzero coefficients each. The sparsity and smallness of and is what makes the private key a “short vector” — the trapdoor.
Step 2 — Check invertibility: Require that is invertible in both and . Invertibility in is needed for key generation; invertibility in is needed for decryption. If either fails (which occurs with small probability), resample .
Step 3 — Compute inverses:
(polynomial inverse modulo )
(polynomial inverse modulo )
Both can be computed efficiently using the extended Euclidean algorithm for polynomials.
Step 4 — Compute public key:
The public key is a uniformly random-looking element of . The private key is the pair .
Security intuition: Given , recovering or requires finding the short vector in the NTRU lattice (defined below). This is believed to be as hard as SVP in the NTRU lattice, for which no polynomial-time algorithm is known.
NTRU Encryption and Decryption
NTRU encryption hides a message polynomial inside a linear combination involving the public key. Decryption exploits the private key to cancel the blinding factor, leaving the message recoverable. The correctness condition is that all polynomials involved stay small enough to avoid modular wraparound.
Construction 10 — NTRU Encryption/Decryption
Encrypt message (coefficients in ):
1. Sample a small random blinding polynomial with coefficients in .
2. Ciphertext: .
The blinding factor masks the message completely — since looks random, so does to anyone who doesn’t know .
Decrypt ciphertext :
1. Compute . Expanding:
2. Lift to integers: Since all have small coefficients, the polynomial has coefficients bounded by approximately . This means the modular reduction mod has not wrapped around — we can lift to an integer polynomial with the same value.
3. Reduce mod : (since ).
4. Recover message: Multiply by :
.
Correctness condition: The lift in step 2 succeeds as long as . Since all polynomials are short, this holds with overwhelming probability for appropriate parameter choices.
Decryption failure: If the error term wraps around mod in any coefficient, decryption fails. Parameters are chosen so that this probability is negligible (below ).
The NTRU Lattice
NTRU’s security is formalized through the NTRU lattice. The private key forms an unusually short vector in a lattice defined by the public key . Breaking NTRU means finding this short vector.
Definition 31 — The NTRU Lattice
For NTRU with public key and ring dimension , the NTRU lattice is the -dimensional lattice:
In matrix form, the basis is:
where is the circulant matrix with first row equal to the coefficients of (the rows of generate the vectors ).
Taking as in Falcon (for the encryption key , use ), we have , so the private key gives the short vector with for ternary keys, much shorter than the lattice’s expected shortest vector . Recovering from is the NTRU problem.
NTRU Hardness — Lattice Structure and Resistance to Attacks
NTRU does not have a proven worst-case hardness reduction like LWE. Its security is based on the empirical observation that breaking NTRU requires solving SVP in the NTRU lattice — a fact supported by 28 years of public cryptanalysis but not proven by a reduction. This is the primary theoretical weakness relative to LWE-based schemes.
Why the NTRU Lattice Is Hard to Attack
The NTRU lattice is a -dimensional lattice with a specific structure: it is a module lattice over the ring , meaning it has -fold symmetry that can be exploited algorithmically (making attacks faster) but also makes the lattice more regular (making it harder to distinguish the short vector from others).
The challenge: The private key is a vector of norm approximately (since each polynomial has nonzero coefficients). The expected shortest vector in the NTRU lattice from Gaussian heuristics has norm . The ratio is large — the private key is far shorter than a “generic” short vector. This makes a uniquely short vector, but it also means BKZ must achieve a very small approximation factor to find it.
BKZ attack complexity: The best known attack applies BKZ- to the -dimensional NTRU lattice. For Falcon-512 (, ), security is quoted as a Core-SVP estimate, for the required block size . That figure is deliberately conservative (it counts a single SVP call and ignores memory), so it is not directly comparable to “128 bits”: NIST levels are defined relative to the cost of AES key search, and the Falcon team argues Falcon-512 meets Level 1 once the full attack cost is counted.
The NTRU fatigue point: As the ratio increases, the NTRU lattice becomes easier to attack via subfield attacks. The fatigue point is the threshold beyond which overstretched-NTRU attacks (Albrecht–Bai–Ducas 2016, Kirchner–Fouque 2017) beat the usual key-recovery estimates; the exponent 2.484 comes from Ducas–van Woerden (2021). Below the fatigue point, no polynomial-time algorithm is known. Falcon’s parameters are chosen well below this threshold: for (). Above the fatigue point (as in some NTRU-based FHE schemes with very large ), the subfield attack reduces the effective dimension to roughly , breaking the scheme. This ruled out NTRU as a basis for fully homomorphic encryption.
Lattice attacks (BKZ)
The strongest known attack on NTRU applies BKZ to the NTRU lattice to find the short vector . The NTRU lattice is a -dimensional q-ary lattice with determinant . Security parameters are chosen so that BKZ needs a block size whose cost exceeds operations.
NTRU overstretched (above fatigue)
The “overstretched NTRU” attacks (Albrecht et al. 2016 and follow-ups) showed that NTRU with large modulus (above roughly , per Ducas–van Woerden 2021) can be broken using subfield lattice attacks — reducing the effective lattice dimension to . Falcon avoids this by using — well below the fatigue point.
Hybrid meet-in-the-middle
Hybrid attacks combine lattice reduction with meet-in-the-middle search over the small coefficients of the private key. These are the most practical attacks for low dimensions. Falcon parameters are designed to keep this cost above .
From NTRU Encryption to Falcon Signatures
The NTRU lattice is the setting for Falcon (FIPS 206 / FN-DSA) — NIST’s second lattice signature standard alongside Dilithium. Falcon uses a “hash-and-sign” paradigm over the NTRU lattice rather than the Fiat-Shamir approach used by Dilithium.
Falcon: Hash-and-Sign over NTRU
Key generation: Generate an NTRU key pair with additional polynomials satisfying (the NTRU equation). The public key is .
Sign message :
1. Hash: compute target for random salt .
2. Use the trapdoor to sample a short vector such that . This uses fast Fourier sampling over the NTRU lattice.
3. Signature: .
Verify: Recompute , check that is short.
Falcon vs Dilithium: A Comparison
Falcon-512
Based on NTRU. Hash-and-sign paradigm.
Public key: 897 bytes
Signature: 666 bytes
Security: ~128 bits
Advantage: very compact signatures. Disadvantage: requires Gaussian sampling over real numbers — harder to implement securely in constant time. Variable-length signatures complicate some protocols.
ML-DSA-44 (Dilithium)
Based on Module-LWE/SIS. Fiat-Shamir with aborts.
Public key: 1,312 bytes
Signature: 2,420 bytes
Security: ~128 bits
Advantage: simpler implementation, constant-time naturally, better-understood security. Disadvantage: larger signatures than Falcon.
Check Your Understanding
Q1. NTRU decryption computes a = f·e mod q and then lifts it to ordinary integers. Why does that lift work?
Q2. What makes the NTRU private key special from the lattice point of view?
Q3. What happens if NTRU is used with a very large modulus q relative to n (“overstretched” NTRU)?
Q4. How does NTRU’s security foundation differ from LWE’s?