cryptographie sur les courbes elliptiques jonathan tavernedelta.cs.cinvestav.mx › ~francisco ›...

34
Impl´ ementation Efficiente de la Multiplication Scalaire utilisant la Parall´ elisation Cryptographie sur les Courbes Elliptiques Jonathan Taverne Universit´ e Lyon 1 - CINVESTAV 24 Septembre 2010

Upload: others

Post on 28-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Implementation Efficiente de la MultiplicationScalaire utilisant la ParallelisationCryptographie sur les Courbes Elliptiques

Jonathan Taverne

Universite Lyon 1 - CINVESTAV

24 Septembre 2010

Page 2: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Institution

Centre de Recherche et d’Etudes Avancees de l’InstitutPolytechnique National du Mexique

Departement d’Informatique, Mexico

Environ 100 publications par an

Maıtre de Stage : Francisco Rodrıguez-Henrıquez

Jonathan Taverne 2 / 34

Page 3: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Cryptographie sur les courbes elliptiques

1985 : N. Koblitz et V. Miller introduisent (independamment)la cryptographie sur les courbes elliptiques (ECC)

Le passe : RSA, factorisation de grands nombresLe present : ECC, probleme du logarithme discret

taille clefsRSA > taille clefsECCexemple : 1024-bits (RSA) = 160-bits (ECC)

Jonathan Taverne 3 / 34

Page 4: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

ECDH : Elliptic Curve Diffie-Hellman

Jonathan Taverne 4 / 34

Page 5: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Contexte

Operation majeure : multiplication scalaire sur les CE

kP = P + P + · · · + P︸ ︷︷ ︸k fois

1991 : les courbe de Koblitz permettent une implementationefficiente de cette operation en utilisant l’operateur τ

1999 : multiplication utilisant la bissection de points (general)

Jonathan Taverne 5 / 34

Page 6: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Contexte

Type de [1] : AHR, Ce travail,courbes Koblitz-curves random-curves

τ doublementOperations τ−1 bissection

τ et τ−1 doub. et bis.

[1] : O. Ahmadi, D. Hankerson et F. Rodrıguez-Henrıquez, Parallelformulation of scalar multiplication on Koblitz curves., 2008

Jonathan Taverne 6 / 34

Page 7: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Contexte

Jonathan Taverne 7 / 34

Page 8: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Plan

1 Corps finis

2 Courbes elliptiques

3 Implementation

Jonathan Taverne 8 / 34

Page 9: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Plan

1 Corps finis

2 Courbes elliptiques

3 Implementation

Jonathan Taverne 9 / 34

Page 10: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Groupes et anneaux

Groupe :

Ensemble non vide G muni d’une loi de composition interne • tels que :

• est associative

• admet un element neutre e

tout element de G admet un inverse pour •

Anneau :

Ensemble A muni de deux lois de composition interne (+, •) tels que :

(A,+) est un groupe commutatif avec comme element neutre 0A

la loi . admet un element neutre different de 0A, note 1A

la loi . est associative et distributive a gauche et a droite pour +

Jonathan Taverne 10 / 34

Page 11: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Corps finis

Corps :

Un corps est un anneau commutatif dans lequel tout element non nul estinversible. Une telle structure est en general notee (K,+, .), se resumanta un ensemble muni de deux operations.

Corps fini :

Un corps fini ou corps de Galois (Galois Field) est un corps a q elementsnote Fq ou GF (q).

Corps fini binaire :

Un corps fini binaire est un corps fini de caracteristique 2, note F2m ouGF (2m).

Jonathan Taverne 11 / 34

Page 12: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Arithmetique sur les corps finis F2m

Representation :

Les elements de F2m peuvent etre representes en base polynomiale dedegre au plus m − 1 avec des coefficients issus du corps F2 = {0, 1} :

∀a ∈ GF (2m), a =m−1∑i=0

aixi , ai ∈ {0, 1}

Differentes operations definies sur sur F2m :

Addition

Multiplication

Inversion

Reduction

Elevation au carre

Racine carree

Trace

Demi-trace

Jonathan Taverne 12 / 34

Page 13: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Plan

1 Corps finis

2 Courbes elliptiques

