Brevet FR3017476A1 — publié le 20150814

PROCEDE DE CONTREMESURE POUR UN COMPOSANT ELECTRONIQUE METTANT EN OEUVRE UN ALGORITHME DE CRYPTOGRAPHIE SUR UNE COURBE ELLIPTIQUE L'invention concerne un procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique sur une courbe elliptique, un composant électronique et un système mettant en oeuvre le procédé. Elle s'applique au domaine de la cryptographie sur courbes elliptiques. La cryptographie sur courbes elliptiques permet notamment de générer des signatures, de chiffrer des messages numériques ou d'établir des clés de chiffrement. L'activité des circuits électroniques est observable pendant leur fonctionnement au travers des grandeurs physiques telles que la consommation de puissance, le temps de calcul ou le rayonnement 15 électromagnétique. Ces quantités physiques dépendent à la fois des architectures de calcul et des données manipulées à l'intérieur du circuit. Des informations sur les données traitées sont donc indirectement disponibles à l'extérieur du circuit par l'observation des dites quantités appelées canaux cachés ou 20 canaux auxiliaires. La dissipation de ces quantités physiques peut remettre en cause la sécurité de systèmes traitant des données secrètes protégées notamment par des méthodes de cryptographie. Ainsi, si des données secrètes sont protégées en utilisant un algorithme de cryptographie à clé de chiffrement 25 secrète, la robustesse de la protection réside dans la capacité à garder ladite clé réellement secrète. La dissipation des quantités physiques peut permettre à un tiers d'obtenir ladite clé en mettant en oeuvre des attaques adaptées et, par conséquent, d'accéder aux données secrètes. Une attaque par observation de quantités physiques dissipées par 30 ledit circuit est qualifiée habituellement d'attaque par canaux cachés. Dans la suite de la description, un tiers utilisant des méthodes d'attaque par observation pour accéder à des données ne lui étant pas destinées est appelé attaquant, les quantités physiques dissipées, quant à elles, sont appelées fuites ou canaux cachés. Il existe aujourd'hui des attaques par observation puissantes 5 permettant d'accéder aux données traitées par des circuits protégés. Ces méthodes permettent de contourner la sécurité conférée au niveau mathématique par la cryptographie. Les applications cryptographiques à bases de courbes elliptiques utilisent habituellement comme opération principale une multiplication 10 scalaire sur courbe elliptique ECSM (Elliptic Curve Scalar Multiplication). Cette opération détermine un scalaire [k]P =P+P+-..+P à partir d'un point P et d'un entier k. Le point P est d'ordinaire une donnée publique, tandis que l'entier k est un secret. L'opération de multiplication scalaire sur courbe elliptique ECSM peut 15 être mise en oeuvre à l'aide de plusieurs méthodes appartenant à l'état de la technique, parmi lesquelles la technique dite de multiplication scalaire à fenêtre de gauche à droite (voir la figure 1), l'échelle de Montgomery (voir la figure 2) et la technique dite de Multiplication Scalaire à fenêtre glissante de droite à gauche en wNAF (voir la figure 3). Ces méthodes opèrent 20 habituellement bit à bit. Les opérations de base sur courbe elliptique telles que l'addition ou le doublement ainsi que les points utilisés (pré-calculés ou dynamiques) dépendent des bits courants. Certaines attaques par canaux cachés sont très puissantes car une seule observation d'une multiplication ECSM suffit à déterminer tous les bits 25 du scalaire. Il existe une attaque pouvant être utilisée à l'encontre des méthodes de cryptographie à base de courbes elliptiques qui consiste à déterminer quelles valeurs sont manipulées pendant une opération précise en comparant des sous traces de la consommation de courant. On qualifie une 30 telle attaque d'horizontale. Un exemple est l'attaque Big Mac, mais il en existe d'autres, comme l'attaque SVA (Same-Values Analysis) décrite dans l'article de dans l'article de C. Murdica, S. Guilley, J.-L. Danger, P. Hoogvorst et D. Naccache intitulé Sliding Windows Succumbs to Big MacAttack, Workshop on Constructive Side-Channel Analysis and Secure Design , 2012. Le fait de connaître quelles sont les valeurs manipulées révèle de l'information sur le scalaire. Cette attaque est mise en oeuvre en comparant la consommation de courant à différentes itérations de l'ECSM. Etant donné que la consommation de courant est corrélée aux valeurs manipulées, l'attaque consiste à détecter si des même valeurs sont manipulées à des moments différents du calcul de multiplication scalaire ECSM. Dans le cas de l'échelle de Montgomery (voir la figure 2), Q[0] est l'opérande 1 lors de l'addition (les opérandes 1 et 2 d'une addition ne sont pas utilisés de la même façon). Q[0] sera l'entrée du doublement uniquement si ki = O. Dans le cas de la multiplication scalaire à fenêtre glissante de droite à 15 gauche en wNAF (voir la figure 3), il s'agit de détecter si le point R est utilisé deux fois lors d'une même itération. L'analyse du résultat de l'addition d'une itération et de l'entrée de l'addition des itérations suivantes peut également dévoiler de l'information. Ce type d'attaque est très puissant car la connaissance du point de 20 base n'est pas nécessaire et une seule trace permet de récupérer le scalaire en entier. Ainsi, les contremesures de randomisation du point de départ ou de randomisation du scalaire sont inefficaces. En outre, ce type d'attaque peut être adapté à d'autres opérations ECSM. Ce type d'attaque est appelé « Big-Mac » et est présenté dans l'article de C. D. Walter intitulé Same 25 Values Power Analysis Using Special Points on Elliptic Curves, Workshop on Cryptographic Hardware and Embedded Systems, 2001. Un des buts de l'invention est de remédier à des insuffisances/inconvénients de l'état de la technique et/ou d'y apporter des 30 améliorations. A cet effet, l'invention a pour objets un procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique sur une courbe elliptique E définie sur un corps III et comprenant une opération itérative de multiplication scalaire permettant d'obtenir un point [k]P à partir d'un point P de la courbe E et d'un entier k devant rester secret, la consommation électrique du composant électronique dépendant de la valeur prise par au moins un point dit critique utilisé lors de ladite opération pour déterminer itérativement le point [k]P, le procédé comprenant : une étape de fourniture d'au moins une puissance d'un élément c de III prédéfini constant non nul et différent de un ; - une étape d'initialisation des coordonnées du au moins un point critique à une valeur prédéfinie ; une étape mettant en oeuvre l'opération de multiplication scalaire, les coordonnées associées à au moins un point critique étant modifiées à chaque itération en multipliant au moins une des coordonnées de ce point par la au moins une puissance de l'élément c obtenu à l'étape de fourniture (500). Selon un mode de réalisation, l'élément c est choisi inférieur ou égal à la 20 moitié de la cardinalité du groupe de base de la courbe. Selon un mode de réalisation, l'élément c est choisi d'ordre ô strictement supérieur à trois fois le nombre d'itérations de la multiplication scalaire de manière à éviter que l'élément un n'intervienne lors des multiplications successives de puissances de c. 25 Selon un mode de réalisation, les multiplications par les puissances de c suivantes c, c^2, c^3, c^4 et c^6 sont déterminées par l'utilisation de chaines d'additions, c étant choisi de manière à minimiser la longueur desdites chaînes d'additions. Selon un mode de réalisation, les coordonnées associées à au moins un 30 point critique sont modifiées par équivalence de projection. Selon un mode de réalisation, les coordonnées associées à au moins un point critique sont modifiées par la mise en oeuvre d'un isomorphisme cf) entre la courbe E une deuxième courbe elliptique E'. Selon un mode de réalisation, l'opération de multiplication scalaire est 5 mise en oeuvre par une multiplication scalaire à fenêtre de gauche à droite, la fenêtre étant de taille w. Selon un mode de réalisation, l'opération de multiplication scalaire est mise en oeuvre par une échelle de Montgomery. Selon un mode de réalisation, l'opération de multiplication scalaire est 10 mise en oeuvre par une multiplication scalaire à fenêtre glissante de droite à gauche en wNAF. Selon un mode de réalisation, l'opération de multiplication scalaire est mise en oeuvre avec les étapes suivantes : 15 - initialisation à zéro des coordonnées d'un point Q utilisé comme variable de travail et correspondant à une multiplication scalaire partielle ; - pré-calcul de 2w multiples R[j] de P avec j = 1...2w ; - doublement de Q et addition de R[v] à Q avec fenêtre glissante 20 , la contremesure étant mise en oeuvre en modifiant à chaque itération i les coordonnées (XR[v], YR[v],ZR[v]) du point R[v] avec v (ki, ..- ,ki-w+1)2 en utilisant l'expression suivante : (XR pi, YR ['], ZR ['] - (c2XR c3 YR ['], cZR ['] ). Selon un mode de réalisation, l'opération de multiplication scalaire est 25 mise en oeuvre avec les étapes suivantes : initialisation à zéro des coordonnées d'un point Q utilisé comme variable de travail et correspondant à une multiplication scalaire partielle ; 30 pré-calcul de 2w multiples R[j] de P avec j = 1...2w ; doublement de Q et addition de R[v] à Q avec fenêtre glissante (603), la contremesure étant mise en oeuvre en modifiant les coordonnées (XQ, YQ) et (XRup YR[i]) des points R[j] et Q à chaque itération de la manière suivante : i. (XQ, YQ) = (c24, c3YQ) ii. pour j allant de 1 à 2w, (XR[i], YRU]) = (u2XRupu3YRui) L'invention a aussi pour objet un circuit électronique de cryptographie à clé publique sur une courbe elliptique E définie sur un corps III , mettant en oeuvre une opération de multiplication scalaire permettant d'obtenir un point 10 [k]P à partir d'un point P de la courbe E et d'un entier k devant rester secret, la consommation électrique dudit composant dépendant de la valeur prise par au moins un point dit critique utilisé lors de ladite opération pour déterminer itérativement le point [k]P, le circuit comprenant au moins un module adapté de manière à : 15 fournir un élément c de III prédéfini constant non nul et différent de un ; initialiser des coordonnées du au moins un point critique à une valeur prédéfinie ; mettre en oeuvre l'opération de multiplication scalaire, les 20 coordonnées associées à au moins un point critique étant modifiées à chaque itération en multipliant au moins une des coordonnées de ce point par une puissance de l'élément c. Selon un mode de réalisation, le circuit électronique comprend une mémoire interne dans laquelle est stocké l'élément c. 25 Selon un mode de réalisation, des procédures de calcul correspondant aux chaînes d'addition requises pour la mise à jour des coordonnées du au moins un point critique sont pré-calculées et stockées dans la mémoire interne au composant. L'invention a aussi pour objet un système de cryptographie à clé publique 30 sur une courbe elliptique E définie sur un corps III comprenant un circuit électronique tel que décrit précédemment et une mémoire externe audit circuit dans laquelle est stockée l'élément c. Selon un mode de réalisation, des procédures de calcul correspondant aux chaînes d'addition requises pour la mise à jour des coordonnées du au 5 moins un point critique sont pré-calculées et stockées dans la mémoire externe. L'invention a aussi pour objet un programme d'ordinateur comportant des instructions pour l'exécution du procédé décrit précédemment, lorsque le programme est exécuté par un module de traitement de données. 10 D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit donnée à titre illustratif et non limitatif, faite en regard des dessins annexés parmi lesquels : 15 la figure 1 donne un exemple de mise en oeuvre de multiplication scalaire sur courbe elliptique ECSM à l'aide de la technique de multiplication scalaire à fenêtre ; la figure 2 donne un exemple de mise en oeuvre de multiplication scalaire sur courbe elliptique ECSM à l'aide 20 d'une échelle de Montgomery ; la figure 3 donne un exemple de mise en oeuvre de multiplication scalaire sur courbe elliptique ECSM à l'aide d'une fenêtre glissante de droite à gauche en wNAF ; la figure 4 donne un exemple de trace générée par la 25 technique de multiplication scalaire à fenêtre de longueur deux ; la figure 5 est un diagramme illustrant de manière simplifiée le procédé selon l'invention ; figure 6 donne un exemple de mise en oeuvre d'un procédé 30 de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique sur une courbe elliptique E avec mise à jour des coordonnées des points par équivalence en propriétés projectives ; la figure 7 donne un exemple de mise en oeuvre d'un procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique sur une courbe elliptique E avec mise à jour des coordonnées des points par isomorphisme ; la figure 8 présente un système électronique pouvant mettre en oeuvre le procédé de contremesure selon l'invention. La figure 1 donne un exemple de mise en oeuvre de multiplication scalaire par courbe elliptique ECSM à l'aide de la technique de multiplication scalaire à fenêtre. Les données utilisées en entrée 100 sont : - un entier k correspondant à la clé privée (icii_l, ..., ko)2 exprimée en base deux ; - un point P de la courbe correspondant habituellement à une donnée publique ; - un entier w correspondant à la taille de la fenêtre. Il est à noter que w est choisi avec win. Si ce n'est pas le cas, le scalaire est complété avec des zéros à gauche. Dans une première étape 101, un point Q utilisé comme variable de travail et correspondant à une multiplication scalaire partielle est initialisée à zéro. Dans une deuxième étape 102, 2W multiples R[j] de P sont pré- calculés. Une troisième étape 103 est ensuite appliquée de manière à réaliser un traitement de doublement et d'addition à fenêtre glissante de longueur w désigné habituellement par l'expression anglaise « sliding window double-30 and-add ». La valeur prise à la fin de l'étape 103 par la variable Q est ensuite retournée comme résultat et correspond au scalaire [k]P. La figure 2 donne un exemple de mise en oeuvre de multiplication 5 scalaire sur courbe elliptique ECSM à l'aide d'une échelle de Montgomery. Les données utilisées en entrée 200 sont : un entier k correspondant à la clé privée (1c,_1, k0)2 exprimée en base deux ; un point P de la courbe correspondant habituellement à une 10 donnée publique. Dans une première étape 201, deux variables de travail Q[0] et Q[1] correspondant à deux multiplications scalaires partielles sont respectivement initialisées à zéro et P. Une deuxième étape 202 réalise le calcul par échelle et la valeur prise 15 par la variable Q[0] à la fin de l'étape est ensuite proposée 203 comme résultat et correspond à la quantité [k]P. La figure 3 donne un exemple de mise en oeuvre de multiplication scalaire sur courbe elliptique ECSM à l'aide d'une fenêtre glissante de droite 20 à gauche en wNAF. La représentation en NAF (Non Adjacent Form) de taille w d'un entier positif k correspond à l'expression suivante : k = k i2i 25 dans laquelle : chaque coefficient ki différent de 0 est impair ; -2w-1 Les données utilisées en entrée 300 de cette méthode sont : la représentation NAF de la taille de la fenêtre k = (k1-1, --- ,ko)w-NAF ; un point P de la courbe correspondant habituellement à une donnée publique. Une première étape 301 initialise une variable m et une variable R servant de registre d'accumulation des puissances de P. Une deuxième étape 302 initialise m variables Q[] de multiplication scalaire partielle à zéro. Une étape 303 réalise une mise à jour des variables Q[] par additions et soustractions de puissances de P. La fonction abs() est une fonction renvoyant la valeur absolue de son paramètre d'entrée. Dans cette étape, le doublement du registre d'accumulation R est exécuté à chaque itération de la boucle d'incrémentation sur la variable i. Une étape 304 met en oeuvre une phase de post-calcul déterminant 20 itérativement Q[1] par addition d'une multiplication partielle j. Q[j]. La valeur prise à la fin de l'étape 303 par la variable Q[1] est ensuite retournée 304 comme résultat et correspond au point [k]P . La figure 4 donne un exemple de trace générée par la technique de 25 multiplication scalaire à fenêtre de longueur deux. Pour w = 2, R[1], R [2] et R[3] valent : R[1] = [(0 1-)]2P R[2] = [(1 0)]213 R[3] = [(1 1-)]2P 3 0 1 74 76 11 Dans cet exemple simple donné à titre d'illustration, le scalaire k est le suivant : k = (10 10 11 01 10)2 5 [k]P sera calculé de la façon suivante : [k]P = 4(4(4(4R [2] + R[2]) + R[3]) + R[1]) + R[2] Le scalaire k peut être facilement déduit si un attaquant est capable de déterminer quel point parmi R[1], R[2] ou R[3] est additionné à Q à 10 chaque itération. Pour cela, la consommation de courant aux différentes itérations de la multiplication ECSM est estimée. L'attaque Big-Mac exploite le fait que la consommation de courant est corrélée aux valeurs du point additionné. Dans l'exemple de la figure 4, si les relevés de consommations 15 électriques 401, 402 correspondant à deux itérations successives de l'étape 103 sont corrélés, cela signifie que : (kn_1,kn_2) = (kn-3,kn-4) Si les relevés de consommation électrique 401, 402 ne sont pas corrélés, 20 cela signifie au contraire que : (kn-1, kn-2 ) # (kn-3, kn-4 ) L'attaque Big-Mac a pour objectif de détecter si des mêmes valeurs sont manipulés à des moments différents du calcul de multiplication scalaire 25 afin de remonter au secret k. Pour contrecarrer ce type d'attaque, le procédé de cryptographie selon l'invention comprend un mécanisme de contremesure s'appuyant sur une modification des coordonnées d'au moins un point critique après son utilisation lors de la multiplication scalaire sur courbe elliptique. Pour cela, des propriétés des courbes elliptiques sont exploitées. Dans cette description, un point est dit critique lorsque l'observation des variations de la consommation électrique du composant électronique résultant de l'utilisation de ce point lors de la mise en oeuvre de la multiplication scalaire peut révéler tout ou partie du scalaire k. La figure 5 est un diagramme illustrant de manière simplifiée le procédé selon l'invention. L'invention concerne un procédé de contremesure dans un circuit électronique mettant en oeuvre un algorithme de cryptographie à clé publique sur une courbe elliptique. Il applique pour cela une opération de multiplication scalaire sur la courbe elliptique E de manière à obtenir un point [k]P à partir d'un point P de E et d'un entier k tout en appliquant un mécanisme de contremesure. Cette opération s'appuie sur l'utilisation d'au moins un point critique. Le procédé selon l'invention comprend une étape 500 de fourniture d'au moins une puissance d'un élément prédéfini constant non nul c. Cet élément c appartient au corps III et est différent de un. A titre d'exemple, cette étape peut permettre l'obtention de l'élément c lui-même (qui est en fait équivalent à la puissance de un de cet élément, soit c^1). Dans un mode de réalisation alternatif, cette étape peut permettre d'obtenir un ensemble de puissances de c composé par exemple de cAl, c^2 et c^3. Ainsi, plusieurs puissances de c peuvent être mémorisées dans un circuit de cryptographie mettant en oeuvre l'invention, ce qui a pour avantage déterminant de rendre difficile pour un tiers la détection de la valeur de c 30 utilisée. Dans un mode de réalisation, l'élément c est choisi d'ordre ô strictement supérieur à trois fois le nombre d'itérations de la multiplication scalaire de manière à éviter que l'élément un n'intervienne lors des multiplications successives de puissances de c. Pour rappel, l'ordre d'un élément e de III est le plus petit entier ô non nul tel que es = 1. L'homme du métier comprendra sans effort que d'autres données peuvent également être acquises lors de cette étape parmi lesquelles les coordonnées du point P, le scalaire k ou la largeur w de la fenêtre de travail le cas échéant. Une étape 501 du procédé initialise ensuite le ou les points critiques utilisés pour la mise en oeuvre de la multiplication scalaire. Pour cela, et en fonction de la technique utilisée pour la mise en oeuvre de la multiplication scalaire, les coordonnées du ou des points critiques peuvent être initialisés à zéro, avec les coordonnées du point P ou à toutes autres valeurs adaptées. Une étape 502 met en oeuvre l'opération de multiplication scalaire sur la courbe elliptique E de manière itérative ainsi que la contremesure lui étant associée. La contremesure consiste à modifier les coordonnées d'au moins un point critique à chaque itération. Les coordonnées sont modifiées en multipliant au moins l'un d'eux par une puissance de l'élément c acquis à l'étape 500. La valeur dudit élément est par exemple mémorisée dans le circuit électronique ou dans une mémoire accessible dudit circuit. L'élément c est prédéfini au sens où il est choisi et mémorisé avant application du procédé. La technique utilisée pour la mise en oeuvre de la multiplication 25 scalaire peut être choisie parmi les algorithmes suivants : multiplication scalaire à fenêtre de gauche à droite, échelle de Montgomery, multiplication scalaire à fenêtre glissante de droite à gauche en wNAF. Le procédé selon l'invention comprend deux modes de réalisations préférés. Un premier mode de réalisation préféré s'appuie sur la mise à jour du représentant d'au moins un point critique de manière à maintenir une équivalence en propriété projective du point avant et après mise à jour de ses coordonnées. Un deuxième mode de réalisation préféré s'appuie sur la mise à jour par isomorphisme des représentants des points utilisés, c'est-à-dire de leurs coordonnées. L'élément c est prédéfini au sens où il est choisi et mémorisé avant application du procédé. A titre d'exemple, un circuit électronique mettant en oeuvre le procédé selon l'invention se verra attribuer une valeur de c choisie au moment de sa production et cette valeur sera mémorisée dans le circuit. Le concepteur d'un tel circuit peut cependant attribuer des valeurs de c différentes pour les différents circuits qu'il produit. Avantageusement, l'attribution d'une pluralité de valeurs c permet d'ajuster le compromis entre sécurité et complexité d'implémentation. Il est à noter que c doit être différent de un pour que les coordonnées soient effectivement modifiées. La mise à jour des coordonnées du ou des points critiques peut s'effectuer à différents moments : - en début d'itération ; - en fin d'itération ; - après une opération sur courbe elliptique telle que le doublement ou l'addition ; - ou au sein d'une opération sur courbe elliptique. Du fait que la mise à jour du ou des représentants des points critiques est faite après chaque utilisation dudit point permet de protéger le circuit contre les attaques horizontales. L'efficacité de la multiplication ECSM incluant ce mécanisme de contremesure dépend notamment du moment choisi pour mettre à jour le ou 30 les coordonnées des points. Ce moment peut être choisi de manière à éviter de compromettre la sécurité. A titre d'exemple, si la contremesure d'atomicité telle que présentée dans l'article de Chevallier-Mames, B., Ciet, M., et Joye, M. intitulé Low-Cost Solutions for Preventing Simple Side-Channel Analysis: Side-Channel Atomicity, IEEE Transactions on Computers, pages 760-768, 2004, est appliquée avec la multiplication scalaire à fenêtre glissante de droite à gauche en wNAF, la mise à jour peut être avantageusement appliquée après chaque bloc atomique. Il est à noter qu'un procédé de randomisation des coordonnées du point de départ par équivalence des coordonnées est décrit dans la publication de brevet européen EP1166494 B1. Le terme randomisation désigne habituellement une technique qui permet d'introduire un élément aléatoire dans une méthode de traitement de données. Dans cette publication, un élément du corps est tiré aléatoirement, ce qui permet de randomiser le point de départ au début de la multiplication scalaire ECSM. Un autre procédé de randomisation est divulgué dans la publication de brevet européen EP1381936 B1 et s'appuie notamment sur un tirage aléatoire de la courbe de départ par isomorphisme. Dans ce cas, un élément du corps est tiré aléatoirement de manière à randomiser la courbe et les points au début de la multiplication scalaire ECSM. Ces deux méthodes permettent de contrecarrer les attaques de type DPA (Differential Power Analysis) et CPA (Chosen-Plaintext Attack). Cependant, l'attaque Big-Mac et d'autres attaques dites horizontales peuvent être envisagées même si ces méthodes sont mises en oeuvre. Pour rappel, une attaque est dite horizontale lorsqu'elle est réalisée sur une seule trace d'un signal représentatif de la consommation électrique du circuit de cryptographie. Une attaque est dite verticale lorsqu'elle est réalisée sur une pluralité de traces de signaux représentatifs de la consommation électrique du circuit de cryptographie. Dans le cadre de l'invention, les coordonnées d'au moins un point critique sont modifiées à chaque itération de la multiplication scalaire, ce qui rend la plupart des attaques horizontales inopérantes. A la différence de ces techniques, le procédé selon l'invention utilise une constante prédéfinie pour la mise à jour des coordonnées, ce qui apporte plusieurs avantages déterminants. Ainsi, le procédé selon l'invention permet avantageusement une mise en 5 oeuvre de complexité réduite par rapport à l'état de la technique précédemment cité. En effet, la génération de nombres aléatoires en tant que telle est complexe. Cela requiert habituellement d'utiliser un générateur TRNG (True Random Number Generator) ou PRNG (PseudoRandom Number Generator) extérieur au circuit électronique mettant en oeuvre le 10 procédé de cryptographie à base de courbes elliptiques. En outre, ces générateurs sont vulnérables à des attaques de type blocage du générateur comme décrit dans l'article de T. Markettos et S. W. Moore intitulé The Frequency Injection Attack on Ring-Oscillator-Based True Random Number Generators, CHES 2009, pages 317-331. 15 Un autre avantage est que la manière dont est implémentée la multiplication des coordonnées du ou des points critiques par l'élément prédéfini constant c peut être optimisée en utilisant par exemple des chaînes d'additions, ce qui n'est pas possible dans le cas d'un tirage aléatoire. En outre, lorsque l'élément utilisé pour la modification des coordonnées 20 est tiré aléatoirement, celui-ci peut potentiellement être grand. En guise d'illustration, il y a une chance sur deux pour que son bit de poids fort soit égal à un. Cela aura alors pour effet d'imposer une multiplication longue et couteuse en termes de ressources calculatoire. 25 La figure 6 donne un exemple de mise en oeuvre d'un procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique sur une courbe elliptique E avec mise à jour des coordonnées des points par équivalence en propriétés projectives. Les points sur courbes elliptiques sont habituellement représentés en coordonnées Jacobiennes et appelées dans cette description coordonnées projectives. Pour un point P, les notations suivantes sont utilisées : P = (X, Y, Z) Dans ce mode de réalisation, l'équivalence en propriétés projectives pour une courbe elliptique est utilisée. L'équivalence en propriétés projectives signifie que si III est le corps de base, la représentation en coordonnées projectives (X,Y,Z) d'un point P est équivalente aux représentations définies par (c2X, c317, cZ) avec c E III* (III* étant égal à l'ensemble III auquel est retiré la valeur zéro). En d'autres termes, un même point P peut être représenté à l'aide de plusieurs jeux de coordonnées, un jeu de coordonnées pouvant être aussi appelé représentant de point. L'équivalence en propriétés projectives signifie que n'importe quelle 15 opération réalisée dans le corps IK avec un premier représentant donne le même résultat que si elle avait été appliquée avec un second représentant équivalent en propriétés projectives. Dans ce mode de réalisation de l'invention, un élément prédéfini c du corps III est utilisé pour mettre à jour le représentant d'au moins un point 20 utilisé pour la mise en oeuvre de la multiplication ECSM . Cette mise à jour est réalisée en modifiant le jeu de coordonnées associé à ce point de manière à respecter l'équivalence en propriétés projectives. Dans un mode de réalisation, c est choisi petit par rapport à la cardinalité du groupe de base sur lequel est construite la courbe. Plus 25 précisément, le nombre de bits codant c est choisi inférieur ou égal à la moitié de la cardinalité du groupe de base de la courbe. A titre d'exemple, si les éléments du groupe sont codés sur 256 bits, la cardinalité est de 2256 et c peut être choisi entre 2 à 2128. Cela permet d'éviter l'utilisation de valeurs trop importantes et ainsi de réduire la complexité de calcul apportée par le changement de coordonnées. La valeur de c peut être avantageusement choisie égale à trois. Les figures 6 et 7 sont des diagrammes donnant deux exemples de mise en oeuvre de l'invention avec un calcul ECSM par multiplication scalaire à fenêtre de gauche à droite. L'homme du métier peut envisager sans effort la mise en oeuvre de l'invention pour d'autres calculs ECSM, comme par exemple l'échelle de Montgomery ou la technique de multiplication scalaire à fenêtre glissante de droite à gauche en wNAF. L'exemple de la figure 6 s'appuie sur un calcul ECSM par multiplication scalaire à fenêtre. Ainsi, comme ce qui a été déjà exposé à l'aide de la figure 1, le procédé comprend dans ce mode de réalisation des données d'entrée 600 et met en oeuvre les étapes 601 et 602 correspondant respectivement aux données d'entrée 100 et aux étapes 101 et 102. Une troisième étape 603 est ensuite appliquée de manière à réaliser un traitement de doublement et d'addition à fenêtre glissante de longueur w de la même manière que pour l'étape 103 mais avec en plus une mise à jour à la fin de chaque itération du représentant (XR[v], YR[v],ZR[v]) du point R[v] ayant été utilisé dans cette itération en respectant l'équivalence en propriétés projectives. Il est à noter qu'une itération correspond au traitement effectué dans une fenêtre de traitement. Cette mise à jour s'effectue de la manière suivante : (X R[v],YR[v], Z R[v]) La figure 7 donne un exemple de mise en oeuvre d'un procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique sur une courbe elliptique E avec mise à jour des coordonnées des points par isomorphisme. Une courbe elliptique est définie par son équation de Weierstrass réduite E donnée par l'expression suivante : E: y2 = x3 + ax + b Soit une deuxième courbe elliptique définie par son équation de Weierstrass 10 réduite E' donnée par l'expression suivante : E': y2 = x3 + a'x + b' Il est démontré que E est isomorphe à E' s'il existe c E III tel que : a' = ac4 b' = bc6 15 Dans ce cas, l'isomorphisme cf) entre E et E' est défini par l'expression suivante : (p((x, y,z)) = (c.2x, c3y,z) 20 Comme pour le mode de réalisation précédent basé la modification de coordonnées par équivalence en propriétés projectives, un élément c appartenant au corps III est préalablement choisi et mémorisé dans le circuit électronique mettant en oeuvre le procédé. Après l'utilisation du représentant d'un point critique (X, Y, Z) pour une opération nécessaire à la mise en oeuvre de l'ECSM, cf) est appliqué et tous les représentants de points sont mis à jour. Les paramètres a, b sont également mis à jour s'ils sont utilisés pour 5 les opérations sur courbes elliptiques tels que le doublement ou l'addition de points. L'exemple de la figure 7 s'appuie sur un calcul ECSM par multiplication scalaire à fenêtre. Ainsi, comme ce qui a été déjà exposé à 10 l'aide de la figure 1, le procédé comprend dans ce mode de réalisation des données d'entrée 700 et met en oeuvre les étapes 701 et 702 correspondant respectivement aux données d'entrée 100 ainsi qu'aux étapes 101 et 102. Une troisième étape 703 est ensuite appliquée de manière à réaliser un traitement de doublement et d'addition à fenêtre glissante de longueur w 15 de la même manière que pour l'étape 103 mais avec en plus une mise à jour à la fin de chaque itération du représentant du point critique Q, et ce en utilisant l'expression suivante : (XQ YQ ) (C. 2 C 3 YQ ) 20 En outre, l'ensemble des 2W représentants des points critiques R[j] sont mis à jours en utilisant l'expression suivante : (XR [i], YR [j] (C 2 XR [ j], c 3 YR [ ji) Enfin, les paramètres sont mis à jour après qu'ils aient été utilisés en 25 utilisant les expressions suivantes : a REVENDICATIONS1- Procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie à clé publique sur une courbe elliptique E définie sur un corps 1K et comprenant une opération itérative de multiplication scalaire permettant d'obtenir un point [k]P à partir d'un point P de la courbe E et d'un entier k devant rester secret, la consommation électrique du composant électronique dépendant de la valeur prise par au moins un point dit critique utilisé lors de ladite opération pour déterminer itérativement le point [k]P, le procédé comprenant : - une étape de fourniture (500) d'au moins une puissance d'un élément c de 1K prédéfini constant non nul et différent de un ; - une étape d'initialisation (501) des coordonnées du au moins un point critique à une valeur prédéfinie ; - une étape mettant en oeuvre l'opération de multiplication scalaire (502), les coordonnées associées à au moins un point critique étant modifiées à chaque itération en multipliant au moins une des coordonnées de ce point par la au moins une puissance de l'élément c obtenu à l'étape de fourniture (500). 2- Procédé selon la revendication 1 dans lequel l'élément c est choisi inférieur ou égal à la moitié de la cardinalité du groupe de base de la courbe. 3- Procédé selon l'une des revendication précédentes dans lequel l'élément c est choisi d'ordre S strictement supérieur à trois fois le nombre d'itérations de la multiplication scalaire de manière à éviter que l'élément un n'intervienne lors des multiplications successives de puissances de c. 4- Procédé selon l'une des revendications précédentes dans lequel les multiplications par les puissances de c suivantes c, c^2, c^3, c^4 et c^6 sont déterminées par l'utilisation de chaines d'additions, c étant choisi de manière à minimiser la longueur desdites chaînes d'additions. 5- Procédé selon l'une des revendications précédentes dans lequel les coordonnées associées à au moins un point critique sont modifiées par équivalence de projection. 6- Procédé selon l'une des revendications précédentes dans lequel les coordonnées associées à au moins un point critique sont modifiées par la mise en oeuvre d'un isomorphisme cp entre la courbe E une deuxième courbe elliptique E'. 7- Procédé selon l'une des revendications 1 ou 2 dans lequel l'opération de multiplication scalaire est mise en oeuvre par une multiplication scalaire à fenêtre de gauche à droite, la fenêtre étant de taille w. 8- Procédé selon l'une des revendications 1 ou 2 dans lequel l'opération de multiplication scalaire est mise en oeuvre par une échelle de Montgomery. 9- Procédé selon la revendication 1 ou 2 dans lequel l'opération de multiplication scalaire est mise en oeuvre par une multiplication scalaire à fenêtre glissante de droite à gauche en wNAF. 10- Procédé selon les revendications 3 et 5 dans lequel l'opération de multiplication scalaire est mise en oeuvre avec les étapes suivantes :- initialisation à zéro (601) des coordonnées d'un point Q utilisé comme variable de travail et correspondant à une multiplication scalaire partielle ; - pré-calcul (602) de 2W multiples R[j] de P avec j = 1 ... 2w ; - doublement de Q et addition de R[v] à Q avec fenêtre glissante (603), la contremesure étant mise en oeuvre en modifiant à chaque itération i les coordonnées VR[v], YR[4,ZR[v]) du point R[v] avec y = (ki, , k i_w+1) 2 en utilisant l'expression suivante : (XR[v], YR[v], Z R[v]) = (C2 X R[v], C3 YR[v], CZ R[v]). 11- Procédé selon les revendications 4 et 5 dans lequel l'opération de multiplication scalaire est mise en oeuvre avec les étapes suivantes : - initialisation à zéro (601) des coordonnées d'un point Q utilisé comme variable de travail et correspondant à une multiplication scalaire partielle ; - pré-calcul (602) de 2W multiples R[j] de P avec j = 1 ... 2w ; - doublement de Q et addition de R[v] à Q avec fenêtre glissante (603), la contremesure étant mise en oeuvre en modifiant les coordonnées (XQ, YQ) et (XR[i], YR[i]) des points R[j] et Q à chaque itération de la manière suivante : i. (X-Q, YQ) = (C24, C3YQ) ii. pour j allant de 1 à 2W, VR[i], YR[i]) = (u2XR[i], u3YR[i]) 12- Circuit électronique de cryptographie à clé publique sur une courbe elliptique E définie sur un corps III , mettant en oeuvre une opération de multiplication scalaire permettant d'obtenir un point [1c]13 à partir d'un point P de la courbe E et d'un entier k devant rester secret, la consommation électrique dudit composant dépendant de la valeur prise par au moins un point dit critique utilisé lors de ladite opérationpour déterminer itérativement le point [k]P, le circuit comprenant au moins un module adapté de manière à : fournir un élément c de Il' prédéfini constant non nul et différent de un initialiser des coordonnées du au moins un point critique à une valeur prédéfinie ; mettre en oeuvre l'opération de multiplication scalaire, les coordonnées associées à au moins un point critique étant modifiées à chaque itération en multipliant au moins une des coordonnées de ce point par une puissance de l'élément c. 13- Circuit électronique selon la revendication 12 comprenant une mémoire interne dans laquelle est stocké l'élément c. 14- Circuit électronique selon la revendication 13 dans lequel des procédures de calcul correspondant aux chaînes d'addition requises pour la mise à jour des coordonnées du au moins un point critique sont pré-calculées et stockées dans la mémoire interne au composant. 15- Système de cryptographie à clé publique sur une courbe elliptique E définie sur un corps IK comprenant un circuit électronique selon l'une des revendications 12 à 14 et une mémoire externe audit circuit dans laquelle est stockée l'élément c. 16- Système électronique selon la revendication 15 dans lequel des procédures de calcul correspondant aux chaînes d'addition requises pour la mise à joùr des coordonnées du au moins un point critique sont pré-calculées et stockées dans la mémoire externe.30 17- Programme d'ordinateur comportant des instructions pour l'exécution du procédé selon l'une des revendications 1 à 11, lorsque le programme est exécuté par un module de traitement de données.