Brevet FR3018372A1 — publié le 20150911

La présente invention concerne le domaine de la sécurité informatique. Elle concerne plus particulièrement la sécurisation des procédés cryptographiques mettant en oeuvre des paires de clés publiques et privées. Certains systèmes cryptographiques mettant en oeuvre des procédés comme par exemple la signature numérique d'un message ou son chiffrement, nécessitent la génération de paires de clés cryptographiques. La clé publique est partagée en clair par le système cryptographique avec les systèmes destinataires du message traité alors que la clé privée est gardée secrète. La génération des paires de clés publiques et privées étant une 10 opération sensible, des mécanismes de test sont usuellement prévus pour vérifier leur intégrité. Par exemple, la norme américaine FIPS 140-2 publiée par le NIST (sigle de « National lnstitute of Standards and Technology ») prévoit un tel test (intitulé « pair-wise consistency test »). 15 Dans le cas de procédés cryptographiques de type RSA (sigle de « Rivest Shamir Adelman »), la paire de clés est obtenue de la manière suivante. Pour obtenir p et q, deux grands nombres premiers, on répète les deux étapes suivantes : 20 - obtention de deux nombres p et q candidats à partir de nombres tirés au hasard dans l'ensemble Z, du groupe multiplicatif des entiers modulo n, et - test de la primalité des p et q candidats (par exemple selon un test de primalité probabiliste, qui peut être de type Miller-Rabin, conformément à la norme FIPS 140-2), jusqu'à obtenir un nombre premier. 25 Le produit des nombres p et q forme ainsi un nombre n (n=p.q). Ensuite, le nombre 1(n) = (p-1).(q-1) est calculé (I) étant la fonction indicatrice d'Euler, ou « totient » en terminologie anglo-saxonne). La clé publique est ensuite formée par les nombres n et e, avec e, l'exposant public », étant un entier tel que : - 1 Le procédé peut en outre comporter une étape de test pour vérifier si elYcl # 1 mod w, avec ei = 1 mod w, ladite vérification étant opérée pour un ensemble de diviseurs q de w - 1. Par exemple, ladite vérification est opérée pour un ensemble de 5 diviseurs premiers q de w - 1. Par exemple, pour lesdits diviseurs q, la valeur dw-1)/cl est calculée par exponentiation modulaire. Le procédé peut en outre comporter une initialisation de ladite exponentiation modulaire avec une variable initiale calculée à partir de la 10 factorisation en nombres premiers du nombre w-1. Par exemple, ledit test est réalisé selon un algorithme probabiliste. Un deuxième aspect de l'invention concerne un procédé de test de sécurité d'un dispositif électronique vis-à-vis d'une attaque, le dit dispositif mettant en oeuvre une génération d'une clé cryptographique publique e et une 15 clé cryptographique privée d dans le groupe multiplicatif des entiers modulo n, telles que : - n = p.q, avec p et q étant des nombres premiers, - 1 Par exemple encore, la valeur À'(n) est calculée sur le dispositif testé et obtenue par perturbation du calcul de la valeur À(n). Un troisième aspect de l'invention concerne un programme d'ordinateur ainsi qu'un produit programme d'ordinateur et un support de stockage pour de tels programmes et produit, permettant la mise en oeuvre d'un procédé selon le premier ou le deuxième aspect lorsque le programme est chargé et exécuté par un processeur d'un dispositif électronique, par exemple un dispositif cryptographique. Un quatrième aspect concerne un dispositif électronique, par exemple un dispositif cryptographique, configuré pour la mise en oeuvre d'un 20 procédé selon le premier ou le deuxième aspect. Par exemple, un dispositif selon le quatrième aspect est une entité électronique portable. Le dispositif selon le troisième aspect peut être une carte à puce. D'autres types de dispositifs peuvent être envisagés, notamment les 25 documents de sécurité (passeport électronique, cartes d'identité électronique ou autre), les clés USB, les téléphones mobiles ou « smartphones ». D'autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d'exemple non limitatif, au regard des dessins annexés dans lesquels: - la figure 1 illustre un procédé de test d'intégrité de génération de Clés ; - la figure 2 illustre un procédé de génération de message pour un test d'intégrité de génération de clés; - la figure 3 illustre un procédé de détermination d'un générateur d'un groupe multiplicatif ; - la figure 4 illustre schématiquement un dispositif selon des modes de réalisation. Dans la suite, des modes de réalisation sont décrits. Cependant, de manière liminaire, il est décrit un procédé de test d'intégrité de génération de paires de clés cryptographiques. Ce procédé de test peut être utilisé pour des clés cryptographiques utilisées dans des mécanismes de chiffrement et/ou de signature numérique. Ainsi, ce procédé peut être utilisé avant même de connaître l'usage ultérieur de la paire de clés générée. On suppose qu'une clé cryptographique publique (e, n) et une clé cryptographique privée (d, n) sont générées telles que : - n=p.q, avec p et q étant des nombres premiers, - 1 Il est ensuite vérifié, lors d'une étape 103, si le message initial m et le message déchiffré sont les mêmes (m' = m). Si ce n'est pas le cas (NOK), il est déterminé lors de l'étape 104 que la paire de clé générée n'est pas intègre. Si par contre le message initial m et le message déchiffré sont les mêmes (OK), le message déchiffré m' est chiffré, lors d'une étape 105, avec l'exposant public e en sorte à obtenir un deuxième message chiffré c' = (m')e mod n. Il est ensuite vérifié, lors d'une étape 106, si le premier message chiffré c et le deuxième message chiffré c' sont les mêmes (c' = c). Si tel est le cas (OK), il est déterminé lors de l'étape 107 que le test d'intégrité est réussi. Sinon (NOK), il est déterminé, lors de l'étape 108, que la paire de clé générée n'est pas intègre. Certaines paires de clés non intègres peuvent passer avec succès les tests d'intégrités comme celui décrit ci-dessus ou d'autres tests de l'art antérieur. Par exemple, si, au lieu de générer l'exposant privé d, il est généré 20 un nombre d' tel que : - d'.e = 1 mod À(n)/a, - 1 a, - a divise À(n), il peut arriver que pour des messages, la paire de clés avec les nombres d' et e 25 passe le test avec succès alors qu'une erreur s'est produite sur l'exposant privé d. En plus d'être une source d'erreurs pour un système cryptographique utilisant les clés, cela peut être une source d'attaques par des tiers malveillants. Par exemple, le nombre d' peut être généré par erreur si le calcul du plus petit commun multiple de p-1 et q-1 (qui doit normalement donner À(n)) est entaché d'une erreur. Le nombre d' peut être calculé par mise en oeuvre de l'algorithme d'Euclide. Les entiers a et b sont calculés en sorte que e.a + b. À(n)/a = 1 (relation de Bezout). Le nombre d' est alors obtenu comme d' = a mod À(n)/a. Dans ces conditions, on a bien d'.e = 1 mod À(n)/a. En provoquant la détermination du nombre d' au lieu du nombre d, un attaquant peut ainsi retrouver l'un des facteurs secrets (p et q) du nombre n tel que n = p.q. En effet, supposons que l'entier a divise le nombre (a-1) sans pour autant diviser le nombre (p-1)gcd(p-1,q-1)' alors en notant t le nombre tel que t = (q-1) a.gcd(p-1,q-1)' on obtient d = e-1 mod t.(p-1). Ainsi, l'exposant privé est l'inverse de l'exposant public dans l'anneau 15 Zt (p_i) au lieu de l'anneau ZÀ(n). Pour un message aléatoire m, on a alors : (md)e = m mod n, mais on a aussi (md)e = m mod p. Un multiple du facteur p peut ainsi être obtenu comme (md)e - m mod n. 20 Un attaquant peut ainsi perturber la génération de clés et demander la signature de messages aléatoires. Pour certains messages m, la signature s obtenu est telle que gcd(se - m,n) donne un facteur de n. Supposons que le plus petit commun multiple de p-1 et q-1 est calculé comme (p-1).(q-1) suit, À(n) = avec gcd(p-1, q-1) étant le plus grand commun diviseur gcd(p-1,q-1)' 25 de p-1 et q-1. Si le calcul de ce plus grand commun diviseur donne a. gcd(p-1, q-1) (le produit de a par gcd(p-1, q-1)) au lieu de gcd(p-1, q-1), on calcule d' au lieu de calculer d. Les inventeurs ont remarqué que les tests d'intégrité actuellement utilisés pouvaient ne pas détecter certaines erreurs de génération de paires de 5 clés, notamment lors d'attaques telle qu'évoquées ci-dessus. Un attaquant peut provoquer des erreurs dans le calcul de l'exposant privé par observation par canal auxiliaire du fonctionnement du dispositif mettant en oeuvre la génération de clé puis par attaque physique du dispositif pour perturber ce fonctionnement. L'attaquant peut par exemple utiliser des 10 lasers pour perturber le dispositif ou encore perturber l'alimentation électrique de celui-ci. A titre d'illustration, si une erreur a (telle qu'évoquée ci-dessus) est introduite de sorte que le nombre a divise la valeur k.À(n)/a (k étant un entier), et que le nombre d' est déterminé à la place du nombre d tel que d'.e = 1 + 15 k.À(n)/a alors un test d'intégrité tel que par exemple défini dans la norme FIPS 140-2 exécuté sur un message m d'ordre s ne permet pas de détecter l'erreur si s divise k.À(n)/a, alors qu'il permet de la détecter si s ne divise pas k.À(n)/a. On rappelle que l'ordre s du message m dans le groupe multiplicatif est le nombre de fois qu'il faut multiplier le message m pour obtenir 1. 20 En effet, soient e, p et q des paramètres RSA avec n = p.q. Si d' = e-1 mod À(n)/a est l'exposant erroné, l'exposant correct étant d = e-1 mod À(n), si d' est différent de d alors 3m E Zn tel que (me)d' # m mod n. Par ailleurs, si Vm E Zn on a (me)d' = m mod n alors d = d'. La démonstration de ceci est possible mais n'est pas présentée ici dans un souci de concision. 25 Ci-après, sont décrits des procédés permettant de rendre les tests d'intégrité sensibles à ce type d'erreurs. Les tests d'intégrité peuvent être mis en oeuvre lors de la génération des clés. Comme discuté ci-avant, en référence à la Figure 1, la détection d'une clé erronée est sensible à la valeur de l'ordre du message m utilisé pour le test. Si l'ordre s du message m divise k.À(n)/a (k est un entier et a divise À(n)) l'erreur n'est pas détectée. Il est alors avantageux de générer des messages dont l'ordre permet la détection de l'erreur, en particulier les messages dont l'ordre ne divise pas k.À(n)/a. Par exemple, les messages d'ordre À(n) sont de bons candidats. Dans la suite, en référence à la figure 2, il est décrit un procédé de génération de messages d'ordre À(n) pour leur utilisation dans des procédés de test d'intégrité. Ce procédé est basé sur l'algorithme décrit dans le document Menenzes et al. « Handbook of Applied Cryptography » (procédé référencé 4.83 dans ce document). Lors d'une étape 200, un nombre p est généré aléatoirement. Il est ensuite vérifié lors de l'étape 201 que le nombre p est premier. Si ce n'est pas le cas (NOK), l'étape 200 est répétée. Si p est bien premier (OK), il est généré aléatoirement lors de l'étape 202 un nombre q. Il est ensuite vérifié lors de l'étape 203 que le nombre q est premier. Si ce n'est pas le cas (NOK), l'étape 202 est répétée. Si q est bien premier (OK), il est calculé lors de l'étape 204 le produit n des nombres p et q (n = p.q). Lors des tests de primalité, les générateurs a et b des groupes additifs Zp* des entiers modulo p (0 étant exclu) et des entiers modulo q (0 étant exclu) sont calculés. Par exemple, le générateur a est calculé lors du test de primalité pour l'entier p, et le générateur b est calculé pour l'entier q. Ensuite, un nombre y est calculé lors de l'étape 205, tel que 1 Pour calculer le nombre entier y, l'algorithme de Gauss (référencé 2.121 dans le document précité) peut être utilisé. Les clés cryptographiques peuvent être générées dans un processus (non représenté) lors duquel, la clé publique est générée avec le calcul de 5 l'exposant public e tel que : - 1 Dans une première étape 300, un entier candidat w, vérifiant w-1 = 2sr-1 est généré. Ensuite, il est sélectionné, lors de l'étape 301, un entier c, tel que 1 c \m-1. à partir de cet entier, il est calculé un nombre y = c2s-1r lors de l'étape 5 302. Ensuite, si ce nombre y est égal à w-1 modulo w (test de l'étape 303), ce nombre est choisi comme générateur du groupe multiplicatif 4, des entiers modulo w (0 étant exclu). Il peut ainsi s'agir du nombre a pour le groupe multiplicatif Zp* et/ou du nombre b pour le groupe multiplicatif Z. 10 Un algorithme de génération des générateurs a et b est donné en annexe A. Il est basé sur l'algorithme Miller-Rabin. L'algorithme illustre la recherche du générateur a, celui-ci pouvant être transposé à la recherche du générateur b. Une variable y est initialisée avec la valeur a' mod w. La valeur 15 a2irmod w est ensuite itérativement calculée par élévation au carré de la variable y à chaque étape j, avec 0 ,:,' des entiers modulo w (0 étant exclu). 20 L'algorithme donné en annexe A, peut délivrer plusieurs générateurs mais retourne toujours le dernier par construction. Le groupe multiplicatif Zp* des entiers modulo p (0 étant exclu) a un nombre 1)(1)(p)) de générateurs (I) étant la fonction indicatrice d'Euler, ou « totient »). La probabilité que l'algorithme retourne un générateur de Zp* (p 25 étant premier) est de (1)(1)(p))/1(p), c'est-à-dire (I)(p-1)/(p-1). La boucle itérative étant répétée t fois, la probabilité de trouver un générateur parmi les t exécutions aléatoires est de t. (I)(p-1)/(p-1). L'algorithme de cherche de générateur peut retrouver des « faux positifs », c'est-à-dire des éléments du groupe multiplicatif des entiers modulo w (0 étant exclu) qui ne sont en fait pas des générateurs. Cependant, dès lors que a = 2 (on rappelle que a est un diviseur de À(n) et que l'on recherche des messages dont l'ordre ne divise pas k.À(n)/a), ces « faux » générateurs peuvent tout de même être utilisés pour détecter les exposants erronés d'. En effet, supposons que : - gp est un générateur du sous-groupe G inclus dans le groupe multiplicatif des entiers modulo p (0 étant exclu) d'ordre , tout en n'étant pas un générateur de que - gq est un générateur du sous-groupe G' inclus dans le groupe multiplicatif des entiers modulo q (0 étant exclu) d'ordre , tout en n'étant pas un générateur de et que - g est la recombinaison gaussienne de gp et gq, qui est un élément de art.d, odre lcm(o(gp), o(gq)). Par définition on a : 15 20 avec mi = min(ei, fi ) pour j = 1 t et mo = min(r, s). On a alors aussi : avec m'i = min(e'i, f1) inférieur ou égal à mi et m'j = min(ei, f'1) inférieur ou égal à mi et i inférieur ou égal à j3. Dans la suite, on étudie l'effet du test de primalité (ged' = g mod n) sur 5 un tel élément g. Par définition de l'exposant erroné d', on a : e.d' = 1 + k.À(n)/a. Si d' est différent de d (sinon d' serait un exposant correct), a ne divise pas k, donc a divise À(n). Si a=2, alors -1 10 et donc car l'ordre o(g) de g ne divise pas À(n)/a). En effet, on a 9- 15 ce qui implique finalement que ged' est différent de g modulo n. Cela signifie que le test de primalité rejette la clé générée qui sera considérée comme erronée. Dans le cas a=2 on peut donc utiliser les générateurs issus de faux positifs de l'algorithme présenté ci-avant. En fait, cela peut être généralisé pour 20 d'autres valeurs de a, par exemple, dans l'ensemble {2,3,5,7}. Ainsi, il est présenté en Annexe B un algorithme, aussi basé sur celui de Miller-Rabin, utilisant de telles valeurs de a. L'algorithme présenté en Annexe B utilise la propriété suivante (propriété référencée 4.38 dans le document cité ci-avant). Si w est un entier supérieur ou égal à 3, alors w est un nombre premier si et seulement si il existe un entier satisfaisant : = 1 mod w et (ii) a(w-1)/q# 1 mod w pour tout diviseur premier q de w-1. L'algorithme de l'annexe B est similaire à celui de l'annexe A et rajoute le test de la condition (ii) ci-dessus. Dans la suite, on décrit la factorisation implicite opérée à la ligne 19 Io et dans le test de la ligne 21. La factorisation de w-1 sur la base T des petits nombres premiers inférieurs à B est un processus connu et disponible dans l'art antérieur, par exemple dans le document Granville, "Smooth numbers: Computational number theory and beyond, Proc. MSRI Conf. Algorithmic Number Theory: Lattices, 15 Number, Fields, Curves, and Cryptography, Berkeley 2000, Cambridge University Press. Pour le test de la ligne 21, au lieu de calculer et de tester si dw-1)/qi 1 mod w pour chaque diviseur qi de w-1 on teste plutôt si #1 mcd zo compte du fait que pour chaque diviseur premier qi de w-1. On tient ainsi ) n'est pas calculé dans l'algorithme Miller-Rabin. Pour ce même test, il faut calculer des racines modulaires q;-èmes pour chaque entier premier qi. Cette opération est assez coûteuse en ressources. L'algorithme présenté en annexe C permet de transformer un calcul 25 de racine modulaire q;-ème en une exponentiation modulaire par qi. La valeur intermédiaire est calculée à la ligne 2 ce qui permet de calculer plus aisément les valeurs comme ir ce qui ne comporte que des exponentiations modulaires de yo par un produit de petits entiers premiers. Afin d'optimiser les calculs, pour la mise en oeuvre de l'algorithme de l'annexe C, l'algorithme de Miller-Rabin peut être modifié en sorte à calculer et à stocker la valeur intermédiaire yo pour éviter de calculer deux exponentiations 10 coûteuses, à savoir, et = -r Un algorithme modifié est présenté en annexe D. Cet algorithme rend un élément g du groupe dont la factorisation partielle de l'ordre (de 15 l'élément g) sur la base T est la même que la factorisation d'un générateur de En résumé, le test de primalité utilisé pour la génération des clés cryptographiques est modifié pour permettre la génération de messages d'ordre maximal en plus des clés qui permettent d'optimiser la vérification d'intégrité. 20 Les clés sont ainsi correctement générées avec un taux d'erreur réduit car les tests d'intégrité s'en trouvent renforcés. Des programmes d'ordinateur pour la mise en oeuvre de procédés selon des modes de réalisation de l'invention peuvent être réalisés par la personne du métier à la lecture des figures 1 à 3, des annexes A à D et de la présente description détaillée. La figure 4 illustre schématiquement un dispositif selon des modes de réalisation. Le dispositif 40 de la figure 4 comporte une unité de mémoire 41 (MEM). Cette unité de mémoire comporte une mémoire vive pour stocker de manière non durable des données de calcul utilisées lors de la mise en oeuvre d'un procédé conforme à l'invention, selon divers modes de réalisation. L'unité de mémoire comporte par ailleurs une mémoire non volatile (par exemple du type EEPROM) pour stocker par exemple un programme d'ordinateur, selon un mode de réalisation, pour son exécution par un processeur (non représenté) d'une unité de traitement 41 (PROC) du dispositif. Le dispositif comporte par ailleurs une unité de communication 43 (COM), par exemple pour échanger des données avec un autre dispositif conformément à des modes de réalisation. Les échanges de données entre dispositifs peuvent se faire selon le protocole APDU, sigle de « Application Protocol Data Unit », tels que définis dans la norme ISO 7816 partie 4. L'unité de communication peut ainsi comporter une interface entrée/sortie apte à échanger selon ce protocole. Les données échangées 20 peuvent se faire par des commandes APDU et des réponses à ce type de commandes. Un dispositif selon des modes de réalisation peut être conforme à la norme IS07816. Il peut par exemple s'agir d'une carte à puce ou d'un élément sécurisé. 25 Un dispositif selon des modes de réalisation est par exemple un circuit intégré. La présente invention a été décrite et illustrée dans la présente description détaillée en référence aux figures jointes. Toutefois la présente invention ne se limite pas aux formes de réalisation présentées. D'autres variantes, modes de réalisation et combinaisons de caractéristiques peuvent être déduits et mis en oeuvre par la personne du métier à la lecture de la présente description et des figures annexées. Dans les revendications, le terme "comporter" n'exclut pas d'autres 5 éléments ou d'autres étapes. L'article indéfini « un » n'exclut pas le pluriel. Un seul processeur ou plusieurs autres unités peuvent être utilisées pour mettre en oeuvre l'invention. Les différentes caractéristiques présentées et/ou revendiquées peuvent être avantageusement combinées. Leur présence dans la description ou dans des revendications dépendantes différentes, n'exclut pas 10 en effet la possibilité de les combiner. Les signes de référence ne sauraient être compris comme limitant la portée de l'invention. Annexe A Algorithme 1 : Test probabiliste de Miller-Rabin modifié pour trouver un générateur pour a = 2 Entrée : l'entier w à tester, un paramètre de sécurité t Sortie : une réponse « Prime » (premier) ou « Composite » à la question : « w est-il premier ? », et un générateur g de si w est premier. ïi it)11.R. y = 1 and y 8: 9: 10: 11: 12: 13: 14: 15: 16: I 'II -1 rt'1 1:1-] 18: a Iu an 4: ! 19: (qin It i )1' !Ir[) Annexe B Algorithme 2: Test probabiliste de Miller-Rabin modifié pour trouver un générateur pour tout a Entrée : l'entier w à tester, un paramètre de sécurité t Sortie : une réponse « Prime » (premier) ou « Composite » à la question : « w est-il premier ? » et un générateur g de si w est premier. end if ,ncl ,turn (Prime. tIrît',, .r.urt hen tnen return then return Annexe C Algorithme 3 : Test de générateur sur base T Entrée : l'élément a à tester comme générateur, le nombre premier candidat w 5 sous test Miller-Rabin, une base {2, ch, ..., qm} inclue dans T pour factorisation partielle. Sortie : une réponse « isAGenerator » (« est un générateur ») ou « is NotAGenerator » (« n'est pas un générateur ») à la question « a est-il un 10 générateur de ? ». Annexe D Algorithme 4: Test probabiliste Miller-Rabin optimisé pour trouver un générateur pour tout a Entrée : l'entier w à tester ,un paramètre de sécurité t, une base T de nombres premiers plus petits que B. Sortie : une réponse « Prime » (premier) ou « Composite » à la question : « w est-il premier ? » et un générateur g de si w est premier. thon return n posite uall priinc 41-.- REVENDICATIONS1. Procédé de génération d'un message m d'ordre À(n), À(n) étant le plus petit commun multiple entre p-1 et q-1, p et q étant deux nombres premiers, pour son utilisation dans un test d'intégrité de génération de paire de clés cryptographiques publique et privée dans le groupe multiplicatif des entiers modulo n, avec n étant le produit des deux nombres premiers p et q, le procédé comportant: - une étape de génération de ladite paire de clés cryptographiques Io publique et privée, ladite étape comportant, pour générer les nombres p et q : o un tirage aléatoire (200, 202) d'entiers candidats, et o un test de primalité (201, 203) desdits entiers candidats, - une première étape (304) de recherche d'un générateur a du 15 groupe multiplicatif des entiers modulo p, zéro étant exclu, - une deuxième étape (304) de recherche d'un générateur b du groupe multiplicatif des entiers modulo q, zéro étant exclu, - une troisième étape (205) de recherche d'un nombre y, en tant que message m, vérifiant : 1 2. Procédé selon la revendication 1, dans lequel ledit test comporte les étapes suivantes: 25 - de détermination d'un entier candidat w vérifiant w - 1 = 2sr, s étant un entier et r étant un entier impair,- de sélection d'un générateur candidat c tel que 1 3. Procédé selon la revendication 2, comportant en outre une étape de test pour vérifier si a(w-1)/q # 1 mod w, avec el = 1 mod w, ladite vérification étant opérée pour un ensemble de diviseurs q de w - 1. 4. Procédé selon la revendication 3, dans lequel ladite vérification est opérée pour un ensemble de diviseurs premiers q de w - 1. 5. Procédé selon la revendication 3 ou 4, dans lequel, pour lesdits diviseurs q, la valeur dw-1)/c1 est calculée par exponentiation modulaire. 6. Procédé selon la revendication 5, comportant une initialisation de 15 ladite exponentiation modulaire avec une variable initiale calculée à partir de la factorisation en nombres premiers du nombre w-1. 7. Procédé selon l'une des revendications précédentes, dans lequel ledit test est réalisé selon un algorithme probabiliste. 8. Procédé de test de sécurité d'un dispositif électronique vis-à-vis 20 d'une attaque, le dit dispositif mettant en oeuvre une génération d'une clé cryptographique publique e et une clé cryptographique privée d dans le groupe multiplicatif des entiers modulo n, telles que : - n = p.q, avec p et q étant des nombres premiers, - 1 9. Procédé selon la revendication 8, dans lequel ladite valeur À'(n) est obtenue par perturbation du calcul de la valeur À(n). 10. Programme d'ordinateur comportant des instructions pour 10 la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 9 lorsqu'il est chargé et exécuté par un processeur d'un dispositif de cryptographie. 11. Dispositif cryptographique (40) comportant une unité de traitement (42) configurée pour mettre en oeuvre un procédé selon l'une des 15 revendications 1 à 9. 12. Entité électronique portable comprenant un dispositif selon la revendication 11.