FR 2824210 A1 20021031 FR 0105759 A 20010427 électronique mettant en oeuvre le procédé. 1 2824210 PROCEDE DE CONTRE-MESURE DANS UN COMPOSANT ELECTRONIQUE METTANT EN OE WRE UN ALGORITHME CRYPTOGRAPHIQUE DU TYPE A CLE PUBLIQUE SUR UNE COURBE ELLIPTIQUE. La présente invention concerne un procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme cryptographique du type à clé publique sur courbe elliptique. 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 1 5 diminue le prix de revient de s compos ant s é lect roniques dans lesquels ils sont implémentés. Pour mémoire, si IK est un corps, l'ensemble des points (x,y) IKxlK vérifiant 1'équation générale de Weirstrass: y2 + alxy + a3y = x3 + a2x2 + a4x + a6, 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 2 2824210 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. On rappelle que dans un corps fini, le nombre d'éléments du corps s'exprime touj ours sous la forme pn, o p est un nombre premier. p est la caractéristique du corps. Deux classes de courbes elliptiques sont plus particulièrement utilisées dans les systèmes cryptographiques: celles définies sur un corps fini de caractéristique p différente de 2 et 3 et celles définies sur un corps de caractéristique égale à 2. Pour les courbes elliptiques de la première classe, l'équation de Weirtrass se simplifie en: y2=x3+ax+b Et pour celles de la deuxième classe en se restreignant aux courbes non-supersingulières, cette équation devient: y2+xy=x3+ax2+b Pour chacune de ces deux classes de courbes, des opérations d'addition et de doublement de points ont été définies. Des formules pour ces opérations sont données dans de nombreuses références connues de l'homme du métier. Ces formules sont détaillées plus loin dans le texte, dans le cas d'une courbe elliptique définie sur un corps de caractéristique différente de 2 ou 3. Ces opérations sont à la base des algorithmes d'exponentiation sur ces courbes elliptiques: étant donné un point P appartenant à une courbe elliptique et 3 2824210 d un nombre prédéterminé (un entier), le résultat de la multiplication scalaire du point P par le multiplieur 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. Cependant, les algorithmes cryptographiques à clé publique sur courbe elliptique se sont révélés 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écouvri r des in format ions contenue s 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. 1966 of Lecture Notes in Computer Science, pp.388-397. Springer-Verlag, 1999). Parmi les grandeurs physiques qui peuvent être exploitées à ces fins, on peut citer la consommation en 4 2824210 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érce selon sa valeur. Dans les systèmes cryptographiques basés sur des courbes elliptiques, ces attaques visent la multiplication scalaire. 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 du multiplieur d, celui d'addition-soustraction basé sur la représentation binaire signée du multiplieur d, l'algorithme avec fenêtre... Tous ces algorithmes utilisent des formules d'opérations de doublement et d' addition définies sur les courbes elliptiques. Dans tous ces algorithmes, on a du 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 ces algorithmes. Par exemple, l'algorithme dit de doublement et d' addition bien connu est notamment sensible aux attaques à canaux cachés de type simple, car il comporte une opération conditionnelle à la valeur d'un bit de la clé secrète d. Pour séauriser cet algorithme, on l'a transformé en un l'algorithme dit de doublement avec addition systématique. Dans cet algorithme, quelle que soit la valeur du bit de la clé secrète dans le traitement en cours, on effectue touj ours les mêmes opérations, en 2824210 même nombre. D'une manière générale, on sait sécuriser ces algorithmes vis à vis des attaques simples, en supprimant tous les branchements conditionnels à la valeur de la donnée traitée. Cependant, on a pu montrer que ces parades ne protégeaient pas des attaques différentielles à canaux cachés, par lesquelles il était possible de découvrir la clé secrète d. Une parade efficace aux attaques différentielles est de rendre aléatoire les entrées et/ou les sorties de l'algorithme d'exponentiation utilisé pour calculer Q=d.P. En d'autres termes, il s'agit de rendre le multiplieur d et/ou le point P aléatoire. Des procédé de contre-mesure appliquant ce principe sont connus. De tels procédés de contre-mesure sont notamment décrits dans un article de JeanSébastien Coron (Cryptographic Hardware and Embedded Systems, volume 1717 of Lecture Notes in Computer Science, pages 292-302. Springer-Verlag, 1999). Notamment, dans cet article, un procédé de contre mesure consiste à masquer le point P en utilisant des coordonnées projectives de ce point, définies de façon aléatoire. Un point de la courbe elliptique E (différent du point à l'infini) est en effet défini de façon unique sur cette courbe par ses cocrdonnées affines (x,y). Mais on peut représenter ce point par des coordonnées projectives (X:Y:Z) et il existe un nombre exponentiel de représentations en coordonnées projectives. Dans le procédé de contre-mesure décrit, on tire ainsi un nombre aléstoire t IK et on représente le point 6 2824210 P par des cocrdonnées projectives fonction de ce nombre aléatoire. Dans l' article précité, on propose de former de manière avantageuse les coordonnces projectives du point P en fonction du nombre aléatoire t et des cocrdonnées affines, par exemple sous la forme P=(tx: ty: t), en coordonnées projectives homagènes, ou P=(t2x:t3y:t) en coordonnées jacobiennes. On applique l'algorithme d'exponentiation à ces cocrdonnées. On obtient une représentation du point Q en coordonnées projectives, desquelles on déduit (calcule) les coordonnées affines de ce point. Un objet de la présente invention est un procédé de contre-mesure, notamment vis à vis des attaques différentielles à canaux cachés. Un autre objet de l' invention est un procédé de contre-mesure aisé à mettre en oeuvre. Par rapport à l' article précité, le procédé proposé présente l'avantage d'être plus rapide et d'étre applicable indifféremment en cocrdonnées affines et projectives. L'idée à la base de l' invention est d'utiliser les isomorphismes de groupe, pour transposer les calauls de multiplication scalaire sur une courbe elliptique E_u obtenue par application d'un isomorphisme de groupe u, défini par rapport à un nombre aléatoire u, non nul, élément du corps IK. En d'autres termes, le procédé de contre-mesure consiste alors à tirer un nombre aléatoire u non nul, pour définir une courbe elliptique isomorphe aléatoire E-U=U(E), à calculer les coordonnées du point image sur 7 2824210 cette courbe E_u du point P. à appliquer l'algorithme d'exponentiation à ce point image P' sur la courbe elliptique isomorphe E_u, pour obtenir un point résultant Q' et à calouler les cocrdonnées du point pré-image Q du point Q' sur la courbe elliptique E sur laquelle est basoe le système cryptographique. Comme la structure algébrique des courbes elliptiques est très riche, il existe de nombreuses possibilités de définitions d'isomorphismes, en sorte que le procédé de contre-mesure selon l' invention est d'application très générale. L' invention concerne donc un procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme cryptographique du type à clé publique sur une courbe elliptique déterminée E sur un corps IK, comprenant un calaul d'exponentiation de type Q=d.P o P et Q sont des points de la courbe elliptique déterminée (E), et d un nombre prédéterminé, caractérisé en ce qu'il comprend les étapes suivantes: tirage d'un nombre u aléatoire non nul, élément du corps IK, pour définir aléatoirement une courbe elliptique isomorphe E_u, - calcul des coordonnées d'un point P' sur ladite courbe elliptique isomorphe E_u, image du point P. - application d' un algorithme d' exponentiation au dit point image P' sur ladite courbe elliptique isomorphe E_u, pour obtenir un point résultant Q', - calaul des coordonnées sur la courbe elliptique déterminée E du point Q. pré-image du point résultant Q'. 8 2824210 D'autres caractéristiques et avantages de l' invention sont présentés dans la description suivante, faite en référence à un mode de réalisation particulier, pour des courbes elliptiques sur un corps IK de caractéristique différente de 2 OU 3. On a vu qu'une courbe elliptique sur un tel corps peut se définir comme suit: E/K: y2= X3 + ax +b. Soient deux courbes elliptiques E1 et E2 définies sur un tel corps: E1/lK: y2= X3 + ax +b E2/lK: y2= X3 + a'x +b' On montre que ces deux courbes sont isomorphes sur IK, si et seulement si il existe un nombre u non nul appartenant à IK tel que u4a'= a et u6b'= b. si on note l'isomorphisme de groupe tel que E2=(E1), on montre qu'à tout point P=(x,y) de la courbe elliptique El correspond un point image (P) =P'=(x',y') sur la courbe elliptique E2 tel que: x'=u2x et y'=u-3y. Inversement, par application de l'isomorphisme inverse q-l tel que -l(E2) =El, à tout point P'=(x',y') de la courbe elliptique E2 correspond un point pré image -1(P')=P=(x,y) sur la courbe elliptique E1 tel que: x=u2x' et y=U3y Dans l' invention, on fait application de l'isomorphisme de groupe appliqué aux courbes elliptiques, pour masquer aléatoirement le point P auquel est appliqué l'algorithme d'exponentiation. 9 2824210 Soit donc un algorithme d'exponentiation de type Q=d.P, o Q et P sont des points d'une courbe elliptique définie E. Le procédé de contre-mesure selon l' invention consiste donc à tirer aléatoirement un nombre u dans les éléments non nuls du corps IK, pour définir aléatoirement une courbe elliptique isomorphe E_u =u(E). On calcule les coordonnées du point image P' du point P sur cette courbe elliptique isomorphe E_u et on applique ce point image P' en entrée de l'algorithme d'exponentiation. On obtient un point Q' résultant sur la courbe elliptique isomorphe E_u. On calaule alors les cocrdonnées du point pré-image Q du point Q' résultant sur la courbe elliptique définie E. En d'autres termes, selon ce procédé, on calcule: Q=-1(d((P))). Par ce procédé, le nombre u étant- aléatoire, les étapes intermédiaires de calcul de l'algorithme d'exponentiation sont imprévisibles. Ce procédé peut s'appliquer à tout algorithme d'exponentiation de son choix et dans le système de coordonnées, affines ou projectives, de son choix. En particulier, on peut représenter le point P'=(x'l,y'1) par des coordonnées projectives P'=(X:Y:Z), avec la en coordonnée en Z égale à 1, soit: P'=(x'l:y'1:1). On utilise alors un algorithme d'exponentiation en coordonnces projectives (homogènes ou jacobiennes) de son choix. La coordonnées en Z étant égale à 1, le nombre d' opérations pour calculer d. P' est alors réduit. De préférence, on tire une valeur aléatoire u à chaque fois que l'algorithme cryptographique est sollicité. Dans une autre variante de réalisation, on tire une valeur aléatoire u à la personnalisation du composant électronique. Cette valeur est alors mémorisée dans une portion de mémoire ré-inscriptible du composant électronique, comme la clé secrète d. Dans ce cas, on peut prévoir de pré-calculer certaines valeurs, pour accélérer le traitement. Dans l'exemple de réalisation plus particulièrement décrit sur des corps finis de caractéristique différente de 2 ou 3, on pourra notamment pré-caleuler la valeur u-l, qui permet de calculer les coordonnées des points P' et Q' et on la mémorisera en mémoire re-inscriptible. Ceci est notamment intéressant dans les applications dans lesquelles la vitesse de traitement est très importante, et dans lesquelles la mémoire ré inscriptible a une capacité suffisante. On peut détailler le procédé de contre-mesure selon l' invention, appliqué à un système cryptographique basé sur une courbe elliptique E définie sur un corps fini de caractéristique différente de 2 ou 3, pour effectuer une exponentiation du type Q = d. P. o Q et P sont des points de la courbe elliptique E et d un nombre prédéterminé. d et P sont les entrées et Q la sortie de l'algorithme d'exponentiation. Dans un tel exemple, on a vu que l'équation de Weirstrass pour la courbe elliptique E sur le corps IK s'écrit: E/lK: y2= X3 + ax +b. Dans cette courbe, l'opération d' addition d'un point P=(X1,Y1) et Q=(X2, Y2) (avec Q=-P) donne un point R= (X3, y3) =P+Q tel que: x3=2-x1-x2 et y3=\ (Xl-X3) -y avec \=(y2-y1)/(x2-xl), si P=Q (formule 1) et \=(3x12+a) /2yl, si P=Q. (formule 2). La formule 1 est la formule d'addition de deux points distincts: R=Q+P tandis que la formule 2 est la formule de doublement du point: R=2.P. On remarque qu'aucune de ces formules n'utilise le paramètre b de l'équation de la courbe elliptique E. Ainsi, un procédé de contre-mesure appliqué à une courbe elliptique déLinie par l'équation de Weirstrass du type y2= X3 + ax +b, et à un algorithme d'exponentiation appliqué à un point P = (xl,yl) utilisant des opérations de doublement d'un point et d' addition entre deux points de cette courbe E, peut s'écrire comme suit: a) . Tirer aléatoirement un nombre u non nul; b). Evaluer le paramètre a'=u4a de l'équation de Weirstrass du type y2= X3 + a'x +b' déLinissant une courbe elliptique isomorphe E_u de la courbe elliptique E; c). Former le point P'=(u2xl, u-3yl); d). Calculer le point Q'=d.P' sur la courbe elliptique isomorphe E_u. e). Si le point résultant Q' est le point à l'infini, le point Q est le point à l'infini, Sinon poser Q'=(x' 3, y' 3); f). retourner Q=(u2x'3,u3y'3) comme point pré-image. De façon remarquable, le calaul du point Q+dP'à l'étape d) de ce procédé peut se faire avec l'algorithme de son choix, et dans le système de coordonnées de son choix. En particulier l'utilisation de cocrdonnées projectives (homogènes ou jacabiennes) pour le point P' 4 est particulièrement intéressante si on représente P' avec sa coordonnée en Z égale l puisque le nombre d'opérations pour calculer d P' est alors réduit. On a alors P'=(U 2X1:u-3yl:l) Le procédé de contre-mesure selon l' invention peut être généralisé. Notamment, les courbes elliptiques peuvent être donnces par des paramétrisations autres que celles de Weierstrass. De façon générale l'étape b). du procédé détaillé ci-dessus consiste ainsi à calauler des paramètres de l'équation elliptique isomorphe, à partir du nombre aléatoire u et des paramètres de la courbe elliptique sur laquelle est basée le système cryptographique. Seuls les paramètres utilisés dans les opérations sur la courbe elliptique (addition de deux points, doublement) sont à calculer. Dans l'exemple détaillé ci-dessus, seul le paramètre a est à calculer. En outre, le procédé de contre-mesure peut s'appliquer aux différents algorithmes d'exponentiation de l'état de la technique, puisqu'il ne fait que transposer cet algorithme sur une autre courbe elliptique. Ainsi, ce procédé de contre-mesure peut être utilisé dans tous les systèmes cryptographiques sur courbe elliptique. Il s' applique notamment aux composants électroniques destinés aux cartes à puces. REVENDI CAT IONS 1. Procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme cryptographique du type à clé publique sur une courbe elliptique déterminée E sur un corps IK, comprenant un calcul d'exponentiation de type Q=d.P o P et Q sont des points de la courbe elliptique déterminée (E), et d un nombre prédéterminé, caractérisé en ce que ledit procédé comprend les étapes suivantes: - tirage d'un nombre u aléatoire non nul, élément du corps IK, pour définir aléatoirement une courbe elliptique isomorphe E_u, - calcul des coordonnées d'un point P' sur ladite courbe elliptique isomorphe E_u, image du point P. application d'un algorithme d'exponentiation au dit point image P' sur ladite courbe elliptique isomorphe E_u, pour obtenir un point résultant Q', - calcul des coordonnées sur la courbe elliptique déterminée E du point Q. pré-image du point résultant Q'. 2. Procédé de contre-mesure selon la revendication l, caractérisé en ce que la définition de la courbe elliptique isomorphe E_u comprend le calcul de paramètres (a et/ou b) de ladite courbe en fonction des paramètres de la courbe elliptique définie E et de ladite variable aléatoire, lesUits paramètres étant utilisés dans ledit algoritUme d'exponentiation. 14 2824210 3. Procédé de contre-mesure selon la revendication 1 ou 2, caractérisé en ce que ledit algorithme d'exponentiation est appliqué au point image P' en coordonnées affines (P=(x'l,y'1)). 4. Procédé de cont re-me sure se lon la revendication 1 ou 2, caractérisé en ce que ledit algorithme d'exponentiation est appliqué au point image P'en coordonnées projectives. 5. Procédé de cont re-me sure se lon la revendication 4, caractérisé en ce que lesdites coordonnées projectives sont du type à coordonnée en Z égale à 1 (P=(x'l:y'1:1). 6. Procédé de contre-me sure se lon la revendication 2, la courbe elliptique définie E ayant pour équation y2= X3 + ax +b, et l'algorithme d'exponentiation appliqué à un point P = (xl,yl) utilisant des opérations de doublement d'un point ou d' addition ou de soustraction entre deux points de cette courbe E, caractérisé en ce qu'il comprend les étapes suivantes: a). Tirer aléstoirement un nombre u non nul; b). Evaluer le paramètre a'=u4a dans l'équation y2= X3 + a'x +b' définissant une courbe elliptique isomorphe E_u à la courbe elliptique E; c). Former le point image P'=(u-2x1,u-3yl) du point P sur ladite courbe isomorphe E_u; d). Calculer le point résultant Q'=d.P' par application dudit algorithme d'exponentiation sur ladite courbe elliptique isomorphe E_u. 2824210 e). Si le point Q' est égal au point à l'infini, retourner comme point image Q. le point à l'infini, Sinon poser Q'= (X' 3, yt 3); f). retourner Q= ( U2X 3, u3y 3). 7. Procédé de cont re-me sure se lon la revendication précédente, caractérisé en ce que ledit algorithme d'exponentiation est appliqué à l'étape d) à des cocrdonnées projectives (X:Y:Z) du point P' formoes à l'étape c) par Pl=(u 2x':u-3y':1). 8. Composant électronique dans lequel un procédé de contre-mesure selon l'une queleonque des revendications précédentes est mis en _uvre. 9. Carte à puce comprenant un composant