In cryptography, a public key exchange algorithm is a cryptographic algorithm which allows two parties to create and share a secret key, which they can use to encrypt messages between themselves. The ring learning with errors key exchange (RLWE-KEX) is one of a new class of public key exchange algorithms that are designed to be secure against an adversary that possesses a quantum computer. This is important because some public key algorithms in use today will be easily broken by a quantum computer if such computers are implemented. RLWE-KEX is one of a set of post-quantum cryptographic algorithms which are based on the difficulty of solving certain mathematical problems involving lattices. Unlike older lattice based cryptographic algorithms, the RLWE-KEX is provably reducible to a known hard problem in lattices.
Since the 1980s the security of cryptographic key exchanges and digital signatures over the Internet has been primarily based on a small number of public key algorithms. The security of these algorithms is based on a similarly small number of computationally hard problems in classical computing. These problems are the difficulty of factoring the product of two carefully chosen prime numbers, the difficulty to compute discrete logarithms in a carefully chosen finite field, and the difficulty of computing discrete logarithms in a carefully chosen elliptic curve group. These problems are very difficult to solve on a classical computer (the type of computer the world has known since the 1940s through today) but are rather easily solved by a relatively small quantum computer using only 5 to 10 thousand of bits of memory. There is optimism in the computer industry that larger scale quantum computers will be available around 2030. If a quantum computer of sufficient size were built, all of the public key algorithms based on these three classically hard problems would be insecure. This public key cryptography is used today to secure Internet websites, protect computer login information, and prevent our computers from accepting malicious software.
Cryptography that is not susceptible to attack by a quantum computer is referred to as quantum safe, or post-quantum cryptography. One class of quantum resistant cryptographic algorithms is based on a concept called "learning with errors" introduced by Oded Regev in 2005.[1] A specialized form of Learning with errors operates within the ring of polynomials over a finite field. This specialized form is called ring learning with errors or RLWE.
There are a variety of cryptographic algorithms which work using the RLWE paradigm. There are public-key encryption algorithms, homomorphic encryption algorithms, and RLWE digital signature algorithms in addition to the public key, key exchange algorithm presented in this article
A key exchange algorithm is a type of public key algorithm which establishes a shared secret key between two communicants on a communications link. The classic example of a key exchange is the Diffie–Hellman key exchange. The exchange consists of one transmission from one end of the line and one transmission from the other end of the link. Diffie–Hellman and Elliptic Curve Diffie–Hellman are the two most popular key exchange algorithms.
The RLWE Key Exchange is designed to be a "quantum safe" replacement for the widely used Diffie–Hellman and elliptic curve Diffie–Hellman key exchanges that are used to secure the establishment of secret keys over untrusted communications channels. Like Diffie–Hellman and Elliptic Curve Diffie–Hellman, the Ring-LWE key exchange provides a cryptographic property called "forward secrecy"; the aim of which is to reduce the effectiveness of mass surveillance programs and ensure that there are no long term secret keys that can be compromised that would enable bulk decryption.
Starting with a prime integer q, the Ring-LWE key exchange works in the ring of polynomials modulo a polynomial
\Phi(x)
Rq:=Zq[x]/\Phi(x)
\Phi(x)
The idea of using LWE and Ring LWE for key exchange was first proposed and filed at the University of Cincinnati in 2011 by Jintai Ding. The idea comes from the associativity of matrix multiplications, and the errors are used to provide the security. The paper[2] appeared in 2012 after a provisional patent application was filed in 2012. The security of the protocol is proven based on the hardness of solving the LWE problem.
In 2014, Peikert presented a key-transport scheme[3] following the same basic idea of Ding's, where the new idea of sending an additional 1-bit signal for rounding in Ding's construction is also used.
The "New Hope" implementation[4] selected for Google's post-quantum experiment,[5] uses Peikert's scheme with variation in the error distribution.
For somewhat greater than 128 bits of security, Singh presents a set of parameters which have 6956-bit public keys for the Peikert's scheme.[6] The corresponding private key would be roughly 14,000 bits. An RLWE version of the classic MQV variant of a Diffie–Hellman key exchange was later published by Zhang et al. in 2014. The security of both key exchanges is directly related to the problem of finding approximate short vectors in an ideal lattice. This article will closely follow the RLWE work of Ding in "A Simple Provably Secure Key Exchange Scheme Based on the Learning with Errors Problem".[7] For this presentation a typical polynomial is expressed as:
a(x)=a0+a1x+a2x2+ … +an-3xn-3+an-2xn-2+an-1xn-1
The coefficients
ai
\Phi(x)
\Phi(x)=xn+1.
The RLWE-KEX uses polynomials which are considered "small" with respect to a measure called the "infinity norm." The infinity norm for a polynomial is simply the value of the largest coefficient of the polynomial when the coefficients are considered as integers in Z rather than
Zq
For the rest of this article, the random small polynomials will be sampled according to a distribution which is simply specified as D. Further q will be an odd prime such that q is congruent to 1 mod 4 and 1 mod 2n. Other cases for q and n are thoroughly discussed in "A Toolkit for Ring-LWE Cryptography" and in Singh's "Even More Practical Key Exchange for the Internet using Lattice Cryptography."[10] [11] and another paper by Singh. A fixed public polynomial, a(x), shared by all users of the network. It is deterministically generated from a cryptographically secure source.
Given a(x) as stated, we can randomly choose small polynomials s(x) and e(x) to be the "private key" in a public key exchange. The corresponding public key will be the polynomial p(x) = a(x)s(x) + 2e(x).
The key exchange will take place between two devices. There will be an initiator for the key exchange designated as (I) and a respondent designated as (R). Both I and R know q, n, a(x), and have the ability to generate small polynomials according to the distribution
\chi\alpha
\alpha
\chi\alpha
Rq=Zq[x]/\Phi(x)
The key exchange begins with the initiator (I) doing the following:
Initiation:
sI
eI
\chi\alpha
pI=asI+2eI.
pI
sR
eR
\chi\alpha
pR=asR+2eR
e'R
\chi\alpha
kR=pIsR+2e'R
kR=asIsR+2eIsR+2e'R
\operatorname{Sig}
w=\operatorname{Sig}(kR)
Sig
kR
skR=\operatorname{Mod}2(kR,w)
w
kR
pR
w
pR
w
e'I
\chi\alpha
kI=pRsI+2e'I=asIsR+2eRsI+2e'I
skI=\operatorname{Mod}2(kI,w)
w
kI
In the above key exchange,
\operatorname{Sig}
Define subset
E:=\{-\lfloor
q | |
4 |
\rfloor,\ldots,\lfloor
q | |
4 |
\rceil\}
Zq=\{-
q-1 | ,\ldots, | |
2 |
q-1 | |
2 |
\}
\lfloor.\rfloor
\lfloor.\rceil
Function
\operatorname{Sig}
\operatorname{Sig}:Zq → \{0,1\}
\operatorname{Sig}(v)=\begin{cases}0,&ifv\inE\ 1,&ifv\notinE.\end{cases}
\operatorname{Mod}2
\operatorname{Mod}2(v,w)=l(v+w.
q-1 | |
2 |
r)\bmodq\bmod2
Note that the values of
kI
kR
v
Rq
kR
kI
The methods of reconciliation and key string generation depends on the specific RLWE-KEX scheme in question. Some method is based on modular arithmetic, while others may be based on high-dimension geometry.
If the key exchange worked properly, the initiator's string and the respondent's string will be the same.
Depending on the specifics of the parameters chosen, there is an extremely small probability that this key exchange will fail to produce the same key. Parameters for the key exchange can be chosen to make the probability of failure in the key exchange very small; much less than the probability of undetectable garbles or device failures.
The RLWE-KEX exchange presented above worked in the Ring of Polynomials of degree n − 1 or less mod a polynomial
\Phi(x)
For 128 bits of security, n = 512, q = 25601, and
\Phi(x)=x512+1
For 256 bits of security, n = 1024, q = 40961, and
\Phi(x)=x1024+1
Because the key exchange uses random sampling and fixed bounds there is a small probability that the key exchange will fail to produce the same key for the initiator and responder. If we assume that the Gaussian parameter σ is and the uniform sampling bound (b) = 5 (see Singh), then the probability of key agreement failure is less than 2−71 for the 128-bit secure parameters and less than 2−91 for the 256-bit secure parameters.
In their November 2015 paper, Alkim, Ducas, Pöppelmann, and Schwabe recommend the following parameters n = 1024, q =12289, and
\Phi(x)
Also in their November 2015 paper, Alkim, Ducas, Pöppelmann and Schwabe recommend that the choice of the base polynomial for the key exchange (a(x) above) be either generated randomly from a secure random number generator for each exchange or created in a verifiable fashion using a "nothing up my sleeve" or NUMS technique. An example of parameters generated in this way are the prime numbers for the Internet Key Exchange (RFC 2409) which embed the digits of the mathematical constant pi in the digital representation of the prime number.[12] Their first method prevents amortization of attack costs across many key exchanges at the risk of leaving open the possibility of a hidden attack like that described by Dan Bernstein against the NIST elliptic curves.[13] The NUMS approach is open to amortization but generally avoids the Bernstein attack if only common mathematical constants such as pi and e are used.
The security of this key exchange is based on the underlying hardness of ring learning with errors problem that has been proven to be as hard as the worst case solution to the shortest vector problem (SVP) in an ideal lattice. The best method to gauge the practical security of a given set of lattice parameters is the BKZ 2.0 lattice reduction algorithm.[14] According to the BKZ 2.0 algorithm the key exchange parameters listed above will provide greater than 128 or 256 bits of security, respectively.
In 2014 Douglas Stebila made a patch for OpenSSL 1.0.1f. based on his work and others published in "Post-quantum key exchange for the TLS protocol from the ring learning with errors problem."[15] Software implementing the work of Singh is found on GitHub at https://github.com/vscrypto/ringlwe.
A variant of the approach described above is an authenticated version in the work of Zhang, Zhang, Ding, Snook and Dagdelen in their paper, "Post Quantum Authenticated Key Exchange from Ideal Lattices."[16] The concept of creating what has been called a Diffie–Hellman-like Key Exchange using lattices with a reconciliation function appears to have first been presented by French researchers Aguilar, Gaborit, Lacharme, Schrek, and Zemor at PQCrypto 2010 in their talk, "Noisy Diffie–Hellman Protocols."[17]
In November 2015, Alkim, Ducas, Pöppelmann, and Schwabe built on the prior work of Peikert and used what they believe is a more conservative costing of lattice attacks to recommend parameters.[18] Software based on the work of Alkim, Ducas, Pöppelmann, and Schwabe is found on GitHub at https://github.com/tpoeppelmann/newhope