Scalaire utilisant la Parall´
elisation
Cryptographie sur les Courbes ElliptiquesJonathan Taverne
Universit´e Lyon 1 - CINVESTAV
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
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
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 τ
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
Plan
1 Corps finis
2 Courbes elliptiques
Plan
1 Corps finis
2 Courbes elliptiques
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
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
Arithm´
etique sur les corps finis
F
2mRepr´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
Plan
1 Corps finis
2 Courbes elliptiques
´
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
´
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
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
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
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
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 λ
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)
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 :
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 t−1 do
3: if ki = 1then Q←Q+P;
4: P←2P;
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
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
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: P←P/2.
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: Q1←Q1+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 P←P/2 ;
14: end for end for
15: FIN THREAD 0 FIN THREAD 1
16: Q←P2
ω−1
−1
i=1 iQi;
Plan
1 Corps finis
2 Courbes elliptiques
Parall´
elisation
Deux grandes tendances actuellement :
Vectorisation
Instruction SIMD = SSE pour Intel
Nouvelle instruction ”Carry-Less Multiplication”
R´
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
Bilan
SSE = obligatoire
Carry-Less Multiplication = grand changement ?
Prolongements
ECDSA : Elliptic Curve Digital Signature Algorithm
Op´eration clef :kP +lQ
M´ethode : interleaving (r´eduire le nombre de doublements)