3 Implementation

Jonathan Taverne 13 / 34

Page 14: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Equation de Weierstrass

Definition :

Une courbe elliptique E sur un corps K est une courbe definie par :

E : y2 + a1xy + a3y = x3 + a2x2 + a4x + a6

ou a1, a2, a3, a4, a6 ∈ K

Jonathan Taverne 14 / 34

Page 15: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Equation simplifiee de Weierstrass

Si les courbes sont definies sur un corps fini de caracteristique 2 unchangement admissible de variable conduit a une forme simlifiee del’equation de Weierstrass.

Definition :

Une courbe elliptique E sur un corps F2m est definie par :

E/F2m : y2 + xy = x3 + ax2 + b

ou a, b ∈ F2m

Jonathan Taverne 15 / 34

Page 16: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Addition de points

P = (x1, y1) ∈ E (F2m)Q = (x2, y2) ∈ E (F2m)Si P 6= −Q alors nous obtientR = P + Q = (x3, y3) grace auxformules suivantes :

x3 = λ2 + λ+ x1 + x2 + a

y3 = λ(x1 + x3) + x3 + y1

ou λ = (y1 + y2)/(x1 + x2)

Jonathan Taverne 16 / 34

Page 17: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Doublement de point

P = (x1, y1) ∈ E (F2m)Si y1 6= 0 alors nous obtientR = 2P = (x3, y3) grace auxformules suivantes :

x3 = λ2 + λ+ a

y3 = x21 + λx3 + x3

ou λ = x1 + y1/x1

Jonathan Taverne 17 / 34

Page 18: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Coordonnees projectives

Standard : le point projectif (X : Y : Z ), avec Z 6= 0,correspond au point affine (X/Z ,Y /Z )

Jacobian : le point projectif (X : Y : Z ), avec Z 6= 0,correspond au point affine (X/Z 2,Y /Z 3)

Lopez-Dahab : le point projectif (X : Y : Z ), avec Z 6= 0,correspond au point affine (X/Z ,Y /Z 2)

Coordonnees Addition Addition (mixte) Doublement

Affine I + 2M · · · I + 2MProj. Standard 13M 12M 7MProj. Jacobienne 14M 10M 5MProj. Lopez-Dahab 14M 8M 4M

Jonathan Taverne 18 / 34

Page 19: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Bissection de point

1999, E. Knudsen et R. Schroeppel (independamment).

Operation inverse du doublement de point : etant donne unpoint Q = (u, v), on cherche le point P de coordonnees (x , y)tel que Q = 2P.

Cela consiste donc a resoudre

u = λ2 + λ+ a pour λ

v = x2 + u(λ+ 1) pour x

Jonathan Taverne 19 / 34

Page 20: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Bissection de point

L’efficience de l’operation de bissection repose sur :

le calcul de la fonction trace

le calcul de la fonction demi-trace (equation quadratique)

le calcul de la fonction racine carree

Jonathan Taverne 20 / 34

Page 21: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Multiplication scalaire

La multiplication scalaire sur les courbes elliptiques est noteekP ou k est un entier et P un point d’une courbe elliptique.

Cette operation ajoute un point P ∈ E (F2m) k fois :

kP = P + P + · · · + P︸ ︷︷ ︸k fois

Differentes methodes pour calculer cette operation :

utilisant le doublementutilisant la bissectionde gauche a droitede droite a gauche

Jonathan Taverne 21 / 34

Page 22: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Multiplication scalaire : utilisant le doublement

Algorithme 1 Methode Addition-et-Doublement, de ”droite a gauche”

Entree: k = (kt−1, kt−2, ..., k1, k0)2, P ∈ E (F2m) ;Sortie: kP ;1: Q ← O ;2: for i = 0 to t − 1 do3: if ki = 1 then Q ← Q + P ;4: P ← 2P ;5: end for6: return (Q) ;

Cout : t doublements inconditionnels et moyenne de t2 additions

Representation ω-NAF : reduit la densite de 0 dans larepresentation binaire et donc la moyenne d’additions necessaires.

Jonathan Taverne 22 / 34

Page 23: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Multiplication scalaire : utilisant la bissection

