Implentation Efficiente de la Multiplication Scalaire utilisant la Parallisation Cryptographie sur les Courbes Elliptiques

34 

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Scalaire utilisant la Parall´

elisation

Cryptographie sur les Courbes Elliptiques

Jonathan Taverne

Universit´e Lyon 1 - CINVESTAV

(2)

Institution

Centre de Recherche et d’´Etudes Avan¸c´ees de l’Institut Polytechnique National du Mexique

D´epartement d’Informatique, Mexico Environ 100 publications par an

(3)

Cryptographie sur les courbes elliptiques

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

Le pass´e : RSA, factorisation de grands nombres Le pr´esent : ECC, probl`eme du logarithme discret

taille clefsRSA >taille clefsECC

(4)
(5)

Contexte

Op´eration majeure : multiplication scalaire sur les CE

kP =P+P + · · · +P

| {z }

k fois

1991 : les courbe de Koblitz permettent une impl´ementation efficiente de cette op´eration en utilisant l’op´erateur τ

(6)

Contexte

Type de [1] : AHR, Ce travail,

courbes Koblitz-curves random-curves

τ doublement

Op´erations τ−1 bissection

τ et τ−1 doub. et bis.

[1] : O. Ahmadi, D. Hankerson et F. Rodr´ıguez-Henr´ıquez,Parallel

(7)
(8)

Plan

1 Corps finis

2 Courbes elliptiques

(9)

Plan

1 Corps finis

2 Courbes elliptiques

(10)

Groupes et anneaux

Groupe :

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

• est associative

• admet un ´el´ement neutree

tout ´el´ement deG admet un inverse pour•

Anneau :

EnsembleAmuni de deux lois de composition interne (+,•) tels que : (A,+) est un groupe commutatif avec comme ´el´ement neutre 0A la loi .admet un ´el´ement neutre diff´erent de 0A, not´e 1A

(11)

Corps finis

Corps :

Un corps est un anneau commutatif dans lequel tout ´el´ement non nul est inversible. Une telle structure est en g´en´eral not´ee (K,+, .), se r´esumant `a un ensemble muni de deux op´erations.

Corps fini :

Un corps fini ou corps de Galois (Galois Field) est un corps `aq´el´ements not´eFq ouGF(q).

Corps fini binaire :

Un corps fini binaire est un corps fini de caract´eristique 2, not´eF2m ou

(12)

Arithm´

etique sur les corps finis

F

2m

Repr´esentation :

Les ´el´ements deF2m peuvent ˆetre repr´esent´es en base polynomiale de degr´e au plusm−1 avec des coefficients issus du corpsF2={0,1}:

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

X

i=0

aixi , ai∈ {0,1}

Diff´erentes op´erations d´efinies sur surF2m :

Addition Multiplication Inversion Reduction

´

El´evation au carr´e Racine carr´ee Trace

(13)

Plan

1 Corps finis

2 Courbes elliptiques

(14)

´

Equation de Weierstrass

Definition :

Une courbe elliptique E sur un corps K est une courbe d´efinie par :

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

(15)

´

Equation simplifi´

ee de Weierstrass

Si les courbes sont d´efinies sur un corps fini de caract´eristique 2 un changement admissible de variable conduit `a une forme simlifi´ee de l’´equation de Weierstrass.

Definition :

Une courbe elliptique E sur un corpsF2m est d´efinie par :

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

(16)

Addition de points

P = (x1, y1)∈E(F2m)

Q= (x2, y2)∈E(F2m)

SiP 6=−Q alors nous obtient

R=P +Q = (x3,y3) grˆace aux

formules suivantes :

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

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

(17)

Doublement de point

P = (x1, y1)∈E(F2m) Siy16= 0 alors nous obtient R= 2P = (x3,y3) grˆace aux formules suivantes :

x3 =λ2+λ+a

y3 =x12+λx3+x3

(18)

Coordonn´

ees 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/Z2,Y/Z3)

L´opez-Dahab : le point projectif (X :Y :Z), avec Z 6= 0, correspond au point affine (X/Z,Y/Z2)

Coordonn´ees Addition Addition (mixte) Doublement

Affine I+ 2M · · · I + 2M

Proj. Standard 13M 12M 7M

Proj. Jacobienne 14M 10M 5M

(19)

Bissection de point

