NTRUEncrypt
   HOME

TheInfoList



OR:

The NTRUEncrypt
public key cryptosystem Public-key cryptography, or asymmetric cryptography, is the field of cryptographic systems that use pairs of related keys. Each key pair consists of a public key and a corresponding private key. Key pairs are generated with cryptographic alg ...
, also known as the NTRU encryption algorithm, is an
NTRU NTRU is an open-source public-key cryptosystem that uses lattice-based cryptography to encrypt and decrypt data. It consists of two algorithms: NTRUEncrypt, which is used for encryption, and NTRUSign, which is used for digital signatures. Unli ...
lattice-based alternative to RSA and
elliptic curve cryptography Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC allows smaller keys compared to non-EC cryptography (based on plain Galois fields) to provide ...
(ECC) and is based on the
shortest vector problem In computer science, lattice problems are a class of optimization problems related to mathematical objects called lattices. The conjectured intractability of such problems is central to the construction of secure lattice-based cryptosystems: Lat ...
in a lattice (which is not known to be breakable using
quantum computers Quantum computing is a type of computation whose operations can harness the phenomena of quantum mechanics, such as superposition, interference, and entanglement. Devices that perform quantum computations are known as quantum computers. Though ...
). It relies on the presumed difficulty of factoring certain polynomials in a truncated
polynomial ring In mathematics, especially in the field of algebra, a polynomial ring or polynomial algebra is a ring (which is also a commutative algebra) formed from the set of polynomials in one or more indeterminates (traditionally also called variables) ...
into a quotient of two polynomials having very small coefficients. Breaking the cryptosystem is strongly related, though not equivalent, to the algorithmic problem of
lattice reduction In mathematics, the goal of lattice basis reduction is to find a basis with short, nearly orthogonal vectors when given an integer lattice basis as input. This is realized using different algorithms, whose running time is usually at least expone ...
in certain
lattice Lattice may refer to: Arts and design * Latticework, an ornamental criss-crossed framework, an arrangement of crossing laths or other thin strips of material * Lattice (music), an organized grid model of pitch ratios * Lattice (pastry), an orna ...
s. Careful choice of parameters is necessary to thwart some published attacks. Since both encryption and decryption use only simple polynomial multiplication, these operations are very fast compared to other asymmetric encryption schemes, such as RSA,
ElGamal In cryptography, the ElGamal encryption system is an asymmetric key encryption algorithm for public-key cryptography which is based on the Diffie–Hellman key exchange. It was described by Taher Elgamal in 1985. ElGamal encryption is used in th ...
and
elliptic curve cryptography Elliptic-curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. ECC allows smaller keys compared to non-EC cryptography (based on plain Galois fields) to provide ...
. However, NTRUEncrypt has not yet undergone a comparable amount of cryptographic analysis in deployed form. A related algorithm is the NTRUSign
digital signature A digital signature is a mathematical scheme for verifying the authenticity of digital messages or documents. A valid digital signature, where the prerequisites are satisfied, gives a recipient very high confidence that the message was created b ...
algorithm. Specifically, NTRU operations are based on objects in a truncated polynomial ring \ R=\mathbb (X^N-1) with convolution multiplication and all polynomials in the ring have
integer An integer is the number zero (), a positive natural number (, , , etc.) or a negative integer with a minus sign (−1, −2, −3, etc.). The negative numbers are the additive inverses of the corresponding positive numbers. In the language ...
coefficient In mathematics, a coefficient is a multiplicative factor in some term of a polynomial, a series, or an expression; it is usually a number, but may be any expression (including variables such as , and ). When the coefficients are themselves var ...
s and degree at most ''N''-1: : \textbf = a_0 + a_1 X + a_2 X^2 + \cdots + a_ X^ + a_ X^ NTRU is actually a parameterised family of cryptosystems; each system is specified by three integer parameters (''N'', ''p'', ''q'') which represent the maximal degree \ N-1 for all polynomials in the truncated ring ''R'', a small modulus and a large modulus, respectively, where it is assumed that ''N'' is
prime A prime number (or a prime) is a natural number greater than 1 that is not a product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime because the only ways ...
, ''q'' is always larger than ''p'', and ''p'' and ''q'' are
coprime In mathematics, two integers and are coprime, relatively prime or mutually prime if the only positive integer that is a divisor of both of them is 1. Consequently, any prime number that divides does not divide , and vice versa. This is equivale ...
; and four sets of polynomials \ \mathcal_f, \mathcal_g, \mathcal_m and \ \mathcal_r (a polynomial part of the private key, a polynomial for generation of the public key, the message and a blinding value, respectively), all of degree at most \ N-1 .


