SCARE of Secret Ciphers with SPN Structures Matthieu Rivain Joint - - PowerPoint PPT Presentation

scare of secret ciphers with spn structures
SMART_READER_LITE
LIVE PREVIEW

SCARE of Secret Ciphers with SPN Structures Matthieu Rivain Joint - - PowerPoint PPT Presentation

SCARE of Secret Ciphers with SPN Structures Matthieu Rivain Joint work with Thomas Roche (ANSSI) ASIACRYPT 2013 December 3rd Outline 1 Introduction 2 Substitution-Permutation Networks 3 Basic SCARE of Classical SPN Structures 4


slide-1
SLIDE 1

SCARE of Secret Ciphers with SPN Structures

Matthieu Rivain Joint work with Thomas Roche (ANSSI)

ASIACRYPT 2013 – December 3rd

slide-2
SLIDE 2

Outline 1 Introduction 2 Substitution-Permutation Networks 3 Basic SCARE of Classical SPN Structures 4 SCARE in the Presence of Noisy Leakage 5 Attack Experiments

slide-3
SLIDE 3

Outline 1 Introduction 2 Substitution-Permutation Networks 3 Basic SCARE of Classical SPN Structures 4 SCARE in the Presence of Noisy Leakage 5 Attack Experiments

slide-4
SLIDE 4

Introduction

SCARE: Side-Channel Analysis for Reverse Engineering

  • private code recovery
  • secret crypto design recovery
slide-5
SLIDE 5

Introduction

SCARE: Side-Channel Analysis for Reverse Engineering

  • private code recovery
  • secret crypto design recovery ⇐ This paper
slide-6
SLIDE 6

Introduction

SCARE: Side-Channel Analysis for Reverse Engineering

  • private code recovery
  • secret crypto design recovery ⇐ This paper
  • usual in mobile SIM / pay-TV cards
slide-7
SLIDE 7

Previous works

[Novak. ACNS 2003]

  • secret instance of the GSM

A3/A8 algorithm

  • side-channel assumption:

detection of colliding s-boxes

  • recovery of one secret s-box

[Clavier. ePrint 2004/ICISS 2007]

  • recovery of the two s-boxes and

the secret key

slide-8
SLIDE 8

Limitations

  • Target: specific cipher structure
  • Assumption: idealized leakage model

⇒ perfect collision detection

Our work

  • Consider a generic class of ciphers:

Substitution-Permutation Networks (SPN)

  • Relax the idealized leakage assumption

◮ consider noisy leakages ◮ experiments in a practical leakage model

slide-9
SLIDE 9

Further works

[Daudigny et al. ACNS 2005] (DES) [R´ eal et al. CARDIS 2008] (hardware Feistel) [Guilley et al. LATINCRYPT 2010] (stream ciphers) [Clavier et al. INDOCRYPT 2013] (modified AES)

slide-10
SLIDE 10

Outline 1 Introduction 2 Substitution-Permutation Networks 3 Basic SCARE of Classical SPN Structures 4 SCARE in the Presence of Noisy Leakage 5 Attack Experiments

slide-11
SLIDE 11

Substitution-Permutation Networks

ρ ρ ρ k1 k2 kr p c ...

We consider two types of round functions:

  • Classical SPN structures
  • Feistel structures
slide-12
SLIDE 12

Substitution-Permutation Networks

ρ ρ ρ k1 k2 kr p c ...

We consider two types of round functions:

  • Classical SPN structures ⇐ This talk
  • Feistel structures
slide-13
SLIDE 13

Classical SPN Structure

S S S

λ

ki

  • State: n × m bits
  • n s-box computations
  • m-bits s-box inputs

λ :    

x1 x2 . . . xn

   →    

a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n

    ·    

x1 x2 . . . xn

   

with ai,j ∈ F2m

slide-14
SLIDE 14

Outline 1 Introduction 2 Substitution-Permutation Networks 3 Basic SCARE of Classical SPN Structures 4 SCARE in the Presence of Noisy Leakage 5 Attack Experiments

slide-15
SLIDE 15

Attacker Model

