Home  |  Contact  |  Resource Center  |  Search  

Ntru
ServicesProductsMarketsCryptoLabAbout Us

Overview

Crypto Corner

NTRU Algorithms

Scrutiny

Peer Review

Tutorials

Articles

Technical Notes

FAQs

R&D Team

Standards

Archive Center

CryptoLab
FAQs

Standards

Performance

Security

Fundamentals

Standards

What is the current status of NTRUEncrypt within standards bodies?
The core NTRU algorithms are currently being standardized in the IEEE P1363 working group. This is a multi-vendor group attended by many respected cryptographers, which exists to standardize algorithms in broad terms (in other words, to present engineers with a detailed analysis of the choices which may be made in implementing an algorithm, without mandating security parameters or guaranteeing interoperability; interoperability is guaranteed by the CEES documents, described below). The 1363 working group voted in May to include NTRUEncrypt in its current draft document. The vote was unanimous.

The main forum for standardizing the NTRU algorithms is the Consortium for Efficient Embedded Security (CEES). This is a multi-vendor body, with members such as Texas Instruments, Microsoft, and Sony [RSA is not a member - they were just a sponsor of the event we hosted last June.] as well as NTRU, which is considering appropriate security solutions for highly constrained devices. Its first standard, Efficient Embedded Security Standard (EESS) #1, is the canonical definition of how to implement the base NTRU algorithms for interoperability.

We will shortly begin work on a document in the ANSI X9 working group. This will position us to be considered for adoption in the appropriate FIPS standards when they come up for review.

We are progressing documents in the IETF PKIX and TLS working groups. In the PKIX group, the NTRU algorithms are being included in the Internet Draft on Supplementary Algorithms For PKIX. This draft standardizes not just NTRUEncrypt, but also the new versions of the Digital Signature Standard (DSA) and the hash algorithms SHA-256, SHA-384, SHA-512, and is expected to become a standards track document. The TLS working group is considering an Internet Draft on NTRU Ciphersuites for TLS.

We are active in the WAP forum, working mainly at the application layer rather than the transport layer. We intend to submit a CR to include NTRUEncrypt and NTRUSign in the SignText and EncryptText WMLScript API when the group considers it appropriate. We are also under consideration for use in WIM.

We have been very active in the IEEE 802.15.3 and 802.15.4 standards groups; we were the main authors of the security text for the current 803.15.3 draft documents.

We have also submitted NTRUEncrypt to the Japanese Cryptrec process for consideration for adoption by the Japanese e-Government project, and are active members of numerous other standards bodies and working groups.

back to top

Is NTRUEncrypt being reviewed by standards bodies?
NTRUEncrypt is currently under review by the IEEE P1363 working group for inclusion in the 1363B standard. P1363 is the IEEE public key cryptography standard, and includes all well-known cryptographic systems. NTRUEncrypt was formally presented to the P1363 working group at its August 1999 meeting in Santa Barbara, and NTRU Vice-President Joe Silverman was invited to the October 1999 working group meeting in Connecticut to provide further details about NTRUEncrypt and lattice-based cryptography. We expect NTRUEncrypt to be included in the P1363B standard.

back to top

When will NTRUEncrypt be adopted as a standard?
NTRUEncrypt is currently being considered by the members of the P1363 working group. The formal adoption won't come until the entire 1363B standard is ready and voted upon, but members of the working group can raise questions or objections at any time. Thus far, there have been no significant questions about any of NTRUEncrypt's techniques.

back to top

What is the purpose of cryptographic standards?
The purpose of these standards is to ensure uniform implementations of widely used cryptosystems and to facilitate scrutiny of proposed cryptosystems by the standards and cryptographic communities.

back to top

What is the difference between a "proprietary" system and a "standard" one?
The adoption of a cryptosystem as a standard means merely that it has been reviewed and studied by the standards body. It may still be "proprietary," that is, it may be owned by a company and require a license to use. Note that many widely used "proprietary" systems have become "standards," for example, the RSA cryptosystem. Even though RSA is a proprietary system, it filled a market need (being the first public key cryptosystem) and so was widely accepted.

The key to such market acceptance is often the uniqueness of the proprietary solution and the willingness of the technology owner to license its technology to other companies, not just to end users. NTRU is committed to a reasonable and nondiscriminatory licensing policy and is aggressively pursuing licensees through CTT, its marketing partner in the United States, and Tao Group, its global distributor.

NTRUEncrypt, with its high speed and disposable keys, is not merely the best solution for many customers, it is the only solution for many market segments, in particular for applications on low powered computing devices and those requiring very fast key generation.

Note that "proprietary" does not mean "secret." NTRUEncrypt's algorithms are published and have been studied by the cryptographic community for many years.

back to top

Performance

Why is the NTRUEncrypt Public Key Cryptosystem so fast?
Briefly, NTRUEncrypt is extremely fast because the underlying operation used by NTRUEncrypt can be performed much more rapidly than the underlying operations required by other public key cryptosystems such as RSA, El Gamal, and ECC.

back to top

Why is NTRUEncrypt so much faster than RSA, El Gamal, and ECC? (A non-technical overview)
The NTRUEncrypt cryptosystem is much faster than exponentiation systems such as RSA, El Gamal, and ECC. One reason is that the basic operations used by NTRUEncrypt involve manipulation of small numbers, generally numbers less than 255. Exponentiation systems, on the other hand, require numbers with hundreds of digits. Here's one way to understand what's happening.

A private key for any cryptosystem can be thought of as a long list of bits, for example
key = (1,1,0,1,0,0,1,0,0,1,1,1,1,0,0,0,1,0,1,0,........,0,0,1,0,1,1,1,0,0,1,0,1).
The number of 0's and 1's in the list is called the bit-length of the key. A typical key for NTRUEncrypt, RSA, or El Gamal might be between 1000 and 2000 bits long, so it's not a difference in key lengths that makes NTRUEncrypt faster. (ECC uses even shorter keys.) Instead, its how NTRUEncrypt uses the key. When RSA, El Gamal, or ECC want to encrypt a message, they need to do lots of computations involving every single bit in the key; so they need to manipulate the entire long key.

