Lattice Salad S.Safra I.Dinur G.Kindler Lattice Problems Definition: Given a basis v1,..,vnRn, The lattice L=L(v1,..,vk) = {aivi | integers ai} SVP: Find the shortest non-zero vector in L. CVP: Given a vector yRn, find a vL closest to y. y closest shortest What’s the nearest lattice point ? Another basis Lattice Approximation Problems g-Approximation version: Find a vector y s.t. ||y|| < g shortest(L) g-Gap version: Given L, and a number d, distinguish between – The ‘yes’ instances ( shortest(L) d ) – The ‘no’ instances ( shortest(L) > gd ) shortest If g-Gap problem is NP-hard, then having a g-approximation polynomial algorithm --> P=NP. Lattice Approximation Problems g-Approximation version: Find a vector y s.t. ||y|| < g shortest(L) g-Gap version: Given L, and a number d, distinguish between – The ‘yes’ instances ( shortest(L) d ) – The ‘no’ instances ( shortest(L) > gd ) shortest If g-Gap problem is NP-hard, then having a g-approximation polynomial algorithm --> P=NP. Lattice Problems - Brief History [Dirichlet, Minkowsky] no CVP algorithms… [LLL] Approximation algorithm for SVP, factor 2n/2 [Babai] Extension to CVP [Schnorr] Improved factor, (1+)n for both CVP and SVP [vEB]: CVP is NP-hard [ABSS]: Approximating CVP is – NP hard to within any constant – Almost NP hard to within an almost polynomial factor. Lattice Problems - Recent History [Ajtai96]: average-case/worst-case equiv. for SVP. [Ajtai-Dwork96]: Cryptosystem. [Ajtai97]: SVP is NP-hard (for randomized reductions). [Micc98]: SVP is NP-hard to approximate to within some constant factor. [DKRS]: NP hard to within an almost polynomial factor. [LLS]: Approximating CVP to within n1.5 is in coNP. [GG]: Approximating SVP and CVP to within n is in coAMNP. CVP/SVP - which is easier? Definition: Given a basis v1,..,vnRn, The lattice L=L(v1,..,vk) = {aivi | integers ai} SVP: Find the shortest non-zero vector in L. CVP: Given a vector yRn, find a vL closest to y. y closest shortest Reducing g-SVP to g-CVP b2 [GMSS99] shortest: b2-2b1 b1 The lattice L Reducing g-SVP to g-CVP [GMSS98] CVP oracle: apx. minimize ||c1b1+2c2b2-b2|| The lattice L’’ L L’’=span (2b1,b2) The lattice L’ L L’=span (b1,2b2) shortest vector in L = cibi Note: at least one coef. ci of the shortest vector must be odd The Reduction Input: A pair (B,d), B=(b1,..,bn) and dR for j=1 to n: invoke the CVP oracle on(B(j),bj,d) Output: The OR of all oracle replies. Where B(j) = (b1,..,bj-1,2bj,bj+1,..,bn) The Dual Lattice L* = { y | x L: yx Z} Give a basis {v1, .., vn} for L one can construct, in poly-time, a basis {u1,…,un}: ui vj = 0 ( i j) ui vi = 1 In other words U = u1,…,un U = (Vt)-1 where V = v1, .., vn Shortest Vector - Hidden Hyperplane s – shortest vector H – hidden hyperplane -s distance = 1/||S|| H0 = {y| ys = 0} H1 = {y| ys = 1} Hk = {y| ys = k} Public Key Cryptosystem s – shortest vector H – hidden hyperplane Encoding 0 Encoding 1 s s Choose a random point (1) Choose a random lattice point (2) Perturb it Public Key Cryptosystem Decoding (using s): Decoding 0 s Decoding 1 s Ajtai: SVP Instances Hard on Average Approximating SVP (factor= nc ) Approximating On random instances Shortest Basis from a specific constructible distribution (factor= n10+c ) Approximating SVP (factor= n10+c ) Finding Unique-SVP Average-Case Distribution Pick an n*m matrix A, with coefficients uniformly ranging over [0,…,q-1]. (q= poly (n), n = O(m log q) A = v 1 v 2 … vm Def: (A) = {x Zn | xA 0 mod q } A mod-q lattice: (v1 v2 v3 v4) 2v1+v4 v2 (2,0,0,1) v3 (1,1,1,0) v1 q(a,b,c,d) v4 1 q Hardness of approx. CVP [DKRS] g-CVP is NP-hard for g=n1/loglog n n - lattice dimension Improving – Hardness (NP-hardness instead of quasi-NPhardness) – Non-approximation factor (from 2(logn)1-) [ABSS] reduction: uses PCP to show – NP-hard for g=O(1) 1- – Quasi-NP-hard g=2(logn) by repeated blow-up. Barrier - SSAT: a new non-PCP characterization of NP. NP-hard to approximate to within g=n1/loglogn . 2(logn) 1- const >0 SAT Input: =f1,..,fn Boolean functions ‘tests’ x1,..,xn’ variables with range {0,1} Problem: Is satisfiable? Thm (Cook-Levin): SAT is NP-complete (even when depend()=3) SAT as a consistency problem Input =f1,..,fn Boolean functions - ‘tests’ x1,..,xn’ variables with range R for each test: a list of satisfying assignments Problem Is there an assignment to the tests that is consistent? f(x,y,z) g(w,x,z) h(y,w,x) (0,2,7) (2,3,7) (3,1,1) (1,0,7) (1,3,1) (3,2,2) (0,1,0) (2,1,0) (2,1,5) Super-Assignments A natural assignment for f(x,y,z) 1 0 A(f) = (3,1,1) f(x,y,z)’s super-assignment SA(f)=-2(3,1,1)+2(3,2,5)+3(5,1,2) 3 (1,1,2) (3,1,1) (3,2,5) (3,3,1) (5,1,2) 2 1 0 -1 (1,1,2) (3,1,1) (3,2,5) (3,3,1) (5,1,2) -2 ||SA(f)|| = |-2|+|2|+|3| = 7 Norm SA - Averagef||A(f)|| Consistency In the SAT case: A(f) = (3,2,5) A(f)|x := (3) x f,g that depend on x: A(f)|x = A(g)|x Consistency SA(f) = +3(1,1,2) -2(3,2,5) 2(3,3,1) -2+2=0 SA(f)|x := +3(1) 0(3) (1,1,2) 3 (3,3,1) 2 1 0 -1 (1) (2) (3) -2 (3,2,5) Consistency: x f,g that depend on x: SA(f)|x = SA(g)|x g-SSAT - Definition Input: =f1,..,fn tests over variables x1,..,xn’ with range R for each test fi - a list of sat. assign. Problem: Distinguish between [Yes] There is a natural assignment for [No] Any non-trivial consistent super-assignment is of norm > g Theorem: SSAT is NP-hard for g=n (conjecture: g=n , = some constant) 1/loglog n . SSAT is NP-hard to approximate to within g = n1/loglogn Reducing SSAT to CVP f,(1,2) f,f’,x * 1 2 3 w w 0 w 0 0 w 0 I f(w,x) f’(z,x) f’,(3,2) w w w w w w w w 0 0 0 0 0 0 0 0 Yes --> Yes: dist(L,target) = n No --> No: dist(L,target) > gn Choose w = gn + 1 A consistency gadget * 1 2 3 w w 0 w 0 0 w 0 w w w w A consistency gadget * 1 2 3 a1 a2 a3 b1 b2 b3 www 000 www www www 00w ww0 www www 00w www ww0 ww0 00w ww0 ww0 ww0 000 www ww0 ww0 000 ww0 www a1 + a2 + a3 a2 + a3 a1 + a1 + a2 + a3 w w w w = 1 + b1 = 1 + b2 = 1 + b3 = 1 GG Approximating SVP and CVP to within n is in NP coAM Hence if these problem are shown NP-hard the polynomial-time hierarchy collapses The World According Ajtai- to Lattices DKRS GG LLL Miccianci o CVP SVP 1+1/n 1 O(1) O(logn) 2 NP-hardness n1/loglogn NPco-AM nO(1) 2n Poly-time approximation OPEN PROBLEMS Is g-SVP NP- A class of its own? hard to within n Can LLL be ? improved? CVP SVP 1+1/n 1 O(1) O(logn) 2 NP-hardness n1/loglogn NPco-AM nO(1) 2n Poly-time approximation Open Problems Is SVP NP-hard to approximate to within n factor Can the LLL algorithm be improved? Maybe for factors between and these problems are on a class of their own