+

WO2003069841A1 - Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques - Google Patents

Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques Download PDF

Info

Publication number
WO2003069841A1
WO2003069841A1 PCT/FR2001/004219 FR0104219W WO03069841A1 WO 2003069841 A1 WO2003069841 A1 WO 2003069841A1 FR 0104219 W FR0104219 W FR 0104219W WO 03069841 A1 WO03069841 A1 WO 03069841A1
Authority
WO
WIPO (PCT)
Prior art keywords
checksum
key
subkey
algorithm
value
Prior art date
Application number
PCT/FR2001/004219
Other languages
English (en)
Inventor
Olivier Benoit
Jean-Marc Robert
Original Assignee
Gemplus
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 Gemplus filed Critical Gemplus
Priority to AU2002226515A priority Critical patent/AU2002226515A1/en
Priority to PCT/FR2001/004219 priority patent/WO2003069841A1/fr
Publication of WO2003069841A1 publication Critical patent/WO2003069841A1/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/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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Definitions

  • the present invention relates to cryptographic algorithms.
  • the present invention relates more particularly to a method for detecting default attacks against cryptographic algorithms.
  • BACKGROUND OF THE INVENTION Chip cards which constitute a particular embodiment of electronic devices, were originally designed to improve the security of distributed systems.
  • Examples of smart card applications include telephone cards, identification cards, medical cards, transaction cards (credit / debit from bank account, store, restaurant, etc.) and cards. of security. All these applications require the processing of sensitive and confidential data inside the smart card. It is important to have the means to preserve the private and confidential nature of this data in order to guarantee a sufficient degree of security for smart cards. These cards are indeed exposed to different types of fraudulent attempts from outside to access the data stored in the card.
  • Cryptography the art and science of preserving secret data, has become one of the main tools used to preserve secrecy, impose trust, guarantee access control and corporate security, among other things.
  • the cryptographic transformation of confidential data is often designated by the term encryption.
  • the process of recovering comprehensible data from the cryptogram (the encrypted data) is usually called decryption.
  • Modern cryptographic algorithms conventionally use at least one key to control encryption and decryption.
  • key based cryptographic algorithms There are two general categories of key based cryptographic algorithms: symmetric (or secret key) and asymmetric (or public key) algorithms.
  • symmetric algorithms use the same key for encryption and decryption, or use a decryption key that can be easily derived from the encryption key.
  • asymmetric algorithms use a different key for encryption and for decryption and the decryption key cannot be derived from the encryption key. Therefore, the key to symmetric cryptographic algorithms should be kept secret, while the encryption key for asymmetric cryptographic algorithms can be made public.
  • a secret key can be used to perform many operations, such as authentication, data integrity, data authenticity and data confidentiality for example.
  • cryptosystems that is, systems using cryptographic technology
  • cryptoanalysis which, in general, is the art of discovering the secret key used in a given protocol.
  • a new type of attack has appeared in recent years, to break the cryptographic device implemented at the hardware level rather than at the algorithmic level. We will comment below on an example of these hardware-level attacks, commonly known as "default attacks”.
  • a default attack assumes that by exposing a sealed electronic device, such as a smart card, to certain physical effects (ionization or microwave radiation for example), it is possible to induce, with a reasonable degree of probability, a defect at the level of a random binary location in one of the registers, at a random intermediate stage in the cryptographic algorithm.
  • Figure 1 titled “Prior Art”, is a block diagram of a conventional cryptographic algorithm 10 in which security functions have been implemented to detect default attacks.
  • the conventional method of detecting default attacks consists of performing each calculation twice and comparing the results of the two calculations to determine whether a default attack has taken place. If this is the case, the cryptographic algorithm is stopped in order to prevent the leaking of important data.
  • the conventional cryptographic algorithm 10 of Figure 1 is essentially divided into two algorithms.
  • a first algorithm 12, called the secret key algorithm relates to the real encryption of the message 14.
  • a second algorithm 16 called the key generation algorithm, receives a key 20 to calculate the sub-keys necessary for the secret key algorithm 12, conventional process known in the art.
  • Each of the two algorithms 12 and 16 performs each calculation operation twice, as mentioned above. Therefore, fault attack errors 22 and 24 can be generated by these algorithms.
  • the key 20 is the same for each use of this algorithm 10. This supposes of course that the correct key is used 20. If no fault attack is detected at the end of the secret key algorithm 12, the message 14 is encrypted so as to obtain an encrypted message 26.
  • the key generation algorithm 16 is shown in more detail in the block diagram of Figure 2, also titled “Prior Art”. This figure illustrates the measures taken to duplicate the calculations in order to verify the integrity of the results obtained in the key generation algorithm 16.
  • a secret key algorithm such as 12
  • a secret key algorithm conventionally needs a subkey for each of the plurality of calculations necessary to carry out the encryption of the message.
  • the steps leading to the transfer of the subkey from the key generation algorithm 16 to the secret key algorithm 12 for the first series will be described below.
  • a method for detecting fault attacks against cryptographic algorithms comprising the steps of: in an initialization process: - providing an initialization vector;
  • Figure 1 entitled “Prior Art”, is a block diagram showing the conventional configuration of a cryptographic algorithm
  • FIG. 2 is a block diagram of the key generation algorithm of the cryptographic algorithm of Figure 1;
  • FIG. 3 is a block diagram showing a configuration of a cryptographic algorithm which implements a method for detecting default attacks against the cryptographic algorithms according to the present invention;
  • Figure 4 is a block diagram of the initialization method according to the present invention;
  • FIG. 5 is a more detailed block diagram of the cryptographic algorithm of Figure 3;
  • Figure 6 is a block diagram of the secret key algorithm, according to a second embodiment
  • Figure 7 is a block diagram of the secret key algorithm, according to a third embodiment.
  • a cryptographic algorithm 100 having the characteristics making it possible to detect fault attacks according to an embodiment of the present invention will now be described with reference to FIGS. 3 and 5.
  • This algorithm 100 can be implemented works, for example, in electronic devices such as for example smart cards.
  • the cryptographic algorithm 100 includes a secret key algorithm 102 and a key generation algorithm 104.
  • the secret key algorithm 102 receives a message 106 and sub-keys 108 calculated by the key generation algorithm 104, as will be described below.
  • the key generation algorithm 104 receives an initialization vector 110 and a key 112.
  • the initialization vector 110 has a fixed value and is used in checksum functions, as will be described lower.
  • the initialization vector is advantageously stored in a non-volatile memory of the electronic device.
  • the key 112 is the so-called "secret" key, necessary to encrypt and decrypt the message.
  • the secret key algorithm 102 since it processes data which changes each time the algorithm is used, that is to say the message 106, perform each operation twice and compare the results of the two calculations.
  • a fault attack error 114 is generated when the two results are not identical, which causes algorithm 100 to stop.
  • the algorithm to generation of keys 104 does not perform each operation twice.
  • the present invention consists in executing an initialization method during the mounting of the electronic device, which is referred to below as being a smart card, before its delivery to the user.
  • This initialization process consists in calculating all the sub-keys necessary for the secret key algorithm 102, in calculating a checksum function on all these sub-keys and in storing the value of the resulting checksum, designated below by SBKCHKi, together with the secret key, preferably in a non-volatile memory of the smart card, so that it can be accessed during the subsequent use of the smart card .
  • the same checksum function is part of the key generation algorithm 104 and produces a checksum value, referred to below as SBKCHK, which can be compared to the SBKCHKi value stored at during a final control step 116 which determines whether a default attack has succeeded during the course of the key generation algorithm 104. If a successful default attack is detected, an attack error by fault 118 is generated. Otherwise, the encrypted message 120 is completed.
  • SBKCHK checksum value
  • This initialization process includes as many series as the secret key algorithm 102 effective in order to calculate all the subkeys necessary for the secret key algorithm 102.
  • the subkey is calculated K a. (step 122) from the key 112.
  • the subkey Ki is then delivered to a checksum function 124 which also has as input the initialization vector 110.
  • the value of the resulting checksum SBKCHKi is used in the next series, as an input to the checksum function of that consecutive series.
  • the initialization vector 110 is used only in the first series of the calculation process.
  • the value of the calculated final checksum SBKCHKi which is also referred to as the value of the reference checksum, is stored in the non-volatile memory during step 126.
  • the key generation algorithm 104 calculates a first subkey K ⁇ from the key 112 (step 130).
  • the subkey K ⁇ is then delivered to the secret key algorithm 102 and is also used by a checksum function 132, identical to the checksum function 124 of the initialization process of FIG. 4, which also takes the initialization vector 110 as input.
  • the value of the checksum SBKCHKi resulting from this function 132 is used as input for the checksum function of the next series.
  • the first series 128 implies that a first intermediate result, respectively Ri and Ri ', is calculated twice (steps 134 and 136), from the message 106 and from the first subkey Ki. These two results are then compared during step 138. If the results are identical, the result is delivered to the next series. Otherwise, the algorithm 100 is stopped and an error 114 indicative of a fault attack is generated.
  • the person skilled in the art will of course understand that the secondary steps in the calculation of the first intermediate result vary according to the specific secret key algorithm used.
  • checksum functions used in the key generation algorithm 102 described above have not been described in detail because we believe that it falls within the competence of the skilled person. design an appropriate checksum function.
  • the secret key algorithm 202 instead of verifying the intermediate results of each duplicated series, it is the entire encryption process which produces, upon its completion, the encrypted message 120. Once the result is calculated, the reverse cryptographic algorithm, or decryption, is carried out using the encrypted message 120 as an input, in order to verify that the original message 106 can be deduced from the encrypted message 120. If this is the case, we may assume that there was no successful default attack.
  • the first step 204 consists in storing a copy of the original message.
  • the cryptographic algorithm which consists of successive series of calculations leading to the final series 206, is then processed.
  • the result of the series final 206 it is, technically, the encrypted message, is then stored during step 208.
  • the reverse cryptographic algorithm which consists of reverse series (for example 210, 212 and 214), is applied to the message encrypted in order to produce the original message, if however a successful default attack does not take place.
  • the result of the last series 214 of the reverse cryptographic algorithm is saved (step 216) and compared with the original message during step 218. If the two messages are identical, the final check 116 is carried out as is described above. Otherwise, the algorithm 100 is stopped and an error 114 indicative of a fault attack is generated.
  • the main advantage of this embodiment is the increased level of security. Indeed, it would be more difficult to generate two faults, one in the normal algorithm and one in the reverse algorithm, which would lead to the original message.
  • FIG. 7 illustrates another solution than the secret key algorithm 302 according to a third embodiment of the present invention.
  • the entire cryptographic algorithm is run twice in parallel, and the results of the two algorithms are stored (steps 304 and 306) and compared (step 308) to determine if a successful default attack took place.

