Side-channel Masking with Pseudo-Random Generator Eurocrypt 2020 - - PowerPoint PPT Presentation

side channel masking with pseudo random generator
SMART_READER_LITE
LIVE PREVIEW

Side-channel Masking with Pseudo-Random Generator Eurocrypt 2020 - - PowerPoint PPT Presentation

Side-channel Masking with Pseudo-Random Generator Eurocrypt 2020 Jean-Sbastien Coron Aurlien Greuet Rina Zeitoun University of Luxembourg & IDEMIA 11/05/2020 Jean-Sbastien Coron, Aurlien Greuet, Rina Zeitoun Side-channel Masking


slide-1
SLIDE 1

Side-channel Masking with Pseudo-Random Generator

Eurocrypt 2020 Jean-Sébastien Coron Aurélien Greuet Rina Zeitoun

University of Luxembourg & IDEMIA 11/05/2020

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-2
SLIDE 2

Motivation: side-channel attacks

High-order masking : randomness cost Number of randoms is high: can become a bottleneck Our goal: minimize number of calls to TRNG and remain secure in the probing model

t = 2 t = 3 t = 4 t = 5 t = 6

Rivain-Prouff [RP10] 2880 5760 9600 14400 20160 Belaïd et. al [BBP16] 2560 5120 8000 13120 18240 Faust et. al [FPS17] 1415 2530 6082 6699 20712 This paper 48 108 192 300 432

Table: number of bytes of true randomness to get t-th order security for AES.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-3
SLIDE 3

Motivation: side-channel attacks

High-order masking : randomness cost Number of randoms is high: can become a bottleneck Our goal: minimize number of calls to TRNG and remain secure in the probing model

t = 2 t = 3 t = 4 t = 5 t = 6

Rivain-Prouff [RP10] 2880 5760 9600 14400 20160 Belaïd et. al [BBP16] 2560 5120 8000 13120 18240 Faust et. al [FPS17] 1415 2530 6082 6699 20712 This paper 48 108 192 300 432

Table: number of bytes of true randomness to get t-th order security for AES.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-4
SLIDE 4

Side-Channel attacks

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-5
SLIDE 5

Differential Power Analysis [KJJ99]

Average trace Differential trace Group by predicted SBox output bit

111 000

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-6
SLIDE 6

Countermeasure

Masking countermeasure Let x be a sensitive variable: Generate a random r (different for each execution) Mask x using r :

x′ = x ⊕ r

Manipulate x′ (instead of x) and r independently

r is random ⇒ x′ is random ⇒

no information on x leaks

True only in case of one leakage point

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-7
SLIDE 7

Countermeasure

Masking countermeasure Let x be a sensitive variable: Generate a random r (different for each execution) Mask x using r :

x′ = x ⊕ r

Manipulate x′ (instead of x) and r independently

r is random ⇒ x′ is random ⇒

no information on x leaks

True only in case of one leakage point

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-8
SLIDE 8

Countermeasure

Masking countermeasure Let x be a sensitive variable: Generate a random r (different for each execution) Mask x using r :

x′ = x ⊕ r

Manipulate x′ (instead of x) and r independently

r is random ⇒ x′ is random ⇒

no information on x leaks

True only in case of one leakage point

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-9
SLIDE 9

Differential Power Analysis (second-order)

Manipulation of x′ = x ⊕ r

E(x′) E(r) f(E(x′), E(r)) correlated with x = x′ ⊕ r

Second-order attack

requires more curves but can be practical

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-10
SLIDE 10

Solution: Higher-Order Boolean Masking

Basic principle Each sensitive variable x is shared into n variables:

x = x1 ⊕ x2 ⊕ · · · ⊕ xn

Generate n − 1 random variables x1, x2, . . ., xn−1 Initially let xn = x ⊕ x1 ⊕ x2 ⊕ · · · ⊕ xn−1 Security against DPA attack of order n − 1 Any subset of n − 1 shares is uniformly and independently distributed

⇒ If we probe at most n − 1 shares xi, we learn nothing about x

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-11
SLIDE 11

