using discrete gaussian sampling
play

Using Discrete Gaussian Sampling Divesh Aggarwal National - PowerPoint PPT Presentation

Solving SVP and CVP in 2 Time Using Discrete Gaussian Sampling Divesh Aggarwal National University of Singapore (NUS) Daniel Dadush Centrum Wiskunde en Informatica (CWI) Oded Regev Noah Stephens-Davidowitz New York University (NYU)


  1. Solving SVP and CVP in 2 ๐‘œ Time Using Discrete Gaussian Sampling Divesh Aggarwal National University of Singapore (NUS) Daniel Dadush Centrum Wiskunde en Informatica (CWI) Oded Regev Noah Stephens-Davidowitz New York University (NYU)

  2. Lattices A lattice โ„’ โŠ† โ„ ๐‘œ is all integral ๐‘ 2 combinations of some basis ๐‘ 1 B = ๐‘ 1 , โ€ฆ , ๐‘ ๐‘œ . โ„’(๐ถ) denotes lattice generated by ๐ถ . โ„’

  3. Act I: The Shortest Vector Problem

  4. Shortest Vector Problem (SVP) Given: Lattice basis ๐ถ ๐œ— โ„š ๐‘œร—๐‘œ . Goal: Compute shortest non-zero vector in โ„’(๐ถ) . 0 ๐‘ง โ„’

  5. Shortest Vector Problem (SVP) ๐œ‡ 1 โ„’ = length of shortest non-zero vector ๐œ‡ 1 โ„’ 0 ๐‘ง โ„’

  6. Algorithms for SVP Time Space [Kan86,HS07,MW15] ๐‘œ ๐‘ƒ(๐‘œ) poly ๐‘œ (Enumeration) [AKS01] 2 ๐‘ƒ(๐‘œ) 2 ๐‘ƒ(๐‘œ) (Sieving) [NV08, PS09, MV10a, 2 2.465๐‘œ+๐‘(๐‘œ) 2 1.233๐‘œ+๐‘(๐‘œ) โ€ฆ] [MV10b] 2 2๐‘œ+๐‘(๐‘œ) 2 ๐‘œ+๐‘(๐‘œ) (Voronoi cell, deterministic, CVP) 2 ๐‘œ+๐‘(๐‘œ) 2 ๐‘œ+๐‘(๐‘œ) [ADRS15]

  7. Our Algorithm

  8. Gaussian Distribution

  9. Gaussian Distribution

  10. Discrete Gaussian Distribution

  11. Discrete Gaussian Distribution

  12. Discrete Gaussian Distribution

  13. Discrete Gaussian Distribution

  14. Discrete Gaussian Distribution

  15. Discrete Gaussian Distribution

  16. Discrete Gaussian Distribution

  17. Discrete Gaussian Distribution

  18. Discrete Gaussian Distribution shortest vector! If we can obtain โ€œenoughโ€ samples from the discrete Gaussian with the โ€œrightโ€ (small) parameter, then we can solve SVP.

  19. Discrete Gaussian Distribution We need at most 1.38 ๐‘œ vectors with ๐‘ก โ‰ˆ ๐œ‡ 1 โ„’ / ๐‘œ [KL78]. (uses bounds on the kissing number) ๐ธ โ„’,๐‘ก is very well-studied for very high parameters, ๐‘ก โ‰ฟ ๐œ‡ ๐‘œ (โ„’) , i.e. above the โ€œsmoothing parameterโ€ of the lattice. [Kle00, GPV08] show how to sample in this regime in polynomial time. (Previously could not do much better, even in exponential time.)

  20. Discrete Gaussian Distribution Easy Hard [Kle00, GPV08] Our goal Can we use samples from the LHS to get samples from the RHS?

  21. Discrete Gaussian Distribution = 2

  22. Discrete Gaussian Distribution ? = 2

  23. Discrete Gaussian Distribution 0

  24. Converting Gaussian Vectors What if we condition on the result being in the lattice? Progress! Unfortunately, this requires us to throw out a lot of vectors. We only keep one from every โ‰ˆ 2 ๐‘œ vectors each time we do this, leading to a very slow algorithm!

  25. Converting Gaussian Vectors + = 2

  26. Converting Gaussian Vectors ? + = 2

  27. Converting Gaussian Vectors 0

  28. Converting Gaussian Vectors What about the average of two discrete Gaussian vectors conditioned on the result being in the lattice?

  29. Converting Gaussian Vectors When do we have ? ๐‘ง 1 + ๐‘ง 2 2 โˆˆ โ„’ if and only if We have ๐‘ง 1 , ๐‘ง 2 are in the same coset of 2โ„’ . (Note that there are 2 ๐‘œ cosets)

  30. Converting Gaussian Vectors What about the average of two discrete Gaussian vectors conditioned on the result being in the lattice?

  31. Converting Gaussian Vectors โ„’ โ€  = { ๐‘ง 1 , ๐‘ง 2 โˆถ ๐‘ง 1 โ‰ก ๐‘ง 2 mod 2โ„’ } โ„’ ร— โ„’ What about the average of two discrete Gaussian vectors conditioned on the result being in the lattice?

  32. Converting Gaussian Vectors avg ๐‘ง 1 , ๐‘ง 2 = ( ๐‘ง 1 +๐‘ง 2 , ๐‘ง 1 โˆ’๐‘ง 2 ) 2 2 What about the average of two discrete Gaussian vectors conditioned on the result being in the lattice?

  33. Converting Gaussian Vectors avg โ„’ โ€  = โ„’ ร— โ„’ What about the average of two discrete Gaussian vectors conditioned on the result being in the lattice?

  34. Converting Gaussian Vectors avg โ„’ โ€  = โ„’ ร— โ„’ If we sample ๐‘ง 1 , ๐‘ง 2 ~๐ธ โ„’,๐‘ก , ๐‘ง 1 +๐‘ง 2 , ๐‘ง 1 โˆ’๐‘ง 2 avg ๐‘ง 1 , ๐‘ง 2 = = (y 1 , ๐‘ง 2 ) 2 then their average will be distributed as ๐ธ โ„’, 2 , 2 2 ๐‘ก if we condition on the result being in the lattice. ๐‘ง 1 , ๐‘ง 2 โˆผ ๐ธ โ„’ โ€  ,๐‘ก โ‡’ avg ๐‘ง 1 , ๐‘ง 2 โˆผ ๐ธ โ„’ร—โ„’, ๐‘ก 2 Progress!

  35. Stitching a Discrete Gaussian Together ๐‘ง 1 +๐‘ง 2 = ๐‘ง | ๐‘ง 1 +๐‘ง 2 Pr โˆˆ โ„’ 2 2 ๐‘ง 1 ,๐‘ง 2 ~๐ธ โ„’,๐‘ก 2 ๐‘ง 1 +๐‘ง 2 Pr ๐ธ โ„’,๐‘ก โˆˆ ๐’… Pr = ๐‘ง โˆ 2 ๐‘ง 1 ,๐‘ง 2 ~๐ธ 2โ„’+๐’…,๐‘ก ๐’…โˆˆโ„’(mod 2โ„’) Generating a single ๐‘ฌ ๐“œ, ๐Ÿ‘ sample: ๐’• 2 . 1. Sample ๐’… โˆˆ โ„’ (๐‘›๐‘๐‘’ 2โ„’) with probability โˆ Pr D โ„’,๐‘ก โˆˆ ๐’… 2. Output (๐‘ 1 + ๐‘ 2 )/2 where ๐‘ 1 , ๐‘ 2 โˆผ ๐ธ 2โ„’+๐’…,๐‘ก .

  36. Discrete Gaussian Combiner ๐‘ iid ๐ธ โ„’,๐‘ก samples ( ๐‘ โ‰ˆ 2 ๐‘œ ) Input: ๐‘ 1 , โ€ฆ , ๐‘ 1. โ€œBucketโ€ samples according to their coset (mod 2โ„’) . 2. Repeat many times: 2 . 1. Sample coset ๐’… with probability โˆ Pr D โ„’,๐‘ก โˆˆ ๐’… 2. Output (๐‘ ๐‘— + ๐‘ ๐‘˜ )/2 , for ๐‘ ๐‘— , ๐‘ ๐‘˜ โˆˆ ๐’… . 3. Remove ๐‘ ๐‘— , ๐‘ ๐‘˜ from list. Donโ€™t have access to this distribution!

  37. Rejection Sampling ๐Ÿ‘ : Achieving โˆ ๐๐ฌ ๐‘ฌ ๐“œ,๐’• โˆˆ ๐’… Same as trivial strategy! First Pass: Sample ๐’… โˆผ ๐ธ โ„’,๐‘ก (mod 2โ„’) . Accept ๐’… with probability Pr[๐ธ โ„’,๐‘ก โˆˆ ๐’…] o/w reject. Implementation: Sample ๐‘ 1 โˆผ ๐ธ โ„’,๐‘ก and let ๐’… be ๐‘ 1 (mod 2โ„’) . Sample ๐‘ 2 โˆผ ๐ธ โ„’,๐‘ก . Output ๐’… if ๐‘ 1 โ‰ก ๐‘ 2 (mod 2โ„’) .

  38. Rejection Sampling ๐Ÿ‘ : Achieving โˆ ๐๐ฌ ๐‘ฌ ๐“œ,๐’• โˆˆ ๐’… Second Try: Sample ๐’… โˆผ ๐ธ โ„’,๐‘ก (mod 2โ„’) . Pr ๐ธ โ„’,๐‘ก โˆˆ๐’… Accept ๐’… with probability o/w reject, ๐‘ž max where ๐‘ž max = ๐’„โˆˆโ„’(mod 2โ„’) Pr[๐ธ โ„’,๐‘ก โˆˆ ๐’„] max Implementation: ???

  39. Discrete Gaussian Combiner ๐‘ iid ๐ธ โ„’,๐‘ก samples ( ๐‘ โ‰ˆ 2 ๐‘œ ) Input: ๐‘ 1 , โ€ฆ , ๐‘ Use first ๐‘/6 samples to estimate ๐‘ž max . ๐Ÿ โ€ฆ ๐‘๐‘ž max /3 โ„’(๐‘›๐‘๐‘’ 2โ„’) # samples in 2 ๐‘œ buckets each bucket First Last 1 ๐‘ž max samples โ‹ฏ 1 ๐‘ž max samples

  40. Discrete Gaussian Combiner ๐‘ iid ๐ธ โ„’,๐‘ก samples ( ๐‘ โ‰ˆ 2 ๐‘œ ) Input: ๐‘ 1 , โ€ฆ , ๐‘ 1. Compute ๐‘ž max and bucket counts (previous slide). 2. For ๐‘— ranging over last ๐‘/6 samples: 1. Let ๐’… = ๐‘ ๐‘— (๐‘›๐‘๐‘’ 2โ„’) . 2. Find first unused bucket count ๐‘™ ๐’… for coset ๐’… . ๐‘™ ๐’… ๐‘œ ๐‘ƒ(1) } , 3. With probability min {1, output (๐‘ ๐‘— + ๐‘ ๐‘˜ )/2 where ๐‘ ๐‘˜ is any sample contributing to ๐‘™ ๐’… .

  41. How Many Vectors Do We Get? ๐‘ โ‰” # input vectors 2 ๐’… Pr ๐ธ โ„’,๐‘ก โˆˆ๐’… # output vectors โ‰ˆ ๐‘ โ‹… max Pr[๐ธ โ„’,๐‘ก โˆˆ๐’„] ๐’„ Worst case bound: probability is at least 1 |support| . ๐‘ 2 ๐‘œ 2 after a single step! May drop to

  42. How Many Vectors Do We Get? ๐‘ง ๐‘ก 2 โ‰” ๐‘งโˆˆโ„’ ๐‘“ โˆ’ ๐œ ๐‘ก โ„’

  43. How Many Vectors Do We Get? max ๐œ ๐‘ก (2โ„’ + ๐) ๐’… = ๐œ ๐‘ก (2โ„’) ๐‘ง ๐‘ก 2 โ‰” ๐‘งโˆˆโ„’ ๐‘“ โˆ’ ๐œ ๐‘ก โ„’

  44. How Many Vectors Do We Get? Recall that we only need 1.38 ๐‘œ samples to solve SVP! ๐œ ๐‘ก โ„’ โ‰ค 2 ๐‘œ 2 ๐œ 2 (โ„’) ๐‘ก Setting ๐‘ โ‰ˆ 2 ๐‘œ gives

  45. Key Estimates Poisson summation formula: โ€œniceโ€ function ๐‘” 1 det(โ„’) ๐‘ฆโˆˆโ„’ โˆ— ๐‘” ๐‘ฆ ๐‘“ 2๐œŒ๐‘—โŒฉ๐‘ฆ,๐ฎโŒช ๐‘งโˆˆโ„’ ๐‘” ๐‘ง + ๐ฎ = ๐‘ฆ ๐‘ก 2 : Plug in ๐‘“ โˆ’๐œŒ det(โ„’) ๐‘ฆโˆˆโ„’ โˆ— ๐‘“ โˆ’๐œŒ ๐‘ก๐‘ฆ 2 ๐‘“ 2๐œŒ๐‘—โŒฉ๐‘ฆ,๐ฎโŒช ๐‘ก ๐‘œ ๐œ ๐‘ก โ„’ + ๐ฎ = ๐‘ก ๐‘œ 1 ๐‘ก (โ„’ โˆ— ) ๐œ ๐‘ก โ„’ = det(โ„’) ๐œ

  46. Key Estimates det(โ„’) ๐‘ฆโˆˆโ„’ โˆ— ๐‘“ โˆ’๐œŒ ๐‘ก๐‘ฆ 2 ๐‘“ 2๐œŒ๐‘—โŒฉ๐‘ฆ,๐ฎโŒช ๐‘ก ๐‘œ ๐œ ๐‘ก โ„’ + ๐ฎ = ๐‘ก ๐‘œ 1 ๐‘ก (โ„’ โˆ— ) ๐œ ๐‘ก โ„’ = det(โ„’) ๐œ Corollary 1: max ๐œ ๐‘ก โ„’ + ๐ฎ = ๐œ ๐‘ก (โ„’) ๐ฎ Corollary 2: ๐œ ๐›ฝ๐‘ก โ„’ โ‰ค ๐›ฝ ๐‘œ ๐œ ๐‘ก (โ„’) for ๐›ฝ โ‰ฅ 1 .

  47. Final Algorithm SVPSolver ( โ„’) Use GPV to get โ‰ˆ 2 ๐‘œ samples from ๐ธ โ„’,๐‘ก with ๐‘ก โ‰ซ ๐œ‡ 1 (โ„’) . 1. 2. Run the (โ€œsquaringโ€) discrete Gaussian combiner on the result repeatedly. 3. Output โ‰ˆ 2 ๐‘œ/2 samples from ๐ธ โ„’,๐‘ก with ๐‘ก โ‰ˆ ๐œ‡ 1 (โ„’) ๐‘œ . 4. We can then simply output a shortest non-zero vector from our samples.

  48. Act II: The Closest Vector Problem

  49. Closest Vector Problem (CVP) Given: Lattice basis ๐ถ ๐œ— โ„š ๐‘œร—๐‘œ , target ๐ฎ ๐œ— โ„š ๐‘œ . Goal: Compute ๐‘ง ๐œ— โ„’(๐ถ) minimizing ๐ฎ โˆ’ ๐‘ง . ๐‘ง dist(๐ฎ, โ„’) ๐ฎ โ„’

  50. Closest Vector Problem (CVP) CVP seems to be the harder problem: there is a dimension preserving reduction from SVP to CVP [GMSS 99 ] .

  51. Algorithms for CVP Time CVP? Deterministic? [Kan86,HS07,MW15] ๐‘œ ๐‘ƒ(๐‘œ) Yes Yes (Enumeration) [AKS02, BN09, HPS11, 2 ๐‘ƒ(๐‘œ) Approximate No โ€ฆ] (Sieving) [MV10b] 2 2๐‘œ+๐‘(๐‘œ) Yes Yes (Voronoi cell) [ADRS15] 2 ๐‘œ+๐‘(๐‘œ) Approximate No (Discrete Gaussian) 2 ๐‘œ+๐‘(๐‘œ) [ADS15] Yes No

  52. Disclaimer The algorithm is quite complicated, so the following is a over-simplified high level sketch.

  53. The Discrete Gaussian Distribution

  54. The Discrete Gaussian Distribution

  55. The Discrete Gaussian Distribution

  56. The Discrete Gaussian Distribution

  57. The Discrete Gaussian Distribution

  58. The Discrete Gaussian Distribution

  59. The Discrete Gaussian Distribution

Recommend


More recommend