Ring Learning with Errors

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found. Ring Learning with Errors (RLWE) is a computational problem which serves as the foundation of new cryptographic algorithms designed to protect against cryptanalysis by quantum computers and also to provide the basis for homomorphic encryption. RLWE is more properly called Learning with Errors over Rings and is simply the larger Learning with Errors problem specialized to polynomial rings over finite fields.[1] Because of the presumed difficulty of solving the RLWE problem even on a quantum computer, RLWE based cryptography may form the fundamental base for public key cryptography in the future just as the integer factorization and discrete logarithm problem have served as the base for public key cryptography since the early 1980s.[2] An important feature of basing cryptography on the Ring Learning with Errors problem is the fact that the solution to the RLWE problem may be reducible to the NP-Hard Shortest Vector Problem (SVP) in a Lattice.[1]

Background

The security of modern cryptography, in particular Public Key Cryptography, is based on the assumed intractability of solving certain computational problems if the size of the problem is large enough and the instance of the problem to be solved is chosen randomly.[3] The classic example that has been used since the 1970s is the integer factorization problem.[4] It is believed that it is computationally intractable to factor the product of two prime numbers if those prime numbers are large enough and chosen at random. As of 2015 research has led to the factorization of the product of two 384-bit primes but not the product of two 512-bit primes. Integer factorization forms the basis of the widely used RSA cryptographic algorithm.[5]

The Ring Learning with Errors (RLWE) problem is built on the arithmetic of polynomials with coefficients from a finite field.[1] A typical polynomial Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle a(x)}

is expressed as:
a(x) = a_0 + a_1x + a_2x^2 + \ldots + a_{n-2}x^{n-2} + a_{n-1}x^{n-1}

Polynomials can be added and multiplied in the usual fashion. In the RLWE context the coefficients of the polynomials and all operations involving those coefficients will be done in a finite field, typically the field Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathbf{Z}/q\mathbf{Z} = \mathbf{F}_q}

for a prime integer Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle q}

. The set of polynomials over a finite field with the operations of addition and multiplication forms an infinite polynomial ring (Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathbf{F}_q[x]} ).[6] The RLWE context works with a finite sub-ring of this infinite ring. The sub-ring is typically the finite quotient (factor) ring formed by reducing all of the polynomials in Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathbf{F}_q[x]}

modulo an irreducible polynomial Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \Phi(x)}

. This finite quotient ring can be written as \mathbf{F}_q[x]/\Phi(x) though many authors write \mathbf{Z}_q[x]/\Phi(x) .[1]

If the degree polynomial \Phi(x) is {\textstyle n}, the sub-ring becomes the ring of polynomials of degree less than n modulo \Phi(x) with coefficients from F_q. The values {\textstyle n}, Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle q} , together with the polynomial \Phi(x) partially define the mathematical context for the RLWE problem.

Another concept necessary for the RLWE problem is the idea of "small" polynomials with respect to some norm. The typical norm used in the RLWE problem is known as the infinity norm.[7] The infinity norm of a polynomial is simply the largest coefficient of the polynomial when these coefficients are viewed as integers. Hence, ||a(x)||_\infty = b states that the infinity norm of the polynomial a(x) is b. Thus b is the largest coefficient of a(x).

The final concept necessary to understand the RLWE problem is the generation of random polynomials in \mathbf{Z}_q[x]/\Phi(x) and the generation of "small" polynomials . A random polynomial is easily generated by simply randomly sampling the n coefficients of the polynomial from \mathbf{F}_q, where \mathbf{F}_q is typically represented as the set \{-(q-1)/2, ..., -1, 0, 1, ..., (q-1)/2\}.

Randomly generating a "small" polynomial done by generating the coefficients of the polynomial from \mathbf{F}_q in a way that either guarantees or makes very likely small coefficients. There are two common ways to do this:

  1. Using Uniform Sampling – The coefficients of the small polynomial are uniformly sampled from a set of small coefficients. Let Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle b}
be an integer that is much less than Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle q}

. If we randomly choose coefficients from the set: Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \{ -b, -b+1, -b+2, \ldots , -2, -1, 0, 1, 2, \ldots , b-2, b-1, b \}}

the polynomial will be small with respect to the bound (Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle b}

).

  1. Using Discrete Gaussian Sampling – For an odd value for Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle q}

, the coefficients of the polynomial are randomly chosen by sampling from the set Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \{ -(q-1)/2, \ldots , (q-1)/2 \} }

according to a discrete Gaussian distribution with mean 0 and distribution parameter {\textstyle \sigma}. The references describe in full detail how this can be accomplished. It is more complicated than uniform sampling but it allows for a proof of security of the algorithm. The paper "Sampling from Discrete Gaussians for Lattice-Based Cryptography on a Constrained Device" by Dwarakanath and Galbraith provide an overview of this problem.[8]

The RLWE Problem

The RLWE problem can be stated in two different ways. One is called the "Search" version and the other is the "Decision" version. The Search can be stated as follows. Let

  • a_i(x) be a set of random but known polynomials from \mathbf{Z}_q[x]/\Phi(x) with coefficients from all of \mathbf{F}_q.
  • e_i(x) be a set of small random and unknown polynomials relative to a bound b in the ring \mathbf{Z}_q[x]/\Phi(x)
  • s(x) be a small unknown polynomial relative to a bound b in the ring \mathbf{Z}_q[x]/\Phi(x).
  • b_i(x) = (a_i(x)\cdot s(x)) + e_i(x)

Given the list of polynomial pairs ( a_i(x), b_i(x) ) find the unknown polynomial s(x)

