Brevet FR2926652A1 — publié le 20090724

PROCEDE ET DISPOSITIFS DE CONTRE-MESURE POUR CRYPTOGRAPHIE ASYMETRIQUE A SCHEMA DE SIGNATURE La présente invention concerne un procédé de contre-mesure dans un compcsant électronique mettant en oeuvre un algorithme de cryptographie asymétrique à clé privée, résistant à des at-=aques visant à découvrir la clé privée. Elle concerne également un dispositif à microcircuit et un dispositif portable, notamment une carte à puce, mettant en oeuvre un tel procédé. La cryptographie asymétrique à clé privée repose sur l'utilisation de primitives P qui sont généralement des fonctions exploitant un problème à résolution complexe et à sens unique, tel que le problème dit du logarithme discret dans les corps finis (DLP de l'Anglais � Discrete Logarithm Problem �) ou celui dit du logarithme discret sur les courbes elliptiques (ECDLP de l'Anglais � Elliptic Curves Discrete Logarithm Problem �). En d'autres termes, pour une primitive P de cryptographie asymétrique, impliquant une donnée d'entrée x, il est simple de calculer y = F(x), mais connaissant y et la primitive F, il est � difficile � de retrouver la valeur de x. Le terme � difficile � signifie ici � calculatoirement impossible à résoudre �. Dans les corps finis, F est une exponentiation modulaire, dans les courbes elliptiques, F est une multiplication scalaire sur les points de la courbe elliptique définie. Les schémas de signature constituent une utilisation classique de la cryptographie asymétrique. Comme cela est illustré sur la figure 1, une application algorithmique de cryptographie asymétrique à schéma de signature 10 impliquant l'utilisation d'une clé privée d est généralement mise en oeuvre par un microcircuit 12 pour authentifier l'émission d'un message M par une signature de ce message à l'aide de la clé privée. La clé privée d est par exemple stockée Jans le microcircuit 12 qui comporte une mémoire 14 incluant elle-même un espace de mémoire sécurisé 16 prévu à cet effet et un microprocesseur 18 pour exécuter l'algorithme de cryptographie asymétrique 10. Les dispositifs à microcircuits mettant en oeuvre des algorithmes de cryptographie font parfois l'objet d'attaques visant à déterminer les données secrètes qu'ils manipulent telles que la ou les clés utilisée(s) et éventuellement, dans certains cas, de l'information sur les messages eux-mêmes. En particulier, les algorithmes de cryptographie asymétrique à schéma de signature font l'objet d'attaques visant à découvrir la clé privée. Les attaques par canaux auxiliaires constituent une famille importante des techniques de cryptanalyse qui exploitent certaines propriétés des implémentations logicielles ou matérielles des algorithmes de cryptographie. Parmi les attaques par canaux auxiliaires connues, les attaques de type SPA (de l'anglais � Simple Power Analysis �) ou DPA (de l'anglais � Differential Power Analysis �) consistent à mesurer les courants et tensions entrants et sortants dans le microcircuit au cours de l'exécution de l'algorithme de cryptographie asymétrique dans le but d'en déduire la clé privée. La faisabilité de cette famille d'attaques a été démontrée dans l'article de P. Kocher, J. Jaffe et B. Jun intitulé � Differential Power Analysis � notamment publié dans Advances in Cryptology - Crypto 99 Proceedings, Lecture Notes In Computer Science Vol. 1666, M. Wiener, ed., Springer-Verlag, 1999. Les attaques temporelles analysent le temps mis pour effectuer certaines opérations. De telles attaques sur des algorithmes de cryptographie asymétrique sont décrites dans l'article de P. Kocher, N. Koblitz intitulé � Timing attacks on implerentations of Diffie-Hellman, RSA, DSS, and other systems � notamment publié dans Advances in Cryptology Crypto 96, 16th annual international cryptology conference, Aug. 18-22, 1996 Proceedings. On connaît également les attaques par injection de faute(s), parmi lesquelles on peut citer les attaques DFA (de l'anglais � Differential Fault Analysis �), qui consistent à engendrer volontairement des fautes lors de l'exécution de l'algorithme de cryptographie, par exemple en perturbant le microcircuit sur lequel il s'exécute. Une telle perturbation peut inclure un (ou plusieurs) éclairage(s) bref(s) du microcircuit ou la génération d'un ou plusieurs pic(s) de tension sur l'un de ses contacts. Elle permet ainsi sous certaines conditions d'exploiter les erreurs de calcul et de comportement générées afin d'obtenir une partie voire la totalité de la clé privée recherchée. Afin de lutter contre ces attaques qui sont variées par nature, de nombreuses solutions très différentes les unes des autres ont été apportées. L'invention concerne plus particulièrement celles qui concernent un procédé de contre-mesure dans un composant électronique mettant en œuvre un algorithme de cryptographie asymétrique à clé privée d, comprenant les étapes consistant à : - générer une première donnée de sortie à l'aide d'une primitive, - générer un paramètre de protection a. Ces algorithmes prévoient en général de modifier l'exécution de la primitive à l'aide du paramètre de protection généré. Le paramètre de protection a est généré de façon classique à l'aide d'un générateur de données pseudo aléatoires 20, de sorte que l'exécution de la primitive par l'algorithme de cryptographie 10 est elle-même rendue aléatoire, par exemple par une technique communément qualifiée de masquage, qui peut être également renommée méthode de transformation ou de déformation des données puisque leur manipulation est déformée par opposition à leur utilisation brute, réalisée, par une section de contre-mesure 22 du microprocesseur 18, à l'aide du paramètre de protection a. Ainsi, les données intermédiaires de l'algorithme de cryptographie et, par suite, les courants mesurables sont modifiés par le paramètre de protection aléatoire et leur observation ne permet pas de retrouver la véritable valeur de la clé privée. En revanche, le masquage ne perturbe pas l'algorithme lui-même qui fournit donc le même résultat avec ou sans masquage. Par exemple, lors de l'exécution de l'algorithme de cryptographie asymétrique connu sous le nom de RSA (du nom de ses auteurs Rives:, Shamir et Adleman), une primitive consistant en une exponentiation modulaire est exécutée. Une implémentation efficace de cette primitive utilise une représentation binaire de la clé privée d en réalisant des itérations sur chaque bit de cette représentation binaire. Dans chaque itération, le calcul effectué et de fait la consommation d'énergie lors de la réalisation du calcul dépend de la valeur du bit concerné. Par conséquent,. l'exécution d'une telle primitive rend la clé privée particulièrement vulnérable aux attaques précitées. Une contre-mesure classique consiste alors à masquer directement la clé privée à l'aide du paramètre de protection. On peut donc protéger de cette façon un schéma connu de signature utilisant cet algorithme RSA pour signer un message M par application de l'exponentiation modulaire au message M à l'aide de la clé privée d en tant qu'exposant. La signature est dans ce cas le résultat direct de l'exponentiation modulaire. En revanche, on ne peut pas protéger de cette façon un autre schéma connu de signature consistant à appliquer l'heuristique de Fiat-Shamir à un protocole d'identification à divulgation nulle de connaissance. Un tel schéma de signature est connu : on se reportera par exemple à sa définition dans la thèse présentée et soutenue publiquement par Benoît Chevallier-Mames le 16 Novembre 2006 à l'Ecole Normale Supérieure, Paris, intitulée � Cryptographie à clé publique : constructions et preuves de sécurité �, plus particulièrement aux chapitres 4.1.2 et 4.2.1, pages 27-30. De même le protocole d'identification de Schnorr et les signatures El Gamal et DSA (de l'anglais � Digital Signature Algorithm �) doivent être protégées d'une autre façon. Par exemple l'algorithme DSA, qui utilise cet autre schéma de signature, comprend les étapes consistant à : - générer une première donnée de sortie à l'aide d'une primitive basée sur le problème du logarithme discret et appliquée à l'aide d'un aléa différent de la clé privée, - générer, à partir d'une opération impliquant la 15 première donnée de sortie et la clé privée, une seconde donnée de sortie, et -retourner les première et seconde données de sortie en tant que signature. Un procédé de contre-mesure pour cet algorithme est 20 décrit dans l'article de D. Naccache et al, intitulé � Experimenting with faults, lattices and the DSA � publié dans Proceedings of the 8th International Workshop on Theory and Practice in Public Key Cryptography 2005 (January 23-26, 2005, Les Diablerets, Switzerland), 25 Lecture Notes in Computer Science, vol. 3386/2005, pp 16- 28, Springer Ed. Dans ce document, une attaque par injection de faute(s) est décrite. Cette attaque permet, par commutation à 0 d'un certain nombre de bits de poids 30 faible de l'aléa puis calcul de la signature un certain nombre de fois, d'en déduire la valeur de la clé privée. Protéger l'exécution de la primitive en masquant l'aléa n'est pas efficace contre les attaques par injection de faute(s) dans ce type d'algorithme puisqu'il 35 n'est pas nécessaire de connaître la valeur de cet aléa pour retrouver la clé privée. L'article prévoit donc des méthodes plus complexes,. combinant par exemple différentes techniques de façon simultanée. Il peut ainsi être souhaité de prévoir un procédé de cryptographie asymétrique résistant aux attaques du type précité et qui soit simple à mettre en oeuvre, notamment pour les algorithmes à schéma de signature appliquant l'heuristique de Fiat-Shamir à un protocole d'identification à divulgation nulle de connaissance. Un mode de réalisation de l'invention concerne un procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de cryptographie asymétrique à clé privée, comprenant les étapes consistant à . - générer une première donnée de sortie à l'aide 15 d'une primitive, - générer un paramètre de protection, caractérisé en ce qu'il comporte en outre les étapes consistant à : - transformer, à l'aide du paramètre de protection, 20 au moins l'un des éléments de l'ensemble constitué de la clé privée et d'un paramètre intermédiaire obtenu à partir de la première donnée de sortie, pour fournir respectivement des premier et second opérandes, et -générer, à partir d'une opération impliquant les 25 premier et second opérandes, une seconde donnée de sortie. Ainsi le paramètre de protection est utilisé pour protéger l'exécution de l'opération qui suit l'application de la primitive, plutôt que l'exécution de 30 la primitive elle-même. C'est en effet davantage cette opération qui est exploitée dans les attaques visant ce type de schéma de signature. Selon un mode de réalisation, le procédé de contre-mesure comporte les étapes consistant à : 35 - transformer la clé privée à l'aide du paramètre de protection, et -générer, à partir d'une première opération impliquant le paramètre intermédiaire et la clé privée transformée, une première donnée intermédiaire, générer, à partir d'une seconde opération impliquant le paramètre intermédiaire et le paramètre de protection, une seconde donnée intermédiaire, puis combiner les première et seconde données intermédiaires pour fournir la seconde donnée de sortie. Selon un mode de réalisation, le procédé de contre-10 mesure comporte les étapes consistant à : - transformer le paramètre intermédiaire obtenu à partir de la première donnée de sortie à l'aide du paramètre de protection, et - générer, à partir d'une première opération 15 impliquant le paramètre intermédiaire transformé et la clé privée, une première donnée intermédiaire, générer, à partir d'une seconde opération impliquant le paramètre de protection et la clé privée, une seconde donnée intermédiaire, puis combiner les première et seconde 20 données intermédiaires pour fournir la seconde donnée de sortie. Selon un mode de réalisation, le paramètre intermédiaire est la première donnée de sortie. Selon un mode de réalisation, la primitive est une 25 exponentiation modulaire pour la réalisation d'un algorithme de cryptographie à schéma de signature de type DSA. Selon un mode de réalisation, la primitive est une multiplication scalaire pour la réalisation d'un 30 algorithme de cryptographie à schéma de signature de type ECDSA. Selon un mode de réalisation, le procédé de contre-mesure met en oeuvre un algorithme de cryptographie asymétrique à schéma de signature du type consistant à 35 appliquer l'heuristique de Fiat-Shamir à un protocole d'identification à divulgation nulle de connaissance. Selon un mode de réalisation, la génération du paramètre de protection comporte les étapes consistant à . - définir une fonction génératrice, par applications successives à au moins un paramètre secret prédéterminé et stocké en mémoire, d'une séquence de valeurs déterminable uniquement à partir de ce paramètre secret et de cette fonction, - générer le paramètre de protection de façon 10 reproductible à partir d'au moins une valeur de cette séquence. Selon un mode de réalisation, le procédé de contre-mesure comporte les étapes consistant à : - définir une pluralité de fonctions, chaque 15 fonction étant génératrice, par applications successives à au moins un paramètre secret correspondant prédéterminé et stocké en mémoire, d'une séquence de valeurs correspondante déterminable uniquement à partir du paramètre secret correspondant et de la fonction 20 correspondante, -combiner la pluralité de séquences de valeurs générées à l'aide d'une relation prédéfinie pour générer une nouvelle séquence de valeurs, -générer le paramètre de protection de façon 25 reproductible à partir d'au moins une valeur de cette nouvelle séquence. Selon un mode de réalisation, le procédé de contre-mesure comporte les étapes consistant à : - définir une fonction génératrice, par 30 applications successives à au moins un paramètre secret prédéterminé et stocké en mémoire, d'une séquence de valeurs déterminable uniquement à partir du paramètre secret et de la fonction, - combiner la séquence de valeurs générées avec des 35 paramètres publics de l'algorithme de cryptographie pour générer une nouvelle séquence de valeurs, - générer le paramètre de protection de façon reproductible à partir d'au moins une valeur de cette nouvelle séquence. Selon un mode de réalisation, le procédé de contre- mesure comporte, après réalisation de la transformation, une étape consistant à régénérer le paramètre de protection pour l'utiliser lors de l'étape de génération de la seconde donnée de sortie. Un autre mode de réalisation de l'invention consiste à fournir un dispositif à microcircuit, comprenant un microprocesseur pour la mise en oeuvre d'un procédé de contre-mesure d'un algorithme de cryptographie asymétrique à clé privée, au moins une mémoire sécurisée pour le stockage de la clé privée, et un générateur de données pour la génération d'un paramètre de protection, caractérisé en ce qu'il est configuré pour : - générer une première donnée de sortie à l'aide d'une primitive, - transformer, à l'aide du paramètre de protection, au moins l'un des éléments de l'ensemble constitué de la clé privée et d'un paramètre intermédiaire obtenu à partir de la première donnée de sortie, pour fournir respectivement des premier et. second opérandes, et -générer, à partir d'une opération impliquant les premier et second opérandes, une seconde donnée de sortie. Selon un mode de réalisation, le dispositif à microcircuit est configuré pour : - transformer la clé privée à l'aide du paramètre de 30 protection, et - générer, à partir d'une première opération impliquant le paramètre intermédiaire et la clé privée transformée, une première donnée intermédiaire, générer, à partir d'une seconde opération impliquant le paramètre 35 intermédiaire et le paramètre de protection, une seconde donnée intermédiaire, puis combiner les première et seconde données intermédiaires pour fournir la seconde donnée de sortie. Selon un mode de réalisation, le dispositif à microcircuit est configuré pour : - transformer le paramètre intermédiaire obtenu à partir de la première donnée de sortie à l'aide du paramètre de protection, et -générer, à partir d'une première opération impliquant le paramètre intermédiaire transformé et la clé privée, une première donnée intermédiaire, générer, à partir d'une seconde opération impliquant le paramètre de protection et la clé privée, une seconde donnée intermédiaire, puis combiner les première et seconde données intermédiaires pour fournir la seconde donnée de sortie. Selon un mode de réalisation, le paramètre intermédiaire est la première donnée de sortie. Selon un mode de réalisation, la primitive est une exponentiation modulaire pour la réalisation d'un algorithme de cryptographie à schéma de signature de type DSA. Selon un mode de réalisation, la primitive est une multiplication scalaire pour la réalisation d'un algorithme de cryptographie à schéma de signature de type ECDSA. Selon un mode de réalisation, le microprocesseur met en oeuvre un algorithme de cryptographie asymétrique à schéma de signature du type consistant à appliquer l'heuristique de Fiat-Shamir à un protocole d'identification à divulgation nulle de connaissance. Selon un mode de réalisation, le générateur de données est configuré pour générer le paramètre de protection en : - définissant une fonction génératrice, par applications successives à au moins un paramètre secret prédéterminé et stocké en mémoire, d'une séquence de valeurs déterminable uniquement à partir de ce paramètre secret et de cette fonction, et - générant le paramètre de protection de façon reproductible à partir d'au moins une valeur de cette 5 séquence. Selon un mode de réalisation, le générateur de données est configuré pour : - définir une pluralité de fonctions, chaque fonction étant génératrice, par applications successives 10 à au moins un paramètre secret correspondant prédéterminé et stocké en mémoire, d'une séquence de valeurs correspondante déterminable uniquement à partir du paramètre secret correspondant et de la fonction correspondante, 15 - combiner la pluralité de séquences de valeurs générées à l'aide d'une relation prédéfinie pour générer une nouvelle séquence de valeurs, - générer le paramètre de protection de façon reproductible à partir d'au moins une valeur de cette 20 nouvelle séquence. Selon un mode de réalisation, le générateur de données est configuré pour - définir une fonction génératrice, par applications successives à au moins un paramètre secret 25 prédéterminé et stocké en mémoire, d'une séquence de valeurs déterminable uniquement à partir du paramètre secret et de la fonction, -combiner la séquence de valeurs générées avec des paramètres publics de l'algorithme de cryptographie pour 30 générer une nouvelle séquence de valeurs, - générer le paramètre de protection de façon reproductible à partir d'au moins une valeur de cette nouvelle séquence. Selon un mode de réalisation, le dispositif à 35 microcircuit est configuré pour, après réalisation de la transformation, régénérer le paramètre de protection pour l'utiliser lors de l'étape de génération de la seconde donnée de sortie. Un autre mode de réalisation de l'invention consiste à fournir un dispositif portable, notamment une carte à puce, comprenant un dispositif à microcircuit tel que décrit précédemment. Des exemples de réalisation de la présente invention seront exposés plus en détail dans la description suivante, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : - la figure 1 précédemment décrite représente de façon schématique la structure d'un dispositif à microcircuit, de type classique, - la figure 2 représente de façon schématique la 15 structure d'un dispositif à microcircuit, selon un premier mode de réalisation de l'invention, - la figure 3 représente de façon schématique une carte à puce comprenant le dispositif de la figure 2, - la figure 4 illustre les étapes successives d'un 20 premier procédé de contre-mesure mis en oeuvre par le dispositif de la figure 2, - la figure 5 illustre les étapes successives d'un deuxième procédé de contre-mesure mis en oeuvre par le dispositif de la figure 2, 25 - la figure 6 représente de façon schématique la structure d'un dispositif à microcircuit, selon un deuxième mode de réalisation de l'invention, et - la figure 7 illustre les étapes successives d'un procédé de contre-mesure mis en oeuvre par le dispositif 30 de la figure 6. Premier mode de réalisation de l'invention. Le dispositif à microcircuit 12' représenté sur la figure 2 comporte, comme celui représenté sur la figure 1, une application algorithmique de cryptographie 35 asymétrique 10, une mémoire 14 incluant un espace de mémoire sécurisé 16 pour le stockage, notamment, d'une clé privée d destinée à être utilisée par l'application 10, un microprocesseur 18 et un générateur de données pseudo aléatoires 20 pour la fourniture d'un paramètre de protection a. Il comporte également une section de contre-mesure 22', mais celle-ci apporte une amélioration aux contre-mesures existantes, en particulier à la section de contre-mesure 22 précédemment décrite. Par ailleurs, le dispositif 12' est par exemple intégré dans un dispositif portable, notamment sous la forme d'une puce de carte à puce sécurisée 30, comme représenté sur la figure 3. On notera que, bien que l'application algorithmique de cryptographie 10 et la section de contre-mesure 22' aient été représentées comme distinctes, celles-ci peuvent être en fait intimement imbriquées en une même implémentation, logicielle ou matérielle, d'un algorithme de cryptographie asymétrique incluant une contre-mesure. Dans le dispositif à m__crocircuit 12', l'application algorithmique de cryptographie asymétrique 10 est plus précisément adaptée pour la mise en oeuvre d'un schéma de signature du type consistant à appliquer l'heuristique de Fiat-Shamir à un protocole d'identification à divulgation nulle de connaissance. Elle comporte donc : - une section l0a d'application d'une primitive pour générer une première donnée de sortie s1, et - une section 10b d'exécution d'une opération impliquant au moins deux opérandes, l'un obtenu à partir de la première donnée de sortie et éventuellement transformé par la section 22', l'autre étant la clé privée éventuellement transformée par la section 22', pour générer une seconde donnée de sortie s2. Pour une application de signature utilisant ce schéma, les première et seconde données de sortie constituent la signature (s1, s2). Contrairement au dispositif 12, dans ce dispositif 12' la section de contre-mesure 22' est configurée pour transformer, à l'aide du paramètre de protection a, la clé privée d et/ou un paramètre intermédiaire obtenu à partir de la première donnée de sortie. Dans le cas d'une signature DSA, le paramètre intermédiaire est la première donnée de sortie elle-même. Différents procédés de contre-mesure conformes à l'invention peuvent être mis en oeuvre par le dispositif de la figure 2. Un certain nombre d'entre eux, non exhaustifs vont être présentés en référence aux figures 4 et 5. Un premier procédé de ce type, réalisant une 10 signature de type DSA sur un message M, est illustré par la figure 4. Lors d'une première étape 100 de génération d'une paire de clés (une clé publique et une clé privée), on détermine aléatoirement : 15 - un nombre premier p de L bits, avec 512 1, - un nombre d de k bite, tel que 0 dont la taille de la représentation binaire est égale à celle de la clé privée d. Er.. variante, le générateur 20 génère un paramètre a' dont la taille est largement inférieure à celle de d, mais la représentation binaire de ce paramètre a' est concaténée autant de fois avec elle-même que nécessaire, pour fournir finalement un paramètre de protection a dont la taille de la représentation binaire est égale à celle de d. En variante également, le générateur 20 génère un paramètre a' qui est combiné à d'autres paramètres de l'algorithme DSA, tels que q ou sl déterminés précédemment, à l'aide d'une fonction COMB pour fournir le paramètre de protection a : a = COMB (a' , q, sl, ...). Le paramètre généré par le générateur 20 (a ou a') est conservé en mémoire pour une utilisaticn ultérieure, notamment de façon optionnelle en tant que paramètre de vérification pour le paramètre a' lorsqu'il est combiné à d'autres paramètres de l'algorithme DSA pour former a. Lors d'une étape suivante de masquage 106, la 20 section de contre-mesure 22' transforme la clé privée d de la façon suivante : d' = c + a. Lors d'une étape 108 de calcul d'une opération impliquant la première donnée de sortie sl et la clé privée transformée d', on réalise une congruence linéaire 25 de la forme suivante : A = u-1 (H (M) + d' . sl) mod q, où H (M) est le résultat d'un hachage cryptographique avec la fonction connue SHA-1 sur le message M. On passe ensuite à une étape de vérification 30 optionnelle 110 qui est exécutée si, lors de l'étape 104, le paramètre a' généré par le générateur 20 a été conservé en mémoire en tant que paramètre de vérification. Lors de cette étape 110, on calcule de nouveau le paramètre a, à l'aide de la fonction COMB et 35 des valeurs publiques et/ou conservées en mémoire utilisées par cette fonction (a', q, sl, ...). Si la valeur de a a changé entre l'étape 104 et l'étape 110, cela permet de conclure qu'une attaque par injection de faute(s) a eu lieu entre ces deux étapes. Une alerte est alors tra:Tlsmise par l'application de cryptographie 10 et l'algorithme de cryptographie est stoppé (112) ou une réaction sécuritaire différente entre en application. Si la valeur de a n'a pas changé entre l'étape 104 et l'étape 110, on passe à une étape 114 lors de laquelle 10 on effectue le calcul suivant : B = (u-'.a.sl) mod q. On en déduit enfin une seconde donnée de sortie s2, donnée par la relation s2 = (A - B) mod q. Lors d'une dernière étape 116, l'application de 15 cryptographie 10 retourne la valeur (sl, s2) en tant que signature DSA du message M. En variante, le premier procédé décrit précédemment peut être modifié comme suit. Lors de l'étape de masquage 106, la section de 20 contre-mesure 22' transforme la première donnée de sortie sl de la façon suivante : si' = s1 + a. Lors de l'étape 108, le calcul de l'opération de congruence linéaire implique la première donnée de sortie transformée sl' et la clé privée d : 25 A = u-1 (H (M) + d. sl') mod q. Lors de l'étape 114, on effectue le calcul suivant : B = (u-l.d.a) mod q. On en déduit la seconde donnée de sortie s2, par la relation s2 = (A - B) mod q. 30 En variante également, le premier procédé décrit précédemment peut être modifié comme suit. Lors de l'étape 108, le calcul de l'opération de congruence linéaire implique la première donnée de sortie sl et la clé privée transformée d' . 35 A = (H (M) + d' . sl) mod q. Lors de l'étape 114, on effectue le calcul suivant : B = (A - a.sl) mod q. On en déduit la seconde donnée de sortie s2, par la relation s2 = (u-1.B) mod q. En variante également, le premier procédé décrit précédemment peut être modifié comme suit. Lors de l'étape de masquage 106, la section de contre-mesure 22' transforme la première donnée de sortie sl de la façon suivante : sl' = sl + a. Lors de l'étape 108, le calcul de l'opération de congruence linéaire implique la première donnée de sortie 10 transformée sl' et la clé privée d : A = (H(M) + d. s1') mod q. Lors de l'étape 114, on effectue le calcul suivant : B = (A - d.a) mod q. On en déduit la seconde donnée de sortie s2, par la 15 relation s2 = (u-1.B) mod q. En variante également, le premier procédé décrit précédemment peut être modifié comme suit. Lors de l'étape 104, le générateur 20 de données pseudo aléatoires génère un paramètre de protection a 20 dont la taille de la représentation binaire est largement inférieure à celle de d. Lors de l'étape de masquage 106, la section de contre-mesure 22' transforme la clé privée d de la façon suivante : d' = d + a.q. 25 Lors de l'étape 108, le calcul de l'opération de congruence linéaire implique la première donnée de sortie transformée sl et la clé privée transformée d' . A = (H(M) + d' . sl) mod q. Lors de l'étape 114, on effectue le calcul suivant, 30 donnant directement la valeur de la seconde donnée de sortie : S2 = (u-1.A) mod q. On peut également reproduire les contremesures précédentes en prenant a = -a. 35 Un deuxième procédé conforme a l'invention, réalisant une signature de type ECDSA (de l'anglais � Elliptic Curve Digital Signature Algorithm �) sur un message M, est illustré par la figure 5. Soit un élément G d'une courbe elliptique d'ordre q avec q un nombre premier supérieur à 2160. La courbe est également définie par deux éléments a et b qui sont des éléments d'un champ de Galois de cardinalité n. Lors d'une première étape 200 de génération d'une paire de clés (une clé publique et une clé privée), on détermine aléatoirement un nombre d de k bits, tel que 0 Lors d'une deuxième étape 202 d'application d'une primitive, un aléa u est généré, choisi de telle façon que 0 généré par le générateur 20 (a ou a') est conservé en mémoire pour une utilisation ultérieure, notamment de façon optionnelle en tant que paramètre de vérification pour le paramètre a' lorsqu'il est combiné à d'autres paramètres de l'algorithme DSA pour former a. Les étapes 206 à 216 suivantes sont identiques aux étapes 106 à 116. Elles ne seront donc pas détaillées. De même, les variantes proposées au premier procédé décrit précédemment sont également applicables à ce deuxième procédé. D'autres procédés confcrmes à l'invention, réalisant des signatures autres que celles précitées (DSA et ECDSA) peuvent être réalisés. Ces procédés diffèrent de ceux précités, éventuellement par la primitive qu'ils mettent en oeuvre à l'étape 102, 202 pour obtenir la première donnée de sortie, et par l'opération des étapes 108, 114 ou 208, 214 permettant d'obtenir la seconde donnée de sortie. Par exemple, un autre procédé conforme à l'invention peut réaliser une signature de type Schnorr. Dans ce cas, l'étape de calcul de la première donnée de sortie est identique à l'étape 102. En revanche, on applique une fonction de hachage G à la première donnée de sortie sl, pour obtenir un paramètre intermédiaire c = G(M, si). C'est ce paramètre intermédiaire c qui est fourni par l'application 10 à la section de contre-mesure 22'au lieu de sl, pour transformation éventuelle. Par ailleurs, la congruence linéaire appliquée aux étapes 108, 114 est légèrement modifiée. En effet, alors que la congruence linéaire de la signature DSA est, de façon classique et avant adaptation selon l'invention, s2 = u-1(H(M) + d.sl) mod q, la congruence linéaire de la signature Schnorr est, de façon classique et avant adaptation selon l'invention, s2 = (u + d.c) mod q. Il convient donc de remplacer d par d' ou c par c' (par exemple c' = c + a) dans cette opération pour réaliser une signature de Schnorr à l'aide d'un procédé conforme à l'invention. D'autres procédés confcrmes à l'invention peuvent encore être conçus par une adaptation similaire des signatures classiques telles que celles décrites dans la thèse présentée et soutenue publiquement par Benoît Chevallier-Mames le 16 Novembre 2006 à l'Ecole Normale Supérieure, Paris, intitulée � Cryptographie à clé publique : constructions et preuves de sécurité �, plus particulièrement au chapitre 4.4. Second mode de réalisation de l'invention. Le dispositif à microcircuit 12" représenté sur la figure 6 comporte, comme celui représenté sur la figure 2, une application algorithmique de cryptographie asymétrique 10, une mémoire 14 incluant un espace de mémoire sécurisé 16, un micrcprocesseur 18 et une section de contre-mesure 22'. Il est par exemple intégré dans un dispositif portable, notamment sous la forme de puce d'une carte à puce sécurisée 30 comme représenté sur la figure 3. On notera cependant que, bien que l'application algorithmique de cryptographie 10 et la section de contre-mesure 22' aient été représentées comme distinctes, celles-ci peuvent être en fait intimement imbriquées en une même implémentation d'un algorithme de cryptographie incluant une contre-mesure. Comme dans le dispositif à microcircuit 12', l'application algorithmique de cryptographie asymétrique 10 du dispositif 12" est plus précisément adaptée pour la mise en oeuvre d'un schéma de signature du type consistant à appliquer l'heuristique de Fiat-Shamir à un protocole d'identification à divulgation nulle de connaissance. Elle comporte donc : - une section l0a d'application d'une primitive pour générer une première donnée de sortie s1, et - une section 10b d'exécution d'une opération impliquant au moins deux opérandes, l'un obtenu à partir de la première donnée de sortie et éventuellement transformé, l'autre étant la clé privée éventuellement transformée, pour générer une seconde donnée de sortie s2. En outre, la section de contre-mesure 22' du dispositif 12" est configurée, comme celle du dispositif 12', pour transformer, à l'aide du paramètre de protection a, la clé privée d et/ou un paramètre intermédiaire obtenu à partir de la première donnée de sortie. Dans le cas d'une signature DSA, le paramètre intermédiaire est la première donnée de sortie elle-même. Contrairement au dispositif 12', dans ce dispositif 12" le générateur de données pseudo aléatoires 20 de type classique est remplacé par un générateur de données 20" qui comporte : - une section 20"a d'application d'une fonction F prédéfinie à au moins un paramètre secret prédéterminé S pour la génération d'une séquence de valeurs déterminable uniquement à partir de ce paramètre secret et de cette fonction F, et - une section 20"b de fourniture d'au moins un 20 paramètre de protection a de façon reproductible à partir d'une valeur de cette séquence. La section 20"a est en fait une implémentation logicielle ou matérielle de la fonction F. Le paramètre secret S est stocké dans la mémoire 25 sécurisée 16 et fourni en entrée de la section 20"a du générateur 20", tandis que le paramètre de protection a est fourni, en sortie de la section 20"b, à la section de contre-mesure 22'. Dans ce second mode de réalisation, le paramètre a 30 n'est donc pas un aléa au sens classique mentionné dans les documents de l'état de la technique. Il s'agit d'un résultat déterministe issu du calcul de la fonction F exécuté par le générateur 2D" sur au moins un paramètre secret S qui peut être propre à la carte à puce 30 sur 35 laquelle est disposé le microcircuit 12'. Ce paramètre secret est par exemple dérivé d'une donnée publique du dispositif 30. L'application répétée de la fonction F à s génère une séquence (An) dont les éléments sont à l'origine du(des) paramètre(s) de protection fourni(s) par le générateur. D'une façon générale, le générateur peut fournir autant de paramètres a issus de valeurs de la séquence (An) que nécessaire en fonction de l'application de contre-mesure implémentée dans la carte 30. Cette séquence (An) ne peut être reproduite qu'avec la connaissance de la fonction génératrice F et des éléments déterministes initiaux qu'elle utilise (le paramètre S). Chaque paramètre de protection a peut être directement issu d'un élément An de la séquence (An) : en d'autres termes, a = An. De façon alternative, l'élément An peut subir un traitement avant de fournir le paramètre a. Par exemple a peut être le résultat d'un calcul a = An XOR kn, où kn est une constante secrète de transformation. Bien entendu, si la séquence (An) est cyclique et/ou opère dans un ensemble fini d'éléments, l'espace des valeurs An générées devra être suffisamment grand pour résister aux attaques. En effet plus l'espace considéré est grand, meilleure est la robustesse de la contre-mesure. Nous allons dans un premier temps présenter plusieurs exemples non limitatifs de séquences de valeurs (An) pouvant être fournies par un générateur 20" selon le deuxième mode de réalisation de l'invention. Dans un deuxième temps, nous exposerons plusieurs utilisations possibles de telles séquences de valeurs pour la fourniture de paramètres de protection notamment aux deux applications de contre-mesure en cryptographie asymétrique précédemment décrites en références aux figures 4 et 5. Exemples de fonctions Génératrices de séquences de 35 valeurs pour la fourniture de paramètres de protection 1) Fonctions à base de suites arithmético- géométriques Si l'on définit la séquence de valeurs (An) à l'aide de la fonction F entière à valeurs entières par la relation suivante : An+1 = F (An) = q • An + r, où q et r sont des paramètres secrets constituant, avec l'élément initial Ao de la séquence, les paramètres secrets S précédemment cités, on est capable de fournir des paramètres de protection issus d'une suite arithmético-géométrique. Les paramètres de protection sont par exemple les éléments de la séquence (An). Si r = 0, il s'agit d'une séquence géométrique dont on peut retrouver un terme Ai, utilisé à une étape précise de la cryptographie, à l'aide des paramètres secrets q et Ao de la façon suivante : Ai = ql • Ao Si q = 1, il s'agit d'un séquence arithmétique dont on peut retrouver un terme Ai à l'aide des paramètres secrets r et Ao de la façon suivante : Ai = r. i + Ao. Si r est non nul et g différent de 1, il s'agit d'une séquence arithmético-géométrique dont on peut retrouver un terme Ai à l'aide des paramètres secrets q, r et Ao de la façon suivante : Ai = gl.Ao + r. (q1-1) / (q•-1) . On peut aussi réduire l'espace des éléments de la séquence (An) par un nombre entier m à l'aide de la 25 relation suivante : An+1 = F(An) modulo m = (q.An + r) modulo m. On remarque que si m est un nombre premier, cette séquence prend la forme du groupe des transformations affines inversibles sur le corps fini GF(m) = {0, 1, 30 m-1 } . On peut aussi choisir m comme une puissance de 2, pour générer des séquences d'éléments à nombre de bits constant. Par exemple, si l'on veut générer des séquences de paramètres Ai à k bits, on choisit m = 2k. 35 De préférence, m fait partie des paramètres secrets à conserver dans la mémoire sécurisée du dispositif. 2) Fonctions définissant un groupe multiplicatif cyclique Soit un groupe cyclique GC à m éléments avec une valeur a comme élément générateur et la multiplication comme loi de composition interne : GC = {a, a2, ..., am} . On peut définir la séquence de valeurs (An) de la façon suivante : -l'élément initial Ao est choisi comme étant l'élément générateur a auquel on applique k fois la loi 10 de composition interne du groupe GC, - on passe de l'élément Ai à l'élément Ai+1 en appliquant k' fois la loi de composition interne du groupe GC. Les paramètres secrets S utilisés par la fonction 15 génératrice de la séquence (An) sont alors par exemple l'élément générateur a et les valeurs k, k' et m. De plus, comme précédemment, :mes paramètres de protection générés sont par exemple Les éléments de la séquence (An). 20 3) Fonctions définissant un groupe de Frobenius Soit un corps fini GF(q), où l'ordre q est un nombre premier de k bits. Le groupe des transformations affines inversibles sur ce corps fini est un groupe de Frobenius. Une propriété intéressante des groupes de Frobenius est 25 qu'aucun élément non trivial ne fixe plus d'un point. Dans ce contexte, les transformations affines utilisables prennent la forme de fonctions y = f(x) = b.x + c, où b 0 et où les opérations se font dans le corps GF(q). Il est donc possible de définir une fonction 30 génératrice de la séquence (An) s'appliquant à des paramètres secrets q, b, c et Ao prédéterminés. En choisissant par exemple q = 216 + 1 et, en notation hexadécimale, b = Ox4cd3, c = Ox76bb, Ao = Oxef34, on obtient une séquence commençant par les termes Al =- 35 Oxc6cf, A2 = Ox8baf, A3 = 0x620d, A4 = 0x0605, A5 = Oxe70c, A6 = 0x3049, A7 = 0xe069, A8 = Ox55ee, etc. 5 4) Fonctions issues d'un registre à décalage avec rétroaction linéaire (registre de type LFSR) Il s'agit pour ce type de fonctions de choisir un paramètre secret A0, par exemple de 16 bits, et un registre à décalage LFSR, par exemple avec une sortie correspondante de 16 bits. Si la taille du registre LFSR est m, alors un terme At+m de la séquence (An) est déterminé par les m termes qui le précèdent à l'aide d'une équation linéaire du type : At+m = am. At + am i • At+1 + ... + a 1 . At+m-1 , où les ai prennent la valeur 0 ou 1. 5) Fonctions définissant un calcul de Contrôle de Redondance Cyclique (CRC) Il s'agit pour ce type de fonctions de choisir un paramètre secret A0, par exemple de 16 bits, et un polynôme CRC correspondant parmi ceux utilisés de façon classique dans les calculs de CRC, par exemple le polynôme CRC-16 (X16 + X15 � X2 + 1) ou le polynôme CRC CCITT V41 (X16 + X12 + X5 + 1). Un terme An+1 de la séquence (An) est déterminé en fonction du terme précédent An par la relation An+1 = F(A), où F réalise un calcul de CRC sur la base du polynôme choisi. 6) Combinaisons de séquences de valeurs Il est en effet aussi possible de calculer plusieurs séquences de valeurs, chacune par exemple selon l'une des méthodes exposées ci-dessus, et de les combiner à l'aide d'une fonction prédéfinie pour générer une nouvelle séquence de valeurs à utiliser comme paramètres de protection. On génère ainsi la séquence (An), d'après deux autres séquences (A'n) et (A"n), en calculant pour chaque indice n, An = T (A' n, A''). La fonction T en question peut être une matrice secrète de valeurs, les valeurs A'n et A ''n désignant alors respectivement une ligne et une colonne de cette matrice. 7) Combinaisons impliquant une séquence de valeurs et des données publiques La séquence (An) peut être générée à partir d'une première séquence (A'n), en fonction également de données publiques, telles que par exemple des données utilisées pendant l'exécution de l'application de cryptographie avec contre-mesure et non secrètes. Parmi ces données, selon les applications, on peut citer le message M (en clair ou crypté), une clé publique e, etc. Les valeurs de la séquence utilisées comme paramètres de protection sont alors calculées à l'aide d'une fonction COMB quelconque combinant toutes ces données : An = COMB (A' n, M, e, ...). Un intérêt de cette combinaison est que la séquence de valeurs (An) peut servir, non seulement à alimenter en paramètres de protection l'application de contre-mesure de l'algorithme de cryptographie, mais aussi à détecter des attaques par injection de fautes (notamment sur les données publiques). En effet par régénération de la séquence (A'n) à l'aide du ou des paramètre(s) secret(s), en fin d'exécution de l'algorithme de cryptographie par exemple, mais avant de faire l'opération inverse de la transformation initiale en utilisant un paramètre de protection régénéré, puis par utilisation de cette séquence (A'n) régénérée et des données publiques telles qu'elles apparaissent en fin d'exécution, on peut vérifier si l'application de la fonction COMB produit la même séquence de valeurs (An) ou non et donc si des données publiques ont été affectées ou pas en cours d'exécution. Exemples d'utilisation d'une séquence de valeurs générée selon l'une des méthodes précédentes dans un procédé de contre-mesure en cryptographie asymétrique, selon le deuxième mode de réalisation de l'invention 1) Principe général du second mode de réalisation D'une façon générale, chaque fois qu'une contre- mesure algorithmique est ut=_lisée, la génération d'aléas introduits par la contre-mesure est préconisée, comme cela a été décrit dans le premier mode de réalisation utilisant un générateur de données pseudo aléatoires 20. Comme mentionné en référence à la figure 6, cette génération d'aléas peut être remplacée par la génération non aléatoire de paramètres issus d'une ou plusieurs séquence (s) de valeurs obtenue (s) à l'aide d'au moins un paramètre secret. La figure 7 illustre un exemple d'étapes réalisées par un procédé selon le second mode de réalisation de la figure 6, appliqué à l'exécution d'un algorithme de cryptographie asymétrique avec contre-mesure, utilisant T paramètres de protection al, ... aT par exécution, tous les paramètres de protection pouvant être extraits d'une même séquence de valeurs (An) générée par la section 20'a. Lors d'une première étape INIT réalisée par le générateur 20", un compteur i est initialisé à 0. Ce compteur i est destiné à conserver en mémoire le nombre de fois que l'algorithme de cryptographie asymétrique a été exécuté depuis cette étape d'initialisation INIT, tant qu'une autre initialisation n'est pas réalisée. Au cours de cette étape, le paramètre secret S (ou les paramètres S lorsqu'il y en a plusieurs), à partir duquel la séquence de valeurs doit être générée, est défini. Il peut être conservé d'une précédente initialisation, mais peut aussi être généré sur la base d'une nouvelle valeur à l'occasion de cette initialisation. Il est par exemple généré à partir de données uniques d'identification, telle qu'une donnée publique du dispositif 30. Il peut aussi être généré à partir de paramètres ou phénomènes physiques liés au microcircuit à un instant donné, qui peuvent être aléatoires. Dans tous les cas, il est conservé en mémoire de façon sécurisée, pour permettre au microcircuit de régénérer à tout moment une même séquence de valeurs (An) à l'aide de la fonction implémentée par la section 20"a. L'étape d'initialisation INIT peut être unique dans le cycle de vie du microcircuit, réalisée lors de la conception par le constructeur, ou reproduite plusieurs fois, par exemple régulièrement ou chaque fois que le compteur i atteint une valeur imax. Lors d'une première exécution EXE1 de l'algorithme de cryptographie asymétrique avec contre-mesure, le générateur 20", plus particulièrement la section 20"a, est sollicité une ou plusieurs fois pour appliquer le paramètre secret S à la fonction F prédéfinie, de manière à générer, en une ou plusieurs fois, un nombre T d'éléments de la séquence de valeurs (An) : A1, ... AT. A partir de ces T premiers éléments, les T paramètres de protection al, ... aT sont générés. Par exemple, pour tout k tel que l i>+k, de manière à transformer (ou déformer ou masquer) les paramètres utilisés. Quelle que soit la méthode utilisée pour générer la ou les séquence(s) de valeurs à l'origine des paramètres de protection, la connaissance de la méthode et des valeurs secrètes utilisées par la méthode, y compris le paramètre initial Ao chargé préalablement en mémoire ou lors d'une étape du cycle de vie du dispositif à microcircuit en mémoire EEPROM, permet de retrouver à tout moment les paramètres de protection générés et utilisés dans la vie du dispositif. Il apparaît clairement que cette particularité permet alors des déboguages simples et efficaces ainsi qu'une résistance améliorée aux attaques par injection de fautes. Le choix de la méthode utilisée pour générer la séquence de valeurs et Le ou les paramètre(s) de protection est dicté par l'application envisagée. 2) Application du principe général du second mode de réalisation aux deux procédés décrits en référence aux figures 4 et 5. La méthode utilisée par les premier et second procédés des figures 4 et 5 pour générer le paramètre de protection a ou le paramètre a' lors des étapes 104 et 204 peut être l'une de celles préconisées dans le second mode de réalisation. Il n'est alors pas utile de conserver ce paramètre a' et le paramètre de protection a en mémoire puisqu'ils peuvent être retrouvés à chaque instant à partir de la séquence de valeurs qui est elle même déterminée par le(s) paramètre(s) secret(s) et la fonction F. Ce processus consistant à régénérer ces paramètres est même une étape utile dans la protection de l'implémentation contre les attaques par injection de faute(s). C'est ainsi que le paramètre a' peut être retrouvé aux étapes 110 et 210 sans avoir nécessairement été conservé en mémoire pendant l'exécution des étapes 104 et 204. A ces étapes 110 et 210, le paramètre de protection a peut également être retrouvé pour vérifier que son intégrité, et celle des paramètres utilisés pour le générer, a été conservée. Il est également utile de régénérer a pour réaliser les étapes 112 et 212 qui utilisent ce paramètre. Il apparaît clairement que les procédés de contre-mesure décrits précédemment permettent de concevoir des applications de cryptographie asymétriques protégeant la clé privée utilisée contre des attaques par canaux auxiliaires ou par injection de faute(s). On notera en outre que l'invention n'est pas limitée aux modes de réalisation décrits et que, bien que de nombreuses variantes aient été présentées, d'autres sont également envisageables prévoyant notamment d'autres types de transformations de la clé privée que ceux qui ont été détaillés, ou d'autres applications de cryptographie asymétrique que celles abordées. REVENDICATIONS 1. Procédé de contre-mesure dans un composant électronique mettant en oeuvre un algorithme de cryptographie asymétrique à clé privée (d), comprenant les étapes consistant à : - générer (102 ; 202) une première donnée de sortie (si) à l'aide d'une primitive, - générer (104 ; 204) un paramètre de protection (a), caractérisé en ce qu'il comporte en outre les étapes consistant à : - transformer (106 ; 206), à l'aide du paramètre de protection (a), au moins l'un des éléments de l'ensemble constitué de la clé privée (d) et d'un paramètre intermédiaire obtenu à partir de la première donnée de sortie (si), pour fournir respectivement des premier et second opérandes, et - générer (108, 114 ; 208, 214), à partir d'une opération impliquant les premier et second opérandes, une seconde donnée de sortie (s2). 2. Procédé de contre-mesure dans un composant 25 électronique selon la revendication 1, comportant les étapes consistant à : - transformer (106 ; 206) la clé privée (d) à l'aide du paramètre de protection (a), et -générer (108 ; 208), à partir d'une première 30 opération impliquant le paramètre intermédiaire et la clé privée transformée, une première donnée intermédiaire, générer (114 ; 214), à partir d'une seconde opération impliquant le paramètre intermédiaire et le paramètre de protection (a), une seconde donnée intermédiaire, puis 35 combiner les première et seconde données intermédiaires pour fournir la seconde donnée de sortie (si).:32 3. Procédé de contre-mesure dans un composant électronique selon la revendication 1, comportant les étapes consistant à : - transformer (106 ; 206) le paramètre intermédiaire 5 obtenu à partir de la première donnée de sortie (si) à l'aide du paramètre de protection (a), et - générer (108 ; 208), à partir d'une première opération impliquant le paramètre intermédiaire transformé et la clé privée (d), une première donnée 10 intermédiaire, générer (114 214), à partir d'une seconde opération impliquant le paramètre de protection (a) et la clé privée (d), une seconde donnée intermédiaire, puis combiner les première et seconde données intermédiaires pour fournir la seconde donnée de 15 sortie (s2). 4. Procédé de contre-mesure dans un composant électronique selon l'une quelconque des revendications 1 à 3, dans lequel le paramètre intermédiaire est la 20 première donnée de sortie (sl). 5. Procédé de contre-mesure dans un composant électronique selon la revendication 4, dans lequel la primitive est une exponentiation modulaire pour la 25 réalisation d'un algorithme de cryptographie à schéma de signature de type DSA. 6. Procédé de contre-mesure dans un composant électronique selon la revendication 4, dans lequel la 30 primitive est une multiplication scalaire pour la réalisation d'un algorithme de cryptographie à schéma de signature de type ECDSA. 7. Procédé de contre-mesure dans un composant 35 électronique selon l'une quelconque des revendications 1 à 6, mettant en œuvre un algorithme de cryptographie asymétrique à schéma de signature du type consistant à:;3 appliquer l'heuristique de Fiat-Shamir à un protocole d'identification à divulgation nulle de connaissance. 8. Procédé de contre-mesure dans un composant électronique selon l'une quelconque des revendications 1 à 7, dans lequel la génération (104 ; 204) du paramètre de protection (a) comporte les étapes consistant à : -définir une fonction (20"a) génératrice, par applications successives à au moins un paramètre secret (S) prédéterminé et stocké en mémoire (16), d'une séquence de valeurs ((An)) déterminable uniquement à partir de ce paramètre secret (S) et de cette fonction (20" a) , - générer le paramètre de protection (a) de façon 15 reproductible à partir d'au moins une valeur de cette séquence. 9. Procédé de contre-mesure dans un composant électronique selon la revendication 8, comportant les 20 étapes consistant à : - définir une pluralité de fonctions, chaque fonction étant génératrice, par applications successives à au moins un paramètre secret (S) correspondant prédéterminé et stocké en mémoire (16), d'une séquence de 25 valeurs ((A' n), (A"n)) correspondante déterminable uniquement à partir du paramètre secret (S) correspondant et de la fonction correspondante, - combiner la pluralité de séquences de valeurs ((A'n), (A"n)) générées à l'aide d'une relation 30 prédéfinie pour générer une nouvelle séquence de valeurs �An�, - générer le paramètre de protection (a) de façon reproductible à partir d'au moins une valeur de cette nouvelle séquence ((An)). 35 10. Procédé de contre-mesure dans un composant électronique selon la revendication 8, comportant les étapes consistant à : - définir une fonction génératrice, par applications successives à au moins un paramètre secret (S) prédéterminé et stocké en mémoire (16), d'une séquence de valeurs ((A'n)) déterminable uniquement à partir du paramètre secret (S) et de la fonction, - combiner la séquence de valeurs ((A'n)) générées avec des paramètres publics de l'algorithme de cryptographie pour générer une nouvelle séquence de valeurs �An�, - générer le paramètre de protection (a) de façon reproductible à partir d'au moins une valeur de cette 15 nouvelle séquence �An�. 11. Procédé de contrje-mesure dans un composant électronique selon l'une quelconque des revendications 8 à 10, comportant, après réalisation de la transformation 20 (106 ; 206), une étape (110 ; 210) consistant à régénérer le paramètre de protection (a) pour l'utiliser lors de l'étape (114 ; 214) de génération de la seconde donnée de sortie (s2). 25 12. Dispositif à microcircuit (12', 12"), comprenant un microprocesseur (18) pour la mise en œuvre d'un procédé de contre-mesure d'un algorithme de cryptographie asymétrique à clé privée (d), au moins une mémoire sécurisée (16) pour le stockage de la clé privée 30 (d), et un générateur de données (20, 20") pour la génération d'un paramètre de protection (a), caractérisé en ce qu'il est configuré pour : - générer (102 ; 202) une première donnée de sortie (si) à l'aide d'une primitive, 35 - transformer (106 ; 206), à l'aide du paramètre de protection (a), au moins l'un des éléments de l'ensemble constitué de la clé privée (d) et d'un paramètreintermédiaire obtenu à partir de la première donnée de sortie (sl), pour fournir respectivement des premier et second opérandes, et - générer (108, 114 ; 208, 214), à partir d'une 5 opération impliquant les premier et second opérandes, une seconde donnée de sortie (s2). 13. Dispositif à microcircuit (12', 12") selon la revendication 12, configuré :pour : 10 - transformer (106 ; 206) la clé privée (d) à l'aide du paramètre de protection (a), et - générer (108 ; 208), à partir d'une première opération impliquant le paramètre intermédiaire et la clé privée transformée, une première donnée intermédiaire, 15 générer (114 ; 214), à partir d'une seconde opération impliquant le paramètre intermédiaire et le paramètre de protection (a), une seconde donnée intermédiaire, puis combiner les première et seconde données intermédiaires pour fournir la seconde donnée de sortie (s2). 20 14. Dispositif à microcircuit (12', 12") selon la revendication 12, configuré pour : - transformer (106 ; 206) le paramètre intermédiaire obtenu à partir de la première donnée de sortie (si) à 25 l'aide du paramètre de protection (a), et - générer (108 ; 208), à partir d'une première opération impliquant le paramètre intermédiaire transformé et la clé privée (d), une première donnée intermédiaire, générer (114 ; 214), à partir d'une 30 seconde opération impliquant le paramètre de protection (a) et la clé privée (d), une seconde donnée intermédiaire, puis combiner les première et seconde données intermédiaires pour fournir la seconde donnée de sortie (s2). 35 15. Dispositif à microcircuit (12', 12") selon l'une quelconque des revendications 12 à 14, dans lequel le paramètre intermédiaire est la première donnée de sortie (sl). 16. Dispositif à microcircuit (12', 12") selon la revendication 15, dans lequel la primitive est une exponentiation modulaire pour la réalisation d'un algorithme de cryptographie à schéma de signature de type DSA. 17. Dispositif à microcircuit (12', 12") selon la revendication 15, dans lequel la primitive est une multiplication scalaire pour la réalisation d'un algorithme de cryptographie à schéma de signature de type ECDSA. 18. Dispositif à microcircuit (12', 12") selon l'une quelconque des revendications 12 à 17, dans lequel le microprocesseur (18) met en oeuvre un algorithme de cryptographie asymétrique à schéma de signature du type consistant à appliquer l'heuristique de Fiat-Shamir à un protocole d'identification à divulgation nulle de connaissance. 19. Dispositif à microcircuit (12") selon l'une 25 quelconque des revendications 12 à 18, dans lequel le générateur de données (20") est configuré pour générer (104 ; 204) le paramètre de protection (a) en : -définissant une fonction (20"a) génératrice, par applications successives à au moins un paramètre secret 30 (S) prédéterminé et stocké en mémoire (16), d'une séquence de valeurs ((An)) déterminable uniquement à partir de ce paramètre secret (S) et de cette fonction (20"a), et - générant le paramètre de protection (a) de façon 35 reproductible à partir d'au moins une valeur de cette séquence. 20. Dispositif à microcircuit (12") selon la revendication 19, dans lequel le générateur de données (20") est configuré pour : - définir une pluralité de fonctions, chaque fonction étant génératrice, par applications successives à au moins un paramètre secret (S) correspondant prédéterminé et stocké en mémoire (16), d'une séquence de valeurs ((A'n), (A "n)) correspondante déterminable uniquement à partir du paramètre secret (S) correspondant 10 et de la fonction correspondante, - combiner la pluralité de séquences de valeurs ((A'n), (A "n)) générées à l'aide d'une relation prédéfinie pour générer une nouvelle séquence de valeurs ((An)), 15 - générer le paramètre de protection (a) de façon reproductible à partir d'au moins une valeur de cette nouvelle séquence ((An)). 21. Dispositif à microcircuit (12") selon la 20 revendication 19, dans lequel le générateur de données (20") est configuré pour : - définir une fonction génératrice, par applications successives à au moins un paramètre secret (S) prédéterminé et stocké en mémoire (16), d'une 25 séquence de valeurs ((A'n)) déterminable uniquement à partir du paramètre secret (S) et de la fonction, - combiner la séquence de valeurs ((A'n)) générées avec des paramètres publics de l'algorithme de cryptographie pour générer une nouvelle séquence de 30 valeurs �An�, - générer le paramètre de protection (a) de façon reproductible à partir d'au moins une valeur de cette nouvelle séquence ((An)). 35 22. Dispositif à microcircuit (12") selon l'une quelconque des revendications 19 à 21, configuré pour, après réalisation de la transformation (106 ; 206),régénérer (110 ; 210) le paramètre de protection (a) pour l'utiliser lors de l'étape (114 ; 214) de génération de la seconde donnée de sortie (s2). 23. Dispositif portab=_e, notamment carte à puce (30), comprenant un dispositif à microcircuit (12', 12") selon l'une quelconque des revendications 12 à 22.