Landscapes

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

Abstract

Procédé de détection des attaques par mise en défaut contre les algorithmes cryptographiques comprenant un processus d'initialisation auquel on fournit un vecteur d'initialisation et une clé pour calculer au moins une sous-clé à partir de la clé ; une fonction de somme de contrôle sur l'au moins une sous-clé et le vecteur d'initialisation. Le résultat de l'étape de calcul de la somme de contrôle est stocké. Le procédé inclut également, dans l'algorithme cryptographique auquel sont livrés un message, un vecteur d'initialisation et une clé, l'étape consistant à calculer au moins une sous-clé à partir de la clé ; calculer une fonction de somme de contrôle sur l'au moins une sous-clé et le vecteur d'initialisation ; comparer le résultat de ladite étape de calcul de la somme de contrôle avec ledit résultat stocké ; et crypter le message par le biais d'un algorithme de cryptage en utilisant les sous-clés calculées. Procédé dans lequel une attaque par mise en défaut est détectée quand le résultat de l'étape de comparaison montre que le résultat stocké de l'étape de calcul de la somme de contrôle du processus d'initialisation n'est pas identique au résultat de l'étape de calcul de la somme de contrôle de l'algorithme cryptographique.

Description

PROCEDE DE DETECTION DES ATTAQUES PAR MISE EN DEFAUT CONTRE LES ALGORITHMES CRYPTOGRAPHIQUES
Domaine de l' invention
La présente invention concerne les algorithmes cryptographiques. La présente invention concerne plus particulièrement, un procédé de détection des attaques par mise en défaut contre les algorithmes cryptographiques . Arrière-plan de l' invention Les cartes à puce, qui constituent un mode de réalisation particulier de dispositifs électroniques, ont été conçues à l'origine pour améliorer la sécurité des systèmes distribués. Parmi les applications de la carte à puce, on trouve par exemple les cartes téléphoniques, les cartes d'identification, les cartes médicales, les cartes de transaction (crédit/débit de compte en banque, magasin, restaurant, etc.) et les cartes de sécurité. Toutes ces applications nécessitent le traitement de données sensibles et confidentielles à l'intérieur de la carte à puce. Il est important de disposer de moyens pour préserver le caractère privé et confidentiel de ces données afin de garantir un degré de sécurité suffisant pour les cartes à puce. Ces cartes sont en effet exposées à différents types de tentatives frauduleuses menées de l'extérieur pour accéder aux données stockées dans la carte.
La cryptographie, art et science de préserver des données secrètes, est devenue l'un des principaux outils utilisés pour préserver le secret, imposer la confiance, garantir le contrôle d'accès et la sécurité des entreprises, entre autres choses. La transformation cryptographique de données confidentielles est souvent désignée par le terme cryptage. Par ailleurs, le processus consistant à récupérer les données compréhensibles à partir du cryptogramme (les données cryptées) est habituellement appelé décryptage.
Les algorithmes cryptographiques modernes utilisent, de manière conventionnelle, au moins une clé pour commander le cryptage et le décryptage. Il existe deux catégories générales d' algorithmes cryptographiques basés sur une clé : les algorithmes symétriques (ou à clé secrète) et asymétriques (ou à clé publique) . De manière générale, les algorithmes symétriques utilisent la même clé pour le cryptage et le décryptage, ou utilisent une clé de décryptage pouvant être facilement dérivée de la clé de cryptage. A l'inverse, les algorithmes asymétriques utilisent une clé différente pour le cryptage et pour le décryptage et la clé de décryptage ne peut pas être dérivée de la clé de cryptage. Par conséquent, la clé des algorithmes cryptographiques symétriques doit être gardée secrète, tandis que la clé de cryptage des algorithmes cryptographiques asymétriques peut être rendue publique.
L'utilisation typique d'une carte à puce est le stockage d'une ou de clés secrètes par exemple qui sont utilisées, à leur tour, pour crypter ou décrypter des données provenant du monde extérieur. Une clé secrète peut être utilisée pour effectuer de nombreuses opérations, comme l' authentification, l'intégrité des données, l'authenticité des données et la confidentialité des données par exemple.
Ainsi qu'on l'a expliqué précédemment, les cryptosystèmes, c'est-à-dire les systèmes utilisant une technologie cryptographique, sont exposés à différents types de tentatives menées de l'extérieur pour accéder à la clé qu'ils contiennent. Ces tentatives frauduleuses d'accès de l'extérieur, que l'on appelle communément attaques, forment la cryptoanalyse qui, de manière générale, est l'art de découvrir la clé secrète utilisée dans un protocole donné.
Il existe un grand nombre de techniques cryptoanalytiques ou d' attaques pouvant être lancées contre des algorithmes cryptographiques. Un nouveau type d'attaques est apparu ces dernières années, pour casser le dispositif cryptographique mis en œuvre au niveau matériel plutôt qu'au niveau algorithmique. Nous allons commenter ci-dessous un exemple de ces attaques au niveau matériel, que l'on appelle communément "attaques par mise en défaut". Une attaque par mise en défaut part du principe qu'en exposant un dispositif électronique scellé, par exemple une carte à puce, à certain effets physiques (ionisation ou rayonnement hyperfréquence par exemple) , on peut induire, avec un degré de probabilité raisonnable, un défaut au niveau d'un emplacement de binaire aléatoire dans un des registres, à une étape intermédiaire aléatoire dans l'algorithme cryptographique .
Le plus souvent, l'attaquant détient physiquement le dispositif électronique, dans l'intention de répéter l'expérience avec le même message et la même clé, mais sans' appliquer les effets physiques extérieurs. Il en résulte l'obtention de deux messages chiffrés dérivés du même message et de la même clé (inconnus), l'un des messages chiffrés étant correct et l'autre étant le résultat d'un calcul altéré par une simple erreur sur un binaire pendant le calcul.
Un problème de la technologie des cryptosystèmes est donc de sécuriser des algorithmes cryptographiques pour les protéger des attaques par mise en défaut mentionnées ci-dessus. La figure 1, intitulée "Art antérieur", est un schéma fonctionnel d'un algorithme cryptographique conventionnel 10 dans lequel des fonctions de sécurité ont été mises en œuvre pour détecter les attaques par mise en défaut. Comme le comprendra aisément l'homme du métier, le procédé conventionnel de détection des attaques par mise en défaut consiste à effectuer chaque calcul deux fois et à comparer les résultats des deux calculs pour déterminer si une attaque par mise en défaut a eu lieu. Si c'est le cas, l'algorithme cryptographique est stoppé afin d'empêcher la fuite de données importantes . L'algorithme cryptographique conventionnel 10 de la figure 1 est essentiellement divisé en deux algorithmes. Un premier algorithme 12, appelé algorithme à clé secrète, concerne le cryptage réel du message 14. Un second algorithme 16 appelé algorithme à génération de clés, reçoit une clé 20 pour calculer des sous-clés nécessaires à l'algorithme à clé secrète 12, procédé conventionnel connu dans la technique.
Chacun des deux algorithmes 12 et 16 exécute chaque opération de calcul deux fois, comme on l'a dit précédemment. Par conséquent, des erreurs d'attaque par mise en défaut 22 et 24 peuvent être générées par ces algorithmes .
On notera que, tandis que le message 14 soumis à l'algorithme à clé secrète 12 varie à chaque fois que l'algorithme cryptographique 10 est utilisé, la clé 20 est la même pour chaque utilisation de cet algorithme 10. Ceci suppose bien sûr qu'on utilise la bonne clé 20. Si aucune attaque par mise en défaut n'est détectée à la fin de l'algorithme à clé secrète 12, le message 14 est crypté de manière à obtenir un message chiffré 26.
L'algorithme à génération de clés 16 est représenté de manière plus détaillée dans le schéma fonctionnel de la figure 2, également intitulée "Art antérieur". Cette figure illustre les mesures prises pour la duplication des calculs en vue de vérifier l'intégrité des résultats obtenus dans l'algorithme à génération de clés 16.
Comme le sait bien l'homme du métier, un algorithme à clé secrète tel que 12, a besoin conventionnellement d'une sous-clé pour chacune de la pluralité des calculs nécessaires pour réaliser le cryptage du message. Cependant, pour des raisons de concision, seules les étapes menant au transfert de la sous-clé de l'algorithme à génération de clés 16 vers l'algorithme à clé secrète 12 pour la première série seront décrites ci-dessous .
Comme le montre la figure 2, deux étapes séparées 28 et 30 de calcul de la première sous-clé dérivée, respectivement désignée par "sous-clé Ki" et "sous-clé Kλ" , se déroulent de manière indépendante dans la première série de calculs 32.
Les résultats de ces deux étapes de calcul sont ensuite comparés, au cours de l'étape 38, afin de vérifier leur intégrité. Si le résultat des étapes de calcul 28 et 30 ne sont pas identiques, une erreur d'attaque par mise en défaut 24 est générée. Si les deux sous-clés calculées sont identiques, la sous-clé Ki est alors livrée à l'algorithme à clé secrète 12. L'homme du métier comprendra bien que le processus de calcul décrit ci-dessus pour la première série 32 se répète dans les séries qui suivent jusqu'à atteindre la fin de l'algorithme à génération de clés.
Bien sûr, les algorithmes utilisant le double calcul tels que décrits ci-dessus sont plutôt coûteux en termes de performances puisque le processus prend deux fois plus de temps. Les technologies des cartes à puce récentes étudient donc les moyens d'améliorer les performances en réduisant les temps de calcul. Résume de l'invention
De manière plus spécifique, selon la présente invention, on propose un procédé de détection des attaques par mise en défaut contre les algorithmes cryptographiques, le procédé comprenant les étapes qui consistent : dans un processus d' initialisation : - à fournir un vecteur d'initialisation ;
- à fournir une clé ;
- à calculer au moins une sous-clé à partir de la clé ;
- à calculer une fonction de somme de contrôle sur l'au moins une sous-clé et le vecteur d'initialisation pour produire une valeur de somme de contrôle de référence ;
- à stocker la clé et la valeur de la somme de contrôle de référence ; dans l'algorithme cryptographique :
- à fournir un message ;
- à fournir le vecteur d'initialisation ;
- à fournir la clé ;
- à calculer au moins une sous-clé à partir de la clé ;
- à calculer une fonction de somme de contrôle sur l'au moins une sous-clé et le vecteur d'initialisation ;
- à comparer la valeur de la somme de contrôle de l'étape de calcul de la somme de contrôle avec la valeur de la somme de contrôle de référence ; et
- à exécuter l'algorithme cryptographique, en utilisant le message et au moins une sous-clé calculée, pour exécuter au moins un calcul interne ; procédé dans lequel une attaque par mise en défaut est détectée quand le résultat de l'étape de comparaison montre que la valeur de la somme de contrôle n'est pas identique à la valeur de la somme de contrôle de référence stockée.
D'autres objets, avantages et caractéristiques de la présente invention apparaîtront plus clairement à la lecture de la description ci-dessous, non restrictive, de modes de réalisation préférés de l'invention, description faite à titre d'exemple et qui se réfère seulement aux dessins joints. Brève description des dessins
Dans les dessins joints en annexe :
La figure 1, intitulée "Art antérieur", est un schéma fonctionnel montrant la configuration conventionnelle d'un algorithme cryptographique ;
La figure 2, intitulée " Art antérieur ", est un schéma fonctionnel de l'algorithme à génération de clés de l'algorithme cryptographique de la figure 1 ; La figure 3 est un schéma fonctionnel montrant une configuration d'un algorithme cryptographique qui met en œuvre un procédé de détection des attaques par mise en défaut contre les algorithmes cryptographiques selon la présente invention ; La figure 4 est un schéma fonctionnel de la méthode d' initialisation selon la présente invention ;
La figure 5 est un schéma fonctionnel plus détaillé de l'algorithme cryptographique de la figure 3 ;
La figure 6 est un schéma fonctionnel de l'algorithme à clé secrète, selon un deuxième mode de réalisation ; et La figure 7 est un schéma fonctionnel de l'algorithme à clé secrète, selon un troisième mode de réalisation.
Description du mode de réalisation préféré Un algorithme cryptographique 100 possédant les caractéristiques permettant de détecter les attaques par mise en défaut selon un mode de réalisation de la présente invention va maintenant être décrit en référence aux figures 3 et 5. Cet algorithme 100 peut être mis en œuvre, par exemple, dans des dispositifs électroniques tels par exemple que les cartes à puce.
Comme on peut le voir sur la figure 3, l'algorithme cryptographique 100 inclut un algorithme à clé secrète 102 et un algorithme à génération de clés 104. L'algorithme à clé secrète 102 reçoit un message 106 et des sous-clés 108 calculées par l'algorithme à génération de clés 104, comme il sera décrit plus bas. D'autre part, l'algorithme à génération de clés 104 reçoit un vecteur d'initialisation 110 et une clé 112. Le vecteur d'initialisation 110 a une valeur fixe et est utilisé dans des fonctions de somme de contrôle, comme il sera décrit plus bas. Le vecteur d'initialisation est stocké, de manière avantageuse, dans une mémoire non volatile du dispositif électronique. La clé 112 est la clé dite "secrète", nécessaire pour crypter et décrypter le message.
Tel que décrit plus haut à propos des algorithmes cryptographiques de l'art antérieur, l'algorithme à clé secrète 102, puisqu'il traite des données qui changent à chaque fois que l'algorithme est utilisé, c'est-à- dire le message 106, effectue chaque opération deux fois et compare les résultats des deux calculs. Une erreur d'attaque par mise en défaut 114 est générée lorsque les deux résultats ne sont pas identiques, ce qui entraîne l'arrêt de l'algorithme 100. Cependant, tel qu'il sera décrit ci-dessous en détail, l'algorithme à génération de clés 104 n'effectue pas chaque opération deux fois.
De manière générale, la présente invention consiste à exécuter une méthode d'initialisation lors du montage du dispositif électronique, auquel on se réfère ci- dessous comme étant une carte à puce, avant sa remise à l'utilisateur. Ce processus d'initialisation consiste à calculer toutes les sous-clés nécessaires pour l'algorithme à clé secrète 102, à calculer une fonction de somme de contrôle sur toutes ces sous-clés et à stocker la valeur de la somme de contrôle en résultant, désignée ci-dessous par SBKCHKi, en même temps que la clé secrète, de préférence dans une mémoire non volatile de la carte à puce, de manière à ce que l'on puisse y accéder lors de l'utilisation ultérieure de la carte à puce.
De manière plus spécifique, la même fonction de somme de contrôle fait partie de l'algorithme à génération de clés 104 et produit une valeur de la somme de contrôle, désignée ci-dessous par SBKCHK, qui peut être comparée à la valeur SBKCHKi stockée au cours d'une étape de contrôle final 116 qui détermine si une attaque par mise en défaut a réussi pendant le déroulement de l'algorithme à génération de clés 104. Si une attaque par mise en défaut réussie est détectée, une erreur d'attaque par mise en défaut 118 est générée. Dans le cas contraire, le message chiffré 120 est achevé. Comme il semblera évident à l'homme du métier, étant donné que le calcul de chaque sous-clé n'est effectué qu'une seule fois lorsque la carte à puce est utilisée, et étant donné que la détection d'une attaque par mise en défaut ne se fait qu'une seule fois après que l'algorithme à génération de clés 104 est achevé, en comparant SBKCHK et SBKCHKi, l'algorithme à génération de clés 104 est beaucoup plus rapide que l'algorithme à génération de clés 106 de l'art antérieur (voir figure 1) sans compromettre la sécurité ou l'intégrité du message chiffré 120.
En référence maintenant à la figure 4 des dessins joints en annexe, nous allons décrire le processus d'initialisation, qui fait partie du montage de la carte à puce. En effet, avant sa première utilisation, toute carte à puce doit faire l'objet d'un montage correct, par exemple pour coder dans la carte la clé choisie par l'utilisateur. Selon un mode de réalisation de la présente invention, ce montage en un temps de la carte à puce implique également un processus d'initialisation supplémentaire.
Ce processus d'initialisation inclut autant de séries que l'algorithme à clé secrète 102 effectif afin de calculer toutes les sous-clés nécessaires pour l'algorithme à clé secrète 102. Par exemple, dans la série 1, on calcule la sous-clé Ka. (étape 122) à partir de la clé 112. La sous-clé Ki est ensuite livrée à une fonction de somme de contrôle 124 qui a également pour entrée le vecteur d'initialisation 110. La valeur de la somme de contrôle SBKCHKi en résultant est utilisée dans la série suivante, comme entrée de la fonction de somme de contrôle de cette série consécutive. Le vecteur d'initialisation 110 est utilisé uniquement dans la première série du processus de calcul. La valeur de la somme de contrôle finale calculée SBKCHKi, à laquelle on se réfère également comme étant la valeur de la somme de contrôle de référence, est stockée dans la mémoire non volatile au cours de l'étape 126.
Comme le comprendra l'homme du métier, la confugration de la carte à puce est effectuée en une seule fois. On notera également que, étant donné que cette configuration a lieu dans les locaux de l'émetteur de la carte, les attaques par mise en défaut ne sont pas susceptibles de se produire pendant la configuration et on n' a pas besoin de caractéristiques de sécurité pour se protéger de telles attaques.
Nous allons décrire maintenant de manière plus détaillée, en nous référant à la figure 5, l'algorithme cryptographique 100 de la figure 3.
Il convient de noter que si la description ci- dessous se réfère plus particulièrement à la première série 128 de l'algorithme cryptographique 100, les étapes suivantes se répètent pour chaque série de 1' algorithme.
Dans la première série 128, l'algorithme à génération de clés 104 calcule une première sous-clé Kα à partir de la clé 112 (étape 130) . La sous-clé Kα est alors livrée à l'algorithme à clé secrète 102 et est utilisée également par une fonction de somme de contrôle 132, identique à la fonction de somme de contrôle 124 du processus d'initialisation de la figure 4, qui prend également le vecteur d'initialisation 110 comme entrée. La valeur de la somme de contrôle SBKCHKi résultante de cette fonction 132 est utilisée comme entrée pour la fonction de somme de contrôle de la série suivante.
En ce qui concerne l'algorithme à clé secrète 102, la première série 128 implique que l'on calcule deux fois (étapes 134 et 136) un premier résultat intermédiaire, respectivement Ri et Ri' , à partir du message 106 et de la première sous-clé Ki . Ces deux résultats sont ensuite comparés au cours de l'étape 138. Si les résultats sont identiques, le résultat est livré à la série suivante. Dans le cas contraire, l'algorithme 100 est stoppé et une erreur 114 indicatrice d'une attaque par mise en défaut est générée . Ici, l'homme du métier comprendra bien sûr que les étapes secondaires dans le calcul du premier résultat intermédiaire varient en fonction de l'algorithme à clé secrète spécifique utilisé.
Les étapes décrites ci-dessus se répètent pour chaque série jusqu'à la fin de la dernière série 140. La valeur de la somme de contrôle SBKCHK résultant de la fonction de somme de contrôle 142 de la dernière série 140 est ensuite comparée à la valeur de la somme de contrôle de référence SBKCHKi stockée pour déterminer si une attaque par mise en défaut a été lancée avec succès.
Par conséquent, pendant le déroulement de l'algorithme cryptographique 100, les attaques par mise en défaut sont détectées, dans l'algorithme à clé secrète 102 impliquant le message 106, par duplication des calculs et comparaison des résultats correspondants. D'autre part, dans l'algorithme à génération de clés 104, qui implique uniquement des données fixes, les attaques par mise en défaut sont détectées en comparant la valeur de la somme de contrôle finale avec une valeur de la somme de contrôle de référence stockée antérieurement dans la mémoire non volatile de la carte à puce pendant le processus d' initialisation.
Il convient de noter également que les fonctions somme de contrôle utilisées dans l'algorithme à génération de clés 102 décrit ci-dessus n'ont pas été décrites en détail car nous pensons qu'il entre dans les compétences de l'homme du métier de concevoir une fonction de somme de contrôle appropriée.
Nous allons décrire maintenant un deuxième mode de réalisation de l'algorithme à clé secrète 202 en nous référant à la figure 6 des dessins joints en annexe.
De manière générale, dans l'algorithme à clé secrète 202, au lieu de vérifier les résultats intermédiaires de chaque série dupliquée, c'est la totalité du processus de cryptage qui produit, à son achèvement, le message chiffré 120. Une fois que le résultat est calculé, l'algorithme cryptographique inverse, ou décryptage, s'effectue en utilisant le message chiffré 120 comme une entrée, afin de vérifier que le message original 106 peut être déduit du message chiffré 120. Si c'est le cas, on peut supposer qu'il n' y a pas eu d'attaque par mise en défaut ayant abouti.
De manière plus spécifique, la première étape 204 consiste à stocker une copie du message original. L'algorithme cryptographique, qui consiste en des séries de calculs successives conduisant à la série finale 206, est alors traité. Le résultat de la série finale 206, il s'agit, techniquement, du message chiffré, est alors stocké au cours de l'étape 208. L'algorithme cryptographique inverse, qui consiste en des séries inversées (par exemple 210, 212 et 214), est appliqué au message chiffré afin de produire le message original, si toutefois aucune attaque par mise en défaut réussie n'a lieu. Le résultat de la dernière série 214 de l'algorithme cryptographique inverse est sauvegardé (étape 216) et comparé au message original au cours de l'étape 218. Si les deux messages sont identiques, le contrôle final 116 s'effectue comme on l'a décrit ci-dessus. Dans le cas contraire, l'algorithme 100 est stoppé et une erreur 114 indicatrice d'une attaque par mise en défaut est générée.
L'homme du métier comprendra aisément que toutes les sous-clés sont sauvegardées dans la mémoire volatile de la carte à puce puisqu'on en a besoin à deux moments différents dans l'algorithme à clé secrète 102, c'est-à-dire dans l'algorithme cryptographique et dans l'algorithme cryptographique inverse.
Le principal avantage de ce mode de réalisation réside dans le niveau de sécurité accru. En effet, il serait plus difficile de générer deux défauts, un dans l'algorithme normal et un dans l'algorithme inverse, qui conduiraient au message original.
D'autre part, un inconvénient mineur de ce mode de réalisation concerne le volume de mémoire volatile nécessaire pour sauvegarder toutes les sous-clés. Pour finir, la figure 7 illustre une autre solution que l'algorithme à clé secrète 302 selon un troisième mode de réalisation de la présente invention. Dans ce mode de réalisation, l'algorithme cryptographique tout entier s'effectue deux fois en parallèle, et les résultats des deux algorithmes sont stockés (étapes 304 et 306) et comparés (étape 308) pour déterminer si une attaque par mise en défaut réussie a eu lieu.
Il convient de noter que, tandis que le dispositif électronique dans lequel est intégré l'algorithme cryptographique de la présente invention a été décrit, ci-dessus, comme étant une carte à puce, d'autres types de dispositifs électroniques, comme par exemple les Assistants Numériques Personnels (ANP) et les téléphones cellulaires pourraient bénéficier de l'algorithme cryptographique de la présente invention. L'homme du métier comprendra aisément que les algorithmes illustrés et décrits dans le présent fascicule sont schématiques et que beaucoup d' autres caractéristiques sont nécessaires pour produire un algorithme cryptographique approprié. Nous pensons que ces caractéristiques autres sont bien connues ; c'est pourquoi nous ne les abordons pas ici.
Bien que la présente invention ait été décrite, dans les pages qui précèdent, en référence à des modes de réalisations préférés de l'invention, elle peut être modifiée sans se départir de l'esprit et de la nature de l'invention concernée, définie dans les revendications en annexe.