Solution: Higher-Order Boolean Masking

Basic principle Each sensitive variable x is shared into n variables:

x = x1 ⊕ x2 ⊕ · · · ⊕ xn

Generate n − 1 random variables x1, x2, . . ., xn−1 Initially let xn = x ⊕ x1 ⊕ x2 ⊕ · · · ⊕ xn−1 Security against DPA attack of order n − 1 Any subset of n − 1 shares is uniformly and independently distributed

⇒ If we probe at most n − 1 shares xi, we learn nothing about x

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-12
SLIDE 12

ISW Security Model

Proof of security in the Probing Model [ISW03]: m (x1, x2, . . ., xn) c

Block cipher

t probes Sim

Show that any t < n probes can be perfectly simulated from at most n − 1 of the xi’s. Those n − 1 shares xi are uniformly and independently distributed.

⇒ The adversary learns nothing

from the t probes

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-13
SLIDE 13

ISW Security Model

Proof of security in the Probing Model [ISW03]: m (x1, x2, . . ., xn) c

Block cipher

t probes Sim

Show that any t < n probes can be perfectly simulated from at most n − 1 of the xi’s. Those n − 1 shares xi are uniformly and independently distributed.

⇒ The adversary learns nothing

from the t probes

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-14
SLIDE 14

Linear Operations

Computation of a ⊕ b Inputs: (ai)i and (bi)i such that a1 ⊕ a2 ⊕ · · · ⊕ an = a b1 ⊕ b2 ⊕ · · · ⊕ bn = b Output: (ci)i such that (a1 ⊕ b1) ⊕ (a2 ⊕ b2) ⊕ · · · ⊕ (an ⊕ bn) = a ⊕ b ⇒ c1 ⊕ c2 ⊕ · · · ⊕ cn = a ⊕ b Computation of a2 in F2k Inputs: (ai)i such that a1 ⊕ a2 ⊕ · · · ⊕ an = a Output: (ci)i such that (a2

1) ⊕ (a2 2) ⊕ · · · ⊕ (a2 n) = a2

⇒ c1 ⊕ c2 ⊕ · · · ⊕ cn = a2

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-15
SLIDE 15

Linear Operations

Computation of a ⊕ b Inputs: (ai)i and (bi)i such that a1 ⊕ a2 ⊕ · · · ⊕ an = a b1 ⊕ b2 ⊕ · · · ⊕ bn = b Output: (ci)i such that (a1 ⊕ b1) ⊕ (a2 ⊕ b2) ⊕ · · · ⊕ (an ⊕ bn) = a ⊕ b ⇒ c1 ⊕ c2 ⊕ · · · ⊕ cn = a ⊕ b Computation of a2 in F2k Inputs: (ai)i such that a1 ⊕ a2 ⊕ · · · ⊕ an = a Output: (ci)i such that (a2

1) ⊕ (a2 2) ⊕ · · · ⊕ (a2 n) = a2

⇒ c1 ⊕ c2 ⊕ · · · ⊕ cn = a2

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-16
SLIDE 16

Secure Multiplication in High-Order Masking Schemes

Secure Computation of a × b Inputs: (ai)i and (bi)i such that a1 ⊕ a2 ⊕ · · · ⊕ an = a b1 ⊕ b2 ⊕ · · · ⊕ bn = b Output: (ci)i such that c1 ⊕ c2 ⊕ c2 ⊕ · · · ⊕ cn = a × b Ishai-Sahai-Wagner private circuit [ISW03] Secure against t probes for n = 2t + 1 shares. Number of operations: O(t2) Requires O(t2) randoms per multiplication.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-17
SLIDE 17

Secure Multiplication in High-Order Masking Schemes

Secure Computation of a × b Inputs: (ai)i and (bi)i such that a1 ⊕ a2 ⊕ · · · ⊕ an = a b1 ⊕ b2 ⊕ · · · ⊕ bn = b Output: (ci)i such that c1 ⊕ c2 ⊕ c2 ⊕ · · · ⊕ cn = a × b Ishai-Sahai-Wagner private circuit [ISW03] Secure against t probes for n = 2t + 1 shares. Number of operations: O(t2) Requires O(t2) randoms per multiplication.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-18
SLIDE 18

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-19
SLIDE 19

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

