Compiler Assisted Masking
- A. Moss, E. Oswald, D. Page and M. Tunstall
Compiler Assisted Masking A. Moss, E. Oswald, D. Page and M. - - PowerPoint PPT Presentation
Compiler Assisted Masking A. Moss, E. Oswald, D. Page and M. Tunstall School of Computing, Blekinge Institute of Technology, Karlskrona, Sweden. andrew.moss@bth.se Department of Computer Science, University of Bristol, Merchant Venturers
◮ function is preserved, i.e., for all input x, S′(x) ≡ S(x), ◮ quality is improved, i.e., for some metric M, M(S′) > M(S).
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 2 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 3 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 4 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 5 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 6 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 6 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 6 of 18
◮ Case #1: low-security
◮ Case #2: mixed-security
◮ Case #3: high-security
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 7 of 18
◮ Error #1: a weak map wrt.
◮ Error #2: a weak store wrt.
◮ Error #3: a mask collision wrt.
◮ Error #4: a mask revelation wrt.
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 8 of 18
1 typedef byte :=
2 typedef col
3 4 def
5 def xtime : map[ byte -> byte ]; 6 7 def mix( x : col { H<a> }, k : col ) : col : { H<b> } { 8 9
10 11
12
13
14 15
16
17
18
19
20
21
22 23
24 }
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 9 of 18
256 L × Z4 256 H:a → Z4 256 H:b
L → Z256 L
L → Z256 L
H:a
H:a
H:a
H:a
L
L
L
L
L
L
L
L
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
256 L × Z4 256 H:a → Z4 256 H:b
L → Z256 L
L → Z256 L
H:a
H:a
H:a
H:a
L
L
L
L
L
L
L
L
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a
256 L × Z4 256 H:a → Z4 256 H:b
L → Z256 L
L → Z256 L
H:a
H:a
H:a
H:a
L
L
L
L
L
L
L
L
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a
256 L × Z4 256 H:a → Z4 256 H:b
L → Z256 L
L → Z256 L
H:a
H:a
H:a
H:a
L
L
L
L
L
L
L
L
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
L → Z256 L
H:a
H:a
H:a
H:a
L
L
L
L
L
L
L
L
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
L → Z256 L
H:a
H:a
H:a
H:a
L
L
L
L
L
L
L
L
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
L → Z256 L
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
L → Z256 L
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:g∗ Z256H:g∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
H:d∗ → Z256 H:g∗
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:g∗ Z256H:g∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
H:d∗ → Z256 H:g∗
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:g∗ Z256H:g∗
Z256H:h,g∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
H:d∗ → Z256 H:g∗
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:g∗ Z256H:g∗
Z256H:h,g∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
H:d∗ → Z256 H:g∗
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:g∗ Z256H:g∗
Z256H:h,g∗ Z256H:h,g∗,d∗ Z256H:h,g∗ Z256H:h,g∗,d∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
H:d∗ → Z256 H:g∗
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:g∗ Z256H:g∗
Z256H:h,g∗ Z256H:h,g∗,d∗ Z256H:h,g∗ Z256H:h,g∗,d∗
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
H:d∗ → Z256 H:g∗
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:b Z256H:b
Z256H:h,b Z256H:h,b,d∗ Z256H:h,b Z256H:b
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
H:d∗ → Z256 H:b
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
Z256H:a Z256H:a Z256H:a Z256H:a Z256L Z256L Z256L Z256L Z256H:a Z256H:a Z256H:a Z256H:a Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:d∗ Z256H:b Z256H:b
Z256H:h,b Z256H:h,b,d∗ Z256H:h,b Z256H:b
256 L × Z4 256 H:a → Z4 256 H:b
H:a → Z256 H:d∗
H:d∗ → Z256 H:b
H:a
H:a
H:a
H:a
L
L
L
L
H:d∗
H:d∗
H:d∗
H:d∗
H:b
H:b
H:b
H:b Dan Page page@cs.bris.ac.uk CHES 2012 Slide 10 of 18
◮ Option #1: formal verification (cf. Briais at al. [2]), to check if
◮ Option #2: user studies! ◮ Option #3: experimental:
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 11 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 12 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 13 of 18
◮ satisfies most initial goals, but ◮ implies some unattractive residual requirements.
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 14 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 15 of 18
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 16 of 18
◮ solution #1: delegate to programmer so ki is
◮ solution #2: delegate to programmer to guide
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 17 of 18
y ← x if f(y) if g(y) y ← y ⊕ p y ← y ⊕ q z ← y
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 18 of 18
y1 ← x1 y2 ← φ(y1, y5) if f(y2) if g(y2) y3 ← y2 ⊕ p1 y4 ← y2 ⊕ q1 y5 ← φ(y3, y4) z ← y2
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 18 of 18
y1 ← x1 y2 ← y1 if f(y2) if g(y2) y3 ← y2 ⊕ p1 y5 ← y3 y4 ← y2 ⊕ q1 y5 ← y4 y2 ← y5 z ← y2
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 18 of 18
y ← x if f(y) if g(y) y ← y ⊕ p y ← y ⊕ q z ← y
Dan Page page@cs.bris.ac.uk CHES 2012 Slide 18 of 18