Claims

REVENDICATIONS
1. Procédé de détection des attaques par mise en défaut contre les algorithmes cryptographiques, ledit procédé comprenant les étapes qui consistent : dans un processus d'initialisation :
- à fournir un vecteur d'initialisation ;
- à fournir une clé ; - à calculer au moins une sous-clé à partir de la clé ;
- à calculer une fonction de somme de contrôle sur l'au moins une sous-clé et le vecteur d'initialisation pour produire une valeur de somme de contrôle de référence ;
- à stocker la clé et la valeur de la somme de contrôle de référence ; dans l'algorithme cryptographique :
- à fournir un message ; - à fournir le vecteur d'initialisation ;
- à fournir la clé ;
- à calculer au moins une sous-clé à partir de la clé ;
- à calculer une fonction de somme de contrôle sur l'au moins une sous-clé et le vecteur d' initialisation ;
- à comparer la valeur de la somme de contrôle de ladite étape de calcul de la somme de contrôle avec la valeur de la somme de contrôle de référence ; et - à exécuter l'algorithme cryptographique, en utilisant le message et au moins une sous-clé calculée, pour exécuter au moins un calcul interne ; dans lequel une attaque par mise en défaut est détectée quand le résultat de ladite étape de comparaison montre que la valeur de la somme de contrôle n'est pas identique à la valeur de la somme de contrôle de référence stockée. Procédé de détection des attaques par mise en défaut contre les algorithmes cryptographiques selon la revendication 1, dans lequel : dans le processus d'initialisation :
- ladite étape de calcul des sous-clés inclut le calcul d'un nombre prédéterminé de sous-clés ;
- pour la première sous-clé calculée, ladite valeur de la somme de contrôle est calculée en utilisant la première sous-clé et le vecteur d'initialisation ; et - pour chacune des autres sous-clés calculées, ladite valeur de la somme de contrôle est calculée en utilisant la sous-clé et une valeur de la somme de contrôle calculée antérieurement ; dans l'algorithme cryptographique : - ladite étape de calcul de sous-clés inclut le calcul d'un nombre prédéterminé de sous-clés ;
- pour la première sous-clé calculée, ladite valeur de la somme de contrôle est calculée en utilisant la première sous-clé et le vecteur d'initialisation ; et - pour chacune des autres sous-clés calculées, ladite valeur de la somme de contrôle est calculée en utilisant la sous-clé et une valeur de la somme de contrôle calculée antérieurement. 3. Procédé de détection des attaques par mise en défaut contre les algorithmes cryptographiques selon la revendication 1, dans lequel, dans ladite étape d'exécution de l'algorithme cryptographique, chaque calcul interne nécessaire pour l'exécution de l'algorithme est effectué deux fois et fait l'objet d'une comparaison pour détecter les attaques par mise en défaut.
4. Procédé de détection des attaques par mise en défaut contre les algorithmes cryptographiques selon la revendication 1, comprenant en outre, dans l'algorithme cryptographique, les étapes consistant à :
- stocker l'au moins une sous-clé calculée ;
- exécuter un algorithme cryptographique inverse appliqué au résultat de l'étape d'exécution de l'algorithme cryptographique en utilisant l'au moins une sous-clé calculée ; et
- comparer le message et le résultat de l'étape d'exécution de l'algorithme cryptographique inverse ; dans lequel une attaque par mise en défaut est détectée lorsque le message et le résultat de l'étape de décryptage ne sont pas identiques.
5. Procédé de détection des attaques par mise en défaut contre les algorithmes cryptographiques selon la revendication 1, comprenant en outre, dans l'algorithme cryptographique, les étapes consistant a :
- répéter ladite étape d'exécution de l'algorithme cryptographique ; et - comparer les résultats des deux étapes identiques d'exécution de l'algorithme cryptographique ; dans lequel une attaque par mise en défaut est détectée lorsque les résultats des deux étapes d'exécution de l'algorithme cryptographique ne sont pas identiques.
PCT/FR2001/004219 2001-12-28 2001-12-28 Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques WO2003069841A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2002226515A AU2002226515A1 (en) 2001-12-28 2001-12-28 Method for detection of attacks on cryptographic algorithms by trial and error
PCT/FR2001/004219 WO2003069841A1 (fr) 2001-12-28 2001-12-28 Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR2001/004219 WO2003069841A1 (fr) 2001-12-28 2001-12-28 Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques

