FR2986631A1 - Dispositif et procede de production d'un code d'authentification d'un message - Google Patents

Dispositif et procede de production d'un code d'authentification d'un message Download PDF

Info

Publication number
FR2986631A1
FR2986631A1 FR1300123A FR1300123A FR2986631A1 FR 2986631 A1 FR2986631 A1 FR 2986631A1 FR 1300123 A FR1300123 A FR 1300123A FR 1300123 A FR1300123 A FR 1300123A FR 2986631 A1 FR2986631 A1 FR 2986631A1
Authority
FR
France
Prior art keywords
key
message
generated
authentication code
generator
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
FR1300123A
Other languages
English (en)
Other versions
FR2986631B1 (fr
Inventor
Wieland Fischer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of FR2986631A1 publication Critical patent/FR2986631A1/fr
Application granted granted Critical
Publication of FR2986631B1 publication Critical patent/FR2986631B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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

Landscapes

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

Abstract

Dispositif de production d'un code d'authentification de message sur la base d'un premier message et d'une clé d'origine, qui comprend un générateur (110) de clé pour la production d'une clé engendrée reposant sur la clé initiale et sur le premier message et un générateur (120) de code d'authentification de message pour la production du code d'authentification de message sur la base de la clé engendrée et du premier message.

Description

Dispositif et procédé de production d'un code d'authentification d'un message La présente invention concerne la production de codes d'authentification de message, en particulier un dispositif et un procédé de production d'un code d'authentification de message reposant sur un premier message et une clé d'origine. Depuis une dizaine d'années, on utilise des piratages par canal latéral, comme par exemple la simple analyse de profil du courant (en anglais : Simple Power Analysis = SPA) et l'analyse différentielle de profil du courant (en anglais : Differential Power Analysis = DPA), pour la mise en oeuvre de piratages de chiffres de bloc symétriques, qui sont utilisés par exemple par l'algorithme de chiffrement DES (en anglais : DES = Data Encryption Standard) ou par l'algorithme de chiffrement AES (en anglais : AES = Advanced Encryption Standard). On utilise également des piratages par canal latéral, comme la DPA ou la DPA, pour pirater des crypto-algorithmes dissymétriques, comme par exemple l'algorithme de chiffrement RSA (RSA = Rivest Shamir Adleman) et des systèmes de courbe elliptique. "Pirater" signifie ici que le pirate extrait la clé secrète, par laquelle les algorithmes de chiffrement fonctionnent.
Des crypto-algorithmes qui ne fonctionnement pas avec des clés secrètes, comme par exemple des algorithmes de Hash, sont moins concernés par des piratages par canal latéral, puisque, dans ce cas, le plus souvent, n'entrent pas en jeu d'autres secrets, comme par exemple des clés secrètes, mais seulement une information donnée à l'avance sous la forme d'un message (en anglais message) M doit être compressée. Il existe toutefois une application des algorithmes de 5 Hash, dans laquelle une clé secrète est utilisée, dont il faut empêcher qu'elle soit compromise, à savoir empêcher le calcul de ce que l'on appelle un code d'authentification de message (en anglais message authentification code). Le concept de "code 10 d'authentification de message" est abrégé dans ce qui suit par l'abréviation "MAC. Un MAC est grossièrement le Hash composé d'une clé k secrète et d'un message M. Un code d'authentification de message est utilisé, non seulement pour assurer l'intégrité d'un message, mais en 15 plus encore pour assurer que celui-ci ne soit disponible qu'à une partie qui est en possession de la clé k secrète. La figure 7 illustre une génération de MAC suivant l'état de la technique. Une information sous la forme d'un 20 message M est entrée ensemble avec une clé k secrète dans un dispositif 700, qui exécute un algorithme de MAC. Le dispositif 700 calcule le code de MACk(M) d'authentification de message, qui dépend du message M et de la clé k secrète. 25 Comme, théoriquement, chaque mise en oeuvre non endurcie spécifiquement contre cela d'un algorithme qui mélange un secret constant, comme par exemple une clé secrète, à une entrée variable et connue est piratable par DPA, cela vaut aussi pour un calcul de MAC. 30 Des piratages par canal latéral utilisent souvent la connaissance de la consommation de courant d'un processeur pour le piratage. Dans de nombreux algorithmes de chiffrement, la consommation de courant d'un processeur est différente, selon qu'est traité un bit d'une clé ou d'un résultat intermédiaire qui a la valeur 1, de la consommation de courant du processeur lorsque est traité un bit d'une clé ou d'un résultat intermédiaire qui a la valeur O. On exécute ainsi des calculs dans des algorithmes de chiffrement, souvent seulement si un bit d'une clé ou d'un résultat intermédiaire dépendant d'une clé prend la valeur 1, tandis que pour une valeur de bit de 0, on n'effectue pas le calcul. Cela donne, dans cet exemple, une consommation de courant plus grande pour une valeur de bit de 1 que pour le bit de valeur 0. Dans d'autre cas, on exécute, par exemple, des instructions déterminées, seulement lorsqu'un bit déterminé d'une clé ou d'un résultat intermédiaire dépendant d'une clé prend la valeur 0. Cela entraîne aussi une consommation de courant du processeur, qui est différente suivant qu'un bit a la valeur 1 ou a la valeur 0. Il est ainsi, en principe, possible, en connaissant la consommation de courant d'un processeur, de tirer des conclusions sur une clé secrète ou d'obtenir un résultat intermédiaire dépendant d'une clé secrète, résultat intermédiaire qui permet alors à nouveau de tirer des conclusions sur la clé secrète. On peut ainsi déterminer, dans certaines circonstances, par un piratage par canal latéral, une clé secrète utilisée sur une carte à puce, lorsque celle-ci n'est pas sécurisée vis-à-vis de piratages par canal latéral. Les piratages par canal latéral ne sont toutefois pas limités à l'analyse de la consommation de courant. C'est ainsi que, dans le cas de piratages par canal latéral, d'autres grandeurs caractéristiques, comme le rayonnement électromagnétique, peuvent, par exemple, être analysées, grandeurs qui peuvent également être différentes en fonction des valeurs de bit d'une clé ou d'un résultat intermédiaire dépendant d'une clé. Des exemples de piratage par canal latéral sont l'analyse simple du profil de courant (en anglais : Simple Power Analysis), désignée dans ce qui suit par "SPA", et l'analyse différentielle du profil de courant (en anglais : Differential Power Analysis), désignée dans ce qui suit par "DPA". On peut utiliser aussi des attaques d'erreurs pour effectuer un piratage.
La SPA fonctionne simplement par le fait qu'on enregistre la consommation de courant d'un processeur. Le profil de courant enregistré est ensuite considéré et on en étudie les excentricités. On obtient donc, en considérant visuellement le profil de courant, donc par exemple la consommation de courant au cours du temps, souvent des différences nettes au cours du temps. Des phases de consommation de courant plus grandes et des phases de consommation plus petites peuvent souvent être distinguées nettement. Si, on analyse, par exemple, le profil de courant d'un processeur qui exécute un algorithme de chiffrement DES, on peut reconnaître souvent nettement, par exemple les 16 passes qui se répètent dans le chiffrement DES. Si on considère alors le profil de courant, en ce qui concerne les passes identifiées avec précision, on peut souvent tirer des conclusions sur les opérations qui ont été effectuées à certains instants sur certaines valeurs de bit. Au lieu de, comme dans la SPA, considérer visuellement le profil du courant, par exemple d'un processeur, l'analyse différentielle du profil de courant (DPA) se sert de moyens statistiques pour déterminer une clé secrète qui est utilisée dans un algorithme de chiffrement.
On enregistre d'abord, pour une pluralité de messages à chiffrer par une clé, respectivement le profil du courant, donc par exemple la consommation du courant d'un processeur au cours du temps, lors de la réalisation d'un 5 algorithme de chiffrement, et on l'analyse ensuite statistiquement. On peut ainsi utiliser, par exemple, la circonstance souvent existante que des résultats intermédiaires, qui sont calculés par l'algorithme de chiffrement, dépendent, outre du message à chiffrer, 10 souvent seulement d'une partie des bits de la clé secrète. Si, par exemple, un résultat intermédiaire, qui peut être par exemple 0 ou 1, dépend seulement de six bits d'une clé de 56 bits, un pirate pourrait, en connaissant les 15 valeurs d'entrée, donc par exemple le message à chiffrer pour toutes les 26 = 64 variantes différentes pour les six bits pertinents de la clé, calculer la valeur du résultat intermédiaire et alors, par exemple pour chacune des 64 variantes différentes, calculer un profil du 20 courant moyen de tous les profils de courant dont le résultat intermédiaire prend une certaine valeur, par exemple la valeur 1, pour un bit à calculer. Avec une grande probabilité, il se présente alors, pour le profil du courant moyen de la bonne variante des 25 64 possibilités différentes pour les six valeurs de bits, des particularités nettes par rapport aux autres profils du courant moyen, car, en règle générale, c'est le seul, pour lequel les messages, pour tous les profils de courant qui ont été utilisés pour le calcul du profil du 30 courant moyen, qui a donné lors de son chiffrement en fait le même résultat intermédiaire. Pour empêcher des piratages DPA, on a proposé diverses techniques. Une technique consiste, par exemple, à ajouter des bruits pendant que l'on effectue des opérations qui utilisent la clé secrète. Une autre technique consiste en l'utilisation de techniques de masquage, comme par exemple un masquage booléen et un masquage arithmétique. Les techniques de masquage consistent fondamentalement en ce que, avant l'application d'une opération en utilisant un secret, comme par exemple une clé secrète, on masque d'abord le message sur lequel la clé secrète est appliquée, c'est-à-dire qu'on le modifie. On peut effectuer, par exemple, le masquage en échangeant divers bits du message d'une façon qui est inconnue du pirate. Une autre possibilité consiste à modifier le message auquel la clé secrète est appliquée, de manière à modifier le message en utilisant une séquence de bits secrète, par exemple en effectuant une opération OU EXCLUSIF, qui combine logiquement le message et la séquence de bits secrète. En variante ou en plus, on peut effectuer des opérations ET et/ou des opérations OU pour masquer le message. L'opération critique, dans laquelle la clé secrète vient à s'appliquer, est alors appliquée sur le message masqué pour obtenir le résultat de l'opération. Ce résultat se présente alors sous la forme masquée. D'une manière correspondante, après avoir effectué l'opération, on revient sur le masquage pour obtenir un résultat démasqué. Un algorithme à protéger, dans lequel il faut protéger à la fois des opérations 'booléennes et arithmétiques, exige, lors de l'application de technique de masquage, souvent le recalcul fréquent du masquage booléen en arithmétique et inversement. Cela vaut, par exemple, pour des opérations de Hash, dans lesquelles on applique une opération de Hash à une séquence de bits secrète, qui doit être sécurisée à l'encontre de piratages par canal latéral. Les algorithmes de ce genre sont sécurisés à cet effet, par exemple, par des méthodes de masquage, qui exigent une dépense considérable de temps de calcul, lorsqu'elles sont mises en oeuvre en logiciel ou qui ont un grand besoin de surface correspondant, lorsqu'elles sont réalisées en matériel. Dans le calcul d'un MAC, on calcule des valeurs de Hash pour des valeurs qui, de leur côté, ont été calculées en utilisant une clé à conserver secrète. Le développement de concepts réalisables d'une manière efficace, pour empêcher des piratages par canal latéral, qui analysent la production d'un code d'authentification de message, justifie d'y consentir des efforts. La présente invention vise donc la sécurisation efficace d'une production de MAC à l'encontre de piratages par canal latéral. On y parvient par un dispositif de production d'un code d'authentification de message sur la base d'un premier message et d'une clé d'origine, caractérisé en ce qu'il comprend un générateur de clé pour la production d'une clé engendrée reposant sur la clé initiale et sur le premier message et un générateur de code d'authentification de message pour la production du code d'authentification de message sur la base de la clé engendrée et du premier message, par un procédé de production d'un code d'authentification de message reposant sur un premier message et sur une clé d'origine, caractérisé en ce qu'il comprend la production d'une clé engendrée reposant sur la clé d'origine et sur le premier message et la production du code d'authentification de message reposant sur la clé engendrée et sur le premier message et par un programme d'ordinateur pour la mise en oeuvre du procédé suivant l'invention, lorsque le procédé est exécuté sur un ordinateur ou sur un processeur.
Dans une sécurisation habituelle à l'encontre de piratages par canal latéral, comme par exemple une DPA appliquée à un calcul de MAC habituel, comme il pourrait s'effectuer par exemple sur une carte à puce, on appliquerait, par exemple, les techniques habituelles et l'on utilise aussi pour sécuriser, par exemple, des DES, AES, RSA, etc. En font partie, par exemple, des méthodes de masquage. Comme un calcul de MAC consiste à exécuter plusieurs fois une fonction de compression de Hash, il suffirait, certes, de conformer les calculs de Hash à l'épreuve d'une DPA. Mais, les calculs de Hash ne peuvent être sécurisés que d'une manière extrêmement coûteuse à l'encontre de piratages par canal latéral. Si on met en oeuvre le calcul de Hash dans un module matériel, la surface du matériel augmente considérablement. Si on met en oeuvre le calcul de Hash en logiciel, le temps de calcul des méthodes masquées augmente d'un multiple. Les formes de réalisation de la présente invention pallient ces inconvénients et empruntent une autre voie. Suivant un mode de réalisation de l'invention, on met à disposition un dispositif de production d'un code d'authentification de message reposant sur un premier message et sur une clé d'origine. Le dispositif comprend un générateur de clé, pour la production d'une clé engendrée reposant sur la clé reposant sur la clé initiale et sur le premier message. Le dispositif comprend, en outre, un générateur de code d'authentification de message pour la production du code d'authentification de message reposant sur la clé engendrée et sur le premier message. Le mode de réalisation ci-dessus évite une simple combinaison du calcul de MAC à des concepts de 5 sécurisation classiques à l'encontre de piratages par canal latéral, ce qui emporterait des inconvénients. Suivant l'exemple de réalisation ci-dessus, le problème de la sécurisation est déplacé sur un autre algorithme, comme par exemple une opération AES sécurisée vis-à-vis 10 d'une DPA ou une autre opération qui satisfait à certaines conditions et qui peut être conformée facilement d'une manière sûre vis-à-vis d'une DPA. C'est ainsi que de nombreux algorithmes de Hash conviennent moins bien pour une mise en oeuvre sécurisée 15 vis-à-vis d'une DPA que des chiffres de bloc symétriques ou, inversement, des chiffres de bloc symétriques conviennent mieux pour une mise en oeuvre sécurisée vis-à-vis d'une DPA que des algorithmes de Hash. Le problème de la sécurisation vis-à-vis de piratages par canal latéral, 20 par exemple déplacer sur une opération d'AES sécurisée vis-à-vis d'une DPA, comme il prévu dans des modes de réalisation préférés, est entre autres particulièrement avantageux, puisque la mise en oeuvre d'opérations AES, qui sont sûres vis-à-vis d'une DPA, est présente 25 normalement de toute façon sur une carte à puce. L'un des avantages d'une solution de ce genre est qu'un matériel de Hash ou un logiciel de Hash ne doit pas être mis en oeuvre d'une manière sûre vis-à-vis d'une DPA, mais, qu'au lieu de cela, on peut s'en remettre à une mise en oeuvre 30 standard vis-à-vis de piratages par canal latéral et/ou à une mise en oeuvre qui a été optimisée en vitesse et qui est présente souvent de toute façon sur une carte à puce.
On peut tirer parti aussi de la circonstance qu'un calcul de Hash est intensif en temps ou en surface d'un multiple par rapport à un chiffre de bloc ou qu'inversement un chiffre de bloc peut être conformé d'une manière plus efficace en temps ou en surface qu'un calcul de Hash. Suivant un mode de réalisation, le générateur de clé est tel qu'il produit la clé engendrée en utilisant un algorithme de chiffrement cryptographique. Dans un autre mode de réalisation, le générateur de clé 10 peut être tel qu'il produit la clé engendrée par un calcul de Hash du premier message. Dans un autre mode de réalisation, le générateur de clé est tel qu'il produit la clé engendrée en effectuant un calcul de Hash pour une partie du premier message. 15 Suivant un autre mode de réalisation, le générateur de clé est tel qu'il produit la clé engendrée, de manière à ce que l'entropie de la clé engendrée ne soit pas plus petite que l'entropie de la clé d'origine. Dans un autre mode de réalisation, le générateur de clé 20 est tel qu'il produit la clé engendrée, de manière à ce que, lorsque exactement un bit du premier message ou de la clé d'origine est modifié, lors de la production renouvelée de la clé engendrée, en moyenne, en considération de toutes les clés possibles ayant une 25 première longueur de bit définie à l'avance et de tous les premiers messages ayant une deuxième longueur de bit définie à l'avance, entre 45% et 55% des bits de la clé engendrée se modifient. Suivant un autre mode de réalisation, le générateur de 30 clé est tel qu'un chiffrement AES est utilisé pour la production de la clé engendrée.
Dans un autre mode de réalisation, le générateur de clé est tel qu'il applique la formule AESk(H(M)), M désignant le premier message, H(M) désignant le calcul de H du premier message M, k désignant la clé d'origine et AESk désignant un chiffrement AES en utilisant la clé k d'origine. Suivant un autre mode de réalisation, le générateur de clé peut avoir des moyens de sécurisation, qui sont tels qu'ils sécurisent la production de la clé engendrée à 10 l'encontre de piratages par canal latéral. De préférence, les moyens de sécurisation sont conçus pour effectuer une opération de masquage, en ce qui concerne le premier message, pour obtenir un message masqué, le générateur de clé étant conçu pour produire la 15 clé engendrée sur la base de la clé d'origine et du message masqué. Dans un autre mode de réalisation, l'opération de masquage comprend un échange de bits du premier message ou une combinaison logique OU EXCLUSIF, ET ou OU du 20 premier message avec une séquence de bits. Dans un mode de réalisation, le générateur de code d'authentification de message est conçu pour effectuer un calcul de Hash du premier message, afin de produire le code d'authentification de message. 25 Dans un autre mode de réalisation, le générateur d'authentification de message peut être conçu pour combiner logiquement la clé engendrée dans une première opération OU EXCLUSIF avec une première constante, le générateur de code d'authentification de message étant 30 conçu pour combiner logiquement la clé engendrée dans une deuxième opération OU EXCLUSIF avec une deuxième constante. Suivant un autre mode de réalisation, le générateur de code d'authentification de message est conçu pour 5 appliquer la formule HMACk,(M) = H( (k'Oopad) I I H( (k'eipad) I I M)) pour le calcul du code d'authentification de message, M étant le premier message, k' étant la clé engendrée, Ci étant une opération OU EXCLUSIF, I I étant une concaténation 10 et H étant une opération de Hash. En outre, un dispositif de contrôle de la correction et de l'authenticité d'un message est mis à disposition, lequel comprend un dispositif de production d'un code d'authentification de message et une unité de 15 comparaison. L'unité de comparaison étant conçue pour contrôler la coïncidence d'un code d'authentification de message déterminé et d'un code d'authentification de message reçu, pour contrôler la correction et l'authenticité du message. 20 Suivant un mode de réalisation, il est mis à disposition un procédé de production d'un code d'authentification de message reposant sur un premier message et sur une clé d'origine, caractérisé en ce qu'il comprend la production d'une clé engendrée reposant sur la clé d'origine et sur 25 le premier message et la production du code d'authentification de message reposant sur la clé engendrée et sur le premier message. On produit alors un code d'authentification de message reposant sur la clé k' engendrée et sur le message M. 30 Dans un autre mode de réalisation, on met à disposition un procédé ou une méthode de production d'un code MAC d'authentification de message reposant sur un message M ayant une clé k secrète. Le procédé ou la méthode a les caractéristiques suivantes : (i) Production d'une clé k' de session à partir de M et de k par un procédé ou par une méthode, qui résiste à la collision en ce qui concerne les messages, donc par un procédé ou une méthode tel qu'il est difficile cryptographiquement de trouver deux messages M1 et M2, de sorte que k' (k, M1) = k' (k, M2). (ii) Utilisation de la clé k' de session dans un algorithme MAC, pour produire un MAC par le message M ayant la clé k' engendrée. De préférence, la production de la clé k' engendrée implique un calcul de Hash du message M.
Il est, en outre, préféré qu'un algorithme de chiffrement cryptographique produise, à partir des entrées M ou d'une valeur de Hash calculée sur la base de M et de la clé k d'origine, une clé k' engendrée comme chiffre. Des modes de réalisation préférés sont explicités en se 20 reportant aux dessins dans lesquels : la figure 1 illustre un dispositif de production d'un code d'authentification de message reposant sur un premier message et sur une clé d'origine suivant un mode de réalisation, 25 la figure 2 représente un dispositif de production d'un code d'authentification de message reposant sur un premier message et sur une clé d'origine suivant un autre mode de réalisation, 30 la figure 3 représente un dispositif de production d'un code d'authentification de message reposant sur un premier message et sur une clé d'origine suivant un mode de réalisation, la figure 4 représente un dispositif de production d'un code d'authentification de message reposant sur un premier message et sur une clé d'origine suivant un autre mode de réalisation, la figure 5 représente un dispositif de contrôle de la correction et de l'authenticité d'un message suivant un mode de réalisation, la figure 6 représente une organigramme qui illustre un procédé de production d'un code d'authentification de message reposant sur un premier message et sur une clé d'origine suivant au autre mode de réalisation, la figure 7 représente une production d'un code d'authentification de message suivant l'état de la technique, et la figure 8 représente une production d'un HMAC suivant l'état de la technique.
La figure 1 représente un dispositif de production d'un code d'authentification de message reposant sur un premier message M et sur une clé k d'origine. Le dispositif comprend un générateur 110 de clé, pour la production d'une clé k' engendrée reposant sur la clé k d'origine et sur le premier message M. En outre, le dispositif comprend un générateur 120 de code d'authentification de message, pour la production du code MAC'k d'authentification de message. Le dispositif reçoit comme entrée un message M et une clé 30 k d'origine. Le générateur de clé est conçu pour produire une clé k' engendrée en utilisant la clé k d'origine et en utilisant le premier message M. Cette clé k' engendrée est utilisée ensuite pour la production du code d'authentification de message. De préférence, le générateur de clé est conçu pour distinguer la clé k' engendrée dans la plupart des cas d'une autre clé engendrée, lorsque des messages M1 et M2 différents sont codés. Comme dans un piratage par canal latéral, comme la DPA exige de déterminer une pluralité de profils du courant pour une pluralité de messages pour une même clé k, cette condition préalable pour un piratage réussi par canal latéral n'existe plus dans le mode de réalisation présent, puisque la clé k', qui est utilisée pour la production du code d'authentification de message, est ainsi, pour des messages M1 et M2 différents, presque toujours différente. Il n'est plus possible, ou au moins considérablement plus difficile, pour un pirate de déterminer en utilisant la DPA la clé k' utilisée pour la production du code d'authentification de message. Par ce qui est décrit en regard de la figure 1, la production proprement dite du code d'authentification de message, qui ne s'effectue que sur la base de la clé k' engendrée du message M, est protégée vis-à-vis de piratages par canal latéral. Le problème de la sujétion à des piratages par canal latéral dans un autre processus est toutefois déplacé, à savoir dans le processus de production de la clé k' engendrée, qui est produite sur la base de la clé k d'origine et du message M par le générateur 110 de clé. Comme, dans ce cas aussi, la clé k vient en contact avec le message M (connu potentiellement), il y a ici aussi un problème de DPA. La production de la clé k' engendrée est théoriquement sujette ainsi à des piratages par canal latéral, qui visent par exemple à déterminer la clé k d'origine.
Il n'est ainsi, certes, plus nécessaire dans le mode de réalisation présent de sécuriser la production proprement dite du MAC sur la base de la clé k' engendrée et du message M vis-à-vis de piratages par canal latéral ; 5 contre des piratages par canal latéral, il ne faudrait toutefois maintenant que sécuriser la production de la clé k' engendrée à partir de la clé k d'origine et du message M. Il faut donc assurer que le k' = k' (k, M) dérivé soit sécurisé vis-à-vis de piratages par canal 10 latéral. Déplacer le problème de sécurisation, comme il est prévu dans le mode de réalisation présent, s'avère toutefois comme particulièrement avantageux : c'est ainsi que la production de la clé engendrée peut être sécurisée plus 15 facilement vis-à-vis de piratages par canal latéral, comme par exemple par la DPA, que cela n'est possible pour la sécurisation des opérations de Hash dans la production du MAC, par exemple en produisant la clé engendrée 20 utilisant AES de ce genre peut être vis-à-vis de piratages par canal opérations de Hash, qui sont utilisées de code d'authentification de message. latéral que les dans la production En outre, il faut, par un chiffre de bloc, par exemple en un algorithme de chiffrement AES. Une opération sécurisée bien plus facilement 25 dans la production d'un MAC d'un message, sécuriser seulement une opération vis-à-vis de piratages par canal latéral, tandis que, dans la sécurisation des opérations de Hash dans la production de MAC, il serait nécessaire de sécuriser une série d'opérations vis-à-vis de 30 piratages par canal latéral. Dans la production de la clé k', on peut utiliser des mécanismes habituels, pour protéger la production de la clé k' engendrée, comme par exemple un masquage ou l'addition de bruits. En résumé, un aspect essentiel de ce mode de réalisation réside dans le fait que le calcul de MAC proprement dit MACk(M), avec une clé k est remplacé par un calcul du MAC avec une clé k' secrète variable. Lorsque cette clé k' variable dépend à la fois de la clé k secrète et du message M soi-même et lorsque cela s'effectue d'une façon judicieuse cryptographiquement, on peut assurer que deux messages Ml et M2 différents sont traités en MAC, même ayant deux clés déduites différentes. Cela peut être assuré, même lorsque le pirate est en mesure de déterminer soi-même les messages qui sont traités en MAC. Dans ce cas, le MAC utilise d'un message fixe toujours la même clé k', de sorte que le MAC est reproductible. Mais comme, avec cette clé k', en règle générale, on ne traite pas en MAC un deuxième message M (ou au moins pour ainsi dire jamais), k' ne peut pas être déterminé par une DPA. Il est particulièrement avantageux de satisfaire les points a) à e) suivants : a) La force cryptographique du système ne doit pas être diminuée. En d'autres termes, le calcul de k' ne doit pas diminuer l'entropie de la clé. Dans certaines situations, la perte de quelques bits peut être toutefois supportée en entropie, lorsque, par exemple, la longueur de la clé est de toute façon plus grande que nécessaire. b) Il faut réagir sur chaque bit de l'entrée, c'est-à- dire de la clé k d'origine et du message M, par exemple la production de la clé engendrée doit dépendre de chaque bit de l'entrée.
Il est préféré, lorsqu'un bit quelconque de l'entrée est basculé, par exemple un bit de la clé k d'origine ou un bit du message M, de basculer alors en moyenne entre 45% et 55% des bits de sortie. En d'autres termes, entre 45% et 55% des bits sont modifiés en moyenne dans la clé k' engendrée.
Il est particulièrement préféré qu'il y ait un effet d'avalanche, c'est-à-dire : en moyenne, 50% des bits de sortie sont basculés. En d'autres termes, dans la clé k' engendrée, en moyenne 50% des bits sont modifiés. c) Il ne faut pas qu'il soit possible de produire pour un premier message Ml un autre deuxième message M2, de sorte que l'on ait pour la clé k d'origine et la clé k' engendrée : k' (k, Ml) = k' (k, M2) Cela ne doit surtout pas être possible si l'on ne connaît 15 pas non plus k. d) Il est avantageux de ne pas pouvoir calculer la clé k d'origine à partir des informations k' (clé engendrée) et M (message, pour lequel le MAC a été calculé); e) Le calcul de k'=kv(k, M) ne doit pas permettre de 20 tirer des conclusions sur k par des piratages par canal latéral. Pas non plus, si M est connu ou même peut être choisi. Suivant un mode de réalisation, on procure un dispositif qui satisfait les points a) à d). 25 Dans un mode de réalisation préféré, on met à disposition un dispositif qui satisfait les points a) à e). Suivant un mode de réalisation, on met à disposition un dispositif qui est conçu pour remplacer pour la production d'un code d'authentification de message une clé k d'origine par une clé k' engendrée, laquelle est produite de la façon suivante : k' := k' (k, M) := AESk (H(M)). M désigne un message ; H désigne une opération de Hash 5 qui est appliquée à ce message pour obtenir la valeur de H(M) ; AESk désigne un algorithme de chiffrement AES qui est utilisé avec la clé k d'origine pour chiffrer la valeur de Hash M ; et k' désigne la clé engendrée qui est produite. Un dispositif de ce genre satisfait 10 automatiquement les points à) à d). Le point e) est assuré par la mise en oeuvre. Par exemple, un concept de masquage de l'état de la technique peut être utilisé pour réaliser le point e), comme par exemple une technique connue de masquage de l'algorithme de 15 chiffrement AES. Une production de ce genre de la clé engendrée est particulièrement avantageuse, entre autres parce que l'opération de Hash utilisée ne doit pas nécessairement être sécurisée vis-à-vis de piratages par canal latéral, 20 car elle n'est pas appliquée à la clé k conservée secrète, mais seulement au message M. Dans la production du MAC, le calcul d'AES doit être ainsi le seul qui doit résister à un piratage par canal latéral. 25 Au lieu d'utiliser l'algorithme AES, il y a de nombreuses autres possibilités de produire une clé k' engendrée. On peut utiliser, par exemple, un algorithme DES ou un algorithme triple-DES pour la production d'une clé k' engendrée. 30 Dans nombre de modes de réalisation, les points a) à e) sont satisfaits, suivant les cas, éventuellement, seulement graduellement ou partiellement. C'est ainsi qu'il n'est pas absolument nécessaire dans nombre de modes de réalisation d'utiliser un algorithme de chiffrement fort. La figure 2 représente maintenant un mode de réalisation qui autorise un calcul de MAC sûr. Suivant cela, on produit d'abord une clé engendrée, par exemple une clé de session (en anglais : Session-Key) k' à partir du message M et d'une clé k d'origine par un générateur 210 de clé. La clé de session est utilisée alors par un générateur 220 de code d'authentification de message pour produire le code MAC'k d'authentification de message. La figure 3 représente un mode de réalisation pour la production de la clé engendrée, par exemple d'une clé k' de session. La production de la clé k' de session peut s'effectuer, par exemple, en soumettant le message M dans un premier module 312 à une opération de Hash. On peut alors chiffrer dans un deuxième module 315 le résultat par la clé k, par exemple en utilisant un AES sécurisé vis-à-vis de piratages par canal latéral. Il y a de nombreuses autres possibilités de produire une clé engendrée qui est sécurisée vis-à-vis de piratages par canal latéral, pourvu que les points a) à e) décrits ci-dessus soient respectés. On représente dans ce qui suite un autre mode de réalisation de la présente invention, qui se rapporte aux HMAC (HMAC = code d'authentification de message sur la base de Hash ; en anglais : Hash-based Message Authentification Code). Tout d'abord, toutefois, pour mieux faire comprendre le code d'authentification de message HMAC tel qu'il est connu dans l'état de la technique, il sera explicité en se reportant à la figure 8. Une information sous la forme d'un message M ensemble avec une clé secrète est envoyée à un dispositif, qui exécute un algorithme MAC. Celui-ci calcule le code d'authentification de message.
Dans le dispositif de la figure 8, une clé k d'origine est le cas échéant raccourcie si cette clé est trop longue, pour obtenir une clé K (stade 810). S'il n'est pas nécessaire de raccourcir la clé K, on prend sans changement la clé k comme clé K. Ensuite, la clé K est combinée (820) suivant une logique de OU EXCLUSIF à une séquence de bit ipad. Le résultat est ensuite concaténé (830) avec le message M, pour obtenir un premier résultat concaténé, qui est mis à disposition dans le stade 835, pour une première opération de Hash. On applique (840) alors la première opération de Hash au premier résultat concaténé, pour obtenir un premier résultat de Hash, qui, dans le stade 845, est mis à disposition pour une deuxième concaténation 860. Dans un autre stade 850, la clé K est combinée suivant une logique de OU EXCLUSIF à une autre séquence opad de bit et ensuite est mise à disposition par le stade 855, également pour la deuxième concaténation. Le résultat mis à disposition dans le stade 855 de cette combinaison OU EXCLUSIF est alors concaténé (860) avec le premier résultat de Hash mis à disposition dans le stade 845. On applique (870) alors une deuxième opération de Hash au résultat de la deuxième concaténation, en obtenant finalement le code MAC d'authentification de messge. La fonction de Hash habituelle, sur laquelle repose le 30 procédé HMAC, est définie par H: {0, 1} *-* {0, 1} de la longueur L de sortie.
Des procédés de Hash connus sont, par exemple, SHA-1, la famille de SHA-2 (SHA = Algorithme de Hash Sécurisé ; en anglais = Secure Hash algorithme), comprenant SHA256, SHA384, SHA512. Un Hash de ce type consiste essentiellement en une fonction h circulaire : {0, 1}L x {0, -* {0, 1}', dans lequel L Par exemple, pour SHA-1 : L = 512, i = 180. La fonction circulaire est appliquée itérativement, pour soumettre des messages de n'importe quelle longueur à des 10 opérations de Hash. Comme cela est illustré déjà à la figure 8, le HMAC pour le message M avec la clé k secrète est défini alors par, HMACk(M) = H ( (K0opad) I I H( (Keipad) I I M)) opad et ipad étant des constantes, 0 étant une opération 15 OU EXCLUSIF et I I étant une simple concaténation. On soumet donc d'abord K ensemble avec le message M à une opération de Hash, et on soumet ensuite à nouveau le résultat ensemble avec K à une opération de Hash. K satisfait la longueur d'entrée du Hash H, donc par 20 exemple K: -k II 0... . . ...O. Un algorithme de MAC peut ainsi être produit, par exemple par HMAC, au moyen d'un algorithme de Hash habituel. A cet effet, on soumet d'abord une fois le message ensemble 25 avec la clé k à une opération de Hash sous forme condensée. Ensuite, on soumet encore une fois le Hash à une opération de Hash avec la clé k. La figure 4 représente un dispositif suivant un mode de réalisation de l'invention, dans lequel on produit un code d'identification de message au moyen d'un HMAC. Le dispositif est conçu pour produire une clé k' engendrée en soumettant un message M à une opération de Hash dans une première unité 410 de Hash, pour obtenir un premier résultat de Hash, et il est prévu une unité 420 AES, qui est conçue pour chiffrer le premier résultat de Hash par la clé k en utilisant un algorithme AES sécurisé vis-à-vis de piratages par canal latéral. Un premier modificateur 430 et un deuxième modificateur 470 sont prévus pour raccourcir, le cas échéant, la clé k' engendrée, si cette clé est trop longue, afin d'obtenir une clé K'. S'il n'est pas nécessaire de raccourcir la clé k' engendrée, on prend sans changement la clé k' engendrée comme clé K'. Une première unité 440 logique OU EXCLUSIF est prévue,pour combiner suivant une combinaison OU EXCLUSIF la clé K' à une séquence ipad de bit, pour obtenir un premier résultat de OU EXCLUSIF. Une première unité 450 de concaténation est prévue pour concaténer le premier résultat de OU EXCLUSIF au message M, pour obtenir un premier résultat concaténé. Il est prévu, en outre, une deuxième unité 460 de Hash pour appliquer une opération de Hash au premier résultat concaténé, afin d'obtenir un deuxième résultat de Hash. Un deuxième module 480 de OU EXCLUSIF est conçu pour combiner suivant une logique de OU EXCLUSIF la clé K' à une autre séquence opad de bit, afin d'obtenir un deuxième résultat de OU EXCLUSIF. Une deuxième unité 490 de concaténation est prévue pour combiner le deuxième résultat de Hash et le deuxième résultat de OU EXCLUSIF, pour obtenir un deuxième résultat concaténé. Il est prévu, en outre, une troisième unité 495 de Hash pour appliquer une opération de Hash au deuxième résultat concaténé, afin d'obtenir le code MAC d'authentification de message. La figure 5 représente un dispositif de contrôle de la correction et de l'authenticité d'un message. Le dispositif est conçu pour contrôler, au moyen d'un code MACempfangen d'authentification de message reçu, qu'un message est correct et authentique. A cet effet, le dispositif de contrôle de la correction et de l'authenticité du message a un dispositif 510 de production d'un code d'authentification de message suivant l'un des modes de réalisation décrits ci-dessus et une unité 520 de comparaison. Le dispositif 510 de production du code d'authentification de message produit un code MACberechnet 15 d'authentification de message calculé reposé sur une clé (d'origine) et sur un message M. L'unité 520 de comparaison est conçue pour contrôler la coïncidence du code MACberechnet d'authentification de message produit et du code MACempfangen d'authentification 20 de message reçu, afin de contrôler la correction et l'authenticité du message. Si MACberechnet et MACempfangen identiques, on suppose que le message est correct et authentique. Si MACberechnet et MACempfangen ne sont pas identiques, on en déduit que le message n'est pas correct 25 et/ou qu'il n'est pas authentique. La figure 6 représente un procédé de production d'un code d'authentification de message reposant sur un premier message M et sur une clé k d'origine suivant un mode de réalisation. Dans le stade 610, on produit une clé k' 30 engendrée reposant sur la clé k d'origine et sur le message M. Ensuite, on produit, dans le stade 620, un code d'authentification de message reposant sur la clé k' engendrée et sur le message M. Bien que l'on ait décrit de nombreux aspects en relation avec un dispositif, il va de soi que ces aspects constituent aussi une description du procédé correspondant, de sorte qu'un bloc ou un élément d'un dispositif doivent s'entendre aussi comme un stade de procédé correspondant ou comme une caractéristique d'un stade de procédé. D'une manière analogue à cela, des aspects qui ont été décrits en relation avec un stade du procédé ou comme un stade du procédé représentent aussi une description d'un bloc correspondant ou de détails ou de caractéristiques d'un dispositif correspondant. Certains ou tous les stades de procédé peuvent être réalisés par un appareil matériel (ou en utilisant un appareil matériel), comme par exemple un microprocesseur, un ordinateur programmable ou un circuit électronique. Dans certains exemples de réalisation, on peut exécuter par un appareil de ce genre certains ou plusieurs de ces stades de procédé les plus importants. Suivant les exigences de mise en oeuvre, des exemples de réalisation de l'invention peuvent être mis en oeuvre en matériel ou en logiciel. La mise en oeuvre peut s'effectuer en utilisant un support de mémoire numérique, par exemple, un disque souple, un DVD, un disque Blu-ray, un CD, une ROM, une PROM, une EPROM, une EEPROM ou une mémoire FLASH, un disque dur ou une autre mémoire magnétique ou optique, sur laquelle des signaux de commande pouvant être lus par voie électronique sont mémorisés, signaux qui peuvent coopérer ou qui coopèrent avec un système d'ordinateur programmable, de manière à effectuer le procédé respectif. Le support de mémoire numérique peut ainsi être lu par un ordinateur.
Nombre d'exemples de réalisation suivant l'invention comprennent donc un support de données, qui a des signaux de commande pouvant être lus par voie électronique, qui sont en mesure de coopérer avec un système d'ordinateur programmable, de manière à effectuer un procédé décrit dans le présent mémoire. D'une manière générale, des exemples de réalisation de la présente invention peuvent être mis en oeuvre sous la forme de produits de programme informatique ayant un code de programme, le code de programme étant efficace pour effectuer l'un des procédés, lorsque le produit de programme informatique passe sur un ordinateur. Le code de programme peut être mémorisé, par exemple, aussi sur un support pouvant être lu automatiquement.
D'autres exemples de réalisation comprennent le programme informatique pour la mise en oeuvre d'un procédé décrit dans le présent mémoire, le programme informatique étant mémorisé sur un support pouvant être lu automatiquement. En d'autres termes, un exemple de réalisation du procédé suivant l'invention est ainsi un programme informatique, qui a un code de programme pour effectuer l'un des procédés décrits dans le présent mémoire, lorsque le programme informatique passe sur un ordinateur. Un autre exemple de réalisation du procédé suivant l'invention est ainsi un support de données (ou un support de mémoire numérique ou un support pouvant être lu par ordinateur), sur lequel le programme informatique est enregistré pour effectuer l'un des procédés décrits dans le présent mémoire.
Un autre exemple de réalisation du procédé suivant l'invention est ainsi un flux de données ou une séquence de signaux, qui représentent le programme informatique pour effectuer l'un des procédés décrits dans le présent mémoire. Le flux de données ou la séquence de signaux peuvent être configurés, par exemple, pour être transférés par une liaison de communication de données, par exemple par l'internet. Un autre exemple de réalisation comprend un dispositif de traitement, par exemple un ordinateur ou un composant logique programmable, qui est configuré ou qui est adapté pour effectuer l'un des procédés décrits dans le présent mémoire. Un autre exemple de réalisation comprend un ordinateur, sur lequel est installé le programme informatique pour la mise en oeuvre de l'un des procédés décrits dans le 15 présent mémoire. Un autre exemple de réalisation suivant l'invention comprend un dispositif ou un système, qui est conçu pour transmettre à un récepteur un programme informatique pour la mise en oeuvre d'au moins l'un des procédés décrits 20 dans le présent mémoire. La transmission peut s'effectuer, par exemple, par voie électronique ou par voie optique. Le récepteur peut être, par exemple, un ordinateur, un appareil mobile, un appareil de mémoire ou un dispositif semblable. Le dispositif ou le système 25 peuvent comprendre, par exemple, un serveur de fichiers pour la transmission du programme informatique au récepteur. Dans nombre d'exemples de réalisation, on peut utiliser un composant logique programmable (par exemple un réseau 30 programmable par l'utilisateur, un FPGA) pour effectuer nombre ou toutes les fonctionnalités des procédés décrits dans le présent mémoire. Dans nombre d'exemples de réalisation, un réseau programmable par l'utilisateur peut coopérer avec un microprocesseur, pour effectuer l'un des procédés décrits dans le présent mémoire. D'une manière générale, les procédés sont effectués dans certains exemples de réalisation par un dispositif matériel quelconque. Celui-ci peut être un matériel utilisable de manière universelle, comme un processeur informatique (CPU) ou un matériel spécifique au procédé, comme par exemple un ASIC.
Des exemples de réalisation décrits ci-dessus représentent simplement une illustration de la présente invention. Il va de soi qu'on peut y apporter des modifications et des variations et que celles-ci apparaîtront à l'homme du métier.

Claims (20)

  1. REVENDICATIONS1. Dispositif de production d'un code d'authentification de message sur la base d'un premier 5 message et d'une clé d'origine, caractérisé en ce qu'il comprend : un générateur (110; 210) de clé pour la production d'une clé engendrée reposant sur la clé initiale et sur le premier message, et 10 un générateur (120; 220) de code d'authentification de message pour la production du code d'authentification de message sur la base de la clé engendrée et du premier message. 15
  2. 2. Dispositif suivant la revendication 1, caractérisé en ce que le générateur (110; 210) de clé est tel qu'il produit la clé engendrée en utilisant un algorithme de chiffrement cryptographique. 20
  3. 3. Dispositif suivant la revendication 1 ou 2, caractérisé en ce que le générateur (110; 210) de clé est tel qu'il produit la clé engendrée par un calcul de Hash du premier message. 25
  4. 4. Dispositif suivant la revendication 1 ou 2, caractérisé en ce quele générateur (110; 210) de clé est tel qu'il produit la clé engendrée en effectuant un calcul de Hash pour une partie du premier message.
  5. 5. Dispositif suivant l'une des revendications précédentes, caractérisé en ce que le générateur (110; 210) de clé est tel qu'il produit la clé engendrée, de manière à ce que l'entropie de la clé engendrée ne soit pas plus petite que l'entropie de la clé d'origine.
  6. 6. Dispositif suivant l'une des revendications précédentes, caractérisé en ce que le générateur (110; 210) de clé est tel qu'il produit la clé engendrée, de manière à ce que, lorsque exactement un bit du premier message ou de la clé d'origine est modifié, lors de la production renouvelée de la clé engendrée, en moyenne, en considération de toutes les clés possibles ayant une première longueur de bit définie à l'avance et de tous les premiers messages ayant une deuxième longueur de bit définie à l'avance, entre 45% et 55% des bits de la clé engendrée se modifient.
  7. 7. Dispositif suivant l'une des revendications 25 précédentes, caractérisé en ce que le générateur (110; 210) de clé est tel qu'un chiffrement AES est utilisé pour la production de la clé engendrée.
  8. 8. Dispositif suivant l'une des revendications 30 précédentes, caractérisé en ce que le générateur (110; 210) de clé est tel qu'il applique la formule AESk(H(M)), M désignant le premier message, H(M) désignant le calcul de H du premier message M,k désignant la clé d'origine et AESk désignant un chiffrement AES en utilisant la clé k d'origine.
  9. 9. Dispositif suivant l'une des revendications 5 précédentes, caractérisé en ce que le générateur (110; 210) de clé a des moyens de sécurisation, qui sont tels qu'ils sécurisent la production de la clé engendrée à l'encontre de piratages par canal latéral. 10
  10. 10. Dispositif suivant la revendication 9, caractérisé en ce que les moyens de sécurisation sont conçus pour effectuer une opération de masquage, en ce qui concerne le premier 15 message, pour obtenir un message masqué, le générateur (110; 210) de clé étant conçu pour produire la clé engendrée sur la base de la clé d'origine et du message masqué. 20
  11. 11. Dispositif suivant la revendication 10, caractérisé en ce que l'opération de masquage comprend un échange de bits du premier message ou une combinaison logique OU EXCLUSIF, ET ou OU du premier message avec une séquence de bits. 25
  12. 12. Dispositif suivant l'une des revendications précédentes, caractérisé en ce que le générateur (120; 220) de code d'authentification de message est conçu pour effectuer un calcul de Hash du 30 premier message, afin de produire le code d'authentification de message.
  13. 13. Dispositif suivant la revendication 12, caractérisé en ce quele générateur (120; 220) de code d'authentification de message est conçu pour combiner logiquement la clé engendrée dans une première opération OU EXCLUSIF avec une première constante, le générateur (120; 220) de code d'authentification de message étant conçu pour combiner logiquement la clé engendrée dans une deuxième opération OU EXCLUSIF avec une deuxième constante.
  14. 14. Dispositif suivant la revendication 13, caractérisé en ce que le générateur (120; 220) de code d'authentification de message est conçu pour appliquer la formule HMACk,(M) = H( (k'eopad) I I (k'Oipad) I I M)) pour le calcul du code d'authentification de message, 15 M étant le premier message, k' étant la clé engendrée, 0 étant une opération OU EXCLUSIF, I I étant une concaténation et H étant une opération de Hash.
  15. 15. Dispositif de contrôle de la correction et de 20 l'authenticité d'un message, caractérisé en ce qu'il comprend : un dispositif (510) suivant l'une des revendications 1 à 14 pour la production d'un code d'authentification de message déterminé, et 25 une unité (520) de comparaison, l'unité (520) de comparaison étant conçue pour contrôler la coïncidence d'un code d'authentification de message déterminé et d'un code d'authentification de message reçu, pour contrôler la correction et l'authenticité du message. 30
  16. 16. Procédé de production d'un code d'authentification de message reposant sur un premier message et sur une clé d'origine, caractérisé en ce qu'il comprend :la production (610) d'une clé engendrée reposant sur la clé d'origine et sur le premier message, et la production (620) du code d'authentification de message reposant sur la clé engendrée et sur le premier message.
  17. 17. Procédé suivant' la revendication 16, caractérisé en ce que la clé engendrée est produite en utilisant un algorithme de chiffrement cryptographique.
  18. 18. Procédé suivant la revendication 16 ou 17, caractérisé en ce que la clé engendrée est produite par un calcul de Hash du premier message. 15
  19. 19. Procédé suivant l'une des revendications 16 à 18, caractérisé en ce que pour le calcul du code d'authentification de message, on applique la formule 20 HMACk,(M) = H( (krOopad) I I H( (ki0ipad) I I M)) M étant le premier message, k' étant la clé engendrée, 0 étant une opération OU EXCLUSIF, I I étant une concaténation et H étant une opération de Hash. 25
  20. 20. Programme d'ordinateur pour la mise en oeuvre du procédé suivant l'une des revendications 16 à 19, lorsque le procédé est exécuté sur un ordinateur ou sur un processeur. 10
FR1300123A 2012-01-26 2013-01-21 Dispositif et procede de production d'un code d'authentification d'un message Expired - Fee Related FR2986631B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102012201164.1A DE102012201164B4 (de) 2012-01-26 2012-01-26 Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
DE102012201164.1 2012-01-26

Publications (2)

Publication Number Publication Date
FR2986631A1 true FR2986631A1 (fr) 2013-08-09
FR2986631B1 FR2986631B1 (fr) 2018-03-02

Family

ID=48783707

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1300123A Expired - Fee Related FR2986631B1 (fr) 2012-01-26 2013-01-21 Dispositif et procede de production d'un code d'authentification d'un message

Country Status (4)

Country Link
US (1) US20130195266A1 (fr)
CN (1) CN103312501B (fr)
DE (1) DE102012201164B4 (fr)
FR (1) FR2986631B1 (fr)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI517655B (zh) * 2013-05-23 2016-01-11 晨星半導體股份有限公司 密碼裝置以及密鑰保護方法
US9735967B2 (en) * 2014-04-30 2017-08-15 International Business Machines Corporation Self-validating request message structure and operation
CN104243159A (zh) * 2014-07-01 2014-12-24 小米科技有限责任公司 业务操作的验证方法、服务器及终端
US9509665B2 (en) 2014-08-11 2016-11-29 Alcatel Lucent Protecting against malicious modification in cryptographic operations
KR102287946B1 (ko) * 2014-09-05 2021-08-09 삼성전자주식회사 데이터 암호화 방법 및 장치
US10097345B2 (en) * 2015-04-14 2018-10-09 PeerNova, Inc. Secure hash algorithm in digital hardware for cryptographic applications
US9876641B2 (en) * 2015-10-08 2018-01-23 The Boeing Company Data dependent authentication keys for differential power analysis resistant authentication
US11296890B2 (en) * 2016-01-13 2022-04-05 Telefonaktiebolaget Lm Ericsson (Publ) Integrity protection
CN105721150B (zh) * 2016-01-26 2018-11-20 广东技术师范学院 一种多变量二次方程的掩码加密方法
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
US10460130B1 (en) * 2017-09-18 2019-10-29 Amazon Technologies, Inc. Mechanism to protect a distributed replicated state machine
GB201802582D0 (en) * 2018-02-16 2018-04-04 Nordic Semiconductor Asa Protecting cryptographic key data
CN108599922B (zh) * 2018-04-26 2021-03-30 成都盛拓源科技有限公司 新型含密钥消息完整性认证码的生成方法
WO2020044485A1 (fr) * 2018-08-30 2020-03-05 三菱電機株式会社 Dispositif d'authentification de messages, procédé d'authentification de messages et programme d'authentification de messages
US11323275B2 (en) * 2019-03-25 2022-05-03 Micron Technology, Inc. Verification of identity using a secret key
US11218330B2 (en) 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function
US11361660B2 (en) 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
US11233650B2 (en) 2019-03-25 2022-01-25 Micron Technology, Inc. Verifying identity of a vehicle entering a trust zone
CN112737767B (zh) * 2020-12-30 2022-03-15 山东大学 抗差分功耗分析与时间攻击的消息认证码生成方法及***
CN114640443B (zh) * 2022-03-17 2023-05-09 浙江广厦建设职业技术大学 一种在线工程报价安全交互方法和***

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5651069A (en) * 1994-12-08 1997-07-22 International Business Machines Corporation Software-efficient message authentication
US7249108B1 (en) * 1997-07-15 2007-07-24 Silverbrook Research Pty Ltd Validation protocol and system
US6084969A (en) * 1997-12-31 2000-07-04 V-One Corporation Key encryption system and method, pager unit, and pager proxy for a two-way alphanumeric pager network
JP2002049310A (ja) * 2000-08-04 2002-02-15 Toshiba Corp 暗復号装置、認証装置及び記憶媒体
US20030041242A1 (en) * 2001-05-11 2003-02-27 Sarver Patel Message authentication system and method
US20030188183A1 (en) * 2001-08-27 2003-10-02 Lee Lane W. Unlocking method and system for data on media
US7310821B2 (en) * 2001-08-27 2007-12-18 Dphi Acquisitions, Inc. Host certification method and system
US7613925B2 (en) * 2003-01-10 2009-11-03 Motorola, Inc. Method for authenticating a message
US8296558B1 (en) * 2003-11-26 2012-10-23 Apple Inc. Method and apparatus for securing communication between a mobile node and a network
US7404115B2 (en) * 2004-02-12 2008-07-22 International Business Machines Corporation Self-synchronising bit error analyser and circuit
US7228182B2 (en) * 2004-03-15 2007-06-05 Cardiac Pacemakers, Inc. Cryptographic authentication for telemetry with an implantable medical device
JP4570626B2 (ja) * 2004-05-03 2010-10-27 リサーチ イン モーション リミテッド 再生可能なセッションキーを生成するためのシステムおよび方法
US7624269B2 (en) * 2004-07-09 2009-11-24 Voltage Security, Inc. Secure messaging system with derived keys
US7292195B2 (en) * 2005-07-26 2007-11-06 Motorola, Inc. Energy diversity antenna and system
JPWO2007116487A1 (ja) * 2006-03-31 2009-08-20 富士通株式会社 メモリ装置、そのエラー訂正の支援方法、その支援プログラム、メモリ・カード、回路基板及び電子機器
JP4810289B2 (ja) * 2006-04-17 2011-11-09 ルネサスエレクトロニクス株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム
US8233623B2 (en) * 2006-05-08 2012-07-31 Qualcomm Incorporated Methods and systems for blackout provisioning in a distribution network
US20080011498A1 (en) * 2006-07-12 2008-01-17 Bruce Leon Catlin Cultivator and blade
CA2662686C (fr) * 2006-09-07 2013-11-12 Research In Motion Limited Procede et systeme d'etablissement d'une connexion hertzienne (ota) securisee de dispositif
DE102006044668B4 (de) * 2006-09-21 2008-09-04 Continental Automotive Gmbh Element zur Erzeugung eines Magnetfeldes
US8090098B2 (en) * 2006-11-13 2012-01-03 Electronics And Telecommunications Research Institute Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
US8418235B2 (en) * 2006-11-15 2013-04-09 Research In Motion Limited Client credential based secure session authentication method and apparatus
US8468351B2 (en) * 2006-12-15 2013-06-18 Codesealer Aps Digital data authentication
US20080175379A1 (en) * 2007-01-23 2008-07-24 Broadcom Corporation Simple pairing to generate private keys for different protocol communications
US8209550B2 (en) * 2007-04-20 2012-06-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for protecting SIMLock information in an electronic device
US8055049B2 (en) * 2007-07-18 2011-11-08 Xoran Technologies, Inc. Motion correction for CT using marker projections
JP5201716B2 (ja) * 2007-09-28 2013-06-05 東芝ソリューション株式会社 暗号モジュール配信システム、暗号管理サーバ装置、暗号処理装置、クライアント装置、暗号管理プログラム、暗号処理プログラム、およびクライアントプログラム
US8086860B2 (en) * 2007-10-01 2011-12-27 Tata Consultancy Services Limited Method for preventing and detecting hash collisions of data during the data transmission
US8392708B2 (en) * 2007-10-30 2013-03-05 Hewlett-Packard Development Company, L. P. Auditing data integrity
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
US20090193261A1 (en) * 2008-01-25 2009-07-30 Mediatek Inc. Apparatus and method for authenticating a flash program
US8533474B2 (en) * 2008-02-27 2013-09-10 Red Hat, Inc. Generating session keys
JP5156540B2 (ja) * 2008-08-22 2013-03-06 株式会社日立製作所 ハッシュ値生成装置
US8891756B2 (en) * 2008-10-30 2014-11-18 Certicom Corp. Collision-resistant elliptic curve hash functions
DE102009024604B4 (de) * 2009-06-10 2011-05-05 Infineon Technologies Ag Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung
EP2448170A4 (fr) * 2009-06-23 2015-06-24 Panasonic Ip Man Co Ltd Système de distribution de clef-cryptogramme
CN101820620B (zh) * 2009-10-19 2013-04-10 兰州理工大学 一种安全的WiMAX无线网络认证协议
ES2554671T3 (es) * 2010-01-28 2015-12-22 Koninklijke Kpn N.V. Autenticación eficaz de terminal en redes de telecomunicaciones
WO2011105350A1 (fr) * 2010-02-24 2011-09-01 ルネサスエレクトロニクス株式会社 Dispositif de communication sans fil et procédé de traitement d'authentification
JP2011254440A (ja) * 2010-06-04 2011-12-15 Toshiba Corp 情報処理装置
EP2586169A1 (fr) * 2010-06-22 2013-05-01 Telefonaktiebolaget LM Ericsson (publ) Autorisation de préservation de la confidentialité dans des environnements omniprésents
JP5763943B2 (ja) * 2011-03-24 2015-08-12 株式会社東芝 情報処理装置及びプログラム
US9197409B2 (en) * 2011-09-29 2015-11-24 Amazon Technologies, Inc. Key derivation techniques
CN104221023B (zh) * 2012-02-17 2017-11-03 爱迪德技术有限公司 用于数字权利管理的方法、装置和***

Also Published As

Publication number Publication date
US20130195266A1 (en) 2013-08-01
FR2986631B1 (fr) 2018-03-02
CN103312501B (zh) 2017-04-26
CN103312501A (zh) 2013-09-18
DE102012201164B4 (de) 2017-12-07
DE102012201164A1 (de) 2013-08-01

Similar Documents

Publication Publication Date Title
FR2986631A1 (fr) Dispositif et procede de production d'un code d'authentification d'un message
EP3280089B1 (fr) Procédé de génération de clé et procédé de contrôle d'accès
EP1358732B2 (fr) Procede de cryptage securise et composant utilisant un tel procede de cryptage
EP2638660B1 (fr) Protection contre les ecoutes passives
FR3001848A1 (fr) Procede de chiffrement homomorphe pour le ou exclusif et calcul securise d'une distance de hamming
FR2937484A1 (fr) Procede de signature numerique en deux etapes
FR2820577A1 (fr) Procede securise de calcul cryptographique a cle secrete et composant mettant en oeuvre un tel procede
EP3016315A1 (fr) Procédé d'authentification d'un utilisateur détenant un certificat biométrique
EP3300292B1 (fr) Procédé de chiffrement ou de déchiffrement protégé contre des attaques par canaux cachés
EP3300293A1 (fr) Procédé de chiffrement ou de déchiffrement symétrique par bloc
JP2017524306A (ja) 暗号化操作における悪意のある変更に対する保護
FR2860364A1 (fr) Moteur cryptographique materiel et procede de chiffrement de donnees
EP2336931B1 (fr) Procédé de vérification de signature
EP1387519A2 (fr) Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
FR3005186A1 (fr) Projet de validation d'un parametre cryptographique, et dispositif correspondant
EP4096144A1 (fr) Contremesures par infection améliorées
EP2153575B1 (fr) Obtention de valeurs dérivées dépendant d'une valeur maîtresse secrète
JP6922385B2 (ja) ノイズ存在下におけるパリティ値の同定に基づく、近似関係の関係暗号化
EP3340096B1 (fr) Procédé de configuration d'un programme cryptographique destiné à être exécuté par un terminal
EP3100403B1 (fr) Échelle de montgomery déséquilibrée résistante aux attaques par canaux auxiliaires
WO2024083849A1 (fr) Encodage en boite blanche
EP3799347B1 (fr) Sécurisation du chiffrement des et du déchiffrement des inverse
EP2129115B1 (fr) Méthode de mise à jour de données de sécurité dans un module de sécurité et module de sécurité pour la mise en oeuvre de cette méthode
FR2865086A1 (fr) Dispositif et procede pour convertir un premier message en un deuxieme message
FR2995110A1 (fr) Optimisation memoire cryptographique

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 4

PLSC Publication of the preliminary search report

Effective date: 20160429

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 8

ST Notification of lapse

Effective date: 20210905