Elliptic Curve Cryptography and Security of Embedded Devices
Ph.D. Defense Vincent Verneuil
Institut de Math´ ematiques de Bordeaux Inside Secure
June 13th, 2012
- V. Verneuil - Elliptic Curve Cryptography and Security of Embedded Devices
1 / 64
Elliptic Curve Cryptography and Security of Embedded Devices Ph.D. - - PowerPoint PPT Presentation
Elliptic Curve Cryptography and Security of Embedded Devices Ph.D. Defense Vincent Verneuil Institut de Math ematiques de Bordeaux Inside Secure June 13th, 2012 V. Verneuil - Elliptic Curve Cryptography and Security of Embedded Devices 1
Institut de Math´ ematiques de Bordeaux Inside Secure
1 / 64
2 / 64
2 / 64
2 / 64
3 / 64
◮ pick at random two primes p and q,
◮ choose e and compute d such that:
3 / 64
4 / 64
4 / 64
5 / 64
6 / 64
7 / 64
7 / 64
7 / 64
7 / 64
8 / 64
8 / 64
9 / 64
9 / 64
◮ Most transactions have to take less than 500 ms ◮ Small amount of RAM ◮ Very low power (hence low frequency) for contactless devices
10 / 64
◮ Most transactions have to take less than 500 ms ◮ Small amount of RAM ◮ Very low power (hence low frequency) for contactless devices
◮ Exponentiation / scalar multiplication ◮ Group operations and point representation ◮ Modular arithmetic
10 / 64
11 / 64
◮ Inversion (I)
11 / 64
◮ Inversion (I)
◮ Multiplication (M) ◮ Squaring (S, S/M ≈ 0.8)
11 / 64
◮ Inversion (I)
◮ Multiplication (M) ◮ Squaring (S, S/M ≈ 0.8)
◮ Addition (A) ◮ Subtraction (A) ◮ Negation (N)
11 / 64
◮ Inversion (I)
◮ Multiplication (M) ◮ Squaring (S, S/M ≈ 0.8)
◮ Addition (A) ◮ Subtraction (A) ◮ Negation (N)
11 / 64
12 / 64
13 / 64
14 / 64
14 / 64
14 / 64
14 / 64
Cryptographic
Inputs Outputs Secret key
Device Outputs Cryptographic
Inputs Secret key leakages
Device Outputs Cryptographic
Inputs Secret key leakages Measurements
Device Outputs Cryptographic
Inputs Secret key leakages Measurements Model & assumptions
Device Outputs Cryptographic
Inputs Secret key leakages Measurements Model & assumptions Information on secret key
15 / 64
16 / 64
17 / 64
17 / 64
17 / 64
18 / 64
19 / 64
19 / 64
19 / 64
20 / 64
21 / 64
21 / 64
22 / 64
22 / 64
22 / 64
23 / 64
23 / 64
23 / 64
t t +ω
t t +ω
t t +ω
24 / 64
◮ align vertically the traces on
t t +ω
t t +ω
t t +ω
24 / 64
◮ align vertically the traces on
◮ perform statistical treatment
t t +ω
t t +ω
t t +ω
24 / 64
◮ align vertically the traces on
◮ perform statistical treatment
t t +ω
t t +ω
t t +ω
24 / 64
◮ Hamming weight leakage model ◮ Difference of means as a distinguisher
25 / 64
◮ Hamming weight leakage model ◮ Difference of means as a distinguisher
◮ Hamming weight/distance leakage model ◮ Pearson correlation factor as a distinguisher
25 / 64
◮ Exponent blinding d′ = d +r(p −1)(q −1)
26 / 64
◮ Exponent blinding d′ = d +r(p −1)(q −1) ◮ Message/ciphertext additive blinding m′ = m +rn mod cn, r < c
26 / 64
◮ Exponent blinding d′ = d +r(p −1)(q −1) ◮ Message/ciphertext additive blinding m′ = m +rn mod cn, r < c ◮ Message/ciphertext multiplicative blinding m′ = r em mod n,
26 / 64
◮ Scalar blinding d′ = d +r#E (Fp)
27 / 64
◮ Scalar blinding d′ = d +r#E (Fp) ◮ Base point projective coordinates blinding (r 2X : r 3Y : rZ)
27 / 64
◮ Scalar blinding d′ = d +r#E (Fp) ◮ Base point projective coordinates blinding (r 2X : r 3Y : rZ) ◮ Input point blinding Q = d(P +R), result recovered as Q −S with
27 / 64
27 / 64
◮ New atomic pattern for right-to-left scalar multiplication implementation ◮ Fastest implementation for standard curves considering addition cost
28 / 64
◮ New atomic pattern for right-to-left scalar multiplication implementation ◮ Fastest implementation for standard curves considering addition cost
28 / 64
29 / 64
29 / 64
29 / 64
29 / 64
◮Sq. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Sq. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add.
30 / 64
◮Sq. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Sq. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. R1 ← Z22 ⋆ ⋆ ⋆ R2 ← X1 ·R1 ⋆ ⋆ ⋆ R1 ← R1 ·Z2 ⋆ ⋆ ⋆ R3 ← Y1 ·R1 ⋆ ⋆ ⋆ R1 ← Z12 ⋆ ⋆ ⋆ R4 ← R1 ·X2 ⋆ R4 ← −R4 R4 ← R2 +R4 R1 ← Z1 ·R1 ⋆ ⋆ ⋆ R1 ← R1 ·Y2 ⋆ R1 ← −R1 R1 ← R3 +R1 R6 ← R42 ⋆ ⋆ ⋆ R5 ← Z1 ·Z2 ⋆ ⋆ ⋆ Z3 ← R5 ·R4 ⋆ ⋆ ⋆ R2 ← R2 ·R6 ⋆ R1 ← −R1 ⋆ R5 ← R12 ⋆ R3 ← −R3 ⋆ R4 ← R4 ·R6 R6 ← R5 +R4 R2 ← −R2 R6 ← R6 +R2 R3 ← R3 ·R4 X3 ← R2 +R6 ⋆ R2 ← X3 +R2 R1 ← R1 ·R2 Y3 ← R3 +R1 ⋆ ⋆
30 / 64
Dbl. ◮Sq. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Sq. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. R1 ← Z22 ⋆ ⋆ ⋆ R2 ← X1 ·R1 ⋆ ⋆ ⋆ R1 ← R1 ·Z2 ⋆ ⋆ ⋆ R3 ← Y1 ·R1 ⋆ ⋆ ⋆ R1 ← Z12 ⋆ ⋆ ⋆ R4 ← R1 ·X2 ⋆ R4 ← −R4 R4 ← R2 +R4 R1 ← Z1 ·R1 ⋆ ⋆ ⋆ R1 ← R1 ·Y2 ⋆ R1 ← −R1 R1 ← R3 +R1 R6 ← R42 ⋆ ⋆ ⋆ R5 ← Z1 ·Z2 ⋆ ⋆ ⋆ Z3 ← R5 ·R4 ⋆ ⋆ ⋆ R2 ← R2 ·R6 ⋆ R1 ← −R1 ⋆ R5 ← R12 ⋆ R3 ← −R3 ⋆ R4 ← R4 ·R6 R6 ← R5 +R4 R2 ← −R2 R6 ← R6 +R2 R3 ← R3 ·R4 X3 ← R2 +R6 ⋆ R2 ← X3 +R2 R1 ← R1 ·R2 Y3 ← R3 +R1 ⋆ ⋆ R1 ← X12 R2 ← Y1 +Y1 ⋆ ⋆ Z2 ← R2 ·Z1 R4 ← R1 +R1 ⋆ ⋆ R3 ← R2 ·Y1 R6 ← R3 +R3 ⋆ ⋆ R2 ← R6 ·R3 R1 ← R4 +R1 ⋆ R1 ← R1 +W1 R3 ← R12 ⋆ ⋆ ⋆ R4 ← R6 ·X1 R5 ← W1 +W1 R4 ← −R4 R3 ← R3 +R4 W2 ← R2 ·R5 X2 ← R3 +R4 R2 ← −R2 R6 ← R4 +X2 R4 ← R6 ·R1 ⋆ R4 ← −R4 Y2 ← R4 +R2
30 / 64
Dbl. ◮Sq. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Sq. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. R1 ← Z22 ⋆ ⋆ ⋆ R2 ← X1 ·R1 ⋆ ⋆ ⋆ R1 ← R1 ·Z2 ⋆ ⋆ ⋆ R3 ← Y1 ·R1 ⋆ ⋆ ⋆ R1 ← Z12 ⋆ ⋆ ⋆ R4 ← R1 ·X2 ⋆ R4 ← −R4 R4 ← R2 +R4 R1 ← Z1 ·R1 ⋆ ⋆ ⋆ R1 ← R1 ·Y2 ⋆ R1 ← −R1 R1 ← R3 +R1 R6 ← R42 ⋆ ⋆ ⋆ R5 ← Z1 ·Z2 ⋆ ⋆ ⋆ Z3 ← R5 ·R4 ⋆ ⋆ ⋆ R2 ← R2 ·R6 ⋆ R1 ← −R1 ⋆ R5 ← R12 ⋆ R3 ← −R3 ⋆ R4 ← R4 ·R6 R6 ← R5 +R4 R2 ← −R2 R6 ← R6 +R2 R3 ← R3 ·R4 X3 ← R2 +R6 ⋆ R2 ← X3 +R2 R1 ← R1 ·R2 Y3 ← R3 +R1 ⋆ ⋆ R1 ← X12 R2 ← Y1 +Y1 ⋆ ⋆ Z2 ← R2 ·Z1 R4 ← R1 +R1 ⋆ ⋆ R3 ← R2 ·Y1 R6 ← R3 +R3 ⋆ ⋆ R2 ← R6 ·R3 R1 ← R4 +R1 ⋆ R1 ← R1 +W1 R3 ← R12 ⋆ ⋆ ⋆ R4 ← R6 ·X1 R5 ← W1 +W1 R4 ← −R4 R3 ← R3 +R4 W2 ← R2 ·R5 X2 ← R3 +R4 R2 ← −R2 R6 ← R4 +X2 R4 ← R6 ·R1 ⋆ R4 ← −R4 Y2 ← R4 +R2
30 / 64
Dbl. ◮Sq. ◮Add. ◮Mult. ◮Add. ◮Mult. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Sq. ◮Neg. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. ◮Mult. ◮Add. ◮Neg. ◮Add. R1 ← Z22 ⋆ R2 ← X1 ·R1 ⋆ R1 ← R1 ·Z2 ⋆ R3 ← Y1 ·R1 ⋆ ⋆ ⋆ R1 ← Z12 ⋆ R4 ← R1 ·X2 ⋆ R4 ← −R4 R4 ← R2 +R4 R1 ← Z1 ·R1 ⋆ ⋆ ⋆ R1 ← R1 ·Y2 ⋆ R1 ← −R1 R1 ← R3 +R1 R6 ← R42 ⋆ R5 ← Z1 ·Z2 ⋆ Z3 ← R5 ·R4 ⋆ R2 ← R2 ·R6 ⋆ R1 ← −R1 ⋆ R5 ← R12 R3 ← −R3 R4 ← R4 ·R6 R6 ← R5 +R4 R2 ← −R2 R6 ← R6 +R2 R3 ← R3 ·R4 X3 ← R2 +R6 ⋆ R2 ← X3 +R2 R1 ← R1 ·R2 Y3 ← R3 +R1 ⋆ ⋆ R1 ← X12 R2 ← Y1 +Y1 Z2 ← R2 ·Z1 R4 ← R1 +R1 R3 ← R2 ·Y1 R6 ← R3 +R3 R2 ← R6 ·R3 R1 ← R4 +R1 ⋆ R1 ← R1 +W1 R3 ← R12 ⋆ R4 ← R6 ·X1 R5 ← W1 +W1 R4 ← −R4 R3 ← R3 +R4 W2 ← R2 ·R5 X2 ← R3 +R4 R2 ← −R2 R6 ← R4 +X2 R4 ← R6 ·R1 ⋆ R4 ← −R4 Y2 ← R4 +R2
30 / 64
Dbl. Sq. Add. Mult. Add. Mult. Add. Mult. Add. Add. Sq. Mult. Add. Sub. Mult. Sub. Sub. Mult. Sub. R1 ← Z22 ⋆ R2 ← Y1 ·Z2 ⋆ R5 ← Y2 ·Z1 ⋆ R3 ← R1 ·R2 ⋆ ⋆ R4 ← Z12 R2 ← R5 ·R4 ⋆ R2 ← R2 −R3 R5 ← R1 ·X1 ⋆ ⋆ R6 ← X2 ·R4 R6 ← R6 −R5 R1 ← R62 ⋆ R4 ← R5 ·R1 ⋆ R5 ← R1 ·R6 ⋆ R1 ← Z1 ·R6 ⋆ ⋆ R6 ← R22 Z3 ← R1 ·Z2 R1 ← R4 +R4 R6 ← R6 −R1 R1 ← R5 ·R3 X3 ← R6 −R5 R4 ← R4 −X3 R3 ← R4 ·R2 Y3 ← R3 −R1 R1 ← X12 R2 ← Y1 +Y1 Z2 ← R2 ·Z1 R4 ← R1 +R1 R3 ← R2 ·Y1 R6 ← R3 +R3 R2 ← R6 ·R3 R1 ← R4 +R1 R1 ← R1 +W1 R3 ← R12 R4 ← R6 ·X1 R5 ← W1 +W1 R3 ← R3 −R4 W2 ← R2 ·R5 X2 ← R3 −R4 R6 ← R4 −X2 R4 ← R6 ·R1 Y2 ← R4 −R2
31 / 64
Dbl. Sq. Add. Mult. Add. Mult. Add. Mult. Add. Add. Sq. Mult. Add. Sub. Mult. Sub. Sub. Mult. Sub. R1 ← Z22 ⋆ R2 ← Y1 ·Z2 ⋆ R5 ← Y2 ·Z1 ⋆ R3 ← R1 ·R2 ⋆ ⋆ R4 ← Z12 R2 ← R5 ·R4 ⋆ R2 ← R2 −R3 R5 ← R1 ·X1 ⋆ ⋆ R6 ← X2 ·R4 R6 ← R6 −R5 R1 ← R62 ⋆ R4 ← R5 ·R1 ⋆ R5 ← R1 ·R6 ⋆ R1 ← Z1 ·R6 ⋆ ⋆ R6 ← R22 Z3 ← R1 ·Z2 R1 ← R4 +R4 R6 ← R6 −R1 R1 ← R5 ·R3 X3 ← R6 −R5 R4 ← R4 −X3 R3 ← R4 ·R2 Y3 ← R3 −R1 R1 ← X12 R2 ← Y1 +Y1 Z2 ← R2 ·Z1 R4 ← R1 +R1 R3 ← R2 ·Y1 R6 ← R3 +R3 R2 ← R6 ·R3 R1 ← R4 +R1 R1 ← R1 +W1 R3 ← R12 R4 ← R6 ·X1 R5 ← W1 +W1 R3 ← R3 −R4 W2 ← R2 ·R5 X2 ← R3 −R4 R6 ← R4 −X2 R4 ← R6 ·R1 Y2 ← R4 −R2
31 / 64
Dbl. Sq. Add. Mult. Add. Mult. Add. Mult. Add. Add. Sq. Mult. Add. Sub. Mult. Sub. Sub. Mult. Sub. R1 ← Z22 ⋆ R2 ← Y1 ·Z2 ⋆ R5 ← Y2 ·Z1 ⋆ R3 ← R1 ·R2 ⋆ ⋆ R4 ← Z12 R2 ← R5 ·R4 ⋆ R2 ← R2 −R3 R5 ← R1 ·X1 ⋆ ⋆ R6 ← X2 ·R4 R6 ← R6 −R5 R1 ← R62 ⋆ R4 ← R5 ·R1 ⋆ R5 ← R1 ·R6 ⋆ R1 ← Z1 ·R6 ⋆ ⋆ R6 ← R22 Z3 ← R1 ·Z2 R1 ← R4 +R4 R6 ← R6 −R1 R1 ← R5 ·R3 X3 ← R6 −R5 R4 ← R4 −X3 R3 ← R4 ·R2 Y3 ← R3 −R1 R1 ← X12 R2 ← Y1 +Y1 Z2 ← R2 ·Z1 R4 ← R1 +R1 R3 ← R2 ·Y1 R6 ← R3 +R3 R2 ← R6 ·R3 R1 ← R4 +R1 R1 ← R1 +W1 R3 ← R12 R4 ← R6 ·X1 R5 ← W1 +W1 R3 ← R3 −R4 W2 ← R2 ·R5 X2 ← R3 −R4 R6 ← R4 −X2 R4 ← R6 ·R1 Y2 ← R4 −R2
31 / 64
Dbl. Sq. Add. Mult. Add. Mult. Add. Mult. Add. Add. Sq. Mult. Add. Sub. Mult. Sub. Sub. Mult. Sub. R1 ← Z22 ⋆ R2 ← Y1 ·Z2 ⋆ R5 ← Y2 ·Z1 ⋆ R3 ← R1 ·R2 ⋆ ⋆ R4 ← Z12 R2 ← R5 ·R4 ⋆ R2 ← R2 −R3 R5 ← R1 ·X1 ⋆ ⋆ R6 ← X2 ·R4 R6 ← R6 −R5 R1 ← R62 ⋆ R4 ← R5 ·R1 ⋆ R5 ← R1 ·R6 ⋆ R1 ← Z1 ·R6 ⋆ ⋆ R6 ← R22 Z3 ← R1 ·Z2 R1 ← R4 +R4 R6 ← R6 −R1 R1 ← R5 ·R3 X3 ← R6 −R5 R4 ← R4 −X3 R3 ← R4 ·R2 Y3 ← R3 −R1 R1 ← X12 R2 ← Y1 +Y1 Z2 ← R2 ·Z1 R4 ← R1 +R1 R3 ← R2 ·Y1 R6 ← R3 +R3 R2 ← R6 ·R3 R1 ← R4 +R1 R1 ← R1 +W1 R3 ← R12 R4 ← R6 ·X1 R5 ← W1 +W1 R3 ← R3 −R4 W2 ← R2 ·R5 X2 ← R3 −R4 R6 ← R4 −X2 R4 ← R6 ·R1 Y2 ← R4 −R2
31 / 64
32 / 64
32 / 64
◮ New atomic algorithms using squarings only ◮ Immune to attacks distinguishing squarings from multiplications ◮ Better efficiency than regular ladders ◮ Exponentiation algorithms for parallelized squarings with best
33 / 64
34 / 64
35 / 64
36 / 64
36 / 64
2 mod n
37 / 64
2 mod n
38 / 64
39 / 64
40 / 64
◮ Many devices are equipped with multi-core processors ◮ Parallelized Montgomery ladder : 1M / bit ◮ Squarings are independent in equations (1) and (2)
41 / 64
◮ Many devices are equipped with multi-core processors ◮ Parallelized Montgomery ladder : 1M / bit ◮ Squarings are independent in equations (1) and (2)
41 / 64
42 / 64
42 / 64
◮ New differential analysis on exponentiation using a single trace ◮ Any exponentiation algorithm can be subject to this attack ◮ Circumvent the exponent blinding countermeasure ◮ Require the knowledge of underlying modular multiplication
43 / 64
44 / 64
45 / 64
. . . . . . . . . . . . . . . . . . . . .
46 / 64
Ts 0,0 Ts 0,2
Ts 1,0 Ts 1,2
Ts 1,k−1
Ts k−1,0 Ts k−1,2
Ts k−1,k−1
47 / 64
48 / 64
◮ Execute a single RSA signature
48 / 64
◮ Execute a single RSA signature
◮ Assuming u most significant bits of d are
48 / 64
◮ Execute a single RSA signature
◮ Assuming u most significant bits of d are
◮ Let R(u)
48 / 64
0 ✏✏✏
dℓ−u−1= 1 dℓ−u−1= 0
2
dℓ−u−2= 0,1
2
2
49 / 64
0 ✏✏✏
dℓ−u−1= 1 dℓ−u−1= 0
2
dℓ−u−2= 0,1
2
2
◮ Compute correlation between:
◮ trace segments T v+2
i,j
◮ trace segments T v+2
i,j
0,i ×mj
49 / 64
0 ✏✏✏
dℓ−u−1= 1 dℓ−u−1= 0
2
dℓ−u−2= 0,1
2
2
◮ Compute correlation between:
◮ trace segments T v+2
i,j
◮ trace segments T v+2
i,j
0,i ×mj ◮ If correlation peak: dℓ−(u+1) = 1, or dℓ−(u+1) = 0 otherwise.
49 / 64
i,j
i,j
0,i ×mj
50 / 64
50 / 64
◮ New countermeasure against differential analysis for RSA and
◮ Designed to protect from horizontal analysis ◮ Implemented at the multi-precision multiplication level
51 / 64
52 / 64
52 / 64
52 / 64
52 / 64
52 / 64
52 / 64
53 / 64
53 / 64
53 / 64
53 / 64
53 / 64
54 / 64
54 / 64
54 / 64
54 / 64
◮ Improved collision-correlation techniques on AES defeating
◮ Need less than 1500 acquisitions in our experiments ◮ No need to establish a consumption model for correlation
55 / 64
◮ message M = (m0 m1 ... m15) ◮ key K = (k0 k1 ... k15) ◮ ciphertext C = (c0 c1 ... c15) ◮ for i ∈ [0,15] we denote xi = mi ⊕ki
message key SubBytes ShiftRows MixColumns subkey 1 ciphertext
56 / 64
◮ message M = (m0 m1 ... m15) ◮ key K = (k0 k1 ... k15) ◮ ciphertext C = (c0 c1 ... c15) ◮ for i ∈ [0,15] we denote xi = mi ⊕ki
message key SubBytes ShiftRows MixColumns subkey 1 ciphertext
56 / 64
57 / 64
57 / 64
◮ Encrypt N times the same message M ◮ Collect the power traces T n, 0 ≤ n ≤ N −1 T 0 T 1 . . . T N−1
58 / 64
◮ Encrypt N times the same message M ◮ Collect the power traces T n, 0 ≤ n ≤ N −1 ◮ Consider two instructions whose
T 0
t0 t0 +l t1 t1 +l
T 1
t0 t0 +l t1 t1 +l
. . . T N−1
t0 t0 +l t1 t1 +l
58 / 64
◮ Encrypt N times the same message M ◮ Collect the power traces T n, 0 ≤ n ≤ N −1 ◮ Consider two instructions whose
◮ Construct the two series Θ0 = (T n
t0)n and
t1)n of power consumptions
T 0
t0 t0 +l t1 t1 +l
T 1
t0 t0 +l t1 t1 +l
. . . T N−1
t0 t0 +l t1 t1 +l
Θ0 Θ1
58 / 64
◮ Encrypt N times the same message M ◮ Collect the power traces T n, 0 ≤ n ≤ N −1 ◮ Consider two instructions whose
◮ Construct the two series Θ0 = (T n
t0)n and
t1)n of power consumptions
T 0
t0 t0 +l t1 t1 +l
T 1
t0 t0 +l t1 t1 +l
. . . T N−1
t0 t0 +l t1 t1 +l
Θ0 Θ1 ◮ Apply a statistical treatment to (Θ0,Θ1) to identify if same data was involved in T n
t0 and T n t1
◮ We choose the Pearson correlation factor
58 / 64
x′ x′
1
x′
2
x′
3
x′
4
x′
5
x′
6
x′
7
x′
8
x′
9 x′ 10 x′ 11 x′ 12 x′ 13 x′ 14 x′ 15
S′ S′ S′ S′ S′ S′ S′ S′ S′ S′ S′ S′ S′ S′ S′ S′ y′ y′
1
y′
2
y′
3
y′
4
y′
5
y′
6
y′
7
y′
8
y′
9 y′ 10 y′ 11 y′ 12 y′ 13 y′ 14 y′ 15
59 / 64
◮ Encrypt N times the same message M and collect the N traces of first
◮ For the 120 possible pairs (i1,i2) compute ˆ
◮ When a correlation peak appears a relation between ki1 and ki2 is found ◮ Repeat for several random messages M until enough relations are found
60 / 64
◮ Encrypt N times the same message M and collect the N traces of first
◮ For the 120 possible pairs (i1,i2) compute ˆ
◮ When a correlation peak appears a relation between ki1 and ki2 is found ◮ Repeat for several random messages M until enough relations are found
60 / 64
0.5 1 100 125 150 175 200
Correlation Time
0.5 1 100 125 150 175 200
Correlation Time
61 / 64
0⊕u3 x′
0 x′ 1 x′ 2 x′ 3 x′ 4
x′
15
... I′ I′ I′ I′ I′ I′ ... y′
0 y′ 1 y′ 2 y′ 3 y′ 4
y′
15
... 0⊕u3
1⊕u3 x′
0 x′ 1 x′ 2 x′ 3 x′ 4
x′
15
... I′ I′ I′ I′ I′ I′ ... y′
0 y′ 1 y′ 2 y′ 3 y′ 4
y′
15
... 1⊕u3
62 / 64
0.5 1 10 20 30 40 50 60
Correlation Time
63 / 64
63 / 64
◮ 4 publications in international conferences (CHES, INDOCRYPT,
◮ 4 patent registrations
◮ Research with industrial constraints is motivating ◮ Both implementation and side-channel analysis covered in this
◮ Both high and low-level implementation studied ◮ Both public and private-key cryptography investigated
64 / 64