Publications (1)

Publication Number Publication Date
WO2003069841A1 true WO2003069841A1 (fr) 2003-08-21

Family

ID=27675977

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2001/004219 WO2003069841A1 (fr) 2001-12-28 2001-12-28 Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques

Country Status (2)

Country Link
AU (1) AU2002226515A1 (fr)
WO (1) WO2003069841A1 (fr)

Cited By (2)

* 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
US11379580B1 (en) * 2020-03-16 2022-07-05 Xilinx, Inc. Mixed storage of data fields

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998035467A1 (fr) * 1997-02-07 1998-08-13 Bell Communications Research, Inc. Procede d'utilisation de defauts transitoires afin de verifier la securite d'un systeme cryptographique
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
FR2808145A1 (fr) * 2000-04-25 2001-10-26 Gemplus Card Int Procede de calcul d'une donnee de controle
CA2327037A1 (fr) * 2000-11-22 2002-05-22 Gemplus S.A. Methode de detection d'attaques contre des algorithmes cryptographiques

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998035467A1 (fr) * 1997-02-07 1998-08-13 Bell Communications Research, Inc. Procede d'utilisation de defauts transitoires afin de verifier la securite d'un systeme cryptographique
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
FR2808145A1 (fr) * 2000-04-25 2001-10-26 Gemplus Card Int Procede de calcul d'une donnee de controle
CA2327037A1 (fr) * 2000-11-22 2002-05-22 Gemplus S.A. Methode de detection d'attaques contre des algorithmes cryptographiques

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KALISKI ET AL: "Comments on Some New Attacks on Cryptographic Devices", RSA LABORATORIES' BULLETIN, no. 5, 14 July 1997 (1997-07-14), Redwood City, US, pages 1 - 5, XP002202155 *

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
US8311212B2 (en) 2007-08-03 2012-11-13 Oberthur Technologies Method of processing data protected against attacks by generating errors and associated device
US11379580B1 (en) * 2020-03-16 2022-07-05 Xilinx, Inc. Mixed storage of data fields

