Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR DETECTION OF ATTACKS ON CRYPTOGRAPHIC ALGORITHMS BY TRIAL AND ERROR
Document Type and Number:
WIPO Patent Application WO/2003/069841
Kind Code:
A1
Abstract:
The invention relates to a method for detection of attacks on cryptographic algorithms by trial and error, comprising an initialisation process, whereby an initialisation vector is provided and a key for the calculation of at least one sub-key from the key and a sum-check function on the at least one sub-key and the initialisation vector. The result from the stage for calculation of the sum-check is stored. The method further comprises, within the cryptographic algorithm to which a message, an initialisation vector and a key are delivered, the stage comprising calculation of at least one sub-key from the key, calculation of a sum-check function on the at least one sub-key and initialisation vector, comparison of the check-sum with the stored result and encryption of the message by application of an encryption algorithm using the calculated sub-keys. The invention further relates to a method whereby an attack by trial and error is detected when the result of the comparison step shows that the stored result from the stage of calculation of the sum-check on the initialisation process is not the same as the result from the stage of calculation of the sum-check in the cryptographic algorithm.

Inventors:
BENOIT OLIVIER (CA)
ROBERT JEAN-MARC (CA)
Application Number:
PCT/FR2001/004219
Publication Date:
August 21, 2003
Filing Date:
December 28, 2001
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GEMPLUS CARD INT (FR)
BENOIT OLIVIER (CA)
ROBERT JEAN-MARC (CA)
International Classes:
H04L9/06; (IPC1-7): H04L9/06
Domestic Patent References:
WO1998035467A11998-08-13
Foreign References:
FR2808145A12001-10-26
US5991415A1999-11-23
CA2327037A12002-05-22
Other References:
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
Attorney, Agent or Firm:
Bruyere, Pierre (La Vigie - Service Brevets BP90, La Ciotat Cedex, FR)
Download PDF:
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 sousclé à partir de la clé ; à calculer une fonction de somme de contrôle sur l'au moins une sousclé 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 sousclé à partir de la clé ; à calculer une fonction de somme de contrôle sur l'au moins une sousclé 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 sousclé 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.
2. 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 sousclés inclut le calcul d'un nombre prédéterminé de sousclés ; pour la première sousclé calculée, ladite valeur de la somme de contrôle est calculée en utilisant la première sousclé et le vecteur d'initialisation ; et pour chacune des autres sousclés calculées, ladite valeur de la somme de contrôle est calculée en utilisant la sousclé et une valeur de la somme de contrôle calculée antérieurement ; dans l'algorithme cryptographique : ladite étape de calcul de sousclés inclut le calcul d'un nombre prédéterminé de sousclés ; pour la première sousclé calculée, ladite valeur de la somme de contrôle est calculée en utilisant la première sousclé et le vecteur d'initialisation ; et pour chacune des autres sousclés calculées, ladite valeur de la somme de contrôle est calculée en utilisant la sousclé 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 sousclé 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 sousclé 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 à : 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.
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 mme 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 oeuvre 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 mme message et la mme clé, mais sans appliquer les effets physiques extérieurs. Il en résulte l'obtention de deux messages chiffrés dérivés du mme message et de la mme 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 oeuvre 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'empcher 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 mme 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é Ksi", 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é K 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 oeuvre 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 oeuvre, 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'arrt 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 mme 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 mme 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é K1 (étape 122) à partir de la clé 112. La sous-clé K1 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 SBKCHK1 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 l'algorithme.

Dans la première série 128, l'algorithme à génération de clés 104 calcule une première sous-clé Ki à partir de la clé 112 (étape 130). La sous-clé K1 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 SBKCHK

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 R1 et R1', à partir du message 106 et de la première sous-clé K1. 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.