WO2005109742A1 - Procédé de traitement de données sécurisé et dispositif associé - Google Patents

Procédé de traitement de données sécurisé et dispositif associé Download PDF

Info

Publication number
WO2005109742A1
WO2005109742A1 PCT/FR2005/000905 FR2005000905W WO2005109742A1 WO 2005109742 A1 WO2005109742 A1 WO 2005109742A1 FR 2005000905 W FR2005000905 W FR 2005000905W WO 2005109742 A1 WO2005109742 A1 WO 2005109742A1
Authority
WO
WIPO (PCT)
Prior art keywords
datum
value
execution
memory area
mac
Prior art date
Application number
PCT/FR2005/000905
Other languages
English (en)
Inventor
Hugues Thiebeauld De La Crouee
Christophe Giraud
Original Assignee
Oberthur Card Systems Sa
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
Priority claimed from FR0404225A external-priority patent/FR2869485B1/fr
Application filed by Oberthur Card Systems Sa filed Critical Oberthur Card Systems Sa
Priority to US11/578,670 priority Critical patent/US8788847B2/en
Publication of WO2005109742A1 publication Critical patent/WO2005109742A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards

Definitions

  • the present invention relates to a secure data processing method.
  • the invention also relates to a device associated with this type of process.
  • data such as a cryptographic key or a certificate is frequently used during the implementation of a secure algorithm whose purpose is to protect access to certain protected functionalities. If, by observing a physical quantity or a result after fault generation, we can deduce the value of this data, the operation is no longer secured.
  • These secure systems are thus the object of attack by generation of fault, in which the attacker seeks to disrupt a step of preparing the data so that it takes on a predictable value, for example the initialization value of the memory. concerned. Without specific measures, system security is no longer guaranteed.
  • An example of such a system is a microcircuit card which receives for the execution of an operation not only a command code (instruction coded according to a certain standard or language), but also a code authentication code. (or MAC from the English "Message Authentication Code") which allows the microcircuit card to verify that the command is authorized.
  • the microcircuit card applies a cryptographic algorithm using a secret key to the command code in order to to obtain the authentication code normally associated with this command, and stores this authentication code in a buffer memory for later comparison with the authentication code received by the card with the command message. A comparison of the code thus calculated by the card and of the code received will thus make it possible to verify that the user who has supplied the authentication code received is indeed authorized to carry out the operation concerned.
  • the invention proposes a secure data processing method, characterized in that 'it includes the following steps: - filling a memory area with a filling value; - writing of the first data in this area; - Reading in this zone of a second datum resuming at least part of the first datum as it was written in this zone; - execution of an operation using the second datum.
  • the second datum takes over the portion of the first datum identically.
  • the fill value can be a random value.
  • a random value a value generated by a process which tends to make it unpredictable, such as the values generated within secure microcontrollers for smart cards (thanks to resources, for example hardware, provided by the designer of the microcontroller) , or more generally within computer systems; this type of value is sometimes called "pseudo-random".
  • the method comprises for example a step of executing a protected operation in the event of positive verification.
  • the method comprises a step of calculating the first datum.
  • said memory area is unchanged until the step of calculating the first datum.
  • the calculation of the first data item includes, for example, a step of applying a secret key cryptographic algorithm. This technique is particularly practical.
  • the method comprises a step of comparing the second datum with an authentication code.
  • the method comprises a step of reading the first data on an information medium.
  • said memory area is unchanged until the step of reading the first data item on the information medium.
  • the method comprises the following steps: - reception of a control code and an authentication code; - calculation of the first data by applying a cryptographic algorithm with a secret key to the control code; - comparison of the second datum to the authentication code; - execution of the operation corresponding to the command code if the comparison is positive.
  • the operation using the second datum is a transmission of the second datum.
  • the invention therefore proposes a method for securing a protected operation, characterized in that it comprises the following steps: - filling of a memory area with a filling value; - writing in this area of data conditioning the future execution of the protected operation.
  • the method comprises a step of calculating said data conditioning the execution by means of a cryptographic algorithm.
  • the method comprises a step of reading said data conditioning the execution on an information medium.
  • the invention also proposes a device suitable for secure data processing, characterized in that it comprises: - means for filling a memory area with a filling value; - means for writing a first datum in this zone; - Means for reading in this zone a second datum comprising at least a part of the first datum as it was written in this zone; - means for executing an operation using the second datum.
  • the device can include characteristics equivalent to the optional characteristics of the method described above, and thus the advantages which flow from each.
  • the device can be a microcircuit card.
  • the invention provides a device capable of securing the execution of a protected operation, characterized in that it comprises: - means for filling a memory area with a filling value; - Means for writing data in this area conditioning the future execution of the protected operation.
  • the invention provides a computer program comprising instructions capable of implementing the method described above, when said instructions are executed by a microprocessor.
  • FIG. 1a schematically represents a data processing device incorporating a first embodiment of the invention
  • FIG. 1b shows a possible embodiment of the device of Figure 1a
  • - Figure 2 illustrates a method according to the first embodiment of the invention in normal operation
  • - Figure 3 illustrates the method according to this first mode when it undergoes an attack by generation of faults
  • - Figure 4 schematically shows devices involved in a second embodiment of the invention
  • - Figure 5 illustrates a method according to the second embodiment of the invention in normal operation
  • - Figure 6 illustrates a method according to the second embodiment of the invention when it undergoes an attack by fault generation
  • - Figure 7 schematically shows devices involved in a third embodiment of the invention
  • - Figure 8 illustrates a method according to the third embodiment of the invention in normal operation.
  • FIG. 1a schematically represents a data processing device 40 in which the present invention is implemented.
  • This device 40 comprises a microprocessor 10, with which a memory 20 can be associated, for example by means of a bus 50.
  • the data processing device 40 and precisely the microprocessor 10 which it incorporates, can exchange data with external devices by means of a communication interface 30.
  • FIG. 1a schematically shows the transmission of the CMD and MAC input data received from an external device (not shown) and transmitted from the communication interface 30 to microprocessor 10. Similarly, the transmission of an output data item S from the microprocessor 10 to the communication interface 30 intended for an external device has been shown.
  • the physical means which allow the communication between the microprocessor 10 and the interface 30 could be realized by means unique, for example a serial communication port or a bus.
  • the microprocessor 10 is capable of executing software which allows the data processing device 40 to execute a method according to the invention, an example of which will be given later.
  • the software is composed of a series of control instructions for the microprocessor 10 which are for example stored in the memory 20.
  • the microprocessor 10 - memory 20 assembly can be replaced by a circuit for specific application which then comprises means of implementing the different stages of the security process.
  • FIG. 1b shows a microcircuit card which constitutes a data processing device according to the invention as shown in Figure 1a.
  • the communication interface 30 is in this case produced by means of the contacts of the microcircuit card.
  • the microcircuit card incorporates a microprocessor 10 and a memory 20 as shown in FIG. 1a.
  • FIG. 2 represents in the form of a flowchart the steps of a first example of a security method according to the invention. The method is initiated by the reception of CMD and MAC input data by the microprocessor 10 by means of the communication interface 30. This input data is for example received from an external device which wishes to perform a protected operation at within the device 40.
  • the input data CMD defines a command code associated with the protected operation, that is to say that it defines which operation the microprocessor 10 must perform.
  • the MAC input data is itself a message authentication code (in English "message authentication code", hence the name MAC), the validity of which conditions the execution of the protected operation.
  • the MAC message authentication code is generally obtained from the CMD command code by means of a secret key cryptographic algorithm and typically a hash function such as MD5 or SHA- 1.
  • the input data CMD and MAC are saved as soon as they are received, for example in memory 20.
  • the reception and storage (or storage) of the input data CMD, MAC are represented in FIG. 2 by step E202.
  • the following steps make it possible to verify that the MAC authentication code does indeed correspond to the CMD command code received and thus that the latter has indeed been issued by an authorized entity. This verification is secured against attacks by fault generation as will appear more particularly in the part of the description relating to FIG. 3.
  • the microprocessor 10 has received and saved the memory data CMD and MAC in the memory 20, it generates a random value A in step E204.
  • the random value A is then saved in a MAC buffer memory (sometimes called "buffet").
  • the microprocessor 210 commands the writing of the random value A in the MAC buffer memory.
  • the MAC buffer memory (which is therefore a memory area, for example a memory area 20) is used in the following to store a calculated authentication code, as described in detail below.
  • step E208 in which the message authentication code corresponding to the received CMD control code is calculated, by means of a cryptographic algorithm F which uses a secret key K stored on the device 40, for example within the memory 20.
  • a cryptographic algorithm F which uses a secret key K stored on the device 40, for example within the memory 20.
  • a hashing algorithm is used, typically an MD5 or SHA-1 algorithm.
  • the result of the cryptographic calculation is then stored in the MAC buffer memory where it replaces the initialization random value A.
  • the microprocessor 210 controls the writing of the result of the cryptographic calculation in the MAC buffer memory provided for this purpose.
  • the steps E206 and E208 can optionally be separated by other steps of operation of the system; this separation also makes it possible to increase the security of the system since it is more difficult in this case to carry out an attack by generation of fault on the two stages.
  • the cryptographic algorithm F and the secret key K used in step E208 correspond to those which have been used by the external device which requests the execution of the secure operation for the generation of the input data MAC. So if the outdoor device is allowed to request the execution of the protected operation designated by the command code CMD, it is in possession of the secret key K and can thus provide the valid MAC authentication code. In this case, the calculated MAC authentication code is equal to the received MAC code.
  • step E210 which therefore implies in particular the reading of the MAC buffer memory, then makes it possible to proceed to step E212 in which the protected operation associated with the command code CMD is carried out.
  • the external device which supplied the CMD and MAC input data is not authorized to carry out the protected operation associated with the CMD command code, it is generally not able to supply a code d correct MAC authentication without knowledge of the secret key K.
  • the authentication code received MAC is therefore different from the calculated authentication code (read in the MAC buffer in step E210) which, in turn, results from the application of the cryptographic algorithm F with knowledge of the secret key K.
  • the microprocessor 10 can also issue an error message or control the blocking of subsequent operation, depending on the applications.
  • the device 40 receives in step E302 a command code CMD which corresponds to a protected operation and an authentication code of the MAC message that is not valid, for example of zero value.
  • the microprocessor proceeds to step E304 of calculating a random value A, as previously described in step E204 of FIG. 2.
  • the random value A is stored in a MAC buffer memory in a step E306 identical to step E206 of FIG. 2.
  • the next step is the particularly sensitive operation of calculation of the MAC authentication code which corresponds to the command code CMD by means of the cryptographic algorithm F and the secret key K (step E308).
  • step E308 If a fault generation attack is applied during the performance of step E308 within the microprocessor 10, there is a significant probability that this step will not be performed correctly and that the MAC buffer memory will not be modified as it should be (see description relating to Figure 2).
  • the objective of attackers is naturally that the buffer memory thus remains at its initialization value, which would be without the steps E304 and E306 the zero value that is generally found in the memories at their initialization, for example before modification for non-volatile memories and after reservation for volatile memories. Indeed, there would thus be equality between the invalid MAC authentication code received in step E302 and the value stored as being the authentication code calculated in step E308, which would thus lead to the realization of the protected operation defined by the CMD command code with an invalid MAC authentication code.
  • step E304 and E306 of initialization of the MAC buffer memory make it possible to fix the prior value of the buffer memory at an unpredictable value.
  • FIG. 4 shows a second embodiment of a device 140 according to the teachings of the invention.
  • the device 140 for example a memory card, comprises a microprocessor 110 associated by means of a bus 150 on the one hand to a volatile memory 120 and on the other hand to a non-volatile memory 160.
  • the random access memory is by example a memory of the type called according to the English acronym RAM (for "Random Access Memory").
  • the read only memory 160 is for example of the electrically erasable and programmable type, generally called according to the English acronym EEPROM (for "Electrically Erasable Programmable Read Only Memory”) and / or of the ROM type (for "Read Only Memory”).
  • the microprocessor 110 is able, for example by means of instructions stored in the non-volatile memory 160, to execute methods and in particular the method according to the invention described with reference to FIG. 5.
  • the device 140 communicates with a device external 180 by means of an interface 130.
  • the external device 180 also has an interface 190 connected to the interface 130 of the device 140.
  • a controller 170 (for example of the microprocessor type or microcontroller) is able to process the information received from the interface 190 and to transmit the processed information to the device 140 still using the interface 190.
  • FIG. 4 schematically shows the transfer of information A2 from the device 140 to the external device 180. Specifically, the information A2 is generated within the microprocessor 110, then transmitted by the latter by the interface 130. L information A2 is thus communicated to the external device via the interface 130 of the device 140, then the interface 190 of the device 180, and thereby reaches the controller 170 as also shown in FIG. 4. According to the reverse method, information C emitted by the controller 170 can be transmitted to the microprocessor 110 via the interfaces 190 then 130 as shown in FIG. 4.
  • FIG. 5 represents a process for authenticating the external device 180 as a device authorized to control the execution of a protected operation within the device 140. To simplify the presentation, FIG. 5 is limited to the process for authenticating the device external 180 by the device 140 and does not mention the prior steps by which the external device 180 makes a request in order to perform the protected operation.
  • the authentication process begins at step E502 where the microprocessor 110 generates a random value A2. The random value A2 generated is then transmitted to the external device 180 during a step E504.
  • This step naturally uses the interfaces 130 and 190 as described above.
  • the external device 180 proceeds to a step E522 of calculating an encrypted datum C by application of a cryptographic algorithm F using a secret key K to the random value A2 received.
  • This calculation is for example carried out within the controller 170. As we will see below, this calculation makes it possible to ensure that the external device 180 has the secret key K (and therefore the authorization to perform the protected operation), without this verification requiring the transmission of the secret key K itself.
  • the encrypted data C calculated by the external device 180 is then transmitted to the device 140 by means of the interfaces 190 and 130 as described in FIG. 4.
  • the device 140 and more particularly its microprocessor 110, therefore receive in step E506 the encrypted datum C as it has been calculated by the external device 180.
  • the microprocessor 110 will verify that this encrypted datum C was indeed obtained by application of the cryptographic algorithm F with knowledge of the secret key K. As will be described precisely, this verification is protected by the invention against attacks by generation of fault.
  • the microprocessor 110 generates in step E508 a new random value A1.
  • the new random value A1 is preferably independent of the random value A2 which has been communicated outside the device 140.
  • independent random values is meant random values, one of which is not predictable from the other.
  • step E510 the microprocessor 110 commands the writing of the random value A1 in a BUF area of the volatile memory 120, that is to say the filling of the BUF area with the random variable A1 .
  • This type of memory area which is used as we will see below to perform certain calculations is sometimes called by the English term "buffer", generally translated by buffer memory.
  • buffer generally translated by buffer memory.
  • Such a memory area is generally characterized by an address in the memory, which corresponds to a variable in certain programming languages.
  • the memory area BUF is therefore initialized with the random value A1, that is to say with an unpredictable value.
  • step E512 in which the secret key K stored in non-volatile memory 160 is copied into the memory area BUF of the random access memory 120 in order to carry out the calculations which follow and which use the secret key K.
  • the secret key K is present in volatile memory 120, it is possible to proceed to step E514 to the calculation by the microprocessor 110 of an encrypted datum C by application of the cryptographic algorithm F with the secret key K has the random value A2.
  • the value present in the BUF memory zone during application is naturally used as a secret key. of the cryptographic algorithm F.
  • Step E514 therefore includes a sub-step for reading the value stored in the BUF area. In normal operation as described in FIG.
  • step E516 the encrypted data C and C are equal, the execution of the protected operation requested by the step is carried out in step E518 device 180 external to device 140, which may consist, for example, of personalizing device 140 by copying certain data transmitted by external device 180.
  • step E516 if it is determined in step E516 that the encrypted data received from the external device 180 is not equal to the encrypted data C calculated in step E514, this means that the external device 180 was not able to carry out the cryptographic algorithm F with the secret key K, and that the external device 180 is therefore not authorized to carry out the protected operation. In this case, therefore, we go to step E520 in which the protected operation will not be carried out.
  • the use of the random value A2 by nature unpredictable, to which the external device 180 must apply the cryptographic algorithm F with the secret key K makes it possible to verify that the external device has good knowledge of the secret key K without require the transfer of the secret key K itself, which would greatly compromise the security of such a system.
  • step E602 the calculation of the random value A2 as already described in step E502.
  • the random value A2 is then sent to the external device 180 (here the attacker) at a step E604 equivalent to step E504 of FIG. 5.
  • the attacking device receives the random value A2, but of course cannot perform the cryptographic algorithm using the secret key K, since it has no knowledge of the latter.
  • the attacking device will therefore apply in a step E622 the cryptographic algorithm F to the value A2 using as secret key a predetermined value I, which corresponds for example to the current initialization value of the random access memories (in general the value zero; in some cases, the value FF in hexadecimal).
  • a predetermined value I which corresponds for example to the current initialization value of the random access memories (in general the value zero; in some cases, the value FF in hexadecimal).
  • the attacker indeed hopes to generate a fault during the verification process carried out by the microprocessor 110 so that the verification takes place with this same value I in place of the secret key K.
  • La encrypted data C calculated by the attacker using the value I is then sent to the device 140 as normally provided for by the authentication process.
  • the encrypted data C is therefore received by the microprocessor 110.
  • the volatile memory area BUF 120 is initialized with a random value A1, which is therefore unpredictable.
  • step E608 the microprocessor 110 generates the random value A1 in step E608 and writes this random value A1 in the memory area BUF in step E610.
  • the authentication process must then continue in step E612 by the copying of the secret key K stored in the non-volatile memory 160 in the memory area BUF.
  • Step E612 is however the subject of an attack by generation of fault, since the attacker wishes to have the cryptographic algorithm carried out with a value to which he has access, such as for example the value I of initialization of the memory volatile.
  • the result of the attack of step E612, which is therefore not normally carried out is that the memory area BUF, in which the secret key K was to be written, is unchanged.
  • step E614 of calculating the encrypted data C.
  • this step which applies in theory the cryptographic algorithm F at the random value A2 using the secret key K, consists in practice of reading the content of the memory area BUF and applying the cryptographic algorithm F using the value read in the memory BUF as secret key.
  • the calculation performed is in fact the application of the cryptographic algorithm F with the secret key the random value A1 to the random value A2 .
  • step E614 The result (that is to say the encrypted datum) C of this step E614 is therefore highly unpredictable, and in the very general case will not be equal to the encrypted datum C calculated within the external device 180. Consequently, during step E616 of verifying the equality of the encrypted data C and C (equivalent to step E516 of FIG. 5), the equality will not be verified and the protected operation will therefore be prohibited, as shown in step E620.
  • step E616 of verifying the equality of the encrypted data C and C (equivalent to step E516 of FIG. 5)
  • the equality will not be verified and the protected operation will therefore be prohibited, as shown in step E620.
  • the attack by fault generation leads to using the random value A1 instead of the secret key K, which maintains the impossibility of d '' fraudulently obtain authorization to carry out the protected transaction.
  • FIG. 7 shows a third embodiment of the invention.
  • a device 240 comprises a microprocessor 210 connected to a memory 220 by means of a bus, as well as an interface 230 which allows the microprocessor 210 to enter into connection with an external device, for example a microcircuit card 250.
  • the card microcircuit 250 also includes a microprocessor
  • FIG. 8 represents, in the form of a flowchart, a method in accordance with the teachings of the invention and implemented by the device 240. This method makes it possible to record within the memory card 250 a secret individual key k1 which is generated according to a secure method from a secret key K memorized within the device 240, which is for example in this case a root card (also called batch card, in English "root card” or "batch card”). The transaction is controlled by a computer, not shown.
  • the method according to the invention begins with a step E802 in which the microprocessor 210 generates a random value A.
  • the random value A is stored in an area BUF of the memory 220 intended for the storage of the individual key k1 to be stored in the card 250.
  • the memory area BUF is initialized with an unpredictable value A.
  • the individual key k1 is calculated using a cryptographic algorithm F using the secret key K.
  • the input data kO of the cryptographic algorithm is for example an individual key previously generated. The calculation uses the BUF memory area, in particular for storing its result k1.
  • the method then continues with a step E808 of transmitting the individual key k1 which has just been calculated for the memory card 250. More specifically, the microprocessor 210 reads the value of the memory area BUF and transmits it to the by means of the interface 230 to the memory card 250. It is noted that, in a manner analogous to what has been explained for the first and second embodiments, the initialization of the memory area BUF with an unpredictable value A makes it ineffective any attack by generation of fault in the cryptographic calculation step (here the cryptographic calculation step E806 which stores the result in the memory area BUF).
  • the random value A, A1 could be replaced by a non deterministic value known to the attacker and thus allow attacks to be thwarted.
  • the authentication counter such as that used in SIM cards (commonly used acronym from the English "Subscriber Identity Module") to limit the total number of authentications performed by a card during its lifetime.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Image Generation (AREA)