Basic assumption: Colliding s-box computations can be detected from the side-channel leakage. Specifically, we assume that the attacker is able to (i) identify the s-box computations in the side-channel leakage trace and extract the leakage corresponding to each s-box computation, (ii) decide whether two s-box computations y1 ← S(x1) and y2 ← S(x2) are such that x1 = x2 or not from their respective leakages.

slide-16
SLIDE 16

Equivalent Representations

One cipher has several representations

  • 1. Change the s-box: S′(x) = S(x ⊕ δ)

and the round keys: k′

i = (ki,1 ⊕ δ, ki,2 ⊕ δ, . . . , ki,n ⊕ δ)

slide-17
SLIDE 17

Equivalent Representations

One cipher has several representations

  • 1. Change the s-box: S′(x) = S(x ⊕ δ)

and the round keys: k′

i = (ki,1 ⊕ δ, ki,2 ⊕ δ, . . . , ki,n ⊕ δ)

  • 2. Change the s-box: S′(x) = α · S(x)

and the matrix coefficients: a′

i,j = ai,j α

slide-18
SLIDE 18

Equivalent Representations

One cipher has several representations

  • 1. Change the s-box: S′(x) = S(x ⊕ δ)

and the round keys: k′

i = (ki,1 ⊕ δ, ki,2 ⊕ δ, . . . , ki,n ⊕ δ)

  • 2. Change the s-box: S′(x) = α · S(x)

and the matrix coefficients: a′

i,j = ai,j α

The attack can recover the cipher up to equivalent representations

slide-19
SLIDE 19

Equivalent Representations

One cipher has several representations

  • 1. Change the s-box: S′(x) = S(x ⊕ δ)

and the round keys: k′

i = (ki,1 ⊕ δ, ki,2 ⊕ δ, . . . , ki,n ⊕ δ)

  • 2. Change the s-box: S′(x) = α · S(x)

and the matrix coefficients: a′

i,j = ai,j α

The attack can recover the cipher up to equivalent representations We fix a representation by setting k1,1 = 0 and a1,1 = 1

slide-20
SLIDE 20

Stage 1: Recovering k1

S S S S S S

k1 p1 p2 pn p0

1

p0

2

p0

n

k1

slide-21
SLIDE 21

Stage 1: Recovering k1

S S S S S S

k1 p1 p2 pn p0

1

p0

2

p0

n

k1

collision

slide-22
SLIDE 22

Stage 1: Recovering k1

S S S S S S

k1 p1 p2 pn p0

1

p0

2

p0

n

k1

collision

p1 ⊕ k1,1 = p′

2 ⊕ k1,2

slide-23
SLIDE 23

Stage 1: Recovering k1

S S S S S S

k1 p1 p2 pn p0

1

p0

2

p0

n

k1

collision

p1 ⊕ k1,1 = p′

2 ⊕ k1,2

slide-24
SLIDE 24

Stage 1: Recovering k1

S S S S S S

k1 p1 p2 pn p0

1

p0

2

p0

n

k1

collision

p1 ⊕ k1,1 = p′

2 ⊕ k1,2

⇒ k1,2 = p1 ⊕ p′

2 ⊕ k1,1

slide-25
SLIDE 25

Stage 1: Recovering k1

S S S S S S

k1 p1 p2 pn p0

1

p0

2

p0

n

k1

collision

p1 ⊕ k1,1 = p′

2 ⊕ k1,2

⇒ k1,2 = p1 ⊕ p′

2 ⊕ k1,1

slide-26
SLIDE 26

Stage 1: Recovering k1

S S S S S S

k1 p1 p2 pn p0

1

p0

2

p0

n

k1

collision

p1 ⊕ k1,1 = p′

2 ⊕ k1,2

⇒ k1,2 = p1 ⊕ p′

2 ⊕ k1,1

p2 ⊕ k1,2 = p′

n ⊕ k1,n

slide-27
SLIDE 27

Stage 1: Recovering k1

S S S S S S

k1 p1 p2 pn p0

1

p0

2

p0

n

k1

collision

p1 ⊕ k1,1 = p′

2 ⊕ k1,2

⇒ k1,2 = p1 ⊕ p′

2 ⊕ k1,1

p2 ⊕ k1,2 = p′

n ⊕ k1,n

slide-28
SLIDE 28

Stage 1: Recovering k1

S S S S S S

