FR3020161A1 - Dispositif et procede de traitement de donnees - Google Patents

Dispositif et procede de traitement de donnees Download PDF

Info

Publication number
FR3020161A1
FR3020161A1 FR1553242A FR1553242A FR3020161A1 FR 3020161 A1 FR3020161 A1 FR 3020161A1 FR 1553242 A FR1553242 A FR 1553242A FR 1553242 A FR1553242 A FR 1553242A FR 3020161 A1 FR3020161 A1 FR 3020161A1
Authority
FR
France
Prior art keywords
coding
data words
data
predefined
processing
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.)
Withdrawn
Application number
FR1553242A
Other languages
English (en)
Inventor
Paulius Duplys
Robert Szerwinski
Matthew Lewis
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of FR3020161A1 publication Critical patent/FR3020161A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Dispositif (100) pour traiter des données, ayant une interface d'entrée (110) pour recevoir les données d'entrée (X) et une unité de traitement (120). Une unité de codage (130) code les données d'entrée (X) arrivant à l'interface d'entrée (110) sous la forme de mots de données (Xn), pour obtenir des mots de données codées (Xn'), en codant les mots (Xn) pour qu'une partie prédéterminée de valeurs de mesure (X1n, X2n) qui caractérisent les mots de données codées (Xn') et/ou leur traitement par le dispositif (100) et qui se déterminent en fonction d'au moins une grandeur physique du dispositif (100), diffèrent d'une valeur prédéfinie (Vn). La différence est inférieure ou égale à un seuil prédéfini (S), et l'unité de codage (130) applique une prescription de codage en fonction d'un paramètre de codage (t-i).

Description

