Smaller decoding exponents: ball-collision decoding D. J. Bernstein - - PDF document

smaller decoding exponents ball collision decoding d j
SMART_READER_LITE
LIVE PREVIEW

Smaller decoding exponents: ball-collision decoding D. J. Bernstein - - PDF document

Smaller decoding exponents: ball-collision decoding D. J. Bernstein University of Illinois at Chicago Joint work with: Tanja Lange Technische Universiteit Eindhoven Christiane Peters University of Illinois at Chicago Context: speed What is


slide-1
SLIDE 1

Smaller decoding exponents: ball-collision decoding

  • D. J. Bernstein

University of Illinois at Chicago Joint work with: Tanja Lange Technische Universiteit Eindhoven Christiane Peters University of Illinois at Chicago

slide-2
SLIDE 2

Context: speed What is the fastest public-key encryption system?

slide-3
SLIDE 3

Context: speed What is the fastest public-key encryption system? RSA-1024 is quite fast.

slide-4
SLIDE 4

Context: speed What is the fastest public-key encryption system? RSA-1024 is quite fast. RSA-512 is faster.

slide-5
SLIDE 5

Context: speed What is the fastest public-key encryption system? RSA-1024 is quite fast. RSA-512 is faster. RSA-256 is even faster.

slide-6
SLIDE 6

Context: speed What is the fastest public-key encryption system? RSA-1024 is quite fast. RSA-512 is faster. RSA-256 is even faster. This question is stupid.

slide-7
SLIDE 7

Context: speed What is the fastest public-key encryption system with security level ✕ 2❜?

slide-8
SLIDE 8

Context: speed What is the fastest public-key encryption system with security level ✕ 2❜? (Plausible-sounding definition: breaking costs ✕ 2❜.)

slide-9
SLIDE 9

Context: speed What is the fastest public-key encryption system with security level ✕ 2❜? (Plausible-sounding definition: breaking with probability 1 costs ✕ 2❜.)

slide-10
SLIDE 10

Context: speed What is the fastest public-key encryption system with security level ✕ 2❜? (Plausible-sounding definition: for each ✎ ❃ 0, breaking with probability ✕ ✎ costs ✕ 2❜✎.)

slide-11
SLIDE 11

Context: speed What is the fastest public-key encryption system with security level ✕ 2❜? (Plausible-sounding definition: for each ✎ ❃ 2❜❂2, breaking with probability ✕ ✎ costs ✕ 2❜✎.)

slide-12
SLIDE 12

Context: speed What is the fastest public-key encryption system with security level ✕ 2❜? How to evaluate candidates: Encryption systems Analyze attack algorithms

  • Systems with security ✕ 2❜

Analyze encryption algorithms

  • Fastest systems with security ✕ 2❜
slide-13
SLIDE 13

Example of speed analysis RSA (with small exponent, reasonable padding, etc.): Factoring ♥ costs 2(lg ♥)1❂3+♦(1) by the number-field sieve. Conjecture: this is the

  • ptimal attack against RSA.

Key size: Can take lg ♥ ✷ ❜3+♦(1) ensuring 2(lg ♥)1❂3+♦(1) ✕ 2❜. Encryption: Fast exp costs (lg ♥)1+♦(1) bit operations. Summary: RSA costs ❜3+♦(1).

slide-14
SLIDE 14

ECC (with strong curve/Fq, reasonable padding, etc.): ECDL costs 2(1❂2+♦(1)) lg q by Pollard’s rho method. Conjecture: this is the

  • ptimal attack against ECC.

Can take lg q ✷ (2 + ♦(1))❜. Encryption: Fast scalar mult costs (lg q)2+♦(1) = ❜2+♦(1). Summary: ECC costs ❜2+♦(1). Asymptotically faster than RSA. Bonus: also ❜2+♦(1) decryption.

slide-15
SLIDE 15

1978 McEliece system (with length-♥ classical Goppa codes, reasonable padding, etc.): Conjecture: Fastest attacks cost 2(☞+♦(1))♥❂lg ♥. Can take ♥ ✷ (1❂☞ + ♦(1))❜ lg ❜. Encryption: Matrix mult costs ♥2+♦(1) = ❜2+♦(1). Summary: McEliece costs ❜2+♦(1). Is this faster than ECC? Need more detailed analysis.

slide-16
SLIDE 16

ECC encryption: Θ(lg q) operations in Fq. Each operation in Fq costs Θ(lg q lg lg q lg lg lg q). Total Θ(❜2 lg ❜ lg lg ❜). McEliece encryption, with 1986 Niederreiter speedup: Θ(♥❂lg ♥) additions in F♥

2 ,

