370 likes | 436 Views
Lattice-based Cryptography. Oded Regev Tel-Aviv University. CRYPTO 2006, Santa Barbara, CA. Introduction to lattices Survey of lattice-based cryptography Hash functions [Ajtai96,…] Public-key cryptography [AjtaiDwork97,…] Construction of a simple lattice-based hash function
E N D
Lattice-based Cryptography Oded Regev Tel-Aviv University CRYPTO 2006, Santa Barbara, CA
Introduction to lattices • Survey of lattice-based cryptography • Hash functions [Ajtai96,…] • Public-key cryptography [AjtaiDwork97,…] • Construction of a simple lattice-based hash function • Open Problems Outline
Lattice • For any vectors v1,…,vn in Rn, the lattice spanned by v1,…,vn is the set of points • L={a1v1+…+anvn| ai integers} • These vectors form a basis of L v1+v2 2v2 2v1 2v2-v1 v1 v2 2v2-2v1 0
History of Lattices • Geometric objects with rich structure • Investigated since 1800 by Lagrange, Gauss, Hermite, and Minkowski • More recent developments: • LLL algorithm: finds ‘somewhat short’ vectors in lattices [LenstraLenstraLovàsz82]. Applications include: • Factoring polynomials over the rationals • Solving integer programs in fixed dimension • Cryptanalysis: • Breaking knapsack cryptosystems [LagariasOdlyzko85] • Breaking special cases of RSA [Coppersmith01] • And more… • Ajtai’s lattice-based cryptographic construction[Ajtai96]
Shortest Vector Problem (SVP) v2 • SVP: given a lattice, find a shortest (nonzero) vector • -approximate SVP: given a lattice, find a vector of length at most times the shortest • Other lattice problems: SIVP, SBP, etc. v1 3v2-4v1 0
Lattice Problems Seem Hard • We’ll be interested in -approximate SVP for =poly(n) • Best known algorithm runs in time 2n [AjtaiKumarSivakumar01] • On the other hand, not believed to be NP-hard [GoldreichGoldwasser00, AharonovR04] • Best poly-time algorithm solves for =2nloglogn/logn [LLL82, Schnorr85] • NP-hard for sub-polynomial [Khot04] 2^(log1-en) 1 n n 2n loglogn/logn crypto NP∩coNP P NP-hard
Why use lattice-based cryptography • Lattice-based cryptography • Based on hardness of lattice problems • Based on a worst-case assumption • (Still) Not broken by quantum algorithms • Very simple computations • ‘Standard’ cryptography • Based on hardness of factoring, discrete log, etc. • Based on an average-case assumption • Broken by quantum algorithms • Require modular exponentiation etc.
Collision-Resistant Hash Functions • A CRHF is a function f:{0,1}r{0,1}s with r>s such that it is hard to find collisions, i.e., xy s.t. f(x)=f(y) • First lattice-based CRHF given in [Ajtai96] • Based on the worst-case hardness of n8-approximate SVP • Security improved in subsequent works [GoldreichGoldwasserHalevi97, CaiNerurkar97, Micciancio02, MicciancioR04] • Current state-of-the-art is a CRHF based on n-approximate SVP [MicciancioR04]
The Modular Subset-Sum Function • Let N be a big integer, and m=2log2N • Choose a1,…,am uniformly in {0,…,N-1}. Then define fa1,…,am:{0,1}m{0,…,N-1} by • fa1,…,am(b1,…,bm) = Σbiai mod N • Since m>log2N, (many) collisions exist • We will later see a proof of security: • Being able to find a collision in a randomly chosen f, even with probability n-100 implies a solution to any instance of approximate-SVP
Recent Work: More Efficient CRHFs • In the constructions above, for security based on n-dimensional lattices, O(n2) bits are necessary to specify a hash function • More efficient constructions were given in [Micciancio04, LyubashevskyMicciancio06, PeikertRosen06] • Only O(n) bits needed to specify a hash function • Based on worst-case hardness of approximate-SVP on a restricted class of lattices known as cyclic lattices
Public-key Cryptosystem • A PKC allows parties to communicate securely without having to agree on a secret key beforehand • First lattice-based PKC presented in [AjtaiDwork97] • Some improvements [GoldreichGoldwasserHalevi97, R03] • Security based on the worst-case hardness of a special case of SVP known as unique-SVP • Some disadvantages: • Based only on unique-SVP • Impractical (think of n as100): • Public key size O(n4) • Encryption expands by O(n2)
Main advantages: • Practical (think of n as100): • Public key size O(n) • Encryption expands by O(n) • Some disadvantages: • Not based on lattice problems • No worst-case hardness A Recent Public-key Cryptosystem [Ajtai05]
Main advantages: • Practical (think of n as100): • Public key size O(n) • Encryption expands by O(n) • Worst-case hardness • Based on the main lattice problems (SVP, SIVP) • One disadvantage: • Breaking the cryptosystem implies an efficient quantum algorithm for lattices Another Recent Public-key Cryptosystem[R05]
Everything modulo 4 • Private key: 4 random numbers 1203 • Public key: a 6x4 matrix and approximate inner product • Encrypt the bit 0: • Encrypt the bit 1: 3·? + 2·? + 1·? + 0·? ≈1 Example of a lattice-based PKC [R05] 2·1 + 0·2 + 1·0 + 2·3 ≈1 1·1 + 2·2 + 2·0 + 3·3 ≈2 0·1 + 2·2 + 0·0 + 3·3 ≈1 1·1 + 2·2 + 0·0 + 2·3 ≈0 0·1 + 3·2 + 1·0 + 3·3 ≈3 3·1 + 3·2 + 0·0 + 2·3 ≈2 2 0 1 2 1 2 2 3 0 2 0 3 1 2 0 2 0 3 1 3 3 3 0 2 2·? + 0·? + 1·? + 2·? ≈1 1·? + 2·? + 2·? + 3·? ≈2 0·? + 2·? + 0·? + 3·? ≈1 1·? + 2·? + 0·? + 2·? ≈0 0·? + 3·? + 1·? + 3·? ≈3 3·? + 3·? + 0·? + 2·? ≈2 2·1 + 0·2 + 1·0 + 2·3 =0 1·1 + 2·2 + 2·0 + 3·3 =2 0·1 + 2·2 + 0·0 + 3·3 =1 1·1 + 2·2 + 0·0 + 2·3 =3 0·1 + 3·2 + 1·0 + 3·3 =3 3·1 + 3·2 + 0·0 + 2·3 =3 3·? + 2·? + 1·? + 0·? ≈3
Construction of a Lattice-based Collision Resistant Hash Function
The Smoothing Radius • Define the smoothing radius=(L)>0 as the smallest real such that adding Gaussian blur of radius to L yields an essentially uniform distribution • The radius was analyzed in [MicciancioR04] based on Fourier analysis and [Banaszczyk93] • It was shown that is ‘small’ in the sense that finding vectors of length poly(n)(L) implies solution to poly(n)-approximate SVP
An Alternative Definition • Define h:Rn[0,1)n that maps any x=Σivi to • h(x)=(1,…,n) mod 1. • E.g., any xL has h(x)=(0,…,0) • Then the alternative way to define is as: • The smallest real such that if x is sampled from a Gaussian distribution centered around 0 of radius , then h(x) is ‘essentially’ uniform on [0,1)n
x2 x1 x4 x3 Rn [0,1)n (1,1) (0,1) h(x2) h(x3) 0 h(x1) h(x4) (0,0) (1,0)
Our CRHF • Fix the dimension n, let q=22n, and m=4n2 • Choose a1,…,am uniformly in Zqn. Then define fa1,…,am:{0,1}m{0,1}nlog2q by • fa1,…,am(b1,…,bm) = Σbiai (mod q) • Since m>nlog2q, (many) collisions exist • We now prove security by showing that: • Being able to find a collision in a randomly chosen fa1,…,am, even with probability n-100, implies a solution to any instance of poly(n)-approximate SVP
Security Proof • Assume there exists an algorithm CollisionFind that given a1,…,am chosen uniformly in Zqn, finds with some non-negligible probability b1,…,bm{-1,0,1} (not all zero) such that • Σbiai = 0 (mod q). • This implies an algorithm CollisionFind’that given a1,…,amchosen uniformly from [0,1)n, finds with some non-negligible probability b1,…,bm{-1,0,1} (not all zero) such that • Σbiai (0,…,0) (mod 1) • (up to m/q in each coordinate)
CollisionFind’ (1,1) (0,1) a2 a3 a4 a1 a5 a6 (0,0) (1,0) Output: “a1+a2-a4+a5(0,…,0) (mod 1)”
Security Proof • Our goal is to show that using CollisionFind’ we can find a nonzero vector of length at most poly(n)(L) in any given lattice L • So let L be a given lattice with basis v1,…,vn • By using the LLL algorithm, we can assume that v1,…,vn are not ‘unreasonably’ long: say, of length at most 2n(L)
Security Proof – Main Procedure • Sample m vectors x1,…,xm from the Gaussian distribution around 0 of radius • Compute a1:=h(x1),…,am:=h(xm) • Each ai is uniformly distributed in [0,1)n • Apply CollisionFind’ to obtain b1,…,bm {-1, 0,1} such that • Σbih(xi) (m/q,…,m/q) (mod 1) • Define y=Σbixi. Then, • y is short (of length m) • y is extremely close to a lattice point since h(y)=Σbih(xi)(m/q,…,m/q) (mod 1)
Security Proof – Main Procedure • Write y=Σivi for some reals 1,…,n • So each iis within m/q of an integer • Define the lattice vector y’=Σivi • The distance • So y’ is a lattice vector of length at most (m+1)
x2 x1 x4 x3 Y’ 0 y CollisionFind’(a1,a2,a3,a4)“-a2-a3+a40 (mod 1)”
Security Proof – One Last Issue • How to guarantee that y’ is nonzero? • Maybe CollisionFind’ acts in some ‘malicious’ way, trying to make y’ zero • It can be shown that ai does not contain enough information about xi • In other words, conditioned on any fixed ai, xi still has enough randomness to guarantee that y’ is nonzero with very high probability
Security Proof – Conclusion • By a single call to the collision finder, we can find in any lattice, a nonzero vector of length at most (m+1) with some non-negligible probability • Obviously, by repeating this procedure we can obtain such a vector with very high probability • The essential idea: All lattices look the same after adding some small amount of blur
Open Problems • Cryptanalysis • Current attacks limited to low dimension [NguyenStern98] • New systems [Ajtai05,R05] are efficient and can be easily used with dimension 100+ • Improved cryptosystems • Construct the ‘ultimate’ lattice-based cryptosystem? (based on SVP, efficient) • Construct more efficient schemes based on special classes of lattices?
Open Problems • 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 lattice-based signature schemes? • Security against chosen-ciphertext attacks • Known lattice-based cryptosystems are not secure against CCA