By way of contrast, NTRUEncrypt breaks the key up into small chunks, generally consisting of 7 or 8 bits each. For example,
NTRUEncrypt key = (1,1,0,1,0,0,1,0) --- (0,1,1,1,1,0,0,0,) ---....--- (1,1,1,0,0,1,0,1).
When encrypting a message, NTRUEncrypt works with the key chunks one at a time, so it never needs to manipulate extremely long lists of bits. This makes for speedy computations, even on low power processors.

A careful mathematical analysis shows that for keys consisting of around N bits, the RSA, El Gamal, and ECC systems require on the order of N3 operations to encrypt or decrypt a message, while NTRUEncrypt requires only on the order of N2 operations to encrypt or decrypt a message. The tremendous difference between N3 and N2 can be clearly seen in the timing comparisons between NTRUEncrypt, RSA, and ECC.

[Technical Addendum: The above description is highly oversimplified. In practice, use of fancy techniques (Fast Fourier Transforms, Karatsuba Multiplication, etc) will increase RSA and ECC efficiency to N2*log(N) operations and increase NTRUEncrypt efficiency to N*log(N) operations. NTRUEncrypt retains its order of magnitude advantage.]

back to top

What performance figures do you have for NTRU Encryption, Decryption, Signing, Verification and Key Generation relative to RSA and ECC (for equivalent of 1024 and 2048 RSA)?

Here are the benchmarks for NTRU-251 against RSA 1024 and ECC over GF (2^163):

NTRU-251 v RSA-1024 on 800 MHz Pentium III:

  NTRU RSA NTRU Advantage
Encrypt Blocks/sec 22727 1280 17 to 1
Decrypt Blocks/sec 10869 110 99 to 1

NTRU-251 vs RSA-1024 on Palm V

  NTRU RSA NTRU Advantage
Encrypt Blocks/sec 21 0.5 42 to 1
Decrypt Blocks/sec 12 0.036 333 to 1

(RSA public exponent is Fermat-4 prime = 0x010001 = 65537).

NTRU-251 vs ECC over GF (2^163) on 800 MHz Pentium III:

  NTRU RSA NTRU Advantage
Encrypt Blocks/sec 22727 48 475 to 1
Decrypt Blocks/sec 10869 55 197 to 1

NTRU-251 vs ECC over GF (2^163) on Palm:

  NTRU RSA NTRU Advantage
Encrypt Blocks/sec 21 0.4 52.5 to 1
Decrypt Blocks/sec 12 1.3 9 to 1

The Pentium benchmarks were obtained from Wei Dai's Crypto++ benchmarks (http://www.eskimo.com/~weidai/benchmarks.html). The Palm benchmarks were obtained from published results (RSA due to Dan Boneh of Stanford University, ECC due to Certicom). In all cases, we have taken the RSA public exponent to be 65537 = 0x010001, as this is common practice (in fact, some software will only accept RSA public keys with this exponent).

The following figures compare the performance of NTRU-347 to RSA 2048 on an 800 MHz Pentium III. The NTRU-347 figures are extrapolated from the NTRU-251 figures. The RSA figures are from Wei Dai's Crypto++ benchmarks, referenced above.

NTRU-347 v RSA-1024 on 800 MHz Pentium III:

  NTRU RSA NTRU Advantage
Encrypt Blocks/sec 16439 330 50 to 1
Decrypt Blocks/sec 7862 15 524 to 1

back to top

How do we measure and compare the speeds of NTRUEncrypt, RSA and ECC?

Statements like Cryptosystem XXX is 100 times faster than Cryptosystem YYY are meaningless without additional information. Unfortunately, the marketplace insists on succinct quantitative comparisons, so we and our competitors frequently publish these sorts of statements. To be accurate, three issues need to be addressed:

Implementation
The operating speed of a cryptosystem depends heavily on the particular implementation, on the compiler, on the machine or device processor, and on a host of other similar factors. To cite an illuminating example, we have found that the excellent weidai crypto++ package runs half as fast on our Pentium machines as it does on the weidai Celeron machines. Optimizations for a particular machine or using various programming tricks may easily give speed differentials of 2 to 3 times. We also note that we are comparing fully optimized implantations of RSA and ECC with the implementation of NTRUEncrypt in the first commercial release of Tumbler. We certainly expect significant implementation-derived speed improvements for NTRUEncrypt in future releases. So when we say that NTRUEncrypt 263 is currently 30 times faster than RSA 1024, it might be more accurate to say that the current release is 10 to 90 times faster, and that we expect the next release to be between 20 and 180 times faster. Similarly, the current release of NTRUEncrypt 503 is between 25 and 225 times faster than RSA 2048, which we feel justifies our claim of being 100 times faster.

Another important application that more than justifies our claim to a 100x speed advantage is through the use of disposable keys. For example, NTRUEncrypt is currently being implemented in a commercial product that will generate a new public/private key pair for each few seconds of audio and use that pair to encrypt and decrypt a symmetric key for that piece of audio. So in this real world situation, a single application of the public key cryptosystem consists of three operations:

Generate Key / Encrypt One Block / Decrypt One Block

If we compare NTRUEncrypt N=263 with RSA 1024 in this situation, we find that NTRUEncrypt is far more that 100 times faster. Indeed, NTRUEncrypt key pair generation takes about 3.0 milliseconds, while Crypto++ takes over 1 second to generate an RSA key pair (on our 300 MHz machines), so the NTRUEncrypt speed advantage tops 300.

What Is Being Measured
Many cryptosystems encrypt at a different speed than they decrypt, sometimes by using tricks (such as low exponent RSA) and sometimes due to the underlying algorithm. So it is important to compare apples to apples. We feel that a valid measurement is the total time it takes to first encrypt and then decrypt a single block of data. This is a useful quantity because public key cryptosystems are generally used to send a single block of data containing either a short message (e.g., a credit card number) or a key to be used by a private key cryptosystem such as triple DES or AES.

Comparable Security
The most important problem with pure speed comparisons is that they can never be valid without a corresponding comparison of security. For example, when we say NTRUEncrypt Is 100 Times Faster Than Any Competitor we should specify a security level. Unfortunately, the marketplace demands headlines, so we bow to this pressure by providing headlines and explaining the details here on our web site.

