cryptographie sur les courbes elliptiques jonathan tavernedelta.cs.cinvestav.mx › ~francisco ›...
TRANSCRIPT
Implementation Efficiente de la MultiplicationScalaire utilisant la ParallelisationCryptographie sur les Courbes Elliptiques
Jonathan Taverne
Universite Lyon 1 - CINVESTAV
24 Septembre 2010
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
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
Corps finisCourbes elliptiques
Implementation
ECDH : Elliptic Curve Diffie-Hellman
Jonathan Taverne 4 / 34
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
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
Corps finisCourbes elliptiques
Implementation
Contexte
Jonathan Taverne 7 / 34
Corps finisCourbes elliptiques
Implementation
Plan
1 Corps finis
2 Courbes elliptiques
3 Implementation
Jonathan Taverne 8 / 34
Corps finisCourbes elliptiques
Implementation
Plan
1 Corps finis
2 Courbes elliptiques
3 Implementation
Jonathan Taverne 9 / 34
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
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
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
Corps finisCourbes elliptiques
Implementation
Plan
1 Corps finis
2 Courbes elliptiques
3 Implementation
Jonathan Taverne 13 / 34
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
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
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
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
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
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
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
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
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
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
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
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
Corps finisCourbes elliptiques
Implementation
Plan
1 Corps finis
2 Courbes elliptiques
3 Implementation
Jonathan Taverne 26 / 34
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
Corps finisCourbes elliptiques
Implementation
Vectorisation et Registres
Jonathan Taverne 28 / 34
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
Corps finisCourbes elliptiques
Implementation
CONCLUSION
Jonathan Taverne 30 / 34
Corps finisCourbes elliptiques
Implementation
Bilan
SSE = obligatoire
Carry-Less Multiplication = grand changement ?
Random-curves VS Koblitz-Curves ...
Jonathan Taverne 31 / 34
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
Corps finisCourbes elliptiques
Implementation
Annexe
Jonathan Taverne 33 / 34
Corps finisCourbes elliptiques
Implementation
Jonathan Taverne 34 / 34