solving all lattice problems in deterministic single
play

Solving All Lattice Problems in Deterministic Single Exponential - PowerPoint PPT Presentation

Solving All Lattice Problems in Deterministic Single Exponential Time Daniele Micciancio (UCSD) (Joint work with P. Voulgaris, STOC 2010) Barriers II Workshop, Princeton August 27, 2010 CVP in deterministic 2 O ( n ) time Daniele Micciancio


  1. Complexity of SVP, SIVP, CVP Efficient (dimension preserving) reductions SVP, SIVP ≤ CVP [GMSS’99, M’08] Fastest previous algorithm SVP,SIVP,CVP ,IP: [Kannan’87] runs in n O ( n ) time SVP: [AKS’01] runs in randomized 2 O ( n ) time and space Algorithms work in any ℓ p norm [BN’07] Barriers Can CVP, SIVP also be solved in 2 c · n time? Yes! (for ℓ 2 ) What is the smallest constant c ? [NV’09,MP’10,PS’10]: c < 2 . 5 for SVP in ℓ 2 . c ≤ 2 for SVP,SIVP,CVP! Is randomization and exponential space useful/necessary? Randomization is not! What about other norms and Integer Programming (IP)? CVP in deterministic 2 O ( n ) time Daniele Micciancio

  2. Introduction Lattices 1 Lattice Problems Algorithmic Techniques New Algorithm 2 Overview Voronoi Cell CVPP Algorithm Final Remarks and Open Problems 3 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  3. Size Reduction � b : (short) lattice vector � c : arbitrary point � c � b 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  4. Size Reduction � b : (short) lattice vector � c : arbitrary point � c Can make � c shorter by subtracting � b from it � b 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  5. Size Reduction � b : (short) lattice vector � c : arbitrary point c � Can make � c shorter by c ′ � subtracting � b from it c closer to � Repeat until � 0 than to � b � b 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  6. Size Reduction � b : (short) lattice vector � c : arbitrary point � c Can make � c shorter by c ′ � subtracting � b from it c closer to � Repeat until � 0 than to � b or − � b � Remarks b c ′ ∈ Λ 0 � c − � Key step in [LLL’82] basis reduction algorithm Technique is used in most other lattice algorithms CVP in deterministic 2 O ( n ) time Daniele Micciancio

  7. Rank reduction Goal: Solve CVP (Λ n ,� t ) � t 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  8. Rank reduction Goal: Solve CVP (Λ n ,� t ) Partition Λ n into layers of the form: Λ n − 1 + c � b n , � t c = 2 , 1 , 3 , 0 , . . . � b 2 0 � b 1 Λ 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  9. Rank reduction Goal: Solve CVP (Λ n ,� t ) Partition Λ n into layers of � t 1 the form: Λ n − 1 + c � b n , � v 1 � t c = 2 , 1 , 3 , 0 , . . . Find lattice point � v i in each layer closest to (the projection of) � t 0 Λ 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  10. Rank reduction Goal: Solve CVP (Λ n ,� t ) Partition Λ n into layers of the form: Λ n − 1 + c � b n , � v 1 � t c = 2 , 1 , 3 , 0 , . . . v 2 � Find lattice point � v i in each � t 2 layer closest to (the projection of) � t 0 Λ 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  11. Rank reduction � v 3 Goal: Solve CVP (Λ n ,� t ) � t 3 Partition Λ n into layers of the form: Λ n − 1 + c � b n , � v 1 � t c = 2 , 1 , 3 , 0 , . . . v 2 � Find lattice point � v i in each layer closest to (the projection of) � t 0 Λ 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  12. Rank reduction � v 3 Goal: Solve CVP (Λ n ,� t ) Partition Λ n into layers of the form: Λ n − 1 + c � b n , � v 1 � t c = 2 , 1 , 3 , 0 , . . . � v 2 Find lattice point � v i in each layer closest to (the � t 4 projection of) � t � v 4 0 Λ 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  13. Rank reduction � v 3 Goal: Solve CVP (Λ n ,� t ) Partition Λ n into layers of the form: Λ n − 1 + c � b n , � v 1 � t c = 2 , 1 , 3 , 0 , . . . v 2 � Find lattice point � v i in each layer closest to (the projection of) � t � v 4 Only need to consider 0 Λ 1 nearby layers Dual LLL: 2 n layers Dual SVP: n layers CVP in deterministic 2 O ( n ) time Daniele Micciancio

  14. Rank reduction � v 3 Goal: Solve CVP (Λ n ,� t ) Partition Λ n into layers of the form: Λ n − 1 + c � b n , � v 1 � t c = 2 , 1 , 3 , 0 , . . . v 2 � Find lattice point � v i in each layer closest to (the projection of) � t � v 4 Only need to consider 0 Λ 1 nearby layers Dual LLL: 2 n layers Dual SVP: n layers Select the best solution � v 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  15. Rank reduction: CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) � v 3 Goal: Solve CVP (Λ n ,� t ) Partition Λ n into layers of the form: Λ n − 1 + c � b n , � v 1 � t c = 2 , 1 , 3 , 0 , . . . v 2 � Find lattice point � v i in each layer closest to (the projection of) � t � v 4 Only need to consider 0 Λ 1 nearby layers Dual LLL: 2 n layers Dual SVP: n layers Select the best solution � v 1 Notice: All layers contain same lattice Λ n − 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  16. Introduction Lattices 1 Lattice Problems Algorithmic Techniques New Algorithm 2 Overview Voronoi Cell CVPP Algorithm Final Remarks and Open Problems 3 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  17. Solving CVP by rank reduction Rank reduction CVP (Λ n ) ≤ k · CVP (Λ n − 1 ) LLL: k = 2 n , SVP: k = n , CVP in deterministic 2 O ( n ) time Daniele Micciancio

  18. Solving CVP by rank reduction Rank reduction CVP (Λ n ) ≤ k · CVP (Λ n − 1 ) LLL: k = 2 n , T = 2 n 2 SVP: k = n , T = n n Iterate: CVP (Λ n ) ≤ k · CVP (Λ n − 1 ) ≤ · · · ≤ k n CVP (Λ 1 ) = k n CVP in deterministic 2 O ( n ) time Daniele Micciancio

  19. Solving CVP by rank reduction Rank reduction CVP (Λ n ) ≤ k · CVP (Λ n − 1 ) LLL: k = 2 n , T = 2 n 2 SVP: k = n , T = n n Iterate: CVP (Λ n ) ≤ k · CVP (Λ n − 1 ) ≤ · · · ≤ k n CVP (Λ 1 ) = k n Our approach Exploit the fact that recursive calls use the same lower dimensional sublattices Preprocess the lattice to speed up the solution of many CVP instances CVP in deterministic 2 O ( n ) time Daniele Micciancio

  20. CVP with Preprocessing (CVPP) Problem (CVPP) Find a function π and an efficient algorithm CVPP such that CVPP ( π (Λ) ,� t ) = CVP (Λ ,� t ) Only the running time of CVPP counts. The function π is arbitrary. CVP in deterministic 2 O ( n ) time Daniele Micciancio

  21. CVP with Preprocessing (CVPP) Problem (CVPP) Find a function π and an efficient algorithm CVPP such that CVPP ( π (Λ) ,� t ) = CVP (Λ ,� t ) Only the running time of CVPP counts. The function π is arbitrary. Complexity Still NP-hard [M’01]! [LLS’93,AR’04] approximates within n O (1) in polynomial time Polynomial time solutions require | π (Λ) | ≤ n O (1) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  22. CVP with Preprocessing (CVPP) Problem (CVPP) Find a function π and an efficient algorithm CVPP such that CVPP ( π (Λ) ,� t ) = CVP (Λ ,� t ) Only the running time of CVPP counts. The function π is arbitrary. Complexity Still NP-hard [M’01]! [LLS’93,AR’04] approximates within n O (1) in polynomial time Polynomial time solutions require | π (Λ) | ≤ n O (1) Our work: t ) runs in 2 O ( n ) time CVPP ( π (Λ) ,� CVP in deterministic 2 O ( n ) time Daniele Micciancio

  23. CVP with Preprocessing (CVPP) Problem (CVPP) Find a function π and an efficient algorithm CVPP such that CVPP ( π (Λ) ,� t ) = CVP (Λ ,� t ) Only the running time of CVPP counts. The function π is arbitrary. Complexity Still NP-hard [M’01]! [LLS’93,AR’04] approximates within n O (1) in polynomial time Polynomial time solutions require | π (Λ) | ≤ n O (1) Our work: t ) runs in 2 O ( n ) time CVPP ( π (Λ) ,� π (Λ) has size 2 O ( n ) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  24. CVP with Preprocessing (CVPP) Problem (CVPP) Find a function π and an efficient algorithm CVPP such that CVPP ( π (Λ) ,� t ) = CVP (Λ ,� t ) Only the running time of CVPP counts. The function π is arbitrary. Complexity Still NP-hard [M’01]! [LLS’93,AR’04] approximates within n O (1) in polynomial time Polynomial time solutions require | π (Λ) | ≤ n O (1) Our work: t ) runs in 2 O ( n ) time CVPP ( π (Λ) ,� π (Λ) has size 2 O ( n ) π (Λ) can also be computed in time 2 O ( n ) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  25. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice CVP in deterministic 2 O ( n ) time Daniele Micciancio

  26. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  27. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n CVP in deterministic 2 O ( n ) time Daniele Micciancio

  28. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  29. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  30. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: V (Λ n ) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  31. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: V (Λ n ) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  32. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: 2 O ( n ) CVP (Λ n ) V (Λ n ) ≤ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  33. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: 2 O ( n ) CVP (Λ n ) V (Λ n ) ≤ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  34. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: 2 O ( n ) CVP (Λ n ) V (Λ n ) ≤ 2 O ( n ) · 2 O ( n ) · CVP (Λ n − 1 ) ≤ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  35. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: 2 O ( n ) CVP (Λ n ) V (Λ n ) ≤ 2 O ( n ) · 2 O ( n ) · CVP (Λ n − 1 ) ≤ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  36. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: 2 O ( n ) CVP (Λ n ) V (Λ n ) ≤ 2 O ( n ) · 2 O ( n ) · CVP (Λ n − 1 ) ≤ 2 O ( n ) · 2 O ( n ) · CVPP ( V (Λ n − 1 )) + V (Λ n − 1 ) ≤ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  37. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: 2 O ( n ) CVP (Λ n ) V (Λ n ) ≤ 2 O ( n ) · 2 O ( n ) · CVP (Λ n − 1 ) ≤ 2 O ( n ) · 2 O ( n ) · CVPP ( V (Λ n − 1 )) + V (Λ n − 1 ) ≤ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  38. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: 2 O ( n ) CVP (Λ n ) V (Λ n ) ≤ 2 O ( n ) · 2 O ( n ) · CVP (Λ n − 1 ) ≤ 2 O ( n ) · 2 O ( n ) · CVPP ( V (Λ n − 1 )) + V (Λ n − 1 ) ≤ 2 O ( n ) 2 O ( n ) 2 O ( n ) + V (Λ n − 1 ) ≤ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  39. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: 2 O ( n ) CVP (Λ n ) V (Λ n ) ≤ 2 O ( n ) · 2 O ( n ) · CVP (Λ n − 1 ) ≤ 2 O ( n ) · 2 O ( n ) · CVPP ( V (Λ n − 1 )) + V (Λ n − 1 ) ≤ 2 O ( n ) 2 O ( n ) 2 O ( n ) + V (Λ n − 1 ) ≤ 2 O ( n ) + V (Λ n − 1 ) = CVP in deterministic 2 O ( n ) time Daniele Micciancio

  40. Overview of CVP algorithm Building blocks: π (Λ) = V (Λ): Voronoi cell of the lattice Our approach: CVP (Λ n ) ≤ CVPP ( V (Λ n )) + V (Λ n ) CVPP ( V (Λ n )) algorithm with running time 2 n Voronoi cell computation V (Λ n ) ≤ 2 n CVP (Λ n ) Dimension reduction CVP (Λ n ) ≤ 2 n · CVP (Λ n − 1 ) Computing the Voronoi cell of a lattice: 2 O ( n ) CVP (Λ n ) V (Λ n ) ≤ 2 O ( n ) · 2 O ( n ) · CVP (Λ n − 1 ) ≤ 2 O ( n ) · 2 O ( n ) · CVPP ( V (Λ n − 1 )) + V (Λ n − 1 ) ≤ 2 O ( n ) 2 O ( n ) 2 O ( n ) + V (Λ n − 1 ) ≤ 2 O ( n ) + V (Λ n − 1 ) = 2 O ( n ) + 2 O ( n ) + V (Λ n − 2 ) ≤ . . . ≤ 2 O ( n ) ≤ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  41. Introduction Lattices 1 Lattice Problems Algorithmic Techniques New Algorithm 2 Overview Voronoi Cell CVPP Algorithm Final Remarks and Open Problems 3 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  42. Voronoi Cell Definition (Voronoit Cell) Set of points in R n closer to 0 than to any other lattice point V (Λ) = { � x : ∀ � v ∈ Λ , � � x � ≤ � � x − � v �} 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  43. Representing the Voronoi cell Each � v ∈ Λ defines H � v = { � x : � � x � ≤ � � x − � v �} � v 1 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  44. Representing the Voronoi cell Each � v ∈ Λ defines H � v = { � x : � � x � ≤ � � x − � v �} V is the intersection � v 1 � V = H � v � v 2 � v ∈ Λ 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  45. Representing the Voronoi cell Each � v ∈ Λ defines H � v = { � x : � � x � ≤ � � x − � v �} V is the intersection � v 1 � V = H � v � v 2 � v ∈ Λ 0 � v 3 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  46. Representing the Voronoi cell Each � v ∈ Λ defines H � v = { � x : � � x � ≤ � � x − � v �} V is the intersection � v 1 � V = H � v � v 2 � v ∈ Λ � v 4 0 � v 3 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  47. Representing the Voronoi cell Each � v ∈ Λ defines H � v = { � x : � � x � ≤ � � x − � v �} V is the intersection � v 1 � V = H � v � v 2 � v ∈ Λ � v 4 0 � v 3 v 5 � CVP in deterministic 2 O ( n ) time Daniele Micciancio

  48. Representing the Voronoi cell Each � v ∈ Λ defines H � v = { � x : � � x � ≤ � � x − � v �} V is the intersection � v 1 � v 6 � V = H � v � v 2 � v ∈ Λ � v 4 0 � v 3 � v 5 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  49. Representing the Voronoi cell Each � v ∈ Λ defines H � v = { � x : � � x � ≤ � � x − � v �} V is the intersection � v 1 � v 6 � V = H � v , R ⊂ Λ � v 2 � v ∈ R � v 4 0 Not all � v ∈ Λ are needed � v 3 v 5 � CVP in deterministic 2 O ( n ) time Daniele Micciancio

  50. Representing the Voronoi cell Each � v ∈ Λ defines H � v = { � x : � � x � ≤ � � x − � v �} V is the intersection � v 1 � v 6 � V = H � v , R ⊂ Λ � v 2 � v ∈ R � v 4 0 Not all � v ∈ Λ are needed � v 3 v 5 � Theorem (Voronoi) The numer of relevant points is at most | R | ≤ 2 · (2 n − 1) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  51. Computing V (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? � v 1 − � v 3 � v 2 0 − � v 2 � v 3 − � v 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  52. Computing V (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? Partition Λ into cosets modulo 2Λ 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  53. Computing V (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? Partition Λ into cosets modulo 2Λ There are 2 n − 1 nonzero cosets 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  54. Computing V (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? Partition Λ into cosets modulo 2Λ There are 2 n − 1 nonzero cosets From each coset, select the v closest to � pair � v , − � 0 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  55. Computing V (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? Partition Λ into cosets modulo 2Λ There are 2 n − 1 nonzero � cosets v 1 From each coset, select the v closest to � pair � v , − � 0 0 − � v 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  56. Computing V (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? Partition Λ into cosets modulo 2Λ There are 2 n − 1 nonzero � cosets v 1 From each coset, select the v closest to � pair � v , − � 0 0 − � v 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  57. Computing V (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? Partition Λ into cosets modulo 2Λ There are 2 n − 1 nonzero � cosets v 1 From each coset, select the � v 2 v closest to � pair � v , − � 0 0 − � v 2 − � v 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  58. Computing V (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? Partition Λ into cosets modulo 2Λ There are 2 n − 1 nonzero � cosets v 1 From each coset, select the � v 2 v closest to � pair � v , − � 0 0 − � v 2 − � v 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  59. Computing V (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? Partition Λ into cosets modulo 2Λ There are 2 n − 1 nonzero � cosets v 1 From each coset, select the − � v 3 � v 2 v closest to � pair � v , − � 0 0 − � v 2 � v 3 − � v 1 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  60. Computing V (Λ n ) ≤ 2 n CVP (Λ n ) Why is | R | ≤ 2 · (2 n − 1)? Partition Λ into cosets modulo 2Λ There are 2 n − 1 nonzero � cosets v 1 From each coset, select the − � v 3 � v 2 v closest to � pair � v , − � 0 0 R is the set of all such pairs − � v 2 � v 3 Each pair is found by a CVP computation in lattice 2Λ − � v 1 CVP (2Λ) is equivalent to CVP (Λ) CVP in deterministic 2 O ( n ) time Daniele Micciancio

  61. Introduction Lattices 1 Lattice Problems Algorithmic Techniques New Algorithm 2 Overview Voronoi Cell CVPP Algorithm Final Remarks and Open Problems 3 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  62. CVP and Voronoi cell Definition (CVP) Given Λ and � t , find � v ∈ Λ such that � t ∈ � v + V � v � t 0 CVP in deterministic 2 O ( n ) time Daniele Micciancio

  63. CVP and Voronoi cell Definition (CVP) Given Λ and � t , find � v ∈ Λ such that � t ∈ � v + V v � � t � v + V ≡ � t ∈ � t − � v ∈ V 0 � t ’ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  64. CVP and Voronoi cell Definition (CVP) Given Λ and � t , find � v ∈ Λ such that � t ∈ � v + V v � � t � v + V ≡ � t ∈ � t − � v ∈ V CVP goal: bring � t inside V by shifting it by � v ∈ Λ 0 � t ’ CVP in deterministic 2 O ( n ) time Daniele Micciancio

  65. CVP and Voronoi cell Definition (CVP) Given Λ and � t , find � v ∈ Λ such that � t ∈ � v + V � v � t � v + V ≡ � t ∈ � t − � v ∈ V CVP goal: bring � t inside V by shifting it by � v ∈ Λ 0 Algorithm [SFS’09]: � t ’ While � t / ∈ V : v ∈ R . � Select � t / ∈ H � v size reduce � t using � v CVP in deterministic 2 O ( n ) time Daniele Micciancio

  66. CVP and Voronoi cell Definition (CVP) Given Λ and � t , find � v ∈ Λ such that � t ∈ � v + V � v � t � v + V ≡ � t ∈ � t − � v ∈ V CVP goal: bring � t inside V by shifting it by � v ∈ Λ 0 Algorithm [SFS’09]: � t ’ While � t / ∈ V : v ∈ R . � Select � t / ∈ H � v size reduce � t using � v [SFS’09] only proves termination CVP in deterministic 2 O ( n ) time Daniele Micciancio

  67. CVP and Voronoi cell Definition (CVP) Given Λ and � t , find � v ∈ Λ such that � t ∈ � v + V � v � t � v + V ≡ � t ∈ � t − � v ∈ V CVP goal: bring � t inside V by shifting it by � v ∈ Λ 0 Algorithm [SFS’09]: � t ’ While � t / ∈ V : v ∈ R . � Select � t / ∈ H � v size reduce � t using � v [SFS’09] only proves termination Question: What is a good selection strategy for � v ∈ R ? CVP in deterministic 2 O ( n ) time Daniele Micciancio

  68. Our selection strategy Assume � t ∈ 2 V 0 � t CVP in deterministic 2 O ( n ) time Daniele Micciancio

  69. Our selection strategy Assume � t ∈ 2 V t ′ ∈ � Goal: find � t − Λ ∩ V : 0 � t CVP in deterministic 2 O ( n ) time Daniele Micciancio

  70. Our selection strategy Assume � t ∈ 2 V t ′ ∈ � Goal: find � t − Λ ∩ V : Strategy: Compute smallest k ∈ R such that � t ∈ k V � u 1 0 � t CVP in deterministic 2 O ( n ) time Daniele Micciancio

  71. Our selection strategy Assume � t ∈ 2 V t ′ ∈ � Goal: find � t − Λ ∩ V : Strategy: Compute smallest k ∈ R such that � t ∈ k V Subtract the relevant vector associated to corresponding facet � u 1 0 � t ′ � t CVP in deterministic 2 O ( n ) time Daniele Micciancio

  72. Our selection strategy Assume � t ∈ 2 V t ′ ∈ � Goal: find � t − Λ ∩ V : Strategy: Compute smallest k ∈ R such that � t ∈ k V Subtract the relevant vector associated to corresponding facet � u 1 Why does it work? 0 � t ′ � t CVP in deterministic 2 O ( n ) time Daniele Micciancio

  73. Our selection strategy Assume � t ∈ 2 V t ′ ∈ � Goal: find � t − Λ ∩ V : Strategy: Compute smallest k ∈ R such that � t ∈ k V Subtract the relevant vector associated to corresponding facet � u 1 Why does it work? 0 t ′ is The new vector � � t ′ shorter than � t � t CVP in deterministic 2 O ( n ) time Daniele Micciancio

  74. Our selection strategy Assume � t ∈ 2 V t ′ ∈ � Goal: find � t − Λ ∩ V : Strategy: Compute smallest k ∈ R such that � t ∈ k V Subtract the relevant vector associated to corresponding facet � u 1 Why does it work? 0 t ′ is The new vector � � t ′ shorter than � t � t ′ ∈ 2 V t still � CVP in deterministic 2 O ( n ) time Daniele Micciancio

  75. Our selection strategy Assume � t ∈ 2 V t ′ ∈ � Goal: find � t − Λ ∩ V : Strategy: Compute smallest k ∈ R such that � t ∈ k V Subtract the relevant vector associated to corresponding facet � u 1 Why does it work? 0 t ′ is The new vector � � t ′ shorter than � t � t ′ ∈ 2 V t still � | ( � t − Λ) ∩ 2 V| ≤ 2 n CVP in deterministic 2 O ( n ) time Daniele Micciancio

  76. Doubling the Voronoi Cell Solve CVP for any � t : Find � k ∈ Z such that � t ∈ 2 k V Use CVP 2 V to go from 2 k V � t to 2 k − 1 V CVP in deterministic 2 O ( n ) time Daniele Micciancio

  77. Doubling the Voronoi Cell Solve CVP for any � t : Find � k ∈ Z such that � t ∈ 2 k V Use CVP 2 V to go from 2 k V � t to 2 k − 1 V CVP in deterministic 2 O ( n ) time Daniele Micciancio

Recommend


More recommend