a1b2 a1b3 a2b1 a2b2 a2b3 a3b1 a3b2 a3b3

  • ☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-20
SLIDE 20

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

a1b2 a1b3 a2b1 a2b2 a2b3 a3b1 a3b2 a3b3

  • → c1

→ c2 → c3

☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-21
SLIDE 21

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

a1b2 a1b3 a2b1 a2b2 a2b3 a3b1 a3b2 a3b3

  • → c1

→ c2 → c3

☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-22
SLIDE 22

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

a1b2 a1b3 a2b2 a2b3 a3b3

  • a2b1

a3b1 a3b2

  • ☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-23
SLIDE 23

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a0b1

a1b2 a1b3 a2b2 a2b3 a3b3

  • a2b1

a3b1 a3b2

  • ☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-24
SLIDE 24

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

a1b2 ⊕ a2b1 a1b3 ⊕ a3b1 a2b2 a2b3 ⊕ a3b2 a3b3

  • ☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-25
SLIDE 25

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

a1b2 ⊕ a2b1 a1b3 ⊕ a3b1 a2b2 a2b3 ⊕ a3b2 a3b3

  • ☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-26
SLIDE 26

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

a1b2 ⊕ a2b1 a1b3 ⊕ a3b1 a2b2 a2b3 ⊕ a3b2 a3b3

  • r1,2

r1,3 r2,3

  • ☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-27
SLIDE 27

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

a1b2 ⊕ a2b1 a1b3 ⊕ a3b1 a2b2 a2b3 ⊕ a3b2 a3b3

  • r1,2

r1,3 r1,2 r2,3 r1,3 r2,3

  • ☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-28
SLIDE 28

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

(r1,2 ⊕ a1b2) ⊕ a2b1 (r1,3 ⊕ a1b3) ⊕ a3b1 r1,2 a2b2 (r2,3 ⊕ a2b3) ⊕ a3b2 r1,3 r2,3 a3b3

  • ☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-29
SLIDE 29

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

(r1,2 ⊕ a1b2) ⊕ a2b1 (r1,3 ⊕ a1b3) ⊕ a3b1 r1,2 a2b2 (r2,3 ⊕ a2b3) ⊕ a3b2 r1,3 r2,3 a3b3

  • → c1

→ c2 → c3

☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-30
SLIDE 30

Ishai-Sahai-Wagner (ISW) Scheme

Decomposition of the ci

  • i

ci =

  • i

ai

i

bi

  • =
  • i,j

aibj

Example for n = 3

  • a1b1

(r1,2 ⊕ a1b2) ⊕ a2b1 (r1,3 ⊕ a1b3) ⊕ a3b1 r1,2 a2b2 (r2,3 ⊕ a2b3) ⊕ a3b2 r1,3 r2,3 a3b3

  • → c1

→ c2 → c3

☞ For n shares: requires n(n − 1)/2

fresh random values

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-31
SLIDE 31

Secure SBox Computation

Secure Computation of S(x) Inputs: (xi)i such that x1 ⊕ x2 ⊕ · · · ⊕ xn = x Output: (yi)i such that y1 ⊕ y2 ⊕ · · · ⊕ yn = S(x) [RP10] countermeasure for AES: compute S(x) = x254

x x3 x12 x2 x15 x240 x252 x254

4 multiplications over F28 with ISW 2 mask refreshings

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-32
SLIDE 32

Secure SBox Computation

Secure Computation of S(x) Inputs: (xi)i such that x1 ⊕ x2 ⊕ · · · ⊕ xn = x Output: (yi)i such that y1 ⊕ y2 ⊕ · · · ⊕ yn = S(x) [RP10] countermeasure for AES: compute S(x) = x254

x x3 x12 x2 x15 x240 x252 x254

