Department of Mathematics and Computer Science Alessandro Amadori, Wil Michiels and Peter Roelse WhibOx 2019: White-Box Cryptography and Obfuscation, 18-19/05/2019, Darmstadt
A DFA attack on White-box implementations of AES with external encoding
A DFA attack on White-box implementations of AES with external - - PowerPoint PPT Presentation
A DFA attack on White-box implementations of AES with external encoding WhibOx 2019: White-Box Cryptography and Obfuscation, 18-19/05/2019, Darmstadt Alessandro Amadori , Wil Michiels and Peter Roelse Department of Mathematics and Computer
Department of Mathematics and Computer Science Alessandro Amadori, Wil Michiels and Peter Roelse WhibOx 2019: White-Box Cryptography and Obfuscation, 18-19/05/2019, Darmstadt
A DFA attack on White-box implementations of AES with external encoding
A very quick introduction
2
DFA on AES with Byte External Encodings – by Alessandro Amadori, Wil Michiels and Peter Roelse 3
4
Power Analysis (DPA).
S-1(x0 k0) S-1(X0 k0) = 2 ( S-1(x1 k1) S-1(X1 k1) ) S-1(x2 k2) S-1(X2 k2) = S-1(x1 k1) S-1(X1 k1) S-1(x3 k3) S-1(X3 k3) = 3 ( S-1(x1 k1) S-1(X1 k1) )
5
6
Unboxing the White-box, Sanfelix, Mune, de Haas, BlackHat 2016.
This was the primary reason why we were not able to extract the secret key […]”
Differential Computation Analysis: Hiding your White-Box Designs is Not Enough, Bos, Hubain, Michiels, Teuwen, CHES 2016.
Polynomial-based White-Box AES, Ranea, Preneel, Poster at CHES, 2018*.
*Photo Courtesy by Lorenz Panny
7
8
non-linear byte encodings.
9
Chow et al. Our model
we can change x to any of its possible 256 values
10
ith output byte encoding
bitwise XOR
ith correct output byte
ith faulty output byte
AES S-box
AES MixColumns
11
a quick thing
12
M0 = {p0, p1, …, p255} p0 c0 = (0x02, 0x34, 0x56, …) p1 c1 = (0xf4, 0x34, 0x56, …) … p255 c255 = (0xc6, 0x34, 0x56, …)
13
Step 1: Pre-computation
g0
g2
g3
14
g0
i(.))), we can
derive a non-linear function gi
0(X0) = 2( g1
1(X1) )
X0 = g0 (g0
15
16
g0-1(x0) g0-1(X0) = 2(g1-1(x1) g1-1(X1)) g2-1(x2) g2-1(X2) = g1-1(x1) g1-1(X1) g3-1(x3) g3-1(X3) = 3(g1-1(x1) g1-1(X1))
xi = gi
gi
Using another Theorem of BGE attack, if we have a function Gi Gi
linear function gi
17
G0-1(x0 X0) = 2(G1-1 (x1 X1)) G0-1(x0 X0) = 2-13(G1-1 (x1 X1))
G0(2-23(G0
18
Knowing that :
G2
G3
We construct a dependency among i 0
2
3
19
…, y15) by reverting AES operations (without considering key addition).
S-1(0
S-1(8
S-1(12
20
z0 z1 z15
2-1 (S-1(0
21
22
non-encoded Round 8 S-Box output (w0, w1, … , w15) as in Step 4.
S-1(w0 k0) S-1(W0 k0) = 2(S-1(w13 k13) S-1(W13 k13)) S-1(w10 k10) S-1(W10 k10) = S-1(w13 k13) S-1(W13 k13) S-1(w7 k7) S-1(W7 k7) = 3(S-1(w13 k13) S-1(W13 k13))
23
w0 w1 w15
~231 WB encryptions, 0 operations
~ 220 WB encryption, 218
~ 210 WB encryptions, 220
0 WB encryptions, 12 operations
4 WB encryptions, 219 operations
4’ WB encryptions, ’213 operations
24
25
Any Questions?
26