each costing Θ(♥). Total Θ(❜2 lg ❜). McEliece is asymptotically faster. Bonus: Much faster decryption. Another bonus: Post-quantum.

slide-17
SLIDE 17

Algorithmic advances can change this picture. Examples:

  • 1. Speed up ECC: can reduce

lg lg ❜ using 2007 F¨ urer; maybe someday eliminate lg lg ❜?

slide-18
SLIDE 18

Algorithmic advances can change this picture. Examples:

  • 1. Speed up ECC: can reduce

lg lg ❜ using 2007 F¨ urer; maybe someday eliminate lg lg ❜?

  • 2. This paper: asymptotically

faster attack on McEliece. “Ball-collision decoding.” Need larger McEliece key sizes.

slide-19
SLIDE 19

Algorithmic advances can change this picture. Examples:

  • 1. Speed up ECC: can reduce

lg lg ❜ using 2007 F¨ urer; maybe someday eliminate lg lg ❜?

  • 2. This paper: asymptotically

faster attack on McEliece. “Ball-collision decoding.” Need larger McEliece key sizes.

  • 3. Ongoing: we’re optimizing

“subfield AG” variant of

  • McEliece. Conjecture:

Fastest attacks cost 2(☛+♦(1))♥; encryption costs Θ(❜2).

slide-20
SLIDE 20

Generic decoding algorithms Some history: 1962 Prange; 1981 Clark (crediting Omura); 1988 Lee–Brickell; 1988 Leon; 1989 Krouk; 1989 Stern; 1989 Dumer; 1990 Coffey–Goodman; 1990 van Tilburg; 1991 Dumer; 1991 Coffey–Goodman–Farrell; 1993 Chabanne–Courteau; 1993 Chabaud; 1994 van Tilburg; 1994 Canteaut–Chabanne; 1998 Canteaut–Chabaud; 1998 Canteaut–Sendrier; 2008 B.–L.– P.: 2009 Finiasz–Sendrier; 2010 P.; 2011 B.–L.–P, this paper.

slide-21
SLIDE 21

A typical decoding problem Input: 500-bit vector s; and a 900 ✂ 500 matrix of bits. Goal: Find 50 rows with xor s. ✿ ✿ ✿ 01010 ✿ ✿ ✿ ✿ ✿ ✿ 11001 ✿ ✿ ✿ ✿ ✿ ✿ 10111 ✿ ✿ ✿ ✿ ✿ ✿ 10101 ✿ ✿ ✿ ✿ ✿ ✿ 01011 ✿ ✿ ✿ . . . s r1 r2 r3 . . . r900

slide-22
SLIDE 22

A typical decoding problem Input: 500-bit vector s; and a 900 ✂ 500 matrix of bits. Goal: Find 50 rows with xor s. ✿ ✿ ✿ 01010 ✿ ✿ ✿ ✿ ✿ ✿ 11001 ✿ ✿ ✿ ✿ ✿ ✿ 10111 ✿ ✿ ✿ ✿ ✿ ✿ 10101 ✿ ✿ ✿ ✿ ✿ ✿ 01011 ✿ ✿ ✿ . . . s = r2 ✟ r7 ✟ r34 ✟ r ✟ ✁ ✁ ✁ r1 r2 r3 . . . r900

slide-23
SLIDE 23

Row randomization Can arbitrarily permute rows without changing problem. Goal: Find 50 rows with xor s. ✿ ✿ ✿ 01010 ✿ ✿ ✿ ✿ ✿ ✿ 11001 ✿ ✿ ✿ ✿ ✿ ✿ 10111 ✿ ✿ ✿ ✿ ✿ ✿ 10101 ✿ ✿ ✿ ✿ ✿ ✿ 01011 ✿ ✿ ✿ . . . s = r2 ✟ r7 ✟ r34 ✟ r ✟ ✁ ✁ ✁ r1 r2 r3 . . . r900

slide-24
SLIDE 24

Row randomization Can arbitrarily permute rows without changing problem. Goal: Find 50 rows with xor s. ✿ ✿ ✿ 01010 ✿ ✿ ✿ ✿ ✿ ✿ 10111 ✿ ✿ ✿ ✿ ✿ ✿ 11001 ✿ ✿ ✿ ✿ ✿ ✿ 10101 ✿ ✿ ✿ ✿ ✿ ✿ 01011 ✿ ✿ ✿ . . . s = r1 ✟ r7 ✟ r34 ✟ r ✟ ✁ ✁ ✁ r1 r2 r3 . . . r900

slide-25
SLIDE 25