Abstract

L'invention concerne un procédé de traitement de données sécurisé, caractérisé en ce qu'il comprend les étapes suivantes - remplissage (E206) d'une zone (MAC') de mémoire par une valeur de remplissage (A) ; - écriture (E208) d'une première donnée dans cette zone (MAC') ; - lecture dans cette zone (E210) d'une seconde donnée reprenant au moins une partie de la première donnée telle qu'elle a été écrite dans cette zone mémoire (MAC') ; - exécution d'une opération (E210) utilisant la seconde donnée.

Description

Procédé de traitement de données sécurisé et dispositif associé
La présente invention concerne un procédé de traitement de données sécurisé. L'invention concerne également un dispositif associé à ce type de procédé. Dans le domaine du traitement d'informations sécurisé, on utilise fréquemment des données telles qu'une clé cryptographique ou un certificat au cours de la mise en œuvre d'un algorithme sécurisé dont le but est de protéger l'accès à certaines fonctionnalités protégées. Si, par l'observation d'une grandeur physique ou d'un résultat après génération de faute, on peut déduire la valeur de ces données, la sécurisation de l'opération n'est plus assurée. Ces systèmes sécurisés sont ainsi l'objet d'attaques par génération de faute, dans lesquelles l'attaquant cherche à perturber une étape de préparation des données afin que celles-ci prennent une valeur prévisible, par exemple la valeur d'initialisation de la mémoire concernée. Sans mesure spécifique, la sécurité du système n'est alors plus assurée. Un exemple d'un tel système est une carte à microcircuit qui reçoit pour l'exécution d'une opération non seulement un code de commande (instruction codée selon une certaine norme ou langage), mais également un code d'authentification du code de commande (ou MAC de l'anglais "Message Authentication Code") qui permet à la carte à microcircuit de vérifier que la commande est autorisée. En fonctionnement normal, la carte à microcircuit applique un algorithme cryptographique utilisant une clé secrète au code de commande afin d'obtenir le code d'authentification normalement associé à cette commande, et stocke ce code d'authentification dans une mémoire tampon pour le comparer ultérieurement au code d'authentification reçu par la carte avec le message de commande. Une comparaison du code ainsi calculé par la carte et du code reçu permettra ainsi de vérifier que l'utilisateur qui a fourni le code d'authentification reçu est bien autorisé à effectuer l'opération concernée. Toutefois, dans les systèmes connus, si un attaquant réussit à perturber le stockage du code calculé par l'algorithme cryptographique afin que la mémoire tampon ne soit pas modifiée et demeure ainsi à sa valeur d'initialisation (par exemple à la valeur nulle), il pourra facilement forcer l'exécution de l'opération protégée en transmettant à la carte à microcircuit un code d'authentification égal à la valeur d'initialisation, qui permettra alors une comparaison positive entre le code reçu et le code calculé, et ainsi l'exécution de l'opération sans autorisation véritable. Afin de contrecarrer ce type d'attaque dans les systèmes qui utilisent au cours d'une opération particulièrement sensible une information écrite en mémoire au cours d'une étape précédente, l'invention propose un procédé de traitement de données sécurisé, caractérisé en ce qu'il comprend les étapes suivantes : - remplissage d'une zone de mémoire par une valeur de remplissage ; - écriture d'une première donnée dans cette zone ; - lecture dans cette zone d'une seconde donnée reprenant au moins une partie de la première donnée telle qu'elle a été écrite dans cette zone ; - exécution d'une opération utilisant la seconde donnée. Naturellement, en fonctionnement normal, la seconde donnée reprend la partie de la première donnée à l'identique. Au contraire, lorsque ce procédé est perturbé par une faute générée par un attaquant et que l'écriture de la première donnée n'est pas réalisée, la seconde donnée est égale à une partie au moins de la valeur de remplissage, qui diffère de la valeur d'initialisation de la mémoire et est inconnue de l'attaquant, et demeure par conséquent imprévisible pour l'attaquant. Afin d'améliorer encore la sécurité du système, la valeur de remplissage peut être une valeur aléatoire. On considère ici comme valeur aléatoire une valeur générée par un procédé qui tend à la rendre imprévisible, telles que les valeurs générées au sein des microcontrôleurs sécurisés pour carte à puce (grâce à des ressources, par exemple matérielles, prévues par le concepteur du microcontrôleur), ou plus généralement au sein des systèmes informatiques ; ce type de valeur est parfois dénommé "pseudo-aléatoire". Afin d'améliorer la sécurité, on peut également prévoir que : - la première donnée est indépendante de la valeur aléatoire ; - l'exécution de l'opération est indépendante de la valeur aléatoire. Lorsque l'opération utilisant la seconde donnée consiste à vérifier si la seconde donnée vérifie un critère prédéterminé, le procédé comprend par exemple une étape d'exécution d'une opération protégée en cas de vérification positive. L'utilisation de l'invention est notamment intéressante dans ce cas de figure. Selon une première possibilité, le procédé comprend une étape de calcul de la première donnée. Dans ce cas, afin d'améliorer la sécurité, ladite zone de mémoire est inchangée jusqu'à l'étape de calcul de la première donnée. Le calcul de la première donnée comprend par exemple une étape d'application d'un algorithme cryptographique à clé secrète. Cette technique est particulièrement pratique. Dans une mise en œuvre possible, le procédé comprend une étape de comparaison de la seconde donnée à un code d'authentification. Selon une seconde possibilité, le procédé comprend une étape de lecture de la première donnée sur un support d'information. Dans ce cas, afin d'améliorer la sécurité, ladite zone de mémoire est inchangée jusqu'à l'étape de lecture de la première donnée sur le support d'information. L'invention est notamment intéressante lorsque la zone de mémoire est une zone de mémoire volatile. Elle s'applique toutefois à tout type de mémoire. Dans une application particulière de l'invention, le procédé comprend les étapes suivantes : - réception d'un code de commande et d'un code d'authentification ; - calcul de la première donnée par application d'un algorithme cryptographique à clé secrète au code de commande ; - comparaison de la seconde donnée au code d'authentification ; - exécution de l'opération correspondant au code de commande si la comparaison est positive. Selon une alternative, l'opération utilisant la seconde donnée est une émission de la seconde donnée. L'invention propose donc un procédé de sécurisation d'une opération protégée, caractérisé en ce qu'il comprend les étapes suivantes : - remplissage d'une zone de mémoire par une valeur de remplissage ; - écriture dans cette zone d'une donnée conditionnant l'exécution future de l'opération protégée. Selon une réalisation pratique, le procédé comprend une étape de calcul de ladite donnée conditionnant l'exécution au moyen d'un algorithme cryptographique. En variante, le procédé comprend une étape de lecture de ladite donnée conditionnant l'exécution sur un support d'information. L'invention propose également un dispositif apte au traitement de données sécurisé, caractérisé en ce qu'il comprend: - des moyens pour remplir une zone de mémoire par une valeur de remplissage ; - des moyens pour écrire une première donnée dans cette zone ; - des moyens pour lire dans cette zone une seconde donnée comprenant au moins une partie de la première donnée telle qu'elle a été écrite dans cette zone ; - des moyens pour exécuter une opération utilisant la seconde donnée. Le dispositif peut inclure des caractéristiques équivalentes aux caractéristiques optionnelles du procédé décrites ci-dessus, et ainsi les avantages qui découlent de chacune. En outre, le dispositif peut être une carte à microcircuit.
Ainsi, l'invention propose un dispositif apte à sécuriser l'exécution d'une opération protégée, caractérisé en ce qu'il comprend : - des moyens pour remplir une zone de mémoire par une valeur de remplissage ; - des moyens pour écrire dans cette zone une donnée conditionnant l'exécution future de l'opération protégée. Enfin, l'invention propose un programme d'ordinateur comprenant des instructions aptes à mettre en œuvre le procédé décrit ci-dessus, lorsque lesdites instructions sont exécutées par un microprocesseur. D'autres caractéristiques et avantages de la description apparaîtront à la lumière de la description qui suit, faite en référence aux dessins annexés, dans lesquels : - la figure 1a représente schématiquement un dispositif de traitement de données incorporant un premier mode de réalisation de l'invention ; - la figure 1 b représente une réalisation possible du dispositif de la figure 1a ; - la figure 2 illustre un procédé selon le premier mode de réalisation de l'invention en fonctionnement normal ; - la figure 3 illustre le procédé selon ce premier mode lorsqu'il subit une attaque par génération de fautes ; - la figure 4 représente schématiquement des dispositifs impliqués dans un second mode de réalisation de l'invention ; - la figure 5 illustre un procédé selon le second mode de réalisation de l'invention en fonctionnement normal ; - la figure 6 illustre un procédé selon le second mode de réalisation de l'invention lorsqu'il subit une attaque par génération de faute ; - la figure 7 représente schématiquement des dispositifs impliqués dans un troisième mode de réalisation de l'invention ; - la figure 8 illustre un procédé selon le troisième mode de réalisation de l'invention en fonctionnement normal. La figure 1a représente schématiquement un dispositif de traitement de données 40 dans lequel la présente invention est mise en œuvre. Ce dispositif 40 comprend un microprocesseur 10, auquel peut être associée une mémoire 20, par exemple au moyen d'un bus 50. Le dispositif de traitement de données 40, et précisément le microprocesseur 10 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 30. On a schématiquement représenté sur la figure 1a la transmission des données d'entrées CMD et MAC reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 30 au microprocesseur 10. De manière similaire, on a représenté la transmission d'une donnée de sortie S du microprocesseur 10 vers l'interface de communication 30 à destination d'un dispositif extérieur. Bien que, pour l'illustration, les données d'entrée CMD, MAC et les données de sortie S figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 10 et l'interface 30 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 10 est apte à exécuter un logiciel qui permet au dispositif de traitement de données 40 d'exécuter un procédé conforme à l'invention dont un exemple sera donné plus loin. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 10 qui sont par exemple stockées dans la mémoire 20. En variante, l'ensemble microprocesseur 10 - mémoire 20 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en œuvre des différentes étapes du procédé de sécurisation. La figure 1 b représente une carte à microcircuit qui constitue un dispositif de traitement de données conforme à l'invention tel que représenté à la figure 1a. L'interface de communication 30 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit. La carte à microcircuit incorpore un microprocesseur 10 et une mémoire 20 comme cela est représenté sur la figure 1a. La figure 2 représente sous forme d'un organigramme les étapes d'un premier exemple de procédé de sécurisation conforme à l'invention. Le procédé est initié par la réception de données d'entrée CMD et MAC par le microprocesseur 10 au moyen de l'interface de communication 30. Ces données d'entrée sont par exemple reçues d'un dispositif extérieur qui souhaite effectuer une opération protégée au sein du dispositif 40. La donnée d'entrée CMD définit un code de commande associé à l'opération protégée, c'est-à-dire qu'elle définit quelle opération le microprocesseur 10 doit réaliser. La donnée d'entrée MAC est quant à elle un code d'authentification du message (en anglais "message authentication code", d'où l'appellation MAC) dont la validité conditionne l'exécution de l'opération protégée. Le code d'authentification du message MAC est en général obtenu à partir du code de commande CMD au moyen d'un algorithme cryptographique à clé secrète et typiquement d'une fonction de hachage telle que MD5 ou SHA- 1. Les données d'entrée CMD et MAC sont sauvegardées dès leur réception, par exemple dans la mémoire 20. La réception et la mémorisation (ou stockage) des données d'entrée CMD, MAC sont représentées sur la figure 2 par l'étape E202. Les étapes qui suivent permettent de vérifier que le code d'authentification MAC correspond effectivement au code de commande CMD reçu et ainsi que ce dernier a bien été émis par une entité autorisée. Cette vérification est sécurisée contre les attaques par génération de faute comme cela ressortira plus particulièrement dans la partie de la description relative à la figure 3. Une fois que le microprocesseur 10 a reçu et sauvegardé dans la mémoire 20 les données d'entrée CMD et MAC, il génère une valeur aléatoire A à l'étape E204. La valeur aléatoire A est alors sauvegardée dans une mémoire tampon (parfois dénommée selon le vocable anglais "buffet") MAC. Précisément, le microprocesseur 210 commande l'écriture de la valeur aléatoire A dans la mémoire tampon MAC. La mémoire tampon MAC (qui est donc une zone de mémoire, par exemple une zone de la mémoire 20) est utilisée dans la suite pour mémoriser un code d'authentification calculé, comme décrit en détail ci-après. Les étapes E204 et E206 permettent donc l'initialisation (c'est-à-dire en pratique le remplissage) de la mémoire tampon MAC à une valeur aléatoire A. Lorsque la mémoire tampon MAC est initialisée avec la valeur aléatoire A, on procède alors à l'étape E208 à laquelle on calcule le code d'authentification du message correspondant au code de commande CMD reçu, au moyen d'un algorithme cryptographique F qui utilise une clé secrète K stockée sur le dispositif 40, par exemple au sein de la mémoire 20. Préférentiellement, on utilise un algorithme de hachage, typiquement un algorithme MD5 ou SHA-1. Le résultat du calcul cryptographique est alors stocké dans la mémoire tampon MAC où elle remplace la valeur aléatoire A d'initialisation. Précisément, le microprocesseur 210 commande l'écriture du résultat du calcul cryptographique dans la mémoire tampon MAC prévue à cet effet. Les étapes E206 et E208 peuvent éventuellement être séparées par d'autres étapes de fonctionnement du système ; cette séparation permet d'ailleurs d'augmenter la sécurisation du système puisqu'il est plus difficile dans ce cas de réaliser une attaque par génération de faute sur les deux étapes. Naturellement, l'algorithme cryptographique F et la clé secrète K utilisés à l'étape E208 correspondent à ceux qui ont été utilisés par le dispositif extérieur qui demande l'exécution de l'opération sécurisée pour la génération de la donnée d'entrée MAC. Ainsi, si le dispositif extérieur est autorisé à demander l'exécution de l'opération protégée désignée par le code de commande CMD, il est en possession de la clé secrète K et peut ainsi fournir le code d'authentification MAC valide. Dans ce cas, le code d'authentification calculé MAC est égal au code reçu MAC. La vérification de cette égalité (étape E210), qui implique donc notamment la lecture de la mémoire tampon MAC, permet alors de passer à l'étape E212 à laquelle on réalise l'opération protégée associée au code de commande CMD. Au contraire, si le dispositif extérieur qui a fourni les données d'entrée CMD et MAC n'est pas autorisé à réaliser l'opération protégée associée au code de commande CMD, il n'est en général pas en mesure de fournir un code d'authentification MAC correct sans la connaissance de la clé secrète K. Sans autorisation d'effectuer l'opération protégée (c'est-à-dire sans connaissance de la clé secrète K), le code d'authentification reçu MAC est donc différent du code d'authentification calculé (lu dans la mémoire tampon MAC à l'étape E210) qui résulte quant à lui de l'application de l'algorithme cryptographique F avec connaissance de la clé secrète K. La réception d'un code d'authentification MAC non valide conduira donc à l'absence de vérification de l'égalité MAC=MAC à l'étape E210 et le procédé continue alors à l'étape E214 à laquelle le microprocesseur 10 détecte que l'exécution de l'opération protégée (définie par le code de commande CMD) n'est pas autorisée. Le microprocesseur 10 ne réalise donc pas dans ce cas l'opération protégée. Le microprocesseur 10 peut par ailleurs émettre un message d'erreur ou commander le blocage d'opération ultérieure, selon les applications. On va à présent décrire en référence à la figure 3 les étapes du procédé dans le cas où un attaquant tente, par la génération d'une faute, de contourner la protection qui vient d'être décrite, c'est-à-dire de réaliser l'opération protégée sans nécessiter la fourniture du code d'authentification de message valide. Dans ce type d'attaque, le dispositif 40 reçoit à l'étape E302 un code de commande CMD qui correspond à une opération protégée et un code d'authentification du message MAC non valide, par exemple de valeur nulle. Une fois les données d'entrée CMD et MAC reçues, le microprocesseur procède à l'étape E304 de calcul d'une valeur aléatoire A, comme précédemment décrit à l'étape E204 de la figure 2. De même, la valeur aléatoire A est mémorisée dans une mémoire tampon MAC dans une étape E306 identique à l'étape E206 de la figure 2. Poursuivant le fonctionnement normal décrit à la figure 2, l'étape suivante est l'opération particulièrement sensible de calcul du code d'authentification MAC qui correspond au code de commande CMD au moyen de l'algorithme cryptographique F et de la clé secrète K (étape E308). Si une attaque par génération de faute est appliquée lors de la réalisation de l'étape E308 au sein du microprocesseur 10, il existe une probabilité importante que cette étape ne soit pas réalisée correctement et que la mémoire tampon MAC ne soit pas modifiée comme elle devrait l'être (voir description relative à la figure 2). L'objectif des attaquants est naturellement que la mémoire tampon reste ainsi à sa valeur d'initialisation, qui serait sans les étapes E304 et E306 la valeur nulle que l'on retrouve en général dans les mémoires à leur initialisation, par exemple avant modification pour les mémoires non volatiles et après réservation pour les mémoires volatiles. En effet, on aurait ainsi égalité entre le code d'authentification MAC non valide reçu à l'étape E302 et la valeur mémorisée comme étant le code d'authentification calculé à l'étape E308, ce qui conduirait ainsi à la réalisation de l'opération protégée définie par le code de commande CMD avec un code d'authentification MAC non valide. Au contraire, les étapes E304 et E306 d'initialisation de la mémoire tampon MAC permettent de fixer la valeur préalable de mémoire tampon à une valeur non prévisible. Ainsi, lors de l'attaque par faute, même si l'étape E308 de calcul du code d'authentification lié au code de commande CMD est perturbée et que la mémoire tampon en demeure inchangée, l'égalité entre la valeur lue dans la mémoire tampon MAC et le code d'authentification reçu MAC ne sera pas vérifiée. L'attaquant ne pourra donc pas déterminer un code d'authentification MAC à fournir avec sa commande tel que MAC=MAC. L'étape de vérification de l'égalité entre le code d'authentification reçu et le code d'authentification calculé de l'étape E310 (précédemment décrite comme étape E210) conduira donc à l'étape E314 où le microprocesseur 10 n'autorise pas l'exécution de l'opération protégée définie par le code de commande CMD, comme précédemment décrit à l'étape E214. On a représenté à la figure 4 un second mode de réalisation d'un dispositif 140 conforme aux enseignements de l'invention. Le dispositif 140, par exemple une carte à mémoire, comprend un microprocesseur 110 associé au moyen d'un bus 150 d'une part à une mémoire volatile 120 et d'autre part à une mémoire non-volatile 160. La mémoire vive est par exemple une mémoire du type dénommée selon l'acronyme anglais RAM (pour "Random Access Memory"). La mémoire morte 160 est par exemple du type effaçable et programmable électriquement, généralement dénommée selon l'acronyme anglais EEPROM (pour "Electrically Erasable Programmable Read Only Memory") et/ou du type ROM (pour "Read Only Memory"). Le microprocesseur 110 est apte, par exemple au moyen d'instructions stockées dans la mémoire non-volatile 160, à exécuter des procédés et notamment le procédé conforme à l'invention décrit en référence à la figure 5. Le dispositif 140 communique avec un dispositif externe 180 au moyen d'une interface 130. Dans ce but, le dispositif externe 180 possède également une interface 190 connectée à l'interface 130 du dispositif 140. Au sein du dispositif externe 180, un contrôleur 170 (par exemple du type microprocesseur ou microcontrôleur) est apte à traiter les informations reçues de l'interface 190 et à transmettre les informations traitées à destination du dispositif 140 au moyen toujours de l'interface 190. On a représenté schématiquement sur la figure 4 le transfert d'une information A2 du dispositif 140 vers le dispositif externe 180. Précisément, l'information A2 est générée au sein du microprocesseur 110, puis émise par celui-ci par l'interface 130. L'information A2 est ainsi communiquée au dispositif externe via l'interface 130 du dispositif 140, puis l'interface 190 du dispositif 180, et atteint de ce fait le contrôleur 170 comme également représenté sur la figure 4. Selon le procédé inverse, une information C émise par le contrôleur 170 peut être transmise au microprocesseur 110 via les interfaces 190 puis 130 comme représenté sur la figure 4. Comme déjà mentionné en référence à la figure 1a, les liaisons entre microprocesseur 110 et interface 130 et entre contrôleur 170 et interface 190 sont schématisées par deux flèches différentes, mais peuvent utiliser en pratique le même câblage physique. La figure 5 représente un processus d'authentification du dispositif externe 180 comme dispositif autorisé à commander l'exécution d'une opération protégée au sein du dispositif 140. Pour simplifier l'exposé, la figure 5 se limite au processus d'authentification du dispositif externe 180 par le dispositif 140 et ne mentionne pas les étapes préalables par lesquelles le dispositif externe 180 effectue une requête en vue d'effectuer l'opération protégée. Le processus d'authentification débute à l'étape E502 où le microprocesseur 110 génère une valeur aléatoire A2. La valeur aléatoire A2 générée est alors émise vers le dispositif externe 180 au cours d'une étape E504. Cette étape utilise naturellement les interfaces 130 et 190 comme décrit précédemment. A réception de la valeur aléatoire A2, le dispositif externe 180 procède à une étape E522 de calcul d'une donnée cryptée C par application d'un algorithme cryptographique F utilisant une clé secrète K à la valeur aléatoire A2 reçue. Ce calcul est par exemple réalisé au sein du contrôleur 170. Comme nous le verrons dans la suite, ce calcul permet de s'assurer que le dispositif externe 180 dispose de la clé secrète K (et donc de l'autorisation d'effectuer l'opération protégée), sans que cette vérification ne nécessite la transmission de la clé secrète K elle-même. La donnée cryptée C calculée par le dispositif externe 180 est alors transmise au dispositif 140 au moyen des interfaces 190 et 130 comme décrit sur la figure 4. Le dispositif 140, et plus particulièrement son microprocesseur 110, reçoivent donc à l'étape E506 la donnée cryptée C telle qu'elle a été calculée par le dispositif externe 180. Dans les étapes qui suivent, le microprocesseur 110 va vérifier que cette donnée cryptée C a bien été obtenue par application de l'algorithme cryptographique F en connaissance de la clé secrète K. Comme on le décrira précisément, cette vérification est protégée grâce à l'invention contre les attaques par génération de faute. Dans ce but, le microprocesseur 110 génère à l'étape E508 une nouvelle valeur aléatoire A1. La nouvelle valeur aléatoire A1 est de préférence indépendante de la valeur aléatoire A2 qui a été communiquée à l'extérieur du dispositif 140. Par valeurs aléatoires indépendantes, on entend des valeurs aléatoires dont l'une n'est pas prévisible à partir de l'autre. On procède alors à l'étape E510 à laquelle le microprocesseur 110 commande l'écriture de la valeur aléatoire A1 dans une zone BUF de la mémoire volatile 120, c'est-à-dire le remplissage de la zone BUF par la variable aléatoire A1. Ce type de zone mémoire qui est utilisé comme nous le verrons dans la suite pour effectuer certains calculs est parfois dénommé selon le vocable anglais "buffer", traduit en général par mémoire tampon. Une telle zone mémoire est en général caractérisée une adresse dans la mémoire, ce qui correspond à une variable dans certains langages de programmation. A la fin de l'étape E510, la zone mémoire BUF est donc initialisée avec la valeur aléatoire A1 , c'est-à-dire avec une valeur non prévisible. Après l'étape E510 et éventuellement d'autres étapes, on procède à l'étape E512 à laquelle la clé secrète K stockée en mémoire non-volatile 160 est recopiée dans la zone mémoire BUF de la mémoire vive 120 afin de procéder aux calculs qui suivent et qui utilisent la clé secrète K. Lorsque la clé secrète K est présente en mémoire volatile 120, on peut procéder à l'étape E514 au calcul par le microprocesseur 110 d'une donnée cryptée C par application de l'algorithme cryptographique F avec la clé secrète K à la valeur aléatoire A2. En pratique, on utilise naturellement comme clé secrète la valeur présente dans la zone mémoire BUF lors de l'application de l'algorithme cryptographique F. L'étape E514 comprend donc une sous- étape de lecture de la valeur stockée dans la zone BUF. En fonctionnement normal comme cela est décrit à la figure 5, la donnée cryptée C calculée par le microprocesseur 110 en connaissance de la clé secrète K donne un résultat identique au même calcul effectué par le dispositif externe 180 si celui-ci a connaissance de la clé secrète K. On comprend alors que la vérification de l'égalité entre les données cryptées C et C permet de s'assurer que le dispositif externe 180 est bien en possession de la clé secrète K, et est de ce fait autorisé à requérir l'exécution de l'opération protégée par le dispositif 140. Par conséquent, si on vérifie à l'étape E516 que les données cryptées C et C sont égales, on réalise à l'étape E518 l'exécution de l'opération protégée demandée par le dispositif externe 180 au dispositif 140, qui peut consister par exemple en une personnalisation du dispositif 140 par recopie de certaines données émises par le dispositif externe 180. Au contraire, si on détermine à l'étape E516 que la donnée cryptée reçue du dispositif externe 180 n'est pas égale à la donnée cryptée C calculée à l'étape E514, cela signifie que le dispositif externe 180 n'était pas en mesure d'effectuer l'algorithme cryptographique F avec la clé secrète K, et que le dispositif externe 180 n'est donc pas autorisé à réaliser l'opération protégée. On passe donc dans ce cas à l'étape E520 à laquelle l'opération protégée ne sera pas réalisée. On remarque que l'utilisation de la valeur aléatoire A2, par nature imprévisible, à laquelle le dispositif externe 180 doit appliquer l'algorithme cryptographique F avec la clé secrète K permet de vérifier que le dispositif externe a bien connaissance de la clé secrète K sans nécessiter le transfert de la clé secrète K elle-même, ce qui compromettrait grandement la sécurité d'un tel système. On va à présent décrire en référence à la figure 6 le fonctionnement du procédé de la figure 5 dans le cas où une attaque par génération de faute est générée par un attaquant. On suppose dans ce cas que le dispositif externe 180 est en fait un attaquant qui requiert l'exécution de l'opération protégée par le dispositif 140 sans toutefois y être autorisé, c'est-à-dire sans connaissance de la clé secrète K. Le processus d'authentification commence à l'étape E602 par le calcul de la valeur aléatoire A2 comme déjà décrit à l'étape E502. La valeur aléatoire A2 est alors émise vers le dispositif externe 180 (ici l'attaquant) à une étape E604 équivalente de l'étape E504 de la figure 5. Le dispositif attaquant reçoit la valeur aléatoire A2, mais ne peut naturellement pas effectuer l'algorithme cryptographique utilisant la clé secrète K, puisqu'il n'a pas connaissance de cette dernière. Le dispositif attaquant va donc appliquer dans une étape E622 l'algorithme cryptographique F à la valeur A2 en utilisant comme clé secrète une valeur prédéterminée I, qui correspond par exemple à la valeur d'initialisation courante des mémoires vives (en général la valeur nulle ; dans certains cas, la valeur FF en hexadécimal). Comme nous le verrons, l'attaquant espère en effet générer une faute au cours du processus de vérification effectué par le microprocesseur 110 de manière à ce que la vérification ait lieu avec cette même valeur I en lieu et place de la clé secrète K. La donnée cryptée C calculée par l'attaquant en utilisant la valeur I est ensuite envoyée au dispositif 140 comme le prévoit normalement le processus d'authentification. A l'étape E606, la donnée cryptée C est donc reçue par le microprocesseur 110. Comme précédemment, la zone BUF de mémoire volatile 120 est initialisée avec une valeur aléatoire A1 , qui est donc imprévisible. Pour ce faire, le microprocesseur 110 génère la valeur aléatoire A1 à l'étape E608 et écrit cette valeur aléatoire A1 dans la zone mémoire BUF à l'étape E610. Le processus d'authentification doit se poursuivre alors à l'étape E612 par la recopie de la clé secrète K stockée dans la mémoire non-volatile 160 dans la zone mémoire BUF. L'étape E612 fait cependant l'objet d'une attaque par génération de faute, puisque l'attaquant souhaite voir effectuer l'algorithme cryptographique avec une valeur à laquelle il a accès, comme par exemple la valeur I d'initialisation de la mémoire volatile. Comme représenté sur la figure 6, le résultat de l'attaque de l'étape E612, qui n'est donc pas normalement réalisée, est que la zone mémoire BUF, dans laquelle devait être inscrite la clé secrète K, est inchangée. Une fois l'attaque passée, le processus d'authentification reprend son cours normal, c'est-à-dire l'étape E614 de calcul de la donnée cryptée C. Comme on l'a vu, cette étape, qui applique en théorie l'algorithme cryptographique F à la valeur aléatoire A2 en utilisant la clé secrète K, consiste en pratique à lire le contenu de la zone mémoire BUF et à appliquer l'algorithme cryptographique F en utilisant la valeur lue dans la mémoire BUF comme clé secrète. Dans le cas présent, grâce à l'initialisation de la zone mémoire BUF à la valeur aléatoire imprévisible A1 , le calcul réalisé est en fait l'application de l'algorithme cryptographique F avec pour clé secrète la valeur aléatoire A1 à la valeur aléatoire A2. Le résultat (c'est-à-dire la donnée cryptée) C de cette étape E614 est donc hautement imprévisible, et ne sera dans le cas très général pas égale à la donnée cryptée C calculée au sein du dispositif externe 180. En conséquence, lors de l'étape E616 de vérification de l'égalité des données cryptées C et C (équivalente à l'étape E516 de la figure 5), l'égalité ne sera pas vérifiée et l'opération protégée sera donc interdite, comme représenté à l'étape E620. Comme on le voit, grâce à l'initialisation de la zone mémoire BUF avec la valeur aléatoire A1 , l'attaque par génération de faute conduit à utiliser la valeur aléatoire A1 au lieu de la clé secrète K, ce qui maintient l'impossibilité d'obtenir frauduleusement l'autorisation de réaliser l'opération protégée. On peut remarquer que les étapes E508 et E510 (ou l'étape E508 seulement) pourraient être situées ailleurs dans l'algorithme, comme par exemple avant l'étape E502 ou à la suite immédiate de l'étape E504, sans toutefois compromettre les avantages procurés par l'invention. On a représenté à la figure 7 un troisième mode de réalisation de l'invention. Un dispositif 240 comprend un microprocesseur 210 relié à une mémoire 220 au moyen d'un bus, ainsi qu'une interface 230 qui permet au microprocesseur 210 d'entrer en connexion avec un dispositif extérieur, par exemple une carte à microcircuit 250. La carte à microcircuit 250 comprend elle aussi un microprocesseur
270 relié à une mémoire 280 par l'intermédiaire d'un bus. Une interface 260 de la carte à microcircuit 250 permet au microprocesseur 270 d'entrer en connexion avec des dispositifs extérieurs comme le dispositif 240 précédemment décrit. La figure 8 représente, sous forme d'un organigramme, un procédé conforme aux enseignements de l'invention et mis en œuvre par le dispositif 240. Ce procédé permet d'enregistrer au sein de la carte mémoire 250 une clé individuelle secrète k1 qui est générée selon un procédé sécurisé à partir d'une clé secrète K mémorisée au sein du dispositif 240, qui est par exemple dans ce cas une carte racine (aussi dénommée carte lot, en anglais "root card" ou "batch card"). La transaction est pilotée par un ordinateur non représenté. Le procédé conforme à l'invention commence par une étape E802 à laquelle le microprocesseur 210 génère une valeur aléatoire A. Dans une étape E804, la valeur aléatoire A est mémorisée dans une zone BUF de la mémoire 220 destinée au stockage de la clé individuelle k1 à mémoriser dans la carte 250. Une fois la valeur aléatoire A inscrite dans la zone mémoire BUF, on peut considérer que la zone mémoire BUF est initialisée avec une valeur imprévisible A. On passe alors à l'étape E806 à laquelle la clé individuelle k1 est calculée à l'aide d'un algorithme cryptographique F utilisant la clé secrète K. La donnée d'entrée kO de l'algorithme cryptographique est par exemple une clé individuelle générée précédemment. Le calcul utilise la zone mémoire BUF, notamment pour la mémorisation de son résultat k1. Le procédé se poursuit alors par une étape E808 d'émission de la clé individuelle k1 qui vient d'être calculée à destination de la carte à mémoire 250. Plus précisément, le microprocesseur 210 lit la valeur de la zone mémoire BUF et la transmet au moyen de l'interface 230 à la carte à mémoire 250. On remarque que, de manière analogue à ce qui a été exposé pour les premier et second modes de réalisation, l'initialisation de la zone mémoire BUF avec une valeur imprévisible A rend inefficace toute attaque par génération de faute de l'étape de calcul cryptographique (ici l'étape de calcul cryptographique E806 qui mémorise le résultat dans la zone mémoire BUF). En effet, même si un attaquant essaie d'empêcher la réalisation correcte du calcul de la clé individuelle k1 afin d'obtenir une carte mémoire 250 avec une clé individuelle prévisible, son attaque est inefficace puisque la carte à mémoire 250 contient finalement la valeur d'initialisation de la zone mémoire BUF, c'est- à-dire la valeur aléatoire imprévisible A. Dans les modes de réalisation proposés ci-dessus, et de manière générale, la valeur aléatoire A, A1 pourrait être remplacée par une valeur déterministe non connue par l'attaquant et permettre ainsi de contrecarrer les attaques. Par exemple, il peut s'agir de la valeur courante du compteur d'authentification tel que celui utilisé dans les cartes SIM (acronyme communément utilisé issu de l'anglais "Subscriber Identity Module") pour limiter le nombre total d'authentifications effectuées par une carte pendant sa durée de vie.

Claims

REVENDICATIONS
1. Procédé de traitement de données sécurisé, caractérisé en ce qu'il comprend les étapes suivantes : - remplissage (E206; E510; E804) d'une zone (MAC; BUF) de mémoire par une valeur de remplissage (A; A1 ; A) ; - écriture (E208; E512; E806) d'une première donnée dans cette zone (MAC; BUF) ; - lecture dans cette zone (E210; E514; E808) d'une seconde donnée reprenant au moins une partie de la première donnée telle qu'elle a été écrite dans cette zone (MAC; BUF) ; - exécution d'une opération (E210; E514; E808) utilisant la seconde donnée.
2. Procédé selon la revendication 1 , caractérisé en ce que la valeur de remplissage est une valeur aléatoire (A ; A1 ; A).
3. Procédé selon la revendication 2, caractérisé en ce que la première donnée est indépendante de la valeur aléatoire.
4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que l'exécution de l'opération est indépendante de la valeur aléatoire.
5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce que l'opération utilisant la seconde donnée consistant à vérifier si la seconde donnée vérifie un critère prédéterminé, il comprend une étape d'exécution d'une opération protégée en cas de vérification positive.
6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce qu'il comprend une étape de calcul de la première donnée.
7. Procédé selon la revendication 6, caractérisé en ce que ladite zone de mémoire est inchangée jusqu'à l'étape de calcul de la première donnée.
8. Procédé selon la revendication 6 ou 7, caractérisé en ce que le calcul de la première donnée comprend une étape d'application d'un algorithme cryptographique à clé secrète.
9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce que en ce qu'il comprend une étape de comparaison de la seconde donnée à un code d'authentification.
10. Procédé selon l'une des revendications 1 à 5, caractérisé en ce qu'il comprend une étape (E512) de lecture de la première donnée (K) sur un support d'information (160).
11. Procédé selon la revendication 10, caractérisé en ce que ladite zone de mémoire est inchangée jusqu'à l'étape (E512) de lecture de la première donnée (K) sur le support d'information (160).
12. Procédé selon l'une des revendications 1 à 11 , caractérisé en ce que la zone de mémoire est une zone de mémoire volatile.
13. Procédé selon la revendication 1 , caractérisé en ce qu'il comprend en outre les étapes suivantes : - réception d'un code de commande et d'un code d'authentification ; - calcul de la première donnée par application d'un algorithme cryptographique à clé secrète au code de commande ; - comparaison de la seconde donnée au code d'authentification ; - exécution de l'opération correspondant au code de commande si la comparaison est positive.
14. Procédé selon la revendication 1 , caractérisé en ce que l'opération utilisant la seconde donnée est une émission (E808) de la seconde donnée.
15. Procédé de sécurisation d'une opération protégée, caractérisé en ce qu'il comprend les étapes suivantes : - remplissage (E206) d'une zone de mémoire par une valeur de remplissage ; - écriture (E208) dans cette zone d'une donnée conditionnant l'exécution future de l'opération protégée.
16. Procédé selon la revendication 15, caractérisé en ce qu'il comprend une étape de calcul de ladite donnée conditionnant l'exécution au moyen d'un algorithme cryptographique.
17. Procédé selon la revendication 15, caractérisé en ce qu'il comprend une étape de lecture de ladite donnée conditionnant l'exécution sur un support d'information.
18. Dispositif apte au traitement de données sécurisé, caractérisé en ce qu'il comprend: - des moyens pour remplir une zone de mémoire par une valeur de remplissage ; - des moyens pour écrire une première donnée dans cette zone ; - des moyens pour lire dans cette zone une seconde donnée comprenant au moins une partie de la première donnée telle qu'elle a été écrite dans cette zone ; - des moyens pour exécuter une opération utilisant la seconde donnée.
19. Dispositif selon la revendication 18, caractérisé en ce que la valeur de remplissage est une valeur aléatoire.
20. Dispositif selon la revendication 18 ou 19, caractérisé en ce que le dispositif est une carte à microcircuit.
21. Dispositif apte à sécuriser l'exécution d'une opération protégée, caractérisé en ce qu'il comprend : - des moyens pour remplir une zone de mémoire par une valeur de remplissage ; - des moyens pour écrire dans cette zone une donnée conditionnant l'exécution future de l'opération protégée.
22. Programme d'ordinateur comprenant des instructions aptes à mettre en œuvre le procédé selon l'une des revendications 1 à 17, lorsque lesdites instructions sont exécutées par un microprocesseur.
PCT/FR2005/000905 2004-04-21 2005-04-14 Procédé de traitement de données sécurisé et dispositif associé WO2005109742A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/578,670 US8788847B2 (en) 2004-04-21 2005-04-14 Secure data processing method and associated device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR0404225 2004-04-21
FR0404225A FR2869485B1 (fr) 2004-04-21 2004-04-21 Procede de traitement de donnees securise et dispositif associe
FR0404824 2004-05-05
FR0404824A FR2869486B1 (fr) 2004-04-21 2004-05-05 Procede de traitement de donnees securise et dispositif associe

Publications (1)

Publication Number Publication Date
WO2005109742A1 true WO2005109742A1 (fr) 2005-11-17

Family

ID=34971815

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2005/000905 WO2005109742A1 (fr) 2004-04-21 2005-04-14 Procédé de traitement de données sécurisé et dispositif associé

Country Status (3)

Country Link
US (1) US8788847B2 (fr)
FR (1) FR2869486B1 (fr)
WO (1) WO2005109742A1 (fr)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738926B2 (en) * 2008-01-10 2014-05-27 Intel Mobile Communications GmbH Data processing system, method for executing a cryptographic algorithm and method for preparing execution of a cryptographic algorithm
WO2010115466A1 (fr) * 2009-04-09 2010-10-14 Nokia Siemens Networks Oy Procédé, appareil et produit-programme informatique permettant d'améliorer une réservation de ressources dans une ouverture de session
JP5824849B2 (ja) * 2011-04-22 2015-12-02 ソニー株式会社 情報処理装置および情報処理方法
US20120331308A1 (en) * 2011-06-22 2012-12-27 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8261085B1 (en) 2011-06-22 2012-09-04 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8181035B1 (en) 2011-06-22 2012-05-15 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8595510B2 (en) 2011-06-22 2013-11-26 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
FR2984553B1 (fr) 2011-12-15 2015-11-06 Proton World Int Nv Procede et dispositif de detection de fautes
US20150052616A1 (en) * 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices
FR3051935A1 (fr) * 2016-05-31 2017-12-01 Proton World Int Nv Execution securisee d'un algorithme

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000010283A1 (fr) * 1998-08-14 2000-02-24 Intel Corporation Protection de contenu numerique par mise en oeuvre d'un procede et dispositif d'amorçage securise

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093807A (en) * 1987-12-23 1992-03-03 Texas Instruments Incorporated Video frame storage system
KR100213188B1 (ko) * 1996-10-05 1999-08-02 윤종용 사용자 인증 장치 및 방법
DE69938045T2 (de) * 1998-06-03 2009-01-15 Cryptography Research Inc., San Francisco Verwendung von unvorhersagbarer Information zur Leckminimierung von Chipkarten und anderen Kryptosystemen
DE19856237C2 (de) * 1998-12-07 2002-03-07 Ibm Dynamische Schlüsselgenerierung und vertrauliche Synchronisation von Verschlüsselungskomponenten
FR2849226B1 (fr) 2002-12-20 2005-12-02 Oberthur Card Syst Sa Procede et dispositif de securisation de l'execution d'un programme informatique.
FR2857473B1 (fr) 2003-07-11 2005-09-16 Oberthur Card Syst Sa Procede de securisation de l'execution d'un programme informatique, notamment dans une carte a microcircuit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000010283A1 (fr) * 1998-08-14 2000-02-24 Intel Corporation Protection de contenu numerique par mise en oeuvre d'un procede et dispositif d'amorçage securise

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Conference Programme", INTERNET ARTICLE, XP002303177, Retrieved from the Internet <URL:http://web.archive.org/web/20030313034714/http://www.ruhr-uni-bochum.de/hgi/opening/workshop/programme.html> [retrieved on 20041029] *
DAVID FLANAGAN: "Example from Java Examples in a Nutshell", INTERNET ARTICLE, 22 November 2001 (2001-11-22), XP002303173, Retrieved from the Internet <URL:http://web.archive.org/web/20011223080453/http://examples.oreilly.com/jenut/Randomizer.java> [retrieved on 20041028] *
HELMUT SCHERZER: "SmartCard Operating Systems - Potential risks and security countermeasures", INTERNET ARTICLE, 31 January 2003 (2003-01-31), XP002303174, Retrieved from the Internet <URL:http://ca.itsc.ruhr-uni-bochum.de/hgi/smaca/scherzer.pdf> [retrieved on 20041021] *

Also Published As

Publication number Publication date
US20090254761A1 (en) 2009-10-08
FR2869486A1 (fr) 2005-10-28
US8788847B2 (en) 2014-07-22
FR2869486B1 (fr) 2007-08-31

Similar Documents

Publication Publication Date Title
WO2005109742A1 (fr) Procédé de traitement de données sécurisé et dispositif associé
EP1616242B1 (fr) Procede et dispositif pour controler l&#39;acces a un periferique
EP0621569A1 (fr) Dispositif de protection des clés d&#39;une carte à puce
CA2575143C (fr) Procede et dispositif de traitement de donnees
FR3026207A1 (fr) Terminal a affichage securise
WO1999003074A1 (fr) Procede de gestion d&#39;un terminal securise
FR2867635A1 (fr) Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
CH716295A2 (fr) Procédé de signature multiple d&#39;une transaction destinée à une blockchain, au moyen de clés cryptographiques distribuées parmi les noeuds d&#39;un réseau pair-à-pair.
EP1337981A1 (fr) Procede de chargement et de personnalisation des informations et programmes charges dans une carte a puce
EP3327607B1 (fr) Procede de verification de donnees
CH716294A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique et sous conditions d&#39;identification personnelle et de géolocalisation, d&#39;une transaction destinée à une blockchain.
CH716285A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu, avec inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
EP2933767B1 (fr) Procédé de désactivation d&#39;un module de paiement, produit programme d&#39;ordinateur, medium de stockage et module de paiement correspondants
CH716293A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique et sous condition d&#39;identification personnelle, d&#39;une transaction destinée à une blockchain.
CH716296A2 (fr) Procédé de signature multiple d&#39;une transaction destinée à une blockchain, sous condition de géolocalisation, au moyen de clés cryptographiques distribuées parmi les noeuds d&#39;un réseau pair-à-pair.
CH716291A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique, d&#39;une transaction destinée à une blockchain.
CH716299A2 (fr) Procédé de signature d&#39;une transaction destinée à une blockchain, au moyen d&#39;une clé cryptographique distribuée parmi les noeuds d&#39;un réseau pair-à-pair.
CH716292A2 (fr) Procédé de signature décentralisée, sous contrôle biométrique et sous condition de géolocalisation, d&#39;une transaction destinée à une blockchain.
CH716300A2 (fr) Procédé de signature d&#39;une transaction destinée à une blockchain, au moyen d&#39;une clé cryptographique distribuée parmi les noeuds d&#39;un réseau pair-à-pair sur lequel est déployée cette blockchain.
WO2012172245A1 (fr) Transfert securise entre memoire non-volatile et memoire volatile
CH716286A2 (fr) Procédé de contrôle de données biométriques d&#39;un individu sous condition de géolocalisation, avec inscription, dans une blockchain, d&#39;un résultat d&#39;analyse.
EP3825882A1 (fr) Procede et systeme pour le provisionnement ou remplacement securise d&#39;un secret dans au moins un dispositif de communication portable
CH716302A2 (fr) Procédé de signature décentralisée d&#39;une transaction destinée à une blockchain, suivant les instructions d&#39;un contrat intelligent.
FR2837944A1 (fr) Procede et dispositif de validation automatique d&#39;un programme informatique utilisant des fonctions de cryptographie
CH716301A2 (fr) Procédé de signature d&#39;une transaction destinée à une blockchain déployée sur un réseau pair-à-pair, au moyen d&#39;une clé cryptographique distribuée parmi les noeuds d&#39;un autre réseau pair-à-pair.

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 11578670

Country of ref document: US

122 Ep: pct application non-entry in european phase