WO2005088895A1 - Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique - Google Patents

Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique Download PDF

Info

Publication number
WO2005088895A1
WO2005088895A1 PCT/FR2005/000539 FR2005000539W WO2005088895A1 WO 2005088895 A1 WO2005088895 A1 WO 2005088895A1 FR 2005000539 W FR2005000539 W FR 2005000539W WO 2005088895 A1 WO2005088895 A1 WO 2005088895A1
Authority
WO
WIPO (PCT)
Prior art keywords
algorithm
data
cryptographic algorithm
random value
data processing
Prior art date
Application number
PCT/FR2005/000539
Other languages
English (en)
Inventor
Régis BEVAN
Christophe Giraud
Hugues Thiebeauld De La Crouee
Original Assignee
Oberthur Card Systems S.A.
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 Oberthur Card Systems S.A. filed Critical Oberthur Card Systems S.A.
Priority to US10/592,070 priority Critical patent/US8386791B2/en
Publication of WO2005088895A1 publication Critical patent/WO2005088895A1/fr

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Definitions

  • the present invention relates to a secure data processing method, based in particular on a cryptographic algorithm.
  • a data processing method implements a cryptographic algorithm in order to generate output data from input data by means of a secret key.
  • the secret key is for example stored in a microcircuit card, such as a smart card.
  • the cryptographic algorithm can in this case be implemented within a microprocessor carried by the smart card.
  • Such attacks are for example attacks known under the term SPA (from the English "Simple Power Analysis") or DPA (from the English: "Differential Power Analysis”), which essentially consist in measuring the currents put implemented during the execution of the cryptographic algorithm in order to deduce the secret key therefrom.
  • the intermediate data of the cryptographic algorithm and thus the measurable currents, are modified by the random number (mask) and their observation will therefore not allow the secret key to be deduced.
  • masking can, for example, involve the modification of certain calculation steps and certain data structures by means of the random number, in particular the S-boxes or SBOX in English.
  • the cryptographic algorithm includes the execution of several sub-algorithms, it is possible to use several different random numbers, for example one random number per sub-algorithm.
  • DFA attacks from the English: "Differential Fault Analysis”
  • DFA attacks consist in generating faults during the execution of the cryptographic algorithm, for example by disturbing the electronic component on which it is executed.
  • Such a disturbance can for example be achieved by briefly lighting the electronic component with a light source or by generating voltage peaks at the terminals of the component beyond its specifications.
  • the disturbance then induces an error in the results of the cryptographic algorithm, which in certain conditions makes it easier for the attacker to obtain the secret key.
  • the countermeasures described above do not allow DFA attacks to be countered.
  • One of these techniques consists in executing the cryptographic algorithm for the first time, then in executing a second cryptographic algorithm, the result of which makes it possible to verify that the first algorithm was performed without fail.
  • a second cryptographic algorithm can be identical to the first cryptographic algorithm, in which case the second algorithm is applied to the input data and the correct execution of the first is verified. algorithm by comparing the results of the two algorithms.
  • the second cryptographic algorithm may be the reverse algorithm of the first cryptographic algorithm (when such a reverse algorithm exists), in which case the second algorithm is applied to the output data obtained by the first algorithm and it is verified that the result of the second cryptographic algorithm corresponds well to the input data of the first cryptographic algorithm.
  • the first algorithm went without fail.
  • This solution used as it is, however, is not protected against a specific type of DFA attack, in which the same error is generated twice, or an error and its complement. Indeed, in this case, the data calculated during the first cryptographic algorithm and those calculated during the second cryptographic algorithm are modified by the attack in a similar manner. The faults generated by the attack are therefore not detectable by the simple comparison of the data involved in these algorithms.
  • the invention provides a secure data processing method, comprising the following steps: - generation of a first random value; - execution of a first cryptographic algorithm using the first random value; - generation of a second random value; - execution of a second cryptographic algorithm using the second random value and generating a result allowing the verification of the correct execution of the first algorithm.
  • the generation of the second random value can be carried out before the execution of the first cryptographic algorithm.
  • random value is understood here to mean a value of the type generated by a processor in order to be unpredictable by any user of the system (sometimes called pseudo-random value).
  • the execution of the first cryptography algorithm involves in at least one calculation a first datum and generates an output datum from an input datum and the result is a verification datum
  • the method comprises for example a step of comparison of the verification data with the first data for verification of the correct execution of the first algorithm.
  • the data used, and in particular the first data and the output data can be intermediate data of a cryptographic algorithm.
  • the second algorithm is identical to the first algorithm and is applied to the input data, and said first data is the output data.
  • the second algorithm is the inverse of the first algorithm and is applied to the output data, and said first data is the input data.
  • the first datum is an intermediate datum used during the first cryptographic algorithm.
  • the second cryptographic algorithm can then correspond to only part of the first cryptographic algorithm.
  • the first cryptographic algorithm is for example a symmetric key cryptographic algorithm. More precisely, it may be a DES or AES type algorithm. According to these possibilities, the key derivation can be masked by means of the first random value.
  • the first cryptographic algorithm can moreover be a DES or AES type algorithm masked by means of the first random value.
  • the first cryptographic algorithm can therefore be an algorithm of the masked DES type and with hidden key derivation or an algorithm of the masked AES type and with hidden key derivation. The security of the data processing process is thereby reinforced.
  • the first cryptographic algorithm is a mobile phone authentication algorithm.
  • the first cryptographic algorithm is masked by the first random value and the second cryptographic algorithm is masked by the second random value.
  • the data processing method is for example implemented in a microcircuit card.
  • the invention also provides a data processing device comprising means for generating a first random value, means for implementing a first cryptographic algorithm using the first random value, involving in at least one calculation a first data item and generating a data item output from an input data, means for generating a second random value, means for implementing a second cryptographic algorithm using the second random value and generating verification data, and means for comparing the data of verification at the first datum for verification of the correct execution of the first algorithm.
  • This device is for example a microcircuit card.
  • the invention finally proposes a computer program comprising instructions capable of implementing the method mentioned above, when said instructions are executed by a microprocessor.
  • FIG. 1a schematically represents a data processing device in which the invention
  • - Figure 1b shows a possible embodiment of the device of Figure 1a
  • - Figure 2 illustrates a first embodiment of the method according to the invention
  • - Figure 3 illustrates a second possible embodiment of the method according to the invention.
  • FIG. 1a schematically represents a data processing device 40 in which the present invention is implemented.
  • This device 40 comprises a microprocessor 10, with which a memory 20 is associated, for example by means of a bus 50.
  • the data processing device 40, and precisely the microprocessor 10 which it incorporates, can exchange data with external devices by means of a communication interface 30.
  • FIG. 1a schematically represents a data processing device in which the invention is implemented.
  • This device 40 comprises a microprocessor 10, with which a memory 20 is associated, for example by means of a bus 50.
  • the data processing device 40, and precisely the microprocessor 10 which it incorporates, can exchange data with external devices by means of a communication interface 30.
  • FIG. 1a schematically shows the transmission of an input data item E received from an external device (not shown) and transmitted from the communication interface 30 to the microprocessor 10 Similarly, the transmission of output data S from the microprocessor 10 to the communication interface 30 is shown for an external device.
  • the input data E and the output data S appear on two different arrows, the physical means which allow the communication between the microprocessor 10 and the interface 30 can be achieved by unique means, for example a serial communication port or a bus.
  • the microprocessor 10 is capable of executing software which allows the data processing device 40 to execute a method in accordance with the invention, examples of which will be given below.
  • the software is composed of a series of control instructions for the microprocessor 10 which are for example stored in the memory 20.
  • FIG. 1b represents a microcircuit card which constitutes a data processing device according to the invention as shown in FIG. 1a.
  • the communication interface 30 is in this case produced by means of the contacts of the microcircuit card.
  • the microcircuit card incorporates a microprocessor 10 and a memory 20 as shown in FIG. 1 a.
  • FIG. 2 represents in the form of a flowchart the steps of a first example of a secure data processing method according to the invention.
  • step E202 the microprocessor 10 receives from the communication interface 30 an input data item E which must be processed by means of a cryptographic algorithm within the data processing device 40, in order to obtain an output data S.
  • a cryptographic algorithm in a general framework; in practice, this cryptographic algorithm may allow for example encryption, decryption, signature or authentication of the input data.
  • step E204 the microprocessor 10 generates a first random value A1.
  • step E206 a cryptographic algorithm F "masked by means of the first random value A1 is applied to the input data E.
  • the cryptographic algorithm F is for example a symmetric key algorithm which implements a secret key K. In one possible embodiment, it is an algorithm of the DES type.
  • the implementation of the cryptographic algorithm FK in step E206 is masked with the first random value A1 generated in step E204 as mask.
  • the masking used can be one or more masking (s) among those described in patent applications WO 99/48239 and FR 2 820 577.
  • the application of the FK cryptographic algorithm to the input data E results in the output data S. It can be noted that, for a given cryptographic algorithm F, the result (output data S) depends only on the input data E and on the key K used and does not depend on the mask A1 (first random value) used.
  • the mask A1 in fact makes it possible to modify certain data and / or intermediate steps of the FK algorithm, in order to complicate the detection of the secret key K, without however influencing the final result thereof.
  • step E208 in which the microprocessor 10 generates a second random value A2.
  • the step E208 of generating a second random value A2 could be realized at another time, for example at the time of generation of the first random value A1 (step E204).
  • the second random value A2 is generated randomly independently of the first random value A1 and will therefore in the most general case be different from the first random value A1.
  • step E210 to which the cryptographic algorithm FK already used in step E206 is applied to the input data E, this time using the second random value A2 as a mask.
  • the cryptographic algorithm FK applied to the input data E and masked by the second random value A2 gives the result of a verification data V.
  • the result of the cryptographic algorithm FK applied to the data of input E does not depend on the mask (A1 or A2) used.
  • the result obtained in step E210 (verification data V) with the mask A2 should therefore be equal to the result obtained in step E206 (output data S) with the mask A1.
  • the verification data V must therefore be equal to the output data S.
  • step E212 (which follows step E210) if the verification data V is indeed equal to the output data S. If so, that is to say when the comparison of the results of the cryptographic algorithms applied respectively to steps E206 and E210 makes it possible to assume that these were carried out without faults, we pass to the step E214 where it is therefore possible to continue the processing carried out by the microprocessor 10, for example using the output data S obtained. Indeed, it is assumed in this case that the execution of the cryptographic algorithm which made it possible to obtain this output data item S was not the subject of an attack. On the other hand, if it is determined in step E212 that the verification data V is different from the output data S, we go to step E216 where we conclude that the secure algorithm for obtaining has failed of the output value S.
  • step E216 the use and / or communication of the output value S outside the microcircuit card will be avoided in order to avoid any possible fraudulent use of an output data item obtained by means of a cryptographic algorithm. whose performance has been disrupted. It is further noted that the secure data processing method which has just been described is protected against attack by faults during which the same fault would be applied in steps E206 and E210.
  • the method begins in step E302 by the reception by means of the communication interface 30 of input data E by the microprocessor 10.
  • the microprocessor 10 After reception of the input data E, the microprocessor 10 generates a first random value A1 to step E304.
  • the microprocessor can then, in step E306, apply to the input data E a cryptographic algorithm FK with a symmetric secret key K and masked by means of the first random value A1.
  • the cryptographic algorithm used is of the DES type, the masking of which can be carried out during the derivation of the key, as described in patent application FR 2 820 577.
  • step E308 the microprocessor 10 generates a second random value A2.
  • step E310 a second cryptographic algorithm GK, which is the inverse of the cryptographic algorithm FK, to the output data S which have just been obtained.
  • the second cryptographic algorithm GK is moreover masked by means of the second random value A2. This masking is for example achieved by masking the step of deriving the key of the DES algorithm.
  • the result V of the application of the second GK cryptographic algorithm, inverse of the first FK cryptographic algorithm, to output data S is equal to input data E.
  • a difference between the result V of the second cryptographic algorithm GK and the input data E therefore indicates an error in at least one of the respective executions of the cryptographic algorithms FK and GK , and therefore signals a risk of attack by generation of faults.
  • next step E312 therefore consists in verifying the equality of the result
  • step E312 If it is determined in step E312 that the verification datum V is not equal to the input datum E, which indicates a risk that the execution of the first cryptographic algorithm FK has been attacked by generation of faults, we goes to step E316 in which the microprocessor 10 considers the failure of the correct execution of the first cryptographic algorithm FK and consequently the non-availability of a secure output data item.
  • the consequence of the failure naturally depends on the application envisaged and generally consists in not using the output data S calculated in step E306.
  • step E312 If, on the contrary, it is determined in step E312 that the verification data V obtained by application of the second cryptographic algorithm GK is indeed equal to the input data E, the method implemented by the microprocessor 10 can continue normally, by example by using the output data S (step E314), since it is then assumed that the execution of the cryptographic algorithms was carried out without error and therefore without attack by generation of faults. It is further noted that the data processing method which has just been described is secure against attacks with generation of particularly sophisticated faults. Indeed, an attacker can generate a fault in step p of the FK cryptographic algorithm (.e.
  • the cryptographic algorithms mentioned as examples in the above description are of the DES type, the invention applies to other types of cryptographic algorithms, in particular the algorithms of the type AES and authentication algorithms for mobile telephony, such as those compliant with the GSM standard or the UMTS standard.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé de traitement de données sécurisé, comportant les étapes suivantes: génération (E204 ; E304) d'une première valeur aléatoire (A1) ; exécution (E206 ; E306) d'un premier algorithme cryptographique (FK) utilisant la première valeur aléatoire (A1) ; génération (E208 ; E308) d'une seconde valeur aléatoire (A2) ; exécution (E210 ; E310) d'un second algorithme cryptographique (FK ; GK) utilisant la seconde valeur aléatoire (A2) et générant un résultat (V) permettant la vérification de l'exécution correcte du premier algorithme (FK).

Description

Procédé de traitement de données sécurisé, basé notamment sur un algorithme cryptographique
La présente invention concerne un procédé de traitement de données sécurisé, basé notamment sur un algorithme cryptographique. Dans certaines applications, un procédé de traitement de données met en œuvre un algorithme cryptographique afin de générer des données de sortie à partir de données d'entrée au moyen d'une clé secrète. La clé secrète est par exemple stockée dans une carte à microcircuit, telle qu'une carte à puce. L'algorithme cryptographique peut dans ce cas être mis en œuvre au sein d'un microprocesseur porté par la carte à puce. On a déjà cherché à protéger ce type de procédé contre des attaques visant à déterminer la clé secrète. De telles attaques sont par exemple les attaques connues sous le vocable SPA (de l'anglais "Simple Power Analysis") ou DPA (de l'anglais : "Differential Power Analysis"), qui consistent pour l'essentiel à mesurer les courants mis en œuvre lors de l'exécution de l'algorithme cryptographique afin d'en déduire la clé secrète. Afin de contrecarrer ce type d'attaques, il a déjà été proposé, par exemple dans la demande de brevet WO 99/48239, d'utiliser une technique dite de masquage. Selon cette technique, on génère un nombre aléatoire, à partir duquel on dérive un masque, puis on combine au cours de l'algorithme cryptographique le masque avec les données d'entrée (ou éventuellement des données intermédiaires), par exemple au moyen d'une opération logique "OU exclusif (ou XOR). A une étape ultérieure de l'algorithme cryptographique, par exemple à la fin de celui-ci, les données obtenues sont à nouveau combinées avec un masque, ce qui permet d'obtenir la donnée de sortie telle qu'elle aurait été obtenue sans masquage. Toutefois, les données intermédiaires de l'algorithme cryptographique, et ainsi les courants mesurables, sont modifiés par le nombre aléatoire (masque) et leur observation ne permettra donc pas de déduire la clé secrète. Dans le cas d'un procédé du type DES (de l'anglais Data Encryption Standard), le masquage peut par exemple impliquer la modification de certaines étapes de calcul et certaines structures de données au moyen du nombre aléatoire, en particulier les boîtes-S ou SBOXen anglais. Lorsque l'algorithme cryptographique comprend l'exécution de plusieurs sous-algorithmes, il est possible d'utiliser plusieurs nombres aléatoires différents, par exemple un nombre aléatoire par sous-algorithme. Toutefois, dans un environnement à ressources restreintes telle qu'une carte à microcircuit, on utilise un nombre aléatoire unique pour l'ensemble de l'algorithme permettant l'obtention des données de sortie à partir des données d'entrée, afin d'accélérer le traitement des données, comme cela est mentionné dans la demande de brevet WO 99/48239. En effet, l'obtention du nombre aléatoire, et la modification des boîtes-S dans le cas du procédé DES, nécessitent un temps équivalent à l'algorithme cryptographique stricto sensu. Dans le cadre de la technique de masquage qui vient d'être exposée, d'autres solutions sont connues pour protéger l'exécution d'un algorithme cryptographique contre les attaques SPA ou DPA par l'utilisation d'un nombre aléatoire au cours de la mise en œuvre de l'algorithme. La demande de brevet FR 2 820 577 donne un autre exemple de ce type, en proposant de masquer la dérivation de la clé secrète. Une autre famille d'attaques est constituée par les attaques dites DFA (de l'anglais: "Differential Fault Analysis"). Ces attaques DFA consistent à engendrer des fautes lors de l'exécution de l'algorithme cryptographique, par exemple en perturbant le composant électronique sur lequel il s'exécute. Une telle perturbation peut par exemple être réalisée en éclairant brièvement le composant électronique avec une source lumineuse ou en générant des pics de tension aux bornes du composant au-delà de ses spécifications. La perturbation induit alors une erreur dans les résultats de l'algorithme cryptographique, qui facilite dans certaines conditions l'obtention de la clé secrète par l'attaquant. Vu les différences de nature entre les attaques de ce type et les attaques SPA ou DPA, les contre-mesures décrites ci-dessus (techniques de masquage) ne permettent pas de contrecarrer les attaques DFA. Pour répondre aux attaques DFA, on a ainsi dû proposer de nouvelles techniques de sécurisation de l'algorithme cryptographique. L'une de ces techniques consiste à exécuter une première fois l'algorithme cryptographique, puis à exécuter un second algorithme cryptographique dont le résultat permet de vérifier que le premier algorithme a été effectué sans faute. Une telle approche est par exemple décrite dans la demande de brevet FR 2 838 262. Le second algorithme cryptographique utilisé peut être identique au premier algorithme cryptographique, auquel cas on applique le second algorithme aux données d'entrée et on vérifie la bonne exécution du premier algorithme par comparaison des résultats des deux algorithmes. En variante, le second algorithme cryptographique peut être l'algorithme inverse du premier algorithme cryptographique (quand un tel algorithme inverse existe), auquel cas on applique le second algorithme aux données de sortie obtenues par le premier algorithme et on vérifie que le résultat du second algorithme cryptographique corresponde bien aux données d'entrée du premier algorithme cryptographique. On vérifie donc ici aussi que le premier algorithme s'est déroulé sans faute. Cette solution utilisée telle quelle n'est toutefois pas protégée contre un type spécifique d'attaques DFA, dans lesquelles on génère deux fois la même erreur, ou une erreur et son complémentaire. En effet, dans ce cas, les données calculées lors du premier algorithme cryptographique et celles calculées lors du second algorithme cryptographique sont modifiées par l'attaque de manière similaire. Les fautes engendrées par l'attaque ne sont alors pas détectables par la simple comparaison des données impliquées dans ces algorithmes. Afin d'obtenir une protection contre ce dernier type d'attaques, l'invention propose un procédé de traitement de données sécurisé, comportant les étapes suivantes : - génération d'une première valeur aléatoire ; - exécution d'un premier algorithme cryptographique utilisant la première valeur aléatoire ; - génération d'une seconde valeur aléatoire ; - exécution d'un second algorithme cryptographique utilisant la seconde valeur aléatoire et générant un résultat permettant la vérification de l'exécution correcte du premier algorithme. Ainsi, même si les deux algorithmes cryptographiques subissent chacun une faute du même type dans le but d'obtenir l'égalité forcée entre la première donnée et la donnée de vérification et ainsi d'empêcher la détection de l'attaque, les fautes auront en fait des conséquences différentes grâce à l'utilisation de deux valeurs aléatoires différentes et l'attaque sera donc détectée. Les étapes ne sont bien sûr pas nécessairement exécutées dans l'ordre dans lequel elles sont présentées ci-dessus : la génération de la seconde valeur aléatoire peut être réalisée avant l'exécution du premier algorithme cryptographique. Par ailleurs, on entend ici par valeur aléatoire une valeur du type de celle générée par un processeur dans le but d'être imprévisible par tout utilisateur du système (parfois dénommée valeur pseudo-aléatoire). Lorsque l'exécution du premier algorithme cryptographie implique dans au moins un calcul une première donnée et génère une donnée de sortie à partir d'une donnée d'entrée et que le résultat est une donnée de vérification, le procédé comprend par exemple une étape de comparaison de la donnée de vérification à la première donnée pour vérification de l'exécution correcte du premier algorithme. Naturellement, les données utilisées, et notamment la première donnée et la donnée de sortie, peuvent être des données intermédiaires d'un algorithme cryptographique. Selon un premier mode de réalisation, le second algorithme est identique au premier algorithme et est appliqué à la donnée d'entrée, et ladite première donnée est la donnée de sortie. Selon un second mode de réalisation, le second algorithme est l'inverse du premier algorithme et est appliqué à la donnée de sortie, et ladite première donnée est la donnée d'entrée. Ces modes de réalisation sont pratiques à mettre en œuvre du fait de l'identité (premier mode) ou de la proximité (second mode) des deux algorithmes. En variante, la première donnée est une donnée intermédiaire utilisée au cours du premier algorithme cryptographique. Le second algorithme cryptographique peut alors correspondre à une partie seulement du premier algorithme cryptographique. Le premier algorithme cryptographique est par exemple un algorithme cryptographique à clé symétrique. Il peut s'agir plus précisément d'un algorithme du type DES ou du type AES. Selon ces possibilités, la dérivation de clé peut être masquée au moyen de la première valeur aléatoire. De manière plus générale, le premier algorithme cryptographique peut d'ailleurs être un algorithme du type DES ou du type AES masqué au moyen de la première valeur aléatoire. Selon une possibilité de mise en œuvre, le premier algorithme cryptographique peut donc être un algorithme du type DES masqué et à dérivation de clé masquée ou un algorithme du type AES masqué et à dérivation de clé masquée. La sécurité du procédé de traitement de données s'en trouve renforcée. Selon une autre possibilité de mise en œuvre, le premier algorithme cryptographique est un algorithme d'authentification de téléphonie mobile. Selon un exemple d'utilisation des valeurs aléatoires, le premier algorithme cryptographique est masqué par la première valeur aléatoire et le second algorithme cryptographique est masqué par la seconde valeur aléatoire. Cette solution permet une différenciation particulièrement efficace de la première donnée et de la donnée de vérification en cas d'attaque de chacun des algorithmes cryptographiques par une faute du même type. Le procédé de traitement de données est par exemple mis en œuvre dans une carte à microcircuit. L'invention propose également un dispositif de traitement de données comprenant des moyens pour générer une première valeur aléatoire, des moyens pour mettre en œuvre un premier algorithme cryptographique utilisant la première valeur aléatoire, impliquant dans au moins un calcul une première donnée et générant une donnée de sortie à partir d'une donnée d'entrée, des moyens pour générer une seconde valeur aléatoire, des moyens pour mettre en œuvre un second algorithme cryptographique utilisant la seconde valeur aléatoire et générant une donnée de vérification, et des moyens pour comparer la donnée de vérification à la première donnée pour vérification de l'exécution correcte du premier algorithme. Ce dispositif est par exemple une carte à microcircuit. L'invention propose enfin un programme d'ordinateur comprenant des instructions aptes à mettre en œuvre le procédé évoqué auparavant, lorsque lesdites instructions sont exécutées par un microprocesseur. D'autres caractéristiques et avantages de la description apparaîtront à la lumière de la description qui suit, faite en référence aux dessins annexés, dans lesquels : - la figure 1 a représente schématiquement un dispositif de traitement de données dans lequel est mise en œuvre l'invention ; - la figure 1b représente une réalisation possible du dispositif de la figure 1a ; - la figure 2 illustre un premier mode de réalisation du procédé selon l'invention ; - la figure 3 illustre un second mode de réalisation possible du procédé selon l'invention. La figure 1a représente schématiquement un dispositif de traitement de données 40 dans lequel la présente invention est mise en œuvre. Ce dispositif 40 comprend un microprocesseur 10, auquel est associée une mémoire 20, par exemple au moyen d'un bus 50. Le dispositif de traitement de données 40, et précisément le microprocesseur 10 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 30. On a schématiquement représenté sur la figure 1a la transmission d'une donnée d'entrée E reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 30 au microprocesseur 10. De manière similaire, on a représenté la transmission d'une donnée de sortie S du microprocesseur 10 vers l'interface de communication 30 à destination d'un dispositif extérieur. Bien que, pour l'illustration, les données d'entrée E et les données de sortie S figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 10 et l'interface 30 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 10 est apte à exécuter un logiciel qui permet au dispositif de traitement de données 40 d'exécuter un procédé conforme à l'invention dont des exemples seront donnés plus loin. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 10 qui sont par exemple stockées dans la mémoire 20. En variante, l'ensemble microprocesseur 10 - mémoire 20 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en œuvre des différentes étapes du procédé de traitement de données sécurisé. La figure 1b représente une carte à microcircuit qui constitue un dispositif de traitement de données conforme à l'invention tel que représenté à la figure 1a. L'interface de communication 30 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit. La carte à microcircuit incorpore un microprocesseur 10 et une mémoire 20 comme représenté sur la figure 1 a. La figure 2 représente sous forme d'un organigramme les étapes d'un premier exemple de procédé de traitement de données sécurisé conforme à l'invention. Le procédé commence à l'étape E202 où le microprocesseur 10 reçoit de l'interface de communication 30 une donnée d'entrée E qui doit être traitée au moyen d'un algorithme cryptographique au sein du dispositif de traitement de données 40, et ce afin d'obtenir une donnée de sortie S. On décrit ici le cas d'un algorithme cryptographique dans un cadre général ; en pratique, cet algorithme cryptographique pourra permettre par exemple un encryptage, un décryptage, une signature ou une authentification des données d'entrée. Lorsque les données d'entrée E sont reçues par le microprocesseur 10 (étape E202), on passe à l'étape E204 où le microprocesseur 10 génère une première valeur aléatoire A1. On passe alors à l'étape E206 à laquelle on applique aux données d'entrée E un algorithme cryptographique F« masqué au moyen de la première valeur aléatoire A1. L'algorithme cryptographique F« est par exemple un algorithme à clé symétrique qui met en oeuvre une clé secrète K. Dans un mode de réalisation possible, il s'agit d'un algorithme du type DES. La mise en œuvre de l'algorithme cryptographique FK à l'étape E206 est masquée avec pour masque la première valeur aléatoire A1 générée à l'étape E204. A titre d'exemple, le masquage utilisé peut être un ou plusieurs masquage(s) parmi ceux décrits dans les demandes de brevet WO 99/48239 et FR 2 820 577. L'application de l'algorithme cryptographique FK aux données d'entrée E a pour résultat les données de sortie S. On peut remarquer que, pour un algorithme cryptographique F donné, le résultat (données de sortie S) ne dépend que des données d'entrée E et de la clé K utilisée et ne dépend pas du masque A1 (première valeur aléatoire) utilisé. Comme vu en introduction, le masque A1 permet en effet de modifier certaines données et/ou étapes intermédiaires de l'algorithme FK, afin de compliquer la détection de la clé secrète K, sans toutefois influer sur le résultat final de celui-ci. Lorsque les données de sortie S ont été obtenues à l'étape E206, on passe à l'étape E208 à laquelle le microprocesseur 10 génère une seconde valeur aléatoire A2. En variante, l'étape E208 de génération d'une seconde valeur aléatoire A2 pourrait être réalisée à un autre moment, par exemple au moment de la génération de la première valeur aléatoire A1 (étape E204). Dans tous les cas, la seconde valeur aléatoire A2 est générée de manière aléatoire indépendamment de la première valeur aléatoire A1 et sera donc dans le cas le plus général différente de la première valeur aléatoire A1. On passe alors à l'étape E210, à laquelle on applique aux données d'entrée E l'algorithme cryptographique FK déjà utilisé à l'étape E206, en utilisant cette fois comme masque la seconde valeur aléatoire A2. L'algorithme cryptographique FK appliqué aux données d'entrée E et masqué par la seconde valeur aléatoire A2 donne pour résultat une donnée de vérification V. Comme on l'a vu précédemment, le résultat de l'algorithme cryptographique FK appliqué aux données d'entrée E ne dépend pas du masque (A1 ou A2) utilisé. En fonctionnement normal, le résultat obtenu à l'étape E210 (donnée de vérification V) avec le masque A2 devrait donc être égal au résultat obtenu à l'étape E206 (donnée de sortie S) avec le masque A1. En fonctionnement normal, la donnée de vérification V doit donc être égale à la donnée de sortie S. C'est pourquoi on teste à l'étape E212 (qui suit l'étape E210) si la donnée de vérification V est bien égale à la donnée de sortie S. Dans l'affirmative, c'est-à-dire quand la comparaison des résultats des algorithmes cryptographiques appliqués respectivement aux étapes E206 et E210 permet de supposer que ceux-ci ont été réalisés sans fautes, on passe à l'étape E214 où on peut donc poursuivre le traitement réalisé par le microprocesseur 10, par exemple en utilisant la donnée de sortie S obtenue. En effet, on suppose dans ce cas que l'exécution de l'algorithme cryptographique qui a permis d'obtenir cette donnée de sortie S n'a pas fait l'objet d'une attaque. En revanche, si on détermine à l'étape E212 que la donnée de vérification V est différente de la donnée de sortie S, on passe à l'étape E216 où l'on conclut à l'échec de l'algorithme sécurisé d'obtention de la valeur de sortie S. En effet, si la donnée de vérification V n'est pas identique à la donnée de sortie S, on en conclut que l'exécution de l'un des algorithmes cryptographiques des étapes E206 et E210 a été perturbée, ce qui traduit en général une attaque par génération de fautes. Les conséquences de l'échec du procédé sécurisé à l'étape E216 pourront être différentes selon les applications. En général, on évitera l'utilisation et/ou la communication de la valeur de sortie S à l'extérieur de la carte à microcircuit afin d'éviter toute utilisation frauduleuse possible d'une donnée de sortie obtenue au moyen d'un algorithme cryptographique dont l'exécution a été perturbée. On remarque en outre que le procédé de traitement de données sécurisé qui vient d'être décrit est protégé contre des attaques par fautes au cours desquelles la même faute serait appliquée aux étapes E206 et E210. En effet, l'utilisation d'une première valeur aléatoire A1 et d'une seconde valeur aléatoire A2, différentes l'une de l'autre dans le cas le plus général, permet d'impliquer des étapes et/ou des données différentes lors des mises en œuvre successives de l'algorithme cryptographique FK aux étapes E206 et E210. Ainsi, une même attaque appliquée à ces deux étapes générera des résultats différents, qui seront alors détectables à l'étape E212 de comparaison des données de vérification V aux données de sortie S. Le procédé décrit ci-dessus n'est donc pas seulement protégé contre les attaques à génération de fautes, au moyen de la comparaison de deux itérations différentes de l'algorithme cryptographique FK, mais aussi contre les attaques à génération de fautes dans lesquelles deux fautes identiques sont successivement générées, grâce au masquage de chaque itération de l'algorithme cryptographique au moyen d'un masque différent. La figure 3 décrit un second exemple de réalisation d'un procédé de traitement de données sécurisé selon l'invention. Le procédé commence à l'étape E302 par la réception au moyen de l'interface de communication 30 de données d'entrée E par le microprocesseur 10. Après réception des données d'entrée E, le microprocesseur 10 génère une première valeur aléatoire A1 à l'étape E304. Le microprocesseur peut alors, à l'étape E306, appliquer aux données d'entrée E un algorithme cryptographique FK à clé secrète symétrique K et masqué au moyen de la première valeur aléatoire A1. Dans l'exemple décrit, l'algorithme cryptographique utilisé est du type DES dont le masquage peut être réalisé lors de la dérivation de la clé, comme décrit dans la demande de brevet FR 2 820 577. L'exécution, masquée par la première valeur aléatoire A1 , de l'algorithme cryptographique FK, appliquée aux données d'entrée E, permet d'obtenir les données de sortie S qui constituent normalement le résultat souhaité du procédé de traitement de données. Toutefois, afin de vérifier que l'exécution du procédé n'a pas subi d'attaque par génération de fautes, on procède aux étapes suivantes qui permettront de vérifier l'absence de fautes lors de l'exécution de l'algorithme cryptographique à l'étape E306. Ainsi, on passe à l'étape E308 où le microprocesseur 10 génère une seconde valeur aléatoire A2. Le microprocesseur applique ensuite, à l'étape E310, un second algorithme cryptographique GK, qui est l'inverse de l'algorithme cryptographique FK, aux données de sortie S qui viennent d'être obtenues. Le second algorithme cryptographique GK est par ailleurs masqué au moyen de la seconde valeur aléatoire A2. Ce masquage est par exemple réalisé par le masquage de l'étape de dérivation de la clé de l'algorithme DES. En temps normal, et notamment si les exécutions respectives des algorithmes cryptographiques FK et GK n'ont pas subi d'attaque par génération de fautes, le résultat V de l'application du second algorithme cryptographique GK, inverse du premier algorithme cryptographique FK, aux données de sortie S est égal aux données d'entrée E. Une différence entre le résultat V du second algorithme cryptographique GK et les données d'entrée E indique donc une erreur dans l'une au moins des exécutions respectives des algorithmes cryptographiques FK et GK, et signale par conséquent un risque d'attaque par génération de fautes. On rappelle que le masquage des algorithmes cryptographiques FK et GK par des masques différents (première valeur aléatoire A1 pour le premier algorithme cryptographique FK et seconde valeur aléatoire A2 pour le second algorithme cryptograhique GK) ne modifie pas le résultat de ces algorithmes cryptographiques, mais seulement toutes ou partie des données intermédiaires et/ou les étapes mises en jeu dans ces algorithmes. L'étape suivante E312 consiste donc à vérifier l'égalité du résultat
(ou donnée de vérification) V du second algorithme cryptographique GK à la donnée d'entrée E, afin de détecter une éventuelle attaque par génération de fautes. Si on détermine à l'étape E312 que la donnée de vérification V n'est pas égale à la donnée d'entrée E, ce qui indique un risque que l'exécution du premier algorithme cryptographique FK ait été attaquée par génération de fautes, on passe à l'étape E316 à laquelle le microprocesseur 10 considère l'échec de l'exécution correcte du premier algorithme cryptographique FK et par conséquent la non-disponibilité d'une donnée de sortie sécurisée. La conséquence de l'échec (étape E316) dépend naturellement de l'application envisagée et consiste en général à ne pas utiliser la donnée de sortie S calculée à l'étape E306. Si au contraire on détermine à l'étape E312 que la donnée de vérification V obtenue par application du second algorithme cryptographique GK est bien égale à la donnée d'entrée E, le procédé mis en œuvre par le microprocesseur 10 peut se poursuivre normalement, par exemple par l'utilisation des données de sortie S (étape E314), puisque l'on suppose alors que l'exécution des algorithmes cryptographiques s'est réalisée sans erreur et par conséquent sans attaque par génération de fautes. On remarque en outre que le procédé de traitement de données qui vient d'être décrit est sécurisé contre des attaques à génération de fautes particulièrement sophistiquées. En effet, un attaquant peut générer une faute à l'étape p de l'algorithme cryptographique FK ( .e. au round p dans le cas de l'algorithme DES) et le complémentaire de cette faute à l'étape n-p de l'algorithme cryptographique GK (n étant le nombre total d'étapes dans chacun des algorithmes) en espérant ainsi obtenir une donnée de vérification V identique à la donnée d'entrée E malgré l'erreur provoquée sur la donnée de sortie S. Toutefois, grâce à l'utilisation des deux valeurs aléatoires A1 , A2 différentes, les fautes auront en fait des conséquences différentes selon l'algorithme considéré et le second algorithme ne permettra donc pas de revenir à une donnée de vérification V égale à la donnée d'entrée E. L'attaque sera ainsi détectée. L'invention n'est naturellement pas limitée aux deux modes de réalisation qui viennent d'être décrits. Notamment, la vérification de la bonne exécution d'un algorithme cryptographique par comparaison des résultats de deux algorithmes cryptographiques n'implique pas forcément les données d'entrée ou les données de sortie. En effet, on pourrait penser à comparer une donnée intermédiaire du premier algorithme cryptographique à une donnée de vérification correspondante générée par le second algorithme cryptographique. Dans le même ordre d'idée, bien que les algorithmes cryptographiques mentionnés en tant qu'exemples dans la description qui précède soient du type DES, l'invention s'applique à d'autres types d'algorithmes cryptographiques, notamment les algorithmes du type AES et les algorithmes d'authentification pour la téléphonie mobile, tels que ceux conformes à la norme GSM ou à la norme UMTS.

Claims

REVENDICATIONS
1. Procédé de traitement de données sécurisé, caractérisé en ce qu'il comprend les étapes suivantes : - génération (E204 ; E304) d'une première valeur aléatoire (A1 ) ; - exécution (E206 ; E306) d'un premier algorithme cryptographique (FK) utilisant la première valeur aléatoire (A1 ) ; - génération (E208 ; E308) d'une seconde valeur aléatoire (A2) ; - exécution (E210 ; E310) d'un second algorithme cryptographique (Fκ ; GK) utilisant la seconde valeur aléatoire (A2) et générant un résultat (V) permettant la vérification de l'exécution correcte du premier algorithme (FK).
2. Procédé de traitement de données sécurisé selon la revendication 1 , caractérisé en ce que, l'exécution (E206 ; E306) du premier algorithme cryptographique (FK) impliquant dans au moins un calcul une première donnée (S ; E) et générant une donnée de sortie (S) à partir d'une donnée d'entrée (E), ledit résultat (V) étant une donnée de vérification (V), il comporte l'étape suivante : - comparaison (E212 ; E312) de la donnée de vérification (V) à la première donnée (S ; E) pour vérification de l'exécution correcte du premier algorithme (FK).
3. Procédé de traitement de données sécurisé selon la revendication 2, caractérisé en ce que le second algorithme (GK) est identique au premier algorithme (FK) et est appliqué à la donnée d'entrée (E) et en ce que ladite première donnée est la donnée de sortie (S).
4. Procédé de traitement de données sécurisé selon la revendication 2, caractérisé en ce que le second algorithme est l'inverse du premier algorithme (FK) et est appliqué à la donnée de sortie (S) et en ce que ladite première donnée est la donnée d'entrée (E).
5. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme cryptographique à clé symétrique.
6. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme du type DES ou du type AES.
7. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme du type DES ou du type AES à dérivation de clé masquée au moyen de la première valeur aléatoire.
8. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme du type DES ou du type AES masqué au moyen de la première valeur aléatoire.
9. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme du type DES masqué et à dérivation de clé masquée ou un algorithme du type AES masqué et à dérivation de clé masquée.
10. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est un algorithme d'authentification de téléphonie mobile.
11. Procédé de traitement de données selon l'une des revendications 2 à 4, caractérisé en ce que le premier algorithme cryptographique (FK) est masqué 'par la première valeur aléatoire (A1 ) et en ce que le second algorithme cryptographique (FK ; GK) est masqué par la seconde valeur aléatoire (A2).
12. Procédé de traitement de données selon l'une quelconque des revendications 2 à 11 , caractérisé en ce qu'il est mis en œuvre dans une carte à microcircuit (40).
13. Dispositif de traitement de données comprenant : - des moyens pour générer une première valeur aléatoire (A1 ) ; - des moyens pour mettre en œuvre un premier algorithme cryptographique (FK) utilisant la première valeur aléatoire (A1 ), impliquant dans au moins un calcul une première donnée (S ; E) et générant une donnée de sortie (S) à partir d'une donnée d'entrée (E) ; - des moyens pour générer une seconde valeur aléatoire (A2) ; - des moyens pour mettre en œuvre un second algorithme cryptographique (GK) utilisant la seconde valeur aléatoire (A2) et générant une donnée de vérification (V) ; - des moyens pour comparer la donnée de vérification (V) à la première donnée (S ; E) pour vérification de l'exécution correcte du premier algorithme (FK).
14. Dispositif de traitement de données selon la revendication 13, caractérisé en ce que le dispositif est une carte à microcircuit (40).
15. Programme d'ordinateur comprenant des instructions aptes à mettre en œuvre le procédé selon l'une des revendications 1 à 12, lorsque lesdites instructions sont exécutées par un microprocesseur.
PCT/FR2005/000539 2004-03-11 2005-03-07 Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique WO2005088895A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/592,070 US8386791B2 (en) 2004-03-11 2005-03-07 Secure data processing method based particularly on a cryptographic algorithm

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0402548A FR2867635B1 (fr) 2004-03-11 2004-03-11 Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
FR0402548 2004-03-11

Publications (1)

Publication Number Publication Date
WO2005088895A1 true WO2005088895A1 (fr) 2005-09-22

Family

ID=34896464

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2005/000539 WO2005088895A1 (fr) 2004-03-11 2005-03-07 Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique

Country Status (3)

Country Link
US (1) US8386791B2 (fr)
FR (1) FR2867635B1 (fr)
WO (1) WO2005088895A1 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2919739A1 (fr) * 2007-08-03 2009-02-06 Oberthur Card Syst Sa Procede de traitement de donnees protege contre les attaques par generation de fautes et dispositif associe
EP2280511A1 (fr) 2009-07-30 2011-02-02 Oberthur Technologies Procédé de traitement de données protégé contre les attaques par faute et dispositif associé
CN105207772A (zh) * 2014-06-12 2015-12-30 纳格拉影像股份有限公司 安全地交换消息的加密方法及实现该方法的设备和系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006112114A1 (fr) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. Dispositif et procede de cryptage de donnees
FR2916113B1 (fr) * 2007-05-07 2009-07-31 Oberthur Card Syst Sa Procede de traitement cryptographique d'un message.
US8553877B2 (en) * 2007-10-01 2013-10-08 Blackberry Limited Substitution table masking for cryptographic processes
FR2923305B1 (fr) * 2007-11-02 2011-04-29 Inside Contactless Procede et dispositifs de protection d'un microcircuit contre des attaques visant a decouvrir une donnee secrete
FR2952256B1 (fr) * 2009-11-04 2011-12-16 St Microelectronics Rousset Protection d'une cle de chiffrement contre des attaques unidirectionnelles
FR2953350B1 (fr) * 2009-11-04 2012-05-18 St Microelectronics Rousset Protection d'une cle de chiffrement
FR2952735B1 (fr) * 2009-11-18 2011-12-09 St Microelectronics Rousset Procede et dispositif de detection d'attaques par injection de fautes
FR2984553B1 (fr) 2011-12-15 2015-11-06 Proton World Int Nv Procede et dispositif de detection de fautes
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
EP3413500A1 (fr) * 2017-06-09 2018-12-12 Koninklijke Philips N.V. Dispositif et procédé pour calculer un chiffrement par bloc
FR3069993B1 (fr) * 2017-08-07 2020-09-18 Maxim Integrated Products Dispositifs et procedes de masquage d'operations de chiffrement rsa
FR3074323B1 (fr) * 2017-11-30 2019-12-06 Idemia France Procede et dispositif de traitement cryptographique de donnees
CN108574566A (zh) * 2018-02-13 2018-09-25 北京梆梆安全科技有限公司 一种白盒加解密方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108419A (en) * 1998-01-27 2000-08-22 Motorola, Inc. Differential fault analysis hardening apparatus and evaluation method
US20010053220A1 (en) * 1998-06-03 2001-12-20 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks
FR2819663A1 (fr) * 2001-01-18 2002-07-19 Gemplus Card Int Dispositif et procede d'execution d'un algorithme cryptographique
FR2838262A1 (fr) * 2002-04-08 2003-10-10 Oberthur Card Syst Sa Procede de securisation d'une electronique a acces crypte

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5243607A (en) * 1990-06-25 1993-09-07 The Johns Hopkins University Method and apparatus for fault tolerance
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
US6101254A (en) * 1996-10-31 2000-08-08 Schlumberger Systemes Security method for making secure an authentication method that uses a secret key algorithm
FR2776445A1 (fr) 1998-03-17 1999-09-24 Schlumberger Ind Sa Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
TWI234706B (en) * 2002-07-26 2005-06-21 Hon Hai Prec Ind Co Ltd System and method for firmware authentication
US7386848B2 (en) * 2003-10-02 2008-06-10 International Business Machines Corporation Method and system to alleviate denial-of-service conditions on a server

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108419A (en) * 1998-01-27 2000-08-22 Motorola, Inc. Differential fault analysis hardening apparatus and evaluation method
US20010053220A1 (en) * 1998-06-03 2001-12-20 Cryptography Research, Inc. Cryptographic computation using masking to prevent differential power analysis and other attacks
FR2819663A1 (fr) * 2001-01-18 2002-07-19 Gemplus Card Int Dispositif et procede d'execution d'un algorithme cryptographique
FR2838262A1 (fr) * 2002-04-08 2003-10-10 Oberthur Card Syst Sa Procede de securisation d'une electronique a acces crypte

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2919739A1 (fr) * 2007-08-03 2009-02-06 Oberthur Card Syst Sa Procede de traitement de donnees protege contre les attaques par generation de fautes et dispositif associe
US8311212B2 (en) 2007-08-03 2012-11-13 Oberthur Technologies Method of processing data protected against attacks by generating errors and associated device
EP2280511A1 (fr) 2009-07-30 2011-02-02 Oberthur Technologies Procédé de traitement de données protégé contre les attaques par faute et dispositif associé
CN105207772A (zh) * 2014-06-12 2015-12-30 纳格拉影像股份有限公司 安全地交换消息的加密方法及实现该方法的设备和系统

Also Published As

Publication number Publication date
FR2867635B1 (fr) 2006-09-22
FR2867635A1 (fr) 2005-09-16
US20070177720A1 (en) 2007-08-02
US8386791B2 (en) 2013-02-26

Similar Documents

Publication Publication Date Title
WO2005088895A1 (fr) Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
EP2280364B1 (fr) Détecteur d'injection de fautes dans un circuit intégré
EP2380305B1 (fr) Circuit de cryptographie, protégé notamment contre les attaques par observation de fuites d'information par leur chiffrement
EP2842232B1 (fr) Procédé de contrôle de redondance cyclique protégé contre une attaque par canal auxiliaire
EP2614458B1 (fr) Procede d'authentification pour l'acces a un site web
FR2986631A1 (fr) Dispositif et procede de production d'un code d'authentification d'un message
FR3071121A1 (fr) Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur
EP2638660B1 (fr) Protection contre les ecoutes passives
WO2005022820A1 (fr) Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
WO2006021686A2 (fr) Procédé et dispositif de traitement de données
EP2280511B1 (fr) Procédé de traitement de données protégé contre les attaques par faute et dispositif associé
FR2919739A1 (fr) Procede de traitement de donnees protege contre les attaques par generation de fautes et dispositif associe
EP3419246B1 (fr) Procédé d'authentification par défi-réponse d'un élément sécurisé (se) auprès d'un microcontrôleur
EP2509252B1 (fr) Procédé de calcul cryptographique sécurisé, en particulier contre des attaques du type DFA et unidirectionnelles, et composant correspondant
EP1387519A2 (fr) Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
EP1442556B1 (fr) Procédé securisé de mise en oeuvre d'un algorithme de cryptographie et composant correspondant
FR2830146A1 (fr) Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant
EP3100403B1 (fr) Échelle de montgomery déséquilibrée résistante aux attaques par canaux auxiliaires
FR2985337A1 (fr) Procede de calcul cryptographique resilient aux attaques par injection de fautes, produit programme d'ordinateur et composant electronique correspondant.
EP2225693B1 (fr) Procede de securisation d'un branchement conditionnel, support d'informations, programme et systeme securise pour ce procede
FR2995110A1 (fr) Optimisation memoire cryptographique
EP3799347A1 (fr) Sécurisation du chiffrement des et du déchiffrement des inverse
FR3135854A1 (fr) Fourniture sécurisée de clefs pour un cryptage totalement homomorphe
FR3061384A1 (fr) Procede de traitement de donnees
WO2003069841A1 (fr) Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 10592070

Country of ref document: US

Ref document number: 2007177720

Country of ref document: US

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10592070

Country of ref document: US