For example, the current recommendation for RSA medium term security is RSA 1024. The equivalent security level for NTRUEncrypt is provided by NTRUEncrypt 263. Long term RSA security requires using RSA 2048, and a much higher security level (closer to RSA 4096) is provided by NTRUEncrypt 503. (In comparing NTRUEncrypt 503 to RSA 2048, we are simply being extra conservative in our security evaluation.)

Keeping the above remarks in mind, the following table gives timing comparisons for NTRUEncrypt and RSA at comparable security levels.

System Blocks/Second
Encrypt and Decrypt
NTRUEncrypt vs. RSA
NTRUEncrypt 263 645.6 27.6 times faster
RSA 1024 23.4
NTRUEncrypt 503 246.8 68.6 times faster
RSA 2048 3.6

However, even a seemingly precise table like this one requires notes explaining where the figures come from and how they were derived. Here is a list of footnotes to accompany the above table:

The figures cited are the number of blocks encrypted and decrypted per second.
NTRUEncrypt operating characteristics obtained using the Tumbler toolkit running on a 300MHz Pentium machine.
RSA operating characteristics obtained using the Crypto++ package as described on the Weidai benchmark page. These tests, run on Wei Dai's 450MHz Celeron machine, were adjusted for comparison with a 300MHz machine. The Weidai RSA tests were performed using encryption exponent 17. See below for further information about use of small RSA exponents.

back to top

How do "low exponents" make RSA encrypt faster?

The RSA cryptosystem involves repeated multiplication in the group of numbers modulo p. Thus encryption requires taking a certain element g of the group and computing gk, and then decryption involves taking another element h and computing hn. In order to make encryption faster, sometimes people take the encryption exponent k to be very small. Typical examples of encryption exponents that people use are

k=3 or k=17=24+1 or k=216+1=65537.

Don Coppersmith has shown that the use of a very small exponent such as k=3 is probably not a good idea, at least for unpadded RSA messages.

D. Coppersmith, Small solutions to polynomial equations and low exponent RSA vulnerabilities, Journal of Cryptology 10 (1997), 233-260.
C. Coupe, P. Nguyen, J. Stern, The effectiveness of lattice attacks against low-exponent RSA, Public Key Cryptography '99, Lecture Notes in Computer Science, Springer-Verlag.

However, if the message is padded (as is generally the case), then many cryptographers feel that using k=3 is fine. (The Crypto++ benchmarks use exponent k=17.) Note that although it may seem like there is a tremendous difference between using k=3, k=17, and k=65537, the use of repeated squaring means that the difference is not that great. Thus g3 requires 2 multiplications, g17 requires 5 multiplications, and g65537 requires 17 multiplications, so taking k=3 makes encryption about 8.5 times faster than taking k=65537.

Important Note: The above discussion applies only to the exponent used for encryption. The exponent used for RSA decryption is always very large and requires hundreds of multiplications.

back to top

How do special curves make ECC run faster?

The initials ECC stand for "elliptic curve cryptosystem." An elliptic curve is a complicated mathematical object consisting of points that can be "added" to one another. An elliptic curve cryptosystem is formed from a field F, an elliptic curve E and a point P on the elliptic curve. Encryption and decryption require repeated addition of P to itself P+P+...+P. (This is analogous in some ways to RSA encryption, which requires repeated multiplications g*g*...*g. However, RSA multiplications are much simpler than elliptic curve "additions".) There are certain special types of fields F and elliptic curves E for which the addition operation can be performed especially efficiently. Some of these special types have been found to be insecure (e.g. "supersingular" elliptic curves, Galois fields with many subfields), but there are other special types that appear to be secure and that offer some speed advantages.

Using ECC thus requires choosing one of the following two options:
Fix one elliptic curve E and use it for many transactions. This offers major speed advantages over the second option, but it means that if some cryptographic weakness is discovered in your particular elliptic curve E, then all of your transactions will be compromised. In some sense, choosing this option creates a single target.

Choose a new elliptic curve for each transaction (or for each few transactions). This takes a large amount of time (compared to, say, creation of a new NTRUEncrypt key), but may offer additional security because it creates many targets.

All speed and footprint advantages of ECC over RSA (for example) are negated unless you are comfortable with fixing one elliptic curve and using it for many transactions. At present, this appears to be as secure as choosing a random elliptic curve for each transaction, provided the fixed elliptic curve is chosen carefully.

back to top

What benchmarks do you have that show feasibility of NTRUEncrypt running on an 8051 card without a co-processor?

encrypt: 214,000 cycles (107 ms)
decrypt: 234,000 cycles (117 ms)

Much of this code is written in C, and we expect these figures to improve. Also, note that encrypting and decrypting with the standard NTRU formatting method requires five calls to SHA-1 when encrypting and four when decrypting, and these calls are included in the figures above. The figures for raw encrypt/decrypt are:

Encrypt: 47,000 cycles (23.5 ms)
Decrypt: 80,000 cycles (40 ms)

back to top

Will NTRU work on a 16-bit card?

Yes, NTRU algorithms are suited for any environment. NTRUEncrypt is unique among asymmetric cryptosystems in that it can be implemented on any processor, even 8-bit processors, without requiring a co-processor.

back to top

Security

Will NTRU work on a 16-bit card?

The NTRUEncrypt Public Key Cryptosystem is based on the hard mathematical problem of finding very short vectors in lattices of very high dimension. The process of solving this problem is called "Lattice Reduction", and the general study of small vectors in lattices goes by the name "Geometry of Numbers". This subject has a long history due to its importance in a variety of areas of mathematics (both pure and applied) and physics. For example, in 1880 Hermite proved an upper bound for the length of the shortest vector in a lattice, and in 1896 Minkowski gave an important criterion for when a symmetric convex body must contain a nonzero lattice vector. (This is the same Minkowski responsible for the formulation of space-time in relativity.) Minkowski also gave the subject its name in his book Geometrie der Zahlen (Geometry of Numbers), published in Leipzig in 1910.

