• Aucun résultat trouvé

1.4 Les courbes elliptiques

1.4.2 Les courbes elliptiques pour la cryptographie

Les courbes elliptiques sont les courbes les plus simples apr`es les droites et les coniques. On peut consid´erer une courbe elliptique sur un corps fini F, elle intervient ainsi dans certains protocoles cryptographiques. On peut d´efinir une courbe elliptique E sur un corps fini F not´e E( F) par son ´equation `a la forme de Weierstrass [4] :

E: y2+a1xy+a3y=x3+a2x2+a4x+a6. (1.1) o`u a1, a2, a3,a4et a6F.

Les corps sont des syst`emes de nombres bien connus tels que les nombres rationnels Q ou les nombres r´eels R et les nombres complexes C. Un corps est un ensemble F poss´edant deux op´erations ´el´ementaires, l’addition (not´ee +) et la multiplication (not´ee .), satisfaisant les pro- pri´et´es arithm´etiques suivantes :

– (F, +) est un groupe ab´elien (avec l’addition) et l’´el´ement neutre est 0. – (F∗, .) est un groupe ab´elien (avec la multiplication) et l’´el´ement neutre est 1. – La distributivit´e est respect´ee : (a+b).c =a.c + b.c pour tout a,b,c ∈ F.

Un corps est fini quand il contient un nombre fini d’´el´ements, autrement dit l’ensemble F est fini. Il existe trois grands types de corps finis qui sont utilisables pour l’impl´ementation de la cryptogra- phie pour les courbes elliptiques : les corps premiers, les corps binaires et les corps d’extension. L’ordre d’un corps fini est le nombre d’´el´ements pr´esents dans le corps. Compter le nombre de points d’une courbe elliptique d´efinie sur un corps fini fait partie des probl´ematiques essentielles dans la recherche des courbes cryptographiquement sˆures. La communaut´e des math´ematiciens s’en est notamment int´eress´e, c’est Hasse en 1922 qui d´emontra le r´esultat sur ce nombre ´egalement appel´e ordre du groupe des points d’une courbe elliptique sur un corps fini :

| #E(Fp) − p − 1 ≤ 2p | (1.2)

Les corps premiers not´es par Fpo`u p= qmet q un nombre premier (appel´e la caract´eristique de Fp)

sont g´en´eralement utilis´es en cryptographie. Si m=1 alors Fp est appel´e un corps premier. Si m

≥ 2 alors Fpest appel´e un corps d’extension. Les corps binaires sont des corps finis d’ordre 2m `a

coefficient dans {0,1}. Dans cette th`ese, nous avons travaill´e avec les corps premiers Fp, o`u p >3.

Pour ces corps premiers, si la caract´eristique est sup´erieure `a 3, l’´equation de Weierstrass pour une courbe elliptique sur un corps fini premier not´e E(Fp)peut ˆetre repr´esent´ee par :

E: y2=x3+ax+b . (1.3)

o`u a et b ∈ Fp.

Pour ˆetre utilis´ee en cryptographie, la condition n´ecessaire est que le discriminant du polynˆome soit ´egal `a 0. Cette condition garantie que, pour tout point de la courbe elliptique, passe une et une seule tangente.

f(x) = x3+ ax + b, △ = 4a3+27b2 ,0. (1.4) L’ensemble des points (x, y), dont les coordonn´ees x, y v´erifient l’´equation 1.1 et le point `a l’infini not´e ∞ sont sur la courbe et forment un groupe ab´elien additif (E( Fp),+):

(E( Fp),+) = {x, y} ∈ Fp.Fp : y2- x3- ax - b =0 ∪ {∞} (1.5)

Ce groupe est principalement constitu´e de deux op´erations de base : le doublement de point (2P) et l’addition de points (P+Q) o`u P et Q sont deux points differents de la courbe.

Etant donn´es P=(xp,yp) et Q=(xq,yq) deux points (, ∞ ) d’une courbe elliptique sur un corps

fini Fpnot´e E(Fp). G´eom´etriquement, l’addition de point (P + Q) avec P, Q consiste `a prendre