Domaine de l'invention La présente invention se rapporte à un dispositif de trai- tement de données comportant une interface d'entrée pour recevoir des données d'entrée et une unité de traitement pour traiter les données.
L'invention se rapporte également à un procédé de ges- tion d'un tel dispositif. But de l'invention La présente invention a pour but de développer un dispo- sitif et un procédé du type défini ci-dessus pour améliorer la sécurité vis-à-vis des attaques, notamment des attaques de canal latéral. Exposé et avantages de l'invention A cet effet l'invention a pour objet un dispositif pour trai- ter des données, le dispositif ayant une interface d'entrée pour recevoir les données d'entrée et une unité de traitement pour traiter les données, ce dispositif étant caractérisé par une unité de codage pour coder les données d'entrée arrivant à l'interface d'entrée sous la forme de mots de données, pour obtenir des mots de données codées, l'unité de codage codant les mots de données codées pour qu'une partie prédéterminée de valeurs de mesure qui caractérisent les mots de données codées et/ou leur traitement par le dispositif et qui se déterminent en fonction d'au moins une grandeur physique du dispositif, de préférence au moins environ 50% de toutes les valeurs de mesure diffèrent d'une valeur prédéfinie, la différence étant inférieure ou égale à un seuil prédéfini, l'unité de codage appliquant une prescription de codage pour le codage des mots de données codées en fonction d'au moins un paramètre de co- dage, l'unité de traitement traitant les mots de données codés. Selon l'invention le codage des mots de données codées à traiter selon le principe proposé ci-dessus complique les attaques par canal latéral vers le dispositif selon l'invention ou rend celles-ci prati- quement impossibles. De façon connue, les attaques de canal latéral de certaines implémentations de dispositif de traitement de données ou de procédé comme par exemple l'implémentation d'algorithmes de chiffrement ou analogues, utilise le fait qu'une ou plusieurs grandeurs physiques observables ou mesurables du dispositif dépendent des données traitées et permettent ainsi de tirer des conclusions concernant les données traitées comme par exemple une clef cryptographique commune ou analogue. Dans le cadre d'une attaque par canal latéral les valeurs de mesure évoquées ci-dessus et qui représentent les mots de données codées et/ou qui caractérisent un traitement de ces mots de données codées par le dispositif, sont saisies ; un attaquant peut chercher à obtenir des informations de mesures relatives aux données traitées proprement dites. Selon l'invention, il est possible de prévoir le codage des mots de données codées avant leur traitement de façon à compliquer l'attaque de canal latéral du dispositif. Le principe selon l'invention consiste à effectuer le codage dans le but d'affaiblir les valeurs de mesure déterminées par attaque de canal latéral, qui sont moins significatives sur le plan de la différence ou qui ont une corrélation commune avec les données à traiter, respectives. En d'autres termes, le codage selon l'invention prévoit que les données traitées effectives, c'est-à-dire les mots de données codées sont ainsi adaptés à une implémentation pratique du dispositif (vis-à-vis des mots de données non codées) pour que des valeurs de mesure utilisées pour une attaque par canal latéral donne des valeurs de mesure utilisées pour une attaque par canal laté- ral avec une faible tenue en informations ou une faible corrélation des mots de données codées, traitées. Une telle configuration peut être appelée ainsi "code de protection contre les fuites" car il réduit ou il évite les « fuites » au sens du chiffrement.
Selon l'invention, il est en outre possible d'appliquer une prescription de chiffrement pour coder les mots de données codées en fonction d'au moins un paramètre de codage et en modifiant le paramètre de codage on complique avantageusement encore plus les attaques par canal latéral.
Le problème de l'invention est également résolu par un dispositif pour traiter des données, comportant une interface d'entrée pour recevoir les données d'entrée et une unité de traitement pour traiter les données, ce dispositif étant caractérisé par une unité de codage pour coder les mots de données obtenus comme données d'entrée à l'interface d'entrée, pour obtenir des mots de données codées, l'unité de codage effectuant le codage des mots de données, et en ce que une partie prédéfinie de tous les mots de données codées de préférence au moins 50% de tous les mots de données codées ont entre eux une distance de Hamming prédéfinie et/ou un poids de Hamming prédéfini, l'unité de codage appliquant une prescription de codage pour coder les mots de données en fonction d'au moins un paramètre de codage et l'unité de traitement traite les mots de données codées. Ainsi, les paramètres de codage permettent avantageu- sement de modifier l'opération de codage pour compliquer encore plus les attaques par canal latéral. Selon un développement préférentiel, on fait varier le ou les paramètres de codage en fonction du temps. On peut également envisager de les faire varier en fonction des données traitées ou à coder et/ou en fonction du temps.
Selon un développement préférentiel, la valeur prédéfinie est choisie la même pour toutes les valeurs de mesure, ce qui permet de déterminer simplement un code concerné. Selon un développement particulièrement préférentiel, la valeur prédéfinie est la valeur moyenne de toutes les valeurs possibles des valeurs de mesure. L'expression « toutes les valeurs possibles des valeurs de mesure » représente l'ensemble de toutes les valeurs de mesure résultant du traitement de tous les mots de données codées, prévus par le codage de l'invention. L'ensemble de toutes les valeurs de mesure pos- Bibles peut se déterminer par exemple dans un montage d'essai avec une implémentation pratique du dispositif de l'invention en ce que pour un certain codage on aura un traitement de données par le dispositif tel que chaque mot de données codées arriverait une fois à l'unité de traitement pour être traité. Le traitement d'un mot de données codées cor- respondant fournit une valeur de mesure déterminée caractérisant le mot de données codées ou le traitement du mot de données codées dans le dispositif. Les valeurs de mesure ainsi obtenues peuvent se déterminer selon une forme de réalisation et enfin on peut utiliser leur valeur moyenne comme valeur prédéfinie pour le codage de l'invention. Par exemple, le codage selon l'invention, c'est-à-dire l'association de mots de données à des mots de données non codées peut également se faire pas à pas. Cette association peut se faire par exemple par un procédé par itération pour affiner les mots de données codées ou les transformations effectuées par l'unité de codage selon l'invention dans le cadre du co- dage, pas à pas jusqu'à arriver à une différence d'une ou plusieurs des valeurs de mesure prédéterminées par rapport à une valeur prédéfinie du critère de seuil selon l'invention. On est ainsi assuré que les valeurs de mesure qui se déduisent de tels mots de données codées ne diffèrent que légèrement de la valeur prédéfinie pour compliquer considérable- ment ou rendre impossible une attaque par canal latéral par l'exploitation des valeurs mesure ou des valeurs qui en sont déduites. De façon particulièrement avantageuse, le principe de l'invention ne repose pas sur l'utilisation de nombres aléatoires ou de nombres pseudo-aléatoires et ne nécessite pas non plus de source d'entropie. Bien plus, le codage ou chiffrement selon l'invention, même utilisant au moins un paramètre de codage, correspond à une prescription déterministique pour transformer les données à traiter en mots de données codées. De façon préférentielle, pour chaque implémentation spécifique du dispositif on détermine un codage spécial et on l'utilise, les variantes correspondantes étant sélectionnées à l'aide du ou des pa- ramètres de codage. Pour une implémentation spécifique du dispositif, on peut également envisager plusieurs codages possibles et les changer pendant le fonctionnement du dispositif ce qui augmente d'autant la protection vis-à-vis des attaques par canal latéral.
Selon un autre développement avantageux, la valeur pré- définie n'est pas choisie identique pour toutes les valeurs de mesure. Cela signifie que le codage selon l'invention du mode de réalisation concernée offre ainsi des degrés de liberté pour différentes valeurs de mesure avec des valeurs prédéfinies différentes. Cela permet par exemple de tenir compte d'asymétries dans l'implémentation ou dans l'obtention des valeurs de mesure. On peut par exemple, en utilisant un premier groupe de mots de données codées, obtenir des valeurs de mesure ayant une teneur en informations plus grande vis-à-vis des données traitées que par le traitement d'un second groupe de mots de données codées.
Dans ce cas, pour les différents groupes de mots de données codées il est avantageux de prévoir des valeurs prédéfinies différentes pour diminuer les asymétries ou les compenser si possible dans le but que toutes les valeurs de mesure possibles, indépendamment des asymétries ont une teneur en information analogue, vis-à-vis des données traitées.
Selon un autre développement avantageux, pour au moins deux valeurs de mesure ou pour les mots de données codées associés à ces valeurs de mesure, on prévoit chaque fois un seuil différent. Cela permet de créer un autre degré de liberté pour le codage pour trouver plus facilement la transformation selon l'invention à la base du codage. Selon un autre développement avantageux, les valeurs de mesure sont des grandeurs scalaires ou vectorielles ou encore elles ont une forme de matricielle. Par exemple, les valeurs de mesure représentent une consommation d'énergie électrique du dispositif ou d'au moins un de ses composants. Dans ce cas, un attaquant du dispositif peut déterminer cette consommation d'énergie électrique comme valeur de mesure dans le sens de la présente invention pour effectuer une attaque par canal latéral. Dans ce cas pratique, le codage selon l'invention des mots de données codées qui seront finalement traités dans l'unité de traitement a l'avantage que les valeurs de mesure correspondantes de la consommation en énergie électrique du dispositif ou d'au moins un composant, ne diffèrent que légèrement l'une de l'autre ce qui complique d'autant une attaque par canal latéral. Un exemple de valeurs de mesure sous forme vectorielle est par exemple un scénario d'application selon lequel plusieurs valeurs de consommation d'énergie électrique de plusieurs composants différents ou de façon générale de parties du dispositif sont obtenues suivant le mot de données codées à traiter. Un tel ensemble de valeurs de mesure peut évidemment s'organiser également sous la forme matri- cielle. Un autre exemple dans lequel il est intéressant d'avoir une repré- sentation sous forme matricielle des valeurs de mesure est par exemple la détermination des champs électromagnétiques rayonnés par le dispositif. Dans ce cas on peut utiliser par exemple un ensemble de sondes de champ pour mesurer les champs électromagnétiques pendant le fonctionnement du dispositif et en étant placés du dispositif ; les va- leurs de mesure correspondantes fournies par les différentes sondes de champ peuvent être associées par exemple à des éléments de matrice d'une valeur de mesure sous forme matricielle dans le sens de la présente invention.
Suivant l'expression des valeurs de mesure dans le sens de la présente invention on peut également choisir les opérations de comparaison pour déterminer la différence des valeurs de mesure par rapport à une valeur prédéfinie. La même remarque s'applique également à des valeurs prédéfinies. Par exemple, pour des grandeurs sea- u) laires on peut former une simple différence puis former une valeur absolue pour évaluer la différence entre une valeur de mesure, par exemple une valeur de la consommation d'énergie électrique par le dispositif et une valeur prédéfinie. Dans le cas de grandeurs vectorielles ou en forme de matrice pour les valeurs de mesure, on peut définir 15 d'autres fonctions appropriées pour définir la différence concernée par rapport à une valeur prédéfinie (par exemple un vecteur prédéfini, une matrice prédéfinie ou des éléments analogues). De façon générale, l'expression "valeurs de mesure" dans le sens de la présente invention représente une forme de grandeur dé- 20 duite de valeurs de mesure physiques. Par exemple, une distance de Hamming ou un poids de Hamming déduits d'une ou plusieurs valeurs de mesure du dispositif seront également considérés comme une valeur ou grandeur de mesure dans le sens de la présente invention. Cela signifie que pour une réalisation appropriée de l'invention, le codage peut 25 également être réalisé pour que les valeurs de mesure qui ne corres- pondent pas à des grandeurs qui ne peuvent pas se saisir physiquement de manière directe mais bien plus les grandeurs qui en sont déduites contiennent le critère de seuil selon l'invention. Cela signifie que le codage peut également se faire selon l'invention en ce que par 30 exemple, les valeurs de mesures physiques qui représentent le mot de données codées ou son traitement, ne contiennent pas directement le critère de seuil selon l'invention mais ce sont les grandeurs qui en sont déduites, par exemple la distance de Hamming ou le poids de Hamming. Selon un autre développement, l'unité de codage effectue 35 le codage des mots de données codées pour qu'une fraction prédéfinie de tous les mots de données codées de préférence au moins environ 50% de tous les mots de données codées, possèdent une distance de Hamming prédéfinie et/ou un poids de Hamming prédéfini. Selon l'invention, la transformation des mots de données obtenus du côté de l'entrée défini par le codage proposé, les critères relatifs à la distance de Hamming ou au poids de Hamming, à savoir une faible fuite d'informations des données traitées dans l'unité de traitement selon l'invention et ils participent notamment au respect du critère de seuil par les valeurs de mesure.
Selon la présente invention, tous les mots de données co- dées, de préférence l'ensemble de tous les mots de données codées correspond de préférence à l'ensemble de tous les mots de données arrivant théoriquement. Si par exemple on a j mots de données obtenus côté d'entrée, on peut leur associer, par l'unité de codage, un nombre de mots de données codées. De préférence le codage selon un mode de réa- lisation consiste en ce que au moins 50% des j mots de données codées ont entre eux une distance de Hamming prédéfinie. En variante ou en complément, le codage peut également consister à ce qu'au moins environ 50% des j mots de données codées ont un poids de Hamming prédé- fini. Selon un développement avantageux, l'unité de traitement comporte au moins un registre qui, au moins de temps en temps, mémorise au moins un mot de données codées. Cela signifie qu'il s'agit d'une forme de réalisation simple de l'invention et d'un dispositif ayant une interface d'entrée et une unité de codage selon l'invention, le trai- tement selon l'invention se faisant par exemple par un enregistrement en mémoire, périodique dans le registre. Dans ce mode de réalisation un mot de données, codé selon l'invention (ou encore plusieurs mots de données codées) est enregistré au moins périodiquement dans un re- gistre ou dans une autre mémoire et cela sous forme codée pour per- mettre ensuite la lecture des mots de données codées ou leur traitement. Par exemple, un procédé cryptographique en aval peut lire le registre correspondant et traiter les données. En variante, ou en complément, l'unité de traitement selon l'invention comporte au moins une unité de chiffrement pour effectuer au moins une partie du procédé de chiffrement. Par exemple, l'unité de traitement comporte une unité de chiffrement pour effectuer l'algorithme complet AES (Advanced encryption standard). Selon un autre développement, l'unité de traitement comporte une unité de chiffrement pour effectuer une partie d'un pro- cédé de chiffrement (ou l'ensemble du procédé de chiffrement) par exemple pour effectuer une opération de substitution non linéaire telle que celle qui fait l'objet de la fonction sous-octet () du standard de chiffrement AES (voir httb:JJcsrc.nist.gov/publications/fips/fips197Jfips- 197.pdf, chapitre 5.1.1). Selon un autre développement, l'unité de traitement à un bus de données ou est réalisée sous la forme d'un bus de données et notamment un bus de données parallèles. Dans ce cas, le codage selon l'invention protège la transmission des données par le bus de données vis-à-vis des attaques par canal latéral. Selon un autre développement, l'unité de codage effectue le codage des mots de données codées en ajoutant à chaque mot de données codées un nombre prédéfini de bits. La valeur des bits correspondant, ajoutée est choisie selon le codage de l'invention. En d'autres termes, l'adjonction selon l'invention d'un nombre prédéfini de bits (et la sélection de chaque valeur respective) crée un nombre de degrés de liberté pour le codage selon l'invention qui permet un poids de Hamming souhaité et/ou une distance de Hamming souhaitée pour un ou plusieurs mots de données, codées. L'information proprement dite des mots de données non codées n'est pas perdue car selon l'invention on ne fait qu'ajouter de nouveaux bits. Le cas échéant, en variante ou en plus, on peut ajouter plusieurs bits pour remplir ainsi le critère de seuil de l'invention par les valeurs de mesure vis-à-vis de la valeur prédéfinie. Selon un mode de réalisation, l'adjonction d'un nombre prédéfini de bits et/ou de leur valeur se fait en fonction d'au moins un paramètre de co- dage proposé par le procédé. Selon un autre développement avantageux, le codage sé- lectionne le nombre prédéfini de bits à ajouter ou leur valeur de façon que la fraction prédéfinie de tous les mots de données codées entre eux présente la distance de Hamming prédéfinie et/ou le poids de Hamming prédéfini. La distance de Hamming ou le poids de Hamming est le nombre de positions différentes de deux mots de code comparés. Dans le cas d'un code binaire et de deux mots de codes correspondants, la distance de Hamming ou l'écart de Hamming correspond à un nombre de positions de bits différents des mots de codes comparés. Le poids de Hamming est la distance de Hamming par rapport au vecteur 0. Dans le cas d'un code binaire, le poids de Hamming correspond ainsi au nombre différent de zéro de positions du mot de code concerné ce qui correspond au nombre de bits de niveau 1. Selon différents modes de réalisation avantageux, le dis- positif est au moins en partie sous la forme d'un circuit intégré IC de préférence implémenté avec des semi-conducteurs (métal oxyde com- as plémentaire). Les fonctions selon l'invention peuvent également être im- plémentées dans un circuit ASIC ou un circuit FPGA. L'invention a également pour objet un procédé de gestion d'un dispositif de traitement de données, le dispositif ayant une interface d'entrée pour recevoir des données d'entrée et une unité de traite- 20 ment pour traiter les données, ce procédé étant caractérisé en ce qu'à l'aide d'une unité de codage on code les mots de données codées reçus sous la forme de données d'entrée à l'interface d'entrée, pour obtenir des mots de données codées, l'unité de codage assurant le codage des mots de données codées pour qu'une action prédéfinie de valeurs de 25 mesure qui caractérisent les mots de données codées et/ou leur traite- ment par le dispositif et qui se détermine en fonction d'au moins une grandeur physique du dispositif, de préférence au moins environ 50% de toutes les valeurs de mesure diffèrent d'une valeur prédéfinie d'une différence inférieure ou égale à un seuil prédéfini, l'unité de codage ap- 30 pliquant une prescription de codage pour coder les mots de données codées en fonction d'au moins un paramètre de codage, l'unité de codage traitant les mots de données codées. Dessins La présente invention sera décrite ci-après de manière 35 plus détaillée à l'aide d'un exemple de dispositif de traitement de don- nées et d'un procédé de gestion d'un tel dispositif de traitement de données représenté schématiquement dans les dessins annexés dans lesquels : la figure 1 montre très schématiquement un mode de réalisation d'un dispositif de l'invention, les figures 2a, 2b sont des schémas d'un mode de réalisation d'un dispositif selon l'invention, les figures 3a, 3b montrent schématiquement un mode de réalisation d'une unité de traitement selon l'invention, les figures 4a, 4b montrent schématiquement un appareil com- portant un dispositif selon l'invention, la figure 5 est un exemple schématique d'un mode de réalisation d'un codage selon l'invention, la figure 6 dans ses parties 6a et 6b donne un exemple d'un mode de réalisation d'un codage selon l'invention, la figure 7 est un schéma d'un autre dispositif correspondant à un mode de réalisation de l'invention, la figure 8 est un ordinogramme très simplifié d'un mode de réalisation du procédé de l'invention.
Description de modes de réalisation de l'invention La figure 1 montre schématiquement un mode de réalisation d'un dispositif de traitement de données 100 selon l'invention. Le dispositif 100 est par exemple un circuit intégré (IC) en technique CMOS.
Le traitement des données d'un dispositif 100 donne des des valeurs de mesure Xln représentant des mots de données codées Xn' qui sont en cours de traitement dans un ou plusieurs dispositifs 100. Ces valeurs de mesure peuvent s'obtenir par des procédés connus servant à déterminer des grandeurs physiques. A titre d'exemple, on peut obtenir la consommation de l'énergie électrique du dispositif 100 ou de différents composants comme valeurs de mesure Xln. Dans ce cas, le traitement de chaque mot de données codées Xn' dans le dispositif 100 donne une valeur de mesure d'énergie électrique Xln correspondante. En variante, pour la consommation d'énergie électrique sous une tension de fonctionnement connue du dispositif 100, on peut par exemple utiliser comme valeur de mesure, l'intensité du courant absorbé ou une mesure analogue. Le courant absorbé peut par exemple se déduire de la chute de tension détectée par une mesure aux bornes d'une résistance shunt (résistance faiblement ohmique non représen- tée). Cette résistance est branchée en série sur la ligne d'alimentation électrique non représentée du dispositif 100. En variante, à la place des valeurs de mesure d'énergie électrique ou des mesures d'intensité ou de paramètres analogues, on peut également obtenir des valeurs de mesure, par exemple en saisissant les champs électriques du dispositif lo 100, des champs magnétiques du dispositif 100 ou des champs élec- tromagnétiques du dispositif 100 ou encore une combinaison de tels champs. Pour une résolution spatiale appropriée du procédé de mesure utilisé on peut également n'utiliser qu'un composant du dispositif 100 de mesure. Par exemple, pour un dispositif 100 réalisé comme circuit 15 intégré il peut être intéressant d'obtenir des valeurs de mesure ciblées Xln provenant de tel composant ou de telle partie du dispositif 100 qui, comportent des composants tels que par exemple le coeur AES ou un élément analogue exécutant un procédé de cryptographie ou analogue et qui peuvent être l'objet d'une attaque par canal auxiliaire. 20 Selon un développement avantageux, les valeurs de me- sure sont des valeurs scalaires (par exemple la mesure d'une intensité de courant) ou des valeurs vectorielles (par exemple plusieurs valeurs de mesure d'intensités pour différents composants du circuit) ou encore des valeurs se présentant sous une forme matricielle. 25 Les valeurs de mesure dans le sens de l'invention, à côté des valeurs déterminées par la saisie physique sont également des valeurs X2n qui se déduisent de valeurs Xln obtenues de manière physique, par exemple par des procédés de calcul. Par exemple, un attaquant d'une unité de traitement ou de mesure 1000 peut saisir une 30 ou plusieurs grandeurs physiques Xln du dispositif 100 et former des valeurs X2n déduites. Ces valeurs X2n déduites sont appelées valeurs de mesure dans le sens de la présente invention. Ces valeurs déduites X2n peuvent être par exemple une distance Hamming ou une pondération Hamming ou autre. Cela peut être le cas par exemple, si le disposi- 35 tif 1000 détecte les rayonnements électromagnétiques de différentes lignes d'un bus parallèle. Dans ce cas on obtient par exemple une valeur de mesure pour chaque ligne de bus et par exemple pour huit lignes de bus, on aura en tout huit valeurs de mesure Xln à partir desquelles le dispositif 100 formera une distance Hamming par rapport aux autres valeurs de mesure X2n obtenues de cette manière ou encore une pondération Hamming. Selon l'invention, le dispositif 100 comporte une unité de codage 130 (voir figure 2a) qui assure le codage des mots de données Xn obtenus à une interface d'entrée 110 comme grandeurs d'entrée X pour obtenir des mots de données codées Xn' et en ce qu'une unité de trai- tement 120 du dispositif 100 traite les mots de données codées Xn'. De cette manière, les valeurs de mesures Xln, X2n (Figure 1) telles qu'elles sont par exemple obtenues au cours d'attaques de canal auxiliaire dépendent des mots de données codées Xn' ou du traitement des mots de données codées Xn' dans le dispositif 100 et non directement des mots de données codées Xn, fournis à l'unité de codage 130 selon l'invention. Ainsi, un choix approprié du codage, rend avantageusement les valeurs de mesure Xln, X2n moins significatives pour les données codées Xn' traitées actuellement par le dispositif 100 ce qui complique, voire rend impossible, une attaque de canal auxiliaire. Suivant une autre caractéristique de l'invention, l'unité de codage 130 effectue une prescription de codage des mots de données codées Xn en fonction d'au moins un paramètre de codage t i. En particulier, selon un mode de réalisation, une unité de commande poly- morphe 132 prédéfinit au moins un paramètre de codage t_i pour le codage d'au moins un mot de données codées Xn, de préférence, toutefois, pour le codage de plusieurs ou de tous les mots de données codées Xn. En d'autres termes, le paramètre de codage t_i selon l'invention augmente d'au moins un autre degré de liberté, la représentation des mots de données Xn sur les mots de données codées codées Xn', c'est-à- dire pour un certain codage, on augmente la sécurité du dispositif 100 et des données traitées dans celui-ci. Dans un mode de réalisation, l'unité de commande polymorphe 132 qui forme au moins un paramètre de codage t_i et/ ou le fournit, est intégrée dans le dispositif 100 (voir figure 2a). Dans un mode de réalisation, l'unité de commande poly- morphe 132 utilise des fonctions linéaires. Selon un autre mode de réalisation, l'unité de commande polymorphe 132 est implémentée en utilisant des fonctions non linéaires. On peut également envisager des combinaisons pour d'autres modes de réalisation.
En particulier, dans un mode de réalisation, l'unité de codage 130 assure le codage de mots de données codées Xn pour qu'une partie prédéfinie de toutes les valeurs de mesure Xln, X2n, de préférence au moins environ 50% de toutes les valeurs de mesure Xln, X2n présente une différence par rapport à une valeur prédéfinie Vn (fi- gure 2b) inférieure ou égale à un seuil prédéfini S. Les analyses, faites dans le cadre de l'invention ont montré que pour un tel codage et pour le traitement des mots de données codées Xn' dans l'unité de traitement 120, les grandeurs techniques que l'on peut saisir (valeurs de mesure Xln) ou les grandeurs X2n qui en sont déduites, sont moins significa- tives quant à leur teneur d'informations, concernant les mots de don- nées non codés Xn de sorte que le codage selon l'invention assure une protection efficace vis-à-vis des attaques de canal auxiliaire. L'utilisation d'au moins un paramètre de codage t_i pour le codage augmente la sécurité encore plus, de façon avantageuse.
Le codage selon l'invention est appelé pour cette raison également « code polymorphe résilient aux fuites » (code PLRS car on évite ou réduit les « fuites » dans le sens cryptographique en utilisant le principe de codage polymorphe avec au moins un paramètre de codage t i.
Contrairement à des procédés qui utilisent les nombres aléatoires ou les nombres pseudo-aléatoires pour compliquer les attaques de canal auxiliaire et qui sont compliqués pour cette raison, le principe selon l'invention utilise uniquement un procédé détermistique à savoir le codage par l'unité de codage 130 avec au moins un para- mètre de codage t_i et le traitement des données codées. Selon un mode de réalisation, on fournit les données d'entrée X (figure 2a) par exemple des mots de données codées numériques qui se suivent dans le temps; il s'agit par exemple de mots de données codées Xn ayant une largeur de données par exemple de quatre bits. D'autres largeurs de données sont également possibles. De façon correspondante, l'interface d'entrée 110 transmet en sortie les données d'entrée X sous la forme de mots de données codées Xn. Les mots de données codées Xn' sont, comme cela appa- raît à la figure 2a, émis à la sortie de l'unité de codage 130 pour être fournis à l'unité de traitement 120. De façon correspondante, l'unité de traitement 120 fournit à sa sortie des mots de données codées, traités Yn'. La figure 2b montre une unité de codage 130 selon un mode de réalisation de l'invention. L'unité de codage 130 présente avan- tageusement une valeur prédéfinie V et un seuil prédéfini S pour l'évaluation des valeurs de mesure Xln, X2n pour permettre de vérifier si un codage actuel remplit déjà le critère de seuil actuel concernant la différence entre au moins une valeur de mesure Xln, X2n et la valeur prédéfinie y. L'unité de commande polymorphe 132 peut, en variante, être prévue également selon la figure 2b, par exemple dans l'unité de codage 130, ce qui n'est pas représenté pour ne pas compliquer le dessin. Selon un mode de réalisation particulièrement préféren- tiel, la valeur de consigne V est une valeur moyenne (sur plusieurs va- leurs possibles des mesures Xln ou X2n. Dans ce sens, l'expression « toutes les valeurs possibles des valeurs de mesure » désigne l'ensemble de toutes les valeurs de mesure ou Xln, X2n, comme cela résulte du traitement de tous les mots de données codées Xn' par le codage selon l'invention. L'ensemble de toutes les valeurs de mesure pos- Bibles peut par exemple se déterminer dans une nouvelle réalisation d'essai d'une implémentation pratique du dispositif 100 selon l'invention en ce que pour un codage donné on effectue un traitement des données par le dispositif 100 ou l'unité 120 en fournissant chaque mot de données codées Xn' une fois à l'unité de traitement 120. Le trai- terrent d'un mot de données codées Xn', codé, donne, de manière cor- respondante, une valeur de mesure Xln-X2n qui caractérise le mot de données codées Xn' ou caractérise le traitement du mot de données codées dans le dispositif. Les valeurs de mesure ainsi obtenues peuvent se déterminer selon un mode de réalisation et finalement on peut utiliser leur valeur moyenne comme valeur prédéfinie pour le codage selon l'invention. A titre d'exemple, le codage selon l'invention c'est-à-dire l'association entre des mots de données codées et les mots de données non codés, peut se faire pas à pas. Cette association peut par exemple se faire par un procédé par itération pour affiner les mots de données codées ou la transformation effectuée par l'unité de codage selon l'invention dans le cadre du codage jusqu'à arriver à une différence entre une ou plusieurs valeurs de mesure déterminée et la valeur prédéfinie du critère de seuil selon l'invention. Cela garantit alors que les valeurs de mesure Xln ou X2n déduites de mots de données codées Xn' ne diffèreront que légèrement de la valeur prédéfinie ce qui complique considérablement, voire rend impossible, une attaque de canal auxiliaire s'appuyant sur l'exploitation des valeurs de mesure Xln, X2n. D'une manière particulièrement avantageuse, le principe selon l'invention ne repose pas sur l'utilisation de nombres aléatoires ou de nombres pseudos-aléatoires. Bien plus, le codage selon l'invention établit une prescription déterministique pour transformer les données à traiter en des mots de données codées. De façon préférentielle pour chaque implémentation spé- cifique du dispositif 100 on détermine et on utilise un codage spécial.
On peut également envisager pour une implémentation spécifique du dispositif, de déterminer plusieurs codages possibles et de les changer pendant le fonctionnement du dispositif ce qui augmente d'autant la sécurité vis-à-vis des attaques de canal auxiliaire. Selon un autre développement avantageux, la valeur pré- définie V (figure 2b) n'est pas choisie la même pour toutes les valeurs de mesure Xln, X2n. Cela signifie que le codage selon l'invention du mode de réalisation offre ainsi des degrés de liberté pour prévoir des valeurs de mesure différentes pour plusieurs valeurs prédéfinies différentes. Cela permet par exemple de tenir compte avantageusement d'asymétries pour l'implémentation ou l'obtention de valeurs de mesure. On peut par exemple envisager que pour le traitement d'un premier groupe de mots de données codées codés, on obtient des valeurs de mesure qui ont un contenu d'informations plus grand concernant les données traitées que pour le traitement d'un second groupe de mots de données codées.
Dans ce cas, il est avantageux de prévoir des valeurs prédéfinies diffé- rentes pour les différents groupes de mots de données codées, pour diminuer de ces asymétries ou les compenser si possible dans le but que toutes les valeurs de mesure possibles, indépendamment des asymétries, présentent une teneur d'informations analogue concernant les données traitées. Selon un autre mode de réalisation avantageux, pour au moins deux valeurs de mesure ou pour les mots de données codées associés à ces valeurs de mesure, il est prévu chaque fois un seuil S différent. Cela permet de créer un autre degré de liberté pour le codage permettant de trouver plus facilement la transformation selon l'invention qui est à la base du codage. Selon un autre développement avantageux, les valeurs de mesure X ln, X2n sont des grandeurs scalaires ou des grandeurs vectorielles ou encore elles se présentent sous une forme matricielle. Les va- leurs de mesure peuvent par exemple représenter une consommation d'énergie électrique du dispositif ou d'au moins un composant du dispositif. Dans ce cas, un attaquant du dispositif pourra déterminer la consommation d'énergie électrique comme valeur de mesure dans le sens de la présente invention, pour effectuer une attaque de canal auxi- liaire. Dans cette application pratique, le codage selon l'invention des mots de données codées, traités finalement dans l'unité de traitement fait que les valeurs de mesure correspondantes de la consommation d'énergie électrique du dispositif ou d'au moins un composant ne diffèrent que légèrement les unes des autres, ce qui complique de nouveau et d'autant, une attaque de canal auxiliaire. Un exemple de valeurs de mesure sous une présentation vectorielle est par exemple celui d'un scénario d'application selon lequel on détermine plusieurs valeurs de consommation d'énergie électrique de différents composants ou, de façon générale, de parties du dispositif 100 par mots de données codées, traités. Un tel ensemble de valeurs de mesure peut également s'organiser sous une forme matricielle. Un autre exemple dans lequel il est intéressant de repré- senter des valeurs de mesure, sous une forme matricielle, est par exemple celui de la détermination de champs électromagnétiques émis par un dispositif. Dans ce cas, on peut utiliser, par exemple un en- semble de sondes de champ pour la mesure de champs électromagnétiques en les installant pendant le fonctionnement du dispositif au-dessus de celui-ci et en recueillant des valeurs de mesure correspondantes pour les différentes sondes de champ, par exemple les différents éléments d'une forme matricielle de la valeur de mesure dans le sens de la présente invention. Suivant l'extension des valeurs de mesure dans le sens de l'invention, on peut également choisir l'opération de comparaison pour déterminer la différence entre la valeur de mesure et la valeur pré- définie. La même remarque s'applique également à valeur prédéfinie. On peut par exemple utiliser comme grandeur scalaire une simple différence avec la limitation consécutive pour exploiter la différence entre une valeur de mesure, par exemple une valeur de la consommation d'énergie électrique par le dispositif et une valeur prédéfinie correspon- dante. Dans le cas de grandeurs vectorielles ou matricielles pour la me- sure, on peut de façon correspondante définir d'autres fonctions appropriées pour définir la différence concernée par rapport à une valeur prédéfinie (par exemple un vecteur de prédéfinition, une matrice de prédéfinition ou des moyens analogues).
Selon un autre développement préférentiel, l'unité de co- dage 130 assure le codage des mots de données Xn en ce que tous les mots de données codées Xn' présentent une distance Hamming prédéfinie, les uns par rapport aux autres. En variante ou en complément, le codage est fait pour que tous les mots de données codées Xn' présen- tent un poids de Hamming prédéfini. Dans cette variante également on peut augmenter la sécurité en utilisant au moins un paramètre de codage t i (Figure 2a) pour réaliser un codage PLRC. Selon un mode de réalisation préférentiel, l'unité de trai- tement 120 est par exemple est un registre. La figure 3a montre un autre mode de réalisation d'une variante 120a de l'unité de traitement 120 de la figure 2a. L'unité de traitement 120a comporte deux registres R1, R2 qui servent au moins au stockage provisoire de mots de données codées Xn' qui sont fournis en entrée, tels qu'ils sont obtenus de l'unité de codage 130. L'unité de traitement 120a fournit les mots de données codées, stockés dans les registres R1, R2 à un instant donné pour la suite du traitement par une sortie sous la forme de données Yn' codées, " traitées ". Dans le présent exemple de réalisation, on a la particularité que du fait de la réalisation de l'unité de traitement 120a comme seule mémoire, les mots de données codées Yn' en sortie de l'unité 120a ne correspondent pas aux mots d'entrée Xn'. La figure 3b montre un autre mode de réalisation 120b d'une unité de traitement selon l'invention. Cette unité de traitement 120b comporte une unité cryptographique 124 qui est par exemple une unité pour appliquer une partie d'un algorithme d'un procédé de cryp- tage. L'unité cryptographique 124 est réalisée pour effectuer une opéra- tion de substitution non linéaire sur les données d'entrée Xn' qui lui sont fournies pour obtenir des données de sortie Yn'. Une telle opération de substitution non linéaire est, par exemple, prévue dans la fonction SubBytes ( ) de la norme de cryptage avancé AES (fonction de sous octets). De façon correspondante, une variante de l'invention selon la figure 3b peut s'appliquer pour exécuter les parties concernées de l'algorithme AES. Selon un autre mode de réalisation, l'unité de traitement 120 est un bus de données (données séries ou parallèles) ou de manière générale, un composant de circuit qui reçoit les mots de données codées Xn'. Selon un autre mode de réalisation, les composants 120 et 130 peuvent également être combinés fonctionnellement. La figure 4a montre un autre domaine d'application de l'invention. La figure montre une carte à puce 2000 munie d'un disposi- tif 100 selon l'invention. Le dispositif 100 est en liaison de transmission de données avec une interface 2002 par laquelle la carte à puce 2000 ou son dispositif 100 peuvent échanger des données de façon connue avec des appareils externes tel que par exemple un lecteur de carte à puce (non représenté) ou un moyen analogue.
Le dispositif 100 selon la figure 4a présente avantageu- sement au moins la structure de la figure 2a, mais on peut également envisager plusieurs unités de coordination 130 ou plusieurs unités de traitements identiques ou différentes 120, 120a, 120b dans un même dispositif 100. Cela permet de bénéficier des avantages selon l'invention, des étapes d'un procédé de traitement de données implémentées dans le dispositif 100. La figure 4b correspond à une autre application de l'invention, montrant un support de données de mémoire 3000 (repré- senté sous la forme d'un bus USB) qui a un dispositif selon l'invention 100 ainsi que des branchements USB 3002. La figure 5 montre un exemple d'un codage selon l'invention à l'aide de quatre bits (ce qui correspond à un demi-octet) comprenant le mot de données codées Xn. Un premier bit de mots de données codées Xn porte la référence X1 à la figure 5 ; le second bit porte la référence X2 et le troisième bit porte la référence X3 ; le quatrième bit porte la référence X4. Pour la représentation du mot de données codées Xn, on utilisera avantageusement la notation suivante (xl, x2, x3, x4) ce qui correspond à la succession des différentes bits (xl, x2, x3, x4) du mot de données codées Xn. Le codage avec l'unité de codage 130 (figure 2a) transforme le mot de données Xn de la figure 5 en un mot de données codées Xn' (voir la flèche a de la figure 5). Comme le montre la figure 5, le mot de données codées Xn' comporte toujours les quatre bits xl, x2, x3, x4 du mot de données codées d'origine Xn ainsi que trois autres bits x5, x6, x7. Ici le codage a s'obtient également en accrochant une suite de bits Rn d'une longueur de trois bits. Les valeurs des différents bits x5, x6, x7 de la suite de bits Rn accrochées selon le codage de l'invention peuvent être avanta- geusement choisies, par exemple pour obtenir une distance de Ham- ming souhaitée entre le mot de données codées Xn' par rapport aux autres mots de données codées ou encore une pondération Hamming, souhaitée pour le mot de données codées Xn'. Dans cette variante, on augmente la sécurité grâce à l'utilisation d'au moins un paramètre de codage t_i (figure 2a) pour le code PLRC. A titre d'exemple, la valeur prédéfinie chaque fois par l'unité de commande polymorphe 132 (Figure 2a) avec au moins un paramètre de codage t_i permet de commander la sélection d'une variante d'algorithme de codage possible de l'unité de codage 130 pour coder des mots de données codées différents Xn,i avec des variantes de codage chaque fois différentes.
La figure 6a montre à titre d'exemple un tableau de codage à quatre colonnes S1, S2, S3, S4, utilisable, par exemple, dans l'unité de codage 130 (figure 2a) selon un mode de réalisation. La colonne S1 contient les mots de données codées d'entrée Xn sous une re- présentation binaire avec des valeurs comprises entre 0000 (zéro décimal) jusqu'à 1111 (c'est-à-dire la valeur décimale 15). Des colonnes S2, S3, S4 forment en combinaison chaque fois un mot de données codées Xn'. La seconde colonne S2 contient des mots de données codées utiles (service payant) à quatre bits. La colonne S3 du tableau de la fi- gure 6a contient un bit d'inversion d'une première prescription de co- dage utilisée à titre d'exemple et la colonne S4 contient deux bits de compensation de la première règle de codage utilisée. A titre d'exemple, au mot de données d'entrée Xn = 0001 le tableau de la figure 6a attribue le mot de données codées Xn'= 0001010. Et ainsi de suite.
La figure 6b montre à titre d'exemple un autre tableau de codage à quatre colonnes 51', S2', S3', S4' comme on peut les utiliser par exemple dans l'unité de codage 130 (figure 2a) selon un mode de réalisation. La colonne 51' contient les mots de données codées d'entrée Xn en représentation binaire avec des valeurs comprises entre la valeur décimale nulle 0000 jusqu'à la valeur décimale 15 (1111) et cette co- lonne est identique à la colonne 51 du tableau de la figure 6a. Les colonnes S2', S3', S4' du tableau selon la figure 6b constituent ainsi en combinaison chaque fois un mot de données codées Xn'. La seconde colonne S2' contient les mots de données codées utiles à quatre bits (service payant). La colonne S3' du tableau présenté à la figure 6b con- tient deux bits de compensation, la seconde règle de codage prédéfinie et la colonne S4' contient un bit d'inversion, par exemple de la seconde prescription de codage. Comme le montre la comparaison des tableaux des fi- gures 6a, 6b, les colonnes S3, S4 correspondent aux colonnes S4', S3' avec les prescriptions de codage différentes à réaliser dans ces colonnes. Par exemple, le paramètre de codage t i selon l'invention peut être utilisé comme valeur pour commander l'unité de codage 130 ou le tableau de codage de la figure 6a ou de la figure 6b pour un mot de données codées d'entrée Xn à coder. Dans ce cas, il suffit d'un unique bit pour le paramètre de codage t i. Le changement souple entre de préférence deux variantes de codage ou tableau de codage rendu possible par le paramètre de codage selon l'invention t i, augmente con- sidérablement la protection du dispositif 100 (figure 2a) par rapport aux attaques DPA (attaque de canal auxiliaire). L'exemple décrit ci-dessus en référence aux figures 6a, 6b sert à expliquer simplement le mode polymorphe résiliant aux fuites selon l'invention (code PLRC). Plus de deux variantes de codage différentes peuvent être commandées par le paramètre de codage t_i selon l'invention. On peut également utiliser des prescriptions de codage plus complexes que celles décrites à titre d'exemple ci-dessus. Par exemple, des codes, permettant le traitement scalaire et/ou la densité de code variable ou taux de codage, la reconnaissance d'erreurs, la correction d'erreurs ou autres. Les mots de données codées Xn' selon la figure 6a peu- vent s'obtenir à partir des seize mots de données codées Xn, par exemple avec l'équation suivante ou la règle de formation : c = {(7c,1,142(x,1),142(x,1,1)) x,0, 142(x,0 ),142(x,0,1)) Si HW (x) < 2 Sinon 0 Equation 1 Dans cette formule, c correspond un mode code à sept bits ; x correspond à un mode code à quatre bits (x0, x 1, x2, x3) : correspond à un complément ; " " correspond à une concaténation par bits ; HW (.) représente le code de Hamming d'un mode de données et pour la fonction W suivante : 1, Si HW (x) < 2 Sinon 0 Equation 2 Pour le mot de données codées Xn = x = 1111, on utilise par exemple la ligne supérieure de l'équation 1 car le poids de Hamming du mot de données codées concerné 1111 est supérieur à 2, de sorte que l'on obtient le mode code à 7 bits c = 0000110 et ainsi de suite. Les mots de données codées codés Xn' selon la figure 6b peuvent s'obtenir à partir des seizièmes mots de données codées Xn, par exemple avec les équations ou règles de formations suivantes : c = {x,w(x,1,1),w(x,1),1),siliff (x))2} x, w(x,0,1), w(x, 0), 0) Equation 3 Dans ces formules c est un mot de code à 7 bits ; x correspond à un mode code à 4 bits (x0, x 1, x2, x3) correspondant à un complément de type bit ; "correspond à une concaténation par bits (mise en série) ; HW (.) indique le poids du code Hamming d'un mot de données codées et pour la fonction W on applique l'équation 2 ci- dessus. Les équations 1, 3 représentent ainsi différentes variantes d'un paramètre de codage t_i selon l'invention avec le codage utilisé par l'unité de codage 130 ; cela signifie qu'en fonction de la valeur du paramètre de codage t i, l'unité de codage 130 applique soit les équations 1 et 2, soit les équations 3 et 2 pour le codage d'un mot de données co- dées Xn concerné (4). Selon un autre développement, on peut utiliser ci-après l'algorithme donné dans le pseudo-code pour détecter le codage selon la figure 6a. if invert bit == 1 decoded output invert bitwise(codeword[0:3]) else decoded output codeword [0:3] end if Ainsi, dans la ligne 1 du pseudocode on vérifie tout d'abord si le bit d'inversion du mot de données, que l'on cherche à coder est mis à l'état et dans l'affirmative on obtient comme mot de données décodé, les quatre premiers bits sont inversés par bit. Si le bit d'inversion n'est pas utilisé, on obtient les mots de données décodés di- rectement du mot de données codées pour les quatre premiers bits du mot de données codées.
Les variantes de codage selon l'invention explicitées à l'aide des tableaux des figures 6a, 6b ont l'avantage de l'effet que tous les mots de données codées ont un poids de Hamming constant (dans le présent exemple ce poids est égal à 2) de sorte que les attaques sur le dispositif 100 sont de plus en plus compliquées à cause de DPA ; dans le cadre du traitement des mots de données codées Xn' selon l'invention (figure 2a) dans l'unité de traitement 120, pour chaque mot de code on a le même nombre de variations d'état des différentes bits du mot de données codées ; ces variations ne sont pas attribuées directement à des mots de code qui sont traités précisément par l'unité 120. De plus, le procédé selon l'invention peut utiliser des paramètres de coordination t_i entre les variantes des figures 6a, 6b, par exemple chaque énième mot de données codées (valeur de n par exemple 1, 2, 3 ou supérieur à ces valeurs ou encore des valeurs non constantes).
Pour réaliser une implémentation à 8 bits fondée sur le principe de l'invention, on peut appliquer les étapes décrites ci-dessus ainsi que le codage des tableaux des figures 6a, 6b à chaque fois deux demis octets (encore appelé "nibble") qui correspondent à un mot de données codées à huit bits. Cela permet, par exemple de réaliser une implémentation à huit bits de la fonction sous-octet SubBytes () de AES. La solution selon l'invention peut également se réaliser très bien en mode scalaire de façon que par exemple pour une implémentation à 32 bits, on décompose tout d'abord le mot de données codées à 32 bits en huit demi-octets de préférence dans un cycle de temps, c'est-à-dire en parallèle, pour obtenir ensuite huit demi-octets que l'on code selon l'invention. La figure 7 montre un autre mode de réalisation de l'invention selon lequel on a un dispositif 100a pour le traitement des données. Côté entrée, le dispositif 100a reçoit les données d'entrée X qui sont par exemple transmises sous la forme de mots de données co- dées d'entrée Xn à quatre bits qui arrivent par l'interface d'entrée 110 à l'unité de codage 130 suivante. L'unité de codage 130 effectue le codage selon l'invention (en utilisant le paramètre de codage selon l'invention t_i (voir également figure 2a) pour obtenir ainsi des données d'entrée codées Xn'. Les mots de données codées Xn' sont traités dans l'unité de traitement 120 suivante et en sortie de l'unité de traitement 120 on obtient les mots de données codées, traités Yn'. Ensuite, l'unité 140 qui constitue une unité de décodage assure le décodage des mots de données codées Yn' ce qui se traduit finalement par des mots de données codées traités, décodés Y. Ces mots sont fournis par l'interface de sortie 150 à d'autres unités externes au dispositif 100. Selon un autre développement, les composants 120 et 140 peuvent également être combinés fonctionnellement comme présenté à la figure 7.
De façon générale, le principe de l'invention n'est pas li- mité à un codage selon lequel les mots de données codés ont comme décrit ci-dessus, une distance Hamming prédéfinie et/ou un poids Hamming prédéfini. Bien plus, l'invention permet d'autres formes de réalisation selon lesquelles l'unité de codage 130 (figure 1, figure 6) est réalisée en variante de façon à transformer les mots de données d'entrée Xn en utilisant un code « anti-fuite » « leakage-preserving », notamment un code PLRC avec lequel on transforme les mots de données codées codés Xn'. Cela est par exemple obtenu par le respect du critère de seuil de l'invention pour la différence entre les valeurs de mesure Xn 1, Xn2 et la valeur prédéfinie V. De façon tout à fait générale, l'utilisation du code antifuite a l'avantage que les mots de données codées ainsi codées permettent de déterminer une fuite d'information par exemple par des grandeurs observables ou mesurables physiquement Xn 1, Xn2 (mesure de champs électromagnétiques, mesures de consommation d'énergie élec- trique par le dispositif 100 ou l'unité 120) qui permettent de minimiser les données traitées dans l'unité 120. L'utilisation de PLRC selon l'invention a l'autre avantage que l'image des mots de données codées, obtenus par le codage peut se trouver d'une manière encore plus com- plexe sur les mots de données codées et être ainsi beaucoup plus diffi- cile pour les attaquants. La figure 8 montre très schématiquement un ordino- gramme d'un mode de réalisation du procédé de l'invention. Dans l'étape 200 on effectue le codage d'un ou plusieurs mots de données d'entrée Xn à l'aide de l'unité de codage 130 en utilisant le paramètre de codage t i selon l'invention (figure 2a). Dans l'étape 210 on traite les mots de données codées Xn' obtenus dans l'étape 200 à l'aide de l'unité de traitement 120. Ensuite dans l'étape 220 on effectue le décodage des mots de données, codées, traités Yn'.
Le principe selon l'invention consistant à prévoir des mots de données codées Xn' qui sont soumis à un autre traitement, à la place du traitement des données d'entrée, non codées Xn, a l'avantage de ne pas nécessiter de procédé fondé sur les modes aléatoires ou des procédés pseudo aléatoires pour le durcissement des SPA (renforcement du dispositif 100 contre les attaques DPA) ; cela réduit les moyens à mettre en oeuvre vis-à-vis des procédés connus. De plus, le dispositif 100 selon l'invention peut se réaliser en utilisant des cellules CMOS usuelles ; le dispositif 100 est prévu sous la forme d'un circuit monolithique intégré ou encore sous la forme de composants de circuit inté- grés dans d'autres circuits. Un autre avantage de l'invention est que l'on peut tester relativement simplement le bon fonctionnement du dispositif 100 car l'invention n'est pas fondée sur l'utilisation de nombres aléatoires ou de nombres pseudos-aléatoires. De plus, on peut implémenter le dispositif 100 sur une surface de puce relativement petite. Comme les moyens de l'invention qui assurent le renforcement vis-à-vis des attaques DPA peuvent se faire au niveau de l'architecture, cela permet très simplement de réemployer les conceptions différentes de puces ou les conceptions générales des dispositifs pour leur appliquer la fonction de l'invention.
Un autre élément de la présente invention est le procédé de gestion d'un dispositif 100 pour le traitement de données selon lequel le dispositif 100 comporte une interface 110 pour recevoir des données d'entrée et une unité de traitement 120 pour traiter les données. Selon l'invention, il est prévu dans ces conditions de coder les mots de données codées Xn reçus comme données d'entrée par l'interface d'entrée 110 à l'aide de l'unité de codage 130 pour obtenir des mots de données codées codés Xn' et en ce que l'unité de traitement 120 traite les mots de données codées codés Xn' ; l'unité de codage 130 utilise un code polymorphe résistant aux fuites pour le codage. Le coeur de cette caractéristique de l'invention consiste à prévoir un codage des mots de données codées avant de les traiter en utilisant le paramètre de codage t i selon l'invention qui permet de mieux réduire ou de supprimer totalement les fuites dans le sens cryptographique pour le traitement des mots de données codées codés par le dispositif 1000.
L'invention peut avantageusement être implémentée à la fois sous la forme d'un circuit et aussi sous la forme d'un programme ou d'une combinaison de ces deux solutions. De façon générale, le principe de l'invention permet, avec l'unité de codage 130 (figure 1), de faire une transformation des don- nées d'entrée Xn en données codées Xn' qui présentent un code anti- fuites, notamment un code PLRC moins sensible aux attaques DPA. En d'autres termes, le code qui contient les mots de données codées Xn' présente moins de fuites au sens cryptographique. Cela signifie qu'il n'y a pas d'information de canal auxiliaire ou peu de telles informations dans les mots de données codées. C'est pourquoi, une attaque du dispositif 100 selon l'invention par des moyens connus tels que par exemple la saisie du rayonnement électromagnétique du dispositif 100 ou la saisie de sa consommation électrique ou de paramètres analogues ne donne que re- lativement peu d'informations ou pas d'information du tout concernant l'unité 120. Comme déjà décrit ci-dessus, l'unité de traitement 120 peut exécuter une partie d'un procédé cryptographique ou algorithme ou encore un procédé cryptographique complet, par exemple le cryptage ou le décryptage par exemple selon la norme cryptographique AES et/ou former une valeur hachée selon la norme SHA. Cela permet un traitement scalaire simple du principe de l'invention. Pour une économie, un autre mode de réalisation, l'invention comprend des composants 110, 120, 130, 132 par exemple seulement pour des unités de traitement concernant particulièrement la sécurité d'un algorithme cryptographique. En variante, toutes les étapes de traitement d'un dispositif de traitement de données peuvent être durcies par le principe de l'invention.
Par comparaison aux contre-mesures usuelles contre les attaques de canal auxiliaire, les solutions de l'invention reposant sur des contre-mesures de codage ont différents avantages : 1. Les contre-mesures fondées sur le codage sont de nature déterminis- tique de sorte qu'elles nécessitent relativement de calcul et notamment pas de générateur aléatoire ou de générateur pseudo-aléatoire. 2. L'implémentation sous la forme d'un circuit intégré en utilisant des cellules CMOS usuelles est relativement simple. 3. Du fait de l'indépendance entre les nombres aléatoires, un test du dispositif 100 selon l'invention est beaucoup plus simple qu'un test de dispositifs et de procédés utilisant des nombres aléatoires. 4. Les contre-mesures reposant sur le procédé de l'invention nécessitent pour leur implémentation seulement relativement peu de surface de puce ou peu de codes complexes que l'unité de codage 130 doit appliquer. 5. Le principe de l'invention peut être appliqué avantageusement, à des composants isolés d'un dispositif à protéger ou à l'ensemble du dispositif. 25 6. L'invention s'applique de manière modulaire. Par exemple, un re- gistre mémoire renforcé DPA peut être réalisé sous la forme d'un dispositif 100 selon l'invention si l'unité de traitement 120 est réalisée par exemple comme un registre de mémoire R1 usuel. Dans ce cas, on peut avoir la configuration 100 de la figure 1 sous une forme modulaire et 30 l'appliquer à un dispositif à protéger, résultant d'une fabrication en grande série. Les moyens de l'invention reposant sur le codage élimi- nent ou évitent dans une très large mesure, les fuites d'informations par les canaux auxiliaires. 20 Selon un autre développement avantageux, le code est réalisé pour permettre une correction d'erreur partielle ou complète de mots de données codées qui ont été faussés, par exemple au cours d'une attaque dite de défaut. Cela peut se faire par exemple en ajoutant d'autres bits qui augmentent la redondance. Selon un autre développement avantageux, l'unité de traitement 120 vérifie un ou plusieurs mots de données codées Xn' pour déterminer si les mots de données codées valables sont utilisés dans le sens du code appliqué par l'unité de codage. Une telle vérification peut se faire dans la configuration de la figure 7, non seulement dans l'unité 120, mais également dans l'unité 140. Par exemple, dans le cas d'un codage par l'unité de codage 130 qui a pour objet un poids de Hamming constant (par exemple tous les mots de données codées Xn' ont un poids de Hamming constant) l'unité de traitement 120 pourra vérifier si un mot de données codées Xn' ajouté présente effectivement le poids de Hamming concerné. Dans la négative, on peut en conclure qu'il y a eu une attaque par injection de défauts dans le dispositif 100 ; par cette attaque un attaquant a intentionnellement injecté des mots de code faux, par exemple dans la liaison entre les composants 130 et 120 pour permettre une attaque DPA plus efficace. La vérification selon l'invention des mots de données codées Xn' sera par exemple évitée dans l'unité 120 ou 160. Selon un développement avantageux, la vérification décrite ci-dessus peut se faire par exemple à l'aide d'un test dit de membre adhérent pour les mots de données codées.
D'autres formes de réalisation avantageuses sont décrites ci-après. Selon les recherches de la demanderesse, une fuite de canal auxiliaire permet de tirer des conclusions concernant les données Xn' traitées de manière interne dans le dispositif 100 et ainsi de déter- miner par exemple une clef cryptographique commune. En d'autres termes, une fuite de canal auxiliaire contient l'information relative aux données internes traitées. Un exemple est le lien entre la consommation de courant dépendant des données dans des circuits CMOS comme cela était indiqué dans les explications précédentes concernant le dispositif 100 et correspondant à la valeur de mesure X ln.
La fuite de canal latéral L d'une grandeur interne V du dispositif 100 peut être définie comme fonction f() de cette variable v c'est-à-dire : L=f(v). Un exemple pratique de la variable v serait la valeur émise du sous-octet de bloc chiffré de la norme de chiffrement avancé AES. Des exemples pratiques de la fonction f(v) serait par exemple la mesure de la consommation de courant, la mesure du rayonnement électromagnétique, mais aussi les propriétés déduites, telles que le poids ou la pondération Hamming (HW) ou la distance Hamming (HD) de V pendant que cette grandeur V est traitée ou est mémorisée par le dispositif 100. Les deux derniers exemples HW ou HD sont certes abstraits mais conduisent finalement à un comportement du dispositif 100 dépendant physiquement des données, par exemple une consommation de courant qui dépend des données.
En outre, on peut déterminer une valeur moyenne M de la fuite de canal auxiliaire L pour toutes les valeurs possibles de la variable v GV, c'est-à-dire M=Moyenne(L) et une norme compatible v dans l'exemple de la fonction amplitude v Ainsi, l'image C : w v est définie qui donne un mot wi pour un mot de code vi : f(ci-M <=Epsilon ; Dans cette formule "Epsilon" est une valeur limite prédé- finie (seuil). Selon un autre développement, l'inégalité f(ci-M <=Epsilon n'est pas nécessairement valable pour toutes les valeurs de v mais il suffit par exemple qu'une partie des valeurs de v remplisse cette condition. L'image décrite ci-dessus C : w v est appelée ainsi code résistant aux fuites, c'est-à-dire un code qui permet de réduire les fuites car la variation des fuites de canal auxiliaire dépendant des données f(v)=L reste à l'intérieur du canal epsilon de largeur 2*Epsilon.
Selon l'invention, on peut améliorer encore plus le code de résistance aux fuites en exécutant une prescription de codage pour le codage des mots de données Xn (Figure 2a) en fonction d'au moins un paramètre de codage t i, par lequel l'image représentant le chiffre- ment C :w4- v est exécuté en plus, en fonction d'au moins un para- mètre de codage (ou paramètre de chiffrement) t_i. Un tel code amélioré selon l'invention peut également être appelé code polymorphe résistant aux fuites (code polymorphe autorisant moins de fuites) et être défini comme fonction de la manière suivante : CPLRC (w, t_i) 1--vi avec C(w, t i) o C(w, t i) pour tout ioj. Le principe de fonctionnement décrit ci-dessus du code PLRC sera explicité ci-après en référence au dispositif 100a selon la figure 7. L'unité de commande polymorphe 132 (voir figure 2a) commande la sélection d'une variante de code déterminé (figures 6a, 6b) en prédéfinissant le paramètre t_i à l'unité de codage 130 de façon que l'image concrète représentant le chiffrement des mots de données Xn en mots de données codées (mots de données codées chiffrés) Xn' dépend du paramètre de chiffrement t i. De tels mots de données codées Xn' sont appliqués alors à l'unité 120 qui peut avoir une fuite par canal auxiliaire L(). Comme le code PLRC utilisé par l'unité de codage 130 se- lon l'invention est un code résistant aux fuites, en fonction de la fuite de canal auxiliaire L() qui ne disparait pas de l'unité 120 cela fait échouer les attaques de canal auxiliaire. L'unité 120 émet les données traitées Y qui doivent alors être décodées selon un mode de réalisation, par l'unité de décodage 150. L'unité de décodage 150 reçoit également très avanta- geusement le paramètre de codage t_i pour pouvoir décoder les données Y. Le paramètre de codage t_i peut être appliqué à l'unité de décodage 150 par exemple également directement par l'unité de commande 132 (figure 2a).
Selon un autre développement, l'unité de codage 130 (fi- gure 2a) n'effectue le codage (chiffrement) que d'une partie de tous les mots de données Xn. Cela signifie qu'il n'est pas nécessaire de coder tous les mots de données. Pour expliciter encore plus les explications précédentes, on se reportera à deux autres exemples ci-après.
Premier exemple : La fonction L=f(V') est la consommation de courant d'un circuit cryptographique (circuit de chiffrement) dépendant des données (par exemple un composant du dispositif 100 de la figure 2a) et cette consommation de courant se mesure à partir de la chute de tension aux bornes d'une résistance shunt (procédure habituelle d'une attaque par canal auxiliaire). On choisit Epsilon de façon à être inférieur à l'erreur quantifiée de l'oscilloscope à mémoire, numérique, utilisé pour mesurer la chute de tension ; cela signifie que Epsilon n'est pratiquement plus mesurable. Un code évitant les fuites est alors un code pour lequel la consommation de courant f(V') dépendant des données, diffère d'une valeur y' par rapport à V' de plus de Epsilon par rapport à la consommation de moyenne de courant, c'est-à-dire si l'on a la relation f(v)-M <= Epsilon. Deuxième exemple : Selon un autre mode de réalisation, un code utilisé par l'unité de codage 130 a un poids Hamming constant (HG) égal à 2, c'est- à-dire que toutes les valeurs Xn' ont un poids HG=2. Si l'on choisit la fonction f(V'), cela signifie que cette fonction retourne le poids Hamming des valeurs y' de V' et si l'on choisit une valeur Epsilon égale à zéro, alors le code indiqué est un code évitant les fuites, car on a la relation f(v')-M <=Epsilon puisque la valeur moyenne M du poids Hamming des mots de code est égale à 2 et qu'aucun des mots de code diffère de plus de Epsilon choisi (=0) c'est-à-dire 0 Hw(v')-2 <=0, (pour V y', car Hw(v')=2 pour V).30

Claims (2)

  1. REVENDICATIONS1°) Dispositif (100) pour traiter des données, - le dispositif (100) ayant une interface d'entrée (110) pour recevoir les données d'entrée (X) et une unité de traitement (120) pour traiter les données, dispositif caractérisé par - une unité de codage (130) pour coder les données d'entrée (X) arrivant à l'interface d'entrée (110) sous la forme de mots de données codées (Xn), pour obtenir des mots de données (Xn'), - l'unité de codage (130) codant les mots de données (Xn) pour qu'une partie prédéterminée de valeurs de mesure (X ln, X2n) qui caractérisent les mots de données codées codées (Xn') et/ou leur traitement par le dispositif (100) et qui se déterminent en fonction d'au moins une grandeur physique du dispositif (100), de préfé- rence au moins environ 50% de toutes les valeurs de mesure (X ln, X2n) diffèrent d'une valeur prédéfinie (Vn), - la différence étant inférieure ou égale à un seuil prédéfini (S), - l'unité de codage (130) appliquant une prescription de codage pour le codage des mots de données codées (Xn) en fonction d'au moins un paramètre de codage (t-i), et - l'unité de traitement (120) traitant les mots de données codées (Xn').
  2. 2°) Dispositif (100) selon la revendication 1, caractérisé en ce que - la valeur prédéfinie (Vn) est choisie égale pour toutes les valeurs de mesure (X ln, X2n), - au moins notamment comme valeur prédéfinie (V) on sélectionne une valeur moyenne de toutes les valeurs possibles des valeurs de mesure, - notamment pour au moins deux valeurs de mesure (X ln, X2n) ou les mots de données (Xn') associés à ces valeurs de mesure ont chaque fois un seuil différent (Sn).353°) Dispositif (100) selon la revendication 1, caractérisé en ce que a. les valeurs de mesure sont des grandeurs scalaires ou des grandeurs vectorielles ou ont une forme matricielle et/ou b. les valeurs de mesure représentent une consommation d'énergie élec- trique du dispositif (100) ou au moins d'un composant du dispositif (100) et/ou c. les valeurs de mesure représentent un poids de Hamming ou une distance de Hamming. 4°) Dispositif (100) pour traiter des données, comportant une interface d'entrée (110) pour recevoir les données d'entrée (X) et une unité de traitement (120) pour traiter les données, dispositif caractérisé par une unité de codage (130) pour coder les mots de données (Xn) obte- nus comme données d'entrée (X) à l'interface d'entrée (110), et obtenir des mots de données codées (Xn'), - l'unité de codage (130) effectuant le codage des mots de données (Xn), et une partie prédéfinie de tous les mots de données, de préférence au moins 50% de tous les mots de données, ont entre eux une distance de Hamming prédéfinie et/ou un poids de Hamming prédéfini, - l'unité de codage (130) appliquant une prescription de codage pour coder les mots de données codées (Xn) en fonction d'au moins un paramètre de codage (t i), et - l'unité de traitement (120) traite les mots de données codées (Xn'). 5°) Dispositif (100) selon la revendication 1, caractérisé par une unité de commande polymorphe (132) pour prédéfinir pour le co- dage d'au moins un mot de données (Xn), de préférence toutefois pour le codage de plusieurs mots de données (Xn) ou de tous les mots de données (Xn), ou au moins un paramètre de codage (t i).356°) Dispositif (100) selon la revendication 1, caractérisé en ce que l'unité de traitement (120) comporte au moins un registre (R1, R2) réalisé pour mémoriser au moins provisoirement au moins un mot de don- nées codées (Xn') et/ou une unité de chiffrement (124) appliquant au moins une partie d'un procédé de chiffrement. 7°) Dispositif (100) selon la revendication 1, caractérisé en ce que l'unité de codage (130) effectue le codage des mots de données (Xn) en ajoutant un nombre de bits (Rn) prédéfini à chaque mot de données (Xn), de préférence en fonction du paramètre de codage (t i). 8°) Dispositif (100) selon la revendication 7, caractérisé en ce que l'unité de codage (130) sélectionne le nombre prédéfini de bits à ajouter (Rn) de façon qu'une partie prédéfinie de tous les mots de données codées (Xn') présentent entre eux une distance de Hamming prédéfinie et/ou un poids de Hamming prédéfini. 9°) Dispositif (100) selon la revendication 1, caractérisé en ce qu' il est réalisé au moins en partie sous la forme d'un circuit intégré de préférence implémenté en technique CMOS. 10)°Dispositif (100) selon la revendication 1, caractérisé en ce que l'unité de traitement (120) est un bus de données ou comporte un bus de données. 11°) Procédé de gestion d'un dispositif (100) de traitement de données, le dispositif (100) ayant une interface d'entrée (110) pour recevoir des données d'entrée (X) et une unité de traitement (120) pour traiter les données, procédé caractérisé en ce queà l'aide d'une unité de codage (130) on code les mots de données (Xn) reçus sous la forme de données d'entrée (X) à l'interface d'entrée (110), pour obtenir des mots de données codés (Xn'), l'unité de codage (130) assurant le codage des mots de données (Xn) pour qu'une action prédéfinie de valeurs de mesure (X ln, X2n) qui caractérise les mots de données codées (Xn') et/ou leur traitement par le dispositif (100) et qui se détermine en fonction d'au moins une grandeur physique du dispositif (100), de préférence au moins environ 50% de toutes les valeurs de mesure (X ln, X2n) diffèrent d'une valeur prédéfinie (Vn) d'une différence inférieure ou égale à un seuil prédéfini (S), l'unité de codage (130) appliquant une prescription de codage pour coder les mots de données (Xn) en fonction d'au moins un paramètre de codage (t i), l'unité de codage (120) traitant les mots de données (Xn'). 12°) Procédé de gestion d'un dispositif (100) de traitement de données selon lequel le dispositif (100) comporte une interface d'entrée (110) pour recevoir des données d'entrée (X) et une unité de traitement (120) pour traiter les données, procédé caractérisé en ce que à l'aide d'une unité de codage (130) on effectue le codage des mots de données (Xn) obtenus comme données d'entrée (X) à l'interface d'entrée (110) pour obtenir des mots de données codées (Xn'), - l'unité de codage (130) réalisant le codage des mots de données (Xn) de façon qu'une fraction prédéfinie de tous les mots de données codées, de préférence au moins environ 50% de tous les mots de données codées ont entre eux une distance de Hamming prédéfinie et/ou un poids de Hamming prédéfini, - l'unité de codage (130) appliquant une prescription de codage pour coder les mots de données codées (Xn) en fonction d'au moins un paramètre de codage (t i), et - l'unité de traitement (120) traite les mots de données codées (Xn').3513°) Procédé selon la revendication 11, caractérisé en ce qu' on effectue un calibrage selon lequel des mots de données codées calibrés, prédéfinis sont traités par l'unité de traitement (120) et on déter- mine les valeurs de mesure correspondant aux mots de données codées, calibrées. 14°) Procédé selon la revendication 13, caractérisé en ce que le codage se fait par l'unité de codage (130) en fonction des valeurs de mesure correspondant aux mots de données calibrées.15
FR1553242A 2014-04-16 2015-04-14 Dispositif et procede de traitement de donnees Withdrawn FR3020161A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014207296.4A DE102014207296A1 (de) 2014-04-16 2014-04-16 Vorrichtung und Verfahren zur Verarbeitung von Daten

Publications (1)

Publication Number Publication Date
FR3020161A1 true FR3020161A1 (fr) 2015-10-23

Family

ID=54249875

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1553242A Withdrawn FR3020161A1 (fr) 2014-04-16 2015-04-14 Dispositif et procede de traitement de donnees

Country Status (4)

Country Link
US (1) US9798874B2 (fr)
CN (1) CN105024708B (fr)
DE (1) DE102014207296A1 (fr)
FR (1) FR3020161A1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3089398B1 (fr) * 2015-04-30 2017-10-11 Nxp B.V. Sécurisation d'un dispositif cryptographique
EP3208788B1 (fr) * 2016-02-22 2020-06-03 Eshard Procédé de protection d'un circuit contre une analyse par canaux auxiliaires
US10566052B2 (en) 2017-12-22 2020-02-18 Micron Technology, Inc. Auto-referenced memory cell read techniques
US10431301B2 (en) 2017-12-22 2019-10-01 Micron Technology, Inc. Auto-referenced memory cell read techniques
US10541808B2 (en) * 2018-01-21 2020-01-21 Gideon Samid Advanced bitflip: threat-adjusted, quantum-ready, battery-friendly, application-rich cipher
US10901035B2 (en) * 2019-02-01 2021-01-26 Intel Corporation Techniques in ensuring functional safety (fusa) systems
KR20250134213A (ko) * 2020-03-03 2025-09-09 마이크론 테크놀로지, 인크 메모리 셀을 위한 카운터 기반 감지 증폭기 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061749A (en) * 1997-04-30 2000-05-09 Canon Kabushiki Kaisha Transformation of a first dataword received from a FIFO into an input register and subsequent dataword from the FIFO into a normalized output dataword
US6904110B2 (en) * 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6456208B1 (en) * 2000-06-30 2002-09-24 Marvell International, Ltd. Technique to construct 32/33 and other RLL codes
DE10105794A1 (de) * 2001-02-07 2002-08-08 Philips Corp Intellectual Pty Kommunikationssystem, Verfahren und Signal für zeitlagencodierte Datenübertragung
DE10225684B4 (de) * 2002-06-10 2007-01-11 Siemens Ag Verfahren zum Kodieren
DE102004021308B4 (de) * 2004-03-23 2020-07-16 Robert Bosch Gmbh Verfahren zur Fehlerkorrektur von Paketdaten
KR100855958B1 (ko) * 2004-11-24 2008-09-02 삼성전자주식회사 해밍거리를 이용한 부가 채널 공격에 안전한 암호화시스템 및 방법
CN101116081A (zh) * 2005-02-11 2008-01-30 通用数据保护公司 用于微处理器数据安全的方法和系统
US7721178B2 (en) * 2006-06-01 2010-05-18 International Business Machines Corporation Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code
US9083495B2 (en) * 2010-05-06 2015-07-14 Telefonaktiebolaget Lm Ericsson (Publ) System and method for signaling control information in a mobile communication network
CN102571108B (zh) * 2012-02-24 2014-02-26 清华大学深圳研究生院 一种应用于Turbo乘积码的自适应迭代译码方法
DE102013205542A1 (de) * 2013-03-28 2014-10-02 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten
DE102013205544A1 (de) * 2013-03-28 2014-10-02 Robert Bosch Gmbh Vorrichtung und Verfahren zur Verarbeitung von Daten

Also Published As

Publication number Publication date
CN105024708B (zh) 2021-01-01
US20160019386A1 (en) 2016-01-21
CN105024708A (zh) 2015-11-04
US9798874B2 (en) 2017-10-24
DE102014207296A1 (de) 2015-10-22

Similar Documents

Publication Publication Date Title
FR3020161A1 (fr) Dispositif et procede de traitement de donnees
EP2933720B1 (fr) Appareil de traitement de nombres aléatoires
CN106257590B (zh) 具有防篡改性的非易失性存储装置以及集成电路卡
FR3004036A1 (fr) Dispositif et procede de traitement de donnees
CN106257860B (zh) 随机数处理装置以及集成电路卡
Fridrich et al. Perturbed quantization steganography with wet paper codes
EP2893431B1 (fr) Protection contre canaux auxiliaires
CN101542431B (zh) 在给定种子时产生Feistel分块密码的方法和系统
WO2016200885A1 (fr) Montants de dissimulation cryptographique dans une transaction sur un registre tout en préservant la capacité d&#39;un réseau à vérifier la transaction
CN101384993A (zh) 产生密码学随机数发生器种子的方法和设备
CN104077349B (zh) 用于处理数据的设备和方法
FR2981472A1 (fr) Dispositif et procede de production d&#39;une sequence de bits
WO2007116171A2 (fr) Procede et dispositif pour engendrer une suite pseudo-aleatoire
CN110190951B (zh) 一种针对des算法l寄存器翻转的功耗攻击方法及系统
Cambou et al. Cryptography with analog scheme using memristors
EP3493458B1 (fr) Procédé et système de chiffrement/déchiffrement de données à ultra faible latence à des fins de stockage et/ou de communication de données sécurisés
EP2885875A1 (fr) Procede d&#39;encodage de donnees sur une carte a puce par des codes de poids constant
CN111630598B (zh) 非易失性存储装置以及其写入方法
EP3300293A1 (fr) Procédé de chiffrement ou de déchiffrement symétrique par bloc
CN118094654A (zh) 一种双熵源物理不可克隆函数抗攻击性的确定方法及装置
US20100070779A1 (en) Integrity of ciphered data
US20200295920A1 (en) Device and method for hardware-based data encryption with complementary resistive switches
CN117376488B (zh) 一种基于改进Josephus置乱与循环移位的忆阻混沌图像加密方法
Zhang et al. Leakage-resilient memory-based physical unclonable function using phase change material
FR2802669A1 (fr) Procede non deterministe de transfert securise de donnees

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLSC Publication of the preliminary search report

Effective date: 20180720

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

ST Notification of lapse

Effective date: 20211205