Brevet FR3143243A1 — publié le 20240614

La présente invention concerne la sécurisation de traitements cryptographiques basés sur l’algorithme RSA-CRT utilisés pour signer ou déchiffrer un message m. Une double exécution de l’algorithme RSA-CRT est effectuée, suivie d’une vérification de la cohérence entre les résultats S et S’ obtenus, et de l’émission d’un des résultats en cas de vérification positive. Pour se prémunir d’une double injection de faute identique, l’invention prévoit que les exponentiations modulaires de même module des deux exécutions de l’algorithme RSA-CRT soient effectuées sur des messages différents basés sur m et/ou à l’aide d’exposants modulaires différents. Typiquement, S = m d mod N en utilisant le RSA-CRT et S’ = m d+1 mod N en utilisant les exposants d p +1 et d q +1. Si S’=m.S mod N, alors la donnée S est retournée en sortie. En variante, S’ = m 2d mod N ou m 2d+1 mod N ou m 2(d+2) mod N ou encore (-m 2 ) d mod N. [Fig. 3] SIGNATURE ET DECHIFFREMENT DE MESSAGE SECURISES PAR DOUBLE RSA-CRT DOMAINE DE L’INVENTION La présente invention concerne de façon générale le domaine de la cryptographie, et plus particulièrement la sécurisation de l’algorithme RSA – Rivest-Shamir-Adleman – utilisant le théorème des restes chinois – CRT (pour Chinese Remainder Theorem), utilisé pour la signature ou le déchiffrement d’un message. CONTEXTE DE L’INVENTION Les procédés cryptographiques à clé publique, tels le chiffrement RSA, sont utilisés pour chiffrer un message soit par la clé privée pour obtenir une signature numérique S du message vérifiable avec la clé publique, soit par la clé publique pour obtenir un message chiffré qui est déchiffrable avec la clé privée. Ils sont généralement mis en œuvre dans des systèmes cryptographiques sécurisés, tels des cartes à puce, des éléments sécurisés, des serveurs sécurisés. La clé publique est composée d’un module N et d’un exposant public ‘e’. La clé privée est composée du module N et d’un exposant privé ou secret ‘d’. Par construction, d est un inverse modulaire de e. Le théorème des restes chinois ou CRT est utilisé avec l’algorithme RSA pour accélérer le temps de déchiffrement ou de signature. Le CRT est en effet un algorithme permettant de réduire le calcul arithmétique modulaire avec un grand module pour le même calcul pour chaque facteur du module. Le CRT peut ainsi réduire la taille des exposants utilisés dans les calculs, notamment dans l’algorithme RSA. Le chiffrement RSA dans sa version CRT est noté RSA-CRT. Le chiffrement RSA-CRT pour signature d’un message ou déchiffrement d’un message chiffré s’appuie sur des exposants modulaires privés d p et d q construits à partir de l’exposant privé d, notamment d p = d mod(p-1) et d q = d mod(q-1) où p et q sont des nombres premiers formant le module N (N = p.q). Le chiffrement RSA-CRT réalise deux exponentiations modulaires du message respectivement par l’exposant modulaire d p basé sur p et par l’exposant modulaire d q basé sur q, puis une recombinaison des deux résultats. Par exemple dans le cas d’une signature d’un message ‘m’ ou du déchiffrement d’un message chiffré noté ‘m’ également : S p dp mod p S q dq mod q S p , S q , p, q, i q ) où i q = q -1 mod p. Le chiffrement RSA-CRT est très sensible aux attaques par injection de faute, typiquement l’attaque dite de Bellcore. L’attaque de Bellcore est documentée dans la publication "On the Importance of Checking Cryptographic Protocols for Faults” (D. Boneh et al., EUROCRYPT ’97, volume 1233 of LNCS, pages 37–51. Springer, 1997). Notamment, la clé privée utilisée pour la signature RSA-CRT est complètement exposée à partir d'une seule signature erronée obtenue par l’injection d’une faute. Un premier niveau de protection contre cette attaque est possible lorsque la clé publique est connue du système cryptographique de chiffrement, en vérifiant simplement que S^e=m c’est-à-dire (m^d)^e = m. Cependant, l’exposant public e n’est pas toujours connu du système cryptographique. S’il est possible de recalculer l’exposant public e en réalisant l’inversion modulaire de l’exposant privé d, ce calcul est trop coûteux. Néanmoins, la publication US 2009/175441 propose, en , de réaliser une inversion, moins coûteuse, d’exposants modulaires publics e p et e q résultant de l’application du CRT à partir des exposants modulaires privés d p et d q . Il reste cependant que les inversions modulaires nécessaires sont généralement coûteuses et difficiles à sécuriser contre les attaques par canaux auxiliaires. Aussi, d’autres protections évitant ces inversions d’exposant ont été proposées. Typiquement, l’une d’entre elles effectue le double calcul de la signature et la comparaison de leurs résultats, avant d’émettre en sortie l’un des résultats en cas d’égalité. Néanmoins, comme deux calculs identiques sont réalisés, ce mécanisme de protection ne protège pas le chiffrement contre une double injection de la même faute dans les deux calculs. Il existe donc un besoin de sécuriser un système cryptographique mettant en œuvre l’algorithme RSA-CRT de manière sécurisée à faible coût calculatoire. Dans ce dessein, l’invention propose un nouveau procédé de sécurisation de l’algorithme RSA-CRT pour protéger les exposants modulaires privés d p et d q soit lors d’une signature de message, soit lors d’un déchiffrement de message chiffré. Elle concerne donc un procédé de signature ou déchiffrement, basé sur l’algorithme RSA-CRT, d’un message initial m dans un dispositif électronique, à l’aide d’une clé privée comprenant deux exposants modulaires d p et d q associés à deux nombres premiers distincts p et q, l’algorithme RSA-CRT comprenant une première exponentiation modulaire de module p et une deuxième exponentiation modulaire de module q, le procédé comprenant les étapes suivantes : générer une première donnée, S, par une première exécution de l’algorithme RSA-CRT sur m, générer une deuxième donnée, S’, par une deuxième exécution de l’algorithme RSA-CRT sur m, et émettre un message de sortie basé sur S ou S’, si S est cohérent avec S’. L’invention s’appuie sur les propriétés mathématiques de l’algorithme RSA pour effectuer un deuxième calcul RSA-CRT différent et donc résistant à la double injection de la même faute. A cet effet, il est caractérisé en ce que les exponentiations modulaires de même module des première et deuxième exécutions de l’algorithme RSA-CRT sont effectuées sur des messages différents basés sur m et/ou à l’aide d’exposants modulaires différents. En effet, le choix d’une modification, entre les deux exécutions, du message sur lequel sont réalisées les exponentiations modulaires ou des exposants modulaires utilisés garantit des exécutions différentes et donc résistantes à une double injection de la même faute. En même temps, il permet de vérifier, via la cohérence entre les deux données S et S’ obtenues, qu’aucune faute n’a été injectée sans besoin de calculs d’inverses modulaires (notamment pour obtenir l’exposant public e ou ses exposants modulaires e p et e q ) coûteux en ressources. Corrélativement, l’invention concerne un dispositif électronique pour signature ou déchiffrement, basé sur l’algorithme RSA-CRT, d’un message initial m à l’aide d’une clé privée comprenant deux exposants modulaires d p et d q associés à deux nombres premiers distincts p et q, l’algorithme RSA-CRT comprenant une première exponentiation modulaire de module p et une deuxième exponentiation modulaire de module q, le dispositif électronique comprenant un processeur configuré pour : générer une première donnée, S, par une première exécution de l’algorithme RSA-CRT sur m, générer une deuxième donnée, S’, par une deuxième exécution de l’algorithme RSA-CRT sur m, et émettre un message de sortie basé sur S ou S’, si S est cohérent avec S’, le dispositif électronique étant caractérisé en ce que les exponentiations modulaires de même module des première et deuxième exécutions de l’algorithme RSA-CRT sont effectuées sur des messages différents basés sur m et/ou à l’aide d’exposants modulaires différents. Le dispositif électronique est un système cryptographique qui peut préférablement être mis en œuvre par ordinateur. Aussi, l’invention concerne également un support non transitoire lisible par ordinateur stockant un programme qui, lorsqu’il est exécuté par un processeur d’un dispositif électronique de traitement cryptographique, amène le dispositif électronique de traitement cryptographique à effectuer le procédé ci-dessus. Des caractéristiques facultatives des modes de réalisation de l’invention sont définies dans les revendications annexées. Certaines de ces caractéristiques sont expliquées ci-dessous en référence à un procédé, tandis qu’elles peuvent être transposées en caractéristiques de dispositif. Dans un mode de réalisation, les première et deuxième exécutions de l’algorithme RSA-CRT appellent une même fonction informatique de chiffrement RSA-CRT prenant, en entrées, des messages différents basés sur m et/ou des exposants modulaires de même module qui sont différents. Cette disposition permet avantageusement de sécuriser l’algorithme RSA-CRT sans modifier une implémentation existante de cet algorithme, et par voie de conséquence sans besoin de requalifier ou re-tester une nouvelle fonction. Dans un mode de réalisation, les exponentiations modulaires d’une même exécution sont effectuées sur un message identique . De même, dans un mode de réalisation, les exposants modulaires des deux exponentiations modulaires de chacune des exécutions sont obtenus par la même fonction (ou transformation) appliquée respectivement à d p et d q . Aussi, une fonction/transformation est utilisée pour la première exécution, par exemple la fonction Identité permettant d’appliquer d p et d q , et une fonction/transformation différente est utilisée pour la deuxième exécution comme exposé par la suite . Dans un mode de réalisation, le message pour les exponentiations modulaires de la première exécution vaut m. Cela permet de construire le message de sortie à partir de la première donnée S issue de la première exécution de l’algorithme RSA-CRT. Dans un mode de réalisation particulier, les exposants modulaires des deux exponentiations modulaires de la première exécution valent respectivement d p et d q , et le message de sortie vaut S. Dans ce cas, la première exécution correspond à la signature ou au déchiffrement de m à l’aide de ladite clé privée. Dans une variante, les exposants modulaires des deux exponentiations modulaires de la première exécution valent respectivement d p -α et d q -α, avec α un entier positif ou nul, et le message de sortie vaut S.m α mod N. Le message de sortie n’est ainsi pas directement exposé dès la première exécution. Dans un mode de réalisation, le message pour les exponentiations modulaires de la deuxième exécution vaut (-1) j .m k , avec j et k des entiers positifs, k non nul. Dans ce cas, le message à chiffrer/déchiffrer est modifié lors de la deuxième exécution de l’algorithme RSA-CRT. En particulier, le message pour les exponentiations modulaires de la deuxième exécution peut valoir m². En variante, le message pour les exponentiations modulaires de la deuxième exécution vaut -(m)². Ces configurations offrent avantageusement une complexité de calcul faible (grâce aux faibles valeurs choisies de j et k) pour un gain sécuritaire notable. Dans un mode de réalisation, les exposants modulaires des deux exponentiations modulaires de la deuxième exécution valent respectivement β.d p +γ et β.d q +γ, où β est un entier positif non nul et γ un entier. Dans ce cas, les exposants modulaires pour p et q sont modifiés lors de la deuxième exécution de l’algorithme RSA-CRT. En particulier, il peut être choisi que β=1 et γ=1. Ces faibles valeurs offrent avantageusement une complexité de calcul faible pour un gain sécuritaire notable. Bien entendu, d’autres valeurs faibles peuvent être utilisées, par exemple β= 1 ou 2 et γ= 0, 1 ou 2. Dans un mode de réalisation, le procédé comprend une étape de vérification de la cohérence de S’ avec S en comparant S et S’, la comparaison comparant : S’ à (-1) j( γ + β ) .(S.m α ) k . β .m k . γ mod N, avec N=p.q, lorsque le message pour les exponentiations modulaires de la première exécution vaut m et celui pour les exponentiations modulaires de la deuxième exécution vaut (-1) j .m k , les exposants modulaires des deux exponentiations modulaires de la première exécution valent respectivement d p -α et d q -α et ceux des deux exponentiations modulaires de la deuxième exécution valent respectivement β.d p +γ et β.d q +γ, si γ positif, ou S’.m - k. γ mod N à (-1) j( γ + β ) .(S.m α ) k . β mod N, si γ négatif. Il est à noter que l’expression (-1) j ( γ + β ) est équivalente à (-1) j( γ + β. d) avec d l’exposant privé de la clé de chiffrement RSA-CRT (donc correspondant à d p et d q ), dans la mesure où d est impair. Dans un mode de réalisation particulier, le procédé comprend une étape de calcul d’une valeur T=S.m α , et dans lequel la comparaison compare S’ à (-1) j( γ +β) .T k . β .m k. γ mod N, si γ positif, ou S’.m - k. γ mod N à (-1) j(γ+β) .T k . β mod N, si γ négatif, et l’étape d’émettre un message de sortie comprend l’étape d’émettre la valeur T. Cette configuration permet de réduire les coûts calculatoires. Dans un mode de réalisation particulier, la comparaison comprend : le tirage d’un entier aléatoire Rand, le calcul d’une valeur de vérification par l’addition d’un des deux termes à comparer à Rand suivi de la soustraction de l’autre terme à comparer, et la comparaison de la valeur de vérification avec Rand, la comparaison étant positive en cas d’égalité. Cette configuration sécurise la comparaison en évitant une comparaison avec 0. Au moins une partie des procédés selon l’invention peut être mise en œuvre par ordinateur. En conséquence, la présente invention peut prendre la forme d’un mode de réalisation entièrement matériel, d’un mode de réalisation entièrement logiciel (comportant les microprogrammes, les logiciels résidents, les microcodes, etc.) ou d’un mode de réalisation combinant des aspects logiciels et matériels qui peuvent tous être globalement appelés ici "circuit", "module" ou "système". De plus, la présente invention peut prendre la forme d’un produit de programme informatique incorporé dans tout support d’expression tangible disposant d’un code de programme utilisable par ordinateur incorporé dans le support. D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les figures ci-jointes qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. La illustre schématiquement les éléments principaux d'une forme de réalisation possible pour une carte à microcircuit ou « carte à puce ». La illustre l'allure physique générale de la carte à microcircuit de la . La illustre, à partir d’un ordinogramme, des étapes générales pour chiffrer (signer) ou déchiffrer un message selon des modes de réalisation de l’invention. La illustre un mode de réalisation du procédé de la appelant une même fonction informatique de chiffrement RSA-CRT. La illustre un premier exemple de réalisation calculant séparément S=m d mod N et S’=m d+1 mod N. La illustre un deuxième exemple de réalisation calculant séparément S=m d mod N et S’=m 2d mod N. La illustre un troisième exemple de réalisation calculant séparément S=m d mod N et S’=(-m 2 ) d mod N. La illustre un quatrième exemple de réalisation calculant séparément S=m d mod N et S’=m 2(d+1) mod N. La illustre un cinquième exemple de réalisation calculant séparément S=m d mod N et S’=m 2d+1 mod N. La illustre un sixième de réalisation calculant séparément S=m d-1 mod N et S’=m 2(d+1) mod N. DESCRIPTION DETAILLEE La présente invention concerne la sécurisation de traitements cryptographiques basés sur l’algorithme RSA-CRT, pour Rivest-Shamir-Adleman et Théorème des Restes Chinois (« Chinese Remainder Theorem » en langue anglosaxonne). De façon connue, l’algorithme RSA-CRT est un algorithme de signature/chiffrement par clés asymétriques, basé sur une clé publique (e, N) et une clé privée (p, q, d p , d q , i q ) où : le module N vaut le produit des grands nombres premiers p et q : N=p.q, e est l’exposant public, choisi entre 1 et Φ=(p-1).(q-1), d est l’exposant privé calculé par inversion modulaire de e avec le module Φ : d=e -1 mod Φ, c’est-à-dire e.d équivaut à 1 mod Φ, d p et d q sont les exposants modulaires basés respectivement sur p et q : d p = d mod(p-1) et d q = d mod(q-1), et i q = q -1 mod p. Cet algorithme peut être utilisé pour chiffrer un message m ou le signer. Lors du chiffrement, Alice chiffre le message m en utilisant l’algorithme RSA avec la clé publique (N, e) de Bob : S = m e mod N. Le message chiffré S est déchiffré par Bob en utilisant l’algorithme RSA avec sa propre clé privée (p, q, d p , d q , i q ) : m = S d mod N. Le Théorème des Restes Chinois permet d’accélérer le temps de ce déchiffrage en utilisant d p et d q . Une implémentation possible de la fonction RSA-CRT est la suivante, notée RSA-CRT(S, (p, q, d p , d q , i q )) : m p = S dp mod p m q = S dq mod q m = CRTRecombine (m p , m q , p, q, i q ). Typiquement, CRTRecombine (m p , m q , p, q, i q ) = m q + q.(i q .(m p -m q ) mod p). De façon symétrique pour la signature du message m, Alice signe le message m en utilisant l’algorithme RSA avec sa propre clé privée (p, q, d p , d q , i q ) : S = m d mod N. Le Théorème des Restes Chinois permet d’accélérer le temps de calcul de la signature en utilisant d p et d q , par appel par exemple de la fonction RSA-CRT(m, (p, q, d p , d q , i q )) : S p = m dp mod p S q = m dq mod q S = CRTRecombine (S p , S q , p, q, i q ). Typiquement, CRTRecombine (S p , S q , p, q, i q ) = S q + q.(i q .(S p -S q ) mod p). La signature S est vérifiée par Bob en utilisant l’algorithme RSA avec la clé publique (N, e) d’Alice pour calculer un message m’ : m’ = S e mod N, puis comparer m et m’. Par la suite, les explications et illustrations sont fournies à titre principal en lien avec l’opération de signature du message m. Compte tenu de la symétrie de traitement, celles-ci s’appliquent également au déchiffrement d’un message chiffré par RSA. L’invention vise à sécuriser l’algorithme RSA-CRT exécutée par un dispositif électronique compte des attaques par injection de faute, typiquement des attaques de Bellcore. Cette exécution est obtenue par une double exécution de l’algorithme RSA-CRT dans lesquelles les exponentiations modulaires de même module (p ou q) des deux exécutions de l’algorithme RSA-CRT sont effectuées sur des messages différents basés sur m et/ou à l’aide d’exposants modulaires différents. Cela peut s’illustrer par deux appels à la fonction RSA-CRT définie ci-dessus où les paramètres sont différents. La cohérence entre les deux résultats obtenus par les deux exécutions est vérifiée, et dans l’affirmative, l’un des résultats est utilisé pour générer un message de sortie représentant la signature souhaitée (ou le message déchiffré). La cohérence entre les deux résultats doit être entendue comme signifiant que ces deux résultats sont liés par une formule. Cela permet de garantir qu’aucune attaque simple ou double attaque identique a eu lieu sur ces exécutions. La représente, schématiquement, un dispositif électronique de traitement de données 40 formant système cryptographique dans lequel la présente invention peut être mise en œuvre. Ce dispositif 40 comprend un microprocesseur 10, auquel est associée d’une part une mémoire vive 60, par exemple au moyen d'un bus 70, et d’autre part une mémoire non volatile 20 (par exemple du type EEPROM), par exemple à travers un bus 50. Le dispositif de traitement de données 40, et précisément le microprocesseur 10 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 30. On a schématiquement représenté sur la la transmission d’une donnée d'entrée m reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 30 au microprocesseur 10. De manière similaire, on a représenté la transmission d'une donnée de sortie S du microprocesseur 10 vers l'interface de communication 30 à destination d'un dispositif extérieur. Cette donnée de sortie S est issue du traitement de données par le microprocesseur 10, sur la donnée d'entrée m à l'aide d'une clé secrète 80 interne au système, notamment la clé privée (p, q, d), soit (p, q, d p , d q , i q ) dans sa forme CRT, et stockée en mémoire. Bien que, pour l'illustration, les données d'entrée et les données de sortie figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 10 et l'interface 30 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 10 est apte à exécuter un logiciel (ou programme d’ordinateur) qui permet au dispositif de traitement de données 40 d'exécuter un procédé conforme à l'invention dont des exemples sont donnés ci-dessous. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 10 qui sont par exemple stockées dans la mémoire 20. En variante, l'ensemble microprocesseur 10 - mémoire non-volatile 20 - mémoire vive 60 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en œuvre des différentes étapes du procédé selon l’invention. La représente une carte à microcircuit qui constitue un exemple de système cryptographique conforme à l'invention tel que représenté à la . L'interface de communication 30 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit. La carte à microcircuit incorpore un microprocesseur 10, une mémoire vive 60 et une mémoire non volatile 20 comme cela est représenté sur la . Cette carte à microcircuit est par exemple conforme à la norme ISO 7816 et munie d’un microcontrôleur sécurisé qui regroupe le microprocesseur (ou CPU) 20 et la mémoire vive 60. En variante, le système cryptographique peut être inclus dans un élément sécurisé SE (pour « Secure Element » en langue anglo-saxonne), une clé USB, un document ou un support d’informations papier comportant dans l’une de ses feuilles un microcircuit associé à des moyens de communication sans contact. Il s’agit de manière préférée d’une entité électronique portable ou de poche. Bien entendu, l’invention s’applique aussi à un système cryptographique équipant un ordinateur personnel, un dispositif mobile (téléphone intelligent, tablette, objet connecté type IOT, ou équivalent) ou un serveur. La illustre, à partir d’un ordinogramme, des étapes générales pour chiffrer (signer) ou déchiffrer un message selon des modes de réalisation de l’invention. Le procédé peut être mis en œuvre par un dispositif électronique ou système cryptographique tel que décrit ci-dessus pour émettre en sortie un message chiffré (signature) ou déchiffré, ou être mis en œuvre par un module logiciel à l’intérieur du dispositif électronique ou système cryptographique pour fournir le message chiffré (signature) ou déchiffré à un autre module logiciel à l’intérieur du dispositif électronique ou système cryptographique. Le procédé débute à l’étape 300 avec le message m à signer et la clé privée (p,q,d p ,d q ,i q ). Les explications ci-dessous sont valables pour un message m à déchiffrer. L’étape 310 consiste en une première exécution de l’algorithme RSA-CRT par le dispositif électronique pour obtenir une première signature S. Le message utilisé pour les exponentiations modulaires de cette première exécution vaut m. La première exponentiation modulaire de modulo p 312 utilise l’exposant d p -α où α est un entier positif (0 ou plus) : S p = m dp - α mod p. La deuxième exponentiation modulaire de modulo q 314 utilise l’exposant d q -α : S q = m dq - α mod q. Les deux exponentiations peuvent être réalisées en parallèle, ou dans l’ordre inverse de la figure. Les exponentiations modulaires d’une même exécution sont effectuées sur un message identique, ici m. De même, les exposants modulaires des deux exponentiations modulaires de chacune des exécutions sont obtenus par la même fonction ou transformation appliquée respectivement à d p et d q , ici par la soustraction de α. Une première donnée S est alors obtenue à l’étape 316 par recombinaison CRT des deux résultats S p et S q des exponentiations modulaires 312 et 314. Par exemple, S = S q + q.(i q .(S p -S q ) mod p). Cette première donnée S vaut S = m d- α mod N. De façon similaire, l’étape 320 consiste en une deuxième exécution de l’algorithme RSA-CRT par le dispositif électronique pour obtenir une deuxième signature S’. Selon l’invention, les exponentiations modulaires de cette deuxième exécution utilisent des messages différents basés sur m et/ou des exposants modulaires différents comparativement à la première exécution 310. De façon générale, le message pour les exponentiations modulaires de cette deuxième exécution 320 vaut (-1) j .m k , avec j et k des entiers, k non nul. Typiquement j peut prendre soit la valeur 0 équivalente à toute valeur paire de j, soit la valeur 1 équivalente à toute valeur impaire de j. k est préférentiellement positif, mais non nécessairement. Pour s’assurer que les messages et/ou les exposants modulaires utilisés lors des deux exécutions 310 et 320 soient différents, le cas trivial suivant est évité : j=0 (ou pair), k=1, α=-γ, β=1. La première exponentiation modulaire de modulo p 322 utilise l’exposant β.d p +γ où β est un entier positif non nul et γ un entier (0 ou plus) : S’ p = ((-1) j .m k ) β. dp + γ mod p. La deuxième exponentiation modulaire de modulo q 324 utilise l’exposant β.d q +γ : S’ q = ((-1) j .m k ) β. dq + γ mod q. Les deux exponentiations peuvent être réalisées en parallèle, ou dans l’ordre inverse de la figure. Les exponentiations modulaires d’une même exécution sont effectuées sur un message identique, ici (-1) j .m k . De même, les exposants modulaires des deux exponentiations modulaires de chacune des exécutions sont obtenus par la même fonction appliquée respectivement à d p et d q , ici par la fonction g(d)= β.d+γ. Une deuxième donnée S’ est alors obtenue à l’étape 326 par recombinaison CRT des deux résultats S’ p et S’ q des exponentiations modulaires 322 et 324. Par exemple, S’ = S’ q + q.(i q .(S’ p -S’ q ) mod p). Cette deuxième donnée S’ vaut S’ = ((-1) j .m k ) β.d+ γ mod N. Les deux exécutions de l’algorithme RSA-CRT 310 et 320 peuvent être réalisées en parallèle, ou dans l’ordre inverse de la figure. L’étape 330 consiste à vérifier la cohérence entre les deux données obtenues S et S’ pour s’assurer qu’aucune injection de faute n’a eu lieu pendant les deux exécutions 310 et 320 de l’algorithme RSA-CRT par le dispositif électronique. La cohérence peut être vérifiée en comparant S et S’ selon une fonction de cohérence liée aux paramètres j, k, α, β et γ utilisés. En effet, les modifications proposées de message et/ou d’exposants entre les deux exécutions s’appuient sur les propriétés mathématiques de l’algorithme RSA-CRT afin de permettre une vérification finale mathématique. Dans un mode de réalisation, la vérification comprend la comparaison de : S’ à (-1) j( γ + β ) .(S.m α ) k. β .m k. γ mod N, si γ positif, ou S’.m - k. γ mod N à (-1) j ( γ + β ) .(S.m α ) k. β mod N, si γ négatif. Dans un mode de réalisation, la valeur T=S.m α est calculée préalablement à cette vérification et est utilisée dans la comparaison. Pour des raisons de sécurité, une valeur aléatoire, notée Rand, est utilisée pour masquer cette comparaison. Typiquement, dans des modes de réalisation, la comparaison 330 comprend : le tirage d’un entier aléatoire Rand, le calcul d’une valeur de vérification par l’addition d’un des deux termes à comparer à Rand suivi de la soustraction de l’autre terme à comparer. Par exemple, on calcule Verif = S’ + Rand - (-1) j( γ + β ) .(S.m α ) k. β .m k. γ mod N, si γ positif, ou Verif =S’.m - k. γ mod N + Rand - (-1) j ( γ + β ) .(S.m α ) k. β mod N, si γ négatif, et la comparaison de la valeur de vérification Verif avec Rand, la comparaison étant positive en cas d’égalité. En cas d’incohérence (comparaison négative), une faute d’exécution est donc détectée, possiblement en raison d’une injection de faute, auquel cas une erreur est levée à l’étape 350. Cette erreur peut consister en l’absence d’émission d’une donnée de sortie issue des calculs 310 et 320. Elle peut également comprendre l’envoi d’un simple code d’erreur. En cas de cohérence (comparaison positive), le message chiffré (signature) ou déchiffré est émis en sortie à l’étape 340. De façon générale, le message de sortie est basé sur S ou S’. Préférentiellement, le message de sortie vaut S.m α mod N. Dans un mode de réalisation, le message de sortie est T préalablement calculé. Avantageusement, lorsque α = 0, la première donnée S vaut directement le message de sortie (signature ou message déchiffré). Ce procédé selon l’invention protège l’algorithme RSA-CRT contre les fautes simples du fait des deux exécutions 310 et 320, mais également des fautes doubles identiques (une dans chaque exécution) du fait des messages ou exposants modulaires différents utilisés lors des deux exécutions 310 et 320. Une protection contre la modification malveillante de quelques bits d'une valeur intermédiaire (typiquement un octet ou un mot machine) à une valeur aléatoire étant obtenue par un double calcul classique, elle est également obtenue par le procédé de l’invention. Une protection contre la modification malveillante de tous les bits d'une valeur intermédiaire à 0 ou à 1 (par exemple 0x00 ou 0xFF) est désormais obtenue par le procédé de l’invention. En effet, comme les entrées de l’algorithme RSA-CRT sont différentes (le message ou les exposants modulaires utilisés), les valeurs intermédiaires sont différentes, et donc une même faute sur les deux exécutions RSA-CRT conduit nécessairement à une faute différente sur les deux données S et S’. Egalement, une protection contre la modification malveillante d’un pointeur de façon à ce qu'il pointe vers une certaine adresse en RAM est désormais obtenue par le procédé de l’invention. En effet, même si la modification parvient à fausser le pointeur d’un paramètre d’entrée de la fonction informatique de chiffrement RSA-CRT appelée, par exemple celui du message à utiliser ou celui des exposants modulaires à utiliser, de telle sorte qu'il pointe vers la même valeur pour les deux exponentiations modulaires de même module (p ou q) lors des deux exécutions 310 et 320, les deux données S et S’ ne seront pas cohérentes car les deux exécutions seront effectuées sur le même message ou avec les mêmes exposants modulaires, et non plus avec des messages ou exposants modulaires différents entre les deux exécutions. Il est à noter qu’une protection conventionnelle contre une exécution sur un message nul (m = 0) peut être fournie, par une détection préalable à l’algorithme RSA-CRT ou par une vérification additionnelle sur m en début d’algorithme. Les coûts calculatoires du procédé selon l’invention restent contenus. Celui-ci coûte le coût de la modification du message m et/ou des exposants modulaires, plus deux fois le coût d’une exécution RSA-CRT et le coût de la vérification de cohérence, par exemple le calcul de S’ et (-1) j( γ + β ) .(S.m α ) k. β .m k. γ mod N. Ces coûts peuvent être maintenus négligeables lorsque les paramètres k, α, β et γ sont petits. C’est le cas par exemple des modes de réalisation décrits ci-après, dans lesquels les première et deuxième exécutions de l’algorithme RSA-CRT appellent une même fonction informatique de chiffrement RSA-CRT prenant, en entrées, des messages différents basés sur m et/ou des exposants modulaires de même module différents. Cette fonction est notée RSA-CRT(m, (p, q, d p , d q , i q )) dont une mise en œuvre est décrite plus haut. Ces modes de réalisation ont l’avantage de pouvoir s’appuyer sur une fonction RSA-CRT déjà existante, réduisant ainsi le besoin en qualification ou test de fonctions. Ces modes de réalisation sont illustrés de façon générique par la . La première exécution 410 appelle la fonction RSA-CRT avec les données d’entrée suivantes (m, (p,q,d p -α,d q -α,i q ). Par ce premier appel, la première exponentiation modulaire 312 est calculée, suivie de la deuxième exponentiation modulaire 314 et de la recombinaison CRT 316. La première donnée S obtenue est donc identique à celle obtenue en . Puis la deuxième exécution 420 appelle la fonction RSA-CRT avec les données d’entrée suivantes ((-1) j .m k , (p,q,β.d p +γ,β.d q +γ,i q )). Par cet autre appel à la fonction, la première exponentiation modulaire 322 est calculée, suivie de la deuxième exponentiation modulaire 324 et de la recombinaison CRT 326. La deuxième donnée S’ obtenue est donc identique à celle obtenue en . La vérification 430 reste inchangée, ainsi que la donnée émise en sortie à l’étape 440 ou l’émission d’une erreur à l’étape 450. Bien entendu, d’autres mises en œuvre que l’appel à une même fonction peuvent être envisagées. Cela signifie que d’autres modes de réalisation de l’invention peuvent prévoir des implémentations différentes de l’algorithme RSA-CRT pour les deux exécutions requises selon l’invention. Notamment, les implémentations différentes peuvent déjà inclure les paramètres j, k, α, β et γ de telles sortes que les deux fonctions appelées prennent les mêmes valeurs en entrées, à savoir (m, (p, q, d p , d q , i q )). D’autres implémentations intermédiaires (e.g. certains paramètres sont déjà fixés dans les implémentations, d’autres sont indiqués dans les valeurs d’entrée) peuvent être envisagées. Les Figures 5 à 9 illustrent des modes de réalisation où la première exécution 310 calcule directement le message chiffré (signature) ou déchiffré attendu : S = m d mod N. Dans ces modes de réalisation, le message pour les exponentiations modulaires de la première exécution et les exposants modulaires des deux exponentiations modulaires de la première exécution valent respectivement m, d p et d q . Aussi, le message de sortie vaut S. Ces modes de réalisation diffèrent donc par les paramètres j, k, β et γ utilisés lors de la deuxième exécution 320. Dans l’exemple de la , la deuxième exécution 520 de l’algorithme RSA-CRT par le dispositif électronique calcule S’ = m d+1 mod N. Cela correspond au mode de réalisation j=0, k=1, α=0, β=1 et γ=1. Les données S et S’ sont donc liées par la formule m.S mod N = S’. Cette dernière est donc vérifiée à l’étape 530 par exemple sous forme de comparaison entre, d’un côté, m.S mod N + Rand – S’ et, de l’autre côté, Rand. Dans l’exemple de la , la deuxième exécution 620 de l’algorithme RSA-CRT par le dispositif électronique calcule S’ = m 2d mod N. Cela correspond au mode de réalisation j=0, k=2, α=0, β=1 et γ=0. A noter que les mêmes données S et S’ sont obtenues avec les paramètres suivants j=0, k=1, α=0, β=2 et γ=0. On voit ainsi que k et β sont redondants. Dans un mode de réalisation simplifié, k peut être omis. Néanmoins, des modes de réalisation préférés conservent k et β afin de permettre une modification du message pris par l’algorithme RSA-CRT entre les deux exécutions 310, 320. Les données S et S’ du mode de réalisation de la sont donc liées par la formule S² mod N = S’. Cette dernière est donc vérifiée à l’étape 630 par exemple sous forme de comparaison entre, d’un côté, S² mod N + Rand – S’ et, de l’autre côté, Rand. Dans l’exemple de la , la deuxième exécution 720 de l’algorithme RSA-CRT par le dispositif électronique calcule S’ = (-m 2 ) d mod N. Il est à noter que dans des modes de réalisation utilisant uniquement des valeurs positives (pour faciliter la représentation binaire), -m peut être manipulé sous forme de N-m ou m.(N-1). Cet exemple correspond au mode de réalisation j=1, k=2, α=0, β=1 et γ=0. Les données S et S’ sont également liées par la formule S² mod N = S’. Cette dernière est donc vérifiée à l’étape 730 par exemple sous forme de comparaison entre, d’un côté, S² mod N + Rand + S’ et, de l’autre côté, Rand. Dans l’exemple de la , la deuxième exécution 820 de l’algorithme RSA-CRT par le dispositif électronique calcule S’ = m 2 ( d +1) mod N. Cet exemple correspond au mode de réalisation j=0, k=2, α=0, β=1 et γ=1. A noter que les mêmes données S et S’ sont obtenues avec les paramètres suivants j=0, k=1, α=0, β=2 et γ=2. Les données S et S’ sont également liées par la formule (m.S)² mod N = S’. Cette dernière est donc vérifiée à l’étape 830 par exemple sous forme de comparaison entre, d’un côté, (m.S)² mod N + Rand – S’ et, de l’autre côté, Rand. Dans l’exemple de la , la deuxième exécution 920 de l’algorithme RSA-CRT par le dispositif électronique calcule S’ = m 2d+1 mod N. Cet exemple correspond au mode de réalisation j=0, k=1, α=0, β=2 et γ=1. Les données S et S’ sont également liées par la formule m.S² mod N = S’. Cette dernière est donc vérifiée à l’étape 930 par exemple sous forme de comparaison entre, d’un côté, m.S² mod N + Rand – S’ et, de l’autre côté, Rand. La illustre un mode de réalisation où la première exécution 310 ne calcule pas directement le message chiffré (signature) ou déchiffré attendu, mais une donnée intermédiaire liée au message attendu par la formule : S.m α mod N. Dans l’exemple de la , la première exécution 1010 de l’algorithme RSA-CRT par le dispositif électronique calcule S = m d-1 mod N, c’est-à-dire α=1, et la deuxième exécution 1020 de l’algorithme RSA-CRT calcule S’ = m 2(d +1 ) mod N. Cet exemple correspond au mode de réalisation j=0, k=2, α=1, β=1 et γ=1. A noter que les mêmes données S et S’ sont obtenues avec les paramètres suivants j=0, k=1, α=1, β=2 et γ=2 . Bien entendu, d’autres valeurs de α peuvent être utilisées. De même, tout autre combinaison de j, k, β et γ (par exemples celles des Figures 5 à 9 ) peut être utilisée pour la deuxième exécution. Les données S et S’ de l’exemple de la sont donc liées par la formule m².(m.S)² mod N = S’. Cette dernière est donc vérifiée à l’étape 1030 par exemple sous forme de comparaison entre, d’un côté, m 4 .S² mod N + Rand – S’ et, de l’autre côté, Rand. Dans un mode de réalisation, la valeur T=m.S (plus généralement m α .S) peut être calculée à l’étape 1025, avant la comparaison 1030. Cette dernière peut alors consister à vérifier m².T² mod N = S’, par exemple en comparant, d’un côté, m².T² mod N + Rand – S’ et, de l’autre côté, Rand. Bien entendu, la présente invention ne se limite pas aux formes de réalisation décrites ci-avant à titre d’exemples ; elle s’étend à d’autres variantes. D’autres réalisations sont possibles. Procédé de signature ou déchiffrement, basé sur l’algorithme RSA-CRT, d’un message initial m dans un dispositif électronique, à l’aide d’une clé privée comprenant deux exposants modulaires d p et d q associés à deux nombres premiers distincts p et q, l’algorithme RSA-CRT comprenant une première exponentiation modulaire (312, 322) de module p et une deuxième exponentiation modulaire (314, 324) de module q, le procédé comprenant les étapes suivantes : générer une première donnée, S, par une première exécution (310, 410, 510, 610, 710, 810, 910, 1010) de l’algorithme RSA-CRT sur m, générer une deuxième donnée, S’, par une deuxième exécution (320, 420, 520, 620, 720, 820, 920, 1020) de l’algorithme RSA-CRT sur m, et émettre (340, 440, 540, 640, 740, 840, 940, 1040) un message de sortie basé sur S ou S’, si S est cohérent avec S’, caractérisé en ce que les exponentiations modulaires (312, 322 ; 314, 324) de même module des première et deuxième exécutions de l’algorithme RSA-CRT sont effectuées sur des messages différents basés sur m et/ou à l’aide d’exposants modulaires différents. Procédé selon la revendication 1, dans lequel les première et deuxième exécutions de l’algorithme RSA-CRT appellent une même fonction informatique de chiffrement RSA-CRT prenant, en entrées, des messages différents basés sur m et/ou des exposants modulaires de même module qui sont différents. Procédé selon la revendication 1 ou 2, dans lequel les exponentiations modulaires d’une même exécution sont effectuées sur un message identique . Procédé selon l’une des revendications précédentes, dans lequel les exposants modulaires des deux exponentiations modulaires de chacune des exécutions sont obtenus par la même fonction appliquée respectivement à d p et d q . Procédé selon l’une des revendications précédentes, dans lequel le message pour les exponentiations modulaires de la première exécution vaut m, les exposants modulaires des deux exponentiations modulaires de la première exécution valent respectivement d p -α et d q -α, avec α un entier positif ou nul, et le message de sortie vaut S.m α mod N. Procédé selon l’une des revendications précédentes, dans lequel le message pour les exponentiations modulaires de la deuxième exécution vaut (-1) j .m k , avec j et k des entiers positifs, k non nul. Dans ce cas, le message à chiffrer/déchiffrer est modifié lors de la deuxième exécution de l’algorithme RSA-CRT. Procédé selon l’une des revendications précédentes, dans lequel les exposants modulaires des deux exponentiations modulaires de la deuxième exécution valent respectivement β.d p +γ et β.d q +γ, où β est un entier positif non nul et γ un entier. Procédé selon l’une des revendications précédentes, comprenant une étape de vérification (330, 430, 530, 630, 730, 830, 930, 1030) de la cohérence de S’ avec S en comparant S et S’, la comparaison comparant : S’ à (-1) j( γ + β ) .(S.m α ) k. β .m k. γ mod N, avec N=p.q, lorsque le message pour les exponentiations modulaires de la première exécution vaut m et celui pour les exponentiations modulaires de la deuxième exécution vaut (-1) j .m k , les exposants modulaires des deux exponentiations modulaires de la première exécution valent respectivement d p -α et d q -α et ceux des deux exponentiations modulaires de la deuxième exécution valent respectivement β.d p +γ et β.d q +γ, si γ positif, ou S’.m - k. γ mod N à (-1) j(γ+ β ) .(S.m α ) k. β mod N, si γ négatif. Procédé selon la revendication précédente, comprenant une étape de calcul d’une valeur T=S.m α , et dans lequel la comparaison compare S’ à (-1) j( γ +β) .T k . β .m k. γ mod N, si γ positif, ou S’.m - k. γ mod N à (-1) j(γ+β) .T k . β mod N, si γ négatif, et l’étape d’émettre un message de sortie comprend l’étape d’émettre la valeur T. Procédé selon la revendication précédente, dans lequel la comparaison comprend : le tirage d’un entier aléatoire Rand, le calcul d’une valeur de vérification par l’addition d’un des deux termes à comparer à Rand suivi de la soustraction de l’autre terme à comparer, et la comparaison de la valeur de vérification avec Rand, la comparaison étant positive en cas d’égalité. Dispositif électronique (40) pour signature ou déchiffrement, basé sur l’algorithme RSA-CRT, d’un message initial m à l’aide d’une clé privée comprenant deux exposants modulaires d p et d q associés à deux nombres premiers distincts p et q, l’algorithme RSA-CRT comprenant une première exponentiation modulaire (312, 322) de module p et une deuxième exponentiation modulaire (314, 324) de module q, le dispositif électronique comprenant un processeur (10) configuré pour : générer une première donnée, S, par une première exécution de l’algorithme RSA-CRT sur m, générer une deuxième donnée, S’, par une deuxième exécution de l’algorithme RSA-CRT sur m, et émettre un message de sortie basé sur S ou S’, si S est cohérent avec S’, le dispositif électronique étant caractérisé en ce que les exponentiations modulaires de même module des première et deuxième exécutions de l’algorithme RSA-CRT sont effectuées sur des messages différents basés sur m et/ou à l’aide d’exposants modulaires différents. Support non transitoire lisible par ordinateur stockant un programme qui, lorsqu’il est exécuté par un processeur d’un dispositif électronique de traitement cryptographique, amène le dispositif électronique de traitement cryptographique à effectuer le procédé selon l’une des revendications 1 à 10.