fault attacks on projective-to-affine coordinates conversion

48
Fault Attacks on Projective-to-Affine Coordinates Conversion Diana Maimut ¸ (ENS, France) edric Murdica (Secure-IC/T´ el´ ecom ParisTech, France) David Naccache (ENS, France) Mehdi Tibouchi (ntt Secure Platform, Japan) edric Murdica (Secure-IC/T´ el´ ecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7 th , 2013 1 / 31

Upload: others

Post on 19-Jun-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fault Attacks on Projective-to-Affine Coordinates Conversion

Fault Attacks onProjective-to-Affine Coordinates Conversion

Diana Maimut (ENS, France)Cedric Murdica (Secure-IC/Telecom ParisTech, France)

David Naccache (ENS, France)Mehdi Tibouchi (ntt Secure Platform, Japan)

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 1 / 31

Page 2: Fault Attacks on Projective-to-Affine Coordinates Conversion

Our contribution

Attack by Naccache, Smart and Stern at EUROCRYPT’04

Attack on Elliptic Curve Cryptosystems when the returned point of some signatureschemes is given in projective coordinates (X ,Y ,Z ).

Feasibility of the attack

In many systems, results are given in affine coordinates (x , y).

Our fault attack modelInjecting an error during the conversion process to recover the missing Zcoordinate.We propose 3 different ways to recover the missing Z coordinate depending on thefault’s precision.

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 2 / 31

Page 3: Fault Attacks on Projective-to-Affine Coordinates Conversion

Our contribution

Attack by Naccache, Smart and Stern at EUROCRYPT’04

Attack on Elliptic Curve Cryptosystems when the returned point of some signatureschemes is given in projective coordinates (X ,Y ,Z ).

Feasibility of the attack

In many systems, results are given in affine coordinates (x , y).

Our fault attack modelInjecting an error during the conversion process to recover the missing Zcoordinate.We propose 3 different ways to recover the missing Z coordinate depending on thefault’s precision.

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 2 / 31

Page 4: Fault Attacks on Projective-to-Affine Coordinates Conversion

Table of Contents

1 Preliminaries

2 Fault on conversion procedure

3 Large Unknown Faults

4 Two Faults

5 Known Fault

6 Conclusion

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 3 / 31

Page 5: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries

Table of Contents

1 Preliminaries

2 Fault on conversion procedure

3 Large Unknown Faults

4 Two Faults

5 Known Fault

6 Conclusion

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 4 / 31

Page 6: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Elliptic Curve Cryptosystems

Table of Contents

1 PreliminariesElliptic Curve CryptosystemsNaccache et al.’ attack

2 Fault on conversion procedure

3 Large Unknown Faults

4 Two Faults

5 Known Fault

6 Conclusion

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 5 / 31

Page 7: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Elliptic Curve Cryptosystems

Elliptic Curve

Elliptic Curve on affine coordinates

On a field Fp, p > 3, an elliptic curve E is the set of points (x , y) ∈ Fp, satisfying

y2 = x3 + ax + b, with 4a3 + 27b2 6= 0

plus the point at infinity O.Costly formulæ because of inversions.

Elliptic Curve on Jacobian coordinates

To prevent costly division, represent the point (x , y) by (xZ 2, yZ 3,Z ) for anynon-zero Z . The curve equation is

Y 2 = X 3 + aXZ 4 + bZ 6

with O = (1, 1, 0) and the equivalence relation (X ,Y ,Z ) ∼ (λ2X , λ3Y , λZ ).To retrieve the affine coordinates from (X ,Y ,Z ), compute(x , y) := (x , y , 1) = (X/Z 2,Y /Z 3, 1).

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 6 / 31

Page 8: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Elliptic Curve Cryptosystems

Returning the result in Jacobian coordinates

Computation of Q = [k]P

Operation called Elliptic Curve Scalar Multiplication (ecsm)

with k private

with P public

Is it secure to return the value Q = (X ,Y ,Z ) in Jacobian coordinates?

No”Projective coordinates leak” at Eurocrypt 2004 by Naccache, Smart, Stern.Some bits of k can be retrieved.

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 7 / 31

Page 9: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Elliptic Curve Cryptosystems

Returning the result in Jacobian coordinates

Computation of Q = [k]P

Operation called Elliptic Curve Scalar Multiplication (ecsm)

with k private

with P public

Is it secure to return the value Q = (X ,Y ,Z ) in Jacobian coordinates?

No”Projective coordinates leak” at Eurocrypt 2004 by Naccache, Smart, Stern.Some bits of k can be retrieved.

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 7 / 31

Page 10: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Table of Contents

1 PreliminariesElliptic Curve CryptosystemsNaccache et al.’ attack

2 Fault on conversion procedure

3 Large Unknown Faults

4 Two Faults

5 Known Fault

6 Conclusion

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 8 / 31

Page 11: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Group law in Jacobian coordinates

P1 = (X1,Y1,Z1) = (x1Z21 , y1Z

31 ,Z1),P2 = (X2,Y2, 1) = (x2, y2, 1)

Algorithm ecdbl =

S = 4X1Y21

M = 3X 21 + aZ 4

1

X3 = −2S + M2

Y3 = −8Y 41 + M(S − X3)

Z3 = 2Y1Z1 = 2y1Z41

P3 = (X3,Y3,Z3) return(P3 = 2P1)

Algorithm ecadd =

H = x2Z21 − X1

R = y2Z31 − Y1

X3 = −H3 − 2UH2 + R2

Y3 = −SH3 + R(UH2 − X3)Z3 = Z1H = Z 3

1 (x2 − x1)P3 = (X3,Y3,Z3) return(P3 = P1 + P2)

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 9 / 31

Page 12: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Description of the attack

Output result in Jacobian coordinates

[k]P = (X0,Y0,Z0) is computed using the Double-and-Add method.

A← Pfor i = N − 2 downto 0 do

A← ecdbl(A)if ki = 1 then A← ecadd(A,P)

end forreturn A = [k]P = (X0,Y0,Z0)

If k0 = 0

The last operation to obtain (X0,Y0,Z0) was a doubling. Is this possible?

If k0 = 1

The last operations to obtain (X0,Y0,Z0) was a doubling followed by an addition.Is this possible?

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 10 / 31

Page 13: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Description of the attack

Notation: (X1,Y1,Z1) are the coordinates of the point A at the end of iteration 1

If k0 = 0

The last operation to obtain Q = (X0,Y0,Z0) was a doubling.

Z0 = 2Y1Z1 = 2y1Z41 ⇒ Z 4

1 =Z0

2y1

Z0 is given in the output

Halve the point Q ⇒ (x1, y1) = [2−1 mod #E ]Q

Only Z1 is unknown

Result

If Z0

2y1is not a fourth root, then k0 = 1

If Z0

2y1is a fourth root, then compute the ”possible” (X1,Y1,Z1) points

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 11 / 31

Page 14: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Description of the attack

In an analogous manner, if k0 = 1, the last operation was an addition.Addition involves a cube for the Z coordinates ⇒ try a cubic root.

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 12 / 31

Page 15: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Backtracking Algorithm

(X0,Y0,Z0)

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 13 / 31

Page 16: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Backtracking Algorithm

(X0,Y0,Z0)

∅ k0 = 1

halve

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 13 / 31

Page 17: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Backtracking Algorithm

(X0,Y0,Z0)

∅ k0 = 1

halve(Xt ,Yt ,Zt)0 (Xt ,Yt ,Zt)1 (Xt ,Yt ,Zt)2

−P

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 13 / 31

Page 18: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Backtracking Algorithm

(X0,Y0,Z0)

∅ k0 = 1

halve(Xt ,Yt ,Zt)0 (Xt ,Yt ,Zt)1 (Xt ,Yt ,Zt)2

−P

∅ (X1,Y1,Z1) ∅halve halve halve

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 13 / 31

Page 19: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Backtracking Algorithm

(X0,Y0,Z0)

∅ k0 = 1

halve(Xt ,Yt ,Zt)1

−P

(X1,Y1,Z1)

halve

(X2,Y2,Z2)0 (X2,Y2,Z2)1

halve

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 13 / 31

Page 20: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Backtracking Algorithm

(X0,Y0,Z0)

∅ k0 = 1

halve(Xt ,Yt ,Zt)1

−P

(X1,Y1,Z1)

halve

(X2,Y2,Z2)0 (X2,Y2,Z2)1

halve(Xt ,Yt ,Zt)

−P

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 13 / 31

Page 21: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Backtracking Algorithm

(X0,Y0,Z0)

∅ k0 = 1

halve(Xt ,Yt ,Zt)1

−P

(X1,Y1,Z1)

halve

(X2,Y2,Z2)0 (X2,Y2,Z2)1

halve(Xt ,Yt ,Zt)

−P

∅halve

k1 = 0

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 13 / 31

Page 22: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Backtracking Algorithm

(X0,Y0,Z0)

∅ k0 = 1

halve(Xt ,Yt ,Zt)1

−P

(X1,Y1,Z1)

halve

(X2,Y2,Z2)0 (X2,Y2,Z2)1

halve(Xt ,Yt ,Zt)

−P

∅halve

k1 = 0

−P halve −P halve

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 13 / 31

Page 23: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Synthesis of Naccache et al.’ attack

The attack cannot permit to recover all bits of the scalar, only a few. This isenough for some protocols.

The result must be in Jacobian coordinates (X ,Y ,Z ). In schemes, the resultsare in affine coordinates (x , y). [k]P is computed in Jacobian coordinates andthe point is converted in affine coordinates before returning it.

Our contributionInject a fault during the conversion procedure, so that the faulty result in affinecoordinates contains some information on the missing coordinate Z .

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 14 / 31

Page 24: Fault Attacks on Projective-to-Affine Coordinates Conversion

Preliminaries Naccache et al.’ attack

Synthesis of Naccache et al.’ attack

The attack cannot permit to recover all bits of the scalar, only a few. This isenough for some protocols.

The result must be in Jacobian coordinates (X ,Y ,Z ). In schemes, the resultsare in affine coordinates (x , y). [k]P is computed in Jacobian coordinates andthe point is converted in affine coordinates before returning it.

Our contributionInject a fault during the conversion procedure, so that the faulty result in affinecoordinates contains some information on the missing coordinate Z .

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 14 / 31

Page 25: Fault Attacks on Projective-to-Affine Coordinates Conversion

Fault on conversion procedure

Table of Contents

1 Preliminaries

2 Fault on conversion procedure

3 Large Unknown Faults

4 Two Faults

5 Known Fault

6 Conclusion

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 15 / 31

Page 26: Fault Attacks on Projective-to-Affine Coordinates Conversion

Fault on conversion procedure

Fault on conversion procedure

Conversion Procedure

The following procedure converts P = (X ,Y ,Z ) = (xZ 2, yZ 3,Z ) from Jacobianto affine coordinates (x , y).

convert(X ,Y ,Z ) =

r ← Z−1

s ← r2

x ← X · st ← Y · sy ← t · r return(x , y)

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 16 / 31

Page 27: Fault Attacks on Projective-to-Affine Coordinates Conversion

Fault on conversion procedure

Fault on conversion procedure

Conversion Procedure

The following procedure converts P = (X ,Y ,Z ) = (xZ 2, yZ 3,Z ) from Jacobianto affine coordinates (x , y).

convert(X ,Y ,Z ) =

r ← Z−1

s ← r2

s = s + ε ←↩ corruption of sx ← X · st ← Y · sy ← t · r return(x , y)

Equations system

x = x + xZ 2ε mod p

y = y + yZ 2ε mod p

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 17 / 31

Page 28: Fault Attacks on Projective-to-Affine Coordinates Conversion

Large Unknown Faults

Table of Contents

1 Preliminaries

2 Fault on conversion procedure

3 Large Unknown Faults

4 Two Faults

5 Known Fault

6 Conclusion

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 18 / 31

Page 29: Fault Attacks on Projective-to-Affine Coordinates Conversion

Large Unknown Faults

Large Unknown Faults and a correct result

= s

s1

= Z−2

+ ε1

= s

s2

= Z−2

+ ε2

...

= s

sn

= Z−2

+ εn

Equations system

Unknown values in red

xi = x + xZ 2εi ⇒xix− 1 = Z 2εi mod p with εi < pa for some a < 1

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 19 / 31

Page 30: Fault Attacks on Projective-to-Affine Coordinates Conversion

Large Unknown Faults

Large Unknown Faults and a correct result

=

s

s1 = Z−2 + ε1

=

s

s2 = Z−2 + ε2

...

=

s

sn = Z−2 + εn

Equations system

Unknown values in red

xi = x + xZ 2εi ⇒xix− 1 = Z 2εi mod p with εi < pa for some a < 1

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 19 / 31

Page 31: Fault Attacks on Projective-to-Affine Coordinates Conversion

Large Unknown Faults

Large Unknown Faults and a correct result

Equations system with a known result (x , y)

Unknown values in red

xi = x + xZ 2εi ⇒xix− 1 = Z 2εi mod p with εi < pa for some a < 1

⇒ ui = Z 2εi mod p with ui =xix− 1

⇒ ε = s · u mod p with s = Z−2,u = (u1, ..., un), ε = (ε1, ..., εn)

Recover ε using LLL

Let L be the lattice generated by the vector u and pZn in Zn

Since ε satisfies ε = s · u mod p, ε is a vector in L, with εi < pa

Then, we can recover ε directly by reducing L using LLL since ε is a smallvector of the lattice.

Simulation (SAGE): with p ≈ 2256 and εi ≈ 2224, only 9 faults are necessaryto recover ε, in 3ms.

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 20 / 31

Page 32: Fault Attacks on Projective-to-Affine Coordinates Conversion

Large Unknown Faults

Large Unknown Faults and a correct result

Equations system with a known result (x , y)

Unknown values in red

xi = x + xZ 2εi ⇒xix− 1 = Z 2εi mod p with εi < pa for some a < 1

⇒ ui = Z 2εi mod p with ui =xix− 1

⇒ ε = s · u mod p with s = Z−2,u = (u1, ..., un), ε = (ε1, ..., εn)

Recover ε using LLL

Let L be the lattice generated by the vector u and pZn in Zn

Since ε satisfies ε = s · u mod p, ε is a vector in L, with εi < pa

Then, we can recover ε directly by reducing L using LLL since ε is a smallvector of the lattice.

Simulation (SAGE): with p ≈ 2256 and εi ≈ 2224, only 9 faults are necessaryto recover ε, in 3ms.

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 20 / 31

Page 33: Fault Attacks on Projective-to-Affine Coordinates Conversion

Two Faults

Table of Contents

1 Preliminaries

2 Fault on conversion procedure

3 Large Unknown Faults

4 Two Faults

5 Known Fault

6 Conclusion

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 21 / 31

Page 34: Fault Attacks on Projective-to-Affine Coordinates Conversion

Two Faults

Two Faults and a correct result

= s

s1

= Z−2

+ ε1

= s

s2

= Z−2

+ ε2

Equations system

Unknown values in red

x1

x− 1 = u1 = Z 2ε1 mod p with ε1 < p1/2

x2

x− 1 = u2 = Z 2ε2 mod p with ε2 < p1/2

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 22 / 31

Page 35: Fault Attacks on Projective-to-Affine Coordinates Conversion

Two Faults

Two Faults and a correct result

=

s

s1 = Z−2 + ε1

=

s

s2 = Z−2 + ε2

Equations system

Unknown values in red

x1

x− 1 = u1 = Z 2ε1 mod p with ε1 < p1/2

x2

x− 1 = u2 = Z 2ε2 mod p with ε2 < p1/2

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 22 / 31

Page 36: Fault Attacks on Projective-to-Affine Coordinates Conversion

Two Faults

Two Faults and a correct result

Equations system

Unknown values in red

x1

x− 1 = u1 = Z 2ε1 mod p with ε1 < p1/2

x2

x− 1 = u2 = Z 2ε2 mod p with ε2 < p1/2

Let α = u1/u2 = ε1ε−12

⇒ problem known as the Rational NumberReconstruction and is solved using Gauß’ algorithm for finding the shortest vectorin a bidimensional lattice.

TheoremLet ε1, ε2 ∈ Z such that −A ≤ ε1 ≤ A and 0 < ε2 ≤ B. Let p > 2AB be a primeand α = ε1ε

−12 mod p. Then ε1, ε2 can be recovered from A,B, α, p in polynomial

time.

Recover ε1, ε2 with A = B = b√pc, 2AB < p, 0 ≤ ε1 ≤ A and 0 < ε2 ≤ B.

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 23 / 31

Page 37: Fault Attacks on Projective-to-Affine Coordinates Conversion

Two Faults

Two Faults and a correct result

Equations system

Unknown values in red

x1

x− 1 = u1 = Z 2ε1 mod p with ε1 < p1/2

x2

x− 1 = u2 = Z 2ε2 mod p with ε2 < p1/2

Let α = u1/u2 = ε1ε−12 ⇒ problem known as the Rational Number

Reconstruction and is solved using Gauß’ algorithm for finding the shortest vectorin a bidimensional lattice.

TheoremLet ε1, ε2 ∈ Z such that −A ≤ ε1 ≤ A and 0 < ε2 ≤ B. Let p > 2AB be a primeand α = ε1ε

−12 mod p. Then ε1, ε2 can be recovered from A,B, α, p in polynomial

time.

Recover ε1, ε2 with A = B = b√pc, 2AB < p, 0 ≤ ε1 ≤ A and 0 < ε2 ≤ B.Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 23 / 31

Page 38: Fault Attacks on Projective-to-Affine Coordinates Conversion

Known Fault

Table of Contents

1 Preliminaries

2 Fault on conversion procedure

3 Large Unknown Faults

4 Two Faults

5 Known Fault

6 Conclusion

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 24 / 31

Page 39: Fault Attacks on Projective-to-Affine Coordinates Conversion

Known Fault

Known Fault

= s

s

= Z−2

+ ε

Equation

x = x + xZ 2ε with ε known

The knowledge of x suffices to recover Z .

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 25 / 31

Page 40: Fault Attacks on Projective-to-Affine Coordinates Conversion

Known Fault

Known Fault

=

s

s = Z−2 + ε

Equation

x = x + xZ 2ε with ε known

The knowledge of x suffices to recover Z .

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 25 / 31

Page 41: Fault Attacks on Projective-to-Affine Coordinates Conversion

Known Fault

Known Fault on ecdsa

G a public generator of order n.Key pair of an entity (d ,P) with P = [d ]G .

Algorithm 1 ecdsa Signature

Input: Private key d , message mOutput: Signature (r , s)

kR←− {1, . . . , n − 1}

Q ← [k]Gr ← xQ mod ni ← k−1 mod ns ← i(dr + m) mod nreturn (r , s)

Algorithm 2 ecdsa Verification

Input: Public key P, m, signature (r , s)Output: true or falsew ← s−1 mod nu1 ← w ·m mod nu2 ← w · r mod nQ ← [u1]G + [u2]Pv ← xQ mod n

return (v?= r)

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 26 / 31

Page 42: Fault Attacks on Projective-to-Affine Coordinates Conversion

Known Fault

Known Fault on ecdsa

Algorithm 3 Wrong ecdsa Signature

Input: Private key d , message mOutput: Signature (r , s)

kR←− {1, . . . , n − 1}

(xQ , yQ) ← [k]G ← fault duringconversion of Qr ← xQ mod ni ← k−1 mod ns ← i(dr + m) mod nreturn (r , s)

Algorithm 4 Recover the x coordinate of Q

Input: P, m, wrong signature (r , s)Output: Qw ← s−1 mod nu1 ← w ·m mod nu2 ← w · r mod nQ ← [u1]G + [u2]P

Q =[

kmdr+m

]G +

[kr

dr+m

]P

Q = [k]G = Qreturn Q

Recover the true x coordinate of Q

From (r , s), we can recover the correct value of xQ⇒ recover the Z coordinate of Q ⇒ grab a few bits of k

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 27 / 31

Page 43: Fault Attacks on Projective-to-Affine Coordinates Conversion

Known Fault

Known Fault on ecdsa

Algorithm 5 Wrong ecdsa Signature

Input: Private key d , message mOutput: Signature (r , s)

kR←− {1, . . . , n − 1}

(xQ , yQ) ← [k]G ← fault duringconversion of Qr ← xQ mod ni ← k−1 mod ns ← i(dr + m) mod nreturn (r , s)

Algorithm 6 Recover the x coordinate of Q

Input: P, m, wrong signature (r , s)Output: Qw ← s−1 mod nu1 ← w ·m mod nu2 ← w · r mod nQ ← [u1]G + [u2]P

Q =[

kmdr+m

]G +

[kr

dr+m

]P

Q = [k]G = Qreturn Q

Recover the true x coordinate of Q

From (r , s), we can recover the correct value of xQ⇒ recover the Z coordinate of Q ⇒ grab a few bits of k

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 27 / 31

Page 44: Fault Attacks on Projective-to-Affine Coordinates Conversion

Conclusion

Table of Contents

1 Preliminaries

2 Fault on conversion procedure

3 Large Unknown Faults

4 Two Faults

5 Known Fault

6 Conclusion

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 28 / 31

Page 45: Fault Attacks on Projective-to-Affine Coordinates Conversion

Conclusion

Conclusion

ContributionA new kind of fault attack at the end of the ecsm

The attack permits to perform the Naccache et al.’s attack even when theresult is returned in affine coordinates

Feasibility of the attack

Practical attacks on particular elliptic curve schemes (large and two faults)

Theoretical attack on ecdsa. Theoretical because the fault model is toostrong.

PreventionCheck the validity of the result after conversion to affine coordinates.

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 29 / 31

Page 46: Fault Attacks on Projective-to-Affine Coordinates Conversion

Conclusion

Thanks for your attention.

Questions?

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 30 / 31

Page 47: Fault Attacks on Projective-to-Affine Coordinates Conversion

Conclusion

Thanks for your attention.

Questions?

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 30 / 31

Page 48: Fault Attacks on Projective-to-Affine Coordinates Conversion

Conclusion

Fault Attacks onProjective-to-Affine Coordinates Conversion

Diana Maimut (ENS, France)Cedric Murdica (Secure-IC/Telecom ParisTech, France)

David Naccache (ENS, France)Mehdi Tibouchi (ntt Secure Platform, Japan)

Cedric Murdica (Secure-IC/Telecom ParisTech) Fault on Projective-to-Affine Coordinates Conversion Thursday, March 7th , 2013 31 / 31