Brevet FR2864649A1 — publié le 20050701

La présente invention concerne un circuit d'application cryptographique, et plus particulièrement un circuit de calcul d'inverse et un procédé de calcul d'inverse qui sont robustes vis-à-vis d'une forme de décryptage par attaque par temps de calcul et d'une forme de décryptage par attaque par analyse de puissance différentielle (DPA pour "Differential Power Analysis"), et un support d'enregistrement lisible par ordinateur codé avec un code de programme d'ordinateur lisible par ordinateur qui met en uvre le circuit ou le procédé. La cryptographie a été utilisée à l'origine dans les domaines de la défense et de la diplomatie pour éviter la divulgation de secrets nationaux. A l'ère de l'électronique, des institutions financières utilisent depuis longtemps la cryptographie pour gérer le transfert de fonds électroniques. De plus, depuis le temps auquel la cryptographie est entrée en utilisation à l'origine dans les domaines économiques et financiers, elle a été largement utilisée pour l'authentification d'identifica- tion, la gestion de clés de chiffrement, la signature numérique et la vérification d'identité. La négligence dans la gestion de clés de déchiffrement, la prédictibilité de mots de passe ou le relevé d'informations introduites par un clavier dans des réseaux de communication peuvent conduire à une brèche de sécurité sous la forme d'un décryptage au profit d'une personne non autorisée. Ici, le décryptage indique une activité dans laquelle on tente de décrypter un texte chiffré pour donner un texte clair en déterminant une clé qui est utilisée à l'origine pour chiffrer le texte, lorsque toute l'information concernant le système, comme le type d'algorithme utilisé pour chiffrer le texte clair et le système d'exploitation employé, est connue, mais seulement la clé utilisée est inconnue, ainsi qu'un procédé pour tenter de décrypter un texte chiffré pour donner un texte clair en disposant seulement du texte chiffré (ce qu'on appelle une "attaque en force"). Des techniques courantes pour le décryptage comprennent l'attaque à texte chiffré seulement, l'attaque à texte clair connu, l'attaque à texte clair choisi, l'attaque à texte clair choisi de façon adaptative, l'attaque par temps de calcul, et l'attaque par analyse de puissance différentielle (DPA). L'attaque par temps de calcul est un procédé dans lequel on détermine si la valeur d'un bit prédéterminé est 0 ou 1 en utilisant une information liée au temps de calcul d'un algorithme de chiffrement, et on décrypte le texte chiffré sur la base du résultat. L'attaque DPA est un procédé dans lequel conformément à la valeur d'un bit d'entrée, on analyse la quantité de puissance consommée par un algorithme de chiffrement, on obtient les valeurs de bits d'une clé secrète, et ensuite on décrypte le texte chiffré. La cryptographie sur courbe elliptique définie dans un corps fini binaire GF(2n) peut être décomposée en une cryptographie utilisant des coordonnées affines et une cryptographie utilisant des coordonnées projectives. Les coordonnées affines expriment une coordonnée sur une courbe elliptique par (x, y) et les coordonnées projectives expriment une coordonnée sur une courbe elliptique par (X, Y, Z). Par conséquent, la relation entre un point sur une courbe elliptique dans les coordonnées affines et un point sur une courbe elliptique dans les coordonnées projectives est exprimée par l'Equation 1 suivante: (1) L'addition et le doublement figurent parmi les types de calculs qu'on peut effectuer sur une courbe elliptique. On utilise l'addition lorsque deux points qui sont additionnés sont différents, tandis qu'on utilise le doublement lorsque deux points qui sont additionnés sont identiques. Le calcul dans les coordonnées affines définies 5 dans un corps fini binaire (GF(2n)) est exprimé par l'Equation 2 suivante: y2 + xy = x3 + ax2 + b, PO = (x0, Y0). = (xl, Y1), Yo+Yl x0 + xl, si PO P1, = xl + Yl, si PO = P1, xl x2 = a + x2 + x + x0 + xl, Yl = (x1 + x2) x + x2 + Y1 Comme le montre l'Equation 2, l'addition et le doublement sur une courbe elliptique définie dans un corps fini (GF(2n)) sont constitués de calculs (c'est-à-dire l'addition, l'élévation au carré, la multiplication et le calcul d'inverse) de corps fini (GF(2n)). Les nombres et les types de calculs pour effectuer des calculs d'addition et de doublement sur chaque courbe elliptique sont indiqués dans le Tableau 1: Tableau 1 Types de calculs Nombre de calculs Addition de points 1I + 2M + 1S Doublement de points 1I + 2M + 1S Ici, I désigne le calcul d'inverse dans un corps fini (GF(2n)), M désigne la multiplication dans un corps fini (GF(2n)), et S désigne l'élévation au carré dans un corps fini (GF(2n)). Du fait que l'addition dans un corps fini (GF(2n)) peut être réalisée par une opération OU-EX bit par bit, la réalisation de l'addition dans un corps fini (GF(2n)) et la vitesse de l'opération d'addition peuvent être négligées, et par conséquent l'opération d'addition dans un corps fini (GF(2n)) n'est pas incluse dans le Tableau 1. Le calcul d'inverse dans un corps fini (GF(2n)) est une opération qui prend une plus grande partie dans le chiffrement par courbe elliptique, en comparaison avec la multiplication et l'élévation au carré dans un corps fini (GF(2n)). Par conséquent, le calcul dans les coordonnées projectives qui n'exige pas un calcul d'inverse, est quelquefois utilisé pour le chiffrement sur courbe elliptique. Cependant, si l'addition et le doublement sur une courbe elliptique utilisant les coordonnées affines deviennent vulnérables à une attaque par canal latéral, la stabilité du chiffrement par courbe elliptique diminue. La présente invention procure un circuit de calcul d'inverse robuste visà-vis de l'attaque par temps de calcul et de l'attaque par analyse de puissance différentielle (DPA). Selon un aspect de la présente invention, celle-ci procure un circuit de calcul d'inverse. Le circuit comprend un générateur de nombres aléatoires qui génère un premier nombre aléatoire et un second nombre aléatoire. Un inverseur reçoit une multiplicité de premiers bits exprimant un premier élément d'un corps fini, en tant que premières informations d'entrée, et reçoit une multiplicité de seconds bits exprimant un second élément du corps fini, en tant que secondes informations d'entrée. En réponse aux premier et second nombres aléatoires, une multiplicité de troisièmes bits exprimant les éléments inverses du premier élément sont fournis en sortie. Selon un autre aspect de la présente invention, celle-ci procure un procédé de calcul d'inverse comprenant les étapes suivantes on génère un premier nombre aléatoire et un second nombre aléatoire; et on reçoit une multiplicité de premiers bits exprimant un premier élément d'un corps fini, en tant que premières informations d'entrée, on reçoit une multiplicité de seconds bits exprimant un second élément du corps fini en tant que secondes informations d'entrée, et en réponse aux premier et second nombres aléatoires, on fournit en sortie une multiplicité de troisièmes bits exprimant les éléments inverses du premier élément. Selon encore un autre aspect de la présente invention, celle-ci procure un support d'enregistrement lisible par ordinateur sur lequel se trouve un programme d'ordinateur qui met en oeuvre un procédé de calcul d'inverse, comprenant les étapes suivantes: on génère un premier nombre aléatoire et un second nombre aléatoire; et on reçoit une multiplicité de premiers bits exprimant un premier élément d'un corps fini en tant que premières informations d'entrée, on reçoit une multiplicité de seconds bits exprimant un second élément du corps fini en tant que secondes informations d'entrée, et en réponse aux premier et second nombres aléatoires, on fournit en sortie une multiplicité de troisièmes bits exprimant les éléments inverses du premier élément. Le premier nombre aléatoire est généré à un moment qui est postérieur au moment auquel le second nombre aléatoire est généré. Le premier nombre aléatoire est formé de 2 bits et le second nombre aléatoire est plus grand que 2n et inférieur à 3n, n étant le degré du corps fini. Lorsque la multiplicité de premiers bits et la multiplicité de troisièmes bits comprennent n bits, la multiplicité de seconds bits comprend (n+1) bits. Le premier nombre aléatoire empêche une attaque de décryptage par analyse de puissance différentielle (DPA), et le second nombre aléatoire empêche une attaque de décryptage par temps de calcul. Les caractéristiques et avantages de la présente invention mentionnés cidessus, ainsi que d'autres, apparaîtront davantage en décrivant en détail des exemples de modes de réalisation de celle-ci, en référence aux dessins annexés dans lesquels: La figure 1 est un schéma synoptique d'un circuit de calcul d'inverse conforme à un mode de réalisation préféré de la présente invention; et La figure 2 est un schéma de circuit d'un inverseur 10 représenté sur la figure 1. Il est fait référence aux dessins annexés, pour illustrer des modes de réalisation préférés de la présente invention, dans le but de parvenir à une compréhension suffisante de la présente invention, de ses mérites et des objectifs atteints par la mise en oeuvre de la présente invention. Dans ce qui suit, on décrira en détail la présente invention en expliquant des modes de réalisation préférés de l'invention en référence aux dessins annexés. Dans les dessins, chaque fois que le même élément réapparaît dans des dessins suivants, il est désigné par le même numéro de référence. Un algorithme d'inverse de Montgomery dans un corps fini (GF(2n)) est suggéré par E. Savas, C.K. Koc dans un article "Architecture for unified field inversion with application in elliptic cryptography", 9th IEEE Internai Conference on Electronics, Circuit and System. Les étapes accomplies par l'algorithme sont les suivantes: Entrée: a(x) et p(x), avec deg (a (x)) deg (v (x)) then u (x) := (u(x) + v (x / x / (x) := r(x) + s(x) s(x) := xs(x) 7: else v(x) := (v(x) + u (x / x s(x) := s(x) + r(x) / (x) := xr(x) 8: k:= k + 1 9: if deg (r (x)) = deg (p (x)) then r(x) := r(x) + p(x) 10: return r(x) et k Ici, a(x) désigne un élément du corps fini (GF (2n)) , et un polynôme de degré (n-1), et p(x) est un polynôme de degré n pour le calcul à modulo. De plus, r(x) est l'élément inverse de a(x) et est un polynôme de degré (n-1). Le degré (deg (a (x))) de a(x) est inférieur au degré (deg (p (x))) de p(x). L'algorithme d'inverse de Montgomery calcule a (x) -lxk en relation avec l'élément a(x) du corps fini (GF (2n)) . A ce moment, la condition pour k est: deg (a (x) S k S deg (p (x)) + deg (a (x) ) + 1 Ainsi, lorsque n est le degré du corps fini (GF(2n)), k 5_2n. Dans l'algorithme d'inverse de Montgomery, le temps de calcul exigé pour le calcul d'inverse et de k varie en fonction de l'élément a(x) du corps fini (GF (2n)) . Cependant, lorsqu'un élément a(x) d'un corps fini identique (GF(2n)) est appliqué de façon répétée en entrée d'un circuit de calcul d'inverse qui exécute l'algorithme d'inverse de Montgomery, le temps de calcul pour calculer l'inverse de l'élément a(x) est identique. Par conséquent, le circuit de calcul d'inverse est vulnérable à la forme de décryptage par attaque par temps de calcul. Un algorithme de Montgomery perfectionné (qu'on appelle ci- après "Premier algorithme d'inverse de Montgomery") a amélioré l'algorithme de Montgomery classique pour rendre l'algorithme robuste vis- à-vis de l'attaque par temps de calcul. Les étapes du premier algorithme d'inverse de Montgomery sont les suivantes: 1. Entrée: a(x) et p(x), avec deg (a (x)) deg (v (x))) then u(x) (u(x) + v (x)) /x r(x) r(x) + s(x) s(x) x.s(x) 4.1.4 else v(x) (v(x) + u (x)) /x s(x) .s(x) + r(x) r(x) x.r(x) 4. 2 else 4.2.1 if (rn = 1) r(x) Par conséquent, l'étape 4.2 effectue un calcul d'inverse jusqu'à ce que k soit égal au nombre aléatoire (m) défini à l'étape 4, de façon que dans le premier algorithme d'inverse de Montgomery, le temps pour calculer l'élément inverse pour la valeur d'entrée varie même pour une valeur d'entrée identique (par exemple un élément de corps fini (GF(2'')) dont on désire obtenir les éléments inverses. Par conséquent, le premier algorithme d'inverse de Montgomery est plus robuste contre le décryptage sous la forme d'une attaque par temps de calcul. A ce moment, dans l'algorithme d'inverse de Montgomery, k de a (x) -1xk est un nombre inférieur à 2n, et dans le premier algorithme d'inverse de Montgomery, k de a(x)-lxm est un nombre inférieur à 3n. Du fait que dans le premier algorithme d'inverse de Montgomery, l'étape 4. 2 est effectuée seulement après que l'étape 4.1 s'est terminée, la relation entre a(x)-lxk et a (x) -lxm est. a (x) -1xm = a (x) -lxkx (m-k) Par conséquent, le premier algorithme d'inverse de Montgomery effectue toujours l'étape 4.1 avant que v(x) ne devienne égal à 0. Pour cette raison, le premier algorithme d'inverse de Montgomery est vulnérable à une attaque DPA. Dans une approche conforme à la présente invention, qu'on appelle ici un "second algorithme d'inverse de Montgomery", le premier algorithme d'inverse de Montgomery est amélioré de façon à être robuste à la fois contre l'attaque par temps de calcul et l'attaque DPA. Dans un mode de réalisation, le second algorithme d'inverse de Montgomery de la présente invention fonctionne de la façon suivante: 1. Entrée a (x) et p (x) , avec deg (a (x)) deg (v (x))) then u(x) (u(x) + v (x)) /x r(x) r(x) + s(x) s(x) x.s(x) 4.2.4 else v(x) (v(x) + u (x)) /x s(x) s(x) + r(x) r(x) x.r(x) 4.3 else 4.3.1 if (rn = 1) r(x) r(x) + p(x) 4.3.2 r(x) x.r(x) 4.3.3 if (sn = 1) s(x) s(x) + p(x) 4.3.4 s(x) x.s(x) 4.4 k k + 1 5. if (deg (r (x)) = deg (p (x))) r(x) r(x) + p(x) 6 SORTIE r(x), k Le second algorithme d'inverse de Montgomery conforme à la présente invention introduit un nombre aléatoire (R). Le nombre aléatoire (R) a une valeur entière arbitraire entre 0 et 3 à chaque itération. Lorsque v(x) n'est pas égal à 0 et que le nombre aléatoire R n'est pas égal à 0, l'étape 4.2 est effectuée. De plus, lorsque v(x) n'est pas égal à 0 et que R est égal à 0, l'étape 4. 3 est effectuée. Par conséquent, le second algorithme d'inverse de Montgomery conforme à la présente invention n'effectue pas une opération identique pour une valeur d'entrée identique. Du fait que le nombre aléatoire (R) a une valeur arbitraire entre 0 et 3, et du fait que l'étape 4.3 est effectuée seulement lorsque v(x) n'est pas égal à 0 et que R est égal à 0, la probabilité que l'étape 4.3 soit effectuée est 1/4. Si le nombre aléatoire (R) est choisi de façon à avoir une valeur aléatoire de 0 ou 1, les étapes 4.2 et 4.3 sont effectuées avec une probabilité égale de 1/2. Le circuit de calcul d'inverse conforme à la présente invention met en oeuvre le second algorithme d'inverse de Montgomery et on va maintenant l'expliquer en détail en référence aux figures 1 et 2. La figure 1 est un schéma synoptique d'un circuit de calcul d'inverse conforme à un mode de réalisation préféré de la présente invention. En se référant à la figure 1, on note que le 15 circuit de calcul d'inverse 100 comprend un inverseur 200 et un générateur de nombres aléatoires 400. Le générateur de nombres aléatoires 400 génère un premier nombre aléatoire (R) et un second nombre aléatoire (m). Le premier nombre aléatoire (R) a pour fonction d'empêcher la forme de décryptage consistant en une attaque DPA. Du fait que, dans cet exemple, la plage du premier nombre aléatoire (R) généré par le générateur de nombres aléatoires 400 conforme à la présente invention va de 0 à 3, la valeur du premier nombre aléatoire (R) peut être exprimée par 2 bits. Cependant, la plage du premier nombre aléatoire (R) conforme à la présente invention n'est pas limitée à la plage de 0 à 3, et par conséquent elle peut comprendre un plus petit nombre ou un plus grand nombre de bits. Le second nombre aléatoire (m) a pour fonction d'empêcher la forme de décryptage par attaque par temps de calcul. Dans un mode de réalisation, le second nombre aléatoire (m) est supérieur à 2n et inférieur à 3n. Ici, n désigne le degré du corps fini (GF(2n)). Dans un mode de réalisation, le premier nombre aléatoire est généré à un instant qui est postérieur à l'instant auquel le second nombre aléatoire est généré. L'inverseur 200 reçoit a(x) et p(x) et, en réponse aux premier et second nombres aléatoires (R) et (m), il fournit en sortie r(x). Ici, a(x) désigne un élément du corps fini (GF(2n)) dont on désire obtenir des éléments inverses. a(x) est un polynôme de degré (n-1) et est exprimé par n bits. p(x) est un polynôme de degré n pour le calcul à modulo et est exprimé par (n+1) bits. r(x) désigne un élément inverse et est un polynôme de degré (n-1) et est exprimé par n bits. La figure 2 est un schéma de circuit de l'inverseur 200 représenté sur la figure 1. On va maintenant expliquer en détail la structure et le fonctionnement de l'inverseur 200 en référence aux figures 1 et 2, et en référence au second algorithme d'inverse de Montgomery. Les registres 201, 203, 205 et 207 stockent respectivement u (x) , v (x) , s (x) et r (x) . Chacun des registres à décalage à droite 209, 211 et 213 reçoit des données d'entrée respectives, décale les données d'un bit vers la droite, et stocke un 0 dans des bits les plus significatifs (MSB) respectifs. Par exemple, dans le cas où des données de sortie du registre 201 sont 00011, le registre de décalage à droite 209 reçoit 00011 et fournit en sortie 00001. Le registre de décalage à droite 215 reçoit des données d'entrée, décale les données d'un bit vers la droite, et stocke un 1 dans le MSB. Par conséquent, si les données de sortie du registre 233 sont 11000, le registre à décalage à droite 215 reçoit 11000 et fournit en sortie 11100. Les registres de décalage à gauche 217, 219, 221 et 223 reçoivent des données d'entrée respectives, décalent les données d'un bit vers le côté gauche, et stockent 0 dans les bits les moins significatifs (LSB) respectifs. Chacune des portes OU-EX 225, 227, 231 et 229 effectue une opération OUEX bit par bit entre les deux données d'entrée. Par exemple, la porte OUEX 225 effectue une opération OU-EX bit par bit entre des données émises par le registre 201 et des données émises par le registre 203. Le registre 233 fonctionne de façon à stocker le degré du corps fini (GF (2n)) , et il est fixé à 1000...0 au stade initial. En supposant que u(x) soit le corps fini (GF (2n)) et que degU(s) soit (degUn, degUn_l, ..., degU1, degUO), alors degUn = 1, et degUn_1 = degU1 = degUo = O. Le circuit ET 235 reçoit les données de sortie des registres 203 et 233, et effectue une opération ET bit par bit entre elles. Une unité logique de commande 300 génère des signaux de commande sur la base du bit le moins significatif LSB(u0) du registre 201, du bit le moins significatif LSB(vo) du registre 203, du bit le plus significatif MSB(rn) du registre 207, et du signal de sortie du circuit ET 235. Chacun des signaux de commande est appliqué à une unité correspondante parmi les multiplexeurs 237, 239, 241 et 243, et les registres 201, 203, 205 et 207. Les registres 201, 203, 205 et 207 actualisent des données stockées en réponse à des signaux de commande respectifs. L'inverseur 200 de la figure 2 met en oeuvre le second algorithme d'inverse de Montgomery et on va maintenant expliquer des étapes respectives et des circuits correspondants. L'étape 4.2.1 est accomplie par le registre 209 et le multiplexeur 237, et le registre 217 et le multiplexeur 241. L'étape 4.2.2 est accomplie par le registre 213 et le multiplexeur 239, et le registre 219 et le multiplexeur 243. A l'étape 4.2.3, l'opération u(x) , (u(x) + v(x))/x est réalisée par la porte OU-EX (XOR1) 225, le registre à décalage à droite (RSHT2) 211 et le multiplexeur (MUX1) 237, l'opération r(x) .- r(x) + s(x) est réalisée par la porte OU-EX (XOR2) 227 et le multiplexeur (MUX1) 243, et l'opération s(x) .- x.s(x) est réalisée par le registre à décalage à gauche 217 et le multiplexeur (MUX3) 241. A l'étape 4.2.4, l'opération v(x) (v(x) + u(x))/x est réalisée par la porte OU-EX (XOR1) 225, le registre à décalage à droite 211 et le multiplexeur (MUX2) 239, l'opération s(x) É- s(x) + r(x) est réalisée par la porte OU-EX (XOR2) 227 et le multiplexeur (MUX3) 241, et l'opération r(x) x.r(x) est réalisée par le registre à décalage à gauche 219 et le multiplexeur (MUX4) 243. Les étapes 4.3.1 et 4.3.2 sont accomplies par la porte OU-EX (XOR3) 231, le registre à décalage à gauche 219, le registre à décalage à gauche 221 et le multiplexeur (MUX4) 243. Les étapes 4.3.3 et 4.3.4 sont accomplies par les registres à décalage à gauche 217 et 223, et le multiplexeur (MUX3) 241. A l'étape 4.2.3, deg (u (x)) > deg (v (x)) est réalisé par le registre 233 et le circuit ET 235, de la manière 20 suivante. Lorsqu'un calcul commence, des données stockées dans le registre 233 sont 100...0. Chaque fois que l'opération u(x) (u(x) + v (x)) /x de l'étape 4. 2.1 ou de l'étape 4.2.3 est effectuée et des données stockées dans le registre 201 sont actualisées, le degré de u(x) diminue. Chaque fois que le degré diminue, le registre 233 reçoit et stocke les données de sortie du registre 215. A ce moment, si le degré de u(x) est supérieur au degré de v(x), des données à stocker dans le circuit ET 235 sont 000_0. Par exemple, en supposant que dans le corps fini (GF(24)), des données stockées dans le registre 233 au stade initial soient (10000) et que v(x) soit (00111), le degré de v(x) est 2. Si l'étape 4.2.1 est accomplie et les données stockées dans le registre 201 sont actualisées, le degré de u(x) est 3. A ce moment, des données du registre 233 sont (11000). Si une opération ET est effectuée par le circuit ET 235, le résultat est (00000). Dans ce cas, le degré de u(x) est 3, et le degré de v(x) est 2. Si l'étape 4.2.1 est accomplie à nouveau, le degré de u(x) devient 2, et (11100) est stocké dans le registre 233. A ce moment, (00100) est stocké dans le circuit ET 235. L'unité logique de commande 300 accomplit l'étape 4.2.4 en utilisant l'information stockée. Le circuit de calcul d'inverse conforme à la présente invention peut être appliqué à n'importe lequel d'un certain nombre d'appareils qui emploient une technologie de chiffrement, comme une carte à puce, ou d'autres formes de supports de stockage. Comme décrit ci-dessus, le circuit de calcul d'inverse, le procédé de calcul d'inverse et le support d'enregistrement codé avec un programme d'ordinateur lisible par ordinateur conformes à la présente invention sont robustes vis-à-vis à la fois de la forme de décryptage par attaque par temps de calcul et de la forme de décryptage par attaque DPA. Bien que la présente invention ait été spécialement représentée et décrite en référence à des exemples de modes de réalisation de celle-ci, l'homme de l'art notera que divers changements de forme et de détail peuvent y être apportés sans sortir de l'esprit et du cadre de la présente invention, tels qu'ils sont définis par les revendications suivantes. REVENDICATIONS 1. Circuit de calcul d'inverse, caractérisé en ce qu'il comprend: un générateur de nombres aléatoires (400) qui génère un premier nombre aléatoire (R) et un second nombre aléatoire (m); et un inverseur (200) qui reçoit une multiplicité de premiers bits exprimant un premier élément (a(x)) d'un corps fini en tant que premières informations d'entrée, et qui reçoit une multiplicité de seconds bits exprimant un second élément (p(x)) du corps fini en tant que secondes informations d'entrée, et qui, en réponse au premier nombre aléatoire (R) et au second nombre aléatoire (m), fournit en sortie une multiplicité de troisièmes bits exprimant des éléments inverses (r(x)) du premier élément. 2. Circuit de calcul d'inverse selon la revendication 1, caractérisé en ce que le premier nombre aléatoire (R) est généré postérieurement à la génération du second nombre aléatoire (m). 3. Circuit de calcul d'inverse selon la revendication 1, caractérisé en ce que le premier nombre 20 aléatoire (R) comprend 2 bits. 4. Circuit de calcul d'inverse selon la revendication 1, caractérisé en ce que le second nombre aléatoire (m) est supérieur à 2n et inférieur à 3n, en désignant par n le degré du corps fini. 5. Circuit de calcul d'inverse selon la revendication 1, caractérisé en ce que la multiplicité de premiers bits et la multiplicité de troisièmes bits comprennent n bits, et la multiplicité de seconds bits comprend (n+1) bits. 6. Circuit de calcul d'inverse selon la revendication 1, caractérisé en ce que le premier nombre aléatoire (R) empêche une attaque de décryptage par analyse de puissance différentielle (DPA), et en ce que le second nombre aléatoire (m) empêche une attaque de décryptage par temps de calcul. 7. Procédé de calcul d'inverse, caractérisé en ce qu'il comprend la génération d'un premier nombre aléatoire (R) et d'un second nombre aléatoire (m); et la réception d'une multiplicité de premiers bits exprimant un premier élément (a(x)) d'un corps fini, en tant que premières informations d'entrée, la réception d'une multiplicité de seconds bits exprimant un second élément (p(x)) du corps fini, en tant que secondes informations d'entrée, et en réponse au premier nombre aléatoire (R) et au second nombre aléatoire (m), l'émission d'une multiplicité de troisièmes bits exprimant des éléments inverses (r(x)) du premier élément (a(x)). 8. Procédé selon la revendication 7, caractérisé en ce que le premier nombre aléatoire (R) empêche une attaque de décryptage par analyse de puissance différentielle (DPA), et en ce que le second nombre aléatoire (m) empêche une attaque de décryptage par temps de calcul. 9. Support d'enregistrement lisible par ordinateur sur lequel est incorporé un programme d'ordinateur qui met en oeuvre un procédé de calcul d'inverse, caractérisé en ce qu'il comprend la génération d'un premier nombre aléatoire (R) et d'un second nombre aléatoire (m); et la réception d'une multiplicité de premiers bits exprimant un premier élément (a(x)) d'un corps fini, en tant que premières informations d'entrée, la réception d'une multiplicité de seconds bits exprimant un second élément (p(x)) du corps fini, en tant que secondes informations d'entrée, et en réponse au premier nombre aléatoire (R) et au second nombre aléatoire (m), l'émission d'une multiplicité de troisièmes bits exprimant des éléments inverses (r (x)) du premier élément (a(x)). 10. Support d'enregistrement lisible par ordinateur selon la revendication 9, caractérisé en ce que le premier nombre aléatoire (R) est généré à un moment qui est postérieur au moment auquel le second nombre aléatoire (m) est généré. 11. Support d'enregistrement lisible par ordinateur selon la revendication 9, caractérisé en ce que le premier nombre aléatoire (R) comprend 2 bits. 12. Support d'enregistrement lisible par ordinateur selon la revendication 9, caractérisé en ce que le second nombre aléatoire (m) est supérieur à 2n et inférieur à 3n, en désignant par n le degré du corps fini. 13. Support d'enregistrement lisible par ordinateur selon la revendication 9, caractérisé en ce que lorsque la multiplicité de premiers bits et la multiplicité de troisièmes bits comprennent n bits, la multiplicité de seconds bits comprend (n+l) bits. 14. Support d'enregistrement lisible par ordinateur selon la revendication 9, caractérisé en ce que le premier nombre aléatoire (R) empêche une attaque de décryptage par analyse de puissance différentielle (DPA), et en ce que le second nombre aléatoire (m) empêche une attaque de décryptage par temps de calcul.