le sym´etrique du troisi`eme point (P*Q) d’intersection de la droite PQ avec la courbe elliptique. Le doublement d’un point est le cas particulier d’addition o`u P = Q, on prend alors le sym´etrique du point d’intersection de la tangente en P avec la courbe elliptique. Si P et Q sont sym´etriques par rapport `a l’axe des x, dans ce cas la droite PQ coupe la courbe au point `a l’infini (qui est le z´ero du groupe) et donc Q = -P.

Figure 1.4 – Addition de points

L’addition de points P+Q=(xpq,ypq) ou le doublement de point 2P=P+Q=(xpq,ypq) si P=Q

peuvent ˆetre calcul´es `a travers les ´equations 1.6 et 1.7        xpq= λ2− xp− xq ypq = λ(xp− xpq) − yp (1.6)                λ = yq− yp xq− xp ,si P , Q λ = 3x 2 p+ a 2yp ,si P = Q (1.7)

1.4.2.1/ Le syt`eme du Logarithme Discret Elliptique

Si P est un point de la courbe elliptique E(Fp) d’ordre n, et Q un autre point de la courbe, la difficult´e de trouver l’entier d ∈ [0, n-1] tel que Q=dP est appel´e : le probl`eme du logarithme discret elliptique. L’entier d est appel´e logarithme discret de Q en base P not´e d=logpQ. Soit une courbe elliptique sur un corps fini E(Fp)(a,b)obtenue avec l’´equation 1.8 pour 0<x<p et a,b≥0 et

<p.

y2 = x3+ ax + b mod p (1.8)

Soit P un point d’ordre n (un nombre premier), le groupe cyclique g´en´er´e par P et not´e <P> = { ∞, P, 2P, 3P, ... ,(n-1)P }. Ainsi le nombre premier p, l’´equation de la courbe elliptique E, le point

Pet son ordre n sont les param`etres publiques des cryptosyst`emes. La cl´e priv´ee est un entier d s´electionn´e uniform´ement au hasard dans l’intervalle [1, n-1] et la cl´e publique correpondante est le point Q=dP

1. G´en´eration de cl´es avec le Logarithme Discret Elliptique : une paire de cl´es est associ´ee `a un ensemble de param`etres publiques (p, E, P, n) o`u p est un nombre premier, E une courbe elliptique, P le point g´en´erateur et n son ordre, c’est `a dire que nP=∞. Une cl´e priv´ee d est s´electionn´ee au hasard dans l’intervalle [1, n-1] et la cl´e publique correspondante est Q=dP. Le probl`eme du logarithme discret consiste `a d´eterminer d `a partir des param`etres publiques (p, E, P, n).

Algorithm 11 G´en´eration de cl´es avec le Logarithme Discret Elliptique

Entr´ees : p, E, P, n // les param`etres publiques g´en´er´es

Sorties : Cl´e publique (Q) et cl´e priv´ee d g´en´er´ees begin

1. S´electionner au hasard d dans l’intervalle [1, n-1] 2. Calculer Q=dP

3. Retourner(Q, d)

2. Chiffrement avec le Logarithme Discret Elliptique (ElGamal) : le message m se pr´esente sous forme d’un point M, il est chiffr´e en l’additionnant au point de la courbe kQ o`u k est un entier choisi al´eatoirement par l’´emetteur, et Q est un point repr´esentant la cl´e publique du r´ecepteur. Ainsi, l’´emetteur envoie C2=M+kQpet C1=kPau r´ecepteur qui, `a partir de sa cl´e priv´ee d calcule dC1=d(k)P=k(dP)=kQet retrouve m=C2-kQ.

Algorithm 12 Chiffrement ElGamal avec les courbes elliptiques

Entr´ees : (p, E, P, n), Q et m // les param`etres publiques, la cl´e publique et le message clair m

Sorties : (C1,C2) // le texte chiffr´e

begin

1. Repr´esenter le message m en tant que point M ∈ E(Fp)

2.S´electionner k ∈[1, n-1] 3. Calculer C1=kP 4. Calculer C2=M+kQ 5. Retourner(C1, C2)

3. D´echiffrement avec le Logarithme Discret (ElGamal) : Algorithm 13 D´echiffrement ElGamal avec les courbes elliptiques

Entr´ees : (p, E, P, n), d et C1, C2 // les param`etres publiques, la cl´e priv´ee et le message chiffr´e

