FR2865086A1 - Ciphered message converting device for use in cryptographic system, has message establishing unit producing deciphered message from auxiliary message, and difference between ciphered message and result of conversion of auxiliary message - Google Patents

Ciphered message converting device for use in cryptographic system, has message establishing unit producing deciphered message from auxiliary message, and difference between ciphered message and result of conversion of auxiliary message Download PDF

Info

Publication number
FR2865086A1
FR2865086A1 FR0500259A FR0500259A FR2865086A1 FR 2865086 A1 FR2865086 A1 FR 2865086A1 FR 0500259 A FR0500259 A FR 0500259A FR 0500259 A FR0500259 A FR 0500259A FR 2865086 A1 FR2865086 A1 FR 2865086A1
Authority
FR
France
Prior art keywords
message
auxiliary
group
numbers
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0500259A
Other languages
French (fr)
Other versions
FR2865086B1 (en
Inventor
Wieland Fischer
Jean Pierre Seifert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of FR2865086A1 publication Critical patent/FR2865086A1/en
Application granted granted Critical
Publication of FR2865086B1 publication Critical patent/FR2865086B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Abstract

The device has a key establishing unit (14) establishing an auxiliary public key that combines with a private key to form keys of an asymmetric encryption system. Message difference establishing unit (16) creates a difference between a ciphered message and a result of conversion of an auxiliary message using the public key. A message establishing unit (18) produces a deciphered message from the difference and the auxiliary message. Independent claims are also included for the following: (A) a message converting process (B) a computer program having program codes for executing a message converting method.

Description

Dispositif et procédé pour convertir un premier message en un deuxièmeDevice and method for converting a first message to a second

message La présente invention concerne des systèmes asymétriques de cryptographie, en particulier des systèmes asymétriques de cryptographie protégés des attaques liées aux erreurs.  The present invention relates to asymmetric cryptographic systems, particularly asymmetric cryptographic systems protected from error-related attacks.

On a constaté ces derniers temps que les attaques DFA (DFA: Differential Fault Analysis, analyse différentielle des erreurs) attaquent io très efficacement les systèmes de cryptographie. Dans les systèmes RSA qui utilisent le théorème du reste chinois (TRC; CRT: Chinese Remainder Theorem) pour l'élévation modulaire à une puissance, on a en particulier démontré qu'il suffit déjà d'une seule sortie " incorrecte " due à une attaque DFA pour " découvrir " la clé secrète, par exemple lors du calcul d'une signature. D'autre part, dans le cas de l'algorithme RSA, l'élévation modulaire à une puissance est de préférence calculée à l'aide du TRC puisqu'on peut obtenir une grande efficacité de calcul en particulier pour de grands modules. L'algorithme RSA qui sert à chiffrer des messages ou déchiffrer des messages ou à calculer une signature est décrit dans son application avec ou sans TRC dans le " Handbook of Applied Cryptography " d'A. Menezes et al., CRC Press, 1996. Tandis que pour calculer efficacement l'élévation modulaire à une puissance sans TRC on a besoin d'unités de calcul dont la largeur est au moins aussi grande que le module, dans le cas de l'algorithme RSA du TRC un calcul est possible à l'aide d'une unité de calcul dont le nombre de cellules élémentaires est prédéfini, dont la longueur est donc prédéfinie, et dans laquelle le module (et donc la clé) est presque deux fois plus long que l'unité de calcul. Ceci est particulièrement important pour des applications RSA puisqu'ici à mesure que la longueur de la clé augmente on est d'autant mieux protégé de ce qu'on appelle des " attaques de force brute " dans lesquelles les possibilités sont es- sayées les unes après les autres.  It has recently been noted that DFA (Differential Fault Analysis) attacks very effectively attack cryptographic systems. In RSA systems that use the Chinese Remainder Theorem (TRC) for modular elevation at power, it has been shown in particular that a single "incorrect" output due to DFA attack to "discover" the secret key, for example when calculating a signature. On the other hand, in the case of the RSA algorithm, the modular power rise is preferably calculated using the TRC since high computational efficiency can be obtained particularly for large modules. The RSA algorithm that is used to encrypt messages or decrypt messages or to calculate a signature is described in its application with or without TRC in A's "Handbook of Applied Cryptography". Menezes et al., CRC Press, 1996. While in order to effectively compute the modular elevation at non-TRC power, computational units are needed whose width is at least as large as the modulus, in the case of TRC RSA algorithm a calculation is possible using a calculation unit whose number of elementary cells is predefined, whose length is thus predefined, and in which the module (and therefore the key) is almost twice as much long as the computing unit. This is particularly important for RSA applications since here as the length of the key increases one is better protected from so-called "brute force attacks" in which the possibilities are tried out. after others.

Une attaque DFA part de l'idée d'exposer la puce de cryptographie à une situation extrême pendant qu'elle exécute un calcul cryptographique, de sorte que le résultat de la puce de cryptographie est erroné. Une telle mesure consiste par exemple à exposer la puce pendant qu'elle cal- cule à une forte contrainte mécanique, à un fort rayonnement électromagnétique ou à une succession d'impulsions optiques, etc. de telle manière que par exemple des contenus du registre de la puce deviennent faux ou que des gril-les à l'intérieur de la puce ne remplissent plus leur fonction spécifique mais une autre; il en résulte que le résultat est faux.  A DFA attack is based on the idea of exposing the cryptographic chip to an extreme situation while executing a cryptographic computation, so that the result of the cryptographic chip is erroneous. Such a measure consists, for example, in exposing the chip as it calculates to a high mechanical stress, to a strong electromagnetic radiation or to a succession of optical pulses, etc. in such a way that, for example, contents of the chip register become false or that grids inside the chip no longer fulfill their specific function but another one; it follows that the result is false.

On a montré qu'un tel résultat faux était certes faux mais qu'il y a encore tant d'informations sur le secret qui fait l'objet de l'algorithme, comme par exemple la clé de chiffrement dans le cas d'un système symétrique de cryptographie ou la clé privée dans le cas d'un système asymétrique de cryptographie qu'il est possible de mener une attaque DFA efficace.  We have shown that such a false result was certainly false but that there is still so much information on the secret that is the subject of the algorithm, such as the encryption key in the case of a system. Symmetric cryptography or the private key in the case of an asymmetric cryptographic system makes it possible to conduct an efficient DFA attack.

Des mesures défensives contre de telles attaque DFA consistent dans le cas le plus simple à exécuter deux fois chaque calcul cryptographique: le résultat du premier calcul cryptographique est alors comparé au résultat (identique) du deuxième calcul cryptographique. On réalise une interrogation en fonction de cette comparaison: on fournit une sortie au cas (souhaité) où les deux résultats sont identiques tandis qu'on empêche une sortie au cas où les deux résultats sont différents ou du moins un message d'alarme apparaît. Le coeur de cette mesure défensive consiste donc à empêcher toute sortie au cas où on soupçonne une erreur, de sorte qu'un agresseur n'obtiendra aucune sortie de puce s'il a mené une attaque DFA et qu'il ne peut par conséquent pas tirer de conclusions sur le secret qui fait l'objet de l'algorithme.  Defensive measures against such a DFA attack consist in the simplest case to execute twice each cryptographic calculation: the result of the first cryptographic calculation is then compared to the (identical) result of the second cryptographic calculation. An inquiry is carried out according to this comparison: an output is provided to the case (desired) where the two results are identical while an output is prevented in the case where the two results are different or at least one alarm message appears. The heart of this defensive measure is therefore to prevent any escape in the case of suspicion of an error, so that an attacker will not get a chip exit if he has conducted a DFA attack and therefore can not draw conclusions about the secret that is the subject of the algorithm.

La mesure défensive précédente contre des attaques DFA pose problème dans la mesure où elle suppose que la puce ne fait pas la même erreur en réalisant deux fois le calcul. Une telle attaque ne serait pas reconnue.  The previous defensive measure against DFA attacks is problematic in that it assumes that the chip does not make the same mistake by performing the calculation twice. Such an attack would not be recognized.

D'autres mesures consistent à équiper la puce de cryptographie de capteurs de tension, de capteurs de rayonnement, de capteurs de température, etc. pour qu'on puisse directement détecter d'éventuelles attaques extérieures sur la puce afin de pouvoir ensuite empêcher une sortie si une attaque est détectée.  Other measures include equipping the cryptographic chip with voltage sensors, radiation sensors, temperature sensors, etc. to be able to directly detect any external attacks on the chip so that you can then prevent an exit if an attack is detected.

Comme les scénarios d'attaque et le nombre de capteurs qui leur sont liés sont très différents, il n'est pas toujours possible de réaliser une telle mesure défensive ou alors seulement en partie.  As the attack scenarios and the number of sensors connected to them are very different, it is not always possible to make such a defensive measure or only partly.

Encore d'autres mesures défensives consistent à observer io ou à comparer les uns aux autres des résultats intermédiaires à l'intérieur d'un algorithme cryptographique (assez long). Il existe souvent à l'intérieur d'un algorithme des dépendances qui demandent déjà avant la sortie un certain nombre de résultats intermédiaires qui doivent avoir une certaine relation indépendamment des données à chiffrer ou de la clé. Si on établit que les résul- tats intermédiaires qui doivent avoir une certaine relation lorsque l'algorithme se déroule correctement n'ont pas cette relation, on peut en conclure qu'une attaque est en cours. Dans ce cas, on exécute de nouveau un branchement " si ", c'est-à-dire un saut conditionnel (conditional jump) : on réalise par conséquent une sortie si l'interrogation donne le résultat escompté tandis que, si le résultat diffère des prévisions, la sortie est bloquée ou des messages d'erreur, des interruptions, etc. avertissent par exemple un système d'exploitation qu'une attaque DFA est (sans doute) en cours.  Yet other defensive measures consist in observing or comparing intermediate results with each other within a cryptographic algorithm (quite long). There are often dependencies inside an algorithm that already require a certain number of intermediate results before the output that must have a certain relationship regardless of the data to be encrypted or the key. If we establish that the intermediate results that must have a certain relation when the algorithm is running correctly do not have this relation, we can conclude that an attack is in progress. In this case, we execute again an "if" connection, that is to say a conditional jump: we consequently realize an exit if the interrogation gives the expected result whereas, if the result differs Forecasts, output is blocked or error messages, interrupts, etc. for example, warn an operating system that a DFA attack is (probably) in progress.

On pare à des attaques DFA sur des systèmes de cryptographie, comme par exemple des systèmes RSA, sur des systèmes symétri- ques comme DES, AES, etc. et sur d'autres systèmes de cryptographie à courbes elliptiques en ce sens qu'on vérifie d'une façon ou d'une autre l'exactitude et que dans le cas d'une erreur on empêche l'émission d'un mes-sage mal chiffré ou d'une signature erronée, par exemple d'une carte à mémoire. Le problème de cette mesure défensive est cependant le branchement " si ". Si un agresseur était en mesure de perturber cette vérification décisive de l'erreur, donc le saut conditionnel, un message mal chiffré ou une " signature " erronée serait émis et l'agresseur mènerait ainsi à bien une attaque DFA.  DFA attacks on cryptographic systems, such as RSA systems, on symmetric systems such as DES, AES, etc., are avoided. and on other elliptic curve cryptography systems in that one way or another the accuracy is checked and that in the case of an error the emission of a mes-sage is prevented badly encrypted or an incorrect signature, for example a memory card. The problem with this defensive measure, however, is the "if" connection. If an attacker was able to disrupt this decisive check of the error, so the conditional jump, a badly encrypted message or an erroneous "signature" would be issued and the attacker would thus carry out a DFA attack.

Le but de la présente invention est de procurer une meilleure conception pour convertir un premier message en un deuxième mes- sage au sens d'une signature ou d'un déchiffrement, cette conception étant plus sûre contre des attaques DFA.  The object of the present invention is to provide a better design for converting a first message into a second message in the sense of a signature or decryption, this design being more secure against DFA attacks.

On atteint ce but par un dispositif pour convertir un premier message en un deuxième message en utilisant un système asymétrique de cryptographie qui comprend une clé publique, une clé privée, une première opération de crypto- io graphie réalisable à l'aide de la clé privée et une deuxième opération de cryptographie réalisable à l'aide de la clé publique, le premier message étant défi-ni dans un premier groupe de nombres, caractérisé par: - une installation pour convertir le premier message en un deuxième mes- sage auxiliaire en utilisant la première opération de cryptographie, la clé privée et un paramètre auxiliaire (t), de sorte que le deuxième message auxiliaire est défini dans un deuxième groupe de nombres, une installation pour établir une clé auxiliaire publique, l'installation d'établissement étant conçue pour établir la clé auxiliaire publique de telle manière qu'elle forme, conjointement avec la clé privée dans un troisième groupe de nombres qui est défini par le paramètre auxiliaire, une paire de clés du système de chiffrement asymétrique, une installation pour établir une différence à partir du premier message et d'un résultat d'une conversion du deuxième message auxiliaire en utilisant la deuxième opération de cryptographie et la clé auxiliaire publique en se référant au troisième groupe de nombres, et une installation pour calculer le deuxième message en utilisant la différence et le deuxième message auxiliaire et par un procédé pour convertir un premier message en un deuxième message en utilisant un système asymétrique de cryptographie qui comprend une clé publique, une clé privée, une première opération de cryptographie réalisable à l'aide de la clé privée et une deuxième opération de cryptographie réalisable à l'aide de la clé publique, le premier message étant défini dans un premier groupe de nombres, caractérisé en ce qu'il comporte les étapes suivantes: convertir le premier message en un deuxième message auxiliaire en utilisant la première opération de cryptographie, la clé privée et un paramètre auxiliaire (t), de sorte que le deuxième message auxiliaire est défini dans un deuxième groupe de nombres, établir une clé auxiliaire publique, l'installation d'établissement étant conçue pour établir la clé auxiliaire publique de telle manière que, conjointement avec la clé privée dans un troisième groupe de nombres qui sont io définis par le paramètre auxiliaire, elle forme une paire de clés du système asymétrique de chiffrement, établir une différence à partir du premier message et d'un résultat issu d'une conversion du deuxième message auxiliaire en utilisant la deuxième opération de cryptographie et la clé auxiliaire publique en se référant au troisième groupe de nombres, et calculer le deuxième message en utilisant la différence et le deuxième mes-sage auxiliaire ou par un programme informatique comportant un code de programme pour exécuter le procédé suivant l'invention lorsque le programme informatique tourne sur un ordinateur.  This is achieved by a device for converting a first message to a second message using an asymmetric cryptographic system which includes a public key, a private key, a first cryptographic operation that can be performed using the private key. and a second cryptographic operation obtainable using the public key, the first message being defi ne in a first group of numbers, characterized by: - an installation for converting the first message to a second auxiliary message using the first cryptographic operation, the private key and an auxiliary parameter (t), so that the second auxiliary message is defined in a second group of numbers, an installation for establishing a public auxiliary key, the facility facility being designed to establish the public auxiliary key in such a way that it forms, together with the private key in a third group of n shadows which is defined by the auxiliary parameter, a pair of keys of the asymmetric encryption system, an installation for establishing a difference from the first message and a result of a conversion of the second auxiliary message using the second cryptographic operation and the public auxiliary key by referring to the third group of numbers, and an installation for calculating the second message using the difference and the second auxiliary message and by a method for converting a first message to a second message using an asymmetric system of cryptography which comprises a public key, a private key, a first cryptographic operation that can be performed using the private key and a second cryptographic operation that can be performed using the public key, the first message being defined in a first group of numbers, characterized in that it comprises the following steps: converting the first message into a second auxiliary message using the first cryptographic operation, the private key and an auxiliary parameter (t), so that the second auxiliary message is defined in a second group of numbers, establish a public auxiliary key, the establishment facility being designed to establish the public auxiliary key such that, together with the private key in a third group of numbers which are defined by the auxiliary parameter, it forms a key pair of the asymmetric encryption system, establishing a difference from the first message and a result from a conversion of the second auxiliary message using the second cryptographic operation and the public auxiliary key by referring to the third group of numbers, and calculating the second message using the difference and the second auxiliary mes-sage or by a computer program featuring u n program code for executing the method according to the invention when the computer program runs on a computer.

Pour effectuer une conversion, par exemple pour produire une signature ou un message déchiffré à partir d'un message chiffré, conformément à l'invention, donc lors d'une opération de cryptographie qui utilise la clé privée du système asymétrique de cryptographie, un premier message est converti en un deuxième message auxiliaire, le deuxième message auxiliaire étant par exemple une signature. D'après l'invention, le premier message n'est cependant pas directement converti en le deuxième message mais justement en le deuxième message auxiliaire, le deuxième message auxiliaire se distinguant du deuxième message réellement recherché, donc de la signature, en ce que le deuxième message auxiliaire est une signature qui est définie par rapport à un autre groupe de nombres que le premier message (originel). Le deuxième message auxiliaire est maintenant en quelque sorte reconverti, donc par exemple à l'aide d'un algorithme de vérification dans lequel on utilise la clé publique. La clé publique utilisée n'est cependant pas la clé publique originelle mais la clé publique qui correspond à la clé privée originelle dans un troisième espace de nombres, c'est-à-dire dans un troisième groupe de nom- bres, et qui doit d'abord être calculée ou recherchée dans une mémoire. Le résultat de ce calcul de vérification se trouve donc dans un troisième groupe de nombres. Le message originel est en outre également transformé dans le troisième groupe de nombres, à savoir par une règle de transformation qui reproduit le groupe de nombres originel, donc le premier, dans le troisième io groupe de nombres. On calcule maintenant une différence dans ce troisième groupe de nombres.  To perform a conversion, for example to produce a signature or message decrypted from an encrypted message, according to the invention, so during a cryptographic operation that uses the private key of the asymmetric cryptosystem, a first message is converted into a second auxiliary message, the second auxiliary message being for example a signature. According to the invention, however, the first message is not directly converted into the second message but precisely into the second auxiliary message, the second auxiliary message being distinguished from the second message actually sought, therefore from the signature, in that the second auxiliary message is a signature that is defined with respect to another group of numbers than the first (original) message. The second auxiliary message is now somehow reconverted, so for example using a verification algorithm in which the public key is used. However, the public key used is not the original public key but the public key that corresponds to the original private key in a third number space, that is to say in a third group of numbers, and which must first be calculated or searched for in a memory. The result of this verification calculation is therefore in a third group of numbers. The original message is furthermore also transformed into the third group of numbers, namely by a transformation rule which reproduces the original group of numbers, and therefore the first, into the third group of numbers. We now calculate a difference in this third group of numbers.

S'il y a eu une attaque DFA pendant l'opération de calcul, les valeurs des " partenaires de la différence " sont différentes. Si par contre il n'y a pas eu d'attaque DFA (ni d'autre erreur), les partenaires de la différence sont égaux et la différence elle-même est 0. On calcule ensuite en utilisant cette différence la signature effectivement recherchée, à savoir le deuxième message, à partir du deuxième message auxiliaire qui est déjà la signature recherchée mais qui se trouve encore dans un autre espace de nombres. On tient compte du résultat de la différence pour ce calcul final, à savoir de telle manière que s'il n'y a pas eu d'attaque ni d'erreur, la différence qui est alors 0 n'a pas d'effet sur le calcul final, abstraction faite de la transformation dans le groupe de nombres qu'on recommande d'exécuter. Si par contre il y a eu une attaque DFA ou toute autre erreur de calcul, le calcul final est réalisé de telle manière que la différence qui est alors autre que 0 influence fortement le résultat.  If there was a DFA attack during the calculation operation, the values of the "difference partners" are different. If, on the other hand, there has been no DFA attack (or other error), the difference partners are equal and the difference itself is 0. Then, using this difference, the signature actually sought is calculated. namely the second message, from the second auxiliary message which is already the desired signature but which is still in another space of numbers. The result of the difference is taken into account for this final calculation, ie in such a way that if there has been no attack or error, the difference which is then 0 has no effect on the final calculation, disregarding the transformation in the group of numbers that is recommended to execute. If, on the other hand, there has been a DFA attack or any other calculation error, the final calculation is done in such a way that the difference which is then other than 0 strongly influences the result.

On utilise ici de préférence la même règle de calcul que celle qu'on utilise aussi pour une opération de cryptographie. Pour prendre l'exemple de l'algorithme RSA connu, c'est une élévation à une puissance; il est alors tout à fait évident que les nombres seront considérablement modifiés si la différence sert d'exposant dans le cas où la différence est autre que 0 puisque la fonction exponentielle présente ici un gradient particulièrement élevé.  The same calculation rule is preferably used here as is also used for a cryptographic operation. To take the example of the known RSA algorithm, it is an elevation to a power; it is then quite obvious that the numbers will be considerably modified if the difference serves as an exponent in the case where the difference is other than 0 since the exponential function here has a particularly high gradient.

Si par contre le système de cryptographie est un système asymétrique de cryptographie à courbes elliptiques, l'opération qui sert à cal- culer le deuxième message à partir du deuxième message auxiliaire est une multiplication, à savoir la multiplication d'un point situé sur la courbe elliptique par un paramètre.  If, on the other hand, the cryptographic system is an asymmetrical system of elliptic curve cryptography, the operation used to calculate the second message from the second auxiliary message is a multiplication, namely the multiplication of a point situated on the elliptic curve by a parameter.

L'invention permet le résultat exact pour ainsi dire " automatiquement " donc sans boucle " si " au cas où il n'y a pas d'attaque et io cependant d'obtenir en cas d'attaque un résultat fortement modifié qui est en même temps chiffré si l'opération pour calculer le deuxième message à partir du deuxième message auxiliaire est à son tour interprétée comme un chiffre-ment. La clé destinée à " chiffrer " en fin de compte l'erreur éventuellement provoquée par une attaque dépend cependant de l'attaque elle-même, donc de beaucoup d'impondérables et en outre elle n'est mémorisée nulle part, donc ni sur la carte à puce ni ailleurs. C'est pourquoi cette clé ne peut pas être découverte par un agresseur. Un agresseur va en effet produire une sortie lors d'une attaque DFA. Cette sortie est cependant chiffrée par une clé qui n'est plus disponible et est donc inutile à l'agresseur.  The invention allows the exact result, so to speak, "automatically" therefore without a "if" loop in the case where there is no attack and yet obtain in case of attack a strongly modified result which is at the same time encrypted time if the operation to compute the second message from the second auxiliary message is in turn interpreted as a digit. The key to eventually "encrypting" the error possibly caused by an attack, however, depends on the attack itself, so many imponderables and it is not stored anywhere, so neither on the smart card and elsewhere. That's why this key can not be discovered by an attacker. An attacker will indeed produce an exit during a DFA attack. This output is however encrypted by a key that is no longer available and is therefore useless to the aggressor.

On réalise conformément à l'invention un calcul dans plu-sieurs groupes de nombres, donc pour l'exemple du système de cryptographie RSA, dans différentes classes résiduelles de différents modules ou, dans l'exemple de la cryptographie à courbes elliptiques, dans différentes courbes elliptiques. Le premier groupe de nombres est alors une courbe elliptique sur un premier paramètre. Le deuxième groupe de nombres est une courbe elliptique sur un deuxième paramètre différent du premier paramètre et le troisième groupe de nombres est une courbe elliptique sur un troisième paramètre qui est à son tour de préférence différent du premier et du deuxième paramètre.  According to the invention, a computation is carried out in several groups of numbers, therefore for the example of the RSA cryptography system, in different residual classes of different modules or, in the example of elliptic curve cryptography, in different elliptic curves. The first group of numbers is then an elliptic curve on a first parameter. The second group of numbers is an elliptic curve on a second parameter different from the first parameter and the third group of numbers is an elliptic curve on a third parameter which is in turn preferably different from the first and the second parameter.

La conception conforme à l'invention repose en outre sur la découverte qu'il existe des trajets fermés dans un système dont les groupes de nombres sont différents, donc les courbes elliptiques différentes ou les classes résiduelles différentes. Par exemple un calcul de signature depuis un groupe de nombres au groupe de nombres suivant et une opération de vérification ultérieure elle aussi à un groupe de nombres suivant est utile au sens qu'on obtient un message originel qui cependant existe maintenant dans le dernier, donc le troisième, groupe de nombres. En transformant le message originel depuis le premier groupe de nombres dans le troisième groupe de nombres, on obtient un message transformé qu'on peut alors comparer au message calculé par la signature / la vérification pour obtenir une différence.  The design according to the invention is further based on the discovery that there are closed paths in a system whose groups of numbers are different, thus different elliptic curves or different residual classes. For example, a signature calculation from a group of numbers to the next group of numbers and a subsequent verification operation to a next group of numbers is useful in the sense that we obtain an original message which, however, now exists in the last, so the third, group of numbers. By transforming the original message from the first group of numbers into the third group of numbers, a transformed message is obtained which can then be compared to the message calculated by the signature / verification to obtain a difference.

io D'après l'invention, cette différence n'est cependant pas exploitée à l'aide d'une condition " si " mais on l'utilise pour retransformer dans le premier groupe la signature calculée originelle qui n'existe cependant que dans le deuxième groupe de nombres. Si aucune attaque n'a eu lieu, on obtient la signature. Si par contre il y a eu une attaque, cette dernière étape provoque un important " chiffrement " du deuxième message auxiliaire, ce qui lui ôterait toute signification pour un agresseur.  According to the invention, this difference is however not exploited by means of an "if" condition, but it is used to retransform the original computed signature in the first group, which however exists only in the second group of numbers. If no attack has taken place, we get the signature. If on the other hand there was an attack, this last step causes a significant "encryption" of the second auxiliary message, which would render it meaningless for an aggressor.

On doit donc exécuter conformément à l'invention différentes étapes, à savoir la signature, la vérification, la transformation du message à l'intérieur ou sur différents groupes de nombres, de sorte qu'un agresseur devrait agir différemment sur chacune de ces étapes par une attaque DFA, ce qui n'est pas possible. Si une puce est attaquée par exemple en l'irradiant par une lumière très intense, du fait que les opérations de calcul au cours des trois étapes qui permettent d'obtenir la différence nécessaire sont différentes, il est improbable que la puce irradiée en lumière réagisse toujours de la même façon, donc qu'elle fasse toujours la même erreur, de telle manière que des erreurs puissent s'annuler les unes les autres ou qu'on ne puisse pas les reconnaître. C'est ce qui se passe par exemple lorsque deux partenaires de différence sont influencés de la même façon par l'attaque et que donc la différence de ces deux partenaires de différence est nulle. La différence égale à zéro indique cependant qu'aucune erreur n'a eu lieu, de sorte que l'attaque sera réussie, donc qu'une sortie se sera pas empêchée.  It is therefore necessary to carry out according to the invention different steps, namely the signature, the verification, the transformation of the message within or on different groups of numbers, so that an aggressor should act differently on each of these steps by a DFA attack, which is not possible. If a chip is attacked for example by irradiating it with a very intense light, because the calculation operations during the three steps which make it possible to obtain the necessary difference are different, it is unlikely that the chip irradiated with light reacts. always in the same way, so that it always makes the same mistake, in such a way that mistakes can cancel each other out or that we can not recognize them. This is the case, for example, when two difference partners are influenced in the same way by the attack and therefore the difference of these two difference partners is zero. The difference equal to zero, however, indicates that no error has occurred, so that the attack will be successful, so that an exit will not be prevented.

Pour les différentes opérations, on a en outre besoin de différentes valeurs issues des mémoires, de sorte qu'ici aussi pour que l'attaque DFA soit couronnée de succès une seule et même attaque devrait avoir des effets différents en fonction de l'opération qui est exécutée.  For the various operations, we also need different values from the memories, so that here too for the DFA attack to be successful, one attack should have different effects depending on the operation. is executed.

s Comme on l'a déjà dit, dans la conception anti DFA conforme à l'invention il n'y a pas non plus de branchement " si ". On produit au lieu de cela toujours un résultat sans tenir compte si une attaque a eu lieu ou non. Le résultat n'est pertinent que si aucune attaque n'a eu lieu. Si par contre une attaque a eu lieu, le résultat ne donnera pas l'erreur souhaitée par io l'agresseur mais fournira typiquement cette erreur dans une version très chif- frée dont l'agresseur ne pourra rien faire.  As already mentioned, in the anti-DFA design according to the invention there is also no "if" connection. Instead, we always produce a result regardless of whether an attack has taken place or not. The result is only relevant if no attack has taken place. If, on the other hand, an attack has taken place, the result will not give the error desired by the attacker, but will typically provide this error in a highly encrypted version which the attacker can not do anything about.

Comme les différentes étapes sont exécutées dans différents espaces de nombres et qu'on évite une boucle " si ", la conception conforme à l'invention permet de rendre inopérantes des attaques DFA puis- qu'une seule et même attaque devrait fonctionner différemment à différentes étapes du calcul et qu'on évite complètement les branchements " si " sensibles à des attaques définies.  Since the different steps are executed in different number spaces and an "if" loop is avoided, the design according to the invention makes DFA attacks inoperative since one attack should operate differently at different levels. calculation steps and completely avoiding "if" connections sensitive to defined attacks.

Dans ce qui suit, on explique en détail des exemples recommandés de réalisation de la présente invention en se référant aux dessins 20 annexés.  In the following, detailed examples of embodiments of the present invention will be explained in detail with reference to the accompanying drawings.

La figure 1 montre sous forme de schéma fonctionnel le dispositif conforme à l'invention pour convertir un premier message en un deuxième message, la figure 2 est un tableau synoptique pour comparer deux systèmes asymétriques de cryptographie, à savoir le système de cryptographie RSA et le système de cryptographie à courbes elliptiques qu'on peut tous deux utiliser à titre d'exemple dans le procédé conforme à l'invention, et la figure 3 est un diagramme des groupes de nombres pour illustrer comment on passe d'un groupe de nombres à l'autre lors-que le premier message est converti en le deuxième mes- 30 sage auxiliaire, comment on calcule la différence et com- ment on calcule en fin de compte le deuxième message en utilisant la différence et le deuxième message auxiliaire.  FIG. 1 shows in block diagram form the device according to the invention for converting a first message into a second message, FIG. 2 is a synoptic table for comparing two asymmetric cryptographic systems, namely the RSA cryptography system and the elliptic curve cryptography system which can both be used as an example in the method according to the invention, and FIG. 3 is a diagram of groups of numbers to illustrate how one goes from a group of numbers to the other when the first message is converted to the second auxiliary message, how the difference is calculated and how the second message is ultimately calculated using the difference and the second auxiliary message.

La figure 1 montre un dispositif pour convertir un premier message en un deuxième message. Le dispositif conforme à l'invention utilise un système asymétrique de cryptographie qui comprend une clé publique, une clé privée, une première opération de cryptographie réalisable à l'aide de la clé privée et une deuxième opération de cryptographie réalisable à l'aide de la clé publique. Selon le cas d'utilisation, la première opération de cryptographie io réalisable à l'aide de la clé privée est une opération de signature ou une opération de déchiffrement. Selon que la première opération de cryptographie réalisable à l'aide de la clé privée est une opération de signature ou une opération de déchiffrement, le premier message représente aussi différentes choses. Au cas où la première opération de cryptographie réalisable à l'aide de la clé privée est l'opération de signature, le premier message est un message non chiffré, donc un message en texte clair, qui doit être signé.  Figure 1 shows a device for converting a first message to a second message. The device according to the invention uses an asymmetric cryptographic system which comprises a public key, a private key, a first cryptographic operation that can be performed using the private key and a second cryptographic operation that can be carried out using the public key. Depending on the use case, the first cryptographic operation that can be performed using the private key is a signature operation or a decryption operation. Depending on whether the first cryptographic operation achievable using the private key is a signature operation or a decryption operation, the first message also represents different things. In the case where the first cryptographic operation achievable using the private key is the signature operation, the first message is an unencrypted message, therefore a clear text message, which must be signed.

Si par contre la première opération de cryptographie réalisable à l'aide de la clé privée est une opération de décryptage ou de déchiffrement, le premier message est un message chiffré, donc un message en texte chiffré, et le deuxième message est un message déchiffré, donc un message en texte clair.  If, on the other hand, the first cryptographic operation that can be performed using the private key is a decryption or decryption operation, the first message is an encrypted message, therefore an encrypted text message, and the second message is a decrypted message, so a message in clear text.

Dans le cas d'un système asymétrique de cryptographie, il faut alors distinguer deux cas, à savoir la production de la signature qui per-met d'obtenir une signature numérique pour un document et le déchiffrement du message. La clé privée qu'on appelle " e " dans le cadre du système de cryptographie RSA intervient à la production de la signature pour obtenir la signature numérique. Lors de la vérification, on n'a par contre besoin que de la clé publique, de sorte qu'il n'est pas nécessaire ici de prendre des mesures de sécurité. Lors du chiffrement à l'aide d'un système asymétrique de crypto- graphie, on utilise aussi la seule clé publique, de sorte qu'ici non plus il n'est pas nécessaire de prendre des mesures de sécurité puisque la clé publique, comme l'indique son nom, n'est de toute manière pas secrète. II en résulte qu'il n'est pas nécessaire de prendre des mesures de sécurité anti DFA, justement lors du chiffrement.  In the case of an asymmetrical cryptographic system, two cases must be distinguished, namely the production of the signature which makes it possible to obtain a digital signature for a document and the decryption of the message. The private key called "e" in the context of the RSA cryptography system is involved in producing the signature to obtain the digital signature. During the verification, however, only the public key is needed, so there is no need for security measures here. When encrypting using an asymmetric crypto- graphy system, the only public key is used, so here again it is not necessary to take security measures since the public key, such as indicates his name, is not secret anyway. It follows that it is not necessary to take security measures against DFA, precisely during encryption.

Mais il en va autrement si un message chiffré (crypté) dans un système asymétrique de cryptographie doit être déchiffré, donc être traité en utilisant la clé privée du destinataire auquel le message est destiné.  But it is otherwise if an encrypted message (encrypted) in an asymmetric cryptographic system must be decrypted, so be processed using the private key of the recipient to whom the message is intended.

Dans ce cadre, le premier message est donc effectivement un message en texte clair comme par exemple lorsqu'on produit une signature numérique à l'aide d'un algorithme asymétrique.  In this context, the first message is therefore a message in plain text, for example when producing a digital signature using an asymmetric algorithm.

to Le premier message peut cependant aussi être un mes-sage chiffré comme par exemple lorsque des messages sont déchiffrés dans un système asymétrique de cryptographie dans lequel on utilise la clé privée pour le déchiffrage.  The first message, however, can also be an encrypted message, for example when messages are decrypted in an asymmetrical cryptographic system in which the private key is used for decryption.

La figure 1 montre une installation destinée à fournir un pa- ts ramètre auxiliaire t et désignée par 10 à la figure 1. L'installation 10 est couplée à une installation 12 pour convertir le premier message en un deuxième message auxiliaire. L'installation 12 est adaptée pour fonctionner en ayant recours à la première opération de cryptographie et à la clé privée ainsi qu'au paramètre auxiliaire t, de sorte que le deuxième message auxiliaire est obtenu dans un deuxième groupe de nombres, tandis que le premier message, donc un message non chiffré dans le cas d'une signature ou un message chiffré dans le cas d'un déchiffrement comme on le constate à la figure 1, est obtenu dans le premier groupe de nombres.  Figure 1 shows an installation for providing an auxiliary parameter bank t designated 10 in Figure 1. The plant 10 is coupled to an installation 12 for converting the first message to a second auxiliary message. The installation 12 is adapted to operate using the first cryptography operation and the private key and the auxiliary parameter t, so that the second auxiliary message is obtained in a second group of numbers, while the first message, therefore an unencrypted message in the case of a signature or an encrypted message in the case of a decryption as seen in Figure 1, is obtained in the first group of numbers.

Le dispositif conforme à l'invention tel qu'il est représenté à la figure 1 comprend en outre une installation 14 pour établir une clé auxiliaire publique; l'installation 14 pour établir la clé auxiliaire publique est alors conçue pour établir la clé auxiliaire publique de telle manière que, conjointe-ment avec la clé privée dans un troisième groupe de nombres qui est défini par un paramètre auxiliaire, elle forme une paire de clés du système de chif- 3o freinent asymétrique. En d'autres termes, l'installation 14 est adaptée pour établir une clé publique qui, par rapport au nouveau (donc le troisième) sys- tème de nombres, donc le troisième groupe de nombres (nouveau ou qui vient d'être défini), représente conjointement avec la clé privée originelle une paire de clés pour le système asymétrique de cryptographie. La clé auxiliaire publique établie par l'installation 14 de même que le premier message et aussi le paramètre auxiliaire t et encore le deuxième message auxiliaire sont acheminés à une installation 16. L'installation 16 est conçue pour établir une différence à partir du premier message et d'un résultat issu de la conversion du deuxième message auxiliaire en utilisant la deuxième opération de cryptographie et la clé auxiliaire, cette différence étant établie en se référant à un troisième groupe de nombres, comme on le constate également à la figure 1.  The device according to the invention as shown in Figure 1 further comprises a facility 14 for establishing a public auxiliary key; the facility 14 for establishing the public auxiliary key is then designed to establish the public auxiliary key such that, together with the private key in a third group of numbers which is defined by an auxiliary parameter, it forms a pair of The keys of the chif-3o system brake asymmetrically. In other words, the installation 14 is adapted to establish a public key which, with respect to the new (therefore the third) number system, therefore the third group of numbers (new or just defined) , together with the original private key, represents a pair of keys for the asymmetric cryptographic system. The public auxiliary key established by the installation 14 as well as the first message and also the auxiliary parameter t and still the second auxiliary message are routed to an installation 16. The installation 16 is designed to establish a difference from the first message and a result from the conversion of the second auxiliary message using the second cryptographic operation and the auxiliary key, this difference being established by reference to a third group of numbers, as also seen in FIG.

La différence est égale à 0 s'il n'y a eu aucune attaque ou aucune erreur. Par contre la différence n'est pas 0 si par exemple des erreurs sont dues à des attaques DFA.  The difference is 0 if there has been no attack or error. However, the difference is not 0 if, for example, errors are due to DFA attacks.

La différence de même que le deuxième message auxiliaire tel qu'il a été établi par l'installation 12 sont acheminés à une installation 18 qui établit le deuxième message, donc la valeur effectivement recherchée, en utilisant la différence et le deuxième message auxiliaire.  The difference as well as the second auxiliary message as established by the installation 12 are routed to an installation 18 which establishes the second message, therefore the value actually sought, using the difference and the second auxiliary message.

La conception conforme à l'invention peut être utilisée pour des systèmes asymétriques de cryptographie quelconques. On se borne dans ce qui suit à expliquer la conception conforme à l'invention à l'aide du système de cryptographie RSA (colonne de gauche à la figure 2) et à l'aide du système de cryptographie à courbes elliptiques (colonne de droite à la figure 2) à titre d'exemple pour des raisons de clarté.  The design according to the invention can be used for asymmetric systems of any cryptography. In the following, the design in accordance with the invention is explained using the RSA cryptography system (left column in FIG. 2) and using the elliptic curve cryptography system (right column). in Figure 2) as an example for the sake of clarity.

L'algorithme RSA est un excellent exemple de système asymétrique de cryptographie ou de système de cryptographie à clé privée.  The RSA algorithm is an excellent example of an asymmetric cryptographic system or a private key cryptosystem.

On peut utiliser l'algorithme RSA à des fins de signature ou de vérification d'une part et de chiffrement ou de déchiffrement d'autre part. L'algorithme RSA de signature en tant qu'exemple de système asymétrique de cryptogra- phie est par exemple décrit dans le " Handbook of Applied Cryptography " d'A.  The RSA algorithm can be used for signature or verification purposes on the one hand and encryption or decryption on the other. The RSA signature algorithm as an example of an asymmetric cryptographic system is for example described in A.'s Handbook of Applied Cryptography.

Menezes et al., CRC Press, 1996 au chapitre 11.3. Le schéma de signature RSA comprend deux étapes. Chaque entité doit d'abord produire pour soi une clé publique et une clé privée correspondante. On choisit à cet effet d'abord deux nombres premiers p et q différents qui ont de préférence la même taille. Puis on calcule le produit n = pq ainsi que la fonction phi d'Euler c = (t-1) (q-1). Puis on choisit un nombre entier e aléatoire qui vérifie 1 <_ e <_ (D, de ma- nière que le plus grand commun diviseur de e et D soit égal à 1. Puis on utilise l'algorithme d'Euler étendu pour calculer le nombre entier d univoque, où d vérifie également d est supérieur à 1 et inférieur à 'D et où d vérifie en outre: ed = 1 (mod (D). La clé publique de l'entité est alors le nombre entier e (et le module n ou N). Par contre la clé privée de l'entité est d.  Menezes et al., CRC Press, 1996, Chapter 11.3. The RSA signature scheme consists of two steps. Each entity must first produce a public key and a corresponding private key for itself. For this purpose, two prime numbers p and q are chosen which preferably have the same size. Then the product n = pq and the phi function of Euler c = (t-1) (q-1) are calculated. Then we choose a random integer e which satisfies 1 <_ e <_ (D, so that the greatest common divisor of e and D is equal to 1. Then we use the extended Euler algorithm to compute the unambiguous integer, where d also verifies d, is greater than 1 and less than 'D, and where d further verifies: ed = 1 (mod (D), the public key of the entity is then the integer e ( and the module n or N), but the private key of the entity is d.

io Après qu'une entité a produit pour soi une paire de clés, elle peut signer un message. L'entité calcule à cet effet une élévation modulaire à une puissance sur le message ou sur un nombre entier qu'on dérive de façon univoque du message; lors de l'élévation modulaire à la puissance, le message est la base, la clé privée est l'exposant et le module est la valeur n en fonction de laquelle la paire de clés a été calculée. On en obtient alors la signature pour le message dans une classe résiduelle ou dans un groupe de nombres qui est défini par la valeur n ou N. Pour vérifier la signature A (et si possible aussi pour restituer le message m) , l'autre entité doit d'abord obtenir la clé publique fournie par exemple par l'entité qui signe. Puis on calcule une élévation modulaire à une puissance, à savoir de telle manière que la base soit la signature, l'exposant la clé publique et le module n le même que celui utilisé pour produire la signature. Puis on vérifie si le résultat obtenu par l'élévation modulaire à une puissance se trouve dans une quantité MR donnée. Si ce n'est pas le cas, la signature est rejetée. Mais si cette condition est remplie, le message m est de nouveau obtenu à partir du résultat de l'élévation à une puissance réalisée en vérification, à savoirpar la fonction inverse de la fonction qu'on a utilisée pour produire à partir du message la valeur d'entrée pour la signature.  After an entity has produced a key pair for itself, it can sign a message. The entity calculates for this purpose a modular elevation to a power on the message or on an integer that is uniquely derived from the message; when modular scaling to power, the message is the base, the private key is the exponent and the module is the value n according to which the key pair was calculated. We then obtain the signature for the message in a residual class or in a group of numbers which is defined by the value n or N. To check the signature A (and if possible also to restore the message m), the other entity must first obtain the public key provided for example by the signing entity. Then we calculate a modular elevation to a power, namely in such a way that the base is the signature, the exponent the public key and the module n the same as that used to produce the signature. Then we check if the result obtained by the modular elevation to a power is in a given quantity MR. If this is not the case, the signature is rejected. But if this condition is fulfilled, the message m is again obtained from the result of the elevation to a power performed in verification, namely by the inverse function of the function which was used to produce from the message the value entry for the signature.

Dans une autre solution, la signature peut accompagner le document lui-même, de sorte que pour effectuer la vérification il suffit de comparer le document annexé typiquement en texte clair et le résultat obtenu à partir de l'élévation à une puissance réalisée en vérification.  In another solution, the signature may accompany the document itself, so that to perform the verification it is sufficient to compare the attached document typically in clear text and the result obtained from the elevation to a power achieved in verification.

Dans le chiffrement RSA, avant qu'elle puisse fonctionner une entité doit également produire une paire de clés à partir d'une clé publi- que et d'une clé privée (en se référant à un module N, donc dans un groupe de nombres défini). La clé est produite exactement comme dans le cas de la signature RSA. Pour le chiffrement RSA, l'entité qui souhaite chiffrer ses mes-sages doit obtenir la clé publique de l'entité qui doit recevoir le message chiffré. Après qu'elle a obtenu la clé publique, on exécute une élévation modulaire io à une puissance: la base est alors le message à chiffrer, l'exposant est la clé publique de l'entité cible et le module de l'élévation modulaire à une puissance est le module N qui fait partie de la clé publique de l'entité cible.  In RSA encryption, before it can work an entity must also produce a key pair from a public key and a private key (referring to a module N, so in a group of numbers defined). The key is produced exactly as in the case of the RSA signature. For RSA encryption, the entity that wants to encrypt its mes-sages must obtain the public key of the entity that is to receive the encrypted message. After it has obtained the public key, a modular elevation is executed at a power: the base is then the message to be encrypted, the exponent is the public key of the target entity and the module of the modular elevation to a power is the N module that is part of the public key of the target entity.

Les messages chiffrés de cette manière sont ensuite transmis à l'entité cible. L'entité cible réalisera ensuite de nouveau une éléva- tion à une puissance en utilisant sa clé secrète. La base de l'élévation à une puissance pour le déchiffrement ou le décryptage est le message chiffré. L'exposant est la clé privée de l'entité qui déchiffre et le module est le nombre en référence duquel la clé publique e et la clé privée d ont été calculées.  Messages encrypted in this way are then forwarded to the target entity. The target entity will then perform an elevation to a power again using its secret key. The basis of raising to a power for decryption or decryption is the encrypted message. The exponent is the private key of the decrypting entity and the module is the reference number of which the public key e and the private key d have been calculated.

Une attaque DFA est typiquement dirigée contre des mes- sages secrets ou des informations secrètes. Le message secret déterminant est la clé privée, de sorte que typiquement une attaque DFA vaut toujours ses efforts si une entité exécute une opération de cryptographie, donc dans le cas du RSA une élévation à une puissance à laquelle prend part la clé privée. C'est d'une part l'opération de signature et d'autre part l'opération de déchif- frement comme on l'a compris par l'explication ci-dessus.  A DFA attack is typically directed against secret messages or secret information. The secret secret message is the private key, so that typically a DFA attack is always worthwhile if an entity performs a cryptographic operation, so in the case of the RSA an elevation to a power in which the private key takes part. This is on the one hand the signature operation and on the other hand the deciphering operation as understood by the explanation above.

Dans ce qui suit on explique la conception conforme à l'invention à l'aide de la signature RSA en se référant à la figure 2, colonne de gauche. Sur la figure 2, un bloc 20 variable présente d'abord un aperçu des variables qui forment la base du calcul ou qui sont le résultat du calcul.  In the following we explain the design according to the invention using the RSA signature with reference to Figure 2, left column. In Fig. 2, a variable block first presents an overview of the variables which form the basis of the calculation or which are the result of the calculation.

Les paramètres d'entrée (In) sont m, d, e et N; m représente le message à signer, d représente la clé privée, e représente la clé pu- blique et N représente le module, donc le produit de deux nombres premiers p et q qu'on a calculés pour produire le chiffrement RSA.  The input parameters (In) are m, d, e and N; m represents the message to be signed, d represents the private key, e represents the public key and N represents the module, hence the product of two prime numbers p and q that were calculated to produce the RSA cipher.

Le paramètre de sortie (Out) est la valeur s de la signature.  The output parameter (Out) is the value s of the signature.

Conformément à l'invention, comme on l'a déjà représenté à l'aide de la figure 1, installation 10, on choisit d'abord un nombre entier t de 32 bits, de préférence petit, pour ensuite calculer une signature. Contraire-ment au calcul habituel de la signature, la signature n'est cependant pas cal-culée dans le premier groupe de nombres, donc dans la classe résiduelle en se référant au module N, mais dans un deuxième groupe de nombres, donc io dans la classe résiduelle du module qu'on obtient à partir du produit Nt. On renvoie à ce sujet à un bloc 22 à la figure 2. Pour convertir le premier mes-sage en un deuxième message auxiliaire, on utilise donc la première opération de cryptographie à l'aide de la clé privée, l'élévation à une puissance a donc m pour base et d pour exposant; la conversion dans le deuxième groupe de nombres a alors lieu de telle manière que la réduction n'a pas lieu dans la classe résiduelle du module N comme dans l'équation du bloc 20 mais qu'une réduction est effectuée dans la classe résiduelle du nouveau module, donc du produit Nt: il en résulte que le deuxième message auxiliaire est défini dans le deuxième groupe de nombres.  According to the invention, as already shown with the help of Figure 1, installation 10, we first choose an integer t 32 bits, preferably small, and then calculate a signature. Contrary to the usual calculation of the signature, the signature is however not cal- culated in the first group of numbers, so in the residual class by referring to the module N, but in a second group of numbers, so io in the residual class of the module obtained from the product Nt. In this regard, reference is made to a block 22 in FIG. 2. To convert the first mes-sage into a second auxiliary message, the first cryptographic operation is thus used using the private key, the elevation to a power therefore has m for base and d for exponent; the conversion in the second group of numbers is then carried out in such a way that the reduction does not take place in the residual class of the module N as in the equation of the block 20 but that a reduction is made in the residual class of the new module, so the product Nt: it follows that the second auxiliary message is defined in the second group of numbers.

Un bloc 24 représente la manière d'utiliser la clé auxiliaire publique et. On calcule la clé auxiliaire et exactement de la même façon qu'on calcule habituellement un chiffrement RSA, à la seule différence qu'on ne choisit pas la clé publique et qu'on calcule ensuite la clé privée, comme pour calculer habituellement la clé RSA, mais que la clé privée d est déjà prédéfi- nie. Cette clé privée d correspond à la clé privée originelle dans le premier groupe de nombres. Par contre en utilisant maintenant, au lieu de la clé privée d comme dans l'état de la technique, l'algorithme euclidien étendu, on calcule la clé publique et de manière à satisfaire à l'équation représentée dans le bloc 24 à la figure 2. On fait en outre remarquer que, à la différence de la clé publi- que e dans le bloc 20, la clé auxiliaire publique et ne s'applique pas en se ré- férant au premier groupe de nombres mais est maintenant définie en se réfé- rant à un troisième groupe de nombres puisque l'algorithme euclidien étendu est utilisé de telle manière qu'on satisfait à l'équation donnée dans le bloc 24 et d'après laquelle on a du côté droit, au lieu de la fonction euclidienne cl) du module N, la fonction cD d'Euler du nouveau module t, donc du module auquel on se réfère pour définir le troisième groupe de nombres.  Block 24 represents the manner of using the public auxiliary key and. The auxiliary key is calculated exactly the same way that RSA encryption is usually calculated, the only difference being that the public key is not chosen and then the private key is computed, as is usually the case with the RSA key. but the private key d is already predefined. This private key d corresponds to the original private key in the first group of numbers. On the other hand, by using now, instead of the private key d as in the state of the art, the extended Euclidean algorithm, the public key is calculated and so as to satisfy the equation represented in block 24 in FIG. 2. It is further pointed out that, unlike the public key e in block 20, the public auxiliary key and does not apply referring to the first group of numbers but is now defined by itself. referring to a third group of numbers since the extended Euclidean algorithm is used in such a way that one satisfies the equation given in block 24 and from which one has on the right side, instead of Euclidean function cl) of the module N, the function cD of Euler of the new module t, therefore of the module to which one refers to define the third group of numbers.

Un bloc 26 à la figure 2 représente quelle équation doit réaliser l'installation 16 afin d'établir la différence pour calculer la différence en se référant au troisième groupe de nombres, donc au groupe qui est défini par le paramètre t. On utilise à cet effet d'abord le message originel m, donc le io message en texte clair qu'il s'agit de signer. Puis le deuxième message auxiliaire s, donc la signature qui a été calculée dans le bloc 22 dans l'exemple montré à la figure 2, est en outre soumise à la deuxième opération de cryptographie, donc à l'élévation à une puissance, mais non pas à l'élévation à une puissance à l'aide d'une clé privée mais à l'élévation à une puissance à l'aide de la clé auxiliaire publique et calculée dans le bloc 24.  A block 26 in FIG. 2 represents which equation must perform the installation 16 in order to establish the difference in calculating the difference by referring to the third group of numbers, therefore to the group which is defined by the parameter t. For this purpose, the original message m is used first, ie the clear text message to be signed. Then the second auxiliary message s, therefore the signature which has been calculated in block 22 in the example shown in FIG. 2, is further subjected to the second cryptography operation, therefore to the rise to a power, but no not to rise to a power using a private key but to rise to a power using the public auxiliary key and calculated in block 24.

Dans un premier exemple de réalisation de la présente invention, la différence de ces deux valeurs est d'abord calculée et ce n'est qu'ensuite qu'elle est réduite de façon modulaire, le paramètre t servant de module. On obtient ainsi la différence dans le troisième groupe de nombres, donc dans la classe résiduelle qui est définie par t en tant que module. Au lieu de cela, on peut aussi calculer la différence comme le représente la deuxième équation dans le bloc 26 à la figure 2. Le message m originel donné dans le premier groupe de nombres peut d'abord être transformé dans le troisième groupe de nombre en le transformant dans la classe résiduelle du module t qui définit le troisième groupe de nombres. L'opération de vérification est en outre intégralement réalisée à l'aide de la clé auxiliaire publique et, donc par la deuxième opération de cryptographie et par la réduction modulaire qui a alors lieu, le paramètre t étant le module.  In a first embodiment of the present invention, the difference of these two values is firstly calculated and only then is it reduced in a modular manner, the parameter t serving as a module. This gives the difference in the third group of numbers, so in the residual class which is defined by t as a module. Instead, the difference can also be calculated as the second equation in block 26 in FIG. 2. The original message m given in the first group of numbers can first be transformed into the third group of numbers. transforming it into the residual class of the module t which defines the third group of numbers. The verification operation is furthermore completely carried out using the public auxiliary key and therefore by the second cryptographic operation and by the modular reduction which then takes place, the parameter t being the module.

On constate par le bloc 26 à la figure 2 que la différence doit être 0, donc que le premier terme et le deuxième terme doivent être iden- tiques, s'il n'y a eu aucune erreur ou aucune attaque qui a déclenché une erreur. Si par contre il y a eu une attaque la différence ne sera pas 0. Cela tient à ce que l'attaque a lieu par exemple à l'étape où le deuxième message auxiliaire est calculé, donc au bloc 22 à la figure 2, ou que l'attaque a eu lieu lors-que la clé auxiliaire publique était calculée dans le bloc 24 ou que l'attaque a eu lieu directement lors du calcul de la différence.  Block 26 in Figure 2 shows that the difference must be 0, so that the first term and second term must be identical, if there were no errors or attacks that triggered an error. . If on the other hand there has been an attack the difference will not be 0. This is because the attack takes place for example at the step where the second auxiliary message is calculated, therefore at block 22 in FIG. 2, or that the attack took place when the public auxiliary key was calculated in block 24 or the attack took place directly when calculating the difference.

Pour calculer en fin de compte le deuxième message effectivement recherché, donc la signature s, on utilise la fonction telle qu'elle est représentée au bloc 28 à la figure 2 pour l'exemple de réalisation recommandé montré à la figure 2. La réduction modulaire qui se réfère au module N sert io à retransformer dans le premier groupe de nombres le deuxième message auxiliaire qui est défini en se référant au deuxième groupe de nombres (à l'aide du module Nt). On utilise en outre la différence f. Cette caractéristique a pour effet qu'on n'a plus besoin de branchement " si " qui représente au contraire un point d'attaque dans l'état de la technique. La raison en est que la fonction qui a recours à la différence ne modifiera pas le deuxième message auxiliaire si la différence f est égale à O. Si par contre la différence n'est pas égale à 0, le deuxième message auxiliaire sera très fortement modifié puisque la différence est dans l'exposant comme le montre le bloc 28 à la figure 2.  To ultimately calculate the second message actually sought, therefore the signature s, use the function as shown in block 28 in Figure 2 for the recommended embodiment shown in Figure 2. The modular reduction which refers to the module N serves to retransform in the first group of numbers the second auxiliary message which is defined with reference to the second group of numbers (using the Nt module). In addition, the difference f is used. This characteristic has the effect that there is no need for "if" connection which instead represents a point of attack in the state of the art. The reason is that the function that uses the difference will not modify the second auxiliary message if the difference f is equal to 0. If, on the other hand, the difference is not equal to 0, the second auxiliary message will be very strongly modified. since the difference is in the exponent as shown by block 28 in FIG.

En utilisant la différence et le deuxième message auxiliaire, l'installation 18 pour calculer le deuxième message utilise de préférence la même opération de cryptographie, donc l'élévation à une puissance, puisque typiquement une unité de calcul est bien adaptée à cette opération et qu'un calcul exponentiel où une valeur sert d'exposant réagit très fortement aux ex-posants. L'exposant est influencé par la différence. Si par exemple la diffé- rence n'est que relativement faible, l'élévation à une puissance modifiera encore très fortement le deuxième message auxiliaire, ce qui a le même effet envers l'agresseur que si on chiffrait le deuxième message auxiliaire, mais à l'aide d'une clé (f+1) qui n'est nulle part mémorisée, transmise ni enregistrée de quelque autre manière que ce soit, mais qui est effectivement utilisée pour exécuter le calcul dans le bloc 28; celui- ci est cependant par ailleurs inintéressant et il n'est donc pas mémorisé ou " supprimé ".  By using the difference and the second auxiliary message, the installation 18 for calculating the second message preferably uses the same cryptography operation, therefore the rise to a power, since typically a calculation unit is well adapted to this operation and an exponential calculation where a value serves as an exponent reacts very strongly to ex-posers. The exponent is influenced by the difference. If, for example, the difference is only relatively small, raising to one power will still very strongly modify the second auxiliary message, which has the same effect on the aggressor as if the second auxiliary message were encrypted, but using a key (f + 1) which is nowhere memorized, transmitted or otherwise recorded, but which is actually used to execute the calculation in block 28; however, it is uninteresting and is not memorized or "deleted".

Dans des exemples de réalisation recommandés de la pré-sente invention, comme on l'a déjà dit le paramètre t est un nombre entier petit qui a typiquement moins de 128 bits, à savoir par exemple 64 ou mieux 32 bits. Il en résulte que le deuxième groupe de nombres, donc le groupe de nombres qui est défini par le module constitué par le produit de N par t, ne devient pas trop grand. Le choix d'un t petit sert en outre à ce que le troisième groupe de nombres, donc la classe résiduelle en se référant au paramètre t en tant que module, soit relativement petit, de sorte que la clé auxiliaire publique ou la différence qui sont déjà des calculs supplémentaires peuvent être io calculés en contrôlant leur complexité.  In preferred embodiments of the present invention, as already stated, the parameter t is a small integer which is typically less than 128 bits, eg, 64 or better 32 bits. As a result, the second group of numbers, so the group of numbers that is defined by the module consisting of the product of N by t, does not become too large. The choice of a small t further serves so that the third group of numbers, so the residual class by referring to the parameter t as a module, is relatively small, so that the public auxiliary key or the difference that are already additional calculations can be calculated by controlling their complexity.

Pour augmenter l'efficacité, le paramètre t peut aussi être prédéfini, bien que cela réduise la sécurité contre les attaques. En prédéfinissant le paramètre t, il est cependant aussi possible de prédéfinir fermement la clé auxiliaire publique et ainsi que la fonction phi d'Euler cD (t) pour une clé pri- vée d également prédéfinie.  To increase efficiency, the t parameter can also be predefined, although this reduces the security against attacks. By presetting the parameter t, however, it is also possible to preset the public auxiliary key and the Euler cD (t) phi function for a private key that is also predefined.

Une autre solution consiste à autoriser que t soit choisi parmi un nombre limité de candidats à la sélection et que la fonction phi d'Euler pour le nombre limité de candidats à la sélection soit mémorisée dans le processeur, par exemple dans la carte à puce elle-même (de préférence chiffrée) afin d'améliorer l'efficacité de la conception DFA conforme à l'invention. Si t est par exemple choisi aléatoirement parmi le groupe restreint de candidats à la sélection, donc en se fondant sur un nombre physique ou pseudoaléatoire, on peut encore obtenir une protection DFA suffisamment sûre tout en réduisant en même temps considérablement la complexité des mesures défensives par rapport au cas où tous les nombres t sont possibles et où on ne peut pas calculer d'avance la fonction phi d'Euler; en outre on ne peut pas non plus calculer d'avance la clé auxiliaire publique et même si différentes clés privées sont autorisées.  Another solution is to allow t to be chosen from a limited number of candidates for selection and the Euler phi function for the limited number of candidates for selection is stored in the processor, for example in the smart card it - even (preferably encrypted) to improve the efficiency of the DFA design according to the invention. If, for example, t is randomly selected from the restricted group of selection candidates, thus based on a physical or pseudo-random number, then a sufficiently secure DFA protection can be obtained while at the same time considerably reducing the complexity of the defensive measures by relation to the case where all the numbers t are possible and where one can not compute in advance the function phi of Euler; moreover one can not calculate in advance the public auxiliary key and even if different private keys are allowed.

Si par contre un processeur de cryptographie est unique-30 ment conçu d'après la présente invention pour une seule clé privée et qu'il n'y a qu'un nombre limité de candidats à la sélection pour le paramètre t, on peut mémoriser la clé auxiliaire publique correspondante en l'associant à chaque candidat à la sélection t sans calculer explicitement la fonction phi d'Euler. Dans ce cas, l'installation 14 pour établir la clé auxiliaire publique est conçue pour avoir accès à une mémoire en utilisant le paramètre ou une information qui dépend du paramètre afin d'appeler dans la mémoire la clé auxiliaire publique correspondante sans que l'installation 14 de la figure 1 doive exécuter elle même quelque calcul logique et/ou arithmétique que ce soit.  If, on the other hand, a cryptographic processor is uniquely designed according to the present invention for a single private key and there is only a limited number of candidates for selection for the parameter t, it is possible to memorize the corresponding public auxiliary key by associating it with each candidate to the selection t without explicitly calculating the phi function of Euler. In this case, the facility 14 for establishing the public auxiliary key is designed to access a memory using the parameter or parameter-dependent information to call the corresponding public auxiliary key to the memory without the installation. 14 of Figure 1 must execute itself any logic and / or arithmetic calculation whatsoever.

On fait en outre remarquer que l'installation 18 pour calculer le deuxième message peut utiliser des fonctions quelconques pour prendre io en compte la différence. On pourrait aussi multiplier la signature auxiliaire par (f+1). On tient alors aussi compte de la différence en ce sens que le message auxiliaire n'est pas modifié si la différence a une valeur prédéfinie, à savoir 0, tandis que le deuxième message auxiliaire est modifié si la différence s'écarte de cette valeur prédéfinie.  It is further noted that the facility 18 for calculating the second message may use arbitrary functions to account for the difference. One could also multiply the auxiliary signature by (f + 1). The difference is also taken into account in that the auxiliary message is not modified if the difference has a predefined value, namely 0, while the second auxiliary message is modified if the difference deviates from this predefined value. .

En se référant dans ce qui suit à la figure 2, colonne de droite, on représente un autre exemple de la présente invention, à savoir la conception d'après l'invention pour un système de cryptographie à courbes elliptiques. Un bloc 30 représente de nouveau les paramètres d'entrée et de sortie qu'on recherche. On suppose à cet effet une courbe elliptique E, à sa- voir une courbe elliptique sur le paramètre p. On suppose en outre un point P sur la courbe elliptique, le point P étant d'ordre r. On suppose en outre une clé privée m. La courbe elliptique E sur p (E(Z/p)) représente le premier groupe de nombres. Le premier message représente le point P situé sur la courbe elliptique sur p d'ordre r. La signature est le produit de la clé privée m par le point P sur la courbe elliptique E(Z/p). En comparant le bloc 20 et le bloc 30, on voit que l'élévation à une puissance dans le cas du RSA devient une multiplication dans le cas des courbes elliptiques. La réduction modulaire qui a lieu pour le RSA en se référant à un module (mod N) est en outre prise en compte pour des courbes elliptiques en ce que la multiplication de m par p est réalisée sur la courbe elliptique spéciale prédéfinie.  Referring now to Figure 2, right column, there is shown another example of the present invention, namely the design according to the invention for an elliptic curve cryptography system. Block 30 again represents the input and output parameters that are sought. For this purpose, we assume an elliptic curve E, ie an elliptic curve on the parameter p. We also assume a point P on the elliptic curve, the point P being of order r. We also assume a private key m. The elliptic curve E on p (E (Z / p)) represents the first group of numbers. The first message represents the point P located on the elliptic curve on p of order r. The signature is the product of the private key m by the point P on the elliptic curve E (Z / p). Comparing the block 20 and the block 30, we see that the rise to a power in the case of the RSA becomes a multiplication in the case of elliptic curves. The modular reduction that takes place for the RSA by referring to a module (mod N) is furthermore taken into account for elliptic curves in that the multiplication of m by p is performed on the predefined special elliptic curve.

Un bloc 32 à la figure 2 représente les fonctionnalités que l'installation 12 exécute pour transformer le premier message (P) en un deuxième message auxiliaire (Q). On utilise à cet effet la première opération de cryptographie, donc la multiplication, à savoir celle de la clé privée m et du message (du point P sur la courbe elliptique). Le deuxième message auxiliaire existe cependant en se référant au deuxième groupe de nombres, donc comme le représente la figure 2 bloc 32 en se référant à la courbe elliptique sur pt. On recommande pour la présente invention que le paramètre t soit un nombre premier qui soit en outre un nombre relativement petit tout comme io dans le cas du RSA; il a par exemple moins de 128 chiffres et comporte de préférence 32 bits.  A block 32 in FIG. 2 represents the functionalities that the installation 12 performs to transform the first message (P) into a second auxiliary message (Q). For this purpose, the first cryptography operation is used, ie the multiplication, namely that of the private key m and the message (of the point P on the elliptic curve). The second auxiliary message however exists with reference to the second group of numbers, as shown in Figure 2 block 32 with reference to the elliptic curve on pt. It is recommended for the present invention that the parameter t be a prime number which is furthermore a relatively small number as well as in the case of RSA; it has for example less than 128 digits and preferably has 32 bits.

Un bloc 34 à la figure 2 représente quelles sont les opérations que l'installation exécute pour établir la clé auxiliaire publique. La clé auxiliaire publique est désignée par m;nv à la figure 2, bloc 34, et on la calcule comme on le montre, à savoir par m-' mod rt; rt y représente l'ordre du point P, donc le message, sur la nouvelle courbe elliptique E(Z/t), la nouvelle courbe elliptique étant définie sur le paramètre t et, dans la terminologie de la présente demande, elle représente le troisième groupe de nombres. Au sens de la présente demande, mn, désigne la clé auxiliaire publique qu'on établit de telle manière que, conjointement avec la clé privée donc avec m dans le troisième groupe de nombres qui est défini par le paramètre auxiliaire, elle forme une paire de clés du système asymétrique de chiffrement.  A block 34 in FIG. 2 represents what operations the installation performs to establish the public auxiliary key. The public auxiliary key is designated m; nv in Fig. 2, block 34, and is calculated as shown, i.e., m-mod rt; rt y represents the order of the point P, therefore the message, on the new elliptic curve E (Z / t), the new elliptic curve being defined on the parameter t and, in the terminology of the present application, it represents the third group of numbers. For the purposes of the present application, mn denotes the public auxiliary key which is set up in such a way that, together with the private key and therefore with m in the third group of numbers which is defined by the auxiliary parameter, it forms a pair of keys of the asymmetric encryption system.

Un bloc 36 à la figure 2 représente quelles sont les fonctionnalités que l'installation exécute maintenant pour établir la différence R. Dans le bloc 36, le premier terme de la première équation représente la vérification tandis que le point P dans l'équation du bloc 36 est le message originel qui maintenant ne se trouve pas sur les courbes elliptiques E(Z/p) mais sur la courbe elliptique E(Z/t), t étant le paramètre. La différence existe ainsi en se référant au troisième groupe de nombres, à savoir comme point situé sur la courbe elliptique sur t.  A block 36 in FIG. 2 represents what are the functionalities that the installation now performs to establish the difference R. In block 36, the first term of the first equation represents the verification while the point P in the block equation 36 is the original message which now is not on the elliptic curves E (Z / p) but on the elliptic curve E (Z / t), where t is the parameter. The difference thus exists by referring to the third group of numbers, namely as the point on the elliptic curve on t.

Dans la présente invention d'après l'exemple de réalisation recommandé représenté à la figure 2, le point R qui représente la différence se trouve sur la courbe elliptique sur t en coordonnées projetées, c'est-àdire que R = (x: y: z). Tout comme dans le cas du RSA au bloc 26, la différence est R = 0, donc au moins les coordonnées x et y sont égales à 0 si pendant tout le calcul il n'y a pas eu de problèmes qui ont provoqué une erreur, comme par exemple une attaque DFA. Comme on le constate par le bloc 38, l'installation 18 pour calculer le deuxième message en utilisant la différence et le deuxième message auxiliaire calcule par exemple uniquement une somme io à partir des deux premières coordonnées x, y du point R pour obtenir un nouveau paramètre k. Ce paramètre k est additionné à la valeur 1 et ensuite la somme k+1 est encore additionnée au point Q, à savoir sur la courbe elliptique E(Z/p). On constate que si la différence est égale à 0, donc que les coordonnées du point R sont égales à 0, le paramètre k est aussi égal à 0, de sorte que l'opération dans le bloc 38 est une opération triviale, à savoir la multiplication par la valeur " 1 ", ce qui évidemment ne modifie en rien le deuxième message auxiliaire.  In the present invention according to the preferred embodiment shown in FIG. 2, the point R which represents the difference is on the elliptic curve over t in projected coordinates, that is, R = (x: y : z). Just as in the case of the RSA at block 26, the difference is R = 0, so at least the x and y coordinates are equal to 0 if during the entire calculation there were no problems that caused an error, like for example a DFA attack. As can be seen by the block 38, the installation 18 for calculating the second message using the difference and the second auxiliary message for example calculates only a sum io from the first two coordinates x, y of the point R to obtain a new parameter k. This parameter k is added to the value 1 and then the sum k + 1 is added again to the point Q, namely on the elliptic curve E (Z / p). It can be seen that if the difference is equal to 0, so that the coordinates of the point R are equal to 0, the parameter k is also equal to 0, so that the operation in block 38 is a trivial operation, namely the multiplication by the value "1", which obviously does not change the second auxiliary message.

Comme dans le bloc 28 pour l'exemple RSA, on obtient donc simplement dans le bloc 38 que le deuxième message auxiliaire, effecti- vement donné sur la courbe elliptique E(Z (pt)), est maintenant donné sur la courbe elliptique E(Z/p), donc dans le premier groupe de nombres pour lequel on a originellement recherché la signature.  As in block 28 for example RSA, we simply obtain in block 38 that the second auxiliary message, actually given on the elliptic curve E (Z (pt)), is now given on the elliptic curve E ( Z / p), therefore in the first group of numbers for which the signature was originally sought.

En se référant à la figure 3, on représente dans ce qui suit la conception principale sur laquelle repose la présente invention. On repré- sente à cet effet schématiquement les trois groupes de nombres. Le premier groupe de nombres 40 est le groupe qui de l'extérieur est transparent à l'utilisateur. Dans ce premier groupe de nombres, le système de cryptographie a une clé privée donnée. Le module ou la courbe elliptique qui définissent le premier groupe de nombres est donc transparent vu de l'extérieur. Il n'en va pas de même pour le deuxième et le troisième groupes de nombres. Le deuxième groupe de nombres se différencie du premier groupe en ce que dans l'exemple de RSA le module est plus grand, donc égal au produit Nt, tandis que, dans l'exemple des courbes elliptiques, la courbe elliptique E n'est pas définie sur p mais sur le produit pt. Le troisième groupe de nombres se différencie du premier groupe et du deuxième groupe en ce qu'il est défini en se référant au module t ou que la courbe elliptique est définie sur t. Le premier groupe de nombres est par conséquent certes plus grand que le troisième groupe de nombres mais il est plus petit que le deuxième groupe de nombres. En d'autres termes, il n'y a pas de conversion directe du premier groupe en deuxième groupe ou du troisième groupe en premier groupe, comme le repréio sentent les flèches 46 et 47. Comme le montre une flèche 48, une opération de signature à l'aide du paramètre permet cependant de convertir le premier groupe en deuxième groupe, on ne se réfère cependant pas au premier mes-sage mais on se réfère à la signature du deuxième message. Comme on le voit à la figure 3, la signature n'est cependant pas définie dans le premier groupe de nombres mais dans le deuxième groupe de nombres, c'est pour-quoi on l'appelle aussi deuxième message auxiliaire dans la présente de-mande.  Referring to Figure 3, the following shows the main design on which the present invention is based. For this purpose, the three groups of numbers are schematically represented. The first group of numbers 40 is the group which from the outside is transparent to the user. In this first group of numbers, the cryptographic system has a given private key. The module or elliptic curve that defines the first group of numbers is transparent from the outside. This is not the case for the second and third groups of numbers. The second group of numbers differs from the first group in that in the example of RSA the modulus is larger, therefore equal to the product Nt, whereas, in the example of the elliptic curves, the elliptic curve E is not defined on p but on the product pt. The third group of numbers differs from the first group and the second group in that it is defined by referring to the module t or that the elliptic curve is defined on t. The first group of numbers is therefore certainly larger than the third group of numbers but it is smaller than the second group of numbers. In other words, there is no direct conversion from the first group to the second group or from the third group to the first group, as shown by the arrows 46 and 47. As shown by an arrow 48, a signature operation with the help of the parameter, however, it is possible to convert the first group into a second group, however, the first message is not referred to but refers to the signature of the second message. As can be seen in FIG. 3, however, the signature is not defined in the first group of numbers but in the second group of numbers, so it is also called second auxiliary message in the present mande.

Les résultats d'une deuxième étape de vérification désignée par 50 à la figure 3 et d'une troisième étape de simple transformation désignée par 52 à la figure 3 sont soumis à une formation de la différence 54 par l'installation 16 pour établir la différence; la formation de la différence n'a maintenant plus lieu dans le premier ou dans le deuxième groupe de nombres mais dans le troisième groupe de nombres, donc dans le groupe défini par le (plus petit) paramètre t. Comme on le voit également à la figure 3, le résultat de cette formation de la différence 54 sera ensuite pris en compte lorsque le deuxième message est calculé à partir du deuxième message auxiliaire au cours d'une étape 56, comme le représente le bloc 54 à droite de l'étape 56.  The results of a second verification step designated 50 in FIG. 3 and a third simple transformation step designated 52 in FIG. 3 are discriminated 54 by facility 16 to establish the difference ; the formation of the difference no longer takes place in the first or in the second group of numbers but in the third group of numbers, therefore in the group defined by the (smaller) parameter t. As can also be seen in FIG. 3, the result of this formation of the difference 54 will then be taken into account when the second message is calculated from the second auxiliary message during a step 56, as represented by the block 54 to the right of step 56.

La figure 3 représente un diagramme qui présente un trajet composé des étapes 48, 50, 52 qu'on désigne aussi par 1, 2, 3. En d'autres termes, le résultat de l'étape 52, donc la transformation du premier message issu du premier groupe de nombres dans le troisième groupe de nombres doit être égal au résultat des étapes 1 et 2 (49, 50) s'il n'y a pas eu d'attaque. D'autres trajets sont aussi possibles dans le diagramme de la figure 3: à par-tir du deuxième message auxiliaire, le deuxième message auxiliaire est transformé par réduction modulaire à l'aide du module t dans le troisième groupe de nombres comme l'indique une flèche 60 pour arriver à une signature dans le troisième groupe de nombres. La signature dans le troisième groupe de nombres pourrait aussi conduire au troisième groupe de nombres, d'abord par réduction modulaire à l'aide de N (flèche 62) puis par réduction modulaire à l'aide du module t (flèche 64). Le deuxième message auxiliaire qui était originellement défini dans le deuxième groupe de nombres serait alors transformé par la fonctionnalité de l'installation pour former la différence d'abord dans le troisième groupe de nombres pour ensuite être soumise à un déchiffrement (dans le cas d'un chiffrement) directement dans le troisième groupe de nombres afin d'obtenir le message originel, mais dans le troisième groupe de nombres. Une flèche discontinue 66 à la figure 3 représente l'utilisation de la clé publique directement dans le troisième groupe de nombres.  FIG. 3 represents a diagram which presents a composite path of steps 48, 50, 52 which is also designated by 1, 2, 3. In other words, the result of step 52, therefore the transformation of the first message from the first group of numbers in the third group of numbers must be equal to the result of steps 1 and 2 (49, 50) if there has been no attack. Other paths are also possible in the diagram of FIG. 3: from the second auxiliary message, the second auxiliary message is transformed by modular reduction using the module t in the third group of numbers as indicated by an arrow 60 to arrive at a signature in the third group of numbers. The signature in the third group of numbers could also lead to the third group of numbers, first by modular reduction using N (arrow 62) and then by modular reduction using the module t (arrow 64). The second auxiliary message that was originally defined in the second group of numbers would then be transformed by the functionality of the facility to form the difference first in the third group of numbers and then be decrypted (in the case of an encryption) directly into the third group of numbers in order to obtain the original message, but in the third group of numbers. A broken arrow 66 in FIG. 3 represents the use of the public key directly in the third group of numbers.

La conception conforme à l'invention est particulièrement adaptée pour parer à des attaques DFA, en ce sens qu'on souhaite certes obtenir finalement le deuxième message, donc par exemple la signature, dans le premier groupe de nombres mais que le premier message est converti dans un autre groupe de nombres en utilisant une opération de signature, à savoir dans le deuxième groupe, et que le deuxième message auxiliaire est converti dans un troisième groupe de nombres pour y produire une différence entre le message originel qui a cependant également été convertie dans le troisième groupe de nombres. Cette différence sert ensuite à convertir le deuxième message auxiliaire en deuxième message recherché.  The design according to the invention is particularly suitable for dealing with DFA attacks, in that it is certainly desirable to finally obtain the second message, therefore for example the signature, in the first group of numbers but that the first message is converted. in another group of numbers using a signature operation, namely in the second group, and that the second auxiliary message is converted into a third group of numbers to produce a difference between the original message which has however also been converted into the third group of numbers. This difference is then used to convert the second auxiliary message to the second desired message.

On fait remarquer que de cette manière, comme le montre en l'illustrant la figure 3, la fonctionnalité est exactement calculée par des dé- tours comme le représente la flèche pleine 70, mais on ne suit pas ici cette flèche pleine 70. La présente invention permet donc d'une part de se passer d'un branchement " si " pour obtenir une défense DFA et d'autre part de calcu- ler le deuxième message " par des détours " pour faire des calculs dans différents groupes de nombres et pour obtenir finalement la différence 54. Les cal-culs qui mènent à la différence 54 sont cependant différents; il en résulte qu'il est très probable qu'une seule et même attaque produira des erreurs de calcul différentes, de sorte qu'en cas d'attaque on obtient une différence qui n'est pas égale à 0. Si par contre il y a une attaque telle que le premier message, par exemple sur le trajet de la flèche 70, est soumis à une signature et qu'il est ensuite vérifié dans le sens contraire à la flèche 70 pour ensuite former une différence à partir du premier message originel et du message obtenu par io la vérification, on utilise la même opération pour le calcul à l'aller et pour le calcul au retour; il en résulte qu'il pourrait ici y avoir une probabilité qu'une seule et même attaque provoque aussi la même erreur dans le calcul à l'aller et dans le calcul au retour, de sorte qu'on obtient une différence égale à 0, ce qui signifierait que l'attaque DFA ne serait pas reconnue. On remédie à cela conformément à l'invention puisqu'on utilise différentes étapes de calcul pour réaliser les étapes 48, 50 et 52; il en résulte qu'une seule et même attaque DFA provoquera aussi des erreurs différentes, de sorte que lors d'une attaque on obtient toujours une différence qui n'est pas égale à 0.  It is pointed out that in this way, as shown in FIG. 3, the functionality is exactly calculated by turns as shown by the full arrow 70, but this solid arrow 70 is not followed here. The invention thus makes it possible on the one hand to do without an "if" connection to obtain a DFA defense and, on the other hand, to calculate the second message "by detours" to make calculations in different groups of numbers and to finally get the difference 54. The cal-culs that lead to the difference 54 are however different; it follows that it is very likely that one and the same attack will produce different calculation errors, so that in case of attack we obtain a difference which is not equal to 0. If on the other hand there is has an attack such that the first message, for example on the path of the arrow 70, is subjected to a signature and is then checked in the opposite direction to the arrow 70 to then form a difference from the first original message and from the message obtained by the verification, the same operation is used for the forward calculation and for the return calculation; it follows that there could be a probability here that one and the same attack also causes the same error in the calculation on the outward and on the return calculation, so that we obtain a difference equal to 0, which would mean that the DFA attack would not be recognized. This is remedied according to the invention since different calculation steps are used to perform steps 48, 50 and 52; As a result, a single DFA attack will also cause different errors, so that during an attack you always get a difference that is not equal to 0.

En fonction de la situation, le procédé conforme à l'invention et destiné à convertir un message peut être installé sous forme matérielle ou sous forme logicielle. L'installation peut être réalisée sur un support d'enregistrement numérique, en particulier sur une disquette ou un cédérom, à l'aide de signaux de commande, lisibles par des moyens électroniques, qui pourraient interagir avec un système informatique programmable de manière à exécuter le procédé. De façon générale l'invention consiste donc aussi en un produit de programmation informatique muni d'un code de programme mémorisé sur un support lisible par une machine et destiné à exécuter le pro-cédé conforme à l'invention pour convertir un premier message en un deuxième message lorsque le produit de programmation informatique tourne sur un ordinateur. En d'autres termes, l'invention peut aussi prendre la forme d'un programme informatique muni d'un code de programme destiné à exécu- 12.04.2005 05 00259 ter le procédé pour convertir le premier message en le deuxième message lorsque le produit de programmation informatique tourne sur un ordinateur. Suivant un mode de réalisation préféré de l'invention, le premier groupe de nombres, le deuxième groupe de nombres et le troisième groupe de nombres sont définis de telle manière qu'un message du premier groupe n'est pas reproduit dans le deuxième groupe sans opération de cryptographie, il existe une reproduction d'un message du deuxième groupe dans le premier groupe, il existe une reproduction d'un message du premier groupe dans le troisième groupe sans opération de cryptographie, et il n'existe pas de reproduction d'un message du troisième groupe dans le deuxième groupe sans opération de cryptographie.  Depending on the situation, the method according to the invention and intended to convert a message can be installed in hardware form or in software form. The installation may be performed on a digital recording medium, in particular on a floppy disk or a CD-ROM, by means of electronically readable control signals which could interact with a programmable computer system so as to execute the process. In general, the invention therefore also consists of a computer programming product provided with a program code stored on a machine-readable medium and intended to execute the process according to the invention for converting a first message into a message. second message when the computer programming product is running on a computer. In other words, the invention may also take the form of a computer program provided with a program code for executing the method for converting the first message to the second message when the product computer programming runs on a computer. According to a preferred embodiment of the invention, the first group of numbers, the second group of numbers and the third group of numbers are defined in such a way that a message of the first group is not reproduced in the second group without cryptography operation, there is a reproduction of a message of the second group in the first group, there is a reproduction of a message of the first group in the third group without cryptographic operation, and there is no reproduction of a third group message in the second group without cryptographic operation.

Claims (2)

26 Revendications26 Claims 1. Dispositif pour convertir un premier message en un deuxième message en utilisant un système asymétrique de cryptographie, qui comprend une clé publique, une clé privée, une première opération de cryptographie réalisable à l'aide de la clé privée et une deuxième opération de cryptographie réalisable à l'aide de la clé publique, le premier message étant défini dans un premier groupe de nombres (40), caractérisé par: une installation (12) pour convertir le premier message en un deuxième io message auxiliaire en utilisant la première opération de cryptographie, la clé privée et un paramètre auxiliaire (t), de sorte que le deuxième message auxiliaire est défini dans un deuxième groupe de nombres (42), une installation (14) pour établir une clé auxiliaire publique, l'installation (14) d'établissement étant conçue pour établir la clé auxiliaire publique de telle manière qu'elle forme, conjointement avec la clé privée dans un troisième groupe de nombres (44) qui est défini par le paramètre auxiliaire, une paire de clés du système de chiffrement asymétrique, - une installation (16) pour établir une différence à partir du premier mes-sage et d'un résultat d'une conversion du deuxième message auxiliaire en utilisant la deuxième opération de cryptographie et la clé auxiliaire publi- que en se référant au troisième groupe de nombres, et une installation (44) pour calculer le deuxième message en utilisant la différence et le deuxième message auxiliaire.  A device for converting a first message to a second message using an asymmetric cryptographic system, which includes a public key, a private key, a first cryptographic operation that can be performed using the private key and a second cryptographic operation feasible using the public key, the first message being defined in a first group of numbers (40), characterized by: an installation (12) for converting the first message to a second auxiliary message using the first operation of cryptography, the private key and an auxiliary parameter (t), so that the second auxiliary message is defined in a second group of numbers (42), an installation (14) for establishing a public auxiliary key, the installation (14) of establishment being designed to establish the public auxiliary key in such a way that it forms, together with the private key in a third group of names res (44) which is defined by the auxiliary parameter, a pair of keys of the asymmetric encryption system, - an installation (16) for establishing a difference from the first mes-sage and a result of a conversion of the second auxiliary message using the second cryptographic operation and the public auxiliary key with reference to the third group of numbers, and an installation (44) for calculating the second message using the difference and the second auxiliary message. 2. Dispositif selon la revendication 1, caractérisé en ce que le premier message est un message non chiffré, le deuxième message est une signature du message non chiffré, la première opération de cryptographie est une opé- ration de signature et la deuxième opération de cryptographie est une opération de vérification.  2. Device according to claim 1, characterized in that the first message is an unencrypted message, the second message is a signature of the unencrypted message, the first cryptography operation is a signature operation and the second cryptography operation is a verification operation. 3. Dispositif selon la revendication 1, caractérisé en ce que le premier message est un message chiffré et le deuxième message est une version déchiffrée du premier message, et dans lequel la première opération de cryptographie est une opération de déchiffrement et la deuxième opération de cryptographie est une opération de chiffrement.  3. Device according to claim 1, characterized in that the first message is an encrypted message and the second message is a decrypted version of the first message, and wherein the first cryptography operation is a decryption operation and the second cryptography operation is an encryption operation. io 4. Dispositif selon l'une des revendications précédentes, caractérisé en ce que le système asymétrique de cryptographie est un système de cryptographie RSA, le premier groupe de nombres (40) est une classe résiduelle en se référant à 15 un module (N), le deuxième groupe de nombres (42) est une classe résiduelle en se référant au module multiplié par le paramètre auxiliaire, et le troisième groupe de nombres (44) est une classe résiduelle en se référant au paramètre auxiliaire en tant que module.  4. Device according to one of the preceding claims, characterized in that the asymmetrical cryptographic system is an RSA cryptographic system, the first group of numbers (40) is a residual class with reference to a module (N). the second group of numbers (42) is a residual class referring to the module multiplied by the auxiliary parameter, and the third group of numbers (44) is a residual class referring to the auxiliary parameter as a module. 5. Dispositif selon la revendication 4, caractérisé en ce qu'il présente en outre une installation (10) pour fournir le paramètre auxiliaire, l'installation (10) étant conçue pour que le paramètre auxiliaire fourni soit un nombre entier inférieur au module.  5. Device according to claim 4, characterized in that it further has an installation (10) to provide the auxiliary parameter, the facility (10) being designed so that the auxiliary parameter provided is a whole number less than the module. 6. Dispositif selon la revendication 5, caractérisé en ce que le nombre entier a 128 chiffres ou moins de 128 chiffres.  6. Device according to claim 5, characterized in that the integer has 128 digits or less than 128 digits. 7. Dispositif selon l'une des revendications 4 à 6, caractérisé en ce que 30 la première opération de cryptographie est une élévation à une puissance du premier message à l'aide de la clé privée, et la deuxième opération de cryptographie est une élévation à une puissance du deuxième message à l'aide de la clé publique.  7. Device according to one of claims 4 to 6, characterized in that the first cryptographic operation is an increase to a power of the first message using the private key, and the second cryptographic operation is an elevation. to a power of the second message using the public key. 8. Dispositif selon l'une des revendications 4 à 7, caractérisé en ce que l'installation (12) de conversion est conçue pour exécuter l'opération suivante: s = md mod Nt, où s représente le deuxième message, m représente le premier message, d représente la clé privée et N représente le module, t représente le paramètre auxiliaire et mod représente une réduction modulaire. i0  8. Device according to one of claims 4 to 7, characterized in that the installation (12) conversion is designed to perform the following operation: s = md mod Nt, where s represents the second message, m represents the first message, d represents the private key and N represents the module, t represents the auxiliary parameter and mod represents a modular reduction. i0 9. Dispositif selon l'une des revendications 4 à 8, caractérisé en ce que l'installation (14) destinée à établir la clé auxiliaire publique est conçue pour calculer la clé auxiliaire publique de manière à satisfaire à la relation sui-vante: etd = 1 mod cD(t), où et est la clé auxiliaire publique, d est la clé privée, mod représente la réduction modulaire, D(t) est la fonction phi d'Euler du paramètre auxiliaire t et t est le paramètre auxiliaire.  9. Device according to one of claims 4 to 8, characterized in that the installation (14) for establishing the public auxiliary key is designed to calculate the public auxiliary key so as to satisfy the following sui-vante: etd = 1 mod cD (t), where and is the public auxiliary key, d is the private key, mod is the modular reduction, D (t) is the phi function of Euler of the auxiliary parameter t and t is the auxiliary parameter. 10. Dispositif selon l'une des revendications 4 à 9, caractérisé en ce que l'installation (16) destinée à établir la différence est conçue pour établir la différence d'après l'équation suivante: f = (m-set) mod t, où f représente la différence, m représente le premier message, s représente le deuxième message auxiliaire, et représente la clé auxiliaire publique, mod représente la réduction modulaire et t est le paramètre auxiliaire.  10. Device according to one of claims 4 to 9, characterized in that the installation (16) for establishing the difference is designed to establish the difference according to the following equation: f = (m-set) mod where f represents the difference, m represents the first message, s represents the second auxiliary message, and represents the public auxiliary key, mod represents the modular reduction and t is the auxiliary parameter. 11. Dispositif selon l'une des revendications 4 à 10, caractérisé en ce que l'installation (18) destinée à calculer le deuxième message est conçue pour réaliser l'opération suivante: so = st' mod N, où so est le deuxième message, s est le deuxième message auxiliaire, f est la différence, mod représente la réduction modulaire et N est le module qui défi-nit le premier groupe de nombres (40).  11. Device according to one of claims 4 to 10, characterized in that the facility (18) for calculating the second message is designed to perform the following operation: so = st 'mod N, where so is the second message, s is the second auxiliary message, f is the difference, mod is the modular reduction and N is the module that defi ne the first group of numbers (40). 12. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'installation (18) de calcul est conçue pour calculer le deuxième message de telle manière qu'il soit défini dans le premier groupe de nombres (42).  12. Device according to one of the preceding claims, characterized in that the installation (18) calculation is designed to calculate the second message so that it is defined in the first group of numbers (42). 13. Dispositif selon l'une des revendications précédentes, caractérisé en ce io que le premier groupe de nombres comprend des nombres supérieurs au troisième groupe de nombres et des nombres inférieurs au deuxième groupe de nombres.  13. Device according to one of the preceding claims, characterized in that the first group of numbers comprises numbers greater than the third group of numbers and numbers less than the second group of numbers. 14. Dispositif selon l'une des revendications précédentes, caractérisé en ce que l'installation (18) destinée à calculer le deuxième message est conçue pour soumettre le deuxième message auxiliaire à une fonction et à un para-mètre, un élément neutre étant défini pour la fonction, et le paramètre combiné à la différence donne l'élément neutre, lorsque l'installation (12) de conversion, l'installation (14) d'établissement, l'installation (16) d'établissement ou l'installation (18) de calcul n'ont commis aucune erreur, et le paramètre combiné à la différence ne donne pas l'élément neutre lorsqu'il y a eu une erreur.  14. Device according to one of the preceding claims, characterized in that the installation (18) for calculating the second message is designed to subject the second auxiliary message to a function and a parameter, a neutral element being defined for the function, and the parameter combined with the difference gives the neutral element, when the conversion facility (12), facility (14), facility (16) or facility (18) did not make any errors, and the combined parameter with the difference does not give the neutral element when there was an error. 15. Dispositif selon la revendication 14, caractérisé en ce que la fonction est identique à la première et/ou à la deuxième opération de cryptographie.  15. Device according to claim 14, characterized in that the function is identical to the first and / or the second cryptographic operation. 16. Dispositif selon l'une des revendications 1 à 3, caractérisé en ce que le système asymétrique de cryptographie est. un système de cryptographie à courbes elliptiques, le premier groupe (40) est une courbe elliptique sur un nombre (p), le deuxième groupe (42) est une courbe elliptique sur un nombre (p) multiplié par le paramètre auxiliaire (t), le troisième groupe (44) est une courbe elliptique sur le paramètre auxiliaire (t).  16. Device according to one of claims 1 to 3, characterized in that the asymmetrical cryptographic system is. an elliptic curve cryptography system, the first group (40) is an elliptic curve over a number (p), the second group (42) is an elliptic curve over a number (p) multiplied by the auxiliary parameter (t), the third group (44) is an elliptic curve on the auxiliary parameter (t). 17. Dispositif selon la revendication 16, caractérisé en ce qu'il y a en outre une installation (10), destinée à fournir le paramètre auxiliaire, qui fournit le paramètre auxiliaire de telle manière qu'il soit un nombre premier.  17. Device according to claim 16, characterized in that there is further an installation (10), to provide the auxiliary parameter, which provides the auxiliary parameter so that it is a prime number. io 18. Dispositif selon la revendication 17, caractérisé en ce que le nombre premier a 64 chiffres ou moins.  18. Device according to claim 17, characterized in that the prime number has 64 digits or less. 19. Dispositif selon l'une des revendications 16 à 18, caractérisé en ce que la première opération de cryptographie représente une multiplication d'un point sur une courbe elliptique à l'aide de la clé privée, la deuxième opération de cryptographie représente une multiplication d'un point sur une courbe elliptique à l'aide de la clé publique, et le point sur la courbe elliptique représente le premier message.  19. Device according to one of claims 16 to 18, characterized in that the first cryptographic operation represents a multiplication of a point on an elliptic curve using the private key, the second cryptographic operation represents a multiplication of a point on an elliptic curve using the public key, and the point on the elliptic curve represents the first message. 20. Dispositif selon l'une des revendications 16 à 19, caractérisé en ce que le premier message est un point sur la courbe elliptique sur le nombre et le deuxième message est un autre point sur la courbe elliptique sur le nombre.  20. Device according to one of claims 16 to 19, characterized in that the first message is a point on the elliptic curve over the number and the second message is another point on the elliptic curve over the number. 21. Dispositif selon l'une des revendications 16 à 20, caractérisé en ce que l'installation (12) de conversion est conçue pour exécuter l'opération suivante: Q = mP sur E(Z/pt), où Q est le deuxième message auxiliaire, m est la clé privée, P est le mes-sage, p est un nombre et t est le paramètre auxiliaire.  21. Device according to one of claims 16 to 20, characterized in that the installation (12) conversion is designed to perform the following operation: Q = mP on E (Z / pt), where Q is the second auxiliary message, m is the private key, P is the mes-sage, p is a number and t is the auxiliary parameter. 22. Dispositif selon l'une des revendications 16 à 22, caractérisé en ce que l'installation (14) destinée à établir la clé auxiliaire publique est conçue pour calculer l'équation suivante: 2865086 34 min, = m-' mod rt, où rt est un ordre d'un point P situé sur la courbe elliptique sur le paramètre t, mod représente une réduction modulaire, m-' est une clé privée inversée et min est la clé auxiliaire publique.  22. Device according to one of claims 16 to 22, characterized in that the installation (14) for establishing the public auxiliary key is designed to calculate the following equation: 2865086 34 min, = m- 'mod rt, where rt is an order of a point P located on the elliptic curve on the parameter t, mod represents a modular reduction, m- 'is an inverted private key and min is the public auxiliary key. 23. Dispositif selon l'une des revendications 4 à 9, caractérisé en ce que l'installation (16) destinée à établir la différence est conçue pour calculer l'équation suivante: R = m;nvQ P sur E(Z/t), io où R représente la différence et en même temps un point sur la courbe elliptique E(Z/t), m;nv est la clé auxiliaire publique, Q est le deuxième message auxiliaire, P est le premier message et t est le paramètre auxiliaire.  23. Device according to one of claims 4 to 9, characterized in that the installation (16) for establishing the difference is designed to calculate the following equation: R = m; nvQ P on E (Z / t) where R represents the difference and at the same time a point on the elliptic curve E (Z / t), m; nv is the public auxiliary key, Q is the second auxiliary message, P is the first message and t is the parameter auxiliary. 24. Dispositif selon l'une des revendications 16 à 23, caractérisé en ce que l'installation (18) destinée à calculer le deuxième message est conçue pour calculer un paramètre auxiliaire qui est égal à une somme d'une première et d'une deuxième coordonnées projectives de la différence et l'installation (18) de calcul est conçue pour exécuter l'équation suivante: S:=(k+1) Q, où S est le deuxième message, k est le paramètre auxiliaire et Q est le deuxième message auxiliaire.  24. Device according to one of claims 16 to 23, characterized in that the facility (18) for calculating the second message is designed to calculate an auxiliary parameter which is equal to a sum of a first and a second projective coordinates of the difference and the computing facility (18) is designed to execute the following equation: S: = (k + 1) Q, where S is the second message, k is the auxiliary parameter and Q is the second auxiliary message. 25. Dispositif selon la revendication 24, caractérisé en ce que l'installation (18) de calcul est conçue pour calculer le deuxième message sous forme de 25 point situé sur la courbe elliptique sur le nombre p. 26. Dispositif selon l'une des revendications précédentes, caractérisé en ce que le premier groupe de nombres, le deuxième groupe de nombres et le troisième groupe de nombres sont définis de telle manière qu'un message du premier groupe n'est pas reproduit dans le deuxième groupe sans opération de cryptographie, en ce qu'il existe une reproduction d'un message du deuxième groupe dans le premier groupe, en ce qu'il existe une reproduction d'un message du premier groupe dans le troisième groupe sans opération de cryptographie, et en ce qu'il n'existe pas de reproduction d'un message du troisième groupe dans le deuxième groupe sans opération de cryptographie.  25. Device according to claim 24, characterized in that the computing device (18) is designed to compute the second message as a point on the elliptic curve on the number p. Device according to one of the preceding claims, characterized in that the first group of numbers, the second group of numbers and the third group of numbers are defined in such a way that a message of the first group is not reproduced in the second group without cryptographic operation, in that there is a reproduction of a message of the second group in the first group, in that there is a reproduction of a message of the first group in the third group without operation of cryptography, and in that there is no reproduction of a message of the third group in the second group without cryptographic operation. 27 Procédé pour convertir un premier message en un deuxième message en utilisant un système asymétrique de cryptographie qui comprend une clé publique, une clé privée, une première opération de cryptographie réalisable à l'aide de la clé privée et une deuxième opération de cryptographie réalisable à l'aide de la clé publique, le premier message étant défini dans un premier io groupe de nombres (40), caractérisé en ce qu'il comporte les étapes suivantes: convertir (12) le premier message en un deuxième message auxiliaire en utilisant la première opération de cryptographie, la clé privée et un para-mètre auxiliaire (t), de sorte que le deuxième message auxiliaire est défini dans un deuxième groupe de nombres (42), établir (14) une clé auxiliaire publique, l'installation (14) d'établissement étant conçue pour établir la clé auxiliaire publique de telle manière que, conjointement avec la clé privée dans un troisième groupe de nombres (44) qui sont définis par le paramètre auxiliaire, elle forme une paire de clés du système asymétrique de chiffrement, établir (16) une différence à partir du premier message et d'un résultat issu d'une conversion du deuxième message auxiliaire en utilisant la deuxième opération de cryptographie et la clé auxiliaire publique en se référant au troisième groupe de nombres, et calculer (44) le deuxième message en utilisant la différence et le deuxième message auxiliaire.  A method for converting a first message to a second message using an asymmetric cryptographic system that includes a public key, a private key, a first cryptographic operation that can be performed using the private key, and a second cryptographic operation that is using the public key, the first message being defined in a first group of numbers (40), characterized in that it comprises the following steps: converting (12) the first message into a second auxiliary message by using the first cryptographic operation, the private key and an auxiliary parameter (t), so that the second auxiliary message is defined in a second group of numbers (42), establish (14) a public auxiliary key, the installation ( 14) being designed to establish the public auxiliary key such that, together with the private key in a third group of numbers (44) which is t defined by the auxiliary parameter, it forms a pair of keys of the asymmetric encryption system, establish (16) a difference from the first message and a result from a conversion of the second auxiliary message using the second operation of cryptography and the public auxiliary key by referring to the third group of numbers, and calculating (44) the second message using the difference and the second auxiliary message. 28. Programme informatique comportant un code de programme pour exécuter le procédé selon la revendication 27 lorsque- le programme informatique tourne sur un ordinateur.  A computer program comprising program code for performing the method of claim 27 when the computer program is running on a computer.
FR0500259A 2004-01-12 2005-01-11 DEVICE AND METHOD FOR CONVERTING A FIRST MESSAGE TO A SECOND MESSAGE Expired - Fee Related FR2865086B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004001659A DE102004001659B4 (en) 2004-01-12 2004-01-12 Apparatus and method for converting a first message into a second message

Publications (2)

Publication Number Publication Date
FR2865086A1 true FR2865086A1 (en) 2005-07-15
FR2865086B1 FR2865086B1 (en) 2006-08-04

Family

ID=34683956

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0500259A Expired - Fee Related FR2865086B1 (en) 2004-01-12 2005-01-11 DEVICE AND METHOD FOR CONVERTING A FIRST MESSAGE TO A SECOND MESSAGE

Country Status (2)

Country Link
DE (1) DE102004001659B4 (en)
FR (1) FR2865086B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112613882A (en) * 2020-12-29 2021-04-06 成都知道创宇信息技术有限公司 Distributed signature system and management method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005038228A1 (en) * 2005-08-12 2007-02-15 Giesecke & Devrient Gmbh Cryptographic method for e.g. smart card, involves determining test result that assumes result of affected method-execution while determining result such that result is incorrect when rest result points to affected method-execution

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1237322A2 (en) * 2001-03-02 2002-09-04 Hitachi, Ltd. Fault detection method for cryptographic process
WO2003024017A2 (en) * 2001-09-04 2003-03-20 Stmicroelectronics S.A. Method for making secure a secret quantity

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2819663B1 (en) * 2001-01-18 2003-04-11 Gemplus Card Int DEVICE AND METHOD FOR EXECUTING A CRYPTOGRAPHIC ALGORITHM

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1237322A2 (en) * 2001-03-02 2002-09-04 Hitachi, Ltd. Fault detection method for cryptographic process
WO2003024017A2 (en) * 2001-09-04 2003-03-20 Stmicroelectronics S.A. Method for making secure a secret quantity

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112613882A (en) * 2020-12-29 2021-04-06 成都知道创宇信息技术有限公司 Distributed signature system and management method

Also Published As

Publication number Publication date
FR2865086B1 (en) 2006-08-04
DE102004001659A1 (en) 2005-08-04
DE102004001659B4 (en) 2007-10-31

Similar Documents

Publication Publication Date Title
EP2345202B1 (en) Digital signature method in two steps
EP2380305B1 (en) Cryptography circuit particularly protected against information-leak observation attacks by the ciphering thereof
FR2986631A1 (en) DEVICE AND METHOD FOR GENERATING A MESSAGE AUTHENTICATION CODE
WO2013088065A1 (en) Method for generating prime numbers proven suitable for chip cards
EP2282441A1 (en) Secure method for reconstructing a reference measurement for confidential data from a noisy measurement of this data, in particular for the generation of cryptographic keys
EP2415199B1 (en) Method for performing a cryptographic task in an electronic component
EP2166696B1 (en) protection of encrypted data Integrity using an intermediate cipher state to generate a signature
FR3029719A1 (en) ENCRYPTION METHOD WITH DYNAMIC CONFUSION AND DIFFUSION LAYERS
EP3724799A1 (en) Technique for protecting a cryptographic key by means of a user password
FR3024808A1 (en) ELLIPTICAL CURVED CRYPTOGRAPHY METHOD COMPRISING ERROR DETECTION
FR2865086A1 (en) Ciphered message converting device for use in cryptographic system, has message establishing unit producing deciphered message from auxiliary message, and difference between ciphered message and result of conversion of auxiliary message
EP2336931B1 (en) Method for signature verification
EP1387519A2 (en) Method for protecting an electronic circuit against fault-based attacks
EP2153575B1 (en) Obtaining derived values depending on a secret master value
EP1989820B1 (en) Cryptographic hashing device and method
WO2004006497A1 (en) Cryptographic method and devices for facilitating calculations during transactions
WO1998051038A1 (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
EP3799347B1 (en) Securing of des encryption and reverse des decryption
EP1642413B1 (en) Method for encoding/decoding a message and associated device
EP4183098A1 (en) Device, method and program for secure communication between white boxes
EP3340096B1 (en) Method for configuring a cryptographic program intended for being run by a terminal
FR2995110A1 (en) Method for optimizing use of e.g. memory, of electronic device i.e. smart card, involves protecting smart card from physical attacks by masking from substitution box and inverse substitution box upon implementing cryptographic algorithm
WO2002001792A1 (en) Public key cryptographic methods based on the difficulty of finding natural values of an endomorphism of a module on any ring or algebra
FR2940485A1 (en) Data e.g. cryptographic key portion, storing method for chip card, involves randomly determining value, and storing word obtained by shifting numeric word with number of bits based on randomly determined value
FR2878390A1 (en) Non-public key cryptographic system for e.g. SEED encryption system, has compensation unit generating and storing compensation data such that sum of Hamming distances for encoded data and compensation data is maintained constant

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 16

ST Notification of lapse

Effective date: 20210905