210 likes | 520 Vues
Courbes elliptiques. Protocole de Diffie-Hellman. Alice choisit x et envoie g x mod N à Bob Bob choisit y , calcule K=(g x ) y mod N qu’il conserve et envoie g y mod N à Alice Alice calcule K=(g y ) x mod N Problème: les exponentiations coûtent chers en calcul et/ou en matériel.
E N D
Protocole de Diffie-Hellman • Alice choisit x et envoie gx mod N à Bob • Bob choisit y, calcule K=(gx)y mod N qu’il conserve et envoie gy mod N à Alice • Alice calcule K=(gy)x mod N • Problème: les exponentiations coûtent chers en calcul et/ou en matériel
Analyse du protocole • On utilise la notion de groupe des entiers modulo N. • On a donc besoin d’un groupe avec une exponentiation. • Le groupe doit être commutatif K=(gx)y mod N =(gy)x mod N • Le problème du logarithme discret doit être difficile
Courbes elliptiques dans R2 • y2=x3+ax+b
Corps de Galois • Pour p premier et nentier supérieur ou égal à 1, on appelle GF(pn) le corps de Galois à pn éléments. • Un élément de cet ensemble est représenté comme un n-uplet depéléments de Z/pZ: e=(e1,…,en). • Cet ensemble est muni d’une addition et d’une multiplication. En fait, c’est un corps: tout élément non nul est inversible. • L’addition est simple: c’est l’addition composantes à composantes dans Z/pZ. • La multiplication est plus compliquée, mais plus simple qu’une multiplication modulo un nombre de la taille de pn. • Pour p et n fixé, GF(pn) est unique à un isomorphisme près.
Courbes elliptiques sur GF(2n) • Soit a et b dans GF(2n) avec b non nul. La courbe elliptique Eassociée est l’ensemble des points (x,y) dans (GF(2n))2 tels que y2+xy=x3+ax+b auquel on adjoint un point spécial O appelé point à l’infini. • La définition est différente pour p>2.
Addition dans les courbes elliptiques • P+O=O+P=P pour tout P dans E • Si P=(x,y), alors (x,y)+(x,x+y)=O dans P. Le point (x,x+y) est noté –P. • Si P=(x,y) alors P+P=(x’,y’) avec x’=x2+b/x2, y’=x2+(x+y/x)x’+x’. • Si P=(x1,y1), Q=(x2,y2), PQ, alors P+Q=(x3,y3) avec x3=R2+R+x1+x2+a, y3=R.(x1+x3)+x3+y1 où R=(y2+y1)/(x2+x1). • (E,+) est un groupe commutatif.
Composante homogène • Afin d’économiser du temps de calcul, on utilise parfois une représentation homogène. • (x,y,z) représente en fait (x/z,y/z) et on récrit les règles d’additions pour éviter les divisions qui sont plus coûteuses. • Exemple: P=(x,y,z) alors 2P=(x’,y’,z’) avec x’=zx5+bz5x, y’=(x2+yz)(x4+bz4)+bz5x, z’=x3z3.
Exponentielle et logarithme discret • Soit E une courbe elliptique et P un point de E. • On définit l’exponentielle de P par 0.P=O, n.P=(n-1).P+P si n 1 et (-n).P = -(n.P) si n -1. • En utilisant la duplication, on peut calculer n.P par la méthode binaire classique. • Le problème du logarithme discret consiste à calculer n, étant donné les valeurs de P et n.P. • Ce problème est réputé au moins aussi difficile que le problème du logarithme discret dans les entiers modulo. On pense même qu’il est plus compliqué.
Diffie-Hellman en courbes elliptiques • Alice choisit un point P aléatoirement sur une courbe elliptique Eet un entier n. • Alice calcule n.P et l’envoie à Bob. • Bob choisit un entier m, calcule K=m.(n.P) et envoie m.P à Alice. • Alice calcule K=n.(m.P). • Problèmes: déterminer une courbe elliptiques et choisir des points aléatoirement dans la courbe.
Choix d’une courbe elliptique • E est définie par l’équation y2+xy=x3+ax+b. • Si on choisit aléatoirement a et b, pour choisir un point sur E, il faut résoudre une équation du troisième degré sur GF(2n) Problème difficile. • En fait, on choisit un point quelconque x0, y0 et on choisit a. ba alors une solution unique que l’on peut calculer facilement. • Si on doit choisir plusieurs points aléatoirement sur la courbes on calculera N.(x0,y0) avec n très grand aléatoire. En fait N>>2n.
EC-DSA • Problème: on a une fonction de hachage publique h(genre MD-5) et on veut signer des messages. • EC-DSA est la contrepartie de l’algorithme DSA classique au niveau des courbes elliptiques.
EC-DSA (Description) • On suppose que l’ordre de P est q (i.e. q.P=0) • Alice choisit aaléatoire dans [0,q-1]. Elle calcule aPqu’elle publie et conserve secrètement a. • Alice veut signer un message m. Elle calcule r=kP et s=k-1(h(m)+ar) mod q. • Alice envoit (m,r,s) à Bob. • Bob vérifie que kP=h(m)s-1.P+rs-1(aP). • Si oui, le message m a bien été envoyé par Alice. • Problème: Comment calculer l’ordre de P ? Est-ce qu’il existe toujours ?
Rappel sur les groupes • Soit (G,+) un groupe fini de cardinal N et dont l’unité pour l’addition est 0. • Soit x un élément de G, on définit la suite v0=0, vn+1=vn+x. • Alors il existe k>0 avec vk=0. • La plus petite valeur pour laquelle vk=0 s’appelle l’ordre de x. • L’ordre de x divise N (théorème de Lagrange).
Compter les points d’une courbe elliptique • Dans l’EC-DSA, on a pas besoin nécessairement de l’ordre exact de l’élément: un multiple suffit. • On peut donc prendre q comme étant égal au cardinal de la courbe elliptique. • L’algorithme de Schoof permet de compter les points d’une courbes elliptiques. • Certaines courbes elliptiques ont par construction un nombre de points facile à calculer. • Enfin les courbes elliptiques faisant partie de standards bien définis sont données dans les descriptions techniques avec leur nombre de points. Exemple: http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf
RSA en courbes elliptiques • Il existe des définitions qui utilise des courbes elliptiques dites singulières (Demytko, Maurer). • Ces systèmes sont définis sur des courbes elliptiques à coefficients dans des anneaux. • Malheureusement, il existe des attaques contre ces systèmes. • Pour éviter ces attaques, le choix des courbes doit suivre certaines règles.
Intérêt pratique • Calculs plus simples qu’avec les systèmes à base de modulo. • De plus la sécurité semble supérieure. Comparaison: Taille de clés assurant le même niveau de sécurité
Conclusion • La cryptographie à courbes elliptiques est une alternative à la cryptographie classique à clé publique. • Les algorithmes sont moins gourmands en termes de temps de calcul et de matériel. • Ils permettent aussi un débit de données plus élevés. • La cryptographie à courbes elliptiques est sans doute une approche appelée à se répandre dans les applications pratiques. • Il existe d’autres constructions à bases de courbes (courbes hyper-elliptiques de Kobler).