The geometry of numbers has flourished as a mathematical field. A standard reference is Lekkerkerker's Geometry of Numbers (John Wiley, NY, 1969), a massive 510 page volume with a 32 page bibliography. When Lekkerkerker was updated (Elsevier, 1987), it grew to 732 pages with a 93 page bibliography. As a further indication of the importance of lattices in modern mathematics, a search of Mathematical Reviews found over 14,000 articles published between 1986 and 1999 that have the word "lattice" in their title. Although not all research on lattices is directly relevant to cryptography, there is no question that lattices are a fundamental object of study in algebra, geometry, analysis, and physics.

With the advent of modern computers, attention turned to the practical problem of finding short vectors in lattices. One can always find the shortest nonzero vector by an exhaustive search, but the search space grows exponentially in the dimension of the lattice, so people looked for better methods. The most important modern advance in the algorithmic theory of lattice reduction is the method discovered by Lenstra, Lenstra and Lovasz and dubbed LLL.
A.K. Lenstra, H.W. Lenstra Jr. and L. Lovasz, Factoring polynomials with rational coefficients, Mathematische Annalen 261 (1982), 513-534.

The LLL algorithm finds a moderately small vector in polynomial time, but it will generally not find the smallest vector. There have been a number of improvements, mostly of a combinatorial nature, to the LLL algorithm due to Schnorr, Euchner, and others. These improvements go by names like "deep insertions", "block reduction", "pruning". But the problem of finding the smallest vector in a general lattice remains an exponentially hard problem using even the best known algorithms.

It is worth observing that LLL was invented BEFORE lattices became important in cryptography. LLL has numerous applications in signal processing, combinatorics, computer algebra, algebraic number theory, Diophantine equations, and physics, as well as cryptography. To indicate the widespread interest in LLL and computational lattice reduction, we note that the original LLL article was cited in more than 145 research articles between 1986 to 1999, the LLL algorithm is included in many computer packages (Mathematica, Maple, Pari, Simath, NTL, ...), and the LLL algorithm is featured in numerous books.

Important Disclaimer We cannot prove that breaking NTRUEncrypt is as hard as finding a shortest vector in a general lattice. All we can assert is that the best method anyone has found for breaking NTRUEncrypt involves finding the shortest vector in certain lattices of high dimension, and that experiments indicate that known lattice reduction methods are incapable of breaking NTRUEncrypt if one uses the suggested parameter sets. Notice the similarity with RSA. No one knows if breaking RSA in general is equivalent to the general problem of factoring large numbers; and even if they are equivalent, it may still be possible that some numbers are easier to factor than others, so some particular RSA keys may be weak.

back to top

Has NTRUEncrypt been reviewed by the cryptographic community?

Since its introduction at Crypto '96, NTRUEncrypt has been subject to constant scrutiny by top cryptographers, including a EuroCrypt '97 security analysis by Adi Shamir and Don Coppersmith. NTRUEncrypt has been publicly presented at top cryptographic conferences, has been described through publication in refereed journals and conference proceedings, and has been reviewed by outside experts.

back to top

How is the security of NTRUEncrypt measured?

The hard problem underlying the NTRUEncrypt Public Key Cryptosystem is that of finding a very short vector in a lattice of very high dimension. The best way known to attack NTRUEncrypt is to use the LLL lattice reduction method to search for the target vector. In order to test the security of NTRUEncrypt, we used LLL to run numerous tests on NTRUEncrypt lattices of various dimensions and graphed the amount of time it took to find the target vector. From this graph we extrapolated the running time for lattices of higher dimension and used these figures to select appropriate parameters for NTRUEncrypt. The following table gives estimated breaking times for NTRUEncrypt and RSA at various security levels. (Times are rounded to the nearest 10 MIPS-years.)

Cryptosystem Security Level Estimated Breaking Time
RSA 512 bits 105 MIPS-years
NTRUEncrypt N=167 106 MIPS-years
RSA 1024 bits 1012 MIPS-years
NTRUEncrypt N=263 1014 MIPS-years
RSA 2048 bits 1021 MIPS-years
RSA 4096 bits 1033 MIPS-years
NTRUEncrypt N=503 1035 MIPS-years