k1 p1 p2 pn p0

1

p0

2

p0

n

k1

collision

p1 ⊕ k1,1 = p′

2 ⊕ k1,2

⇒ k1,2 = p1 ⊕ p′

2 ⊕ k1,1

p2 ⊕ k1,2 = p′

n ⊕ k1,n

⇒ k1,n = p1 ⊕ p′

n ⊕ k1,2

and so on ...

slide-29
SLIDE 29

Stage 2: Recovering λ, S and k2

S

leakage basis

slide-30
SLIDE 30

Stage 2: Recovering λ, S and k2

S S

1 leakage basis

slide-31
SLIDE 31

Stage 2: Recovering λ, S and k2

S S S S

1 2 2m − 1 leakage basis

slide-32
SLIDE 32

Stage 2: Recovering λ, S and k2

S S S S

1 2 2m − 1

S S S

w1 w2 wn k2 leakage basis 2nd round

slide-33
SLIDE 33

Stage 2: Recovering λ, S and k2

S S S S

1 2 2m − 1

S S S

w1 w2 wn k2 leakage basis 2nd round

collision

slide-34
SLIDE 34

Stage 2: Recovering λ, S and k2

S S S S

1 2 2m − 1

S S S

w1 w2 wn k2 leakage basis 2nd round

collision

slide-35
SLIDE 35

Stage 2: Recovering λ, S and k2

S S S S

1 2 2m − 1

S S S

w1 w2 wn k2 leakage basis 2nd round

collision

slide-36
SLIDE 36

Stage 2: Recovering λ, S and k2

S S S S

1 2 2m − 1

S S S

w1 w2 wn k2 leakage basis 2nd round

slide-37
SLIDE 37

Stage 2: Recovering λ, S and k2

S S S S

1 2 2m − 1

S S S

w1 w2 wn k2 leakage basis 2nd round

collision

w1 ⊕ k2,1 = β1

slide-38
SLIDE 38

Stage 2: Recovering λ, S and k2

S S S S

1 2 2m − 1

S S S

w1 w2 wn k2 leakage basis 2nd round

collision

w1 ⊕ k2,1 = β1 w2 ⊕ k2,2 = β2

slide-39
SLIDE 39

Stage 2: Recovering λ, S and k2

S S S S

1 2 2m − 1

S S S

w1 w2 wn k2 leakage basis 2nd round

collision

w1 ⊕ k2,1 = β1 w2 ⊕ k2,2 = β2 . . . wn ⊕ k2,n = βn

slide-40
SLIDE 40

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n     ⊕      β1 β2 . . . βn     

slide-41
SLIDE 41

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n     ⊕      β1 β2 . . . βn      =      a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n     ·      S(p1 ⊕ k1,1) S(p2 ⊕ k1,2) . . . S(pn ⊕ k1,n)     

slide-42
SLIDE 42

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n     ⊕      β1 β2 . . . βn      =      a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n     ·      S(p1 ⊕ k1,1) S(p2 ⊕ k1,2) . . . S(pn ⊕ k1,n)     

slide-43
SLIDE 43

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n      ⊕      β1 β2 . . . βn      =      a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n      ·      S(j1) S(j2) . . . S(jn)      where jt = pt ⊕ k1,t

slide-44
SLIDE 44

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n      ⊕      β1 β2 . . . βn      =      a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n      ·      xj1 xj2 . . . xjn      where jt = pt ⊕ k1,t and xj = S(j).

slide-45
SLIDE 45

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n      ⊕      β1 β2 . . . βn      =      a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n      ·      xj1 xj2 . . . xjn      where jt = pt ⊕ k1,t and xj = S(j). We get equations of the form: k2,i ⊕ βi = ai,1 · xj1 ⊕ ai,2 · xj2 ⊕ · · · ⊕ ai,n · xjn

slide-46
SLIDE 46

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n      ⊕      β1 β2 . . . βn      =      a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n      ·      xj1 xj2 . . . xjn      where jt = pt ⊕ k1,t and xj = S(j). We get quadratic equations of the form: k2,i ⊕ βi = ai,1 · xj1 ⊕ ai,2 · xj2 ⊕ · · · ⊕ ai,n · xjn

