FR2855286A1 - Transmission securisee de donnees entre deux modules - Google Patents
Transmission securisee de donnees entre deux modules Download PDFInfo
- Publication number
- FR2855286A1 FR2855286A1 FR0306183A FR0306183A FR2855286A1 FR 2855286 A1 FR2855286 A1 FR 2855286A1 FR 0306183 A FR0306183 A FR 0306183A FR 0306183 A FR0306183 A FR 0306183A FR 2855286 A1 FR2855286 A1 FR 2855286A1
- Authority
- FR
- France
- Prior art keywords
- code word
- bits
- message
- gates
- layer
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000005540 biological transmission Effects 0.000 title claims description 12
- 238000004891 communication Methods 0.000 claims description 8
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 4
- 150000001768 cations Chemical class 0.000 claims 1
- 230000015654 memory Effects 0.000 abstract description 6
- 230000002093 peripheral effect Effects 0.000 abstract description 3
- 238000002347 injection Methods 0.000 description 11
- 239000007924 injection Substances 0.000 description 11
- 230000006870 function Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000005672 electromagnetic field Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/47—Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
- H03M13/51—Constant weight codes; n-out-of-m codes; Berger codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
L'invention porte sur un procédé de transmission sécurisée de données sur des connexions entre deux modules fonctionnels (CPU, PERIPH) d'un composant électronique, comprenant les étapes de:- codage injectif par un premier module, d'un message de k bits en un mot de code de n bits présentant un poids de Hamming constant de w;- émission du mot de code vers un second module;- génération d'un signal d'erreur lorsque le poids de Hamming du mot de code de n bits reçu par le second module est différent de w;- décodage en absence d'erreur; k, w et n sont des entiers ainsi définis :2k ≤ Cwn , et3≤k< n < 2*k.L'invention simplifie la structure des circuits électroniques de codage et de décodage, et est particulièrement adaptée pour une carte à puce.L'invention porte également sur un circuit électronique correspondant.
Description
TRANSMISSION SECURISEE DE DONNEES ENTRE DEUX MODULES
La présente invention concerne un procédé de mise en oeuvre sécurisée d'un module fonctionnel dans un composant électronique.
L'invention se rapporte également au composant électronique correspondant.
On entend par module fonctionnel, un module matériel dédié à l'exécution d'une fonction qui peut être un algorithme, ce module matériel étant inclus dans un composant électronique; ce peut être également 10 un module logiciel constitué d'un programme visant à réaliser une fonction qui peut être un algorithme, ce module logiciel étant mis en oeuvre dans un composant électronique.
De tels composants sont notamment utilisés dans 15 des applications o l'accès à des services ou à des données est sévèrement contrôlé, telles que les applications de cryptographie.
Ils ont une architecture programmable formée autour d'un microprocesseur et de mémoires, dont une 20 mémoire programme non volatile qui contient une ou plusieurs données secrètes; il s'agit d'une architecture généraliste apte à exécuter n'importe quel algorithme. Ils peuvent aussi être complétés par une architecture dite matérielle, c'est-à-dire comportant 25 un (ou plusieurs) coprocesseur(s) dédié(s) à l'exécution de calculs spécifiques ou d'un seul algorithme qui présente l'avantage d'exécuter l'algorithme beaucoup plus rapidement que dans le cas d'une architecture logicielle.
Dans le cas par exemple de l'algorithme de cryptographie à clé secrète DES, acronyme anglo-saxon pour "Data Encryption Standard", qui peut être utilisé pour chiffrer un message, l'exécution est de 1000 à 10000 fois plus rapide lorsqu'elle est effectuée par un 10 coprocesseur.
Ces composants sont utilisés dans des systèmes informatiques, embarqués ou non; ils sont notamment utilisés dans les cartes à puce, pour certaines applications de celles-ci. Ce sont par exemple des 15 applications d'accès à certaines banques de données, des applications bancaires, des applications pour téléphone mobile comprenant par exemple des cartes SIM, des applications de télé-péage, par exemple pour la télévision, la distribution d'essence ou encore le 20 passage de péages d'autoroutes.
Ces composants ou ces cartes mettent donc en ouvre un algorithme de cryptographie pour assurer le chiffrement, l'authentification ou la signature numérique d'un message lorsque celui-ci doit demeurer 25 confidentiel.
A partir de ce message appliqué en entrée à la carte par un système hôte (serveur, distributeur bancaire...) et de nombres secrets contenus dans la carte, la carte fournit en retour au système hôte ce 30 message chiffré, authentifié ou signé, ce qui permet par exemple au système hôte d'authentifier le composant ou la carte, ou d'échanger des données.
Les caractéristiques des algorithmes de cryptographie peuvent être connues: calculs effectués, 5 paramètres utilisés. La seule inconnue est le ou les nombres secrets. Toute la sécurité de ces algorithmes de cryptographie tient dans ce(s) nombre(s) secret(s) contenu(s) dans la carte et inconnu(s) du monde extérieur à cette carte. Ce nombre secret ne peut être 10 déduit de la seule connaissance du message appliqué en entrée et du message chiffré fourni en retour. La sécurité mathématique des algorithmes de cryptage peut être augmentée en utilisant des nombres secrets de taille importante, afin que le temps de calcul 15 théorique de ces clés soit trop important pour les moyens de calcul actuels.
Or il est apparu que des attaques externes basées sur des grandeurs physiques mesurables à l'extérieur du composant lorsque celui-ci est en train de dérouler 20 l'algorithme de cryptographie, permettent à des tiers mal intentionnés de trouver le(s) nombre(s) ou donnée(s) secret(s) contenu(s) dans cette carte. Ces attaques sont appelées attaques à canaux cachés ("Side channel attacks" en anglais). Les signaux physiques 25 exploités sont notamment la température, le rayonnement électromagnétique, la consommation électrique ou le temps de calcul du composant.
On distingue notamment parmi ces attaques à canaux cachés, les attaques SPA acronyme anglo-saxon pour 30 Single Power Analysis basées sur une voire quelques mesures et les attaques DPA, acronyme anglo-saxon pour Differential Power Analysis basées sur des analyses statistiques issues de nombreuses mesures. Ces attaques reposent par exemple sur le fait que la consommation en courant du microprocesseur et/ou du coprocesseur 5 exécutant des instructions varie selon l'instruction ou la donnée manipulée.
Des méthodes d'attaque par injection de fautes ont également été développées. Ces méthodes comprennent entre autres, le bombardement du composant par laser ou 10 par lumière, la génération de champs électromagnétiques parasites, l'injection de pics de tension dans l'alimentation du composant, ou l'injection d'un signal d'horloge atypique (désigné par le terme clock glitching en anglais). L'effet de ces fautes serait de 15 corrompre des parties cibles dans l'exécution de l'algorithme cryptographique, ce qui permet mathématiquement de retrouver la clé secrète.
Pour contrer des attaques par injection de faute, une première alternative est de protéger le composant 20 ou la carte à puce par des écrans. Les écrans peuvent se révéler insuffisants: ils peuvent notamment être court-circuités ou présenter une sensibilité trop faible pour assurer une protection efficace.
Une deuxième alternative de protection d'un 25 composant ou d'une carte à puce est d'utiliser des capteurs destinés à désactiver le circuit en cas d'attaque. Lors de la détection d'une attaque par injection de faute, on peut soit bloquer le circuit, soit empêcher le contrevenant de réaliser des 30 opérations illégales.
Le procédé d'encodage nommé multi-rail est notamment connu pour détecter les injections de fautes et pour ne fournir aucune information par mesure de courant. Le procédé d'encodage dit dual rail ou DR est 5 un cas particulier du multi-rail et le canal de communication utilise deux connexions de communication par bit à encoder. Un 0 peut ainsi être codé par la combinaison 1-0 sur les deux connexions de communication, et un 1 peut être codé par la 10 combinaison 0-1 sur ces connexions. Le poids de Hamming des mots de code est ainsi toujours constant, quelle que soit la séquence de bits traitée. La détection d'un mot de code présentant une combinaison 1-1 ou 0-0 sur une paire de connexions, est associée à une faute.
Par ailleurs, la dual rail est souvent associé au procédé suivant: entre deux mots de code, les combinaisons passent transitoirement par l'état 00.
Les fluctuations de la distance de Hamming entre les combinaisons successives peuvent ainsi être rendues 20 constantes. Ainsi, la consommation électrique pour chaque paire est identique dans le temps. La lecture de la consommation de courant ne fournit alors aucune information exploitable pour déduire les nombres ou les données secrètes.
Cette solution présente notamment l'inconvénient de requérir un nombre de connexions double du nombre de bits des données manipulées.
L'invention revendiquée résout cet inconvénient.
L'invention porte ainsi sur un procédé de transmission 30 sécurisée de données sur des connexions entre des premier et deuxième modules fonctionnels d'un composant électronique, comprenant les étapes de: -codage injectif par le premier module, d'un message de k bits en un mot de code de n bits présentant un poids de Hamming constant de w; -émission du mot de code de n bits vers le second module; -génération d'un signal d'erreur lorsque le poids de Hamming du mot de code de n bits reçu par le 10 second module est différent de w; -décodage du mot de code reçu en absence de signal d'erreur; k, w et n sont des nombres entiers vérifiant les relations suivantes: 2k < Cn,et 3<k< n < 2*k.
Selon une variante, ABS (2w - n) < 1, ABS désignant la fonction valeur absolue.
Selon encore une variante, le procédé comprend en 20 outre une étape de génération d'un signal d'erreur lorsqu'un mot de code reçu présentant un poids de Hamming w ne correspond à aucun message.
Selon une autre variante, k =4 et n=6.
Selon encore une autre variante, le codage est 25 quasi-systématique.
On prévoit encore que le codage puisse être dynamique.
Selon une variante, on sécurise la transmission de mots de données sur des connexions entre des premier et 30 deuxième modules fonctionnels d'un composant électronique, un mot de données étant composé de plusieurs messages de k bits parallèles, caractérisé en ce qu'on effectue parallèlement les étapes définies cidessus pour tous les messages d'un mot de donnée.
L'invention porte également sur un circuit électronique comprenant: -un premier module présentant un bus de sortie pour un message de k bits, et un encodeur codant injectivement le message de k bits en un mot de code de n bits présentant un poids de Hamming constant w; -un second module présentant: -un décodeur, présentant n connexions de communication avec l'encodeur, décodant un 15 mot de code de n bits reçu en un message de k bits, -un bus d'entrée recevant les messages du décodeur, et; -un circuit de génération de signal d'erreur, 20 connecté au décodeur et générant un signal d'erreur lorsque le poids de Hamming d'un mot de code reçu diffère de w, k, w et n sont des nombres entiers vérifiant les relations suivantes: 2k < C, ,et 3<k< n < 2*k.
Selon une variante, le circuit de génération de signal d'erreur génère un signal d'erreur lorsque le mot de code reçu ne correspond à aucun message. 30 Selon encore une variante, k =4 et n=6.
Selon une autre variante, l'encodeur et le décodeur présentent chacun un multiplexeur de codage dynamique.
Selon encore une autre variante, lesdits bus des 5 premier et deuxième modules sont de la taille d'un mot de donnée composé de b messages de taille k, b étant un entier supérieur ou égal à 2, le premier module présentant b desdits encodeurs connectés en parallèle à son bus, le deuxième module présentant b desdits 10 décodeurs connectés en parallèle à son bus.
On peut également prévoir que l'encodeur comprenne: -une première couche de portes logiques, comprenant une porte OUI et une porte NON pour 15 chaque bit du message d'entrée (M0-M3); -une deuxième couche de portes logiques, comprenant 2k portes ET à entrées multiples et connectées aux sorties de la première couche logique de sorte que une et une seule porte ET 20 soit validée pour un message d'entrée donné; -une troisième couche de portes logiques, comprenant n portes OU à entrées multiples, la sortie de chaque porte ET étant connectée à l'entrée de portes OU de sorte que la sortie des 25 portes OU forme le mot de code présentant le poids de Hamming w.
Selon une variante, le décodeur comprend: -une première couche de portes logiques, dont l'entrée est connectée à la sortie de la troisième 30 couche de portes logiques de l'encodeur, comprenant une porte OUI et une porte NON pour chaque bit du mot de code reçu; -une deuxième couche de portes logiques comprenant 2n portes ET à entrées multiples et connectées aux 5 sorties de la première couche du décodeur de sorte que une et une seule porte ET soit validée pour un mot de code reçu donné; -une troisième couche de portes logiques, comprenant k portes OU à entrées multiples, la 10 sortie de chaque porte ET correspondant à un mot de code valide étant connectée à l'entrée de portes OU de sorte que la sortie des portes OU forme le message décodé.
Selon encore une variante, la troisième couche de 15 portes logiques du décodeur comprend une porte OU additionnelle à entrées multiples connectées aux sorties des portes ET correspondant à des mots de code non valides.
L'invention porte aussi sur une carte à puce 20 comprenant un tel circuit électronique.
D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description qui suit, donnée à titre d'exemple illustratif et non limitatif et faite en 25 référence aux figures suivantes dans lesquelles: -la figure 1, une représentation schématique de deux modules se transmettant des mots de code; -la figure 2, l'application de l'invention à un circuit de codage non linéaire d'un quartet par un mot 30 de code de 6 bits; -la figure 3, un exemple de tableau de conversion utilisable pour l'exemple de la figure 2.
La figure 1 représente un exemple de deux modules dont les communications par l'intermédiaire d'un bus 5 doivent être sécurisées. En l'occurrence, le module CPU correspond au processeur d'une carte à puce, et le module PERIPH correspond à une mémoire ou à un coprocesseur de la carte à puce. Chaque module présente en sortie un encodeur générant un mot de code à partir 10 d'un message. Chaque module présente également en entrée un décodeur réceptionnant les mots de code de l'autre module les transformant en un message lisible.
L'invention propose de coder un message ou mot de données par un mot de code présentant un nombre de bits 15 défini inférieur au nombre de bits du mot de code utilisé en dual-rail.
Les relations suivantes sont utilisées pour déterminer une taille n d'un mot de code présentant un poids de Hamming constant w, nécessaire pour coder un 20 message de k bits, dont la taille est inférieure au mot de code utilisé en dual-rail: 2k < C, et 3 < k< n < 2k la fonction ABS étant la fonction valeur absolue. 25 2k est le nombre de messages de données présentant
CTM
k bits. n correspond au nombre de mots de code présentant n bits avec un poids de Hamming w. La condition pour réaliser le codage, est de pouvoir établir une injection entre les messages de k bits et l! des mots de code de n bits. L'inégalité 2k < Cn est donc justifiée.
Le nombre maximum de mots de n bits et présentant un poids w est obtenu pour ABS (2w - n) < 1 car le 5 nombre maximum de mots disponibles est obtenu au sommet du graphe de la loi binomiale.
Comme on l'a détaillé auparavant, l'invention présente un intérêt pour n < 2k. On réduit alors la taille et la complexité des bus de communication entre 10 les modules.
On peut prouver que le codage est réalisable pour le plus grand nombre de mots de code possible, c'est à dire avec n=2k-1 et w= ENT(n/2) = k-1, ENT désignant la k-1 k fonction partie entière. Comme C2k-1 C2k-1, il suffit de vérifier la relation C2k-1/2 1 Cette inégalité présente des solutions pour toute valeur de k supérieure ou égale à 3, ce qui se démontre par récurrence.
Le tableau suivant compare les nombres n minimum 20 obtenus aux nombres de bits utilisés dans le procédé Dual-Rail DR:
K N DR
4 6 8 8 1il 16 16 19 32 32 35 64 On constate donc que le procédé de codage proposé permet de réduire sensiblement le nombre de connexions de communication par rapport au procédé DR.
Afin de réduire la complexité des circuits imprimés du système, l'invention est de préférence mise en oeuvre avec des codages pratiqués sur des quartets.
Un système mettant en oeuvre le codage par quartet va ainsi être présenté, en référence aux figures 2 et 3.
La figure 2 représente un circuit de codage d'un message de 4 bits M0 à M3 en un mot de code de 6 bits CO à C5. Cet encodeur comprend trois couches de portes logiques.
Chaque bit M0 à M3 est appliqué sur une porte OUI 15 et sur une porte NON respectives. Chaque bit présente ainsi en sortie de la première couche sa valeur et son complément.
Les sorties de la première couche sont câblées à 16 portes ET de la deuxième couche. Les 16 portes ET 20 représentent l'état des 16 valeurs arithmétiques du quartet M0-M3. Les portes logiques de la première et de la deuxième couche sont ainsi câblées de sorte que pour une valeur du quartet M0-M3 donnée, une seule porte ET de la deuxième couche présente un état d'activation en 25 sortie. Ainsi, une porte ET identifie un unique quartet.
Les sorties des portes ET sont appliquées sur 6 portes OU à entrées multiples (par exemple 16), qui forment la troisième couche du circuit de codage. Le 30 câblage entre les deuxième et troisième couches définit le tableau de conversion du codage choisi. Le circuit représenté présente ainsi un codage figé. Ce codage est en l'occurrence non linéaire mais ce n'est pas une exigence pour le fonctionnement du code. Lorsque la sortie d'une porte ET présente un état activé, son 5 câblage aux portes OU définit le mot de code C0-C5 généré à la sortie des portes OU.
Un circuit de décodage associé peut présenter une structure très proche de celle du circuit de codage. On peut ainsi envisager le circuit de décodage suivant, 10 présentant trois couches de portes logiques: Une première couche présente une porte OUI et une porte NON par bit du mot de code. La première couche fournit ainsi en sortie les bits du mot de code et leur complément.
Les sorties de la première couche sont connectées à 64 portes ET à 6 entrées de la deuxième couche.
Ainsi, une porte ET est associée de manière unique à un mot de code appliqué à la première couche. Ainsi, seule une porte ET présente une sortie activée pour un mot de 20 code donné.
Les quartets du message d'origine n'étant qu'au nombre de 16, l'activation de 48 des 64 portes ET correspond manifestement à une injection de faute.
Ainsi, 48 portes ET sont connectées à une porte OU 25 indiquant une attaque par injection de faute. Cette porte OU additionnelle génère ainsi un signal représentatif d'une erreur correspondant soit à un mot de code présentant un poids de Hamming différent de w, soit à un mot de code n'ayant pas de message associé 30 dans le tableau de conversion. Les connexions entre les 16 autres portes ET et les quatre portes OU restantes permettent de retrouver le message d'origine à la sortie de la troisième couche, en réalisant une inversion du tableau de conversion du circuit de codage.
Il faut noter qu'avec trois couches, et en utilisant des composants standards, on obtient un temps de propagation de l'ordre de 10 ns pour l'encodeur et le décodeur décrits. Ainsi, ces circuits peuvent par exemple être associés à un processeur cadencé à 50MHz. 10 L'utilisation de portes logiques plus rapides permet bien entendu d'augmenter la fréquence du processeur.
L'homme de métier comprendra que le câblage entre les deuxième et troisième couches de l'encodeur et du décodeur n'est pas forcément figé. On peut notamment 15 envisager d'interposer des multiplexeurs entre ces couches, afin de réaliser un codage dynamique. On coordonne bien entendu les multiplexeurs de l'encodeur et du décodeur.
On utilisera avantageusement un codage fournissant un code quasisystématique, c'est-à-dire que la majeure partie des mots de code vérifient un code sytématique.
Un code systématique est un code dans lequel chaque mot de code est la concaténation du message d'origine et de 25 bits de redondance. Un mot de code ainsi généré est ainsi relativement facile à décoder par le module récepteur. Un tel codage/décodage permet de simplifier la structure du circuit de codage et du circuit de décodage.
La figure 3 fournit un exemple de tableau de conversion utilisable pour le circuit de la figure 1.
Il représente les valeurs des bits C0-C5 d'un mot de code en fonction des valeurs MO-M3 des bits du message correspondant. Ce code est non linéaire. Ce code est quasi-systématique: seuls deux mots de code ne sont pas la concaténation du message d'origine (ces mots de code correspondent aux messages 0000 et 1111) et des bits de redondance. Les caractères gras des mots de code identifient les bits du message d'origine dans chaque mot de code.
On peut bien entendu accoler plusieurs systèmes à 4 bits à n'importe quels modules traitant un nombre de bits multiple de 4, par exemple 8, 16 ou 32 bits. Dans cette variante, même si le nombre global de bits du mot de code n'est pas optimal par rapport au tableau exposé 15 précédemment, une telle structure à codages de quartets accolés présente une complexité réduite et est très aisée à mettre en oeuvre.
Bien que le nombre de bits du mot de code selon 20 l'invention soit réduit par rapport au dual-rail, la protection contre différents types de fraude n'est pas amoindrie.
L'invention se révèle aussi performante que le procédé dual-rail pour la détection d'injection de 25 fautes monodirectionnelles, dans laquelle la probabilité de basculement de 1 à 0 d'un bit de mot de code est très supérieure à la probabilité de basculement de 0 à 1 d'un bit. Une injection monodirectionnelle est générée par exemple par des 30 impulsions lumineuses ou par l'injection de pics de tension dans une alimentation d'un module. Il est à noter que cette hypothèse monodirectionnelle est extrêmement proche de la réalité de la réponse des circuits à des attaques par injection de faute.
Par ailleurs, puisque les mots de codes transmis 5 présentent un poids de Hamming constant, ils ne permettent pas d'extrapoler des informations utiles puisque tous les mots de code présentent le même poids.
La lecture de la consommation de courant du circuit de l'invention ne fournit donc pas non plus d'informations 10 sur le message. L'invention assure donc une protection similaire au dual-rail contre les attaques par analyse de puissance.
L'invention est avantageusement adaptée pour la 15 transmission entre deux modules d'une carte à puce.
L'invention peut notamment s'appliquer à la transmission entre le processeur et une mémoire périphérique, ou à la transmission sur des bus à l'intérieur du processeur. L'invention peut bien 20 entendu être adaptée à la transmission sur les bus de circuits électroniques autres que ceux d'une carte à puce.
Claims (16)
1. Procédé de transmission sécurisée de données sur des connexions entre des premier et deuxième modules 5 fonctionnels d'un composant électronique, comprenant les étapes de: -codage injectif par le premier module, d'un message de k bits (M0-M3) en un mot de code de n bits (C0-C5) présentant un poids de Hamming 10 constant de w; -émission du mot de code de n bits vers le second module; -génération d'un signal d'erreur lorsque le poids de Hamming du mot de code de n bits reçu par le 15 second module est différent de w; -décodage du mot de code reçu en absence de signal d'erreur; -caractérisé en ce que k, w et n sont des nombres entiers vérifiant les relations suivantes: 2k < Cn,et 3<k< n < 2*k.
2. Procédé selon la revendication 1, caractérisé en ce que ABS (2w - n) < 1, ABS désignant la fonction valeur 25 absolue.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il comprend en outre une étape de génération d'un signal d'erreur lorsqu'un mot de code reçu présentant un poids de Hamming w ne correspond à aucun message.
4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que k =4 et n=6.
5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le codage est quasisystématique.
6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le codage est dynamique.
7. Procédé de transmission sécurisée de mots de données sur des connexions entre des premier et deuxième modules fonctionnels d'un composant électronique, un mot de données étant composé de plusieurs messages de k bits parallèles, caractérisé en ce qu'on effectue 20 parallèlement les étapes selon l'une quelconque des revendications 1 à 4 pour tous les messages d'un mot de donnée.
8. Circuit électronique comprenant: -un premier module présentant un bus de sortie pour un message de k bits (MO-M3), et un encodeur codant injectivement le message de k bits en un mot de code de n bits (C0-C5) présentant un poids de Hamming constant w; -un second module présentant: -un décodeur, présentant n connexions de communication avec l'encodeur, décodant un mot de code de n bits reçu en un message de k bits, -un bus d'entrée recevant les messages du décodeur, et; -un circuit de génération de signal d'erreur, connecté au décodeur et générant un signal d'erreur lorsque le poids de Hamming d'un mot 10 de code reçu diffère de w, caractérisé en ce que k, w et n sont des nombres entiers vérifiant les relations suivantes: w 2k < Cn,et 3<k< n < 2*k.
9. Circuit électronique selon la revendication 8, caractérisé en ce que le circuit de génération de signal d'erreur génère un signal d'erreur lorsque le 20 mot de code reçu ne correspond à aucun message.
10. Circuit électronique selon la revendication 8 ou 9, caractérisé en ce que k =4 et n=6.
11. Circuit électronique selon l'une quelconque des revendications 8 à 10, caractérisé en ce que l'encodeur et le décodeur présentent chacun un multiplexeur de codage dynamique.
12. Circuit électronique selon l'une quelconque des revendications 8 à 11, caractérisé en ce que lesdits bus des premier et deuxième modules sont de la taille d'un mot de donnée composé de b messages de taille k, b 5 étant un entier supérieur ou égal à 2, le premier module présentant b desdits encodeurs connectés en parallèle à son bus, le deuxième module présentant b desdits décodeurs connectés en parallèle à son bus.
13. Circuit électronique selon l'une quelconque des revendications 8, 9, 10 ou 12, caractérisé en ce que l'encodeur comprend: -une première couche de portes logiques, comprenant une porte OUI et une porte NON pour 15 chaque bit du message d'entrée (M0-M3); -une deuxième couche de portes logiques, comprenant 2k portes ET (1-16) à entrées multiples et connectées aux sorties de la première couche logique de sorte que une et une seule porte ET 20 soit validée pour un message d'entrée donné; -une troisième couche de portes logiques, comprenant n portes OU à entrées multiples, la sortie de chaque porte ET étant connectée à l'entrée de portes OU de sorte que la sortie des 25 portes OU forme le mot de code présentant le poids de Hamming w.
14. Circuit électronique selon la revendication 13, caractérisé en ce que le décodeur comprend: -une première couche de portes logiques, dont l'entrée est connectée à la sortie de la troisième couche de portes logiques de l'encodeur, comprenant une porte OUI et une porte NON pour chaque bit du mot de code reçu; -une deuxième couche de portes logiques comprenant 5 2n portes ET à entrées multiples et connectées aux sorties de la première couche du décodeur de sorte que une et une seule porte ET soit validée pour un mot de code reçu donné; -une troisième couche de portes logiques, 10 comprenant k portes OU à entrées multiples, la sortie de chaque porte ET correspondant à un mot de code valide étant connectée à l'entrée de portes OU de sorte que la sortie des portes OU forme le message décodé.
15. Circuit électronique selon la revendication 14, caractérisé en ce que la troisième couche de portes logiques du décodeur comprend une porte OU additionnelle à entrées multiples connectées aux 20 sorties des portes ET correspondant à des mots de code non valides.
16. Carte à puce comprenant un circuit électronique
selon l'une quelconque des revendications 8 à 15.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0306183A FR2855286B1 (fr) | 2003-05-22 | 2003-05-22 | Transmission securisee de donnees entre deux modules |
PCT/EP2004/050815 WO2004105304A1 (fr) | 2003-05-22 | 2004-05-14 | Transmission securisee de donnees entre deux modules |
EP04732997A EP1629625A1 (fr) | 2003-05-22 | 2004-05-14 | Transmission securisee de donnees entre deux modules |
CN200480013814.3A CN1792059A (zh) | 2003-05-22 | 2004-05-14 | 两个模块之间的安全数据传输 |
US10/557,904 US7856099B2 (en) | 2003-05-22 | 2004-05-14 | Secure data transmission between two modules |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0306183A FR2855286B1 (fr) | 2003-05-22 | 2003-05-22 | Transmission securisee de donnees entre deux modules |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2855286A1 true FR2855286A1 (fr) | 2004-11-26 |
FR2855286B1 FR2855286B1 (fr) | 2005-07-22 |
Family
ID=33396681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0306183A Expired - Fee Related FR2855286B1 (fr) | 2003-05-22 | 2003-05-22 | Transmission securisee de donnees entre deux modules |
Country Status (5)
Country | Link |
---|---|
US (1) | US7856099B2 (fr) |
EP (1) | EP1629625A1 (fr) |
CN (1) | CN1792059A (fr) |
FR (1) | FR2855286B1 (fr) |
WO (1) | WO2004105304A1 (fr) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007010009A2 (fr) * | 2005-07-19 | 2007-01-25 | Gemplus | Integrite materielle permanente des donnees |
WO2014131546A1 (fr) | 2013-02-27 | 2014-09-04 | Morpho | Procede d'encodage de donnees sur une carte a puce par des codes de poids constant |
FR3035532A1 (fr) * | 2015-04-24 | 2016-10-28 | Morpho | Procede d'encodage de donnees minimisant les variations de fuites d'un composant electronique |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1715436A3 (fr) * | 2005-04-21 | 2007-03-28 | St Microelectronics S.A. | Protection du déroulement d'un programme exécuté par un circuit intégré ou de données contenues dans ce circuit |
JP2008099204A (ja) * | 2006-10-16 | 2008-04-24 | Toshiba Corp | 論理回路 |
JP5203594B2 (ja) * | 2006-11-07 | 2013-06-05 | 株式会社東芝 | 暗号処理回路及び暗号処理方法 |
KR101646705B1 (ko) * | 2009-12-01 | 2016-08-09 | 삼성전자주식회사 | 에스-박스를 구현한 암호화 장치 |
US8614634B2 (en) * | 2012-04-09 | 2013-12-24 | Nvidia Corporation | 8b/9b encoding for reducing crosstalk on a high speed parallel bus |
US9736181B2 (en) * | 2013-07-26 | 2017-08-15 | Intel Corporation | Hardening data transmissions against power side channel analysis |
KR101489686B1 (ko) * | 2013-08-13 | 2015-02-04 | 고려대학교 산학협력단 | 차량용 네트워크의 전자제어장치간 인증 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510518B1 (en) * | 1998-06-03 | 2003-01-21 | Cryptography Research, Inc. | Balanced cryptographic computational method and apparatus for leak minimizational in smartcards and other cryptosystems |
-
2003
- 2003-05-22 FR FR0306183A patent/FR2855286B1/fr not_active Expired - Fee Related
-
2004
- 2004-05-14 CN CN200480013814.3A patent/CN1792059A/zh active Pending
- 2004-05-14 WO PCT/EP2004/050815 patent/WO2004105304A1/fr active Application Filing
- 2004-05-14 EP EP04732997A patent/EP1629625A1/fr not_active Withdrawn
- 2004-05-14 US US10/557,904 patent/US7856099B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510518B1 (en) * | 1998-06-03 | 2003-01-21 | Cryptography Research, Inc. | Balanced cryptographic computational method and apparatus for leak minimizational in smartcards and other cryptosystems |
Non-Patent Citations (4)
Title |
---|
DHEM J-F, FEYT N.: "Hardware and software symbiosis helps smart card evolution", IEEE MICRO, vol. 21, no. 6, November 2001 (2001-11-01) - December 2001 (2001-12-01), USA, pages 14 - 25, XP002275593 * |
FANG-WEI FU ET AL: "On the error-detecting abilities of binary constant weight codes", INFORMATION THEORY. 1997. PROCEEDINGS., 1997 IEEE INTERNATIONAL SYMPOSIUM ON ULM, GERMANY 29 JUNE-4 JULY 1997, NEW YORK, NY, USA,IEEE, US, 29 June 1997 (1997-06-29), pages 457, XP010239973, ISBN: 0-7803-3956-8 * |
FERNANDEZ-GOMEZ S ET AL: "Concurrent error detection in block ciphers", PROCEEDINGS INTERNATIONAL TEST CONFERENCE 2000 (IEEE CAT. NO.00CH37159), PROCEEDINGS INTERNATIONAL TEST CONFERENCE 2000, ATLANTIC CITY, NJ, USA, 3-5 OCT. 2000, 2000, Washington, DC, USA, Int. Test Conference, USA, pages 979 - 984, XP002275592, ISBN: 0-7803-6546-1 * |
MAO-CHAO LIN: "Some Results On Quasi-systematic Constant Weight Codes", PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY. BUDAPEST, JUNE 24 - 28, 1991, PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY. (ISIT), NEW YORK, IEEE, US, 24 June 1991 (1991-06-24), pages 137 - 137, XP010046866, ISBN: 0-7803-0056-4 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007010009A2 (fr) * | 2005-07-19 | 2007-01-25 | Gemplus | Integrite materielle permanente des donnees |
FR2889005A1 (fr) * | 2005-07-19 | 2007-01-26 | Gemplus Sa | Integrite materielle permanente des donnees |
WO2007010009A3 (fr) * | 2005-07-19 | 2008-06-19 | Gemplus Card Int | Integrite materielle permanente des donnees |
WO2014131546A1 (fr) | 2013-02-27 | 2014-09-04 | Morpho | Procede d'encodage de donnees sur une carte a puce par des codes de poids constant |
FR3035532A1 (fr) * | 2015-04-24 | 2016-10-28 | Morpho | Procede d'encodage de donnees minimisant les variations de fuites d'un composant electronique |
Also Published As
Publication number | Publication date |
---|---|
FR2855286B1 (fr) | 2005-07-22 |
US20070055868A1 (en) | 2007-03-08 |
EP1629625A1 (fr) | 2006-03-01 |
WO2004105304A1 (fr) | 2004-12-02 |
CN1792059A (zh) | 2006-06-21 |
US7856099B2 (en) | 2010-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2380306B1 (fr) | Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve | |
FR3004036A1 (fr) | Dispositif et procede de traitement de donnees | |
CA2816933C (fr) | Protection contre les ecoutes passives | |
EP2885875A1 (fr) | Procede d'encodage de donnees sur une carte a puce par des codes de poids constant | |
FR2855286A1 (fr) | Transmission securisee de donnees entre deux modules | |
EP1055203B1 (fr) | Protocole de controle d'acces entre une cle et une serrure electronique | |
FR2935059A1 (fr) | Procede de detection d'anomalies dans un circuit de cryptographie protege par logique differentielle et circuit mettant en oeuvre un tel procede | |
EP3595234B1 (fr) | Registre à décalage protégé contre les attaques physiques | |
FR2867635A1 (fr) | Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique | |
EP1417651A1 (fr) | Dispositif et procede de reconnaissance d'au moins un individu, dispositif et systeme de controle d'acces et applications correspondantes | |
CA2875108C (fr) | Elements secondaires dans un encodage de type fuzzy vault | |
EP1633074A1 (fr) | Circuit intégré à signal de sécurisation codé, procédé de sécurisation, dispositif et signal de sécurisation codé au moyen d'une clé dynamique correspondants. | |
Narasimhan et al. | Bio‐PUF‐MAC authenticated encryption for iris biometrics | |
Joshi et al. | Three tier data storage security in cloud using Face fuzzy vault | |
Olaniyi et al. | Enhanced stegano-cryptographic model for secure electronic voting | |
EP1442556B1 (fr) | Procédé securisé de mise en oeuvre d'un algorithme de cryptographie et composant correspondant | |
FR2906058A1 (fr) | Procede et serveur de verification du contenu d'une urne virtuelle d'un systeme de vote electronique chiffre par un algorithme homomorphique | |
Moudgil et al. | Secret Key Encryption based Steganography on Audio Signal by using 3 Dimensional Graphs | |
HASHIM | Secure Verifiable Scheme for Biometric System based on Secret Sharing and CSK | |
EP3843327A1 (fr) | Procédé de codage d'un motif d'intégrité cryptographique de faible taille et dispositifs associés | |
WO2012085047A1 (fr) | Procede d'authentification multimodale a seuil et generation de cle unimodale | |
FR3016987A1 (fr) | Echelle de montgomery desequilibree | |
EP2225693A1 (fr) | Procede de securisation d'un branchement conditionnel, support d'informations, programme, systeme securise et processeur de securite pour ce procede | |
FR3089031A1 (fr) | Procédé de protection par secret d’une donnée stockée sur un équipement mettant en œuvre un paramètre de biométrie comportementale, système de protection de donnée et programme d’ordinateur correspondants. | |
WO2001017159A1 (fr) | Methode d'encryptage multi-modules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20100129 |