Brevet FR2856538A1 — publié le 20041224

PROCEDE DE CONTRE-MESURE DANS UN COMPOSANT ELECTRONIQUE METTANT EN OEUVRE UN ALGORITHME CRYPTOGRAPHIQUE DU TYPE A CLE PUBLIQUE La présente invention concerne un procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de chiffrement à clé publique. Dans le modèle classique de la cryptographie à clé secrète, deux personnes désirant communiquer par l'intermédiaire d'un canal non sécurisé doivent au préalable se mettre d'accord sur une clé secrète de chiffrement K. La fonction de chiffrement et la 10 fonction de déchiffrement utilisent la même clé K. L'inconvénient du système de chiffrement à clé secrète est que ledit système requiert la communication préalable de la clé K entre.les deux personnes par l'intermédiaire d'un canal sécurisé, avant qu'un 15 quelconque message chiffré ne soit envoyé à travers le canal non sécurisé. Dans la pratique, il est généralement difficile de trouver un canal de communication parfaitement sécurisé, surtout si la distance séparant les deux personnes est importante. On 20 entend par canal sécurisé un canal pour lequel il est impossible de connaître ou de modifier les informations qui transitent par ledit canal. Un tel canal sécurisé peut être réalisé par un câble reliant deux terminaux, possédés par les deux dites personnes. Le concept de cryptographie à clé publique fut inventé par Whitfield Diffie et Martin Hellman en 1976 (IEEE Transactions on Information Theory, volume 22, numéro 6, pages 644-654, i976). La cryptographie à clé publique permet de résoudre le problème de la distribution des clés à travers un canal non sécurisé. Le principe de la cryptographie à clé publique consiste à utiliser une paire de clés, une 'clé publique de chiffrement et une clé privée de déchiffrement. Il doit 5 être calculatoirement infaisable de trouver la clé privée de déchiffrement à partir de la clé publique de chiffrement. Une personne A désirant communiquer une information à une personne B utilise la clé publique de chiffrement de la personne B. Seule la personne B 10 possède la clé privée associée à sa clé publique. Seule la personne B est donc capable de déchiffrer le message qui lui est adressé. Le problème calculatoire difficile considéré par Diffie et Hellman est la résolution du logarithme 15 discret dans le groupe multiplicatif d'un corps fini. On rappelle que dans un corps fini, le nombre d'éléments du corps s'exprime toujours sous la forme q^n, o q est un nombre premier appelé la caractéristique du corps et n est un nombre entier. Un 20 corps fini possédant q^n éléments est noté GF(q^n) Dans le cas o le nombre entier n est égal à 1, le corps fini est dit premier. Un corps possède deux groupes: un groupe multiplicatif et un groupe additif. Dans le groupe multiplicatif, l'élément neutre est noté 25 1 et la loi de groupe est notée multiplicativement par le symbole. et est appelée multiplication. Cette loi définit l'opération d'exponentiation dans le groupe multiplicatif G: étant donné un élément g appartenant à G et un entier d, le résultat de l'exponentiation de g 30 par d est l'élément y tel que y=gd=g.g.g..... g (d fois) dans le groupe G. On rappelle également que l'ordre d'un groupe G est le nombre de ses éléments et que l'ordre d'un élément g dans G est le plus entier positif e tel gAe=l dans G. Une propriété importante sur l'ordre des éléments d'un groupe est donnée par le théorème de Lagrange: l'ordre d'un élément divise toujours l'ordre de son groupe. Le problème du logarithme discret dans le groupe 5 multiplicatif G d'un corps fini consiste à trouver, s'il existe, un entier d tel y=gAd dans G, étant donné deux éléments y et g appartenant à G. Un autre avantage de la cryptographie à clé 10 publique sur la cryptographie à clé secrète est que la cryptographie à clé publique permet l'authentification par l'utilisation de signature électronique. La première réalisation de schéma de chiffrement à clé publique fut mis au point en 1977 par Ronald 15 Rivest, Adi Shamir et Leonard Adleman (Communications of the ACM, volume 21, numéro 2, pages 120-126, 1978), qui ont inventé le système de chiffrement RSA. La sécurité de RSA repose sur la difficulté de factoriser un grand nombre qui est le produit de deux nombres 20 premiers. Le système de chiffrement RSA est construit dans le groupe multiplicatif G de l'anneau Z/(nZ) obtenu en quotientant l'anneau des entiers Z par l'anneau nZ o n est un grand nombre entier qui est le produit de 25 nombres premiers p et q. Le problème RSA dans ce groupe G consiste à trouver, s'il existe, un élément m de G tel que c=mAe dans G, étant donné un élément c de G et un entier e relativement premier avec l'ordre du groupe G. Depuis, de nombreux systèmes de chiffrement à clé publique ont été proposés, dont la sécurité repose sur différents problèmes calculatoires: (cette liste n'est pas exhaustive). - Sac à dos de Merkle-Hellman: Ce système de chiffrement est basé sur la difficulté du problème de la somme de sousensembles. - McEliece: Ce système de chiffrement est basé sur la théorie des codes algébriques. Il est basé sur le problème du décodage de codes linéaires. - El Gamal: Ce système de chiffrement est basé sur la difficulté du logarithme discret dans un corps fini. - Courbes elliptiques: Le système de chiffrement à courbe elliptique 15 constitue une modification de systèmes cryptographiques existant pour les appliquer au domaine des courbes elliptiques. L'utilisation de courbes elliptiques dans des 20 systèmes cryptographiques fut proposé indépendamment par Victor Miller (Advances in Cryptology CRYPTO '85, volume 216 de Lecture Notes in Computer Science, Springer-Verlag, 1986) et Neal Koblitz (Mathematics of Computation, volume 48, numéro 177, pages 203-209, 25 1987) en 1985. Les applications réelles des courbes elliptiques ont été envisagées au début des années 1990. L'avantage de systèmes cryptographiques à base de courbes elliptiques est qu'ils fournissent une sécurité équivalente aux autres systèmes cryptographiques mais 30 avec des tailles de clé moindres. Ce gain en taille de clé implique une diminution des besoins en mémoire et une réduction des temps de calcul, ce qui rend l'utilisation des courbes elliptiques particulièrement adaptées pour des applications de type carte à puce. Pour mémoire, une courbe elliptique sur un corps fini GF(qAn) est l'ensemble des points (x,y) appartenant à GF(qAn) vérifiant l'équation: À A3 A2 4 y'2 + a1xy + a3y = x^3 + a2xA2 + a4x + a6, avec ai dans 5 GF(qAn) et du point à l'infini O. Toute courbe elliptique définie 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 à 10 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 (voir par exemple " Elliptic Curve Public Key Cryptosystems " par Alfred Menezes, Kluwer, 1993) 15 Dans ce groupe, la paire (x,y), o l'abscisse x et l'ordonnée y sont des éléments du corps GF(qAn), forme les coordonnées affines d'un point P de la courbe elliptique. L'opération d'addition de points permet de définir 20 une opération d'exponentiation sur courbe elliptique: étant donné un point P appartenant à une courbe elliptique et un entier d, le résultat de l'exponentiation de P par d est le point Q tel que Q=d*P=P+P+...+P (d fois). Dans le cas des courbes 25 elliptiques, afin d'insister sur la notation additive, l'exponentiation est encore appelée multiplication scalaire. La sécurité des algorithmes de cryptographie sur courbes elliptiques est basée sur la difficulté du 30 problème du logarithme discret dans le groupe G formé par les points d'une courbe elliptique, ledit problème consistant à partir de deux points Q et P appartenant à G, de trouver, s'il existe, un entier d tel que Q=d*P. Il existe de nombreux algorithmes cryptographiques construits sur un groupe G. Ainsi, il est possible de mettre en oeuvre des algorithmes assurant l'authentification, la confidentialité, le contrôle d'ihtégrité et l'échange de clé. Un point commun à la plupart des algorithmes cryptographiques construits sur un groupe G est qu'ils comprennent comme paramètre un élément g appartenant à ce groupe. La clé privée est un entier d choisi 10 aléatoirement. La clé publique est un élément y tel que y=gAd. Ces algorithmes cryptographiques fontgénéralement intervenir une exponentiation dans le calcul d'un élément z=hAd o d est la clé secrète et h est un élément du groupe G. Dans le paragraphe ci-dessous, on décrit un algorithme de chiffrement basé sur le problème du logarithme discret dans un groupe G, noté multiplicativement. Ce schéma est analogue au schéma de chiffrement d'El Gamal. Soient un groupe G et un 20 élément g dans G. La clé publique de chiffrement est y=gAd et la clé privée de déchiffrement est d. Un message m est chiffré de la manière suivante: - La personne désirant communiquer une information, appelée chiffreur, choisit un entier k 25 aléatoirement et calcule les éléments h=gAk et z=yAk dans le groupe G, et c=R(z)> m o R est une fonction appliquant les éléments de G sur l'ensemble des messages et désigne l'opérateur du OU exclusif. Le chiffré correspondant à m est 30 la paire (h,c). - La personne à laquelle est destiné le chiffré, appelée déchiffreur, qui possède la clé secrète d déchiffre m en calculant-: z'=hAd=gA(k.d)=yAk et m=R(z') c. Pour réaliser les exponentiations nécessaires dans les procédés de calcul décrits précédemment, plusieurs algorithmes existent: - algorithme d'exponentiation binaire gauche-droite; - algorithme avec chaînes d'addition ou d'additionsoustraction; - algorithme d'exponentiation k-aire gauche-droite; - algorithme d'exponentiation en représentation 10 signée de l'exposant. Ces algorithmes sont détaillés dans le chapitre 14 de " Handbook of Applied Cryptography " par A.J. Menezes, P.C. van Oorschot et S.A. Vanstone, CRC Press, 1997.15 Cette liste n'est pas exhaustive. L'algorithme le plus simple et le plus utilisé est l'algorithme d'exponentiation binaire gauche-droite. L'algorithme d'exponentiation binaire gauche-droite prend en entrée un élément g d'un groupe G et un 20 exposant d. L'exposant d est noté d=(d(t) , d (t1) ,...,d(0)) o (d(t),d(t-l1),...,d(0)) est la représentation binaire de d, avec d(t) le bit le plus significatif et d(0) le bit le moins significatif. L'algorithme retourne en sortie l'élément y=gAd dans le 25 groupe G. L'algorithme d'exponentiation binaire gauche-droite comporte les 3 étapes suivantes: 1) Initialiser le registre A avec l'élément neutre de G 2) Pour i allant de t à 0 exécuter: 2a) Remplacer A par A^2 2b) Si d(i)=l remplacer A par A.g 3) Retourner A. L'algorithme d'exponentiation k-aire gauche-droite prend en entrée un élément g d'un groupe G et un exposant d noté d=(d(t),d(t-1), ., d(0)), o (d(t),d(tl),...,d(0)) est la représentation k-aire de d, c'est-à5 dire chaque chiffre d(i) de la représentation de d est un entier compris entre 0 et 2Ak-1 pour un entier kÄl, avec d(t) le chiffre le plus significatif et d(0) le chiffre le moins significatif. L'algorithme retourne en sortie l'élément y=gAd dans le groupe G et comporte 10 les 4 étapes suivantes: 1) Précalculs: la) Poser g1=g lb) Si kÄ2, pour i allant de 2 à (2Ak-1) : calculer gi=gAi 2) Initialiser le registre A avec l'élément neutre de..DTD: G 3) Pour i allant de t à 0 exécuter: 3a) Remplacer A par AA(2Ak) 3b) Si d(i) est non-nul, remplacer A par A.gi 4) Retourner A. Dans le cas o k est égal à 1, on remarque que l'algorithme d'exponentiation k-aire gauche-droite n'est autre que l'algorithme d'exponentiation binaire 25 gauche-droite. L'algorithme d'exponentiation k-aire gauche-droite peut être adapté pour prendre en entrée une représentation signée de l'exposant d. L'exposant d est donné par la représentation k-aire signée 30 (d(t),d(t-l),...,d(0)) dans laquelle chaque chiffre d(i) est un entier compris entre -(2Ak-l) et 2^k-'l pour un entier kÄl, avec d(t) le chiffre le plus significatif et d(0). le chiffre le moins significatif. L'étape 3b de l'algorithme précédent est alors remplacée par: 3b') Si d(i) est strictement positif, remplacer A par A.gi; et si d(i) est strictement négatif, remplacer A par A.(gi) (-1) Cette adaptation est particulièrement intéressante quand l'inverse des éléments gi, noté (gi) A(-1l), est facile ou peu coûteux à calculer. Ceci est par exemple le cas dans le groupe G des points d'une courbe 10 elliptique. Dans le cas o l'inverse des éléments gi n'est pas facile ou trop coûteux à calculer, leur valeur est précalclée. Dans certaines situations, le produit de deux 15 exponentiations, du type (gAd).(hAe) dans un groupe G o get h sont des éléments de G et d et e deux entiers dont les représentations binaires respectives sont (d(t),d(tl),...,d(0)) et (e(t),e(t-l),...,e(0)), doit être calculée. Ceci. est notamment le cas dans la vérification d'une signature numérique DSA. Plutôt que de calculer chaque exponentiation gAd et hAe de façon séparée et d'ensuite en évaluer le produit, l'algorithme d'exponentiation binaire gauche-droite peut s'étendre pour calculer la double exponentiation 25 (gAd).(hAe) dans G de la façon suivante: 1) Initialiser le registre A avec l'élément neutre de G 2) Pour i allant de t à 0 exécuter: 30 2a) Remplacer A par A^2 2b) Si d(i)=l remplacer A par A.g 2c) Si e(i)=l remplacer A par A.h 3) Retourner A. L'avantage de cette méthode est que le nombre de multiplications pour le calcul de (gAd).(h^e) est réduit par rapport à deux applications successives de l'algorithme d'exponentiation binaire gauche-droite. 5 Une amélioration en vitesse de l'algorithme précédent consiste à précalculer l'élément u=g.h dans G. Ainsi, l'algorithme de double exponentiation binaire pour le calcul de (gAd).(h^e) dans G peut s'écrire: 1) Précalcul: la) Calculer u=g.h 2) Initialiser le registre A avec l'élément neutre de G 3) Pour i allant de t à 0 exécuter: 3a) Remplacer A par A^2 3b) Si d(i)=l et e(i)=0 remplacer A par A.g 3c) Si d(i)=0 et e(i)=l remplacer A par A.h 3c) Si d(i)=l et e(i)=l remplacer A par A.u 4) Retourner A. L'algorithme de double exponentiation binaire précédent se généralise en prenant en entrée des éléments g et h d'un groupe G et des exposants d et e donnés respectivement par les représentations k-aire d=(d(t),d(t-1),...,d(0)) et e=(e(t),e(t-1),...,e(0)), pour 25 un entier kÄl. L'algorithme retourne en sortie l'élément y=(gAd).(h^e) dans lé groupe G et comporte les 4 étapes suivantes: 1) Précalculs: la) Poser g1=g et h1=h lb) Si kÄ2, pour i allant de 2 à (2Ak-1) : calculer gi=gAi et hi=hAi 2) Initialiser le registre A avec l'élément neutre de G 3) Pour i allant de t à 0 exécuter: 3a) Remplacer A par AA(2Ak) 3b)' Si d(i) est non-nul, remplacer A par A.gi 3c) Si e(i) est non-nul, remplacer A par A.hi 4) Retourner A. Si les exposants e et d sont données en représentation k- aire signée par d=(d(t),d(t-l),...,d(0)) et e=(e(t),e(t-l),...,e(0)), les étapes 3b et 3c de l'algorithme précédent sont alors remplacées par: 10 3b') Si d(i) est strictement positif, remplacer A par A.gi; et si d(i) est strictement négatif, remplacer A par A. (gi)^(1) 3c') Si e(i) est strictement positif, remplacer A par 15 A.hi; et si e(i) est strictement négatif, remplacer A par A.(hi)^(-1) De façon remarquable, l'algorithme de double exponentiation correspondant au cas k=l dans 20 l'algorithme précédent o les exposants d et e sont donnés en représentation binaire signée est particulièrement intéressant pour les applications de type courbe elliptique dans un environnement de type carte à puce car l'inverse d'un élément est peu coûteux 25 et les besoins en mémoire sont réduits. De nombreuses variantes suivant ce cas particulier de k=l sont présentées dans un rapport technique de Jerome Solinas (Rapport technique CORR-2001-41, CACR, Université de Waterloo, Canada). Cette liste d'algorithmes de double exponentiation n'est pas exhaustive. Les algorithmes d'exponentiation et de double exponentiation décrits précédemment sont donnés en notation multiplicative; en d'autres mots, la loi de groupe du groupe G est notée. (multiplication). Ces algorithmes peuvent être données en notation additive en remplaçant les multiplications par des additions; en d'autres mots, la loi de groupe du groupe G est notée + (addition). Ceci est par exemple le cas du groupe des points d'une courbe elliptique qui est le plus souvent donné sous forme additive. Il est apparu que l'implémentation sur carte à puce 10 d'un algorithme cryptographique à clé publique construit sur un groupe G était vulnérable à des attaques consistant en une analyse différentielle d'une grandeur physique permettant de retrouver la clé secrète. Ces attaques sont appelées attaques de type 15 DPA, acronyme pour Differential Power Analysis et ont notamment été dévoilées par Paul Kocher (Advances in Cryptology - CRYPTO '99, volume 1966 de Lecture Notes in Computer Science, pages 388-397, Springer-Verlag, 1999). Parmi les grandeurs physiques qui peuvent être 20 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 25 grandeur physique considérée selon sa valeur. En particulier, lorsqu'une instruction manipule une donnée dont un bit particulier est constant, la valeur des autres bits pouvant varier, l'analyse de la consommation de courant liée à l'instruction montre que 30 la consommation moyenne de l'instruction n'est pas la même suivant que le bit particulier prend la valeur 0 ou 1. L'attaque de type DPA permet donc d'obtenir des informations supplémentaires sur les données intermédiaires manipulées par le microprocesseur du composant électronique lors de l'exécution d'un algorithme cryptographique. Ces informations supplémentaires peuvent dans certain cas permettre de révéler les paramètres privés de l'algorithme 5 cryptographique, rendant le système cryptographique vulnérable. Une parade efficace aux attaques de type DPA est de rendre aléatoire les entrées de l'algorithme 10 d'exponentiation utilisé pour calculer y=gAd. En d'autres termes, il s'agit de rendre l'exposant d et/ou l'élément g aléatoire. En notation additive, dans le calcul de Q=d*P, il s'agit de rendre l'exposant d et/ou l'élément P aléatoire. Des procédés de contre-mesure appliquant ce principe sont connus. Notamment, un procédé de contre-mesure consiste à masquer l'exposant d dans le calcul de y=gAd dans un 20 groupe G en remplaçant d par d+r.q o r est un entier aléatoire et q est l'ordre de l'élément g dans le groupe G. Une variante de cette contre-mesure consiste à remplacer d par d+r.q o r est un entier aléatoire et q est un multiple de l'ordre de l'élément g dans le 25 groupe G; par le théorème de Lagrange, un choix courant pour ce multiple 'est l'ordre du groupe G. La valeur de y=gAd dans G s'obtient alors en calculant y=gAd' avec d'=d+r.q. Cette contre-mesure est notamment décrite dans un article de Jean-Sébastien Coron (Cryptographic Hardware and Embedded Systems, volume 1717 de Lecture Notes in Computer Science, pages 292-302, Springer-Verlag, 1999) dans le cas o G est le groupe des points d'une courbe elliptique définie sur un corps fini. Le désavantage de la contre-mesure précédente est qu'elle nécessite la connaissance de l'ordre de l'élément g dans le groupe G ou un multiple de cet ordre. Dans de nombreuses situations, cette valeur est 5 inconnue et trop cobûteuse ou impossible à calculer. Un autre désavantage apparaît lorsque l'exposant d est remplacé par d+r.q o q est un multiple relativement grand de l'ordre de l'élément g dans le groupe G car le surcoût engendré par le masquage devient prohibitif. Un autre procédé de contre-mesure, notamment décrit dans un article de Christophe Clavier et Marc Joye (Cryptographic Hardware and Embedded Systems, volume 2162 de Lecture Notes in Computer Science, pages 300308, Springer-Verlag, 2001) consiste à écrire 15 l'exposant d sous la forme d=(d-r)+r o r est un entier aléatoire et d'ensuite évaluer y=gAd dans le groupe G comme le produit des deux exponentiations g^(d-r) et g r dans G. Contrairement à la contre-mesure décrite précédemment, cette contremesure ne nécessite pas la 20 valeur de l'ordre de g dans G ou d'un de ses multiples. Une variante consiste à tirer un entier aléatoire r et d'écrire d sous la forme d=d2.r+d1 avec d2 égal à la valeur par défaut de la division entière de d par r et dl égal au reste de ladite division. Le calcul de y=gAd 25 dans le groupe G s'évalue alors comme le produit des deux exponentiations gAd, et hAd2 avec h=g^r dans G. Le désavantage de ce type de contre-mesure est que plusieurs exponentiations sont nécessaires pour le calcul de y=gAd dans G. Un objet de la présente invention est un procédé de contre-mesure, notamment vis à vis des attaques de type DPA. Un autre objet de l'invention est un procédé de 35 contre-mesure aisé à mettre en oeuvre. L'idée à la base de l'invention est de rendre aléatoire l'exposant d en l'exprimant de façon aléatoire sous la forme d=d2.s+d1 o d1, d2 et s sont des entiers et d'ensuite calculer l'exponentiation y=gAd 5 dans le groupe G par un algorithme de double exponentiation. L'invention concerne donc un procédé de contremesure dans un composant électronique mettant en oeuvre 10 un algorithme cryptographique à clé publique, comprenant un calcul d'exponentiation de type y=gAd o g et y sont des éléments du groupe déterminé G noté de façon multiplicative et d est un nombre prédéterminé, caractérisé en ce qu'il comprend une première étape de 15 masquage pour exprimer de façon aléatoire l'exposant d sous la forme d=d2.s+d1 o d1, d2 et s sont des entiers et une deuxième étape pour calculer la valeur de y=gAd dans G par un quelconque algorithme de double exponentiation de type (gAdi).(hAd2) avec h=gAs dans G. 20 Ce procédé s'applique de la même façon si le groupe G est noté de façon additive. D'autres caractéristiques et avantages de l'invention sont présentés dans les descriptions 25 suivantes, faites en référence à des modes de réalisation particuliers. On a vu que l'algorithme d'exponentiation le plus simple dans un groupe G est l'algorithme 30 d'exponentiation binaire gauche-droite. De la même façon, les algorithmes de double exponentiation le plus simples sont donnés par les diverses extensions de l'algorithme d'exponentiation binaire gauche-droite. Soit donc g un élément d'un groupe G et soit d un exposant. Ainsi, un procédé de contre-mesure selon l'invention peut s'écrire comme suit: 1) Masquage de d: la) Exprimer d de façon aléatoire sous la forme d=d2.s+ dl o dl, d2 et s sont des entiers lb) Soient (dl(t),dl(t-l),...,dl(0)) et (d2(t),d2(t)...d2(0)) les représentations binaires 10 respectives de dl et de d2 2) Double exponentiation: 2a) Définir (calculer) l'élément h=gAs dans G 2b) Initialiser le registre A avec l'élément neutre de G 2c) Pour i allant de t à 0 exécuter: 2cl) Remplacer A par AA2 2c2) Si dl(i)=l remplacer A par A.g 2c3) Si d2(i)=l remplacer A par A.h 2c4) Retourner A. De façon remarquable, ce procédé masque l'exposant d et ne demande qu'au plus trois multiplications dans G par itération à l'étape 2). Ce nombre de multiplications dans G est réduit à deux dans le cas o 25 le produit de g et de h est précalculé. On obtient ainsi le procédé de contre-mesure suivant: 1) Masquage de d: la) Exprimer d de façon aléatoire sous la forme d=d2.s+ dl o dl, d2 et s sont des entiers lb) Soient (dl(t),dl(t-1),..,,dl(0)) et (d2(t),d2(tl) ,...,d2 (0)) les représentations binaires respectives de dl et de d2 2) Double exponentiation: 2a) Définir (calculer) l'élément h=gAs dans G 2b) Précalculer u=g.h dans G 2c) Initialiser le registre A avec l'élément neutre de G 2d) Pour i allant de t à 0 exécuter: 2dl) Remplacer A par AA2 2d2) Si dl(i)=l et d2(i)=0 remplacer A par A.g 2d3) Si dl(i)=O et d2(i)=l remplacer A par A.h 2d4) Si dl(i)=l et d2(i)=l remplacer A par A.u 2d5) Retourner A. Une autre application intéressante de l'invention concerne l'exponentation dans le groupe G des points d'une courbe elliptique définie sur un corps fini GF(qAn). Dans ce groupe G, noté de façon additive, 15 l'inversion d'un point P, notée -P, est une opération peu coûteuse de sorte qu'il est intéressant de représenter les exposants de façon signée. Soient donc un point P dans le groupe G des points d'une courbe elliptique définie sur un corps fini GF(q^n) et un exposant d. Ainsi, un procédé de contre-mesure selon l'invention appliqué au groupe des points d'une courbe elliptique sur un corps fini GF(qAn) peut s'écrire comme suit: 1) Masquage ded: la) Exprimer d de façon aléatoire sous la forme d=d2.s+ dl o dl, d2 et s sont des entiers lb) Soient (dl(t),dl(t-l),...,dl(O)) et (d2(t),d2(tl),...,d2(0)) des représentations binaires signées pour dl et de d2 30 3) exponentiation: 2a) Définir (calculer) le point R=s*P dans G 2b) Initialiser un registre A avec l'élément neutre de G 2c) Pour i allant de t à 0 exécuter: 2cl) Remplacer A par 2*A 2c2) Si dl(i) est non nul remplacer A par A+ dl (i) *P 2c3) Si d2(i) est non nul remplacer A par A+ d2(i)*R 2c4) Retourner A. De façon générale, le procédé de contre-mesure s'applique à tout algorithme de double exponentiation 10 dans un groupe G, noté de façon multiplicative ou additive. Un mode de réalisation préféré pour exprimer l'exposant d de façon aléatoire sous la forme d=d2.s+d, 15 o dl, d2 et s sont des entiers à l'étape la dans les procédés de contre-mesure ci-dessus consiste à choisir un entier aléatoire s et à prendre d2 égal à la valeur par défaut de la division entière de d par s et dl égal au reste de ladite division. Un autre mode de réalisation préféré pour exprimer l'exposant d de façon aléatoire sous la forme d=d2.s+d, o dl, d2 et s sont des entiers à l'étape la dans les procédés de contre-mesure ci-dessus consiste à choisir un entier aléatoire dl, à fixer s à la valeur 1 et à 25 prendre d2 égal à la différence de d et de dl. REVENDICATIONS 1. Procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme 5 cryptographique à clé publique, comprenant un calcul d'exponentiation de type y=gAd o g et y sont des éléments du groupe déterminé G noté de façon multiplicative et, d est un nombre prédéterminé, caractérisé en ce qu'il comprend 10 une première étape de masquage pour exprimer de façon aléatoire l'exposant d sous la forme d=d2.s+dl o dl, d2 et s sont des entiers et une deuxième étape pour calculer la valeur de y=gAd dans G par un quelconque algorithme de double 15 exponentiation de type (gAdi). (hAd2) avec h=gAs dans G. 2. Procédé de contre-mesure selon la revendication 1, caractérisé en ce que le groupe G est noté 20 de façon additive. 3. Procédé de contre-mesure selon la revendication 1, caractérisé en ce que le procédé comprend les étapes suivantes: 1)Masquage de d: la) Exprimer d de façon aléatoire sous la forme d=d2.s+ dl o dl, d2 et s sont des entiers lb) Soient (dl(t),dl (t-l) ,...dl (0)) et 30 (d2(t),d2(t-l),...,d2(0)) les représentations binaires respectives de dl et de d2 2) Double exponentiation: 2a) Définir (calculer) l'élément h=g^s dans G 2b) Initialiser le registre A avec l'élément neutre de G 2c) Pour i allant de t à 0 exécuter: 2cl) Remplacer A par AA2 2c2) Si dl(i)=l remplacer A par A.g 2c3) Si d2(i)=l remplacer A par A.h 2c4) Retourner A. 4. Procédé de contre-mesure selon la revendication 10 1, caractérisé en ce que le procédé comprend les étapes suivantes: l)Masquage de d: la) Exprimer d de façon aléatoire sous la forme d=d2.s+dl o dl, d2 et s sont des entiers 15 lb) Soient (dl(t),dl(t-l),..., d1(0O)) et (d2(t) , d2(t-l),...,d2(0)) les représentations binaires respectives de dl et de d2 2)Double exponentiation: 2a) Définir (calculer) l'élément h=gAs 20 dans G 2b) Précalculer u=g.h dans G 2c) Initialiser le registre A avec l'élément neutre de G 2d) Pour i allant de t à 0 exécuter: 25 2dl) Remplacer A par AA2 2d2) Si dl(i)=l et d2(i)=0 remplacer A par A.g 2d3) Si dl(i)=0 et d2(i)=l remplacer A par A.h 2d4) Si dl(i)=l et d2(i)=l remplacer A par A.u 2d5) Retourner A. 5. Procédé de contre-mesure selon la revendication 2, caractérisé en ce que le procédé comprend les étapes suivantes: 1) Masquage de d: la) Exprimer d de façon aléatoire sous la forme d=d2.s+ dl o dl, d2 et s sont des entiers lb) Soient (dl (t) , dl (t-l),...,dl (0)) et (d2(t) , d2(t-l) , ...,d2(0)) des représentations binaires signées pour dl et de d2 10 2)exponentiation 2a) Définir (calculer) le point R=s*P dans G 2b) Initialiser un registre A avec l'élément neutre de G 2c) Pour i allant de t à 0 exécuter: 2cl) Remplacer A par 2*A 2c2) Si dl(i) est non nul remplacer A par A+ dl(i)*P 2c3) Si d2(i) est non nul remplacer A par A+ d2(i)*R 2c4) Retourner A. 6. Procédé de contre-mesure selon l'une quelconque des revendications précédentes, caractérisé en 25 ce que, à la première étape de masquage, l'expression de l'exposant d de façon aléatoire sous la forme d=d2.s+d, o dl, d2 et s sont des entiers, consiste à choisir un entier aléatoire s et à prendre d2 égal à la valeur par défaut 30 de la division entière de d par s et dl égal au reste de ladite division. 7. Procédé de contre-mesure selon l'une quelconque des revendications 1 à 5, caractérisé en ce que l'expression de l'exposant d de façon aléatoire sous la forme d=d2.s+d1 o d1, d2 et s sont des entiers, consiste à choisir un entier aléatoire d1, à fixer s à la valeur 1 et à prendre d2 égal à la différence de d et de d1. 8. Composant électronique mettant en oeuvre le procédé selon l'une quelconque des revendications précédentes.