Using the same definitions, the Decision version of the problem can be stated as follows. Given a list of polynomial pairs ( a_i(x), b_i(x) ) determine whether the b_i(x) polynomials were constructed as b_i(x) = (a_i(x)\cdot s(x)) + e_i(x) or were generated randomly from \mathbf{Z}_q[x]/\Phi(x) with coefficients from all of \mathbf{F}_q.

The difficulty of this problem is parameterized by the choice of the quotient polynomial (\Phi(x)), its degree (n), the field (\mathbf{F}_q), and the smallness bound (b). In many RLWE based public key algorithms the private key will be a pair of small polynomials s(x) and e(x). The corresponding public key will be a pair of polynomials a(x), selected randomly from \mathbf{Z}_q[x]/\Phi(x), and the polynomial t(x)= (a(x)\cdot s(x)) + e(x). Given a(x) and t(x), it should be computationally infeasible to recover the polynomial s(x).

Security Reduction

In cases where the polynomial \Phi(x) is a cyclotomic polynomial, the difficulty of solving the search version of RLWE problem is equivalent to finding a short vector (but not necessarily the shortest) vector in an ideal lattice formed from elements of \mathbf{Z}[x]/\Phi(x) represented as integer vectors.[1] This problem is commonly known as the Approximate Shortest Vector Problem (α-SVP) and it is the problem of finding a vector shorter than α times the shortest vector. The authors of the proof for this equivalence write:

"... we give a quantum reduction from approximate SVP (in the worst case) on ideal lattices in \mathbf{R} to the search version of ring-LWE, where the goal is to recover the secret s \in \mathbf{R}_q (with high probability, for any s) from arbitrarily many noisy products."[1]

In that quote, The ring \mathbf{R} is \mathbf{Z}[x]/\Phi(x) and the ring \mathbf{R}_q is \mathbf{Z}_q[x]/\Phi(x).

The α-SVP in regular lattices is known to be NP-hard due to work by Daniele Micciancio in 2001, although not for values of α required for a reduction to general Learning With Errors problem.[9] However, there is not yet a proof to show that the difficulty of the α-SVP for ideal lattices is equivalent to the average α-SVP. Rather we have a proof that if there are any α-SVP instances that are hard to solve in ideal lattices then the RLWE Problem will be hard in random instances.[1]

Regarding the difficulty of Shortest Vector Problems in Ideal Lattices, researcher Michael Schneider writes, "So far there is no SVP algorithm making use of the special structure of ideal lattices. It is widely believed that solving SVP (and all other lattice problems) in ideal lattices is as hard as in regular lattices."[10] The difficulty of these problems on regular lattices is provably NP-hard.[9] There are, however, a minority of researchers who do not believe that ideal lattices share the same security properties as regular lattices.[11]

Peikert believes that these security equivalences make the RLWE problem a good basis for future cryptography. He writes: "There is a mathematical proof that the only way to break the cryptosystem (within some formal attack model) on its random instances is by being able to solve the underlying lattice problem in the worst case" (emphasis in the original).[12]

RLWE Cryptography

A major advantage that RLWE based cryptography has over the original Learning With Errors (LWE) based cryptography is found in the size of the public and private keys. RLWE keys are roughly the square root of keys in LWE.[1] For 128 bits of security an RLWE cryptographic algorithm would use public keys around 7000 bits in length.[13] The corresponding LWE scheme would require public keys of 49 million bits for the same level of security.[1] On the other hand, RLWE keys are larger than the keys sizes for currently used public key algorithms like RSA and Elliptic Curve Diffie-Hellman which require public key sizes of 3072 bits and 256 bits, respectively, to achieve a 128-bit level of security.[14] From a computational standpoint, however, RLWE algorithms have been shown to be the equal of or better than existing public key systems.[15]

Three groups of RLWE cryptographic algorithms exist:

Ring Learning with Errors Key Exchanges (RLWE-KEX)

A RLWE version of the classic Diffie-Hellman key exchange was designed by Peikert and published in early 2014.[2] An RLWE version of the classic MQV variant of a Diffie-Hellman key exchange was later published by Zhang et. al.[16] The security of both key exchanges is directly related to the problem of finding approximate short vectors in an ideal lattice.

Ring Learning with Errors Signatures (RLWE-SIG)

A RLWE version of the classic Feige–Fiat–Shamir Identification protocol was created and converted to a digital signature in 2011 by Lyubashevsky.[17] The details of this signature were extended in 2012 by Gunesyu, Lyubashevsky, and Popplemann in 2012 and published in their paper "Practical Lattice Based Cryptography – A Signature Scheme for Embedded Systems."[18] These papers laid the groundwork for a variety of recent signature algorithms some based directly on the Ring Learning with Errors problem and some which are not tied to the same hard RLWE problems.[19]

Ring Learning with Errors Homomorphic Encryption (RLWE-HOM)

The purpose of homomorphic encryption is to allow the computations on sensitive data to occur on computing devices that should not be trusted with the data. These computing devices are allowed to process the ciphertext which is output from a homomorphic encryption.[20] In 2011, Brakersky and Vaikuntanathan, published "Fully Homomorphic Encryption from Ring-LWE and Security for Key Dependent Messages" which builds a homomorphic encryption scheme directly on the RLWE problem.[21]

The various sets of parameters that have been proposed by different groups of researchers for Ring Learning with Errors Key Exchange and Signatures are found at the Ring Learning with Errors information site (ringlwe.info)[22]

References

  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. 9.0 9.1 Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.