never trust a bunny d j bernstein university of illinois
play

Never trust a bunny D. J. Bernstein University of Illinois at - PDF document

Never trust a bunny D. J. Bernstein University of Illinois at Chicago Tanja Lange Technische Universiteit Eindhoven The HB( ) protocol (2001 HopperBlum) Secret s F 2 . Reader sends random F


  1. Never trust a bunny D. J. Bernstein University of Illinois at Chicago Tanja Lange Technische Universiteit Eindhoven

  2. The HB( ♥❀ ✜❀ ✜ ✵ ) protocol (2001 Hopper–Blum) Secret s ✷ F ♥ 2 . Reader sends random ❈ ✷ F ♥ ✂ ♥ . 2 Tag sends ❚ = ❈s + ❡ where each bit of ❡ is set with probability ✜ . Reader checks that ❚ � ❈s has ✔ ✜ ✵ ♥ bits set. “Reasonable” parameters: ♥ = 512, ✜ = 1 ❂ 8, ✜ ✵ = 1 ❂ 4.

  3. The LPN( ♥❀ ✜ ) problem Computational LPN problem: compute s given random ❘ 1 ; ❘ 1 s + ❡ 1 ; random ❘ 2 ; ❘ 2 s + ❡ 2 ; ✿ ✿ ✿ Equivalently: Compute s given random r 1 ✷ F ♥ 2 ; r 1 ✁ s + ❡ 1 ; random r 2 ✷ F ♥ 2 ; r 2 ✁ s + ❡ 2 ; ✿ ✿ ✿ Solving computational LPN breaks HB and all of the other protocols in this talk. (Warning: “The LPN problem” is normally defined as a decisional problem.)

  4. Breaking HB without solving LPN Attacker sends to the tag: 1 0 0 ✿ ✿ ✿ 0 ✵ ✶ 1 0 0 ✿ ✿ ✿ 0 ❇ ❈ ❇ ❈ 1 0 0 ✿ ✿ ✿ 0 ❈ = . ❇ ❈ . . . . . . ... . ❇ ❈ . . . . . ❅ ❆ 1 0 0 ✿ ✿ ✿ 0 Majority vote of tag response is very likely to be first bit of s . Repeat for other bits. Many subsequent HB variants try to resist active attacks.

  5. MatrixLapin( ♥❀ ✜❀ ✜ ✵ ) Secrets s❀ s ✵ ✷ F ♥ 2 . Reader sends random ❈ ✷ F ♥ ✂ ♥ . 2 (Improvement: restrict to “nice” subspace; same in next protocol.) Tag sends random invertible ❘ ✷ F ♥ ✂ ♥ 2 and ❚ = ❘ ( ❈s + s ✵ ) + ❡ where each bit of ❡ is set with probability ✜ . Reader checks that ❘ is invertible and that ❚ � ❘ ( ❈s + s ✵ ) has ✔ ✜ ✵ ♥ bits set.

  6. Lapin( ♥❀ ❢❀ ✜❀ ✜ ✵ ) where deg ❢ = ♥ (FSE 2012 Heyse–Kiltz– Lyubashevsky–Paar–Pietrzak) Secrets s❀ s ✵ ✷ F 2 [ ① ] ❂❢ . Reader sends random ❝ ✷ F 2 [ ① ] ❂❢ . Tag sends random invertible r ✷ F 2 [ ① ] ❂❢ and t = r ( ❝s + s ✵ ) + ❡ where each bit of ❡ is set with probability ✜ . Reader checks that r is invertible and that t � r ( ❝s + s ✵ ) has ✔ ✜ ✵ ♥ bits set.

  7. Ring-LPN( ♥❀ ❢❀ ✜ ) Lapin ❝ and r correspond to matrices ❈ and ❘ . Highly non-random matrices! Saves space and time but maybe risks attacks. Computational Ring-LPN problem (FSE 2012): compute s given random r 1 ; r 1 s + ❡ 1 ; random r 2 ; r 2 s + ❡ 2 ; ✿ ✿ ✿ Feed ❝ repeatedly to Lapin tag, solve Ring-LPN ✮ ❝s + s ✵ . Repeat with ❝ ✵ where ❝ � ❝ ✵ is invertible, obtain s and s ✵ .

  8. Lapin features FSE 2012 paper says: 1. Lapin has “comparable” efficiency to AES.

  9. Lapin features FSE 2012 paper says: 1. Lapin has “comparable” efficiency to AES. 2. Lapin is “provably secure”.

  10. Lapin features FSE 2012 paper says: 1. Lapin has “comparable” efficiency to AES. 2. Lapin is “provably secure”. 3. Ring-LPN with irreducible ❢ is as hard to break as LPN “to the best of our knowledge”.

  11. Lapin features FSE 2012 paper says: 1. Lapin has “comparable” efficiency to AES. 2. Lapin is “provably secure”. 3. Ring-LPN with irreducible ❢ is as hard to break as LPN “to the best of our knowledge”. 4. LPN(512 ❀ 1 ❂ 8) “would require 2 77 memory (and thus at least thus much time) to solve when given access to approximately as many samples”.

  12. Interlude [Hoowdinked clip #1]

  13. 2000 Blum–Kalai–Wasserman Standard attack on LPN. Main idea: If r 1 and r 2 have the same starting bits then r 1 + r 2 has starting bits 0 and t 1 + t 2 = ( r 1 + r 2 ) ✁ s + ( ❡ 1 + ❡ 2 ). Repeat: clear more bits, obtain (0 ❀ 0 ❀ ✿ ✿ ✿ ❀ 0 ❀ 1) as a combination of 2 ❛ values r ✐ . Corresponding t combination is last bit of s with noise. Use many combinations to eliminate noise.

  14. 2006 Levieil–Fouque Same main idea, but clear fewer bits. Obtain (0 ❀ 0 ❀ ✿ ✿ ✿ ❀ 0 ❀ ✄ ❀ ✿ ✿ ✿ ❀ ✄ ) for every pattern of ✄ ❀ ✿ ✿ ✿ ❀ ✄ . Enumerate each possibility for bits of s at ✄ positions. Use fast Walsh transform. Advantage: smaller noise. Need fewer queries, less memory, less computation. Source of “2 77 memory”.

  15. 2006 Levieil–Fouque Same main idea, but clear fewer bits. Obtain (0 ❀ 0 ❀ ✿ ✿ ✿ ❀ 0 ❀ ✄ ❀ ✿ ✿ ✿ ❀ ✄ ) for every pattern of ✄ ❀ ✿ ✿ ✿ ❀ ✄ . Enumerate each possibility for bits of s at ✄ positions. Use fast Walsh transform. Advantage: smaller noise. Need fewer queries, less memory, less computation. Source of “2 77 memory”. Actually needs ✙ 2 82 bytes.

  16. 2011 Kirchner Assume matrix ❘ 1 is invertible. Compute ❘ � 1 and 1 ❘ 2 ❘ � 1 1 ( ❘ 1 s + ❡ 1 ) + ❘ 2 s + ❡ 2 , ❘ 3 ❘ � 1 1 ( ❘ 1 s + ❡ 1 ) + ❘ 3 s + ❡ 3 , ❘ 4 ❘ � 1 1 ( ❘ 1 s + ❡ 1 ) + ❘ 4 s + ❡ 4 , ✿ ✿ ✿

  17. 2011 Kirchner Assume matrix ❘ 1 is invertible. Compute ❘ � 1 and 1 ❘ 2 ❘ � 1 1 ( ❘ 1 s + ❡ 1 ) + ❘ 2 s + ❡ 2 , ❘ 3 ❘ � 1 1 ( ❘ 1 s + ❡ 1 ) + ❘ 3 s + ❡ 3 , ❘ 4 ❘ � 1 1 ( ❘ 1 s + ❡ 1 ) + ❘ 4 s + ❡ 4 , ✿ ✿ ✿ Obtain new LPN( ♥❀ ✜ ) problem ❘ ✵ 2 ; ❘ ✵ 2 ❡ 1 + ❡ 2 ; ❘ ✵ 3 ; ❘ ✵ 3 ❡ 1 + ❡ 3 ; ❘ ✵ 4 ; ❘ ✵ 4 ❡ 1 + ❡ 4 ; ✿ ✿ ✿

  18. 2011 Kirchner Assume matrix ❘ 1 is invertible. Compute ❘ � 1 and 1 ❘ 2 ❘ � 1 1 ( ❘ 1 s + ❡ 1 ) + ❘ 2 s + ❡ 2 , ❘ 3 ❘ � 1 1 ( ❘ 1 s + ❡ 1 ) + ❘ 3 s + ❡ 3 , ❘ 4 ❘ � 1 1 ( ❘ 1 s + ❡ 1 ) + ❘ 4 s + ❡ 4 , ✿ ✿ ✿ Obtain new LPN( ♥❀ ✜ ) problem ❘ ✵ 2 ; ❘ ✵ 2 ❡ 1 + ❡ 2 ; ❘ ✵ 3 ; ❘ ✵ 3 ❡ 1 + ❡ 3 ; ❘ ✵ 4 ; ❘ ✵ 4 ❡ 1 + ❡ 4 ; ✿ ✿ ✿ with sparse secret ❡ 1 . Guess some bits of ❡ 1 , cancel fewer bits; less noise to deal with.

  19. Our attack on Lapin Main improvements in paper: ✎ Use the ring structure to save time in computations. ✎ Better guessing strategy. We break Ring-LPN(512 ❀ 1 ❂ 8) in ❁ 2 56 bytes of memory, ❁ 2 38 queries, and ❁ 2 98 bit operations.

  20. Our attack on Lapin Main improvements in paper: ✎ Use the ring structure to save time in computations. ✎ Better guessing strategy. We break Ring-LPN(512 ❀ 1 ❂ 8) in ❁ 2 56 bytes of memory, ❁ 2 38 queries, and ❁ 2 98 bit operations. Many tradeoffs possible: e.g., ❁ 2 78 bytes of memory, ❁ 2 63 queries, and ❁ 2 88 bit operations.

  21. What about LPN? Better guessing strategy also helps for LPN. We break LPN(1024 ❀ 1 ❂ 20) in ❁ 2 21 bytes of memory, ❁ 2 64 queries, and ❁ 2 100 bit operations (or ❁ 2 93 for Ring-LPN). Also have a new trick to reduce # queries. LPN(1024 ❀ 1 ❂ 20): 10 queries!

  22. Coda [Hoowdinked clip #2]

  23. Picture taken 2012.04.27 at CWI:

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend