EP1904928A2 - Integrite materielle permanente des donnees - Google Patents
Integrite materielle permanente des donneesInfo
- Publication number
- EP1904928A2 EP1904928A2 EP06764225A EP06764225A EP1904928A2 EP 1904928 A2 EP1904928 A2 EP 1904928A2 EP 06764225 A EP06764225 A EP 06764225A EP 06764225 A EP06764225 A EP 06764225A EP 1904928 A2 EP1904928 A2 EP 1904928A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- word
- integrity
- bits
- hardware
- 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
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.
- checksum checksum
- the addition of integrity data is widespread in software layers, for example for data transmission.
- the hardware (hardware) checksum as found in the prior art is implemented only at the level of a memory block, it often takes the name of "parity bit”.
- the word individual machine (8 bits of an 8-bit component) is stored in 9-bit memory, the 9 th bit being a parity bit set so that the parity of the word is systematically even / odd.
- 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
- said hardware resources comprise at least one unit of logic and arithmetic (ALU), said ALU:
- 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.
- an instruction for example a bytecode in the case of an interpreted language
- an instruction register 14 is transmitted and then stored in an instruction register 14.
- the transmission and storage are also achieved by working on the word machine X
- an instruction decoder 15 interprets the instruction from the word or words Z machines contained in the registers 14 and transmits the information to command lines after a new verification of the integrity of the data by a control block 13.
- 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.
- an OP algorithm is a known Montgomery modular multiplication algorithm.
- 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
- Integrity checking fails, other than during one or more fault attacks, in one case: when the two results obtained in parallel, namely the data resulting from the modular multiplication of Montgomery and those resulting from the function d integrity, are reset to the initial values, that is, all bytes are set to the value "OxOO". However, the datum zero then carries no significant information seen especially from an attacker.
- the modified Montgomery modular algorithm according to the invention then proceeds as follows:
- a processing of the digital data X associated with the integrity data Y, in general, of the hardware word Z can be a reading and / or writing in memory, a manipulation within a processing unit, a transfer from the word Z hardware via a clean bus the resources of the electronic circuit. It should be noted that the correspondence between the present notation and the notation used, generically, previously is as follows:
- Such an RSA calculation is performed for example in order to accelerate the hardware implementation of the RSA cryptography calculation.
- An operation OP identical to OP ' is chosen, for example an arithmetic addition.
- the operations on the software words Xi and on the integrity data Yi are performed in parallel.
- the final circuit is as fast as in a version where the data is not protected by integrity information.
- the material realization of the ALU 21 unit (just like all the material elements) requires a larger quantity of silicon (proportional to the ratio between X and Y) for equivalent performances.
- ALU 21 With reference to FIG. 4, another embodiment of the ALU 21 is proposed.
- the integrity of the input data Z 1 and Z 2 is verified by two control blocks 13. Only the software words Xi and X 2 are used for the calculation of X by the OP operation. Then a calculation of the integrity data Y is carried out by applying the function f on the result software word X.
- the ALU unit 21 thus provides a hardware word X
- a set of hardware gates can be used to apply the f function to the software word to compute the integrity information.
- This embodiment is less secure because the output integrity data is recalculated from the software word X resulting from the operation. There is therefore no way to detect an error during the OP operation.
- 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
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0552237A FR2889005A1 (fr) | 2005-07-19 | 2005-07-19 | Integrite materielle permanente des donnees |
| PCT/EP2006/064425 WO2007010009A2 (fr) | 2005-07-19 | 2006-07-19 | Integrite materielle permanente des donnees |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1904928A2 true EP1904928A2 (fr) | 2008-04-02 |
Family
ID=36325706
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP06764225A Withdrawn EP1904928A2 (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) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5261088B2 (ja) * | 2008-09-09 | 2013-08-14 | 富士通株式会社 | 不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法 |
| 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 |
| FR3071121B1 (fr) * | 2017-09-14 | 2020-09-18 | Commissariat Energie Atomique | Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur |
| FR3071082B1 (fr) * | 2017-09-14 | 2020-09-18 | Commissariat Energie Atomique | Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur |
| FR3071122B1 (fr) | 2017-09-14 | 2019-09-13 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur |
| FR3122753B1 (fr) | 2021-05-10 | 2024-03-15 | Commissariat Energie Atomique | Procédé d'exécution d'un code binaire par un microprocesseur |
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 |
| 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 |
| CN101213512A (zh) * | 2005-06-29 | 2008-07-02 | 皇家飞利浦电子股份有限公司 | 保护数据处理设备以抵御攻击或分析的装置和方法 |
-
2005
- 2005-07-19 FR FR0552237A patent/FR2889005A1/fr not_active Withdrawn
-
2006
- 2006-07-19 WO PCT/EP2006/064425 patent/WO2007010009A2/fr not_active Ceased
- 2006-07-19 EP EP06764225A patent/EP1904928A2/fr not_active Withdrawn
- 2006-07-19 US US11/989,122 patent/US20090126029A1/en not_active Abandoned
- 2006-07-19 JP JP2008521968A patent/JP4766285B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
| Title |
|---|
| See references of WO2007010009A2 * |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2009502070A (ja) | 2009-01-22 |
| JP4766285B2 (ja) | 2011-09-07 |
| WO2007010009A2 (fr) | 2007-01-25 |
| US20090126029A1 (en) | 2009-05-14 |
| WO2007010009A3 (fr) | 2008-06-19 |
| FR2889005A1 (fr) | 2007-01-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2842232B1 (fr) | Procédé de contrôle de redondance cyclique protégé contre une attaque par canal auxiliaire | |
| EP3457620B1 (fr) | Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur | |
| EP0434551B1 (fr) | Procédé de génération d'un nombre aléatoire dans un système de traitement de données, et système mettant en oeuvre un tel procédé | |
| FR3033965A1 (fr) | ||
| EP3610372B1 (fr) | Procédé d'exécution d'un code machine d'une fonction sécurisée | |
| FR2979443A1 (fr) | Microcontroleur securise a base de mode | |
| EP1774484B1 (fr) | Enregistrement d'une cle dans un circuit integre | |
| EP3502899A1 (fr) | Procédé de détermination d'une somme d'intégrité, programme d'ordinateur et entité électronique associés | |
| EP1983436B1 (fr) | Contrôle d'intégrité d'une mémoire externe à un processeur | |
| EP1904946B1 (fr) | Detection d'une faute par perturbation longue | |
| EP3712795B1 (fr) | Procédé d'exécution, par un microprocesseur, d'un code binaire comportant une fonction appelante et une fonction appelee | |
| EP1904928A2 (fr) | Integrite materielle permanente des donnees | |
| EP1449067B1 (fr) | Securisation d'un generateur pseudo-aleatoire | |
| WO2002041267A1 (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 | |
| EP2466506A1 (fr) | Procédé dynamique de contrôle de l'intégrité de l'exécution d'un code exécutable | |
| 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 | |
| EP4328771A1 (fr) | Procédé d'exécution d'un code machine par un calculateur | |
| FR2830146A1 (fr) | Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant | |
| FR3035240A1 (fr) | Procede de securisation de l'execution d'un programme | |
| 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 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20080131 |
|
| AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL BA HR MK YU |
|
| R17P | Request for examination filed (corrected) |
Effective date: 20080122 |
|
| RAX | Requested extension states of the european patent have changed |
Extension state: RS Extension state: MK Extension state: HR Extension state: BA Extension state: AL |
|
| RBV | Designated contracting states (corrected) |
Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR |
|
| R17D | Deferred search report published (corrected) |
Effective date: 20080619 |
|
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: H03M 13/05 20060101ALI20080626BHEP Ipc: G06F 11/10 20060101AFI20080626BHEP |
|
| 17Q | First examination report despatched |
Effective date: 20090114 |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: GEMALTO SA |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| DAX | Request for extension of the european patent (deleted) | ||
| 18D | Application deemed to be withdrawn |
Effective date: 20120222 |