### qcrypto

```On Lattices,
Learning with Errors,
Random Linear Codes,
and Cryptography
Oded Regev
Tel-Aviv University
Outline
• Introduction to lattices
• Main theorem: a hard learning problem
• Application: a stronger and more efficient
•
public key cryptosystem
Proof of main theorem
• Overview
• Part I: Quantum
• Part II: Classical
Lattices
Basis:
v1,…,vn vectors in Rn
The lattice L is
2v1 v1+v2
L={a1v1+…+anvn| ai integers}
v1
v2 2v2-v1
2v2-2v1
The dual lattice of L is
0
L*={x | 8 y2L, hx,yi 2 Z}
2v2
Shortest Vector Problem (SVP)
v2
v1
0
• SVP: Given a lattice, find an approximately shortest
vector
Closest Vector Problem (CVPd)
v
0
•
CVPd: Given a lattice and a target vector within
distance d, find the closest lattice point
Main Theorem
Hardness of Learning
Learning from parity with error
• Let s2Z2n be a secret
• We have random equations modulo 2 with
error (everything independent):
s2+s3+s4+ s6+…+sn

s1+s2+ s4+ s6+…+sn

s1+ s3+s4+s5+ …+sn

s2+s3+s4+ s6+…+sn 
.
.
.
• Without error, it’s easy!
0
1
1
0
Learning from parity with error
• More formally, we need to learn s from
•
•
samples of the form (t,st+e) where t is chosen
uniformly from Z2n and e is a bit that is 1
with probability 10%.
Easy algorithms need 2O(n) equations/time
Best algorithm needs 2O(n/logn) equations/time
[BlumKalaiWasserman’00]
• Open question: why is this problem so hard?
Learning modulo p
• Fix some p<poly(n)
• Let s2Zpn be a secret
• We have random equations modulo p with
error:
2s1+0s2+2s3+1s4+2s5+4s6+…+4sn
0s1+1s2+5s3+0s4+6s5+6s6+…+2sn
6s1+5s2+2s3+0s4+5s5+2s6+…+0sn
6s1+4s2+4s3+4s4+3s5+3s6+…+1sn
.
.
.




2
4
2
5
Learning modulo p
• More formally, we need to learn s from
samples of the form (t,st+e) where t is chosen
uniformly from Zpn and e is chosen from Zp
• Easy algorithms need 2O(nlogn) equations/time
• Best algorithm needs 2O(n) equations/time
[BlumKalaiWasserman’00]
Main Theorem
Learning modulo p is as hard as worst-case
lattice problems using a quantum reduction
• In other words: solving the problem implies
an efficient quantum algorithm for lattices
Equivalent formulation
• For m=poly(n), let C be a random m£n matrix
•
with elements in Zp. Given Cs+e for some
sZpn and some noise vector eZpm, recover
s.
This is the problem of decoding from a
random linear code
Why Quantum?
• As part of the reduction, we need to
•
perform a certain algorithmic task on
lattices
We do not know how to do it classically, only
quantumly!
Why Quantum?
•
•
•
•
x
y
We are given an oracle that solves CVPd for some
small d
As far as I can see, the only way to generate
inputs to this oracle is:
•
•
•
Somehow choose xL
Let y be some random vector within dist d of x
Call the oracle with y
Quantumly, being able to compute x from y is very
useful: it allows us to transform the state |y,x> to
the state |y,0> reversibly (and then we can apply
the quantum Fourier transform)
Application:
New Public Key Encryption Scheme
Previous lattice-based PKES
[AjtaiDwork96,GoldreichGoldwasserHalevi97,R’03]
•
• Based on a lattice problem
• Worst-case hardness
•
• Based only on unique-SVP
• Impractical (think of n as 100):
• Public key size O(n4)
• Encryption expands by O(n2)
Ajtai’s recent PKES [Ajtai05]
•
• Practical (think of n as 100):
• Public key size O(n)
• Encryption expands by O(n)
•
• Not based on lattice problem
• No worst-case hardness
New lattice-based PKES
[This work]
•
•
•
quantum
• Worst-case hardness
• Based on the main lattice problems (SVP, SIVP)
• Practical (think of n as 100):
• Public key size O(n)
• Encryption expands by O(n)
Breaking the cryptosystem implies an efficient
quantum algorithm for lattices
In fact, security is based on the learning problem
(no quantum needed here)
•
•
•
•
•
The Cryptosystem
Everything modulo 4
Private key: 4 random numbers
1
2
0
3
Public key: a 6x4 matrix and approximate inner product
2
2·?
2·1
+ 0·2
0
0·?
+ 1·0
1
1·?
+ 2·3
2
2·?
≈ 0
=
1
1
1·?
1·1
+ 2·2
2
2·?
+ 2·0
2
2·?
+ 3·3
3
3·?
≈ 2
=
0
0·?
0·1
+ 2·2
2
2·?
+ 0·0
0
0·?
+ 3·3
3
3·?
≈ 1
=
1
1·?
1·1
+ 2·2
2
2·?
+ 0·0
0
0·?
+ 2·3
2
2·?
≈ 3
=
0
0
0·?
0·1
+ 3·2
3
3·?
+ 1·0
1
1·?
+ 3·3
3
3·?
≈ 3
=
3
3·?
3·1
+ 3·2
3
3·?
+ 0·0
0
0·?
+ 2·3
2
2·?
≈ 3
=
2
Encrypt the bit 0:
3·? + 2·? + 1·? + 0·? ≈ 1
Encrypt the bit 1:
3·? + 2·? + 1·? + 0·? ≈ 3
Proof of the Main Theorem
Overview
Gaussian Distribution
• Define a Gaussian distribution on a lattice
(normalization omitted)
• We can efficiently sample from Dr for large
r=2n
The Reduction
• Assume the existence of an algorithm for
the learning modulo p problem for p=2√n
• Our lattice algorithm:
• r=2n
• Take poly(n) samples from Dr
• Repeat:
• Given poly(n) samples from Dr compute
•
poly(n) samples from Dr/2
• Set r←r/2
When r is small, output a short vector
Dr
Dr/2
Obtaining Dr/2 from Dr
• Lemma 1:
•
p=2√n
Given poly(n) samples from Dr, and an oracle
for ‘learning modulo p’, we can solve
CVPp/r in L*
• No quantum here 
Lemma 2:
Given a solution to CVPd in L*, we can obtain
samples from D√n/d
• Quantum 
• Based on the quantum Fourier transform
Classical, uses learning oracle
Quantum
Samples from Dr in L
Solution to CVPp/r in L*
Samples from Dr/2 in L
Solution to CVP2p/r in L*
Samples from Dr/4 in L
Solution to CVP4p/r in L*
Fourier Transform
Primal world (L)
Dual world (L*)
Fourier Transform
• The Fourier transform of Dr is given by
• Its value is
• 1 for x in L*,
• e-1 at points of distance 1/r from L*,
• ¼0 at points far away from L*.
Proof of the Main Theorem
Lemma 2: Obtaining D√n/d from CVPd
From CVPd to D√n/d
• Assume we can solve CVPd; we’ll show how to
obtain samples from D√n/d
• Step 1:
Create the quantum state
by adding a Gaussian to each lattice point
and uncomputing the lattice point by using
the CVP algorithm
• Step 2:
From CVPd to D√n/d
Compute the quantum
Fourier transform of
•
It is exactly D√n/d !!
Step 3:
Measure and obtain one
sample from D√n/d
• By repeating this process,
we can obtain poly(n)
samples
From CVPd to D√n/d
•
More precisely, create the state
•
And the state
•
Tensor them together and add first to second
•
Uncompute first register by solving CVPp/r
Proof of the Main Theorem
Lemma 1: Solving CVPp/r given
samples from Dr and an oracle for
learning mod p
It’s enough to approximate fp/r
• Lemma: being able to approximate fp/r
•
implies a solution to CVPp/r
Proof Idea – walk uphill:
• fp/r(x)>¼ for points x of distance < p/r
• Keep making small modifications to x as
long as fp/r(x) increases
• Stop when fp/r(x)=1 (then we are on a
lattice point)
• For warm-up, we show how to approximate
•
•
f1/r given samples from Dr
• No need for learning
• This is main idea in [AharonovR’04]
Then we show how to approximate f2/r given
samples from Dr and an oracle for the
learning problem
Approximating fp/r is similar
Warm-up: approximating f1/r
• Let’s write f1/r in its Fourier representation:
• Using samples from Dr, we can compute a
good approximation to f1/r (this is the main
idea in [AharonovR’04])
Fourier Transform
•
Consider the Fourier representation again:
•
For x2L*, hw,xi is integer for all w in L and
therefore we get f1/r(x)=1
For x that is close to L*, hw,xi is distributed
around an integer. Its standard deviation can be
(say) 1.
•
Approximating f2/r
• Main idea: partition Dr into 2n distributions
• For t(Z2)n, denote the translate t by Dtr
• Given a lattice point we can compute its t
• The probability on (Z2)n obtained by sampling
from Dr and outputting t is close to uniform
0,0
0,1
1,0
1,1
Approximating f2/r
• Hence, by using samples from Dr we can
produce samples from the following
distribution on pairs (t,w):
• Sample t(Z2)n uniformly at random
• Sample w from Dtr
• Consider the Fourier transform of Dtr
Approximating f2/r
•
•
•
•
•
The functions ft2/r look almost like f2/r
Only difference is that some Gaussians have their
sign flipped
Approximating ft2/r is enough: we can easily take the
absolute value and obtain f2/r
For this, however, we need to obtain several pairs
(t,w) for the same t
The problem is that each sample (t,w) has a
different t !
Approximating f2/r
•
•
•
•
Fix x close to L*
The sign of its Gaussian is ±1 depending on hs,ti mod
2 for s(Z2)n that depends only on x
The distribution of x,w mod 2 when w is sampled
from Dtr is centred around s,t mod 2
Hence, we obtain equations modulo 2 with error:
hs,t1i ¼dhx,w1ic mod 2
hs,t2i ¼dhx,w2ic mod 2
hs,t3i ¼dhx,w3ic mod 2
.
.
.
Approximating f2/r
• Using the learning algorithm, we solve these
•
•
equations and obtain s
Knowing s, we can cancel the sign
Averaging over enough samples gives us an
approximation to f2/r
Open Problems 1/4
• Dequantize the reduction:
• This would lead to the ‘ultimate’ lattice-
•
based cryptosystem (based on SVP,
efficient)
• Main obstacle: what can one do classically
with a solution to CVPd?
Construct even more efficient schemes
based on special classes of lattices such as
cyclic lattices
• For hash functions this was done by
Micciancio
Open Problems 2/4
• Extend to learning from parity (i.e., p=2) or
even some constant p
• Is there something inherently different
about the case of constant p?
• Use the ‘learning mod p’ problem to derive
other lattice-based hardness results
• Recently, used by Klivans and Sherstov to
derive hardness of learning problems
Open Problems 3/4
• Cryptanalysis
• Current attacks limited to low dimension
•
[NguyenStern98]
New systems [Ajtai05,R05] are efficient
and can be easily used with dimension 100+
• Security against chosen-ciphertext attacks
• Known lattice-based cryptosystems are
not secure against CCA
Open Problems 4/4
• Comparison with number theoretic
cryptography
• E.g., can one factor integers using an
oracle for n-approximate SVP?
• Signature schemes
• Can one construct provably secure latticebased signature schemes?
```