4 multiplications over F28 with ISW 2 mask refreshings

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-33
SLIDE 33

Reducing randomness complexity

Natural idea Use a TRNG to generate a seed Use a PRG to generate all needed randoms

Security: The Pseudo-Random Generator (PRG) should also be secure against t-probing attacks Notion of robust PRG [IKL+13] Original ISW: randomness complexity O(t2|C|) New randomness complexity

O(t3+ε logk |C|)

Exponential improvement in |C|

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-34
SLIDE 34

Reducing randomness complexity

Natural idea Use a TRNG to generate a seed Use a PRG to generate all needed randoms

Security: The Pseudo-Random Generator (PRG) should also be secure against t-probing attacks Notion of robust PRG [IKL+13] Original ISW: randomness complexity O(t2|C|) New randomness complexity

O(t3+ε logk |C|)

Exponential improvement in |C|

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-35
SLIDE 35

Our results

Notion of robust PRG [IKL+13] Original ISW: randomness complexity O(t2|C|) New randomness complexity O(t3+ε logk |C|) Based on bipartite expander graphs; unpractical. Our construction New randomness complexity O(t2(log t + log |C|)) Without expander graphs No need for robust PRG: a simple r-wise independent PRG is sufficient Practical implementation with AES

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-36
SLIDE 36

Our results

Notion of robust PRG [IKL+13] Original ISW: randomness complexity O(t2|C|) New randomness complexity O(t3+ε logk |C|) Based on bipartite expander graphs; unpractical. Our construction New randomness complexity O(t2(log t + log |C|)) Without expander graphs No need for robust PRG: a simple r-wise independent PRG is sufficient Practical implementation with AES

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-37
SLIDE 37

r-wise independent PRG

Definition: r-wise independent PRG

G : {0, 1}n → {0, 1}m for m ≫ n

Any subset of r bits of G(a) is uniformly and independently distributed, for a ← Un. Construction based on polynomial evaluation in F Generate a random seed of r elements from TRNG:

  • a = (a0, . . ., ar−1) ∈ Fr

Evaluate the polynomial

h

a(x) = r−1

  • i=0

aixi ∈ F

at fixed points xj ∈ F Interpolation theorem: any subset

  • f r evaluations h

a(xj) are uid in F.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-38
SLIDE 38

r-wise independent PRG

Definition: r-wise independent PRG

G : {0, 1}n → {0, 1}m for m ≫ n

Any subset of r bits of G(a) is uniformly and independently distributed, for a ← Un. Construction based on polynomial evaluation in F Generate a random seed of r elements from TRNG:

  • a = (a0, . . ., ar−1) ∈ Fr

Evaluate the polynomial

h

a(x) = r−1

  • i=0

aixi ∈ F

at fixed points xj ∈ F Interpolation theorem: any subset

  • f r evaluations h

a(xj) are uid in F.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-39
SLIDE 39

Our technique

The rij’s in all ISW multiplication gadgets are generated by a dedicated PRG Gij. r(1)

ij

r(2)

ij

r(s)

ij

Gij ρij Security of ISW If the attacker probes a given rij, we can give to the attacker all other r(k)

ij

for free. The attacker has no advantage in probing the PRG Gij, since he could get all r(k)

ij

with a single probe.

⇒ robustness of PRG is not needed.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-40
SLIDE 40

Our technique

The rij’s in all ISW multiplication gadgets are generated by a dedicated PRG Gij. r(1)

ij

r(2)

ij

r(s)

ij

Gij ρij Security of ISW If the attacker probes a given rij, we can give to the attacker all other r(k)

ij

for free. The attacker has no advantage in probing the PRG Gij, since he could get all r(k)

ij

with a single probe.

⇒ robustness of PRG is not needed.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-41
SLIDE 41

Our technique (2)

r(1)

ij

r(2)

ij

r(s)

ij

Gij ρij

r-wise independence of PRG

With some mask refreshing, every intermediate variable depends on at most a single random r(k)

ij .

With t probes, the adversary gets information about at most t randoms r(k)

