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

never trust a bunny d j bernstein university of illinois
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Never trust a bunny

  • D. J. Bernstein

University of Illinois at Chicago Tanja Lange Technische Universiteit Eindhoven

slide-2
SLIDE 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.

slide-3
SLIDE 3

The LPN(♥❀ ✜) problem Computational LPN problem: compute s given random ❘1; ❘1s + ❡1; random ❘2; ❘2s + ❡2; ✿ ✿ ✿ Equivalently: Compute s given random r1 ✷ F♥

2 ; r1 ✁ s + ❡1;

random r2 ✷ F♥

2 ; r2 ✁ s + ❡2; ✿ ✿ ✿

Solving computational LPN breaks HB and all of the

  • ther protocols in this talk.

(Warning: “The LPN problem” is normally defined as a decisional problem.)

slide-4
SLIDE 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.

slide-5
SLIDE 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.

slide-6
SLIDE 6

Lapin(♥❀ ❢❀ ✜❀ ✜ ✵) where deg ❢ = ♥ (FSE 2012 Heyse–Kiltz– Lyubashevsky–Paar–Pietrzak) Secrets s❀ s✵ ✷ F2[①]❂❢. Reader sends random ❝ ✷ F2[①]❂❢. Tag sends random invertible r ✷ F2[①]❂❢ 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.

slide-7
SLIDE 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 r1; r1s + ❡1; random r2; r2s + ❡2; ✿ ✿ ✿ Feed ❝ repeatedly to Lapin tag, solve Ring-LPN ✮ ❝s + s✵. Repeat with ❝✵ where ❝ ❝✵ is invertible, obtain s and s✵.

slide-8
SLIDE 8

Lapin features FSE 2012 paper says:

  • 1. Lapin has “comparable”

efficiency to AES.

slide-9
SLIDE 9

Lapin features FSE 2012 paper says:

  • 1. Lapin has “comparable”

efficiency to AES.

  • 2. Lapin is “provably secure”.
slide-10
SLIDE 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”.

slide-11
SLIDE 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

277 memory (and thus at least thus much time) to solve when given access to approximately as many samples”.

slide-12
SLIDE 12

Interlude [Hoowdinked clip #1]

slide-13
SLIDE 13

2000 Blum–Kalai–Wasserman Standard attack on LPN. Main idea: If r1 and r2 have the same starting bits then r1 + r2 has starting bits 0 and t1 + t2 = (r1 + r2) ✁ s + (❡1 + ❡2). Repeat: clear more bits,

  • btain (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.

slide-14
SLIDE 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 “277 memory”.

slide-15
SLIDE 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 “277 memory”. Actually needs ✙ 282 bytes.

slide-16
SLIDE 16

2011 Kirchner Assume matrix ❘1 is invertible. Compute ❘1

1

and ❘2❘1

1 (❘1s + ❡1) + ❘2s + ❡2,

❘3❘1

1 (❘1s + ❡1) + ❘3s + ❡3,

❘4❘1

1 (❘1s + ❡1) + ❘4s + ❡4, ✿ ✿ ✿

slide-17
SLIDE 17

2011 Kirchner Assume matrix ❘1 is invertible. Compute ❘1

1

and ❘2❘1

1 (❘1s + ❡1) + ❘2s + ❡2,

❘3❘1

1 (❘1s + ❡1) + ❘3s + ❡3,

❘4❘1

1 (❘1s + ❡1) + ❘4s + ❡4, ✿ ✿ ✿

Obtain new LPN(♥❀ ✜) problem ❘✵

2; ❘✵ 2❡1 + ❡2;

❘✵

3; ❘✵ 3❡1 + ❡3;

❘✵

4; ❘✵ 4❡1 + ❡4; ✿ ✿ ✿

slide-18
SLIDE 18

2011 Kirchner Assume matrix ❘1 is invertible. Compute ❘1

1

and ❘2❘1

1 (❘1s + ❡1) + ❘2s + ❡2,

❘3❘1

1 (❘1s + ❡1) + ❘3s + ❡3,

❘4❘1

1 (❘1s + ❡1) + ❘4s + ❡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.

slide-19
SLIDE 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 ❁256 bytes of memory, ❁238 queries, and ❁298 bit operations.

slide-20
SLIDE 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 ❁256 bytes of memory, ❁238 queries, and ❁298 bit operations. Many tradeoffs possible: e.g., ❁278 bytes of memory, ❁263 queries, and ❁288 bit operations.

slide-21
SLIDE 21

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

slide-22
SLIDE 22

Coda [Hoowdinked clip #2]

slide-23
SLIDE 23

Picture taken 2012.04.27 at CWI: