NTRU Prime

Warnings regarding lattice-based cryptography in general

A 2015 algorithm breaks dimension-N SVP (under plausible assumptions) in time 2(c+o(1))N as N→∞ with c≈0.292. For comparison, the best algorithm known just five years earlier had a much worse c≈0.415, and the best algorithm known just ten years before that took time 2Θ(N log N).

Gentry's original FHE system at STOC 2009, with standard "cyclotomic" choices of rings, is now known (again under plausible assumptions) to be broken in polynomial time by a quantum algorithm. Peikert claimed in 2015 that the weakness in Gentry's system was specific to Gentry's short generators and inapplicable to Ideal-SVP:

Although cyclotomics have a lot of structure, nobody has yet found a way to exploit it in attacking Ideal-SVP/BDD ... For commonly used rings, principal ideals are an extremely small fraction of all ideals. ... The weakness here is not so much due to the structure of cyclotomics, but rather to the extra structure of principal ideals that have short generators.

However, the attack was then combined with further features of cyclotomics to break Ideal-SVP (again under plausible assumptions) with approximation factor 2N1/2+o(1), a terrifying advance compared to the previous 2N1+o(1).

As these attack examples illustrate, the security of lattice-based cryptography is not well understood. There are serious risks of further advances in

To eliminate some tools used in recent attacks, we recommend switching from cyclotomic rings ("NTRU Classic" rings and "NTRU NTT" rings) to "NTRU Prime" rings, as explained in the original NTRU Prime paper. However, we emphasize that lattice-based cryptography has many other attack avenues that need further study.

Warnings regarding NISTPQC lattice candidates

Beyond the general warnings above, we issue the following more specific warnings to potential users of lattice-based encryption systems submitted to the NIST Post-Quantum Cryptography Standardization Project:

Given the general complexity of lattice attacks, the number of different targets, and the fact that new lattice attacks are continuing to appear, it is clear that a few years are not enough time for comprehensive security review.

Regarding small round-3 NISTPQC lattice-based encryption systems in particular, where sntrup is Streamlined NTRU Prime and ntrulpr is NTRU LPRime:

issue NTRU sntrup ntrulpr SABER Kyber
patent 9094189 risk risk risk
patent 9246675 risk risk risk
cyclotomic lattices risk risk risk
structured lattices risk risk risk risk risk
decryption failures risk risk
derandomization risk risk risk
quotients risk risk
extra samples risk risk risk
non-QROM IND-CCA2 attacks risk risk risk risk risk

All of these systems include details first published in 2019, requiring careful security review. All of these systems have lower security levels against the best attacks known in 2020 than they had against the best attacks known in 2017.

NTRU Prime is relatively stable among NISTPQC lattice-based submissions: it has an identical family of one-way functions throughout round 1, round 2, and round 3, and an identical family of CCA transforms throughout round 2 and round 3. However:

Warnings regarding software in general

Beyond the warnings above regarding the definitions of cryptographic functions, we issue further warnings regarding software meant to implement those functions.

At the moment, the most concise implementations of lattice-based cryptography are implementations in the Sage computer-algebra system. However, these implementations leak secret information through timing.

C implementations are sometimes designed

Our C implementations for NTRU Prime are designed this way. However, there are at least some platforms where multiplications take variable time, and fixing this requires platform-specific effort; see https://www.bearssl.org/ctmul.html and https://research.tue.nl/en/studentTheses/a-performance-study-of-x25519-on-cortex-m3-and-m4. Furthermore, C compilers generally do not make any guarantees regarding timing. Compiled implementations need to be reviewed for constant-time behavior.

The TIMECOP tools automatically review compiled implementations for constant-time behavior. The C implementations for NTRU Prime pass TIMECOP with several different compiler options. However, other compiler options could break constant-time behavior, and there are ways that variable-time behavior could escape TIMECOP.

Implementations also need to be reviewed for correctness. There is a close match between the structure of

but this is only the starting point for review; it does not mean that adequate review has taken place. Furthermore, optimized implementations require extra review work. There are many examples of cryptographic software where tests, even quite expensive tests, fail to catch bugs.

SUPERCOP's checksums of outputs from the C implementations of NTRU Prime match checksums computed by pure Sage software, but this does not guarantee that the implementations match on other inputs, and it does not rule out the possibility of bugs shared between the implementations. There are automated tools verifying that some subroutines work correctly for all inputs, but other subroutines still need verification.

Version: This is version 2020.10.31 of the "Warnings" web page.