Column normalization Can also permute columns without changing problem. Goal: Find 50 rows with xor s. ✿ ✿ ✿ 01010 ✿ ✿ ✿ ✿ ✿ ✿ 10111 ✿ ✿ ✿ ✿ ✿ ✿ 11001 ✿ ✿ ✿ ✿ ✿ ✿ 10101 ✿ ✿ ✿ ✿ ✿ ✿ 01011 ✿ ✿ ✿ . . . s = r1 ✟ r7 ✟ r34 ✟ r ✟ ✁ ✁ ✁ r1 r2 r3 . . . r900

slide-26
SLIDE 26

Column normalization Can also permute columns without changing problem. Goal: Find 50 rows with xor s. ✿ ✿ ✿ 10010 ✿ ✿ ✿ ✿ ✿ ✿ 01111 ✿ ✿ ✿ ✿ ✿ ✿ 11001 ✿ ✿ ✿ ✿ ✿ ✿ 01101 ✿ ✿ ✿ ✿ ✿ ✿ 10011 ✿ ✿ ✿ . . . s = r1 ✟ r7 ✟ r34 ✟ r ✟ ✁ ✁ ✁ r1 r2 r3 . . . r900

slide-27
SLIDE 27

Systematic form Can add one column to another. ✮ Build an identity matrix. Goal: Find 50 rows with xor s. 0110 ✿ ✿ ✿ 0000 1000 ✿ ✿ ✿ 0000 0100 ✿ ✿ ✿ 0000 0010 ✿ ✿ ✿ 0000 0000 ✿ ✿ ✿ 0001 1010 ✿ ✿ ✿ 1100 1101 ✿ ✿ ✿ 0111 ... . . . s = r2 ✟ r3 ✟ r18 ✟ r ✟ ✁ ✁ ✁ r1 r2 r3 r500 r501 . . . . . . r900

slide-28
SLIDE 28

1962 Prange, basic information-set decoding: Maybe xor involves none of last 400 rows. If so, immediately see that s has weight 50. Done! If not, re-randomize and restart.

slide-29
SLIDE 29

1962 Prange, basic information-set decoding: Maybe xor involves none of last 400 rows. If so, immediately see that s has weight 50. Done! If not, re-randomize and restart. 1988 Lee–Brickell: More likely that xor involves exactly 2 of last 400 rows. Check for each ✐❀ ❥ whether s ✟ r✐ ✟ r❥ has weight 48.

slide-30
SLIDE 30

s 1 ... 1 r✐ r❥ 2 rows/400 48 rows/500

slide-31
SLIDE 31

1989 Leon, 1989 Krouk: Check for each ✐❀ ❥ whether s ✟ r✐ ✟ r❥ has weight 48 with first 10 bits all zero. Much faster to test, not much loss in success chance.

slide-32
SLIDE 32

1989 Leon, 1989 Krouk: Check for each ✐❀ ❥ whether s ✟ r✐ ✟ r❥ has weight 48 with first 10 bits all zero. Much faster to test, not much loss in success chance. 1989 Stern, collision decoding: ♣ speedup! Find collisions between first 10 bits of s ✟ r✐ and first 10 bits of r❥. For each collision, check whether s ✟ r✐ ✟ r❥ has weight 48.

slide-33
SLIDE 33

s 1 ... 1 r✐ r❥ 2 rows/400 0 rows/10 48 rows/490

slide-34
SLIDE 34

s 1 ... 1 r✐1 r✐2 r❥1 r❥2 4 rows/400 0 rows/10 46 rows/490 Or s ✟ r✐1 ✟ ✁ ✁ ✁ ✟ r✐♣ and r❥1 ✟ ✁ ✁ ✁ ✟ r❥♣. Optimize choice of ♣. Of course, also optimize 10 etc.

slide-35
SLIDE 35

New, ball-collision decoding: Find collisions between (e.g.) weight-1 Hamming ball around first 10 bits of s ✟ r✐1 ✟ r✐2 and weight-1 Hamming ball around first 10 bits of r❥1 ✟ r❥2. s 1 ... 1 r✐1 r✐2 r❥1 r❥2 4 rows/400 2 rows/10 44 rows/490

slide-36
SLIDE 36

Our main theorem: For ✇ rows of ♥ ✂ (♥ ❦) matrix, constant ✇❂♥❀ ❦❂♥ as ♥ ✦ ✶, under standard assumptions,

  • ptimized collision decoding

costs 2(☛+♦(1))♥ and

  • ptimized ball-collision decoding

costs 2(☛✵+♦(1))♥ with ☛✵ ❁ ☛. See cr.yp.to/ballcoll.html: ✎ proof of smaller exponents; ✎ conservative lower bounds; ✎ complete reference software.