slide-47
SLIDE 47

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n      ⊕      β1 β2 . . . βn      =      a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n      ·      xj1 xj2 . . . xjn      where jt = pt ⊕ k1,t and xj = S(j). We get quadratic equations of the form: k2,i ⊕ βi = ai,1 · xj1 ⊕ ai,2 · xj2 ⊕ · · · ⊕ ai,n · xjn Using linearization, we get a system with 2m · n2 + n unknowns

slide-48
SLIDE 48

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n      ⊕      β1 β2 . . . βn      =      a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n      ·      xj1 xj2 . . . xjn      where jt = pt ⊕ k1,t and xj = S(j). We get quadratic equations of the form: k2,i ⊕ βi = ai,1 · xj1 ⊕ ai,2 · xj2 ⊕ · · · ⊕ ai,n · xjn Using linearization, we get a system with 2m · n2 + n unknowns ⇒ solvable with 2m · n + 1 encryptions

slide-49
SLIDE 49

Stage 2: Recovering λ, S and k2

We have      w1 w2 . . . wn      =      k2,1 k2,2 . . . k2,n      ⊕      β1 β2 . . . βn      =      a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n      ·      xj1 xj2 . . . xjn      where jt = pt ⊕ k1,t and xj = S(j). We get quadratic equations of the form: k2,i ⊕ βi = ai,1 · xj1 ⊕ ai,2 · xj2 ⊕ · · · ⊕ ai,n · xjn Using linearization, we get a system with 2m · n2 + n unknowns ⇒ solvable with 2m · n + 1 encryptions ⇒ solvable with 4097 encryptions for m = 8, n = 16

slide-50
SLIDE 50

A better way

     a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n     

  • A

·      xj1 xj2 . . . xjn     

  • x

=      k2,1 k2,2 . . . k2,n     

  • k2

⊕      β1 β2 . . . βn     

  • β

A · x =

  • k2

  • β
slide-51
SLIDE 51

A better way

     a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n     

  • A

·      xj1 xj2 . . . xjn     

  • x

=      k2,1 k2,2 . . . k2,n     

  • k2

⊕      β1 β2 . . . βn     

  • β

A · x =

  • k2

  • β
  • x

= A−1 · k2 ⊕ A−1 · β

slide-52
SLIDE 52

A better way

     a1,1 a1,2 · · · a1,n a2,1 a2,2 · · · a2,n . . . . . . ... . . . an,1 an,2 · · · an,n     

  • A

·      xj1 xj2 . . . xjn     

  • x

=      k2,1 k2,2 . . . k2,n     

  • k2

⊕      β1 β2 . . . βn     

  • β

A · x =

  • k2

  • β
  • x

= A−1 · k2

  • k′

2

⊕ A−1 · β

slide-53
SLIDE 53

A better way

     xj1 xj2 . . . xjn      =      k′

2,1

k′

2,2

. . . k′

2,n

     ⊕      a′

1,1

a′

1,2

· · · a′

1,n

a′

2,1

a′

2,2

· · · a′

2,n

. . . . . . ... . . . a′

n,1

a′

n,2

· · · a′

n,n

     ·      β1 β2 . . . βn     

slide-54
SLIDE 54

A better way

     xj1 xj2 . . . xjn      =      k′

2,1

k′

2,2

. . . k′

2,n

     ⊕      a′

1,1

a′

1,2

· · · a′

1,n

a′

2,1

a′

2,2

· · · a′

2,n

. . . . . . ... . . . a′

n,1

a′

n,2

· · · a′

n,n

     ·      β1 β2 . . . βn      We get equations of the form: xji = k′

2,i ⊕ a′ i,1 · β1 ⊕ a′ i,2 · β2 ⊕ · · · ⊕ a′ i,n · βn

slide-55
SLIDE 55

A better way

     xj1 xj2 . . . xjn      =      k′

2,1

k′

2,2

. . . k′

2,n

     ⊕      a′

1,1

a′

1,2

· · · a′

1,n

a′

2,1

a′

2,2

· · · a′

2,n

. . . . . . ... . . . a′

n,1

a′

n,2

· · · a′

n,n

     ·      β1 β2 . . . βn      We get linear equations of the form: xji = k′

