FR2867635A1 - 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
FR2867635A1
FR2867635A1 FR0402548A FR0402548A FR2867635A1 FR 2867635 A1 FR2867635 A1 FR 2867635A1 FR 0402548 A FR0402548 A FR 0402548A FR 0402548 A FR0402548 A FR 0402548A FR 2867635 A1 FR2867635 A1 FR 2867635A1
Authority
FR
France
Prior art keywords
algorithm
data
cryptographic algorithm
data processing
random value
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
FR0402548A
Other languages
English (en)
Other versions
FR2867635B1 (fr
Inventor
Regis Bevan
Christophe Giraud
Hugues Thiebeauld
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.)
Idemia France SAS
Original Assignee
Oberthur Card Systems SA France
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 SA France filed Critical Oberthur Card Systems SA France
Priority to FR0402548A priority Critical patent/FR2867635B1/fr
Priority to US10/592,070 priority patent/US8386791B2/en
Priority to PCT/FR2005/000539 priority patent/WO2005088895A1/fr
Publication of FR2867635A1 publication Critical patent/FR2867635A1/fr
Application granted granted Critical
Publication of FR2867635B1 publication Critical patent/FR2867635B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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

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 :- exécution (E206) d'un premier algorithme cryptographique (FK) utilisant une première valeur aléatoire (A1), impliquant dans au moins un calcul une première donnée (S) et générant une donnée de sortie (S) à partir d'une donnée d'entrée (E) ;- exécution (E210) d'un second algorithme cryptographique (FK) utilisant une seconde valeur aléatoire (A2) différente de la première valeur aléatoire (A1) et générant une donnée de vérification (V) ;- comparaison (E212) de la donnée de vérification (V) à la première donnée (S) pour vérification de l'exécution correcte du premier algorithme (FK).

