WO2007010009A2 - Integrite materielle permanente des donnees - Google Patents
Integrite materielle permanente des donnees Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding 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
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008521968A JP4766285B2 (ja) | 2005-07-19 | 2006-07-19 | 永久データハードウェアインテグリティ |
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 |
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)
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)
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 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5048024A (en) * | 1989-09-06 | 1991-09-10 | Unisys Corporation | Partitioned parity check and regeneration circuit |
JPH118616A (ja) * | 1997-06-17 | 1999-01-12 | Dainippon Printing Co Ltd | 故障利用攻撃対応icカード |
FR2855286B1 (fr) * | 2003-05-22 | 2005-07-22 | Gemplus Card Int | Transmission securisee de donnees entre deux modules |
DE60321783D1 (de) * | 2003-07-24 | 2008-08-07 | Hitachi Ltd | Fehlerkorrektur für kryptographische Schlüssel |
US7546514B2 (en) * | 2005-04-11 | 2009-06-09 | Hewlett-Packard Development Company, L.P. | Chip correct and fault isolation in computer memory systems |
US20100287384A1 (en) * | 2005-06-29 | 2010-11-11 | Koninklijke Philips Electronics, N.V. | Arrangement for and method of protecting a data processing device against an attack or analysis |
-
2005
- 2005-07-19 FR FR0552237A patent/FR2889005A1/fr not_active Withdrawn
-
2006
- 2006-07-19 WO PCT/EP2006/064425 patent/WO2007010009A2/fr active Application Filing
- 2006-07-19 JP JP2008521968A patent/JP4766285B2/ja not_active Expired - Fee Related
- 2006-07-19 US US11/989,122 patent/US20090126029A1/en not_active Abandoned
- 2006-07-19 EP EP06764225A patent/EP1904928A2/fr not_active Withdrawn
Cited By (7)
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 |
FR2889005A1 (fr) | 2007-01-26 |
EP1904928A2 (fr) | 2008-04-02 |
JP2009502070A (ja) | 2009-01-22 |
WO2007010009A3 (fr) | 2008-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3457620B1 (fr) | Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur | |
EP2842232B1 (fr) | Procédé de contrôle de redondance cyclique protégé contre une attaque par canal auxiliaire | |
EP2280364B1 (fr) | Détecteur d'injection de fautes dans un circuit intégré | |
EP1904946B1 (fr) | Detection d'une faute par perturbation longue | |
EP1904928A2 (fr) | Integrite materielle permanente des donnees | |
FR3033965A1 (fr) | ||
EP3610372B1 (fr) | Procédé d'exécution d'un code machine d'une fonction sécurisée | |
EP3502899A1 (fr) | Procédé de détermination d'une somme d'intégrité, programme d'ordinateur et entité électronique associés | |
EP1774484B1 (fr) | Enregistrement d'une cle dans un circuit integre | |
EP1983436B1 (fr) | Contrôle d'intégrité d'une mémoire externe à un processeur | |
EP1832974A1 (fr) | Protection EMA d'un calcul par un circuit électronique | |
EP3712795B1 (fr) | Procédé d'exécution, par un microprocesseur, d'un code binaire comportant une fonction appelante et une fonction appelee | |
EP1449067B1 (fr) | Securisation d'un generateur pseudo-aleatoire | |
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 | |
EP1012703A1 (fr) | Coprocesseur d'arithmetique modulaire comportant un circuit de division entiere | |
FR2788649A1 (fr) | Procede de chargement securise de donnees entre des modules de securite | |
EP3284206B1 (fr) | Procédé de sécurisation de l' exécution d'un programme | |
WO2012080139A1 (fr) | Procede dynamique de controle de l'integrite de l'execution d'un code executable | |
FR2830146A1 (fr) | Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant | |
EP2343663A1 (fr) | Procédé de protection polymorphe d'un code exécutable | |
EP4089557B1 (fr) | Procédé d'exécution d'un code binaire par un microprocesseur | |
EP1818846A1 (fr) | Vérification d'intégrité de programmes ou de séquencement d'une machine d'états | |
EP3153961A1 (fr) | Procédé et système de sauvegarde répartie dynamique | |
WO2010066478A1 (fr) | Procédé de sécurisation de l'utilisation parcellaire d'une donnée numérique |
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 |