2,i ⊕ a′ i,1 · β1 ⊕ a′ i,2 · β2 ⊕ · · · ⊕ a′ i,n · βn

slide-56
SLIDE 56

A better way

     xj1 xj2 . . . xjn      =      k′

2,1

k′

2,2

. . . k′

2,n

     ⊕      a′

1,1

a′

1,2

· · · a′

1,n

a′

2,1

a′

2,2

· · · a′

2,n

. . . . . . ... . . . a′

n,1

a′

n,2

· · · a′

n,n

     ·      β1 β2 . . . βn      We get linear equations of the form: xji = k′

2,i ⊕ a′ i,1 · β1 ⊕ a′ i,2 · β2 ⊕ · · · ⊕ a′ i,n · βn

We get a linear system with 2m + n2 + n unknowns

slide-57
SLIDE 57

A better way

     xj1 xj2 . . . xjn      =      k′

2,1

k′

2,2

. . . k′

2,n

     ⊕      a′

1,1

a′

1,2

· · · a′

1,n

a′

2,1

a′

2,2

· · · a′

2,n

. . . . . . ... . . . a′

n,1

a′

n,2

· · · a′

n,n

     ·      β1 β2 . . . βn      We get linear equations of the form: xji = k′

2,i ⊕ a′ i,1 · β1 ⊕ a′ i,2 · β2 ⊕ · · · ⊕ a′ i,n · βn

We get a linear system with 2m + n2 + n unknowns ⇒ solvable with 2m/n + n + 1 encryptions

slide-58
SLIDE 58

A better way

     xj1 xj2 . . . xjn      =      k′

2,1

k′

2,2

. . . k′

2,n

     ⊕      a′

1,1

a′

1,2

· · · a′

1,n

a′

2,1

a′

2,2

· · · a′

2,n

. . . . . . ... . . . a′

n,1

a′

n,2

· · · a′

n,n

     ·      β1 β2 . . . βn      We get linear equations of the form: xji = k′

2,i ⊕ a′ i,1 · β1 ⊕ a′ i,2 · β2 ⊕ · · · ⊕ a′ i,n · βn

We get a linear system with 2m + n2 + n unknowns ⇒ solvable with 2m/n + n + 1 encryptions ⇒ solvable with 33 encryptions for m = 8, n = 16

slide-59
SLIDE 59

And finally

Stage 3: recovering k3, k4, . . . , kr ⇒ similar as stage 1

slide-60
SLIDE 60

Outline 1 Introduction 2 Substitution-Permutation Networks 3 Basic SCARE of Classical SPN Structures 4 SCARE in the Presence of Noisy Leakage 5 Attack Experiments

slide-61
SLIDE 61

SCARE in the Presence of Noisy Leakage

Gaussian noise assumption:

S

β

`β ∼ N(mβ, Σβ)

slide-62
SLIDE 62

SCARE in the Presence of Noisy Leakage

Gaussian noise assumption:

S

β

`β ∼ N(mβ, Σβ)

Stage 1 (Recovering k1): usual scenario of linear collision attacks [G´ erard-Standaert. CHES 2012]

slide-63
SLIDE 63

SCARE in the Presence of Noisy Leakage

Gaussian noise assumption:

S

β