Also Published As

Publication number Publication date
AU2002226515A1 (en) 2003-09-04

Similar Documents

Publication Publication Date Title
EP2446579B1 (fr) Procédé d'authentification mutuelle d'un lecteur et d'une étiquette radio
EP1234284A1 (fr) Procede de securisation de la phase de pre-initialisation d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede
FR2759226A1 (fr) Protocole de verification d'une signature numerique
EP2296086B1 (fr) Protection d'une génération de nombres premiers contre des attaques par canaux cachés
EP2215768A2 (fr) Procede et dispositifs de protection d'un microcircuit contre des attaques visant a decouvrir une donnee secrete
EP2795833B1 (fr) Procede d'authentification entre un lecteur et une etiquette radio
FR3015080A1 (fr) Verification d'integrite de paire de cles cryptographiques
WO2012062994A1 (fr) Protection contre les ecoutes passives
EP1266364B1 (fr) Procede cryptographique de protection contre la fraude
EP1774484B1 (fr) Enregistrement d'une cle dans un circuit integre
EP1297501B1 (fr) Controle d'acces a un moyen de traitement de donnees
FR2867635A1 (fr) Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
EP0909495B1 (fr) Procede de cryptographie a cle publique
EP1449067B1 (fr) Securisation d'un generateur pseudo-aleatoire
EP2336931B1 (fr) Procédé de vérification de signature
WO2003069841A1 (fr) Procede de detection des attaques par mise en defaut contre les algorithmes cryptographiques
FR2788649A1 (fr) Procede de chargement securise de donnees entre des modules de securite
EP1728354A1 (fr) Procede d'authentification dynamique de programmes par un objet portable electronique
EP1399896A1 (fr) Procede cryptographique pour la protection d'une puce electronique contre la fraude
CA2327037A1 (fr) Methode de detection d'attaques contre des algorithmes cryptographiques
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
EP1433282A1 (fr) Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie permettant de trouver l'exposant public
EP1269431B1 (fr) Procede de protection d'une puce electronique contre la fraude
EP1721246A2 (fr) Procede et dispositif pour accomplir une operation cryptographique
WO2002045035A2 (fr) Procede de verification de l'integrite des donnees dans le traitement des donnees de dispositifs electroniques

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 BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE 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 NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE 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
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载