NTRUEncrypt experiments were done using the implementation of LLL in Victor Shoup's highly regarded NTL package and run on 400 MHz Celeron processors operating under Linux.
The security levels and estimated breaking times for RSA are taken from the P1363 draft standards.
Our discussion of security in this FAQ is of necessity brief and somewhat sketchy. For complete details, including experiments and a full security analysis, see the papers and technical notes at our Technical Center.
A MIPS-year is the number of operations performed in one year by a computer that is capable of performing one million instructions per second. Roughly speaking, a single 400 MHz computer does about 400 million instruction per second (one instruction per clock cycle), so it is a 400 MIPS machine. According to the above table, it would have to run for about 1012/400 years (that's about 2,500,000,000 years) to break an RSA 1024 bit key. So if you could harness the power of one million 400 MIPS machines, they would still require 2500 years to break a single key.

back to top

Why is the NTRUEncrypt Public Key Cryptosystem more secure than earlier lattice based systems, such as knapsack systems, that have been broken?

The original collection of cryptosystems broken by lattice reduction were those based upon variations of the knapsack problem. As each new variation appeared, hopeful authors did everything in their power to avoid potential transformations of their "hard problem" into one that could be attacked by lattice reduction. As the survey article by Odlyzko describes, no matter how obscured the original problem was, it still always proved in the end to be possible to transform it into one vulnerable to LLL lattice reduction methods. The last one to bite the dust was the Chor-Rivest system, broken by Schnorr's recent improvements to the LLL algorithm.

One of the fundamental problems these authors faced was the fact that the key size of their system grew with the square of the dimension of the lattice used for an attack. Because of this, it was impossible to make the dimension of an attack lattice greater than a couple of hundred without simultaneously making the cryptosystem impractical. Developments in LLL technology by Schnorr, Euchner, and others now allow lattices of dimension 200 or less to be analyzed in a short amount of time, and even certain lattices of dimension up to 300 can occasionally be broken. This is enough to dispose of all proposed practical knapsack systems. It was also enough to dispose of the lattice based system proposed in 1997 by Goldreich, Goldwasser and Halevi. The GGH system also had a key size which grew with the square of the lattice dimension, and thus either the lattice was too small for security or the key size was too large to be practical.

One important point of the NTRUEncrypt cryptosystem is to make the underlying lattice problem perfectly clear and straightforward from the outset. Thus unlike the knapsack cryptosystems, there is no question of trying to prevent the use of lattice reduction methods. A second crucial point for the NTRUEncrypt cryptosystem is that the key sizes are linear in the dimension. This means that it is easy to set up an NTRUEncrypt cryptosystem with practical key sizes (and blinding speed) which nevertheless relates to a lattice problem of dimension 500 to 1000. Current LLL techniques are completely incapable of dealing with lattice problems of this size.

Expanding on this last point, developments in LLL technology have been similar to, but somewhat less advanced than, advances in the problems of factoring large integers or finding discrete logarithms. For example, the number field sieve is a very sophisticated method of factoring which uses advanced mathematical ideas to solve the factorization problem in subexponential time. Improvements in LLL technology by Schnorr, Euchner and others have been at a simpler, more combinatorial, level. Their innovations have improved the efficiency of the LLL algorithm, but they still leave the breaking time at least exponential in the dimension.

At NTRUEncrypt Cryptosystems we have taken the best LLL technology available today and applied it to the problem of breaking the lattice problems associated to the NTRUEncrypt cryptosystem. We have extrapolated out breaking times in much the same way that factoring attacks have been used to extrapolate breaking times for RSA 1024 or 2048 keys. Our estimates based on these experiments have been extremely conservative and have made generous assumptions about the abilities and power of the LLL programs.

back to top

Do you have any mathematical proof of the security of NTRUEncrypt and NTRUSign?

NTRUEncrypt uses techniques derived from an approach due to Fujisaki and Okamoto, which give the property of Indistinguishability against Adaptive Chosen Ciphertext Attack (IND-CCA2). Details are in [1] and [2].

[1] E.Fujisaki,T.Okamoto, How to Enhance the Security of Public-Key Encryption at Minimum Cost, IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Vol.E83-A, No.1, Special Issue on Cryptography and Information Security (January 2000)

[2] NTRU Technical Note 16, available from
Technical Notes (all tech notes)
NTRUTech016.pdf (PDF of #16)

The security relies on various assumptions, of which the most important are:
- the hash function used behaves as a random oracle;
- the Shortest Vector Problem and Closest Vector Problem are hard to solve in the NTRU lattice.

NTRUSign, in the random oracle model, also reduces to the assumption that SVP and CVP are hard problems in the NTRU lattice.

NTRU Tech Notes 12 and 13 give the results of numerical experiments which allow us to estimate the difficulty of SVP and CVP in the NTRU lattice. There are no known techniques which take advantage of the special structure of the NTRU lattice; the best known technique to attack NTRU-based algorithms is the standard LLL technique. It certainly appears that, in so far as the NTRU lattice differs from a random lattice, those differences make standard lattice reduction techniques less likely, rather than more likely to succeed (for example, the lattice contains a set of public moderately short vectors, which LLL will find in polynomial time, but which prevent the algorithm from finding the shorter vectors which actually act as keys).

back to top

Why is NTRUEncrypt resistant to parallelized attacks?

The hard problem underlying the NTRUEncrypt cryptosystem is that of finding short vectors in lattices of high dimension. To solve this problem, one uses lattice reduction methods, more specifically the Lenstra-Lenstra-Lovasz (LLL) algorithm with various improvements due to Schnorr, Euchner, Horner, and others. In a similar manner, people use the number field sieve (NFS) to factor integers and break RSA, and they use the Pollard rho method (PRM) to find elliptic curve discrete logarithms and break ECC.

One way to make these methods (LLL, NFS, PRM) faster is to simultaneously use a large number of computers. In order to understand how this is done, we need to distinguish between two different ways that computers can interact:

Parallelized Computation
If many computers are permanently connected so that they can perform computations while continuously communicating with one another, then they able to perform parallel computations. Note that it is possible to have a single computer box that contains many computer chips, in which case that single box is doing parallel computing. In practice, it is often not necessary for all of the computer chips to be directly connected to one another; it is enough that they be arranged in a grid with each chip connected to the four adjacent chips. Thus it might be possible to connect all of the computers in a building to perform parallel processing, but it would not be possible to do this with any significant fraction of the computers in a city or a country.

Distributed Computation
Some tasks can be split into small pieces that can be distributed among widely separated computers. Each of the computers performs its piece of the computation without communicating with the other computers. Then, when each computer has done its part, the pieces are reassembled to solve the original problem. The internet is an ideal medium for distributed computing, since there are millions of individual computers attached to the internet.

Briefly, parallel computations require computers to be in continuous contact, while distributed computations can be performed on isolated computers with infrequent communications. Parallel computations are done by many computers (or computer chips) in a single room or building, while distributed computations may be done over a large diffuse network such as the internet.

Important Note: Security levels for NTRUEncrypt, RSA, and ECC are generally given in MIPS-Years. This measures how many years it would take a single computer, operating at one millions instructions per second, to break the system. In order to establish suitable security levels, cryptographers estimate the total computational power, in MIPS, of all of the computers currently in existence, and they also make a reasonable guess for the total computational power of all computers that will exist at certain times in the future (10 years, 50 years, 100 years, etc.). They then assume that some portion of the world's computer power could be devoted to breaking a cryptosystem and use that number to suggest appropriate security levels. Thus security levels are set under the most conservative assumption that breaking a cryptosystem can be fully distributed, since no one believes that 1% (or even .01%) of the world's computational power will ever be parallelized. We have followed this conservative approach in setting NTRUEncrypt security levels, so even if lattice reduction is ever possible in a fully distributed environment, it will not affect the security of NTRUEncrypt.

Lattice Reduction (LLL) and NTRUEncrypt The basic LLL algorithm is sequential, which means that each step relies on the results of the previous step. Briefly, one starts with a list of not-very-short vectors, modifies them to get a list that is (hopefully) a little shorter, and then keeps repeating the process. After a large number of repetitions, one hopes to find some very short vectors. Lattice reduction computations (using the best current algorithms) cannot be distributed, since each step relies on the results of the previous step. Thus it does not appear to be possible to distribute lattice reduction problems over a large number of computers connected by the internet.

Parallelization, on the other hand, does offer the possibility of improved performance, and there has been important research on this topic. Remember that LLL takes a list of vectors and "modifies" it to get a better list. This modification process itself requires a large number of basic operations (additions, subtractions, multiplications, etc.). The idea for parallelized LLL is to connect a large number of computers (or computer chips) in the form of an n-by-n grid and do the list modification in one (or a few) computer cycles. In principle, using n2 computers can speed up LLL by a factor of n2. However, there is an important caveat. Parallelization only helps up to n equal to the dimension of the lattice, so for NTRUEncrypt the theoretical maximum gain is at most 106. Thus assembling a million computers in one building might give a corresponding speed increase, but as noted above, NTRUEncrypt security levels are set using conservative assumptions that already account for this scenario. For those interested in pursuing this topic, see for example:
J.L. Roch and G. Villard, Parallel gcd and lattice basis reduction, Parallel Processing: CONPR92-VAPPV, Lyon, 1992, Lecture Notes in Computer Science 634, Springer-Verlag, 1992, 557-564.
C. Heckler and L. Thiele, Complexity analysis of a parallel lattice basis reduction algorithm, Siam Journal of Computation 27 (1998), 1295-1302.

Number Field Sieve (NFS) and RSA The number field sieve (NFS) is the fastest known method for factoring large numbers. It consists of two distinct steps, "Relation Creation" and "Relation Reduction". The Relation Creation stage of NFS can be fully distributed, and indeed the factorization of a 512 bit RSA modulus by NFS did Relation Creation on hundreds of computers distributed over the internet. The Relation Reduction stage, by contrast, does not seem to be distributable, since it is a sequential process similar in some ways to lattice reduction. (More precisely, it involves matrix reduction of very large sparse matrices over the field with two elements.) However, parallelization using a grid of computers might well allow Relation Reduction to be done more rapidly.

back to top

How does NTRUEncrypt cope with SPA-based attacks?

[Glossary: SPA = Simple Power Analysis; DPA = Differential Power Analysis; both are ways of extracting cryptographic data from a device by measuring the power it consumes. The difference between SPA and DPA is that DPA, which is by and large more powerful, averages results over a large number of runs.]

The core NTRU convolution is relatively easy to blind against SPA attacks. The operations are simply adds and reductions modulo a power of two. We would be happy to collaborate with interested device vendors on constructing an NTRU implementation that is entirely immune to SPA attacks.

Full NTRU encryption requires the use of a hash function, typically SHA-1. This would need to be blinded against DPA and SPA to protect individual messages. It does not seem, however, that an SPA-based attack on the hash algorithm would endanger the private key.

back to top

Does the NTRUEncrypt Public Key Cryptosystem pass the "Snake Oil Test"?

We begin with a quote from the Snake Oil FAQ explaining what the term means.
"Good cryptography is an excellent and necessary tool for almost anyone. Many good cryptographic products are available commercially, as shareware, or free. However, there are also extremely bad cryptographic products which not only fail to provide security, but also contribute to the many misconceptions and misunderstandings surrounding cryptography and security."

"Why "snake oil"? The term is used in many fields to denote something sold without consideration of its quality or its ability to fulfill its vendor's claims. This term originally applied to elixirs sold in traveling medicine shows. The salesmen would claim their elixir would cure just about any ailment that a potential customer could have. Listening to the claims made by some crypto vendors, "snake oil" is a surprisingly apt name."

"Superficially, it is difficult to distinguish snake oil from the Real Thing: all encryption utilities produce garbled output. The purpose of the Snake Oil FAQ is to present some simple "red flags" that can help you detect snake oil."

The Snake Oil FAQ gives a list of warning signs to look for when evaluating cryptographic systems and products. Another similar list was compiled by Bruce Schneier in the February 15, 1999 issue of the Crypto-Gram, published on the web by Counterpane Systems. We urge you to look at these sources for further details. (Disclaimer: The statements about NTRU that follow are ours alone. Neither the Snake Oil FAQ, Counterpane Systems nor Bruce Schneier in any way endorses any of our statements.)

The following list of snake oil indicators was complied from the Snake Oil FAQ and from the Crypto-Gram. We feel that NTRUEncrypt easily passes the "snake-oil test".

Warning Sign #1: Beware of Technobabble and Pseudo-Mathematical Gobbledygook
There is NO pseudo-mathematics on the NTRU web site or in any NTRU article or technical note. What you will find is lots of mainstream mathematics. This ranges from the description of NTRUEncrypt in the tutorials, which is comprehensible to anyone who has studied some mathematics at the undergraduate level, up to the security analyses of NTRUEncrypt, which require a fair amount of mathematical sophistication. But all of the mathematics used is quite standard and well known, in the sense that the underlying mathematical theories are described in numerous textbooks and articles.

Warning Sign #2: Beware of Secret Algorithms and Proprietary Cryptography
If a company won't divulge the algorithm they are using, you have no way of judging how secure it is. This is especially true of public key systems such as NTRUEncrypt. That's why the complete NTRU encryption/decryption/key creation algorithm was described in 1996 at CRYPTO by Jeff Hoffstein. He also distributed a detailed technical description (until he ran out of copies, having only brought about 30). The same material has been available on NTRU's web site since 1996. (Of course, we did file a patent application before making the first public announcement.)

Warning Sign #3: Beware of Revolutionary Breakthroughs and New Mathematics
Good cryptography is hard, and new ideas need to stand the test of time. It took several years of dedicated work by a team of mathematicians to come up with the ideas which eventually became the NTRUEncrypt Cryptosystem. The complete NTRUEncrypt algorithm was then presented to the cryptographic community for public scrutiny at the CRYPTO '96 conference, at which time a detailed technical description was made available on hard copy and over the internet. Based on feedback from numerous professional cryptographers, the system was tightened and appropriate parameter sizes and security levels were chosen. The NTRUEncrypt Cryptosystem has thus been available and studied by the academic and business research communities for several years. Further, the underlying hard problem on which NTRUEncrypt is based, namely the problem of finding short vectors in lattices of large dimension, has been an object of intense study for many years due to its many applications outside of cryptography.

Warning Sign #4: Beware of Ridiculous Key Length.
Some companies claim their cryptosystems are secure by citing the large key lengths and the time it would take to search through all of the possible keys. Key length is certainly one aspect of security. However, it is more important to understand all of the ways in which security can be compromised. For example, triple DES with its 168 bit key is quite secure, because as far as anyone knows, the only way to break DES is to blindly check all possible keys. But for RSA and ElGamal, there are more powerful methods to find the keys, equivalent security requires keys with around 1000 bits. Similarly, NTRUEncrypt requires a key of about 2000 bits for the same security level. (Of course, NTRUEncrypt makes up for its slightly longer key length by operating 50-100 times faster.) And if you need a public key cryptosystem with the smallest possible keys and you don't care about speed, then you might want to use an elliptic curve cryptosystem (ECC). This is because the best known attack on ECC is much less efficient than the attacks on RSA or ElGamal or NTRUEncrypt, so for ECC a key length of 168-bits is currently as strong as a 1024-bit RSA key.

All discussion of the security of (public key) cryptosystems rests on the unspoken, but very necessary, assumption that we already know the most efficient algorithm for breaking the cryptosystem. With this assumption, it becomes a matter of theoretically and/or experimentally testing how fast the best breaking algorithm runs, and then extrapolating out to the recommended key sizes. The following table lists four practical public key cryptosystems which are based on well-studied mathematical problems and gives the best known algorithm for solving the underlying mathematical problem and breaking the system.

System Underlying Problem Best Known Attack
RSA Factor large numbers Number field sieve
El Gamal Discrete logarithm Index calculus
ECC Elliptic curve discrete log Pollard rho
NTRUEncrypt Find a short vector in lattice LLL lattice reduction

In conclusion, if a cryptosystem is to be secure, it is necessary that the number of possible keys be so large that one can't check all of them. But key length alone does not determine security. There is much more to analyzing the security of a cryptosystem than simply having a large number of keys. It is essential to thoroughly understand and test the system using the most sophisticated known mathematical techniques. It is also good if the underlying mathematical problem has been studied for many years, above and beyond its uses in cryptography. For example, this is the case with the integer factorization problem utilized by RSA, and it is also the case with the Short Vector Problem utilized by NTRUEncrypt.

Warning Sign #5: Beware of One-Time Pads
Some companies claim that their products are "One-Time Pads", and hence are unbreakable. True one-time pads are completely secure, but unfortunately they are also completely impractical; and the so-called one-time pads being sold are seldom what they claim. Certainly NTRUEncrypt is not a one-time pad.

However, we do sometimes say that NTRUEncrypt has "disposable keys". This simply means that key creation is so fast that it is reasonable to create a new key for each transaction, something not possible with older systems. In addition to giving increased security, this opens up new applications and is an aspect of NTRUEncrypt of which we are quite proud.

Warning Sign #6: Unsubstantiated Claims and Rave Reviews
We make every effort to have all of our claims clear and comprehensible; and when we're making a claim, we always try to describe the basis for our claim. Unfortunately, in short non-technical press releases, it's not possible to give full details of, say, a security analysis (of NTRUEncrypt or any other cryptosystem); but the information backing up our claims should always be there on our web site. We at NTRUEncrypt Cryptosystems always try to make all of our literature clear and precise, but we're only human and sometimes things slip by. If we ever make a claim which does not seem to be supported, please write to us and we will be very happy to give you a full explanation.

We reiterate that the hardest claims to substantiate are those relating to security. (It's relatively easy to test how fast a system is, or to see how long its keys are.) And everyone in the cryptographic industry, from market leaders to tiny upstarts, is frequently guilty of making unsubstantiated security claims through the sin of omission, because no security claim is complete unless it explicitly says that the stated time to break the cryptosystem depends on the assumption that no one will ever come up with a substantially better algorithm for solving the underlying mathematical problem. This is well known to every professional cryptographer, but people in the business community who buy cryptographic products generally do not realize that the security of the system is contingent on a lack of mathematical breakthroughs.

Both the Snake-Oil FAQ and Schneier's article recommend using cryptosystems that have been reviewed by the cryptographic community. We know that NTRUEncrypt has been examined by numerous professional cryptographers, since we've received a lot of correspondence about it since 1996. Since these were direct private communications, we do not feel we can list their names in a public forum such as this web page. However, as an indication that top cryptographic professionals have studied NTRUEncrypt and take it seriously, we can point to an article on NTRUEncrypt that was presented at ANTS '98 by NTRU President Jeff Hoffstein, an article about the NTRUEncrypt Cryptosystem by Don Coppersmith and Adi Shamir that appeared in the proceedings of EUROCRYPT '97, and a Master's Thesis on NTRU written by Alexander May under the direction of Claus Schnorr.

Further, the Tumbler implementation (C and Java) of the NTRU cryptosystem by Tao Group, Ltd. has been reviewed by Counterpane Systems, a well-known and highly respected company specializing in security evaluations of cryptographic products.

Warning Sign #7: Security Proofs
Some companies claim that they can PROVE that their cryptosystems are secure. Sometimes these proofs are real, but don't say anything about the actual security of the system being sold. Sometimes the proofs are incorrect. There are also some public key cryptosystems which are provably equivalent to mathematical problems that are believed to be hard, but for now, all such systems are not commercially practical (too slow and/or huge key sizes).

We certainly don't claim to have a proof that NTRUEncrypt is secure. We only claim that the best known method to find an NTRUEncrypt private key or break an encryted NTRU message requires solving the Short Vector Problem, and that the best known method to solve the Short Vector Problem is LLL Lattice Reduction (with improvements by Schnorr and others). We have conducted extensive tests of these methods and used these tests (in a very conservative manner) to set appropriate security levels. Of course, we also publish full details of our experiments and encourage independent testing by others.

Warning Sign #8: Beware of Cracking Contests
A number of companies, including many reputable ones such as Security Dynamics (which sells RSA), Certicom (which sells ECC), and NTRU, have contests posted on their web site. These contests, which often include financial prizes, are intended to encourage people to study the companies' cryptosystems and the underlying mathematical problems. Some less-reputable companies trumpet the fact that no one has solved their cracking contest as a guarantee of security. Such claims are irresponsible, since the mere existence of a cracking contest doesn't mean anyone is actually working on the problem.

Cracking contests are mainly useful for perking interest in mathematical problems that already interest mathematicians and computer scientists. In some sense, they create a fun, yet competitive, setting for doing serious work. This is true of RSA's factorization challenges, Certicom's discrete logarithm challenges, and NTRUEncrypt's lattice reduction challenges. There has been a great deal of research in both the academic and business worlds on the problem of finding short vectors in lattices, partly because the problem is inherently mathematically appealing, and partly because it has many practical applications. So we feel that it is worthwhile running a contest which encourages people to study and refine methods for solving the Short Vector Problem. (Of course, we're also happy to have people think about other ways to break NTRUEncrypt which do not involve lattices or short vectors.)

Thus although we would never say that the NTRU Challenge Problems in any way guarantee the security of NTRUEncrypt, we do feel that they are helpful in encouraging people to further study the Short Vector Problem and to study NTRUEncrypt. Finally, we stress that the NTRU Challenge Problems are fair, in the sense that we completely describe the algorithms used to create a key, to encrypt, and to decrypt. We even give step-by-step instructions on how to check if a solution (key or message) is correct.

Visit the NTRU Challenge Page for further information. You can also read Bruce Schneier's comments on cracking contests (with which we don't entirely agree, but we'll let you form your own opinion) in the December issue of the Crypto-Gram.

back to top

Is NTRU vulnerable to attacks based on quantum computing?

There is no known quantum computing algorithm which speeds up attacks on NTRU.

In general, there are two quantum computing algorithms of great significance to cryptanalysis: Shor's algorithm and Grover's algorithm.

Shor's algorithm uses the fact that quantum computing methods can calculate the period of a periodic function very quickly. This can be used to massively speed up attacks on RSA, Discrete Log based cryptosystems such as DSA and Diffie-Hellman, and Elliptic Curve Discrete Log systems such as ECDSA, ECMQV, and so on. (Note that in the case of RSA the period of the function essentially is the private key). Shor's algorithm has no obvious application to NTRU: NTRU has no similar periodic function to exploit.

Grover's algorithm speeds up unsorted database and brute force searches: using Grover's algorithm, it is possible to search a list of N items in sqrt(N) time. This effectively halves the keylength of symmetric ciphers. However, there is no obvious application to NTRU, as in the case of NTRU the brute force attack is not the most efficient, even if sped up by Grover's algorithm. (Note that there is a known meet-in-the-middle attack on NTRU private keys which also speeds up a brute force search by a square-root factor; there is no known way to compose this speed-up with a quantum computing speed-up).

Additional quantum computing algorithms exist (e.g. to find eigenvalues quickly): again, there is no obvious application to breaking NTRU.

Finally, we note that the threat from quantum computers to all encryption algorithms is currently theoretical. The biggest working quantum computer to date can do 7-bit operations; it will take a quantum computer of a few thousands of qubits to break RSA-1024. However, theory is advancing rapidly and claims are being made all the time of new designs that will enable multi-bit operations.

back to top

Fundamentals

What is the difference between a ring-based cryptosystem and a group-based cryptosystem?

A ring is a mathematical object which has two algebraic operations, addition and multiplication. Examples of rings are the integers, the rational numbers, finite fields, and rings of polynomials. Groups, on the other hand, have only one operation. An important example of a group is the collection of non-zero elements in a finite field, where the one operation is multiplication. Another example is the set of points on a mathematical object called an elliptic curve.

Aside from NTRUEncrypt, the three most popular pubic key cryptosystems in use today are RSA, El Gamal, and ECC (elliptic curve cryptosystem). All of these are group-based cryptosystems in the sense that the encryption/decryption processes use only one algebraic operation. Thus RSA uses multiplication in a finite ring (the integers modulo m), El Gamal uses multiplication in a finite field, and ECC uses elliptic curve addition.

The NTRUEncrypt public key cryptosystem, by way of contrast, makes use of both the addition and the multiplication in a certain finite ring, which is why we say that NTRUEncrypt is a ring-based cryptosystem. This fact does not, in and of itself, make NTRUEncrypt either better or worse than earlier systems; but it does serve to differentiate it.

It is worth noting that the groups used for RSA and El Gamal actually fit very naturally into rings. Indeed, in both cases the group being used is the group of invertible elements (i.e., elements with multiplicative inverses) inside a large ring, so one might ask why they aren't also ring-based systems. The answer is that neither cryptosystem makes use of the addition operation in the ring; they only use multiplication, so they are groups-based. On the other hand, the fact that the groups used by RSA and El Gamal fit naturally into rings is exploited in mounting attacks on these systems. More precisely, the sub-exponential algorithms to break RSA and El Gamal (quadratic sieve, number field sieve, index calculus) rely on both addition and multiplication. By way of contrast, the elliptic curve groups used by ECC do not naturally fit inside of a ring, which might help explain why there are no known subexponential algorithms for ECC.

Now to the NTRUEncrypt cryptosystem. The encryption and decryption processes for NTRUEncrypt use both addition and multiplication in an essential way, which is why we call NTRUEncrypt a ring-based system. This is not to say that merely using ring operations makes NTRUEncrypt secure. But as we have just observed, if a group based system fits naturally into a ring, then the extra operation in the ring can be exploited in attacking the system. This explains why it makes sense to look at cryptosystems which directly use both addition and multiplication, since if both operations will be available to the attacker anyway, it makes sense to also use both of them for the encryption and decryption processes.

back to top

 


Email Us

Copyright © NTRU Cryptosystems, Inc. 1998-2008 35 Nagog Park, Acton, MA 01720, USA Tel. 978-844-5200 Created by PixelMEDIA