FR 2821945 A1 20020913 FR 0103329 A 20010312 PROCÉDÉ DE PROTECTION CONTRE LES ATTAQUES PAR MESURE DE COURANT OU DE RAYONNEMENT ÉLECTROMAGNÉTIQUE L'invention concerne un procédé algorithmique de protection contre les attaques par mesure de courant ou par mesure de rayonnement électromagnétique contre des dispositifs électroniques utilisant des procédés cryptographiques basés sur des courbes elliptiques. Par la suite, on notera K un corps fini. Une courbe elliptique définie sur K est l'ensemble des points A = (x, y) E K2 (x et y sont par définition les coordonnées du point A) solutions de l'équation l'équation 2 3 2 où al, a2, a3, a4, ab sont des éléments de K. On note E (K) l'ensemble des points qui sont solutions de cette équation. E (K) forme ce qu'on appelle une courbe elliptique. Une propriété fondamentale d'une courbe elliptique est qu'on peut additionnner des points de la courbe entre eux, comme on pourrait le faire avec des nombres. On dit qu'une courbe elliptique forme un groupe abélien. En cryptographie, l'opération de base qui est effectuée sur une courbe elliptique est d'additionner un point A à lui-même un certain nombre de fois. Si k est un entier, on note kA le résultat de l'addition de A k fois à lui-même. On appelle cette opération une multiplication scalaire. Un exemple d'utilisation de cette opération est fourni par le procédé de chiffrement dit de ElGamal, ou par le procédé de signature numérique dit ECDSA. Dans chacun de ces exemples, k est une donnée secrète du procédé, qui ne doit pas être dévoilée afin d'en garantir la sécurité. Les procédés cryptographiques cités précédemment, lorsqu'ils sont utilisés dans des dispositifs électroniques, peuvent être soumis à des attaques par mesure de courant, ou par mesure de rayonnement électromagnétique. Le principe de ces attaques est de mesurer la puissance électrique consommée par le dispositif (ou la puissance du champ magnétique rayonné), au cours de l'exécution d'un algorithme cryptographique. Un traitement statistique des données obtenues permet ensuite de déterminer la clé secrète utilisée au cours du déroulement de cet algorithme. Pour déjouer ces attaques, un moyen est de rendre l'exécution de l'algorithme cryptographique probabiliste, de manière que l'exécution de l'algorithme change à chaque fois qu'il est utilisé, même si l'entrée fournie à l'algorithme reste identique. Ainsi, il devient impossible de procéder utilement à un traitement statistique des mesures observées. L'invention est donc un procédé permettant de rendre probabiliste l'opération de calcul de kA, lorsque k est une valeur secrète du procédé cryprographique utilisé. L'invention est expliquée en détail dans la section 4.2 de la publication intitulée Protection against Differential Analysis for Elliptic Curve Cryptography , à paraître dans les actes de la conférence Ches'2001 (Cryptographic Hardware and Embedded Systems), qui se tiendra à Paris au mois de mai 2001. Afin d'en expliquer le fonctionnement, nous commençons par rappeler quelques notions concernant les corps finis. Si p est un nombre premier, on note Fp le corps formé des entiers considérés modulo le nombre p. Si K est un corps, on note K [X] l'anneau des polynômes à coefficients dans K. Si P, Q sont deux éléments de K [X], on note R = P o Q l'élément de K [X] défini par R (X) = P (Q (X)). On dit qu'un polynôme dans K est unitaire si le coefficient de son terme de plus haut degré est égal à un. On dit qu'un polynôme dans K [X] est irréductible si les seuls polynômes qui le divisent sont lui-même et les polynômes de degré nul. Si I est un idéal de K [X], on note ' [A'j/7 l'anneau défini par le quotient de K par l'idéal I. Si P est un élément de-K-Y], on note (P) l'idéal de K [X] engendré par P. Un résultat fondamental est que tout corps fini K peut s'écrire de manière unique comme =] FpM/ (P), (1) où p est un nombre premier, et où P est un polynôme unitaire irréductible de Fp [X]. p est appelé la caractéristique du corps K. Le degré de K est défini par le degré du polynôme P. Un deuxième résultat fondamental est que si deux corps finis ont même degré et même caractéristique, alors ils sont isomorphes. Ceci signifie que si P et Q sont deux polynômes unitaires irréductibles et de même degré, alors Ep [X]/ (P) et IFp [X]/ (Q) sont isomorphes. On note ceci Fp [X]/ (P) Fp [X]/ (Q). En particulier, il y a autant de corps isomorphes que de polynômes irréductibles de même degré. Si K et K'sont deux corps isomorphes, on note ib un isomorphisme de K dans K', ce qu'on représente symboliquement par l'expression (D : K-+ K'. On définit alors l'application $ de K2 dans K, 2 par ( (x, y) = ( E (K) en E' (K'), où E' (K) est la courbe formée des points de K 2 solution de l'équation y2 + (D (al) xy + (a3) Y = + $ (a2) + (a4) X + $ (a5). Supposons maintenant que l'algorithme cryptographique consiste à calculer kA, où A = (x, y) est un point d'une courbe elliptique E (K). L'invention consiste à choisir au hasard un corps K' isomorphe à K au début de l'algorithme cryptographique, puis à calculer le point A'= O (A) de la courbe E' (K). Ensuite, on effectue le calcul de B : = kA'dans la courbe E' (K'). Pour obtenir le résultat final, qui est kA, on calcule finalement le point $' ((B) pour obtenir le point kA de E (K). L'invention est donc caractérisée en ce que l'algorithme produisant kA à partir de k et de A est rendu aléatoire par un choix aléatoire de corps isomorphe au corps de base à chaque exécution de l'algorithme. Avec les notations définies précédemment, le procédé de l'invention est résumé par l'identité kA = ( (A)). Formulé différemment, le procédé de l'invention consiste à transformer aléatoirement une courbe E (K) en une courbe El (KI), où Kr erst un corps isomorphe à K choisi aléatoirement, et différemment à chaque exécution de l'algorithme effectuant le calcul de kA. Dans les dispositifs électroniques qui disposent d'une faible capacité de calcul, ou d'un volume restreint de mémoire, la mise en oeuvre du procédé exposé ci-dessus est difficile, du fait du nombre d'opérations qu'il requiert. Par conséquent, l'invention concerne également un procédé permettant de calculer des isomorphismes de corps aléatoire d'une manière qui requiert peu de calculs et peu de mémoire. Ce procédé convient particulièrement bien au cas des dispositifs électroniques à faible capacité de calcul, comme expliqué plus tôt. Afin d'expliquer ce deuxième procédé, nous rappelons quelques notions concernant les isomorphismes de corps. Supposons que P et Q soient deux polynômes irréductibles, unitaires et de même degré n de Fp [X], p étant un nombre premier. Comme on l'a rappelé précédemment, P et Q définissent alors deux corps isomorphes, qu'on note respectivement K et K'. Notons par a une racine du polyôme P dans K'. Soit u un élément de K. Comme on l'a vu à l'équation (1), u peut être représenté par un polynôme de Fp [X] de degré plus petit que n, qu'on note U (X). Alors l'application K- K' u U (a) est un isomorphisme de K dans K'. De plus, comme l'on utilise également l'inverse de cet isomorphisme, il faut aussi déterminer une racine de Q dans K. Par conséquent, pour déterminer un isomorphisme de corps partant de K, et pour pouvoir l'utiliser de manière efficace, il faut : 1. Déterminer un polynôme irréductible Q de degré n de Tp [X]. 2. Déterminer une racine de Q dans K. 3. Déterminer une racine de P dans Fp [X]/ (Q). L'invention concerne donc aussi un procédé permettant de réaliser les trois points précédants d'une manière plus efficace que les méthodes employées aujourd'hui pour faire ce type d'opérations. L'état de l'art en la matière est décrit dans le livre intitulé A course in computational number theory, d'Henri Cohen, publié par Springer-Verlag. Le procédé de l'invention exploite le fait que si l'on connaît déjà un polynôme Q unitaire irréductible et de degré n, on peut construire facilement un autre polynôme R possédant les mêmes propriétés. Les raisons de ceci proviennent d'un théorème que nous expliquons brièvement. On dit qu'un élément de T E Afp [X] est une permutation polynômiale si l'application K---+K !-- T (x) est une bijection. On peut prouver que si Q IFp [X] est un polynôme irréductible de degré n, et si T E JFp [X] est une permutation polynômiale, alors le polynôme Q o T a au moins un diviseur irréductible de degré n dans Ep [X]. Ceci permet de déduire facilement d'un polynôme irréductible de degré n un autre polynôme irréductiblde de même degré, à condition d'employer pour T une permutation polynômiale de petit degré, par exemple deux ou trois. Ainsi, il est très rapide de factoriser Q o T, et donc d'en déterminer un diviseur irréductible de degré n. On détaille maintenant une réalisation possible de l'invention qui utilise les deux procédés exposés précédemment. Nous nous plaçons dans le cas où un dispositif électronique, par exemple une carte à puce, cet exemple n'étant pas limitatif, doit exécuter un algorithme cryptographique qui implique un étape de multiplication scalaire sur une courbe elliptique définie sur un corps fini K de caractéristique p. Dans ce contexte, K est un corps défini par un polynôme irréductible P Fp [X] de degré n et unitaire, et qui est utilisé à la fois par le dispositif électronique, et par les dispositifs qui doivent communiquer avec lui. Ainsi, K est une donnée publique convenue par avance. L'algorithme est exécuté plusieurs fois de suite, et on note par j le nombre de fois que l'algorithme a été exécuté jusqu'à maintenant. Le dispositif électronique a stocké dans sa mémoire certaines informations. La mémoire utilisée est supposée réinscriptible plusieurs fois, et telle que même si le dispositif est réinitialisé, ou privé d'alimentation électrique, les données contenues dans cette mémoire sont conservées inchangées. Un exemple de réalisation d'un tel type de mémoire est la mémoire dite EEPROM. À l'étape j, le dispositif est supposé avoir stocké : 1. un polynôme P Fp [X] irréductible, unitaire et de degré n. Ce polynôme définit un corps isomorphe à K, et on le note K (j). 2. un élément cm K tel que P (j) )- dans K. (2) 3. un élément e tel que P (ss =0dans. (3) D'autre part, on suppose également que pendant la fabrication du dispositif, on a stocké dans une mémoire permanente un certain nombre d'informations. Un exemple non restrictif de réalisation d'une telle mémoire est une mémoire ROM. Ces informations consistent en un ensemble 6 de plusieurs permutation polynômiales Tal,..., Tt. Les données de o : \/3 et P (j) déterminent un isomorphisme (D (j) de K dans K (j), ainsi que son inverse b (j) 1 de K (j) dans K. Lors de l'appel de l'algorithme, on applique cet isomorphisme on calcule de nouvelles valeurs pour a,/3\ P, et donc pour K (j) et $(j). Dans tout ce qui suit, pour des raisons de simplicité, nous utilisons un abus de notation qui consiste à confondre un élément d'un corps fini avec sa représentation polynômiale. Nous choisissons un élément T de 6 aléatoirement, et nous déterminons un facteur irréductible de degré n dans Fp [X] de P o T, que nous notons P (j+'). Pour déterminer ce polynôme, on peut utiliser un algorithme classique de factorisation, exposé par exemple dans le livre précité d'Henri Cohen. Nous définissons ensuite ssU+1) = ss (j) 0 T mod pU+I), ainsi que Ainsi que #035(j+1)=T-1(#035(j) mod P. On peut vérifier que a (j+') et e (j+') vérifient toujours respectivement les équations (2) et (3), ce qui prépare le dispositif électronique à une nouvelle exécution de l'algorithme. Afin de préciser davantage la réalisation du procédé que l'on vient d'exposer, l'invention consiste en un troisième procédé qui permet de choisir de manière efficace les permutations polynômiales Ti de l'ensemble 6. Comme expliqué précédemment, le procédé général de l'invention est particulièrement efficace lorsque les permutations considérées sont des polynômes de petit degré. Selon l'invention, on peut choisir ces permutations en utilisant un théorème que nous exposons maintenant. Ce théorème est restreint au cas particulier où p = 2, c'est-à-dire pour des courbes elliptiques définies sur un corps de caractéristique deux. Le théorème en question stipule que si 2n - 1 et 3 sont premiers entre eux, alors les polynômes de F2 [X] X, 1 + J, X + X + J, 1 + X + X + X sont des permutation polynômiales de 24. Ainsi, on peut choisir pour les Ti ces polynômes. Un quatrième procédé de l'invention consiste à spécialiser l'algorithme de factorisation de polynôme lorsque les permutations utilisées sont celles exposées précédemment. Selon l'invention, si Q est un polynôme irréductible, si T est une permutation polynômiale de degré trois, et si R = Q oT, alors, on peut calculer un facteur irréductible de degré n de R en deux étapes : 1. On calcule Z (X) = X2n - X mod R (X). 2. On calcule le polynôme M défini comme le plus grand commun diviseur de R et de Z. Le polynôme M est alors irréductible de degré n. L'avantage de cette méthode est qu'elle requiert moins de calcul que l'art antérieur exposé dans le livre d'Henri Cohen. On expose maintenant une réalisation non limitative de l'invention utilisant les quatre procédés exposés précédemments. Cette réalisation concerne les courbes définies sur un corps de caractéristique deux, ce qui constitue une limitation aux deux premiers procédés, qui concernent tous les types de courbes elliptiques. Cette réalisation est présentée sous la forme d'un algorithme qui prend en entrée un point A d'une courbe E (einz un entier k, et qui calcule kA, c'est-à-dire le résultat de la multiplication scalaire de A par k. Dans cet algorithme, on note PGCD (U, V) le plus grand commun diviseur des polynômes U et V dans JF2n [X]. On note également R[O], R[l], R[2], R[3], R[4], R[5] des variables utilisées par l'algorithme. De plus, si L est une variable de l'algorithme, la notation L ± signifie qu'on affecte la valeur l à la variable L. Enfin, iz la notation L f : - L signifie qu'on affecte à la variable L une valeur aléatoire choisie uniformément dans l'ensemble L. Enfin, dans la réalisation exposée, la courbe elliptique est définie par l'équation + = + (M + & . Ce cas particulier n'est qu'illustratif, et n'implique pas de limitation au cas de la caractéristique deux. o ( (, ' (j), P (j) comme définis précédemment sont stockés dans une mémoire de type EEPROM. Entrée : 1) Un point A = (x, y) E E représenté dans le corps K associé au polynôme irréductible P. 2) Un entier k. Sortie : Le point kA. 1. [Génération de l'isomorphisme] 1. 1 R[a] pU), R[l] ssU), R[2] aU) 1. 2 R [3] 1. 3 R [4] R [0] o [3] dans Fz]. 1. 4 R [5] 1. 5 R PGCD (R[4], R[5]). 1. 6 R[l] R[l] 0 R[3] mod R [O]. 1. 7 R [2] R [3]-' (R [2]) mod P. 1. 8 pU+l) R[a], ssU+l) R[l], aU+l) R[2]. 2. [Calcul du point isomorphe] a' # ao R[1] mod R[0] b' # boR [l] modR [O] x' # x o R[1] mod R [O] y' # y o R[1] mod R[0]. 3. [Multiplication scalaire] (x",y") # k(x',y') dans E'. 4. [Calcul du point isomorphe] u (- x"o R [2] mod P v - 5. Renvoyer (u, v). REVENDICATIONS 1. Procédé de protection contre les attaques par mesure de courant d'un algorithme cryptogra- phique basé sur les courbes elliptiques destiné à calculer le point kA, A étant un point d'une courbe elliptique E (K) définie sur un corps fini K de degré n et de caractéristique p, p étant un nombre premier, et k étant un entier, caractérisé en ce qu'il comprend les étapes suivantes : (a) Choix aléatoire d'un corps K'isomorphe au corps K. (b) Détermination d'un isomorphisme aléatoire q : de K dans K'. (c) Calcul du point A'= (A), élément de la courbe elliptique E' (K') déduite de la courbe elliptique E (K) par application de l'isomorphisme $. (d) Calcul du point B égal par définition à kA', ce calcul ayant lieu dans la courbe E' (). (e) Calcul du point C égal par définition au point $' (B), qui est un point de la courbe E (K). 2. Procédé de protection selon la revendication 1 comprenant un procédé de calcul pour déter- miner de manière aléatoire un corps K'isomorphe au corps de base K, et pour construire l'isomorphisme associé, caractérisé en ce qu'il construit un nouveau polynôme irréductible R de degré n à partir d'un polynôme irréductible Q de degré n connu, et d'un polynôme de permutation T, et qu'il construit un nouvel isomorphisme à partir d'un isomorphisme connu. 3. Procédé de protection selon la revendication 2 caractérisé en ce que le nouveau polynôme irréductible R est déduit de l'ancien Q par le fait qu'il est un diviseur du polynôme Q o T, égal à la composée de l'ancien polynôme irréductible Q avec un polynôme de permutation T choisi aléatoirement. 4. Procédé de protection selon l'une quelconque des revendications précédentes caractérisé en ce que les permutation polynômiales sont, dans le cas où les nombres pn-1 et 3 sont premiers entre eux, les suivantes : X3, 1 +X, X + X2 + J, 1 + + X2 + X3. 5. Procédé de protection contre les attaques par mesure de courant d'un algorithme cryptographique destiné à calculer le point kA, A étant un point d'une courbe elliptique E (K) définie sur un corps fini K de degré n et de caractéristique deux, caractérisé en ce qu'il permet de factoriser un polynôme de la forme QoT, où Q est un polynôme à coefficents binaires, et où T est une permutation polynômiale de degre trois de K, et qu'il comprend les étapes suivantes : (a) Calcul de Z (X) = X-X mod R (X). (b) Calcul du polynôme qui est égal au plus grand commun diviseur de R et de Z dans l'anneau des polynômes à coefficients binaires.