1999, E. Knudsen et R. Schroeppel (ind´ependamment).

Op´eration inverse du doublement de point : ´etant donn´e un point Q = (u,v), on cherche le point P de coordonn´ees (x,y) tel queQ = 2P.

Cela consiste donc `a r´esoudre

u =λ2+λ+a pour λ

(20)

Bissection de point

L’efficience de l’op´eration de bissection repose sur :

le calcul de la fonction trace

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

(21)

Multiplication scalaire

La multiplication scalaire sur les courbes elliptiques est not´ee

kP o`u k est un entier et P un point d’une courbe elliptique.

Cette op´eration ajoute un pointP ∈E(F2m) k fois :

kP =P+P + · · · +P

| {z }

k fois

Diff´erentes m´ethodes pour calculer cette op´eration :

(22)

Multiplication scalaire : utilisant le doublement

Algorithme 1M´ethode Addition-et-Doublement, de ”droite `a gauche” Entr´ee: k = (kt−1,kt−2, ...,k1,k0)2,P∈E(F2m) ;

Sortie: kP;

1: Q ← O;

2: for i= 0to t1 do

3: if ki = 1then QQ+P;

4: P2P;

5: end for 6: return (Q) ;

Coˆut : t doublements inconditionnels et moyenne de t

2 additions

Repr´esentation ω-NAF: r´eduit la densit´e de 0 dans la

(23)

Multiplication scalaire : utilisant la bissection

L’id´ee est de recoder l’entier k en une forme k′ qui permet

l’utilisation de la bissection plutˆot que du doublement.

Analogie sur les entiers :

”doubling”

letx = 6

2x= 12

”halving” let x′= 4x = 24

(24)

Multiplication scalaire : utilisant la bissection

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

Algorithme 2M´ethode Addition-et-Bissection, de ”droite `a gauche” Entr´ee: k′= (k

t, ...,k1′,k0′)2, P∈E(F2m). Sortie: kP.

1: Q ← ∞.

2: for i from 0 tot do

3: ifk

i = 1 thenQ←Q+P.

4: PP/2.

(25)

Multiplication scalaire : formulation parall`

ele

Entr´ee: ω,INDEX, scalairek,P∈E(F2m) ;

Sortie: kP;

1: recodifier le scalaire :k′= 2INDEXk mod n;

2: obtenir la repr´esentationωNAFdek′; 3: Q1← O;

4: DEBUT THREAD 0 DEBUT THREAD 1

5: pr´e-calculerPi =iP initialiserQi =O pouri∈ {1,3,5, . . . ,2ω1

−1}; pouri∈ {3,5, . . . ,2ω1

−1}; 6: fori=ttoINDEX+ 1do fori=INDEX to0do

7: Q1←2Q1; ifki′>0then

8: if k

i >0then Qk′

i ←Qki′+P;

9: Q1Q1+Pk

i; end if

10: end if ifk′

i <0then

11: if k′

i <0then Q−k′

i ←Q−ki′−P; 12: Q1←Q1−P−ki; end if

13: end if PP/2 ;

14: end for end for

15: FIN THREAD 0 FIN THREAD 1

16: Q←P2

ω1

−1

i=1 iQi;

(26)

Plan

1 Corps finis

2 Courbes elliptiques

(27)

Parall´

elisation

Deux grandes tendances actuellement :

Vectorisation

Instruction SIMD = SSE pour Intel

Nouvelle instruction ”Carry-Less Multiplication”

(28)
(29)

esultats exp´

erimentaux

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

Op´eration Ce travail Ce travail [1], 2008

E(F2233) (ch) (µs) (µs)

Mul. (doublement ouτ) 277199 83 349 (τ)

Mul. (bissection ouτ−1) 235538 71 345 (τ−1)

Mul. (parall`ele) 155363 47 187

Acc´el´eration 34 % 46 %

[1] : O. Ahmadi, D. Hankerson et F. Rodr´ıguez-Henr´ıquez,Parallel

(30)
(31)

Bilan

SSE = obligatoire

Carry-Less Multiplication = grand changement ?

(32)

Prolongements

ECDSA : Elliptic Curve Digital Signature Algorithm

Op´eration clef :kP +lQ

M´ethode : interleaving (r´eduire le nombre de doublements)

(33)
(34)

Figure

Actualización...

Referencias

Actualización...