Sorties : m // message en clair

begin

1. Calculer M=C2- dC1,et extraire m de M 2. Retourner(m)

4. Signature avec le Logarithme Discret Elliptique : le signataire s´electionne un entier k ∈ [1, n-1] et calcule le point kP de coordonn´ees (x1, y1), soit r=x1. Il calcule k−1modn puis s =k−1( h + dr)o`u d est la cl´e priv´ee et h est un condens´e sur le message m avec une fonction de hachage cryptographique H() : h=H(m). L’´emetteur envoie la signature (r, s) et le message

mpour v´erification.

Algorithm 14 Signature avec les courbes elliptiques

Entr´ees : (p, E, P, n), d et m // les param`etres publiques, la cl´e priv´ee et le message m

Sorties : (r, s) // la signature

begin

1. S´electionner k ∈ [1, n-1].

2. Calculer kP de coordonn´ees (x1, y1), soit r=x1. si r modn=0 retour `a l’´etape1 3. Calculer k−1mod n

4. Calculer h=H(m)

5. Calculer s =k−1( h + dr). Si s=0, alors retour `a l’´etape 1 6. Retourner(r, s)

5. V´erification de la signature DSA : `a la r´eception de la signature (r, s), l’autre partie calcule

w=s−1mod n, u1=hw mod n, u2=rw mod npuis u1P+u2Qet obtient comme r´esultat un point de coordonn´ees (x2, y2). La signature est v´erifi´ee si r=x2.

Algorithm 15 V´erification de signature avec les courbes elliptiques

Entr´ees : (p, E, P, n), Q, m et (r, s) // les param`etres publiques, la cl´e publique, le message m et la signature (r,s)

Sorties : Acceptation ou rejet de la signature begin

1. Calculer w=s−1mod net h=H(m) 2. Calculer u1=hw mod net u2=rw mod n

3. Calculer u1P+u2Qet obtenir le point de coordonn´ees (x2, y2) 4. Accepter si r=x2, et rejet sinon

Le probl`eme du logarithme discret sur une courbe elliptique bien choisie est plus rapide que celui du logarithme discret dans les corps finis. L’algorithme connu comme ´etant le plus efficace pour r´esoudre un tel probl`eme est `a temps exponentiel, contrairement au syst`eme RSA pour lequel il existe des algorithmes `a temps sous-exponentiel. Un algorithme est sous-exponentiel si le loga- rithme du temps d’ex´ecution croˆıt asymptotiquement moins vite que tout polynˆome donn´e. Le niveau de s´ecurit´e d’une cl´e est en directe correspondance avec sa taille. Ainsi, pour une mˆeme r´esistance, les courbes elliptiques requi`erent des cl´es plus courtes que RSA. Or l’usage de cl´es de petites tailles conf`ere beaucoup d’avantages : les calculs sont plus rapides, la consommation ´electrique globale est diminu´ee, et l’espace m´emoire est r´eduit. Contrairement `a RSA, les courbes elliptiques sont plus rapides pour les op´erations priv´ees que pour les op´erations publiques. RSA de- mande moins de temps en chiffrement et v´erification de signature num´erique qu’en d´echiffrement et la g´en´eration de signature qui sont lents et demandent plus de ressources. Au contraire, les courbes elliptiques en cryptographie n´ecessitent plus de calcul lors du chiffrement et v´erification de la signature que le d´echiffrement et la g´en´eration de la signature. N´eanmoins, non seulement le chiffrement et la v´erification sont efficaces, mais ´egalement le d´echiffrement et la g´en´eration de signature. Ainsi, elles sont pratiques dans les environnements `a fortes contraintes de ressources tels que les r´eseaux de capteurs, les cartes `a puces, les t´el´ephones mobiles, etc.. Les ECCs sont appel´ees `a remplacer progressivement RSA [102]. Le Tableau 1.1 pr´esente une comparaison en termes de taille de cl´es des cryptosyst`emes ECC et RSA pour le mˆeme niveau de s´ecurit´e.

Cl´es RSA (bits) Cl´es ECC(bits)

1024 160

2048 224

3072 256

7680 384

5360 521

Table 1.1 – Comparaison entre ECC et RSA (param`etres de NIST)