Keccak and SHA-3: code and standard updates
Guido Bertoni1 Joan Daemen1 Michaël Peeters2 Gilles Van Assche1 Ronny Van Keer1
1STMicroelectronics 2NXP Semiconductors
FOSDEM 2015, Brussels, January 31st & February 1st, 2015
1 / 39
Keccak and SHA-3: code and standard updates Guido Bertoni 1 Joan - - PowerPoint PPT Presentation
Keccak and SHA-3: code and standard updates Guido Bertoni 1 Joan Daemen 1 Michal Peeters 2 Gilles Van Assche 1 Ronny Van Keer 1 1 STMicroelectronics 2 NXP Semiconductors FOSDEM 2015, Brussels, January 31st & February 1st, 2015 1 / 39
1STMicroelectronics 2NXP Semiconductors
1 / 39
2 / 39
What is Keccak
3 / 39
What is Keccak
4 / 39
What is Keccak
4 / 39
What is Keccak
4 / 39
What is Keccak
4 / 39
What is Keccak
5 / 39
What is Keccak
6 / 39
What is Keccak
KECCAK-F[b](A) { forall i in 0…nr-1 A = Round[b](A, RC[i]) return A } Round[b](A,RC) { θ step C[x] = A[x,0] xor A[x,1] xor A[x,2] xor A[x,3] xor A[x,4], forall x in 0…4 D[x] = C[x-1] xor rot(C[x+1],1), forall x in 0…4 A[x,y] = A[x,y] xor D[x], forall (x,y) in (0…4,0…4) ρ and π steps B[y,2*x+3*y] = rot(A[x,y], r[x,y]), forall (x,y) in (0…4,0…4) χ step A[x,y] = B[x,y] xor ((not B[x+1,y]) and B[x+2,y]), forall (x,y) in (0…4,0…4) ι step A[0,0] = A[0,0] xor RC return A }
7 / 39
What is Keccak
Capacity [bit] Security level [bit] Cost [cy/B] 128 256 512 1024 1600 64 128 256 160 80 768 512 5 cy/B 10 cy/B 15 cy/B 20 cy/B
224 448 384
8 / 39
What is Keccak
Capacity [bit] Security level [bit] Cost [cy/B] 128 256 512 1024 1600 64 128 256 160 80 768 512 Script-kiddie Long-term Overkill
Light- weight
Overkill / Insane 5 cy/B 10 cy/B 15 cy/B 20 cy/B
224 448 384
8 / 39
What is Keccak
Capacity [bit] Security level [bit] Cost [cy/B] 128 256 512 1024 1600 64 128 256 160 80 768
512 Script-kiddie Long-term Overkill
Light- weight
Overkill / Insane 5 cy/B 10 cy/B 15 cy/B 20 cy/B
8 cy/B 224 448 384
8 / 39
What is Keccak
Capacity [bit] Security level [bit] Cost [cy/B] 128 256 512 1024 1600 64 128 256 160 80 768 sha-256
512 Script-kiddie Long-term Overkill
Light- weight
Overkill / Insane sha-512 5 cy/B 10 cy/B 15 cy/B 20 cy/B
sha-1 md5
8 cy/B 224 448 384
8 / 39
What is Keccak
6 6 Nr of rounds Cost [cy/B] 5 cy/B 10 cy/B 15 cy/B 20 cy/B
2 8 12 14 18 22 24 4 10 16 20 L md5 L sha-1 sha-512 sha-256
9 / 39
What is Keccak
6 6 Nr of rounds Cost [cy/B]
5 cy/B 10 cy/B 15 cy/B 20 cy/B
8 cy/B 2 8 12 14 18 22 24 4 10 16 20 L md5 L sha-1 sha-512 sha-256
9 / 39
What is Keccak
Nr of rounds Cost [cy/B]
Practical attack Twilight zone
5 cy/B 10 cy/B 15 cy/B 20 cy/B
8 cy/B 2 6 8 12 14 18 22 24 4 10 16 20 L md5 L sha-1 sha-512 sha-256 11 No attack
9 / 39
What is Keccak
Nr of rounds Cost [cy/B]
Practical attack Twilight zone
5 cy/B 10 cy/B 15 cy/B 20 cy/B
8 cy/B 2 6 8 12 14 18 22 24 4 10 16 20
L md5 L sha-1 sha-512 sha-256 4 cy/B 11 (single-pass authenticated encryption) No attack
9 / 39
NIST plans
10 / 39
NIST plans
2005 2006 2007 2008 2009 2010 2011 2012 16/06/2009
11 / 39
NIST plans
By Piet Musterd (flickr.com)
12 / 39
NIST plans
By Nicole Doherty (flickr.com)
13 / 39
NIST plans
14 / 39
NIST plans
By Adam Fagen (flickr.com)
15 / 39
NIST plans
16 / 39
NIST plans
17 / 39
NIST plans
18 / 39
NIST plans
19 / 39
NIST plans
20 / 39
The CAESAR competition
21 / 39
The CAESAR competition
“horum omnium fortissimi sunt Belgae”
22 / 39
The CAESAR competition
23 / 39
The CAESAR competition
23 / 39
The CAESAR competition
23 / 39
The CAESAR competition
23 / 39
Keccak code package
24 / 39
Keccak code package
25 / 39
Keccak code package Motivation
26 / 39
Keccak code package Motivation
26 / 39
Keccak code package Motivation
By Magalie L’Abbé (flickr.com)
27 / 39
Keccak code package Inside the package
Keccak-f[200] Keccak-f[1600] Keccak-p[800, 12]
Sponge Duplex
Hashing MAC PRNG
28 / 39
Keccak code package Inside the package
Keccak-f[200] Keccak-f[1600] Keccak-p[800, 12]
Sponge Duplex
Hashing MAC PRNG
28 / 39
Keccak code package Inside the package
Keccak-f[200] Keccak-f[1600] Keccak-p[800, 12]
Sponge Duplex
Hashing MAC PRNG
28 / 39
Keccak code package Inside the package
Keccak-f[200] Keccak-f[1600] Keccak-p[800, 12]
Sponge Duplex
Hashing MAC PRNG
28 / 39
Keccak code package Inside the package
29 / 39
Keccak code package Inside the package
30 / 39
Keccak code package Inside the package
2×Keccak-f[1600] 4×Keccak-p[1600, 12] 8×Keccak-f[1600]
Parallel Sponge Parallel Duplex
Parallelized Hashing Sea and Ocean Keyak
31 / 39
Keccak code package Inside the package
2×Keccak-f[1600] 4×Keccak-p[1600, 12] 8×Keccak-f[1600]
Parallel Sponge Parallel Duplex
Parallelized Hashing Sea and Ocean Keyak
31 / 39
Keccak code package Inside the package
f f f
f f f
f f f
32 / 39
Keccak code package Inside the package
f f f
f f f
f f f
32 / 39
Keccak code package Inside the package
f f f
f f f
f f f
32 / 39
Keccak code package Inside the package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 … … … …
33 / 39
Keccak code package Inside the package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 … … … …
33 / 39
Keccak code package Inside the package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 … … … …
33 / 39
Keccak code package Inside the package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 … … … …
33 / 39
Keccak code package Inside the package
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 … … … …
33 / 39
Keccak code package Current status
Keccak-f[200] Keccak-f[1600] Keccak-p[800, 12]
Primitive
Sponge Duplex
Construction
Hashing MAC PRNG
Mode
34 / 39
Keccak code package Current status
Keccak-f[200] Keccak-f[1600] Keccak-p[800, 12]
Primitive
Sponge Duplex
Construction
Hashing MAC PRNG
Mode
35 / 39
Keccak code package Current status
Keccak-f[200] Keccak-f[1600] Keccak-p[800, 12]
Primitive
Sponge Duplex
Construction
Hashing MAC PRNG
Mode
35 / 39
Keccak code package Current status
2×Keccak-f[1600] 4×Keccak-p[1600, 12] 8×Keccak-f[1600]
Primitive
Parallel Sponge Parallel Duplex
Construction
Parallelized Hashing Sea and Ocean Keyak
Mode
36 / 39
Keccak code package Current status
2×Keccak-f[1600] 4×Keccak-p[1600, 12] 8×Keccak-f[1600]
Primitive
Parallel Sponge Parallel Duplex
Construction
Parallelized Hashing Sea and Ocean Keyak
Mode
37 / 39
Keccak code package Current status
By @Doug88888 (flickr.com)
38 / 39
Questions
39 / 39