History

The NTRUEncrypt Public Key Cryptosystem is a relatively new cryptosystem. The first version of the system, which was simply called NTRU, was developed around 1996 by three mathematicians (
Jeffrey Hoffstein Jeffrey Ezra Hoffstein (born September 28, 1953 in New York City) is an American mathematician, specializing in number theory, automorphic forms, and cryptography. Education and career Hoffstein graduated with a bachelor's degree in 1974 from Cor ...
,
Jill Pipher Jill Catherine Pipher (born December 14, 1955 in Harrisburg, Pennsylvania) was the president of the American Mathematical Society. She began a two-year term in 2019. She is also the past-president of the Association for Women in Mathematics (AWM, ...
, and Joseph H. Silverman). In 1996 these mathematicians together with
Daniel Lieman Daniel is a masculine given name and a surname of Hebrew origin. It means "God is my judge"Hanks, Hardcastle and Hodges, ''Oxford Dictionary of First Names'', Oxford University Press, 2nd edition, , p. 68. (cf. Gabriel—"God is my strength"), ...
founded the NTRU Cryptosystems, Inc. and were given a patent (now expired) on the cryptosystem. During the last ten years people have been working on improving the cryptosystem. Since the first presentation of the cryptosystem, some changes were made to improve both the performance of the system and its security. Most performance improvements were focused on speeding up the process. Up till 2005 literature can be found that describes the decryption failures of the NTRUEncrypt. As for security, since the first version of the NTRUEncrypt, new parameters have been introduced that seem secure for all currently known attacks and reasonable increase in computation power. Now the system is fully accepted to IEEE P1363 standards under the specifications for lattice-based public-key cryptography ( IEEE P1363.1). Because of the speed of the NTRUEncrypt Public Key Cryptosystem (see http://bench.cr.yp.to for benchmarking results) and its low memory use (see below), it can be used in applications such as mobile devices and
Smart-card A smart card, chip card, or integrated circuit card (ICC or IC card) is a physical electronic authentication device, used to control access to a resource. It is typically a plastic credit card-sized card with an embedded integrated circuit (IC) c ...
s. In April 2011, NTRUEncrypt was accepted as a X9.98 Standard, for use in the financial services industry.


Public key generation

Sending a secret message from Alice to Bob requires the generation of a public and a private key. The public key is known by both Alice and Bob and the private key is only known by Bob. To generate the key pair two polynomials f and g, with degree at most \ N-1 and with coefficients in are required. They can be considered as representations of the residue classes of polynomials modulo \ X^N-1 in ''R''. The polynomial \textbf \in L_f must satisfy the additional requirement that the inverses modulo ''q'' and modulo ''p'' (computed using the
Euclidean algorithm In mathematics, the Euclidean algorithm,Some widely used textbooks, such as I. N. Herstein's ''Topics in Algebra'' and Serge Lang's ''Algebra'', use the term "Euclidean algorithm" to refer to Euclidean division or Euclid's algorithm, is an effi ...
) exist, which means that \ \textbf \cdot \textbf_p = 1 \pmod p and \ \textbf \cdot \textbf_q = 1 \pmod q must hold. So when the chosen f is not invertible, Bob has to go back and try another f. Both f and \ \mathbf_p (and g ) are Bob's private key. The public key h is generated computing the quantity : \textbf = p\textbf_q \cdot \textbf \pmod q. Example: In this example the parameters (''N'', ''p'', ''q'') will have the values ''N'' = 11, ''p'' = 3 and ''q'' = 32 and therefore the polynomials f and g are of degree at most 10. The system parameters (''N'', ''p'', ''q'') are known to everybody. The polynomials are randomly chosen, so suppose they are represented by : \textbf = -1 + X + X^2 - X^4 + X^6 +X^9 - X^ : \textbf = -1 + X^2 +X^3 + X^5 -X^8 - X^ Using the Euclidean algorithm the inverse of f modulo ''p'' and modulo ''q'', respectively, is computed : \textbf_p = 1 + 2X + 2X^3 +2X^4 + X^5 +2X^7 + X^8+2X^9 \pmod 3 : \textbf_q = 5 + 9X +6X^2+16X^3 + 4X^4 +15X^5 +16X^6+22X^7+20X^8+18X^9+30X^ \pmod Which creates the public key h (known to both Alice and Bob) computing the product : \textbf = p\textbf_q \cdot \textbf \pmod = 8 - 7X - 10X^2 - 12X^3 + 12X^4 - 8X^5 + 15X^6 - 13X^7 + 12X^8 - 13X^9 + 16X^ \pmod


Encryption

Alice, who wants to send a secret message to Bob, puts her message in the form of a polynomial m with coefficients in p/2, p/2/math> . In modern applications of the encryption, the message polynomial can be translated in a binary or ternary representation. After creating the message polynomial, Alice chooses randomly a polynomial r with small coefficients (not restricted to the set ), that is meant to obscure the message. With Bob's public key h the encrypted message e is computed: : \textbf = \textbf \cdot \textbf + \textbf \pmod q This ciphertext hides Alice's messages and can be sent safely to Bob. Example: Assume that Alice wants to send a message that can be written as polynomial : \textbf = -1 + X^3 - X^4-X^8+X^9+X^ and that the randomly chosen ‘blinding value’ can be expressed as : \textbf = -1+X^2+X^3+X^4-X^5-X^7 The ciphertext e that represents her encrypted message to Bob will look like : \textbf = \textbf \cdot \textbf + \textbf \pmod = 14 + 11X+26X^2+24X^3+14X^4+16X^5+30X^6+7X^7+25X^8+6X^9+19X^ \pmod


Decryption

Anybody knowing r could compute the message m by evaluating e - rh; so r must not be revealed by Alice. In addition to the publicly available information, Bob knows his own private key. Here is how he can obtain m: First he multiplies the encrypted message e and part of his private key f : \textbf = \textbf \cdot \textbf \pmod q By rewriting the polynomials, this equation is actually representing the following computation: : \textbf = \textbf \cdot \textbf \pmod q : \textbf = \textbf \cdot (\textbf \cdot \textbf+\textbf) \pmod q : \textbf = \textbf \cdot (\textbf \cdot p\textbf_q \cdot \textbf + \textbf) \pmod q : \textbf = p\textbf \cdot \textbf + \textbf \cdot \textbf \pmod q Instead of choosing the coefficients of a between 0 and ''q'' – 1 they are chosen in the interval ''q''/2, ''q''/2to prevent that the original message may not be properly recovered since Alice chooses the coordinates of her message m in the interval ''p''/2, ''p''/2 This implies that all coefficients of \ p\textbf \cdot \textbf + \textbf \cdot \textbf already lie within the interval ''q''/2, ''q''/2because the polynomials r, g, f and m and prime ''p'' all have coefficients that are small compared to ''q''. This means that all coefficients are left unchanged during reducing modulo ''q'' and that the original message may be recovered properly. The next step will be to calculate a modulo ''p'': : \textbf = \textbf \pmod p = \textbf \cdot \textbf \pmod p because \ p\textbf \cdot \textbf \pmod p =0 . Knowing b Bob can use the other part of his private key \ \left(\textbf_p \right) to recover Alice's message by multiplication of b and \ \textbf_p : \textbf = \textbf_p \cdot \textbf = \textbf_p \cdot \textbf \cdot \textbf \pmod p : \textbf = \textbf \pmod p because the property \ \textbf \cdot \textbf_p =1 \pmod p was required for \ \textbf_p . Example: The encrypted message e from Alice to Bob is multiplied with polynomial f : \textbf = \textbf \cdot \textbf \pmod = 3 -7X-10X^2-11X^3+10X^4+7X^5+6X^6+7X^7+5X^8-3X^9-7X^ \pmod , where Bob uses the interval ''q''/2, ''q''/2instead of the interval , ''q'' – 1 for the coefficients of polynomial a to prevent that the original message may not be recovered correctly. Reducing the coefficients of a mod ''p'' results in : \textbf = \textbf \pmod 3 = -X-X^2+X^3+X^4+X^5+X^7-X^8-X^ \pmod 3 which equals \ \textbf = \textbf \cdot \textbf\pmod 3 . In the last step the result is multiplied with \ \textbf_p from Bob's private key to end up with the original message m : \textbf = \textbf_p \cdot \textbf = \textbf_p \cdot \textbf \cdot \textbf \pmod 3 = \textbf \pmod 3 : \textbf = -1+X^3-X^4-X^8+X^9+X^ Which indeed is the original message Alice has sent to Bob!


Attacks

Since the proposal of NTRU several attacks on the NTRUEncrypt public key cryptosystem have been introduced. Most attacks are focused on making a total break by finding the secret key f instead of just recovering the message m. If f is known to have very few non-zero coefficients Eve can successfully mount a
brute force attack In cryptography, a brute-force attack consists of an attacker submitting many passwords or passphrases with the hope of eventually guessing correctly. The attacker systematically checks all possible passwords and passphrases until the correct ...
by trying all values for f. When Eve wants to know whether f´ is the secret key, she simply calculates \ \textbf' \cdot \textbf \pmod q . If it has small coefficients it might be the secret key f, and Eve can test if f´ is the secret key by using it to decrypt a message she encrypted herself. Eve could also try values of g and test if \ \textbf' \cdot \textbf^ \pmod q has small values. It is possible to mount a meet-in-the-middle attack which is more powerful. It can cut the search time by square root. The attack is based on the property that \ \textbf \cdot \textbf = p\textbf \pmod q . Eve wants to find \ \textbf_1 and \ \textbf_2 such that \ \textbf = \textbf_1 + \textbf_2 holds and such that they have the property : \left( \textbf_1+\textbf_2 \right) \cdot \textbf = \textbf \pmod q : \textbf_1 \cdot \textbf = \textbf -\textbf_2 \cdot \textbf \pmod q If f has ''d'' one's and ''N''-''d'' zero's, then Eve creates all possible \ \textbf_1 and \ \textbf_2 in which they both have length \ \frac N (e.g. \ \textbf_1 covers the \ \frac N lowest coefficients of f and \ \textbf_2 the highest) with ''d''/2 one's. Then she computes \textbf_1 \cdot \textbf \pmod q for all \ \textbf_1 and orders them in bins based on the first k coordinates. After that she computes all \ -\textbf_2 \cdot \textbf \pmod q and orders them in bins not only based on the first k coordinates, but also based on what happens if you add 1 to the first k coordinates. Then you check the bins that contain both \ \textbf_1 and \ \textbf_2 and see if the property \ \textbf_1 \cdot \textbf = \textbf -\textbf_2 \cdot \textbf \pmod q holds. The lattice reduction attack is one of the best known and one of the most practical methods to break the NTRUEncrypt. In a way it can be compared to the factorization of the modulus in RSA. The most used algorithm for the lattice reduction attack is the Lenstra-Lenstra-Lovász algorithm. Because the public key h contains both f and g one can try to obtain them from h. It is however too hard to find the secret key when the NTRUEncrypt parameters are chosen secure enough. The lattice reduction attack becomes harder if the dimension of the lattice gets bigger and the shortest vector gets longer. The
chosen ciphertext attack A chosen-ciphertext attack (CCA) is an attack model for cryptanalysis where the cryptanalyst can gather information by obtaining the decryptions of chosen ciphertexts. From these pieces of information the adversary can attempt to recover the hidd ...
is also a method which recovers the secret key f and thereby results in a total break. In this attack Eve tries to obtain her own message from the ciphertext and thereby tries to obtain the secret key. In this attack Eve doesn't have any interaction with Bob. How it works: First Eve creates a cipher text \ \textbf = c\textbf + c such that \ c = 0 \pmod p, c < \frac and \ 2c > \frac When Eve writes down the steps to decipher e (without actually calculating the values since she does not know f) she finds \ \textbf = \textbf \cdot \textbf \pmod q : : \textbf = \textbf \left(c\textbf + c\right) \pmod q : \textbf = c\textbf +c\textbf \pmod q : \textbf = c\textbf + c\textbf -qK In which \ K = \sum k_i x^i such that :k_i=\begin 1 \ \ \qquad \text \ i^ \ \text \ \textbf \ \text \ \textbf \ \text \ 1 \\ -1 \qquad \text \ i^ \ \text \ \textbf \ \text \ \textbf \ \text \ -1\\ 0 \ \ \qquad \text\end Example: : \textbf = -1+X+X^2-X^4+X^6+X^9-X^ : \textbf = -1 +X^2+X^3+X^5-X^8-X^ Then ''K'' becomes \ K = -1+X^2-X^ . Reducing the coefficients of polynomials a mod ''p'' really reduces the coefficients of \ c\textbf+c\textbf-qK \pmod p . After multiplication with \ \textbf_p , Eve finds: : \textbf = c\textbf_p \cdot \textbf+c\textbf_p \cdot \textbf-q\textbf_p \cdot K \pmod p : \textbf = c\textbf+c -q\textbf_p \cdot K \pmod p Because c was chosen to be a multiple of ''p'', m can be written as : \textbf = -q\textbf_p \cdot K \pmod p Which means that \ \textbf = -qK \cdot \textbf^ \pmod p . Now if f and g have few coefficients which are the same at the same factors, ''K'' has few non zero coefficients and is thereby small. By trying different values of ''K'' the attacker can recover f. By encrypting and decrypting a message according to the NTRUEncrypt the attacker can check whether the function f is the correct secret key or not.


Security and performance improvements

Using the latest suggested parameters (see below) the NTRUEncrypt public key cryptosystem is secure to most attacks. There continues however to be a struggle between performance and security. It is hard to improve the security without slowing down the speed, and vice versa. One way to speed up the process without damaging the effectiveness of the algorithm, is to make some changes in the secret key f. First, construct f such that \ \textbf = 1+p\textbf , in which F is a small polynomial (i.e. coefficients ). By constructing f this way, f is invertible mod ''p''. In fact \ \textbf^ = 1\pmod p , which means that Bob does not have to actually calculate the inverse and that Bob does not have to conduct the second step of decryption. Therefore, constructing f this way saves a lot of time but it does not affect the security of the NTRUEncrypt because it is only easier to find \ \textbf_p but f is still hard to recover. In this case f has coefficients different from -1, 0 or 1, because of the multiplication by ''p''. But because Bob multiplies by ''p'' to generate the public key h, and later on reduces the ciphertext modulo ''p'', this will not have an effect on the encryption method. Second, f can be written as the product of multiple polynomials, such that the polynomials have many zero coefficients. This way fewer calculations have to be conducted. According to the 2020 NTRU NIST submission the following parameters are considered secure:


Table 1: Parameters


References

* Jaulmes, E. and Joux, A. A Chosen-Ciphertext Attack against NTRU. Lecture Notes in Computer Science; Vol 1880. Proceedings of the 20th Annual International Cryptology Conference on Advances in Cryptography. pp. 20–35, 2000. * Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman
NTRU: A Ring Based Public Key Cryptosystem
In Algorithmic Number Theory (ANTS III), Portland, OR, June 1998, J.P. Buhler (ed.), Lecture Notes in Computer Science 1423, Springer-Verlag, Berlin, 1998, 267–288. * Howgrave-Graham, N., Silverman, J.H. & Whyte, W.
Meet-In-The-Middle Attack on a NTRU Private Key
* J. Hoffstein, J. Silverman
Optimizations for NTRU
Public-Key Cryptography and Computational Number Theory (Warsaw, September 11–15, 2000), DeGruyter, to appear. * A. C. Atici, L. Batina, J. Fan & I. Verbauwhede
Low-cost implementations of NTRU for pervasive security


External links


NTRU technical website

The IEEE P1363 Home Page

Security Innovation (acquired NTRU Cryptosystems, Inc.)

Open Source BSD license implementation of NTRUEncrypt

Open Source GPL v2 license of NTRUEncrypt

strongSwan Open Source IPsec solution using NTRUEncrypt-based key exchange

- Embedded SSL/TLS Library offering cipher suites utilizing NTRU (wolfSSL)
{{DEFAULTSORT:Ntruencrypt Public-key encryption schemes Lattice-based cryptography Post-quantum cryptography