+

WO2007010009A2 - Integrite materielle permanente des donnees - Google Patents

Integrite materielle permanente des donnees Download PDF

Info

Publication number
WO2007010009A2
WO2007010009A2 PCT/EP2006/064425 EP2006064425W WO2007010009A2 WO 2007010009 A2 WO2007010009 A2 WO 2007010009A2 EP 2006064425 W EP2006064425 W EP 2006064425W WO 2007010009 A2 WO2007010009 A2 WO 2007010009A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
word
integrity
bits
hardware
Prior art date
Application number
PCT/EP2006/064425
Other languages
English (en)
Other versions
WO2007010009A3 (fr
Inventor
Olivier Benoit
Mickael Tunstall
Khanh Quoc Nguyen
Original Assignee
Gemplus
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus filed Critical Gemplus
Priority to US11/989,122 priority Critical patent/US20090126029A1/en
Priority to EP06764225A priority patent/EP1904928A2/fr
Priority to JP2008521968A priority patent/JP4766285B2/ja
Publication of WO2007010009A2 publication Critical patent/WO2007010009A2/fr
Publication of WO2007010009A3 publication Critical patent/WO2007010009A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Definitions

  • the present invention relates to the field of securing data in an electronic component.
  • the present invention more particularly relates to a method and an architecture for the protection of a hardware integrated circuit against fault attacks.
  • the smart card and more generally, certain portable electronic components, are very often used as a unit for calculating and storing secret and / or sensitive data for the purpose of securing an application.
  • Identity, mobile telephony, payment, transport or even access control are all areas of application in which the smart card has a key role. This role consists, among other things and in a non-limiting manner, in an authentication of the cardholder and / or the issuer of the card.
  • the card may also contain "units" which may correspond to loyalty points, money (for example telephone units) or subway tickets according to the application.
  • the card thus represents, for certain individuals and malicious organizations, a favorite target to defraud or damage the image of a company.
  • Solutions are also known which detect the effect of the disturbance undergone, for example by the presence of a modified data bit.
  • Redundancy consists in a simplistic way to perform the same operation twice (calculation, transmission, ...) in order to compare the result of the two actions.
  • redundancy can be a double calculation on data.
  • this redundancy can be manifested by the presence, for example, of two split registers storing a priori the same values. If the results are different, then it can be reasonably concluded that one of the actions went wrong after a disturbance (fault).
  • the disadvantage of these solutions lies in the punctual nature of the protection or detection provided and in the loss of performance due to the repetition of operations. Redundancy provides a guarantee only for the operation that is performed in duplicate.
  • the parity is checked and the 8-bit word is set on the data bus.
  • the 8-bit word positioned on the data bus is written to memory and the parity bit is generated at the same time.
  • the problem is that on the data bus, the word transmit does not include integrity data: there is no way to verify that this value, once transferred to the memory, CPU CPU or cache, is still correct.
  • the present invention intends to overcome the drawbacks of the prior art by proposing a data processing method for the detection of faults and a hardware architecture also provided for this purpose.
  • the method and architecture allow to work on words including integrity data in a systematic way; the number of bits of the words is greater than that I x of the initial data X in order to permanently integrate Y integrity functionalities on all the hardware processing steps.
  • the method according to the present invention is particularly well suited for fault detection since it ensures the integrity of the data on any the processing chain and throughout their life while maintaining the processing performance.
  • Each hardware component is designed to work systematically with I x + 1 ⁇ bits in order to make detection optimal and systematic. This means that each software word X is stored in memory in I x + 1 ⁇ cells, that the software word X is transferred from one hardware module to another with its associated checksum on a bus of I x + 1 ⁇ lines. In this way, the word software is protected whatever its type: address, data, instruction, operand, ...
  • the invention relates in its most general sense to a method of processing digital data X of software encoded on I x bits for fault detection in an electronic circuit comprising at least one bus, a processing unit and a memory for running the software, the method comprising:
  • said digital data Z consist of the concatenation of the data X with data Y of integrity resulting from the function fd integrity applied to the data X:
  • Z X
  • Y X
  • said integrity function f calculates the number of bits set to "1" or "0" in said digital data X.
  • said step of processing the digital data Z is performed by a logic unit and arithmetic (ALU) and includes:
  • said step of processing the digital data Z is performed by a unit of logic and arithmetic (ALU) and comprises:
  • the invention also relates to a hardware architecture for fault detection in an electronic circuit, the architecture comprising:
  • Material resources comprising at least one bus, a processing unit and a memory for the processing of the digital data Z, the set of said hardware resources working on words of I x + 1 ⁇ bits;
  • Means for verifying the integrity of said data Z during said processing step with each manipulation of the data X are provided.
  • said bus comprises at least one means for verifying the integrity of said data Z transferred by said bus.
  • said hardware resources comprise at least one memory which stores said Z data in the form of words of size I x + 1 ⁇ bits (size of the software word + size of the integrity check word).
  • said hardware resources comprise at least registers associated with a central processing unit CPU, said registers storing the data Z in the form of message words. size I x + 1 ⁇ bits, and said CPU separately carrying out operations on said data X and the additional bits of integrity Y.
  • ALU logic and arithmetic unit
  • FIG. 1 represents an overall diagram of an embodiment of the hardware architecture according to the present invention
  • FIG. 2 represents a control block implemented in the architecture of FIG. 1;
  • FIG. 3 illustrates an embodiment of a unit of logic and arithmetic ALU transparent for the integrity function;
  • FIG. 4 illustrates a less secure embodiment of an ALU logic and arithmetic unit in which the integrity information is recalculated.
  • data is understood to mean any digital information that passes through, is executed, stored or processed in the integrated circuit, that these data are binary variables, memory addresses, instructions, ...
  • checksum any data is assigned a checksum (checksum).
  • checksum “checksum”, “checksum”, “parity bits”, “data / integrity bits” or “control word” are considered synonymous and represent additional data of a given data, these additional data being determined according to the data, for example by a function.
  • integrity data make it possible to check the integrity of a file or a data block and to verify with more or less precision whether data has been transmitted correctly.
  • a classic method is CRC (Cyclic Redundancy Check - Cyclical Redundancy Check).
  • the term "software word” means the binary suite representative of a piece of data used by a software, for example a variable, and considered as a whole for a particular treatment.
  • a software word can have a size of 8, 16 or 32 bits for example.
  • the letter “X” represents this software word and "I x " the size of the word software.
  • the term “hardware word” or "word machine” means the binary suite used by the hardware elements of the electronic circuit to manipulate the software words during a software command.
  • the electronic circuit comprises at least one data / address bus, a memory and a processing unit (CPU, ALU, etc.).
  • the machine words may be the same size as the software words but in the present invention they are larger in size, for example 10, 18 or 36 bits for software words of 8, 16 or 32 bits respectively.
  • the additional bits or "overheads” are integrity bits for encoding a checksum that can be a single bit or several bits in order to increase the probability of detecting a fault.
  • integrity function f is the number of bits at "1" (at “0") in software word X.
  • the word software X alone is considered as unprotected because an untimely modification of a bit of it can not be detected.
  • the word machine Z X
  • Y the word software X is protected since a modification of it implies an inconsistency between the integrity data Y and the word X.
  • an embodiment of an electronic circuit architecture of an electronic component is proposed.
  • the presented hardware architecture is extended to hardware words including Y integrity data in addition to the X software word. Whatever hardware path is taken or storage, integrity data is permanently associated with the software words.
  • CPU uses registers and data of size I x +
  • NVM non-volatile memory
  • ROM 10 and 11 non-volatile storage memories store data and computer programs in the form of machine words of I x + 1 ⁇ bits. This data is recorded from an external computer station 12 after a verification of the data transmitted by an integrity check block 13.
  • the control block 13 verifies that the data transmitted by the station 12 does not include any inconsistency.
  • FIG. 2 an exemplary embodiment of a control block 13 is proposed.
  • the control block 13 receives as input a machine word composed of the software word X and integrity data Y.
  • the control block knows the function of integrity f. It calculates from X and -f the value of Y expected a priori. This value is then compared to the value of Y received at the input.
  • the control block 13 transmits the data X and Y output if this comparison is positive, the X and Y data then being considered coherent with each other.
  • Y are also transmitted on a bus 16 of data / addresses of I x + l ⁇ bits.
  • the data bus 16 carries data protected by the integrity information.
  • an integrity control block 13 can be used for each link between two different functional hardware structures. This is the case between the memory zone 10 and the data bus 16: the integrity of the data is verified before transmission on the bus and / or reception from the bus.
  • Peripherals 17 and Random Access Memory (RAM) 18 all working with machine words of size I x + 1 ⁇ are also part of the architecture and interact with the data bus 16 via a control bus. access 19 and a control block 13.
  • General registers 20 are also available and store data provided for example by a central processing unit CPU in cells of size I x + 1 ⁇ . These registers 20 feed a unit of logic and arithmetic ALU 21 in X data
  • FIG. 3 provides an exemplary embodiment of an ALU 21 transparent to the integrity data. Transparency is understood to mean that ALU 21 considers the integrity data Y as separate data regardless of its integrity data status.
  • the arithmetic and logical unit is capable in whole or in part of processing operations on X
  • Each numerical data X is associated with integrity data Y, also called redundancy control data.
  • integrity data Y also called redundancy control data.
  • Each operation performed on the data Numeric X is also associated with an operation or function of integrity on the numerical data X.
  • the operation of the hardware implementation is based on the difficulty of handling large integers, for example integers having a size of the order of 1024 bits.
  • a ⁇ - 0 (a n a n -i • • • • aia o ) b-); where the sign known to those skilled in the art " ⁇ -" corresponds to an assignment of the value of the calculation or of the data to the right of the sign to the left of the sign;
  • A xyR "1 mod m
  • An operation OP identical to OP ' is chosen, for example an arithmetic addition.
  • the central processing unit CPU (not shown in FIG. 1) operates on the same principle as the ALU unit 21.
  • the registers managed by the CPU, the data received by the CPU or provided by the CPU are suitable for machine words of size I x + 1 ⁇ .
  • the operations and instructions are performed by the CPU in a transparent manner to ensure strong protection of the software data, or by recalculating the integrity data at the end of processing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

La présente invention se rapporte au domaine de la sécurisation des données dans un composant électronique. La présente invention se rapporte à un procédé de traitement de données numériques X d'un logiciel codées sur Ix bits pour la détection de faute dans un circuit électronique comprenant au moins un bus, une unité de traitement et une mémoire pour l'exécution du logiciel et une architecture matérielle prévue à cet effet. Le procédé comprend : - une étape de transformation des données numériques X en des données numériques Z codées sur Ix + ly bits, les ly bits additionnels étant le résultat d'une fonction f d'intégrité appliquée sur lesdites données X ; - une étape de traitement des données numériques Z par l'ensemble des ressources matérielles du circuit, ces ressources matérielles travaillant sur des mots de Ix + ly bits ; - au moins une étape de vérification de l'intégrité desdites données Z pendant ladite étape de traitement .

Description

INTEGRITE MATERIELLE PERMANENTE DES DONNEES
La présente invention se rapporte au domaine de la sécurisation des données dans un composant électronique.
La présente invention concerne plus particulièrement un procédé et une architecture pour la protection d'un circuit intégré matériel contre les attaques par fautes .
La carte à puce, et de manière plus générale, certains composants électroniques portables, sont bien souvent utilisés comme unité de calcul et de stockage de données secrètes et/ou sensibles dans le but de sécuriser une application. L'identité, la téléphonie mobile, le payement, le transport ou encore le contrôle d'accès sont autant de domaines d'application dans lesquels la carte à puce a un rôle essentiel. Ce rôle consiste, entre autres et de manière non limitative, à une authentification du porteur de la carte et/ou de l'émetteur de la carte. La carte peut également contenir des « unités » qui peuvent correspondre à des points de fidélité, de l'argent (par exemple les unités téléphoniques) ou encore des tickets de métro selon 1' application .
La carte représente ainsi, pour certains individus et organisations malveillants, une cible de prédilection afin de frauder ou de porter atteinte à l'image de marque d'une société.
La carte fait face depuis son déploiement à des menaces dont l'observation de la consommation de courant
(side channel analysis) mais également depuis peu aux attaques par injection de fautes transitoires. La détection de telles attaques est relativement complexe et la réponse à ces attaques difficile à mettre en œuvre. Les composants électroniques actuels ne garantissent pas un fonctionnement correct quelles que soient les perturbations externes. Il en résulte que le logiciel embarqué dans la carte doit se prémunir par lui-même de défaillances éventuelles du composant engendrées par une injection de faute.
L'art antérieur connaît déjà des solutions pour la détection de perturbations, par exemple des glitchs (impulsion de tension) qui seraient susceptibles d'entraîner une faute dans le fonctionnement du composant électronique. Notons l'existence de solutions matérielles qui consistent en intégrer des capteurs environnementaux (de température, de fréquence horloge, de tension d'alimentation, de lumière) qui vont détecter une perturbation (une tension anormalement basse, une intensité lumineuse trop forte) afin de réagir avant de rentrer dans une zone de fonctionnement du composant jugée instable et donc à risques en terme de faute. Ces solutions sont coûteuses car nécessitent le développement de capteurs spécifiques (coût économique) et l'intégration de ceux-ci dans des circuits parfois de petite taille (coût de taille) .
On connaît également des solutions qui détectent l'effet de la perturbation subie, par exemple par la présence d'un bit de données modifié.
On distingue, entre autres, des solutions logicielles ou matérielles de type redondance d'un processus. La redondance consiste de manière simpliste à effectuer deux fois la même opération (calcul, transmission, ...) afin de comparer le résultat des deux actions. En mode logiciel, la redondance peut être un double calcul sur des données. En mode matériel, cette redondance peut se manifester pas la présence, par exemple, de deux registres dédoublés stockant a priori les mêmes valeurs. Si les résultats sont différents, alors il peut être raisonnablement conclu que l'une des actions s'est mal passée sûrement suite à une perturbation (faute) . L'inconvénient de ces solutions réside dans le caractère ponctuel de la protection ou détection fournie et dans la perte de performance due à la répétition d' opérations . La redondance n'offre une garantie que pour l'opération qui est réalisée en double.
Egalement, il existe des solutions logicielles ou matérielles de type contrôle d'intégrité. Une donnée stockée en mémoire non volatile se voit ajouté un « checksum » (somme de contrôle) de la donnée, cette somme permettant de détecter si la donnée est corrompue par une faute avant la vérification du checksum en cas d'incohérence entre la donnée et la somme checksum. L'ajout de données d' intégrité est répandu dans les couches logicielles, par exemple pour la transmission de données. Le checksum en hardware (matériel) tel qu'on le trouve dans l'art antérieur est mis en oeuvre uniquement au niveau d'un bloc mémoire, il prend bien souvent le nom de « bit de parité ». Le mot machine élémentaire (8 bits sur un composant 8-bit) est stocké sur 9 bits en mémoire, le 9ieme bit étant un bit de parité positionné de sorte que la parité du mot soit systématiquement pair/impair. Lors d'une lecture, la parité est vérifiée et le mot de 8 bits est positionné sur le bus de données. Lors d'une écriture, le mot de 8 bits positionné sur le bus de données est écrit en mémoire et le bit de parité est généré dans le même temps . Le problème est que sur le bus de données, le mot transmit ne comprend pas de données d'intégrité : il n'y a aucun moyen de vérifier que cette valeur, une fois transférée vers la mémoire, l'unité centrale de traitement CPU ou le cache, est encore correcte.
II convient de noter que dans un soucis sécurité optimal, l'idéal serait de pouvoir détecter une faute quelque soit son effet. Ce n'est malheureusement pas possible à un coût raisonnable avec les solutions de l'état de l'art précédemment exposées (redondance, checksum) .
De façon générale, les solutions de l'art antérieur ne permettent pas un contrôle de l'intégrité en permanence sur les données. En effet, aucune solution n'est proposée pour le contrôle de l'intégrité permanente des données au niveau matériel.
Il y a donc un besoin pour la détection systématique de fautes et pour assurer l'intégrité permanente des données lors des manipulations par les éléments matériels.
La présente invention entend remédier aux inconvénients de l'art antérieur en proposant un procédé de traitement des données pour la détection de fautes et une architecture matérielle prévue également à cet effet. Le procédé et l'architecture permettent de travailler sur des mots incluant des données d' intégrité de façon systématique ; le nombre de bits des mots est supérieur à celui Ix des données initiales X afin d'y intégrer en permanence des fonctionnalités d' intégrité Y sur toutes les étapes de traitement hardware.
Le procédé selon la présente invention répond particulièrement bien aux besoins pour la détection de fautes puisqu'elle assure l'intégrité des données sur toute la chaîne de traitement et durant toute leur durée de vie tout en maintenant les performances de traitement.
Chaque composant matériel est conçu de manière à travailler de manière systématique avec Ix + lγ bits afin de rendre la détection optimale et systématique. Cela signifie que chaque mot logiciel X est stocké en mémoire dans Ix + lγ cellules, que le mot logiciel X est transféré d'un module matériel à un autre avec son checksum associé sur un bus de Ix + lγ lignes. De la sorte, le mot logiciel est protégé quelque soit son type : adresse, data, instruction, opérande, ...
A cet effet, l'invention concerne dans son acception la plus générale un procédé de traitement de données numériques X d'un logiciel codées sur Ix bits pour la détection de faute dans un circuit électronique comprenant au moins un bus, une unité de traitement et une mémoire pour l'exécution du logiciel, le procédé comprenant :
- une étape de transformation des données numériques X en des données numériques Z codées sur Ix + lγ bits, les lγ bits additionnels étant le résultat d'une fonction f d'intégrité appliquée sur lesdites données X ;
- une étape de traitement des données numériques Z par l'ensemble des ressources matérielles du circuit, ces ressources matérielles travaillant sur des mots de Ix + lγ bits ; - au moins une étape de vérification de l'intégrité desdites données Z pendant ladite étape de traitement . Dans un mode de réalisation, lesdites données numériques Z consistent en la concaténation des données X avec des données Y d' intégrité résultat de la fonction f d' intégrité appliquée sur les données X : Z = X | Y = X | -f(X) . Dans la suite « | » est l'opérateur signifiant la concaténation de deux éléments (X et Y dans ce qui précède)
Dans un autre mode de réalisation, ladite fonction f d'intégrité calcule le nombre de bits mis à « 1 » ou « 0 » dans lesdites données numériques X. Particulièrement, ladite étape de traitement des données numériques Z est réalisée par une unité de logique et d'arithmétique (ALU) et comprend :
- une étape de calcul d'une opération OP sur les données X des données Z, - une étape de calcul de ladite opération OP sur les bits additionnels d'intégrité desdites données Z, et ladite fonction d' intégrité f est conforme à f(X1 OP X2) = f(Xi) OP f(X2) .
Dans un mode de réalisation, ladite étape de traitement des données numériques Z est réalisée par une unité de logique et d'arithmétique (ALU) et comprend :
- une première étape de contrôle de l'intégrité des données Z, - une étape suivante de calcul d'une opération OP sur les données X des données numériques Z,
- une étape de transformation des données numériques résultats de ladite opération OP en des données numériques Z' codées sur Ix + lγ bits, les lγ bits additionnels étant le résultat de la fonction f d' intégrité appliquée sur lesdites données résultats de ladite opération OP. Particulièrement, ladite fonction f est définie par -f(X) = X / Ix, où Ix est la longueur en bits du mot binaire X.
L'invention concerne également une architecture matérielle pour la détection de faute dans un circuit électronique, l'architecture comprenant :
— des moyens de transformation de données numériques X d'un logiciel codées sur x bits en des données numériques Z codées sur Ix + lγ bits, les lγ bits additionnels étant le résultat d'une fonction f d' intégrité appliquée sur lesdites données X ;
— des ressources matérielles comprenant au moins un bus, une unité de traitement et une mémoire pour le traitement des données numériques Z, l'ensemble desdites ressources matérielles travaillant sur des mots de Ix + lγ bits ;
— des moyens de vérification de l'intégrité desdites données Z pendant ladite étape de traitement à chaque manipulation des données X.
Dans un mode de réalisation, ledit bus comprend au moins un moyen de vérification de l'intégrité desdites données Z transférées par ledit bus.
Dans un mode de réalisation particulier, lesdites ressources matérielles comprennent au moins une mémoire qui stocke lesdites données Z sous forme de mots de taille Ix + lγ bits (taille du mot logiciel + taille du mot de contrôle d'intégrité) .
Dans un mode de réalisation, lesdites ressources matérielles comprennent au moins des registres associés à une unité centrale de traitement CPU, lesdits registres stockant les données Z sous forme de mots de taille Ix + lγ bits, et ladite CPU réalisant séparément des opérations sur lesdites données X et les bits additionnels d'intégrité Y.
Particulièrement, lesdites ressources matérielles comprennent au moins une unité de logique et d'arithmétique (ALU) calculant une opération OP séparément sur lesdites données X des données Z et sur les bits additionnels d'intégrité des données Z, et en ce que ladite fonction d'intégrité f est conforme à f(Xl OP X2) = f(Xl) OP f(X2) .
Eventuellement, lesdites ressources matérielles comprennent au moins une unité de logique et d' arithmétique (ALU) , ladite ALU :
- comprenant des moyens de vérification de l'intégrité desdites données Z,
- calculant une opération OP sur les données X des données Z, et
- transformant les données numériques résultats de ladite opération OP en des données numériques Z' codées sur Ix + lγ bits, les lγ bits additionnels étant le résultat de la fonction f d' intégrité appliquée sur lesdites données résultats de ladite opération OP.
Dans un mode de réalisation, ladite fonction f d'intégrité calcule le nombre de bits mis à « 1 » ou « 0 » dans ledit mot logiciel X, ou ladite fonction f est définie par -f(X) = X / Ix, où Ix est la longueur en bits du mot binaire X.
L'invention concerne également un composant électronique, par exemple une carte à puce, comprenant l'une des architectures matérielles précédentes. On comprendra mieux l'invention à l'aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées : - la figure 1 représente un schéma global d'un mode de réalisation de l'architecture matérielle selon la présente invention ;
- la figure 2 représente un bloc de contrôle mis en œuvre dans l'architecture de la figure 1 ; - la figure 3 illustre un mode de réalisation d'une unité de logique et d'arithmétique ALU transparent pour la fonction d' intégrité ; et
- la figure 4 illustre un mode de réalisation moins sécurisé d'une unité de logique et d'arithmétique ALU dans lequel les informations d' intégrité sont recalculées .
Dans la description qui suit, on entend par « données » toute information numérique qui transite, est exécutée, stockée ou traitée dans le circuit intégré, que ces données soient des variables binaires, des adresses mémoires, des instructions, ... Dans l'invention, toute donnée se voit affectée d'une somme de contrôle (checksum) .
De même, les termes « somme de contrôle », « checksum », « bits de parité », « données/bits d'intégrité » ou encore « mot de contrôle » sont considérés comme synonymes et représentent des données additionnelles d'une donnée, ces données additionnelles étant déterminées en fonction de la donnée, par exemple par une fonction. Ces données d'intégrité permettent de contrôler l'intégrité d'un fichier ou d'un bloc de données et de vérifier avec plus ou moins de précision si des données ont été transmises correctement. Une méthode classique est le CRC (Contrôle de Redondance Cyclique - Cyclical Redundancy Check) .
On entend par « mot logiciel » la suite binaire représentative d'une donnée utilisée par un logiciel, par exemple une variable, et considérée comme un tout pour un traitement particulier. Un mot logiciel peut avoir une taille de 8, 16 ou 32 bits par exemple. Dans la suite, la lettre « X » représente ce mot logiciel et « Ix » la taille du mot logiciel. On entend par « mot matériel » ou « mot machine » la suite binaire utilisée par les éléments matériels du circuit électronique pour manipuler les mots logiciels lors d'une commande logicielle. Le circuit électronique comprend au moins un bus de données/adresses, une mémoire et une unité de traitement (CPU, ALU, ...) . Les mots machine peuvent avoir la même taille que les mots logiciels mais, dans la présente invention, ils ont une taille supérieure, par exemple 10, 18 ou 36 bits pour des mots logiciels de 8, 16 ou 32 bits respectivement. Les bits additionnels ou « overhead » sont des bits d'intégrité pour coder un checksum qui peut être un seul bit ou plusieurs bits afin d'augmenter la probabilité de détecter une faute. Dans la suite, la lettre « Z » désigne le mot matériel et la lettre « Y » les bits d'intégrité, de telle sorte que Z = X I Y ; et « lz » et « lγ » les tailles associées.
Les données d' intégrité Y sont calculées à partir du mot logiciel X par une fonction f dite fonction d'intégrité de telle sorte que Y = f(X) . Un exemple de fonction d'intégrité f est le nombre de bits à « 1 » (à « 0 ») dans le mot logiciel X.
Le mot logiciel X seul est considéré comme n'étant pas protégé car une modification inopportune d'un bit de celui-ci ne peut être détectée. A contrario, dans le mot machine Z = X | Y, le mot logiciel X est protégé puisqu'une modification de celui-ci implique une incohérence entre les données d'intégrité Y et le mot X.
En référence à la figure 1, un mode de réalisation d'une architecture du circuit électronique d'un composant électronique est proposé. L'architecture matérielle présentée est étendue à des mots matériels comportant des données d' intégrité Y en plus du mot logiciel X. Quelque soit le chemin matériel emprunté ou le stockage, des données d'intégrité sont associées en permanence avec les mots logiciels.
Les bus d'adresses et de données sont de taille
Ix + lγ, les mots en mémoire utilisent des cellules mémoires de taille Ix + lγ, l'unité centrale de traitement
(CPU) utilise des registres et des données de taille Ix +
Des mémoires de stockage de type non volatiles NVM {Non Volatile Memory) ou ROM 10 et 11 stockent des données et des programmes informatiques sous forme de mots machine de Ix + lγ bits. Ces données sont enregistrées depuis un poste informatique 12 externe après une vérification des données transmises par un bloc de contrôle d'intégrité 13. Le bloc de contrôle 13 vérifie que les données transmises par le poste 12 ne comprennent pas d'incohérence. En référence à la figure 2, un exemple de réalisation d'un bloc de contrôle 13 est proposé. Le bloc de contrôle 13 reçoit en entrée un mot machine composé du mot logiciel X et des données d'intégrité Y. Le bloc de contrôle connaît la fonction d'intégrité f. Il calcule à partir de X et de -f la valeur de Y a priori attendue. Cette valeur est ensuite comparée 22 à la valeur de Y reçue en entrée. Le bloc de contrôle 13 transmet alors les données X et Y en sortie si cette comparaison est positive, les données X et Y étant alors considérées comme cohérence l'une avec l'autre.
De retour à la figure 1, lors de l'exécution du programme stocké dans la mémoire 11, une instruction, par exemple un bytecode dans le cas d'un langage interprété, est transmise puis mémorisée dans un registre d'instruction 14. La transmission et le stockage sont également réalisés en travaillant sur le mot machine X | Y. Puis un décodeur d'instruction 15 interprète l'instruction à partir du ou des mots machines Z contenu (s) dans les registres 14 et transmet les informations à des lignes de commandes après une nouvelle vérification de l'intégrité des données par un bloc de contrôle 13.
Des données sous forme de mot machine X | Y sont également transmis sur un bus 16 de données/adresses de Ix + lγ bits. Ainsi le bus de données 16 transporte des données protégées par les informations d'intégrité. Afin de cloisonner chaque structure matérielle fonctionnelle (par exemple la zone mémoire morte, le bus, la mémoire RAM), un bloc de contrôle d'intégrité 13 peut être utilisé pour chaque liaison entre deux structures matérielles fonctionnelles différentes. C'est le cas entre la zone mémoire 10 et le bus de données 16 : l'intégrité des données est vérifiée avant transmission sur le bus et/ou à réception depuis le bus.
Des périphériques 17 et des mémoires vives de type RAM (Random Access Memory) 18 tous travaillant avec des mots machine de taille Ix + lγ font également partie de l'architecture et conversent avec le bus de données 16 via un bus de contrôle d'accès 19 et un bloc de contrôle 13. Des registres généraux 20 sont également disponibles et stockent des données fournies par exemple par une unité centrale de traitement CPU dans des cellules de taille Ix + lγ. Ces registres 20 alimentent une unité de logique et d'arithmétique ALU 21 en données X | Y. Cette ALU 21 travaille sur des mots matériels X | Y et réalise des opérations logiques et/ou arithmétiques afin de fournir une donnée également sur Ix + lγ bits .
La figure 3 fournit un exemple de réalisation d'une ALU 21 transparente aux données d'intégrité. On entend par « transparente » le fait que l'ALU 21 considère les données d' intégrité Y comme des données à part entière indépendamment de leur statut de données d'intégrité. L'unité arithmétique et logique est capable en tout ou partie de traiter des opérations sur X | Y afin de ne jamais avoir à recalculer les données d'intégrité Y sur un mot logiciel X non protégé.
L'unité ALU 21 reçoit deux mots matériels en entrée : Zi = Xi | Yi et Z2 = X2 I Yi, et fournit un mot matériel Z = X | Y en sortie. L'ALU 21 réalise une opération OP sur les mots logiciels Xi et X2 conformément à sa fonction propre, fournissant un mot résultat X = Xi OP X2. Les données d'intégrité sont traitées de manière similaire par une opération OP' : Y = Yi OP' Y2.
Il est à noter que pour garantir l'intégrité du mot machine Z en sortie de l'ALU 21, il faut que : f(Xi OP X2) = Yi OP' Y2 = Jf(Xi) OP' Jf(X2) .
Chaque donnée numérique X est associée à une donnée d'intégrité Y, encore appelée donnée de contrôle de redondance. Chaque opération effectuée sur la donnée numérique X est également associée avec une opération ou fonction d'intégrité sur la donnée numérique X.
Du fait que la vérification d'intégrité et les données résultantes obtenues en fin d'opération sont effectuées en parallèle et/ou consécutivement l'une à l'autre respectivement, une attaque par faute opérée au niveau d'une quelconque opération provoque une incohérence entre les données résultantes obtenues en fin d'opération et les données d'intégrité correspondantes obtenues en parallèle. Ainsi, une simple vérification entre les données obtenues suite à une opération prédéterminée et une vérification d'intégrité à la fin de l'exécution de l'opération en question est suffisante pour détecter la présence d'une attaque par faute au cours de toute et/ou après l'exécution de l'opération.
Dans les paragraphes qui suivent, on prend, pour exemple, en tant qu'opération OP, un algorithme connu de multiplication modulaire de Montgomery.
Il convient de rappeler que le fonctionnement de 1' implémentation matérielle est basé sur la difficulté à manipuler de grands entiers, par exemple d'entiers présentant une taille de l'ordre de 1024 bits.
Due à la nature de la multiplication modulaire de Montgomery, la vérification de l'intégrité des données obtenues suite à une multiplication modulaire de Montgomery peut être effectuée de manière efficiente.
Il est à rappeler qu'une multiplication modulaire de Montgomery connue de l'homme du métier, devant multiplier deux entiers x et y mod m, fournit, en entrée, les trois données (ou opérandes) suivantes, où la fonction "mod.m" représente le reste d'une division d'un nombre par le nombre m : • m = (mn_i " " mimo)b; où n est le nombre de mots dans la représentation de nombres m, x et y, par exemple de mots de 32 bits .
• X = (Xn-I • • • XlX0) b,' • y = (yn-i • • • yiyo)b ;
• (0 < x, y < m) ;
• R = bn ; ou :
• PGCD (m, b) = 1 ; avec PGCD étant le plus grand commun diviseur et • M = -m"1 mod b ; où b est la base du mot ; où les choix d'un standard connu pour b est 232 pour des tailles de mots à 4 octets et n = 32 pour des nombres m, x et y de 1024 bits, n représente le nombre de bits sur lequel une unité centrale de traitement.
L'algorithme modulaire de Montgomery procède alors comme suit :
1. A <— 0 (Notation A = (anan-i • • • aiao)b-) ; où le signe connu de l'homme du métier " <— " correspond à une affectation de la valeur du calcul ou de la donnée à droite du signe à gauche du signe ;
2. pour i depuis 0 à (n - 1) faire :
(a) Ui <— (ao + Xi Yo) M mod b.
(b) A^(A + X1 y + Ui m) /b. 3. Si A≥m alors A^A - m.
4. Retour de A.
En sortie de l'algorithme de la multiplication modulaire de Montgomery, on obtient comme résultat :
A = xyR"1 mod m. Selon l'invention, les données devant effectuer la multiplication modulaire de Montgomery effectuent en parallèle la fonction d'intégrité suivante appliquée à une donnée x: f (x) = x mod (b - 1) ; une telle fonction représente aussi la somme de tous les mots dans la représentation de x modulo (b - 1) , c'est-à-dire : ι=k f (x) =£ χ! m°d (b - 1)
(=0
• OÙ X = (Xk • • • XiX0) b- Les entrées m, x et y subissent en parallèle la fonction d' intégrité :
• m' = m mod (b - 1) ;
• x' = x mod (b - 1) ; et
• y' = y mod (b - 1) . Une telle fonction d' intégrité est homomorphe modulo (b-1), c'est-à-dire f (x + y) = f(x) + f(y) mod (b - 1) ; et f(x * y) = f(x) * f(y) mod (b - 1).
Lorsqu'un mot de données est modifié, la modification est donc détectée. Lorsque plus d'un mot est modifié, la modification est détectée avec une probabilité de : 1 - (l/(b - I)) .
Comme les mots de données sont sommés, la dernière modification présente une probabilité de (1/ (b - I)) d'être l'inverse de toutes les modifications qui ont déjà été prises en compte.
La vérification d'intégrité échoue, autre que lors d'une ou plusieurs attaques par faute, dans un seul cas : lorsque les deux résultats obtenus en parallèle, à savoir les données résultant de la multiplication modulaire de Montgomery et celles résultant de la fonction d'intégrité, sont réinitialisées aux valeurs initiales, c'est-à-dire tous les octets sont fixés à la valeur « OxOO ». Toutefois, la donnée zéro ne véhicule alors aucune information significative notamment vu de la part d'un attaquant. L'algorithme modulaire de Montgomery modifié selon l'invention procède alors comme suit :
1. A <— 0 (Notation A = (anan-i • • • aiao)b-)
2. A' <- 0 (Notation A' = (a'o)b-) 3. Pour i depuis 0 à (n - 1) faire :
(a) Ui <— (a0 + XiYo) M mod b.
(b) A <- (A+Xiy+Uim) /b.
(c) A' ^A+Uim' mod (b - 1) . 4. A' <^A'+x'y' mod (b - 1) .
5. Si A > m alors A <— A - m ; A' <—A'-m' mod (b - 1) .
6. Retour de A et A' .
En sortie de l'opération de multiplication modulaire de Montgomery et de la fonction d' intégrité exécutée simultanément, on obtient respectivement comme résultats : A = xyR"1 mod m et A' .
La vérification de la fonction d'intégrité où f (A) correspond à A' est alors toujours vérifiable. Ainsi, si la correspondance de f (A) et A' est vérifiée, alors aucune attaque par faute n'a lieu ou n'a eu lieu. En revanche, si la correspondance de f (A) et A' n'est pas vérifiée, alors une ou plusieurs attaques par faute a lieu ou a eu lieu sur le circuit électronique.
On notera qu'un traitement des données numériques X associées aux données d'intégrité Y, de manière générale, du mot Z matériel peut être une lecture et/ou écriture en mémoire, une manipulation au sein d'une unité de traitement, un transfert du mot Z matériel via un bus propre les ressources du circuit électronique. II est à noter que la correspondance entre la présente notation et la notation utilisée, de manière générique, précédemment est la suivante :
Xi= x ; X2= y ; un autre opérande non encore introduit X3= m ; OP est l'opération de multiplication modulaire de Montgomery ; Y1= x' ; Y2= y' ; et Y3= m', A=X et A'=Y.
On comprend que tout calcul, en particulier au sein d'un calcul de cryptographie Rivest, Shamir et Adelman encore désigné par l'acronyme R. S.A., non représenté, impliquant au moins une opération de multiplication modulaire de Montgomery de données peut faire l'objet, à tout moment, pendant et/ou après l'opération de multiplication modulaire de Montgomery, de la vérification de la fonction d'intégrité Y = f (X) où X fait l'objet de l'opération de multiplication modulaire de Montgomery.
Un tel calcul de RSA est effectué par exemple dans un but d'accélérer l' implémentation matérielle du calcul de cryptographie RSA.
On choisit une opération OP identique à OP' , par exemple une addition arithmétique. Le choix de la fonction f d'intégrité ne peut alors être libre, il est conditionné par f(X1 OP X2) = f(Xi) OP f(X2) .
Par exemple, si OP est une addition arithmétique, on peut choisir -f(X) = |X/8| : si X est une valeur sur 8 bits, Y est une valeur sur 5 bits (donc Z est sur 13 bits) . De façon générale, on peut choisir comme exemple de fonction f : -f(X) = X/lχ où Ix est le nombre de bits (longueur) du mot X.
Dans un tel mode de réalisation, les opérations sur les mots logiciels Xi et sur les données d'intégrité Yi sont réalisées en parallèle. Ainsi le circuit final est aussi rapide que dans une version où les données ne sont pas protégées par des informations d'intégrité. Par contre, la réalisation matérielle de l'unité ALU 21 (tout comme l'ensemble des éléments matériels) nécessite une plus grande quantité de silicium (proportionnelle au rapport entre X et Y) pour des performances équivalentes.
En référence à la figure 4, un autre mode de réalisation de l'unité ALU 21 est proposé. L'intégrité des données Zi et Z2 en entrée est vérifiée par deux blocs de contrôle 13. Seuls les mots logiciels Xi et X2 sont utilisés pour le calcul de X par l'opération OP. Puis un calcul des données d'intégrité Y est réalisé en appliquant la fonction f sur le mot logiciel résultat X. L'unité ALU 21 fournit ainsi un mot matériel X | Y complet. Un ensemble de portes matérielles peut permettre d'appliquer la fonction f au mot logiciel pour calculer les informations d' intégrité .
Ce mode de réalisation est moins sécurisé car les données d' intégrité en sortie sont recalculées à partir du mot logiciel X résultat de l'opération. On a donc aucun moyen de détecter une erreur durant l'opération OP.
L'unité centrale de traitement CPU (non représentée sur la figure 1) fonctionne sur le même principe que l'unité ALU 21. Les registres gérés par la CPU, les données reçues par la CPU ou fournies par la CPU conviennent pour des mots machine de taille Ix + lγ. Les opérations et instructions sont réalisées par la CPU soit de façon transparent pour assurer une forte protection des données logicielles, soit en recalculant les données d'intégrité en fin de traitement.

Claims

REVENDICATIONS
1. Procédé de traitement d' au moins une donnée numérique X d'un mot logiciel codée sur un nombre Ix de bits compris au sein du mot logiciel pour la détection d'au moins une faute au sein d'un circuit électronique, ledit circuit électronique comprenant des ressources matérielles, les ressources matérielles comprenant au moins un bus, une unité de traitement et une mémoire pour l'exécution d'un programme logiciel, caractérisé en ce que le procédé comprend :
- une étape de transformation de ladite au moins une donnée numérique X en des données numériques d'au moins un mot Z matériel codées sur un nombre total de Ix + lγ bits, le nombre total correspondant à une somme du nombre lχ de bits compris au sein du mot logiciel et d'un nombre lγ additionnel de bits additionnels, les lγ bits additionnels de données Y dites d'intégrité étant le résultat d'une fonction f d'intégrité appliquée sur ladite au moins une donnée numérique X ;
- une étape de traitement des données numériques dudit au moins un mot Z matériel par l'ensemble des ressources matérielles du circuit électronique, les ressources matérielles travaillant sur au moins un mot Z matériel du nombre total de Ix + lγ bits ;
- au moins une étape de vérification de l'intégrité desdites données numériques dudit au moins un mot
Z matériel pendant et/ou après ladite étape de traitement .
2. Procédé selon la revendication 1, caractérisé en ce que lesdites données numériques dudit au moins un mot Z matériel consistent en la concaténation de ladite au moins une donnée numérique X avec les données Y d' intégrité résultat de la fonction f d' intégrité appliquée sur ladite au moins une donnée numérique X.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce que ladite étape de traitement des données numériques dudit au moins un mot Z matériel est réalisée par une unité de logique et d'arithmétique (ALU) et comprend :
- une étape de calcul d'une opération OP sur ladite au moins une donnée numérique X des données numériques dudit au moins un mot Z matériel, dite première étape de calcul,
- une étape, dite deuxième étape de calcul, de calcul de ladite opération OP sur les bits additionnels d' intégrité desdites données numériques dudit au moins un mot Z matériel, ladite fonction d' intégrité f étant conforme à : f(Xχ OP X2) = f(Xi) OP .T(X2), les première et deuxième étapes de calcul étant effectuées simultanément .
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ladite étape de traitement des données numériques dudit au moins un mot Z matériel est réalisée par une unité de logique et d'arithmétique (ALU) et comprend :
- une première étape de contrôle de l'intégrité des données numériques dudit au moins un mot Z matériel, - une étape suivante de calcul d'une opération OP sur ladite au moins une donnée numérique X des données numériques dudit au moins un mot Z matériel,
- une étape de transformation des données numériques résultats de ladite opération OP en des données numériques Z' codées sur un nombre total de Ix + lγ bits, le nombre total correspondant à une somme du nombre lχ de bits compris au sein du mot logiciel et d'un nombre additionnel de lγ bits additionnels, les lγ bits additionnels étant le résultat de la fonction f d' intégrité appliquée sur lesdites données résultats de ladite opération OP.
5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que ladite fonction f est définie par -f(X) = X / Ix, où :
- Ix est la longueur en nombre de bits du mot binaire X et - le signe « / » est une opération de division .
6. Architecture matérielle pour la détection d'au moins une faute au sein d'un circuit électronique, l'architecture matérielle comprenant :
— des moyens de transformation d'au moins une donnée numérique X d'un mot logiciel codée sur un nombre Ix bits compris au sein du mot logiciel en des données numériques d'au moins un mot Z matériel codées sur un nombre total de Ix + lγ bits, le nombre total correspondant à une somme du nombre lχ de bits compris au sein du mot logiciel et d'un nombre lγ additionnel de bits additionnels, les lγ bits additionnels de données Y dites d'intégrité, étant le résultat d'une fonction f d' intégrité appliquée sur ladite au moins une donnée numérique X ;
— des ressources matérielles comprenant au moins un bus, une unité de traitement et une mémoire, pour effectuer au moins une étape de traitement des données numériques d'au moins un mot Z matériel, l'ensemble desdites ressources matérielles travaillant sur au moins un mot Z matériel du nombre total de Ix + lγ bits ;
— des moyens de vérification de l'intégrité desdites données numériques dudit au moins un mot Z matériel pendant et/ou après ladite étape de traitement .
7. Architecture selon la revendication 6, caractérisée en ce que lesdites ressources matérielles comprennent au moins des registres associés à une unité centrale de traitement (CPU) , lesdits registres stockant les données numériques dudit au moins un mot Z matériel sous forme de mots de taille Ix + lγ bits, et ladite unité centrale de traitement (CPU) comprenant des moyens opérant sur ladite au moins une donnée numérique X et les bits additionnels des données Y d'intégrité.
8. Architecture selon la revendication 6 ou 7, caractérisée en ce que lesdites ressources matérielles comprennent au moins une unité de logique et d'arithmétique (ALU) calculant une opération OP séparément sur ladite au moins une donnée numérique X et sur les bits additionnels des données Y d'intégrité des données numériques dudit au moins un mot Z matériel, et en ce que ladite fonction d' intégrité f est conforme à : f(Xl OP X2) = f(Xl) OP f(X2) .
9. Architecture selon la revendication 6 ou 7, caractérisée en ce que lesdites ressources matérielles comprennent au moins une unité de logique et d'arithmétique (ALU), ladite unité de logique et d'arithmétique (ALU) :
- comprenant des moyens de vérification de l'intégrité desdites données numériques dudit au moins un mot Z matériel, - calculant une opération OP sur ladite au moins une donnée numérique X des données numériques dudit au moins un mot Z matériel, et
— transformant les données numériques résultats de ladite opération OP en des données numériques Z' codées sur un nombre total de Ix + lγ bits, les lγ bits additionnels de données Y d'intégrité, étant le résultat de la fonction f d' intégrité appliquée sur lesdites données résultats de ladite opération OP.
10. Carte à puce comprenant une architecture matérielle selon l'une quelconque des revendications 6 à 9.
PCT/EP2006/064425 2005-07-19 2006-07-19 Integrite materielle permanente des donnees WO2007010009A2 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/989,122 US20090126029A1 (en) 2005-07-19 2006-07-19 Permanent Data Hardware Integrity
EP06764225A EP1904928A2 (fr) 2005-07-19 2006-07-19 Integrite materielle permanente des donnees
JP2008521968A JP4766285B2 (ja) 2005-07-19 2006-07-19 永久データハードウェアインテグリティ

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0552237 2005-07-19
FR0552237A FR2889005A1 (fr) 2005-07-19 2005-07-19 Integrite materielle permanente des donnees

Publications (2)

Publication Number Publication Date
WO2007010009A2 true WO2007010009A2 (fr) 2007-01-25
WO2007010009A3 WO2007010009A3 (fr) 2008-06-19

Family

ID=36325706

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/064425 WO2007010009A2 (fr) 2005-07-19 2006-07-19 Integrite materielle permanente des donnees

Country Status (5)

Country Link
US (1) US20090126029A1 (fr)
EP (1) EP1904928A2 (fr)
JP (1) JP4766285B2 (fr)
FR (1) FR2889005A1 (fr)
WO (1) WO2007010009A2 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010068135A (ja) * 2008-09-09 2010-03-25 Fujitsu Ltd 不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法
FR3071082A1 (fr) * 2017-09-14 2019-03-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur
FR3071121A1 (fr) * 2017-09-14 2019-03-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur
US10942868B2 (en) 2017-09-14 2021-03-09 Commissariat A L'energie Atomique Et Aux Energies Alternatives Execution process of binary code of function secured by microprocessor
US12039032B2 (en) 2021-05-10 2024-07-16 Commissariat à l'Energie Atomique et aux Energies Alternatives Method for the execution of a binary code by a microprocessor

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495757B2 (en) * 2010-04-22 2013-07-23 Hewlett-Packard Development Company, L.P. System and method for placing an electronic apparatus into a protected state in response to environmental data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5048024A (en) * 1989-09-06 1991-09-10 Unisys Corporation Partitioned parity check and regeneration circuit
FR2855286A1 (fr) * 2003-05-22 2004-11-26 Gemplus Card Int Transmission securisee de donnees entre deux modules

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH118616A (ja) * 1997-06-17 1999-01-12 Dainippon Printing Co Ltd 故障利用攻撃対応icカード
EP1501236B1 (fr) * 2003-07-24 2008-06-25 Hitachi, Ltd. Correction d'erreurs pour clés cryptographiques
US7546514B2 (en) * 2005-04-11 2009-06-09 Hewlett-Packard Development Company, L.P. Chip correct and fault isolation in computer memory systems
WO2007000701A2 (fr) * 2005-06-29 2007-01-04 Koninklijke Philips Electronics N. V. Dispositif et procede de protection de dispositif de traitement de donnees contre une attaque ou analyse

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5048024A (en) * 1989-09-06 1991-09-10 Unisys Corporation Partitioned parity check and regeneration circuit
FR2855286A1 (fr) * 2003-05-22 2004-11-26 Gemplus Card Int Transmission securisee de donnees entre deux modules

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DHEM J-F ET AL: "Hardware and software symbiosis helps smart card evolution" IEEE MICRO, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 21, no. 6, novembre 2001 (2001-11), pages 14-25, XP002275593 ISSN: 0272-1732 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010068135A (ja) * 2008-09-09 2010-03-25 Fujitsu Ltd 不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法
FR3071082A1 (fr) * 2017-09-14 2019-03-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur
FR3071121A1 (fr) * 2017-09-14 2019-03-15 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur
EP3457620A1 (fr) * 2017-09-14 2019-03-20 Commissariat à l'Énergie Atomique et aux Énergies Alternatives Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur
US10650151B2 (en) 2017-09-14 2020-05-12 Commissariat A L'energie Atomique Et Aux Energies Alternatives Method of execution of a binary code of a secure function by a microprocessor
US10942868B2 (en) 2017-09-14 2021-03-09 Commissariat A L'energie Atomique Et Aux Energies Alternatives Execution process of binary code of function secured by microprocessor
US12039032B2 (en) 2021-05-10 2024-07-16 Commissariat à l'Energie Atomique et aux Energies Alternatives Method for the execution of a binary code by a microprocessor

Also Published As

Publication number Publication date
JP4766285B2 (ja) 2011-09-07
US20090126029A1 (en) 2009-05-14
JP2009502070A (ja) 2009-01-22
FR2889005A1 (fr) 2007-01-26
EP1904928A2 (fr) 2008-04-02
WO2007010009A3 (fr) 2008-06-19

Similar Documents

Publication Publication Date Title
EP2842232B1 (fr) Procédé de contrôle de redondance cyclique protégé contre une attaque par canal auxiliaire
CA2034002C (fr) Procede pour verifier l&#39;integrite d&#39;un logiciel ou de donnees, et systeme pour la mise en oeuvre de ce procede
EP2280364B1 (fr) Détecteur d&#39;injection de fautes dans un circuit intégré
EP3457620A1 (fr) Procédé d&#39;exécution d&#39;un code binaire d&#39;une fonction sécurisée par un microprocesseur
EP1904946B1 (fr) Detection d&#39;une faute par perturbation longue
WO2007010009A2 (fr) Integrite materielle permanente des donnees
FR3033965A1 (fr)
FR2979443A1 (fr) Microcontroleur securise a base de mode
EP1774484B1 (fr) Enregistrement d&#39;une cle dans un circuit integre
EP1804161B1 (fr) Détection de perturbation dans un calcul cryptographique
EP3712795B1 (fr) Procédé d&#39;exécution, par un microprocesseur, d&#39;un code binaire comportant une fonction appelante et une fonction appelee
EP1832974A1 (fr) Protection EMA d&#39;un calcul par un circuit électronique
EP3610372B1 (fr) Procédé d&#39;exécution d&#39;un code machine d&#39;une fonction sécurisée
EP1337981A1 (fr) Procede de chargement et de personnalisation des informations et programmes charges dans une carte a puce
FR2879320A1 (fr) Carte a puce a circuit integre et procede pour detecter si des donnees en memoire dans une telle carte ont ete compromises
FR2923923A1 (fr) Verification de donnees lues en memoire
WO1997025668A1 (fr) Coprocesseur d&#39;arithmetique modulaire comportant un circuit de division entiere
FR2788649A1 (fr) Procede de chargement securise de donnees entre des modules de securite
EP2466506A1 (fr) Procédé dynamique de contrôle de l&#39;intégrité de l&#39;exécution d&#39;un code exécutable
FR2830146A1 (fr) Procede de mise en oeuvre, dans un composant electronique, d&#39;un algorithme de cryptographie et composant correspondant
FR3035240A1 (fr) Procede de securisation de l&#39;execution d&#39;un programme
EP2343663A1 (fr) Procédé de protection polymorphe d&#39;un code exécutable
EP4089557B1 (fr) Procédé d&#39;exécution d&#39;un code binaire par un microprocesseur
EP1818846A1 (fr) Vérification d&#39;intégrité de programmes ou de séquencement d&#39;une machine d&#39;états
EP3153961A1 (fr) Procédé et système de sauvegarde répartie dynamique

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2008521968

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2006764225

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Country of ref document: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 06764225

Country of ref document: EP

Kind code of ref document: A2

WWP Wipo information: published in national office

Ref document number: 2006764225

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11989122

Country of ref document: US

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