ij

generated by the PRG Gij.

⇒ we can use a PRG with r-wise

independence r = t.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-42
SLIDE 42

Our technique (3)

r(1)

ij

r(2)

ij

r(s)

ij

Gij ρij Randomness complexity There are O(t2) randoms rij, so we need O(t2) independent PRGs Gij Each PRG requires r = t true randoms in F

with |F| = O(|C|)

Randomness complexity O(t3 log |C|)

instead of O(t3+ε logk |C|) in [IKL13] without expander graphs

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-43
SLIDE 43

Improved randomness complexity

r(1)

ij r(1) ij′

r(2)

ij r(2) ij′

r(s)

ij r(s) ij′

Gi ρ′

i

Randomness complexity Each PRG Gi now generates the full row of randoms r(k)

ij

We need O(t) independent PRGs instead of O(t2).

Each PRG requires r = t true randoms in F

with |F| = O(t|C|)

Randomness complexity

O(t2(log t + log |C|))

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-44
SLIDE 44

Application to AES

Concrete AES implementation of our construction

44 MHz ARM-Cortex M3 processor Slow TRNG: 1500 cycles per TRNG byte. Source code publicly available

Minimization of TRNG calls

Rivain-Prouff Our construction TRNG MCycles TRNG MCycles ratio

t = 2

2880 20.6 48 14.1 0.68

t = 3

5760 40.2 108 34.7 0.86

Minimization of running time

Rivain-Prouff Our construction TRNG MCycles TRNG MCycles ratio

t = 2

2880 20.6 642 9.8 0.48

t = 3

5760 40.2 1056 15.5 0.39

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-45
SLIDE 45

Application to AES

Concrete AES implementation of our construction

44 MHz ARM-Cortex M3 processor Slow TRNG: 1500 cycles per TRNG byte. Source code publicly available

Minimization of TRNG calls

Rivain-Prouff Our construction TRNG MCycles TRNG MCycles ratio

t = 2

2880 20.6 48 14.1 0.68

t = 3

5760 40.2 108 34.7 0.86

Minimization of running time

Rivain-Prouff Our construction TRNG MCycles TRNG MCycles ratio

t = 2

2880 20.6 642 9.8 0.48

t = 3

5760 40.2 1056 15.5 0.39

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-46
SLIDE 46

Application to AES

Concrete AES implementation of our construction

44 MHz ARM-Cortex M3 processor Slow TRNG: 1500 cycles per TRNG byte. Source code publicly available

Minimization of TRNG calls

Rivain-Prouff Our construction TRNG MCycles TRNG MCycles ratio

t = 2

2880 20.6 48 14.1 0.68

t = 3

5760 40.2 108 34.7 0.86

Minimization of running time

Rivain-Prouff Our construction TRNG MCycles TRNG MCycles ratio

t = 2

2880 20.6 642 9.8 0.48

t = 3

5760 40.2 1056 15.5 0.39

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-47
SLIDE 47

Conclusion

Reducing randomness complexity of high-order masking

O(t2|C|) in original ISW

From O(t3+ε logk |C|) in [IKL+13] with robust PRG to O(t2(log t + log |C|)) with r-wise independent PRG Simple construction without expander graphs. Application to AES Concrete implementation of AES with PRG. Only 48 bytes of TRNG instead of 2880 in [RP10] for t = 2. Implementation on a real-life processor : 50 % speedup.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator

slide-48
SLIDE 48

Conclusion

Reducing randomness complexity of high-order masking

O(t2|C|) in original ISW

From O(t3+ε logk |C|) in [IKL+13] with robust PRG to O(t2(log t + log |C|)) with r-wise independent PRG Simple construction without expander graphs. Application to AES Concrete implementation of AES with PRG. Only 48 bytes of TRNG instead of 2880 in [RP10] for t = 2. Implementation on a real-life processor : 50 % speedup.

Jean-Sébastien Coron, Aurélien Greuet, Rina Zeitoun Side-channel Masking with Pseudo-Random Generator