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

Post on 28-Jun-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related