`β ∼ N(mβ, Σβ)

Stage 1 (Recovering k1): usual scenario of linear collision attacks [G´ erard-Standaert. CHES 2012] Stage 2 (Recovering λ, S and k2) composed of 4 steps:

  • building leakage templates
  • collecting equations
  • solving a subsystem (Stage 2.1)
  • recovering remaining unknowns (Stage 2.2)
slide-64
SLIDE 64

Building leakage templates

Construct a template basis: B = {( mβ, Σβ)β | β ∈ F2m} , with

mβ : sample mean

Σβ : sample covariance matrix

slide-65
SLIDE 65

Collecting equations

We collect several groups of equations x = k′

2 ⊕ A−1 ·

β Noisy leakage ⇒ we cannot determine β with a 100% confidence ⊲ we use averaging (each encryption N times) ⊲ maximum likelihood approach based on B Problem: we cannot tolerate one single wrong βi Success probability:

  • for one s-box: p
  • for one encryption: pn
  • for the attack: (pn)t

◮ where t is the number of required encryptions

slide-66
SLIDE 66

Solving a subsytem

Increasing the success probability:

  • reduce the number t
  • subsystem only involving x0, x1, . . . , xs−1
  • chosen plaintext attack

Obtained system:

  • n2 + n + s − 2 unknowns
  • taking s ≤ n + 2

◮ we get at most n2 + 2n unknowns ◮ we need t = n + 2

  • e.g. t = 18 instead of t = 33 for n = 16 and m = 8
slide-67
SLIDE 67

Recovering remaining unknowns

Maximum likelihood approach for

  • remaining s-box output xs, xs+1, . . . , x2m−1 (Stage 2.2)
  • remaining round keys k3, k4, . . . , kr (Stage 3)
slide-68
SLIDE 68

Outline 1 Introduction 2 Substitution-Permutation Networks 3 Basic SCARE of Classical SPN Structures 4 SCARE in the Presence of Noisy Leakage 5 Attack Experiments

slide-69
SLIDE 69

Attack Experiments

Attack simulations using a practical leakage model

  • s-box computation on an AVR chip (ATMega 32A, 8-bit)
  • profiled electromagnetic leakage
  • Gaussian noise assumption
  • 3 leakage points depending on the s-box input
  • 3 leakage points depending on the s-box output
slide-70
SLIDE 70

Attack Experiments

Two different settings:

  • (128,8)-setting:

◮ 128-bit message block ◮ 8-bit s-box (m = 8 ⇒ n = 16) ◮ e.g. AES block cipher

  • (64,4)-setting:

◮ 64-bit message block ◮ 4-bit s-box (m = 4 ⇒ n = 16) ◮ e.g. LED and PRESENT lightweight block ciphers

slide-71
SLIDE 71

Attack results

Stage 1: 100% success rate with

  • a few hundred traces for the (64,4)-setting
  • a few thousand traces for the (128,8)-setting
slide-72
SLIDE 72

Attack results

Stage 1: 100% success rate with

  • a few hundred traces for the (64,4)-setting
  • a few thousand traces for the (128,8)-setting

Stage 2.1: bottleneck of the attack SR w.r.t. #encryptions (for 1, 2, 28, 232 system solving trials)

11 12 13 14 0.2 0.4 0.6 0.8 1.0

(64,4)-setting

13 14 15 16 17 18 0.2 0.4 0.6 0.8 1.0

(128,8)-setting

slide-73
SLIDE 73

Attack results

Stage 1: 100% success rate with

  • a few hundred traces for the (64,4)-setting
  • a few thousand traces for the (128,8)-setting

Stage 2.1: bottleneck of the attack SR w.r.t. #encryptions (for 1, 2, 28, 232 system solving trials)

11 12 13 14 0.2 0.4 0.6 0.8 1.0

(64,4)-setting

13 14 15 16 17 18 0.2 0.4 0.6 0.8 1.0

(128,8)-setting Stages 2.2, 3: a few dozens/hundreds of traces.

slide-74
SLIDE 74

The end Questions?

slide-75
SLIDE 75

Profiled leakage parameters

50 100 150 200 250 6 4 2 2 4 6

1st point mean w.r.t input

50 100 150 200 250 3 2 1 1 2

2nd point mean w.r.t input

slide-76
SLIDE 76

Profiled leakage parameters

50 100 150 200 250 4 3 2 1 1 2 3

3rd point mean w.r.t input

50 100 150 200 250 4 2 2 4

4th point mean w.r.t output

slide-77
SLIDE 77

Profiled leakage parameters

50 100 150 200 250 4 3 2 1 1 2 3

5th point mean w.r.t output

50 100 150 200 250 4 2 2 4

6th point mean w.r.t output

slide-78
SLIDE 78

Profiled leakage parameters

Σ =         36.7 −13.7 − 1.8 2.9 − 2.2 − 0.7 −13.7 30.7 0.6 0.7 − 0.5 − 0.1 −1.8 0.6 27.5 − 0.9 0.7 0.4 2.9 0.7 − 0.9 38.7 −27.0 − 5.4 −2.2 − 0.5 0.7 −27.0 37.2 3.9 −0.7 − 0.1 0.4 − 5.4 3.9 26.2        