Description

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 oeuvre 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 oeuvre 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 oeuvre 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 SBOX en 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 oeuvre 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 5 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.
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: - exécution d'un premier algorithme cryptographique utilisant une 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; - exécution d'un second algorithme cryptographique utilisant une seconde valeur aléatoire différente de la première valeur aléatoire et générant une donnée de vérification; comparaison de la donnée de vérification à la première donnée pour 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.
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 20 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 oeuvre du fait 25 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 30 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 5 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 oeuvre, 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 oeuvre, 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 oeuvre dans une carte à microcircuit.
L'invention propose ainsi un procédé de traitement de données sécurisé comprenant les étapes suivantes: - exécution d'un premier algorithme cryptographique utilisant une première valeur aléatoire; - exécution d'un second algorithme cryptographique utilisant une seconde valeur aléatoire différente de la première valeur aléatoire et générant un résultat permettant la vérification de l'exécution correcte du premier algorithme.
L'invention propose également un dispositif de traitement de données comprenant des moyens pour mettre en oeuvre un premier algorithme cryptographique utilisant une 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 mettre en oeuvre un second algorithme cryptographique utilisant une seconde valeur aléatoire différente de la première 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 oeuvre 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 la représente schématiquement un dispositif de traitement de données dans lequel est mise en oeuvre l'invention; - la figure lb représente une réalisation possible du dispositif de la 20 figure la - 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 la représente schématiquement un dispositif de traitement de données 40 dans lequel la présente invention est mise en oeuvre. 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 la 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 15 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 oeuvre des différentes étapes du procédé de traitement de données sécurisé.
La figure lb représente une carte à microcircuit qui constitue un dispositif de traitement de données conforme à l'invention tel que représenté à la figure la. L'interface de communication 30 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit. La carte à microcircuit incorpore un microprocesseur 10 et une mémoire 20 comme représenté sur la figure la.
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 30 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 Al.
On passe alors à l'étape E206 à laquelle on applique aux données d'entrée E un algorithme cryptographique FK masqué au moyen de la première valeur aléatoire Al. L'algorithme cryptographique FK 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 oeuvre de l'algorithme cryptographique FK à l'étape E206 est masquée avec pour masque la première valeur aléatoire Al 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 Al (première valeur aléatoire) utilisé. Comme vu en introduction, le masque Al 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 Al (é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 Al et sera donc dans le cas le plus général différente de la première valeur aléatoire Al.
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 (Al 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 Al. 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 Al 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 oeuvre 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 Al à 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 Al. Dans l'exemple 30 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 Al, 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 Al 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 etlou 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 10 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 oeuvre 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 (i.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 Al, 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 (15)

REVENDICATIONS
1. Procédé de traitement de données sécurisé, caractérisé en ce qu'il comprend les étapes suivantes: - exécution (E206; E306) d'un premier algorithme cryptographique (FK) utilisant une première valeur aléatoire (A1) ; - exécution (E210; E310) d'un second algorithme cryptographique (FK; GK) utilisant une seconde valeur aléatoire (A2) différente de la première valeur aléatoire (Al) 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 oeuvre dans une carte à microcircuit (40).
13. Dispositif de traitement de données comprenant: - des moyens pour mettre en oeuvre un premier algorithme cryptographique (FK) utilisant une première valeur aléatoire (Al), 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 mettre en oeuvre un second algorithme cryptographique (GK) utilisant une seconde valeur aléatoire (A2) différente de la première valeur aléatoire (Al) 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 oeuvre le procédé selon l'une des revendications 1 à 12, lorsque lesdites instructions sont exécutées par un microprocesseur.
FR0402548A 2004-03-11 2004-03-11 Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique Expired - Lifetime FR2867635B1 (fr)

Priority Applications (3)

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
US10/592,070 US8386791B2 (en) 2004-03-11 2005-03-07 Secure data processing method based particularly on a cryptographic algorithm
PCT/FR2005/000539 WO2005088895A1 (fr) 2004-03-11 2005-03-07 Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
FR2867635A1 true FR2867635A1 (fr) 2005-09-16
FR2867635B1 FR2867635B1 (fr) 2006-09-22

Family

ID=34896464

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0402548A Expired - Lifetime FR2867635B1 (fr) 2004-03-11 2004-03-11 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2952256A1 (fr) * 2009-11-04 2011-05-06 St Microelectronics Rousset Protection d'une cle de chiffrement contre des attaques unidirectionnelles
FR3074323A1 (fr) * 2017-11-30 2019-05-31 Oberthur Technologies Procede et dispositif de traitement cryptographique de donnees

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1865481A1 (fr) * 2005-03-31 2007-12-12 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.
FR2919739B1 (fr) 2007-08-03 2009-12-04 Oberthur Card Syst Sa Procede de traitement de donnees protege contre les attaques par generation de fautes et dispositif associe
WO2009043139A1 (fr) * 2007-10-01 2009-04-09 Research In Motion Limited Masquage de table de substitution pour processus de chiffrement
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
FR2948792B1 (fr) 2009-07-30 2011-08-26 Oberthur Technologies Procede de traitement de donnees protege contre les attaques par faute et dispositif associe
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
DK2955871T3 (en) * 2014-06-12 2017-05-01 Nagravision Sa Cryptographic method for securely exchanging messages and apparatus and system for performing this method
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
CN108574566A (zh) * 2018-02-13 2018-09-25 北京梆梆安全科技有限公司 一种白盒加解密方法、装置及存储介质

Citations (3)

* 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
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 (9)

* 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
EP1090480B1 (fr) * 1998-06-03 2019-01-09 Cryptography Research, Inc. Perfectionnement de normes cryptographiques et autres procedes cryptographiques a reduction des fuites pour cartes a puces et autres systemes cryptographiques
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 (3)

* 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
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2952256A1 (fr) * 2009-11-04 2011-05-06 St Microelectronics Rousset Protection d'une cle de chiffrement contre des attaques unidirectionnelles
EP2320596A1 (fr) * 2009-11-04 2011-05-11 STMicroelectronics (Rousset) SAS Protection d'une clé de chiffrement contre des attaques unidirectionnelles
FR3074323A1 (fr) * 2017-11-30 2019-05-31 Oberthur Technologies Procede et dispositif de traitement cryptographique de donnees
EP3493182A1 (fr) * 2017-11-30 2019-06-05 IDEMIA France Procédé et dispositif de traitement cryptographique de données
US11477023B2 (en) 2017-11-30 2022-10-18 Idemia France Method and device for cryptographic processing of data

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2005088895A1 (fr) Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
EP2842232B1 (fr) Procédé de contrôle de redondance cyclique protégé contre une attaque par canal auxiliaire
EP2280364B1 (fr) Détecteur d'injection de fautes dans un circuit intégré
CA2816933C (fr) Protection contre les ecoutes passives
FR3038416A1 (fr)
FR3033965A1 (fr)
EP1779284B1 (fr) Procédé et dispositif de traitement de données
EP2614458A2 (fr) Procede d'authentification pour l'acces a un site web
WO2005109742A1 (fr) Procédé de traitement de données sécurisé et dispositif associé
WO2005022820A1 (fr) Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
FR3067829A1 (fr) Procede d'authentification par defi-reponse d'un element securise (se) aupres d'un microcontroleur
FR2919739A1 (fr) Procede de traitement de donnees protege contre les attaques par generation de fautes et dispositif associe
FR2806858A1 (fr) Procede cryptographique de protection contre la fraude
EP2509252A1 (fr) Procédé de calcul cryptographique sécurisé, en particulier contre des attaques du type DFA et unidirectionnelles, et composant correspondant
EP3327607B1 (fr) Procede de verification de donnees
EP1387519A2 (fr) Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
EP4068134A1 (fr) Débogage sécurisé
FR2830146A1 (fr) Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant
FR2985337A1 (fr) Procede de calcul cryptographique resilient aux attaques par injection de fautes, produit programme d'ordinateur et composant electronique correspondant.
FR2831739A1 (fr) Procede de mise en oeuvre securisee d'un module fonctionnel, dans un composant electronique et composant correspondant
EP3270315B1 (fr) Procédé de mise en relation sécurisée d'un premier dispositif avec un deuxième dispositif
FR2925991A1 (fr) Procede de securisation d'un branchement conditionnel, support d'informations, programme, systeme securise et processeur de securite pour ce procede
FR3016987A1 (fr) Echelle de montgomery desequilibree
WO2012172245A1 (fr) Transfert securise entre memoire non-volatile et memoire volatile
WO2003069841A1 (fr) Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 17

CA Change of address

Effective date: 20200218

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20200218

CJ Change in legal form

Effective date: 20200218

CA Change of address

Effective date: 20201228

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20201228

PLFP Fee payment

Year of fee payment: 18

PLFP Fee payment

Year of fee payment: 19

PLFP Fee payment

Year of fee payment: 20