DISPOSITIF DESTINE A REALISER DES CALCULS D'EXPONENTIATION APPLIQUES A DES POINTS D'UNE COURBE
ELLIPTIQUE.
La présente invention concerne un dispositif de destiné à réaliser des calculs d'exponentiation appliqués à des points d'une courbe elliptique. Des tels dispositifs sont notamment utilisés pour mettre en oeuvre des algorithmes cryptographiques du type à clé publique .
Les algorithmes à clé publique sur courbe elliptique permettent des applications cryptographiques de type chiffrement, vérification de signature, authentification...
Ils sont notamment très utilisés dans des applications de type carte à puce, parce qu'ils permettent d'utiliser des clés de faible longueur, autorisant des temps de traitement assez courts, et qu'ils peuvent ne pas nécessiter l'utilisation de crypto-processeurs pour leur implémentation, ce qui diminue le prix de revient des composants électroniques dans lesquels ils sont implémentés.
Il existe différentes paramétrisations pour définir une courbe elliptique applicable en cryptographie . Une paramétrisation couramment utilisée est la paramétrisation dite de Weierstrass.
Pour mémoire, si IK est un corps, l'ensemble des points (x,y) C IKxlK vérifiant l'équation générale de Weierstrass : y2 + alxy + a3y = x3 + a2x2 + a4x + a.6 , avec ai £ IK et du point à l'infini O forme une courbe elliptique. Toute courbe elliptique sur un corps peut s'exprimer sous cette forme.
L'ensemble des points (x,y) et le point à l'infini forment un groupe abélien, dans lequel le point à l'infini est l'élément neutre et dans lequel l'opération de groupe est l'addition de points, notée + et donnée par la règle bien connue de la sécante et de la tangente. Dans ce groupe,* la paire (x,y), où l'abscisse x et l'ordonnée y sont des éléments du corps IK, forme les coordonnées affines d'un point P de la courbe elliptique. Le point P représenté par la paire (x,y) peut aussi être représenté par des coordonnées projectives de la forme générale (X:Y:Z). Ces coordonnées sont notamment intéressantes dans les calculs d'exponentiation appliqués à des points de la courbe elliptique, puisqu'ils ne comportent alors pas de calculs d'inversion.
Il existe des expressions simplifiées de la paramétrisation de Weierstrass, selon la caractéristique du groupe. On rappelle que dans un corps, le nombre d'éléments du corps s'exprime toujours ' sous la forme pn, où p est un nombre premier, p est la caractéristique du corps. Par exemple, dans le cas où la caractéristique du corps est différente de 2 et 3, l'équation de Weierstrass se simplifie de la façon suivante : E/ικ : y2= x3 + ax +b . Selon les coordonnées avec lesquelles on travaille, et la paramétrisation qui définit la courbe elliptique, différentes formules d'addition, de soustraction et de doublement de points sont applicables. Ces formules de 'sont données dans de nombreuses références connues de 1 ' omme de métier .
Dans l'exemple d'une courbe elliptique E donnée par une paramétrisation de Weierstrass sur un corps de caractéristique différente de 2 et 3 :
E/ικ : y2= x3 + ax +b , ces formules sont les suivantes :
L'inverse d'un point P=(xl,yl) de cette courbe est le point -P= (xl,-yl) .
L'opération d'addition des points P=(xι,yι) et Q= (x2,y2) de cette courbe, avec Q≠-P, donne un point R*=(x3,y3)=P+Q tel que : x3=λ2-xι-x2 et y3=λ(xι-x3) -ylr avec λ= (y2-yι) / (x2-Xι) , si P≠Q (formule 1) et λ=(3xι2+a) /2yx_ si P=Q. (formule 2).
La formule 1 est la formule d'addition de deux points distincts : R= P + Q tandis que la formule 2 est la formule de doublement du point : R=2.P.
Les opérations d'addition ou soustraction et de doublement d'un point sont les opérations de base utilisées dans les algorithmes d'exponentiation sur ces courbes elliptiques : étant donné un point P appartenant à une courbe elliptique et d un nombre prédéterminé (un entier) , le résultat de la multiplication scalaire du point P par l'exposant d est un point Q de la courbe tel que Q=d.P=P+P+.. ,+P, d fois. Les algorithmes cryptographiques à clé publique sur courbe elliptique sont ainsi basés sur la multiplication scalaire d'un point P sélectionné sur la courbe, par un nombre prédéterminé d, la clé secrète. Le résultat de cette multiplication scalaire d.P est un point Q de la courbe elliptique. Dans un exemple d'application au chiffrement selon le procédé de El
Gamal, le point Q obtenu est la clé publique qui sert au chiffrement d'un message.
Le calcul de la multiplication scalaire Q=d.P peut être réalisé par différents algorithmes d'exponentiation. On peut en citer quelques uns, comme l'algorithme de doublement et d'addition {double and add dans la littérature anglo-saxonne) basé sur la représentation binaire de l'exposant d, -celui d'addition-soustraction basé sur la représentation binaire signée de l'exposant d, l'algorithme avec fenêtre... Tous ces algorithmes utilisent les formules d'addition, de soustraction et de doublement définies sur les courbes elliptiques.
Cependant, ces algorithmes se révèlent sensibles aux attaques visant à découvrir notamment la valeur de la clé secrète. On peut citer notamment les attaques à canaux cachés, simples ou différentielles.
On entend par attaque à canal caché simple ou différentielle, une attaque basée sur une grandeur physique mesurable de l'extérieur du dispositif, et dont l'analyse directe (attaque simple) ou l'analyse selon une méthode statistique (attaque différentielle) permet de découvrir des informations contenues et manipulées dans des traitements dans le dispositif. Ces attaques peuvent ainsi permettre de découvrir des informations confidentielles. Ces attaques ont notamment été dévoilées par Paul Kocher [Advances in Cryptology - CRYPTO '99, vol . 1666 of Lecture Notes in Computer Science, pp. 388-397. Springer-Verlagf 1999) . Parmi les grandeurs physiques, qui peuvent être exploitées à ces fins, on peut citer la consommation en courant, le champ électromagnétique ... Ces attaques
sont basées sur le fait que la manipulation d'un bit, c'est à dire son traitement par une instruction particulière, a une empreinte particulière sur la grandeur physique considérée selon sa valeur. Dans les systèmes cryptographiques basés sur des courbes elliptiques, ces attaques visent la multiplication scalaire.
On a donc dû prévoir des procédés de contre-mesure permettant d'empêcher les différentes attaques de prospérer. En d'autres termes, on a cherché à sécuriser les algorithmes d'exponentiation.
Si on prend l'exemple d'un algorithme d'exponentiation sur courbes elliptiques avec la paramétrisation de Weierstrass, cet algorithme peut être susceptible aux attaques à canaux cachés de type simple, car les opérations de base 'de doublement et d' addition sont sensiblement différentes comme le montre le calcul du lambda dans les formules 1 et 2 supra. Par ailleurs, la paramétrisation de courbes elliptiques comme intersection de deux quadriques, dite paramétrisation de Jacobi et décrite dans l'article de D.V. Chudnovsky et G.V. Chudnovsky (Advances in Applied Mathematics, Vol .7 (1986/7) , pp.385-434), permet d'utiliser les mêmes formules pour l'addition ou le doublement de points.
Dans cette paramétrisation de Jacobi, les points sont représentés en coordonnées projectives par 4 coordonnées et l'opération de doublement ou d'addition de points sur la courbe elliptique nécessite 17 multiplications (dont une multiplication par une
constante) dans le corps sur lequel est défini la courbe .
Un objet de l'invention est un dispositif de calcul d'exponentiation intrinsèquement protégé contre des attaques visant à découvrir une donnée en cours de traitement dans un algorithme d'exponentiation, comme notamment les attaques à canaux cachés simples.
Un autre objet de l'invention est un dispositif de calcul d'exponentiation d'efficacité améliorée, en termes de temps de calcul.
Dans l'invention, on s'est intéressé à une autre forme de paramétrisation de courbes elliptiques : la paramétrisation de Hesse. Si IK est un corps de caractéristique différente de 3, l'ensemble des points (x,y) ε IKxlK vérifiant l'équation générale de Hesse : EH/IK: x3+y3+l=3Dxy, avec D £ IK et D3≠l, et du point à l'infini O forme une courbe elliptique. Cette courbe elliptique a comme particularité de comprendre un point d'ordre 3. On rappelle que le point P est un point d'ordre 3 si 3.P=O.
On peut montrer que dans un corps IK de caractéristique différente de\ 3, on peut définir un isomorphisme de groupe entre une courbe elliptique de Hesse et toute autre courbe elliptique comprenant un point d'ordre 3.
Si on prend l'exemple d'une courbe elliptique Ew répondant à une équation de Weierstrass dans un corps fini de caractéristique différente de 2 et 3, il existe un nombre D £ IK tel que l'équation de Hesse u3+v3+l=3Duv définit une courbe elliptique isomorphe EH de la courbe elliptique de Weierstrass Ew d'équation :
y2 = x3 -27D (D3+8 ) x + 54 (D6-20D3 - 8 ) , avec les transformations suivantes :
(u, v) = (η (x + 9D2 ) , -1 + η (3D3 - Dx - 12 ) et
(x, y) = ( -9D2 + ξu, 3ξ (v - 1 ) )
où η = [ 6 (D3-1 ) (y+9D3-3Dx-36) ] / [x+9D2) 3+ ( 3D3-Dx-12 ) 3] et ξ = [12(D3-l)]/[Du+v+l] .
On montre que cette courbe de Weierstrass comprend un point d'ordre 3. D'une manière générale, dans un corps fini de caractéristique différente de 3, lorsqu'il existe un point d'ordre 3 sur une courbe elliptique E„ de paramétrisation quelconque, on sait définir une courbe elliptique de Hesse isomorphe. On rappelle que si deux courbes elliptiques Ew et EH sont isomorphes, alors il existe une fonction bijective φ telle qu'à un point P d'une courbe Ew, elle fait correspondre un point P', image du point P, sur l'autre courbe EH, et telle que la fonction inverse φ-1 fait correspondre au point image P', le point pré-image P sur la courbe elliptique Ew.
Un intérêt pratique des isomorphismes de groupe est de permettre de passer sur un groupe dans lequel l'algorithme d'exponentiation pour calculer Q=dP est plus intéressant, c'est à dire moins coûteux en temps, en ressources mémoire ou autres, pour effectuer ce calcul dans ce groupe, puis d'appliquer 1 ' isomorphisme inverse pour revenir sur la courbe (le groupe d' origine) . Or on a vu qu'un problème lié à la mise en oeuvre des algorithmes d'exponentiation sur les courbes elliptiques est leur vulnérabilité aux attaques dites à
canaux cachés. Quand ces algorithmes sont sécurisés, un problème lié à leur mise en oeuvre devient leur temps d' exécution.
Dans l'invention, on montre que l'on peut définir un dispositif de calcul pour les opérations de base de ces algorithmes, à savoir, les additions, soustractions ou doublements de points, sur une courbe de Hesse EH, et que ce dispositif est intrinsèquement protégé contre les attaques précitées et efficaces en termes de temps d'exécution.
Si on s'intéresse plus particulièrement aux coordonnées projectives, dans un tel groupe, les formules d'addition, de soustraction et de doublement sur une courbe elliptique de Hesse EH sont les suivantes :
Soit Pl=(Uχ:Vχ:Wχ) et P2= (U2:V2 :W3) deux points d'une courbe de Hesse EH en coordonnées projectives.
La formule d'addition entre les deux points PI et P2 est la suivante, en notant P3=P1+P2≈ (U3:V3:W3) : P3= (V1 2U2W2-V2 2U1W1 : U1 2V2W2-U2 2V1W1 : W1 2U2V2-W2 2U1V1)
La formule de doublement définissant le point P3=2P1, est la suivante :
Par ailleurs, les coordonnées projectives du point -PI sont les suivantes : -Pl= (Vχ:Uχ.Wχ) . Il n'y a donc pas de soustraction à effectuer dans le corps pour calculer l'inverse d'un point sur la courbe de Hesse, contrairement à d'autres parametrisations. Il y a juste des permutations de coordonnées à effectuer.
Ainsi, on peut déduire la formule de soustraction de la formule d'addition vue précédemment, ce qui donne : (Uχ:Vχ_.Wχ) - (U2:V2_W2) = (Ux: v"χ :Wχ) + (V2 :U2: W2)
Ainsi, pour effectuer le calcul d'une soustraction entre deux points Pi et P2, il suffit d'appliquer une permutation des coordonnées projectives au point P2, de manière à - obtenir le point P' 2= (V2:U2:W2) , et d'effectuer l'addition du point PI et du point P'2 ainsi défini selon la formule d'addition. De même, pour effectuer le calcul du doublement, on montre que si l'on applique une première permutation des coordonnées projectives. au point PI, de manière à obtenir le point P' 1= (W :Uχ:Vχ) , et une deuxième permutation de manière à obtenir le point P"l= (Vχ:Wχ:Uχ) , on obtient le résultat du doublement du point PI en utilisant la formule d'addition appliquée aux points P'1 et P"l.
Ainsi, l'idée à la base de l'invention est d'utiliser dans un dispositif d'exponentiation appliqué à des points d'une courbe elliptique, des moyens de calcul implémentant la formule d'addition de points d'une courbe de Hesse, et des moyens de permutation commandés par le type d'opération à effectuer, addition, soustraction -ou doublement, pour appliquer les coordonnées ainsi mises en forme en entrées des moyens de calcul.
Les calculs effectués sont ainsi toujours les mêmes, et il n'est pas possible de distinguer dans le déroulement de l'algorithme quel type d'opération est réalisé : addition, soustraction ou doublement. L'empreinte est la même dans tous les cas.
En outre, on améliore considérablement la vitesse de calcul de l'exponentiation.
L'invention est d'application générale. Soit on garde les parametrisations habituellement utilisées dans les systèmes cryptographiques, comme la paramétrisation de Weierstrass, et' l'on prévoit une première étape de calcul des points images sur la courbe isomorphe de Hesse, pour utiliser le dispositif de calcul selon l'invention, et une seconde étape de calcul du point pré-image dans la courbe de Weierstrass du point obtenu en sortie du dispositif de calcul. On a ainsi une transposition des calculs d'addition, soustraction et doublement sur la courbe de Hesse et ceci à chaque fois que l'algorithme d'exponentiation a à exécuter une telle opération ,sur des points de la courbe elliptique de l'application.
On peut aussi prévoir que l'algorithme d'exponentiation s'applique directement à des points d'une courbe de Hesse. Telle que caractérisée, l'invention concerne donc un dispositif destiné à réaliser des calculs d'exponentiation appliqués à des points d'une courbe elliptique définie sur un corps IK de caractéristique différente de 3 et comprenant un point d'ordre 3. Selon l'invention, il comprend un dispositif de calcul pour effectuer une opération d'addition, de soustraction ou de doublement de points d'une courbe elliptique définie par une paramétrisation de Hesse sur un corps de caractéristique différente de 3, ledit dispositif de calcul comprenant des moyens implicites ou explicites de permutation des coordonnées des points appliquées en entrées dudit dispositif en fonction de l'opération à
effectuer, et des moyens de calcul de l'addition des deux points représentés par les coordonnées fournies par lesdits moyens de permutation.
D'autres caractéristiques et avantages de l'invention sont présentés dans la description suivante, faite en référence aux dessins annexés, dans lesquels : la figure 1 est un schéma bloc général des moyens de calcul d'addition, de soustraction et de doublement d'un dispositif de calcul d'exponentiation selon l'invention et la figure 2 est un tableau représentatif des permutations appliquées dans le dispositif de calcul d'exponentiation en fonction de l'opération à effectuer : addition, soustraction ou doublement.
Un dispositif de calcul d'exponentiation comprend de manière générale une unité centrale (processeur par exemple) et des moyens mémoire comprenant la mémoire programme, la mémoire de travail et des éléments de mémoire non volatile ré-inscriptibles . La mémoire programme contient les codes instruction et les données
(adresses, paramètres) selon lequel le programme de calcul est exécuté. La mémoire de travail fournit notamment les registres nécessaires pour effectuer les différents calculs, notamment pour contenir les coordonnées des points, et les éléments non volatiles contiennent des données confidentielles, comme notamment le multiplieur d (clé secrète) du calcul d'exponentiation appliqué au point P : Q=d.P.
Dans l'invention, le dispositif de calcul est tel qu'il permet d'utiliser une unique formule de calcul, correspondant à une addition de points, pour effectuer aussi bien des additions, des soustractions ou des doublements de points. On rappelle que ce sont les opérations de base utilisées dans les divers algorithmes d'exponentiation de l'état de la technique.
Sur la figure 1, on a représenté sous forme de bloc-diagramme un dispositif 1 de calcul selon l'invention. Ce dispositif comprend une entrée de commande OP, et deux entrées PI et P2, sur lesquelles il reçoit les coordonnées projectives des points sur lesquels la commande OP doit être appliquée. Cette commande OP et les coordonnées projectives des deux points PI et P2 appliqués en entrées sont fournis par le dispositif d'exponentiation. Ce dernier reçoit en retour le point résultant P3= (U3:V3:W3) .
Le dispositif 1 comprend des moyens de permutation 10 recevant les coordonnées projectives (Uχ:Vχ:Wχ) et (U2:V2:W2) des deux points PI et P2 appliqués en entrée et fournissant en sortie pour chaque point, des coordonnées fonction de la commande OP reçue.
Si la commande OP correspond à une commande d'addition des deux points PI et P2, les moyens de permutation fournissent en sortie les coordonnées reçues en entrée.
Si la commande OP correspond à une commande de soustraction du point P2 au point PI, les coordonnées correspondant au point Pi sont inchangées, tandis que celles correspondant au point P2 subissent une permutation du type (V2:U2:W2), représentant un point P'2.
Si la commande OP correspond à une commande de doublement d'un point PI, le dispositif 1. reçoit en entrée, les coordonnées de ce point. Les coordonnées du point Pi subissent une première permutation du type (Wχ:Uχ:Vχ), représentant un point P'1, et une deuxième permutation du type (Wχ:V:Uι) représentant un point P"l.
En pratique, les moyens de permutation 10 fournissent deux points de sortie RI et R2. Le tableau représenté sur la figure 2 résume la fonction des moyens 10 de permutation, en donnant les coordonnées des points de sortie Ri et R2 en fonction de l'opération OP à appliquer au (x) point (s) appliqués en entrée . Les moyens de permutation peuvent être implémentées de façon implicite ou explicite.
Dans le cas d'une implémentation implicite, les permutations sont réalisées directement en initialisant les registres temporaires qui contiennent les coordonnées des points de sortie Ri et R2, en fonction de la commande OP, par exemple au moyen d'une indexation des registres temporaires sur la valeur de cette commande OP .
Dans le cas d'une implémentation explicite, ces permutations sont très simples à implementer et peu coûteuses en temps de calcul. On veillera cependant que cette dernière résiste aux attaques à canaux cachés.
Le dispositif 1 de calcul selon l'invention comprend aussi des moyens 11 de mise en œuvre de l'algorithme d'addition de deux points d'une courbe elliptique selon la paramétrisation de Hesse en coordonnées projectives. Ces moyens 11 appliquent cet
algorithme d'addition aux points RI et R2 fournis par les moyens 10 de permutation.
Ainsi, les moyens de calcul 11 répètent les mêmes instructions quelle que soit l'opération OP réelle (addition, soustraction ou doublement) appelée par l'algorithme d'exponentiation, cette opération réelle étant fonction du multiplieur d, c'est à dire de la donnée confidentielle que l'on cherche à protéger. En d'autres termes, seules les permutations diffèrent, selon le multiplieur d. Ainsi, le dispositif de calcul d'exponentiation selon l'invention est-il intrinsèquement protégé des attaques visant à découvrir la clé secrète d.
Dans un exemple pratique, ces moyens de mise en œuvre utilisent six registres temporaires Tl à T7 pour effectuer les calculs définis dans l'algorithme. Ces six registres sont typiquement pris en mémoire de travail (mémoire RAM par exemple) .
Si on note Rl= (Uχ:Vχ:Wχ) et R2= (U2:V2:W2) , les entrées de l'algorithme ;
Si on note P3= (U3 :V3 :W3) , la sortie de l'algorithme d'addition ; l'algorithme mis en oeuvre par les moyens 11 peut par exemple effectuer les opérations suivantes : Tl<-U ; T2<-Vχ ; T3<S-Wχ ; T4<-U2 ; T5<-V2; T6<-W2
T7<-T1 T 6 (=UχW2 )
TH-T1 T5 (=UχV2 )
T5<-T3 T5 (=WχV2 )
T3<-T3 T4 (= χU2)
T4-<-T2 T4 (=VχU2 )
T2-<-T2 T 6 (=VχW2 )
T 6-<-T2 T7 (=UχVχW2 2 )
T2-S-T2.T4 (=Vχ2U2W2)
T4-S-T3.T4 (=VχWχU2 2)
T3<-T3.T5 (=W2U2V2)
T5<-T1.T5 (=UχWχV2 2) T1-T1.T7 (*=Uχ2V2W2)
T1<-T1-T4 ; T2*<-T2-T5 ; T3-<-T3-T6 ϋ3<-T2 ; V3<-T1 ; W3«-T3.
Dans cet exemple d' implémentation de l'algorithme d'addition selon une paramétrisation de courbe elliptique de Hesse, seulement 12 multiplications sont nécessaires et 7 registres temporaires utilisés.
Selon l'invention, cet algorithme d'addition est utilisé pour effectuer aussi bien une addition qu'une soustraction ou un doublement de points, en effectuant de simples permutations sur les coordonnées appliquées en entrée .
Avec un dispositif de calcul selon l'invention basé sur une paramétrisation de Hesse, si on considère une implémentation à 7 registres temporaires, seulement 12 multiplications dans le corps de définition sont nécessaires. Ainsi, on améliore de plus de 33%, si on néglige la multiplication par la constante, et de plus de 41%, sinon, les performances par rapport à la paramétrisation dite de Jacobi. De plus, dans la paramétrisation de Hesse, les points en coordonnées projectives sont représentés par des triplets au lieu de quadruplets dans le cas de la paramétrisation de Jacobi. Ceci donne lieu à une optimisation d'un facteur de plus de 33% des ressources de la mémoire de travail. Enfin, dans la paramétrisation de Hesse, l'inverse d'un
point ne nécessite pas de soustraction dans le corps de définition de la courbe.
Ainsi, avec un dispositif de calcul selon l'invention, on améliore de plus de 33% l'efficacité de temps de traitement et de la mémoire de travail.
Dans le cas où le dispositif de calcul selon l'invention est utilisé dans un système cryptographique à clé publique sur courbe elliptique définie par une équation de Weierstrass, ou plus généralement, toute autre paramétrisation différente de celle de Hesse, on prévoit que le dispositif de calcul comprend en outre des moyens de transposition des coordonnées du ou des points auxquels est appliquée l'opération d'addition, de doublement ou de soustraction, pour calculer les • coordonnées de leurs points images sur la courbe de Hesse isomorphe, et des moyens de transposition inverse, pour calculer les coordonnées du point préimage sur la courbe du système cryptographique du point résultat. La seule condition nécessaire pour utiliser un dispositif de calcul selon l'invention dans un tel système cryptographique, est que la courbe elliptique de ce système comprenne un point d'ordre 3.
Les formules à appliquer pour ces transpositions ont déjà été données précédemment dans un exemple d'application à un système cryptographique basé sur une courbe elliptique de . Weierstrass définie sur un corps de caractéristique différente de 2 et 3. L'homme de métier saura transposer cette application pour tout autre type de courbe elliptique. Par ailleurs, l'invention ne se limite pas à l'utilisation de coordonnées projectives (U:V:W) . On
peut dans tous les cas se ramener aux coordonnées affines (u, v) , avec u=U/W et v=V/W.
Une application particulièrement intéressante de l'invention qui vient d'être décrite avec ses temps de traitement plus performants, la simplification du calcul d'addition, soustraction ou doublement et son auto-protection contre les attaques de type simples concerne tout naturellement les cartes à puce et autres supports portables.