L’idee est de recoder l’entier k en une forme k ′ qui permetl’utilisation de la bissection plutot que du doublement.

Analogie sur les entiers :

”doubling”let x = 62x = 12

”halving”let x ′ = 4x = 24x ′

2 = 12

Jonathan Taverne 23 / 34

Page 24: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Multiplication scalaire : utilisant la bissection

Recodification : k ′ = 2(t−1)k mod(n) ⇐⇒ k = k ′

2(t−1) mod(n)

Algorithme 2 Methode Addition-et-Bissection, de ”droite a gauche”

Entree: k ′ = (k ′t , ..., k′1, k′0)2 , P ∈ E (F2m).

Sortie: kP.1: Q ←∞.2: for i from 0 to t do3: if k ′i = 1 then Q ← Q + P.4: P ← P/2.5: end for6: return Q.

Jonathan Taverne 24 / 34

Page 25: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Multiplication scalaire : formulation parallele

Entree: ω, INDEX , scalaire k, P ∈ E(F2m ) ;Sortie: kP ;1: recodifier le scalaire : k ′ = 2INDEX k mod n ;2: obtenir la representation ω − NAF de k ′ ;3: Q1 ← O ;4: DEBUT THREAD 0 DEBUT THREAD 15: pre-calculer Pi = iP initialiser Qi = O

pour i ∈ {1, 3, 5, . . . , 2ω−1 − 1} ; pour i ∈ {3, 5, . . . , 2ω−1 − 1} ;6: for i = t to INDEX + 1 do for i = INDEX to 0 do7: Q1 ← 2Q1 ; if k ′i > 0 then8: if k ′i > 0 then Qk′i

← Qk′i+ P ;

9: Q1 ← Q1 + Pki ; end if10: end if if k ′i < 0 then11: if k ′i < 0 then Q−k′i

← Q−k′i− P ;

12: Q1 ← Q1 − P−ki ; end if13: end if P ← P/2 ;14: end for end for15: FIN THREAD 0 FIN THREAD 116: Q ←

∑2ω−1−1i=1 iQi ;

17: return (Q) ;

Jonathan Taverne 25 / 34

Page 26: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Plan

1 Corps finis

2 Courbes elliptiques

3 Implementation

Jonathan Taverne 26 / 34

Page 27: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Parallelisation

Deux grandes tendances actuellement :

Vectorisation

Instruction SIMD = SSE pour Intel

Nouvelle instruction ”Carry-Less Multiplication”

Multithreading

Jonathan Taverne 27 / 34

Page 28: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Vectorisation et Registres

Jonathan Taverne 28 / 34

Page 29: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Resultats experimentaux

Plateforme : GCC version 4.5, Intel Core i5 (32nm), langage C.

Operation Ce travail Ce travail [1], 2008E (F2233) (ch) (µs) (µs)

Mul. (doublement ou τ) 277199 83 349 (τ)Mul. (bissection ou τ−1) 235538 71 345 (τ−1)

Mul. (parallele) 155363 47 187Acceleration 34 % 46 %

[1] : O. Ahmadi, D. Hankerson et F. Rodrıguez-Henrıquez, Parallelformulation of scalar multiplication on Koblitz curves., 2008

Jonathan Taverne 29 / 34

Page 30: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

CONCLUSION

Jonathan Taverne 30 / 34

Page 31: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Bilan

SSE = obligatoire

Carry-Less Multiplication = grand changement ?

Random-curves VS Koblitz-Curves ...

Jonathan Taverne 31 / 34

Page 32: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Prolongements

ECDSA : Elliptic Curve Digital Signature Algorithm

Operation clef : kP + lQ

Methode : interleaving (reduire le nombre de doublements)

Breaking news : multiplication ... 125 cc ... 110 cc

Jonathan Taverne 32 / 34

Page 33: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Annexe

Jonathan Taverne 33 / 34

Page 34: Cryptographie sur les Courbes Elliptiques Jonathan Tavernedelta.cs.cinvestav.mx › ~francisco › taverne.pdf · Racine carr ee Trace Demi-trace Jonathan Taverne 12/34. Corps nis

Corps finisCourbes elliptiques

Implementation

Jonathan Taverne 34 / 34