Brevet FR2884088A1 — publié le 20061006

PROCEDE ET DISPOSITIF CRYPTOGRAPHIQUE PERMETTANT DE PROTEGER LES LOGIQUES DE CLES PUBLIQUES CONTRE LES ATTAQUES PAR FAUTE. La présente invention concerne de façon générale les procédés et dispositifs cryptographiques basés sur la primitive RSA, et plus spécifiquement lorsque celle-ci est en mode CRT (théorème des restes chinois). La primitive RSA, largement déployée dans les techniques cryptographiques actuelles, est utilisée pour chiffrer un message m, pour déchiffrer un message chiffré, pour produire une signature S, ou encore pour vérifier la validité de la signature d'un message signé. Elle fonctionne, de manière bien connue, sur les logiques de clés publiques. La sécurité est basée sur la difficulté de factoriser des grands nombres. La clé publique est constituée de deux entiers N et e, où N, aussi appelé module, est égal au produit de deux entiers premiers distincts p et q; et e, également appelé exposant public, est tel que e.d congrue à 1 modulo le plus petit commun multiple (ppcm) de (p-1) et de (q-l), soit e. d = 1 mod ppcm(p-1,q-l) ; où , dénote une multiplication. En mode dit standard, la clé privée est, elle, constituée par l'entier d. Il est classique d'utiliser des implémentations du RSA dites RSA-CRT afin d'augmenter la vitesse de calcul de signature et/ou de déchiffrement. Il est en effet considéré qu'un procédé RSA en mode CRT est de l'ordre de quatre fois plus rapide qu'un RSA en mode standard. En mode dit CRT, dans une première configuration, la 35 clé privée est constituée par les entiers p, q, dp, dq et iq avec dp = d mod (p-l), dq = d mod (q-1) et iq = 1/q mod p. Dans une deuxième configuration, elle est constituée par les entiers p, q, dp, dq, ap et aq avec dp = d mod (p-l), dq = d mod (q-l), et ap et aq tels que ap = 1 mod p, ap = 0 mod q, aq = 0 mod p et aq = 1 mod q. Dans la première configuration, la recombinaison CRT pour le calcul de m^d mod N est obtenue à partir de (p, q, dp, dq, iq) par S = sq + q. (iq. (sp - sq) mod p) avec sp = m^dp mod p et sq = m^dq mod q; où t' dénote une élévation à la puissance. Dans la deuxième configuration, la recombinaison CRT est obtenue à partir de (p,q,dp,dq,ap,aq) par S = (ap.sp + aq.sq) mod N avec sp = m^dp mod p et sq = m^dq 15 mod q. L'inconvénient est que cette primitive est attaquable, notamment par injection de fautes. Il a ainsi été prouvé qu'un message et une signature erronée suffisent à retrouver la factorisation du module N, donc à casser le système, par simple calcul du plus grand commun diviseur (PGCD). Le problème général étant qu'un attaquant n'a besoin que d'une faute durant une étape de calcul du CRT pour retrouver le module de factorisation. Plusieurs solutions pour remédier à ce problème ont été envisagées. Notamment, des contre-mesures ont été proposées afin de détecter si une erreur de calcul est survenue pendant le calcul de la signature. De telles contre-mesures consistent, voir par exemple Adi Shamir, How to check modular exponentiation (session impromptue d'EUROCRYPT'97), à ajouter un nombre aléatoire au calcul, ce nombre aléatoire étant utilisé comme détecteur d'erreur. Le problème de ce genre de contre-mesure est qu'il ne protège pas contre tous les types d'attaque par injection de faute, et qu'il nécessite une ou plusieurs étapes de tests de décision de validité. Or, introduire une étape de test de décision fragilise la sécurité du système, puisqu'une injection de faute à ce niveau permettrait de forcer cette étape. Des solutions ont donc été proposées pour remédier à cet inconvénient. Notamment la solution BOS , du nom de leurs auteurs Blômer, Otto et Seifert, qui proposent dans l'article A new CRT-RSA algorithm secure against Bellcore attacks (ACM CCS 2003) un algorithme visant à 15 être sécurisé contre les attaques par injection de faute, dites attaques Bellcore. L'idée de cet algorithme est que la signature finale S est le résultat de la recombinaison du CRT exposant cl.c2 où cl et c2 sont des valeurs telles que si une erreur se produit pendant le calcul du CRT, alors le produit cl.c2 diffère de 1. Aussi le résultat final n'est alors plus la signature S mais S élevé à la puissance ((cl.c2) mod N). Cependant une telle solution s'est avérée finalement non complètement sécurisée puisque David Wagner a prouvé dans son article Cryptanalysis of a provably secure CRT-RSA algorithm (ACM CCS 2004) que l'algorithme BOS n'était, finalement, pas sécurisé contre un certain type d'attaques. De plus, la solution BOS a comme inconvénient de devoir générer, de préférence, deux entiers premiers, ce qui alourdit les temps de calcul, mais surtout, nécessite la valeur d (clé privée) qui, en pratique, n'est pas toujours disponible. L'objectif de la présente invention est de fournir un procédé et un dispositif de signature RSA-CRT susceptible de résister à une attaque par injection de faute. Autrement dit, elle présente donc un procédé et un dispositif de mise en oeuvre de combinaisons à clés publiques contenant la forme CRT de l'opération d'exponentiation modulaire x^d mod N où N=p.q, aux fins de les rendre plus résistants aux attaques par fautes. Dans ce contexte, la présente invention a pour but de proposer un procédé et un dispositif cryptographique pour un dispositif électronique consistant à signer un message m sous forme d'une signature finale S (ou à déchiffrer un message chiffré) sur la base de la primitive RSA, utilisant le théorème des restes chinois (CRT), dont la clé publique (N,e) est constituée d'un module N qui est le produit de deux nombres premiers distincts p et q, et d'un exposant public e, et dont la clé privée (p, q, dp, dq, iq) est telle que e.dp = 1 mod (p-1) et e.dq = 1 mod (q-1) ; ce dispositif comprenant une unité centrale équipée au moins d'une mémoire de travail utilisée pour exécuter les calculs, et d'une mémoire réinscriptible servant à stocker des données propres au dispositif et/ou propres à des commandes à exécuter pour mettre en oeuvre le procédé. A cette fin, le procédé de l'invention, par ailleurs conforme à la définition générique qu'en donne le préambule ci-dessus, est essentiellement caractérisé en ce que qu'il comprend au moins les étapes suivantes consistant à : a) générer deux entiers r1 et r2, b) générer, dans la mémoire de travail, un premier couple de valeurs (sp*, s1) à partir de la valeur r1, et un deuxième couple de valeurs (sq*, s2) à partir de la valeur r2, où s1 et s2 sont des valeurs de test entières, c) générer une première valeur s* de la signature finale S par recombinaison selon le CRT des valeurs sp* et sq*, et la stocker dans la mémoire de travail, d) générer une première valeur de comparaison cl par une fonction de comparaison entre s* et s1, et une deuxième valeur de comparaison c2 par une fonction de comparaison entre s* et s2, et stocker ces première et deuxième valeurs dans la mémoire de travail, e) générer un résultat G = f (c1, c2) , dont la valeur est égale à 1 si c1=c2=1 et différente de 1 sinon, et f) produire dans la mémoire de travail la signature finale S définie par S=f2(s*,G) mod N telle que S = s* mod N si G=1 et S s* mod N sinon, écrire cette signature dans la mémoire réinscriptible, et la retourner vers l'extérieur. Grâce à cet agencement, si une erreur est introduite, la valeur de G, qui est censée être 1, lui sera différente, auquel cas la signature finale S ne sera pas la signature S normale. Le calcul est donc ainsi protégé. Un avantage de l'invention est qu'un premier couple de valeurs (sp*, s1) et un deuxième couple de valeurs (sq*, s2) sont recombinés pour générer la signature sans utiliser de test de décision. Un autre avantage réside dans le fait que les entiers r1 et r2 n'ont pas besoin d'être premiers, ce qui augmente la vitesse de calcul. Typiquement, r1 et r2 sont 10 15 20 des entiers de 32 bits; ce qui, globalement, n'a pas d'impact sur les performances en temps et en mémoire de la signature RSA. Et avantageusement, les entiers r1 et r2 sont aléatoires. Aussi l'exploitation de l'invention ne coûte quasiment rien en ce qu'elle ne nécessite aucune ressource dédiée ( hardware ou software ). L'ensemble des opérations nécessaires à sa mise en oeuvre se fait avec les moyens classiques, sans nécessiter de moyen (par exemple processeur, co-processeur) supplémentaire ou d'espace mémoire supplémentaire. Dans le mode de réalisation préféré de l'invention, 15 les paramètres suivants sont stockés dans la mémoire réinscriptible: É p et q les entiers premiers, É N, le module de factorisation, comme premier élément de clé publique, É d et e, respectivement clé privée et deuxième élément de clé publique, É la valeur iq telle que iq = q-lmod p, É la valeur dp = d mod (p-1) , É la valeur dq = d mod(q-1). Ainsi un avantage de la présente invention est que seules les données disponibles (dp, dq...) sont utilisées, l'exposant public e n'étant, en pratique, pas toujours disponible. Dans le mode de réalisation préféré de l'invention, le procédé cryptographique est tel que f(cl,c2) est une fonction rationnelle de type QT(x,y) telle que x(1,1)=1 mod N et Vx, y#l, RJ(x, y) #1. Et plus particulièrement, la valeur G f(c1,c2) est définie par la relation G = Arr[r3cl + (2^L-r3)c2/2^L] où r3 est un entier d'une longueur de L bits et Arr une fonction d'arrondi à la valeur entière supérieure, inférieure ou à la valeur entière la plus proche. De préférence, les valeurs de comparaison cl et c2 sont définies par les relations É c1 = (s*-s1+1) mod r1 et É c2 = (s*-s2+1)mod r2, le premier couple de valeurs (sp*, s1) est défini par les relations É sp* = (mp*) dpmod p* et É s1 = (mp*)dpmod r1 où mp* = m mod p* et p* = r1,p, et le deuxième couple de valeurs (sq*, s2) est défini par les relations É sq* = (mq*) dpmod q* et É s2 = (mq*) dpmod r2 où mq* = m mod q* et q* = r2. q De même, la valeur iq* est égale à (q*) -lmod p* est calculée par exemple par les étapes suivantes: a) rl = r2 (q*) lmod r1 b) j ri = (p) -lmod r c) kg = {r1. iq + p* [jrl (ir1-iq) mod r1] } / r1 d) re = (-p*) -lmod r2 et kr2 = (1+p* . ir2) / r2 e) iq* = kgkr2 mod p Enfin, la recombinaison CRT pour générer une première valeur s* de la signature finale S est faite selon la relation: É s* = sq* + q* [ iq* (sp*-sq*)mod p*]. La signature finale S est construite à partir de la recombinaison CRT selon une fonction S=f2(s*,G) mod N telle que S = s* mod N si G=1 et S s* mod N sinon. Typiquement, la fonction f2 est telle que S = s*^G mod N. A titre d'alternative, f2 peut aussi être telle que S = [(G.s*)+(1-G) r4] mod N, où r4 est un entier aléatoire. Dans un deuxième mode de réalisation, les paramètres suivants sont également stockés dans la mémoire réinscriptible. ap tel que ap = 1 mod p et ap = 0 mod q. Et aq tel 10 que aq = 0 mod p et aq = 1 mod q. Et, de même que dans le premier mode de réalisation, ap* = 1 mod p* et ap* = 0 mod q* ; et aq* _ 0 mod p* et aq* = 1 mod q*. La recombinaison CRT pour 15 générer une première valeur s* de la signature finale S est faite selon la relation: s* = ap*.sp* + aq*.sq* mod rl.r2.N, Les autres étapes du procédé étant identiques. Le procédé cryptographique selon l'invention est mis en oeuvre avantageusement dans un dispositif électronique de carte à puce. La présente invention a pour but également de proposer un dispositif cryptographique pour la mise en oeuvre du procédé selon l'un ou l'autre des modes de réalisation précédents. Le dispositif cryptographique permet de protéger les logiques de clés publiques contre les attaques par faute. Les moyens du dispositif mis en oeuvre permettent de signer un message m sous forme d'une signature finale S (ou à déchiffrer un message chiffré) sur la base de la primitive RSA, utilisant le théorème des restes chinois (CRT), dont la clé publique (N,e) est constituée d'un module N qui est le produit de deux nombres premiers distincts p et q, et d'un exposant public e, et dont la clé privée (p, q, dp, dq, iq) est telle que e.dp = 1 mod (p-1) et e.dq = 1 mod (q-l). Ce dispositif comprend une unité centrale équipée au moins d'une mémoire de travail utilisée pour exécuter les calculs, et d'une mémoire réinscriptible servant à stocker des données propres au dispositif et/ou propres à des commandes à exécuter pour mettre en oeuvre le procédé. Le dispositif cryptographique selon l'invention est mis en oeuvre avantageusement dans une carte à puce. Le procédé selon l'invention est représenté schématiquement sur la figure 1 et fonctionne comme suit. Le procédé cryptographique pour un dispositif électronique consiste à signer un message m sous forme d'une signature finale S par cryptographie RSA, utilisant le théorème des restes chinois (CRT). Dans un système RSA classique, la clé privée d est constituée à partir de deux entiers p et q, et la clé publique (N, e) est telle que N, le module de factorisation, satisfait la relation N=p.q et e l'exposant public est tel que e.d=1 mod(p-l)(q-l); La signature finale S est obtenue par recombinaison selon le CRT. Le dispositif électronique comprend une unité centrale équipée au moins d'une mémoire de travail utilisée pour exécuter les calculs, par exemple une mémoire volatile de type RAM, et d'une mémoire non volatile de type EEPROM ou FLASH servant à stocker des données propres au dispositif et/ou propres à des commandes à exécuter pour mettre en oeuvre le procédé, par exemple une mémoire de type EEPROM ou FLASH. En général un tel dispositif comprend également une mémoire de code, de type ROM, il peut s'agir également d'une mémoire non volatile de type EEPROM ou FLASH, où est stocké le code à exécuter pour mettre en oeuvre le procédé. Le procédé comprend au moins les étapes suivantes 10 consistant à : É Générer (10) deux entiers aléatoires, non nécessairement premiers, r1 et r2, et les stocker dans la mémoire de travail. Ces entiers permettent notamment de masquer les valeurs p et q en p* et q* respectivement. É Générer (20), dans la mémoire de travail, un premier couple de valeurs (sp*, s1) à partir de la valeur r1, et un deuxième couple de valeurs (sq*, s2) à partir de la valeur r2, où s1 et s2 sont des valeurs de test entières, qui servent de références. É Générer (30) une première valeur s* de la signature finale S par recombinaison selon le CRT des valeurs sp* et sq*, et la stocker dans la mémoire de travail. É Générer (40) une première valeur de comparaison cl par une fonction de comparaison entre s* et s1, et une deuxième valeur de comparaison c2 par une fonction de comparaison entre s* et s2, et stocker ces première et deuxième valeurs dans la mémoire de travail. Ainsi, si une erreur de calcul s'est produite, alors cl est différent de 1 ou c2 est différent de 1. É Générer (50), dans la mémoire de travail, un 35 résultat G= f(ci, c2) , dont la valeur est égale à 1 si et=c2=1 et différente de 1 sinon, et É Produire (60) dans la mémoire de travail la signature finale S définie par S=f2(s*,G) mod N telle que S = s* mod N si G=1 et S s* mod N sinon écrire cette signature dans la mémoire réinscriptible, et la retourner vers l'extérieur. Les paramètres suivants sont stockés dans la mémoire réinscriptible: É p et q les entiers premiers, É N, le module de factorisation, comme premier élément de clé publique, É d et e, respectivement clé privée et deuxième élément de clé publique, É la valeur iq telle que ig = q-'mod p, É la valeur dp = d mod(p-l), É la valeur dq = d mod(q-1). f(ci,c2) est, de préférence, une fonction rationnelle, afin d'augmenter la vitesse de calcul. Elle est de type J (x,y) telle que 7(1, 1)=1 mod N et dx,y l, (x, y) 1. Par exemple, G=f(ci,c2) est défini par la relation G = Arr[r3cl + (2^L-r3) c2/2^L] où r3 est un entier d'une 25 longueur de L bits et Arr une fonction d'arrondi à la valeur entière supérieure, inférieure ou à la valeur entière la plus proche. Les valeurs cl et c2, valeurs de comparaison entre 30 s* et s1, et s* et s2, sont définies par les relations et = (s*-sl+1) mod ri et c2 = (s*-s2+ 1) mod r2 Le premier couple de valeurs (sp*, s1) est défini par les relations sp* = (mp*)dpmod p* et Si = (mp*)dpmod r1 où mp* = m mod p* et p = r1.p De même, le deuxième couple de valeurs (sq*, s2) est 5 défini par les relations sq* = (mq*)dpmod q* et S2 = (mq*)dpmod r2 où mq* = m mod q* et q* = r2.q Ainsi, les valeurs p et q sont masquées 10 respectivement en p* et q* et permettent de générer sp* et sq* en vue de la recombinaison CRT. La recombinaison CRT est utilisée pour générer une première valeur s* de la signature finale S, faite selon 15 la relation: s* = sq* + q* [ iq* (sp*-sq*)mod p*] où la valeur iq* est définie comme l'inverse de q* modulo p* par (q*)-lmod p* est calculée, par exemple, 20 par les étapes suivantes: É ir1 = r2 (q*) -lmod r1 (soit ir1 = q-lmod r1) É j ri = (p*) lmod r 1 É kq= {rl.iq + p*[jrl(ir1-iq) mod r1]} / rl É ire = (-p*) -lmod r2 et kr2 = (1+p* . ir2) / r2 25 É ig* = kgkr2 mod p* Ainsi, la signature finale S est produite à l'extérieur après recombinaison CRT mais sans étape de test de décision. La signature finale S est construite à partir de la recombinaison CRT selon une fonction S=f2(s*,G) mod N telle que S = s* mod N si G=1 et S s* mod N sinon. Typiquement, la fonction f2 est telle que S = s*^G mod N. A titre d'alternative, f2 peut aussi être telle que S 35 = [(G.s*)+(1-G)r4] mod N, où r4 est un entier aléatoire. Ce procédé cryptographique est mis en uvre, notamment, dans un dispositif électronique de carte à puce. Le dispositif cryptographique selon l'invention permet de protéger les logiques de clés publiques contre les attaques par faute. Le dispositif de mise en oeuvre d'un procédé cryptographique pour un dispositif électronique par cryptographie RSA, utilisant le théorème des restes chinois (CRT), comprend: a) Des moyens pour générer deux entiers aléatoires rl et r2, b) Des moyens pour générer, dans la mémoire de travail, un premier couple de valeurs (sp*, s1) à partir de la valeur r1, et un deuxième couple de valeurs (sq*, s2) à partir de la valeur r2, où sl et s2 sont des valeurs de test entières, c) Des moyens pour générer une première valeur s* de la signature finale S par recombinaison selon le CRT des valeurs sp* et sq*, et la stocker dans la mémoire de travail, d) Des moyens pour générer une première valeur de comparaison cl par une fonction de comparaison entre s* et s1, et une deuxième valeur de comparaison c2 par une fonction de comparaison entre s* et s2, et stocker ces première et deuxième valeurs dans la mémoire de travail, e) Des moyens pour générer un résultat G= f (cl, c2) , dont la valeur est égale à 1 si et=c2=1 et différente de 1 sinon, et f) Des moyens pour produire dans la mémoire de travail la signature finale S définie par S=f2(s*,G) mod N telle que S = s* mod N si G=1 et S s* mod N sinon, écrire cette signature dans la mémoire réinscriptible, et la retourner vers l'extérieur. Dans le dispositif selon l'invention, les paramètres 5 suivants sont avantageusement stockés dans la mémoire réinscriptible: É p et q les entiers premiers, É N, le module de factorisation, comme premier élément de clé publique, É d et e, respectivement clé privée et deuxième élément de clé publique, É la valeur iq telle que iq = q-lmod p, É la valeur dp = d mod(p-1), É la valeur dq = d mod(q-1). Dans le mode de réalisation préféré, f(c1,c2) est une fonction rationnelle de type R5(x,y) telle que 7T(1,1)=1 mod N et bx,y 1, ' 5 (x,y) 1. Avantageusement, G f(c1, c2) est défini par la relation G = Arr[r3cl + (2^L-r3)c2/2^L] où r3 est un entier d'une longueur de L bits et Arr une fonction d'arrondi à la valeur entière supérieure, inférieure ou à la valeur entière la plus proche. Les valeurs de comparaison cl et c2 sont, de préférence, définies par les relations c1 = (s*-s1+l)mod r1 et c2 = (s*-s2+1)mod r2 Et le premier couple de valeurs (sp*, s1) est défini par les relations sp* _ (mi,*) dpmod p* et si = (mp*)dpmod r1 où mp* = m mod p* et p* = r1_p Le deuxième couple de valeurs (sq*, s2) est défini par les relations sq* = (mq*) dgmod q* et s2 = (mq*) dgmod r2 où mq* = m mod q* et q* = r2. q La valeur iq* est définie par (q*)-lmod p. Elle est calculée, par exemple, par des moyens permettant de calculer les valeurs suivantes: irl = r2(q) -lmod rl j rl = (p*) -lmod rl 2 kq = {rl.iq + p*[jrl(ir1-iq) mod ri]) / r1 ire = (p*) -Imod r2 et kr2 = (l+p*. ir2) / r2 iq* = kgkr2 mod p* La recombinaison CRT pour générer une première 15 valeur s* de la signature finale S est faite par des moyens pour calculer la relation: = sq* + q* [ iq* (sp*-sq*)mod p*] . Dans un autre mode de réalisation, les paramètres suivants sont également stockés dans la mémoire réinscriptible: ap tel que ap = 1 mod p et ap = 0 mod q. Et aq tel que aq = 0 mod p et aq = 1 mod q. Et, de même que dans le premier mode de réalisation, 25 ap* = 1 mod p* et ap* = 0 mod q* ; et aq* = 0 mod p* et aq* = 1 mod q*. La recombinaison CRT pour générer une première valeur s* de la signature finale S est faite par des moyens pour calculer la relation: s* = ap*.sp* + aq*.sq* mod rl.r2.N La signature finale S est construite à partir de la recombinaison CRT selon une fonction S=f2(s*,G) mod N telle que S = s* mod N si G=1 et S s* mod N sinon. Typiquement, la fonction f2 est telle que S = s*^G mod N. A titre d'alternative, f2 peut aussi être telle que S = [(G.s*)+(1-G)r4] mod N, où r4 est un entier aléatoire. Le dispositif selon l'invention est avantageusement 5 mis en oeuvre dans un dispositif électronique de carte à puce. REVENDICATIONS 1. Procédé cryptographique pour dispositif électronique, permettant de protéger les techniques de clés publiques contre les attaques par faute, consistant à signer un message m sous forme d'une signature finale S par cryptographie RSA, utilisant le théorème des restes chinois (CRT), dont la clé privée d est constituée à partir de deux entiers p et q, et la clé publique (N, e) est telle que N, le module de factorisation, satisfait la relation N=p.q et e l'exposant public est tel que e.d=1 mod(p-l)(q-l); ce dispositif comprenant une unité centrale équipée au moins d'une mémoire de travail utilisée pour exécuter les calculs, et d'une mémoire réinscriptible servant à stocker des données propres au dispositif et/ou propres à des commandes à exécuter pour mettre en uvre le procédé, caractérisé en ce que ce procédé comprend au moins les étapes suivantes consistant à : a) générer (10) deux entiers aléatoires r1 et r2, b) générer (20), dans la mémoire de travail, un premier couple de valeurs (sp*, s1) à partir de la valeur r1, et un deuxième couple de valeurs (sq*, s2) à partir de la valeur r2, où sl et s2 25 sont des valeurs de test entières, c) générer (30) une première valeur s* de la signature finale S par recombinaison selon le CRT des valeurs sp* et sq*, et la stocker dans la mémoire de travail, d) générer (40) une première valeur de comparaison c1 par une fonction de comparaison entre s* et s1, et une deuxième valeur de comparaison c2 par une fonction de comparaison entre s* et s2, et stocker ces première et deuxième valeurs dans la mémoire de travail, e) générer {50) un résultat G= f(cl, c2) , dont la valeur est égale à 1 si et=c2=1 et différente de 1 sinon, et f) produire (60) dans la mémoire de travail la signature finale S définie par S=f2(s*,G) mod(N) telle que S=s* mod(N) si G=1 et différente sinon, écrire cette signature dans la mémoire réinscriptible, et la retourner vers l'extérieur. 2. Procédé cryptographique selon la revendication 1, caractérisé en ce que les paramètres suivants sont stockés dans la mémoire réinscriptible: É p et q les entiers premiers, É N, le module de factorisation, comme premier élément de clé publique, É d et e, respectivement clé privée et deuxième élément de clé publique, É la valeur iq telle que iq = q-'mod p, É la valeur dp = d mod (p-l) , É la valeur dq = d mod(q-l). 3. Procédé cryptographique selon l'une quelconque des revendications précédentes, dans lequel f(cl,c2) est une fonction rationnelle de type 1(x,y) telle que 12(1,1)=l mod N et Vx,y#l, RF(x,y) #1. 4. Procédé cryptographique selon la revendication 3, dans lequel G f(c1, c2) est défini par la relation G = Arr[r3cl + (2'L-r3)c2/2'L] où r3 est un entier d'une longueur de L bits et Arr une fonction d'arrondi à la valeur entière supérieure, inférieure ou à la valeur entière la plus proche. 5. Procédé cryptographique selon l'une quelconque des revendications précédentes, dans lequel les valeurs de comparaison cl et c2 sont définies par les relations É c1 = (s*-s1+1) mod r1 et É c2 = (s*-s2+1) mod r2 6. Procédé cryptographique selon l'une quelconque des revendications précédentes, dans lequel le premier couple de valeurs (sp*, s1) est défini par les relations É sp* _ (mp*) dpmod p* et É si = (mp*) dpmod r1 où mp* = m mod p* et p* = r1.p 7.Procédé cryptographique selon l'une quelconque des 15 revendications précédentes, dans lequel le deuxième couple de valeurs (sq*, s2) est défini par les relations É sq* = (mq*) dgmod q* et É s2 = (mq*) dgmod r2 où mg* = m mod q* et q* = r2 _ q 8. Procédé cryptographique selon l'une quelconque des revendications précédentes, dans lequel la valeur iq* est définie par iq* _ (q*) lmod p 9.Procédé cryptographique selon la revendication 8, caractérisé en ce que la recombinaison CRT pour générer une première valeur s* de la signature finale S est faite selon la relation: É S = Sq* + q* [ lq* (sp*-sq*)mod p*]. 10. Procédé cryptographique selon l'une quelconque des revendications 1 à 7, caractérisé en ce que les paramètres suivants sont également stockés dans la mémoire réinscriptible: ap* = 1 mod p* et ap* = 0 mod q* ; et aq* = 0 mod p* et aq* = 1 mod q*, la recombinaison CRT pour générer une première valeur s* de la signature finale S étant faite selon la relation: s* = (ap*.sp* + aq*.sq*) mod rl.r2.N 11. Procédé cryptographique selon l'une quelconque des revendications 1 à 10 dans lequel la signature finale S est construite à partir de la recombinaison CRT selon une fonction f2 telle que S = s*^G mod N; ou telle que S = [(G. s*)+(1-G)r4) mod N, où r4 est un entier aléatoire. 12. Procédé cryptographique selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est mis en oeuvre dans un dispositif électronique de carte à puce. 13. Dispositif cryptographique apte à protéger les techniques de clés publiques contre les attaques par faute, mettant en oeuvre un procédé cryptographique par cryptographie RSA, utilisant le théorème des restes chinois (CRT), comprenant: a) Des moyens pour générer deux entiers aléatoires 25 rl et r2, b) Des moyens pour générer, dans la mémoire de travail, un premier couple de valeurs (sp*, s1) à partir de la valeur r1, et un deuxième couple de valeurs (sq*, s2) à partir de la valeur r2, où sl et s2 sont des valeurs de test entières, c) Des moyens pour générer une première valeur s* de la signature finale S par recombinaison selon le CRT des valeurs sp* et sq*, et la stocker dans la mémoire de travail, d) Des moyens pour générer une première valeur de comparaison cl par une fonction de comparaison entre s* et s1, et une deuxième valeur de comparaison c2 par une fonction de comparaison entre s* et s2, et stocker ces première et deuxième valeurs dans la mémoire de travail, e) Des moyens pour générer un résultat G= f (c1, c2) , dont la valeur est égale à 1 si et=c2=1 et différente de 1 sinon, et f) Des moyens pour produire dans la mémoire de travail la signature finale S définie par S=f2(s*,G) mod N telle que S = s* mod N si G=1 et S s* mod N sinon, écrire cette signature dans la mémoire réinscriptible, et la retourner vers l'extérieur. 14. Dispositif cryptographique selon la revendication 13 dans lequel les paramètres suivants sont stockés dans la mémoire réinscriptible: É p et q les entiers premiers, É N, le module de factorisation, comme premier 20 élément de clé publique, É d et e, respectivement clé privée et deuxième élément de clé publique, É la valeur iq telle que iq = q-lmod p, É la valeur dp = d mod(p-1), É la valeur dq = d mod(q-1). 15. Dispositif cryptographique selon l'une des revendications 13 ou 14, dans lequel f(c1,c2) est une fonction rationnelle de type 9f(x,y) telle que 7(1,1)=1 30 mod N et Vx, y#1, 7J(x, y) #1. 16. Dispositif cryptographique selon l'une quelconque des revendications 13 à 15, dans lequel G=f(ci,c2) est défini par la relation G = Arr[r3cl + (2^L-r3)c2/2^L] où r3 est un entier d'une longueur de L bits et Arr une fonction d'arrondi à la valeur entière supérieure, inférieure ou à la valeur entière la plus proche. 17. Dispositif cryptographique selon l'une quelconque des revendications 13 à 16, dans lequel les valeurs de comparaison cl et c2 sont, de préférence, définies par les relations et = (s*-sl+1)mod ri et c2 = ( s *s2+1) mod r2 18. Dispositif cryptographique selon l'une quelconque des revendications 13 à 17, dans lequel le premier couple de valeurs (sp*, s1) est défini par les relations sp* = (mp*)dpmod p* et si = (mp*) dpmod rl où mp* = m mod p* et p r1.p 19. Dispositif cryptographique selon l'une quelconque des revendications 13 à 17, dans lequel le deuxième couple de valeurs (sq*, s2) est défini par les relations sq* = (mq*) dgmod q* et s2 = (mq*) dgmod r2 où mq* = m mod q* et q* = r2 _ q 20. Dispositif cryptographique selon l'une quelconque des revendications 13 à 18, dans lequel la valeur iq* est calculée par des moyens permettant de calculer la valeur iq* = (q*) -lmod p* 21. Dispositif cryptographique selon l'une quelconque des revendications 13 à 20, dans lequel la recombinaison CRT pour générer une première valeur s* de la signature finale S est faite par des moyens pour calculer la relation s* = sq* + q* [ iq* (sp*-sq*) mod p*]. 22. Dispositif cryptographique selon l'une quelconque des revendications 13 à 19, dans lequel, les paramètres suivants sont également stockés dans la mémoire réinscriptible: ap* = 1 mod p* et ap* = 0 mod q* ; et aq* = 0 mod p* et aq* = 1 mod q*, et la recombinaison CRT pour générer une première valeur s* de la signature finale S est faite par des moyens pour calculer la relation: s* = ap*.sp* + aq*.sq* mod rl. r2.N 23. Dispositif cryptographique selon l'une quelconque des revendications 13 à 22 dans lequel la signature finale S est construite à partir de la recombinaison CRT par des moyens pour calculer une fonction f2 telle que S = s*'G mod N; ou telle que S = [(G.s*)+(1-G)r4] mod N, où r4 est un entier aléatoire. 24. Dispositif cryptographique selon l'une quelconque des revendications 13 à 20, mis en uvre dans une carte à puce.