FR3075430A1 - DATA PROCESSING METHOD AND ASSOCIATED ELECTRONIC DEVICE - Google Patents

DATA PROCESSING METHOD AND ASSOCIATED ELECTRONIC DEVICE Download PDF

Info

Publication number
FR3075430A1
FR3075430A1 FR1762655A FR1762655A FR3075430A1 FR 3075430 A1 FR3075430 A1 FR 3075430A1 FR 1762655 A FR1762655 A FR 1762655A FR 1762655 A FR1762655 A FR 1762655A FR 3075430 A1 FR3075430 A1 FR 3075430A1
Authority
FR
France
Prior art keywords
instructions
electronic device
processor
execution
verification operation
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.)
Granted
Application number
FR1762655A
Other languages
French (fr)
Other versions
FR3075430B1 (en
Inventor
Yannick Bequer
Philippe ANDOUARD
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia France SAS
Original Assignee
Oberthur Technologies 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
Application filed by Oberthur Technologies SA filed Critical Oberthur Technologies SA
Priority to FR1762655A priority Critical patent/FR3075430B1/en
Publication of FR3075430A1 publication Critical patent/FR3075430A1/en
Application granted granted Critical
Publication of FR3075430B1 publication Critical patent/FR3075430B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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

Abstract

Un procédé de traitement de données mis en œuvre dans un dispositif électronique (1) équipé d'un processeur (2) comprend une étape d'exécution d'un premier ensemble d'instructions par le processeur (2) et une étape d'exécution d'un second ensemble d'instructions par le processeur (2). Entre l'étape d'exécution du premier ensemble d'instructions et l'étape d'exécution du second ensemble d'instructions, est exécutée une séquence d'instructions sélectionnée aléatoirement parmi une pluralité de séquences d'instructions ayant des durées d'exécution différentes. Au moins une des séquences d'instructions de ladite pluralité comprend des instructions conçues pour effectuer une opération de vérification du fonctionnement du dispositif électronique (1) lorsque ces instructions sont exécutées par le processeur (2).  A data processing method implemented in an electronic device (1) equipped with a processor (2) comprises a step of execution of a first set of instructions by the processor (2) and a step of execution a second set of instructions by the processor (2).  Between the step of executing the first set of instructions and the step of executing the second set of instructions, a sequence of instructions randomly selected from among a plurality of sequences of instructions having execution times is executed. different.  At least one of the instruction sequences of said plurality includes instructions designed to perform an operation verification operation of the electronic device (1) when these instructions are executed by the processor (2).

Description

Domaine technique auquel se rapporte l'inventionTechnical field to which the invention relates

La présente invention concerne de manière générale le domaine du traitement des données au moyen de l’exécution d’instructions par un processeur d’un dispositif électronique.The present invention relates generally to the field of data processing by means of the execution of instructions by a processor of an electronic device.

Elle concerne plus particulièrement un procédé de traitement de données et un dispositif électronique associé.It relates more particularly to a data processing method and an associated electronic device.

Arriere-plan technologiqueTechnological background

Les procédés de traitement de données sont couramment mis en oeuvre par l’exécution d’ensembles d’instructions par un processeur d’un dispositif électronique.The data processing methods are commonly implemented by the execution of sets of instructions by a processor of an electronic device.

Dans ce contexte, des personnes malintentionnées peuvent chercher à comprendre le fonctionnement du dispositif électronique (ou à avoir accès aux données manipulées) en observant la consommation électrique du dispositif électronique, qui est liée aux instructions exécutées.In this context, malicious people can seek to understand the functioning of the electronic device (or to have access to the manipulated data) by observing the electrical consumption of the electronic device, which is linked to the instructions executed.

Par exemple, lorsqu’un attaquant souhaite effectuer une attaque par faute en perturbant le fonctionnement du processeur (typiquement au moyen d’un laser), l’attaquant observe la consommation électrique afin d’injecter la faute à un moment précis de l’exécution des instructions par le processeur.For example, when an attacker wishes to carry out a fault attack by disrupting the operation of the processor (typically by means of a laser), the attacker observes the power consumption in order to inject the fault at a specific time of execution instructions by the processor.

Afin de contrer ce type d’attaques, il a déjà été proposé de faire exécuter par le processeur des portions de programme ayant des durées variables (en général de manière aléatoire) d’une exécution à l’autre.In order to counter this type of attack, it has already been proposed to have the processor execute portions of program having variable durations (generally randomly) from one execution to another.

Ainsi, l’attaquant ne peut pas prévoir à quel moment sera exécutée l’instruction qu’il souhaite perturber.Thus, the attacker cannot predict when the instruction he wishes to disrupt will be executed.

Objet de l’inventionObject of the invention

Dans ce contexte, la présente invention propose un procédé de traitement de données mis en oeuvre dans un dispositif électronique équipé d’un processeur, ce procédé comprenant une étape d’exécution d’un premier ensemble d’instructions par le processeur et une étape d’exécution d’un second ensemble d’instructions par le processeur, caractérisé en ce que, entre l’étape d’exécution du premier ensemble d’instructions et l’étape d’exécution du second ensemble d’instructions, est exécutée une séquence d’instructions sélectionnée aléatoirement parmi une pluralité de séquences d’instructions ayant des durées d’exécution différentes, et en ce qu’au moins une des séquences d’instructions de ladite pluralité comprend des instructions conçues pour effectuer une opération de vérification du fonctionnement du dispositif électronique lorsque ces instructions sont exécutées par le processeur.In this context, the present invention provides a data processing method implemented in an electronic device equipped with a processor, this method comprising a step of execution of a first set of instructions by the processor and a step of execution of a second set of instructions by the processor, characterized in that, between the step of executing the first set of instructions and the step of executing the second set of instructions, a sequence is executed instructions selected randomly from a plurality of instruction sequences having different execution durations, and in that at least one of the instruction sequences of said plurality includes instructions designed to perform an operation verification operation of the electronic device when these instructions are executed by the processor.

Ainsi, les instants respectifs d’exécution du premier ensemble d’instructions et du second ensemble d’instructions sont séparés par une durée qui change (de manière aléatoire) à chaque mise en oeuvre du procédé, de sorte que l’attaquant ne peut pas prévoir le moment auquel est mis en oeuvre le second ensemble d’instructions. Cette durée variable entre l’exécution du premier ensemble d’instructions et l’exécution du second ensemble d’instructions est en outre mise à profit pour effectuer au moins une opération de vérification du fonctionnement du dispositif électronique.Thus, the respective instants of execution of the first set of instructions and of the second set of instructions are separated by a duration which changes (randomly) with each implementation of the method, so that the attacker cannot predict when the second set of instructions will be implemented. This variable duration between the execution of the first set of instructions and the execution of the second set of instructions is also used to perform at least one operation for verifying the operation of the electronic device.

Le procédé précité peut comprendre en outre les étapes suivantes :The aforementioned method can also comprise the following steps:

- détermination aléatoire d’un nombre ;- random determination of a number;

- lancement de l’exécution de la séquence d’instructions associée au nombre déterminé parmi les séquences d’instructions de ladite pluralité.- launching of the execution of the sequence of instructions associated with the number determined among the sequences of instructions of said plurality.

D’autres caractéristiques non limitatives et avantageuses du procédé de traitement de données conforme à l’invention, prises individuellement ou selon toutes les combinaisons techniquement possibles, sont les suivantes :Other non-limiting and advantageous characteristics of the data processing method according to the invention, taken individually or in any technically possible combination, are the following:

- chaque séquence d’instructions de la pluralité effectue une opération correspondante de vérification du fonctionnement du dispositif électronique ;- each sequence of instructions from the plurality performs a corresponding operation to verify the operation of the electronic device;

- au moins une séquence d’instructions de la pluralité effectue une combinaison d’opérations de vérification du fonctionnement du dispositif électronique ;- at least one sequence of plurality instructions performs a combination of operations to verify the operation of the electronic device;

- l’opération de vérification est une opération de vérification d’intégrité d’une partie au moins d’une mémoire du dispositif électronique, ou une opération de vérification d’une valeur d’une variable mémorisée au sein du dispositif électronique, ou une opération de vérification d’une mesure fournie par un capteur équipant le dispositif électronique, ou encore une opération de vérification de réception d’un signal de fonctionnement correct en provenance d’un composant du dispositif électronique (la combinaison précitée pouvant combiner plusieurs de ces opérations).the verification operation is an integrity verification operation of at least part of a memory of the electronic device, or an verification operation of a value of a variable stored within the electronic device, or a operation for verifying a measurement supplied by a sensor fitted to the electronic device, or else an operation for verifying receipt of a correct operating signal coming from a component of the electronic device (the aforementioned combination being able to combine several of these operations ).

On peut prévoir par ailleurs que le procédé comprenne les étapes suivantes :It can also be provided that the method comprises the following steps:

- lors de l’exécution de la séquence d’instructions sélectionnée aléatoirement, mémorisation d’un indicateur de réalisation d’au moins une opération de vérification associée à la séquence d’instructions concernée ;- during the execution of the sequence of instructions randomly selected, storage of an indicator of achievement of at least one verification operation associated with the sequence of instructions concerned;

- lors d’une phase ultérieure du fonctionnement du dispositif électronique, mise en oeuvre de ladite au moins une opération de vérification seulement en cas d’absence dudit indicateur de réalisation.- during a subsequent phase of the operation of the electronic device, implementation of said at least one verification operation only in the absence of said performance indicator.

On prévoit ainsi un tel indicateur de réalisation pour l’une au moins des séquences d’instructions. Lorsqu’une pluralité d’opérations de vérification est mise en oeuvre lors de l’exécution de la séquence d’instructions concernée, l’indicateur de réalisation peut viser la séquence dans son ensemble (c’est-à-dire toutes les opérations de vérification de la pluralité) ; selon une autre possibilité, on peut prévoir un tel indicateur de réalisation pour chaque opération de vérification de la pluralité.Such an achievement indicator is thus provided for at least one of the instruction sequences. When a plurality of verification operations are implemented during the execution of the sequence of instructions concerned, the performance indicator can target the entire sequence (that is to say all the operations of plurality check); according to another possibility, one can provide such a performance indicator for each plurality checking operation.

On effectue ainsi lors d’une phase ultérieure de sécurité seulement les opérations de vérification qui n’ont pas été effectuées entre l’exécution du premier ensemble d’instructions et l’exécution du second ensemble d’instructions.In a subsequent security phase, only verification operations which have not been carried out between the execution of the first set of instructions and the execution of the second set of instructions are carried out.

L’invention propose également un dispositif électronique comprenant un processeur et une unité de mémorisation d’instructions exécutables par le processeur, caractérisé en ce que lesdites instructions sont conçues de sorte qu’entre une étape d’exécution d’un premier ensemble d’instructions et une étape d’exécution d’un second ensemble d’instructions, est exécutée une séquence d’instructions sélectionnée aléatoirement parmi une pluralité de séquences d’instructions ayant des durées d’exécution différentes, et en ce qu’au moins une des séquences d’instructions de ladite pluralité comprend des instructions conçues pour effectuer une opération de vérification du fonctionnement du dispositif électronique lorsque ces instructions sont exécutées par le processeur.The invention also provides an electronic device comprising a processor and a unit for storing instructions executable by the processor, characterized in that said instructions are designed so that between a step of executing a first set of instructions and a step of executing a second set of instructions, is executed a sequence of instructions randomly selected from a plurality of sequences of instructions having different execution durations, and in that at least one of the sequences instructions of said plurality includes instructions designed to perform an operation verification operation of the electronic device when these instructions are executed by the processor.

Description detaillee d’un exemple de réalisationDetailed description of an exemplary embodiment

La description qui va suivre en regard des dessins annexés, donnés à titre d’exemples non limitatifs, fera bien comprendre en quoi consiste l’invention et comment elle peut être réalisée.The description which follows with reference to the appended drawings, given by way of nonlimiting examples, will make it clear what the invention consists of and how it can be carried out.

Sur les dessins annexés :In the accompanying drawings:

- la figure 1 représente schématiquement les éléments principaux d’un dispositif électronique au sein duquel est mise en oeuvre l’invention ;- Figure 1 schematically shows the main elements of an electronic device in which the invention is implemented;

- la figure 2 représente, sous forme de logigramme, un premier exemple de procédé conforme à l’invention ;- Figure 2 shows, in the form of a flow diagram, a first example of a process according to the invention;

- la figure 3 montre un premier exemple de table de redirection utilisable dans le cadre de l’invention ;- Figure 3 shows a first example of a redirection table usable in the context of the invention;

- la figure 4 montre un second exemple de table de redirection utilisable dans le cadre de l’invention ; et- Figure 4 shows a second example of a redirection table usable in the context of the invention; and

- la figure 5 représente, sous forme de logigramme, un second exemple de procédé conforme à l’invention ; et- Figure 5 shows, in the form of a flow diagram, a second example of a method according to the invention; and

- la figure 6 présente un exemple possible pour la mémorisation d’instructions aptes à mettre en oeuvre un procédé conforme à l’invention.- Figure 6 shows a possible example for the storage of instructions able to implement a method according to the invention.

La figure 1 représente schématiquement les éléments principaux d’un dispositif électronique 1 (ou entité électronique) au sein duquel est mise en oeuvre l’invention. Dans les exemples décrits ici, ce dispositif électronique 1 est un module sécurisé.FIG. 1 schematically represents the main elements of an electronic device 1 (or electronic entity) within which the invention is implemented. In the examples described here, this electronic device 1 is a secure module.

Un tel module sécurisé 1 est par exemple une carte à microcircuit, telle qu’une carte à circuit intégré universelle (ou UICC pour Universal Integrated Circuit Card'). En variante, il pourrait s’agir d’un élément sécurisé (ou SE pour Secure Elément') - par exemple un microcontrôleur sécurisé.Such a secure module 1 is for example a microcircuit card, such as a universal integrated circuit card (or UICC for Universal Integrated Circuit Card '). Alternatively, it could be a secure element (or SE for Secure Element ') - for example a secure microcontroller.

En variante, le dispositif électronique pourrait être un ordinateur ou un dispositif électronique portatif (ou hand-held electronic device selon l’appellation anglo-saxonne) - par exemple un terminal de communication ou un passeport électronique.Alternatively, the electronic device could be a computer or a portable electronic device (or hand-held electronic device according to the Anglo-Saxon designation) - for example a communication terminal or an electronic passport.

Le dispositif électronique 1 comprend un processeur 2 (ici un microprocesseur), une mémoire vive 4 et une mémoire non-volatile réinscriptible 6 (par exemple de type EEPROM pour Electrically Erasable and Programmable Read-Only Memory). Le dispositif électronique 1 pourrait éventuellement comprendre en outre une mémoire morte. La mémoire vive 4 et la mémoire nonvolatile réinscriptible 6 (ainsi que le cas échéant la mémoire morte) sont chacune liées au processeur 2 de sorte que le processeur 2 peut lire ou écrire des données dans chacune de ces mémoires.The electronic device 1 comprises a processor 2 (here a microprocessor), a random access memory 4 and a rewritable non-volatile memory 6 (for example of the EEPROM type for Electrically Erasable and Programmable Read-Only Memory). The electronic device 1 could possibly also comprise a read-only memory. The random access memory 4 and the rewritable nonvolatile memory 6 (as well as the read-only memory if necessary) are each linked to the processor 2 so that the processor 2 can read or write data in each of these memories.

Une de ces mémoires, par exemple la mémoire non-volatile réinscriptible 6, mémorise des instructions de programme d’ordinateur (par exemple avec une structure telle que celle présentée en figure 6) qui permettent la mise en oeuvre de l’un au moins des procédés décrits ci-dessous en référence aux figures 2 et 5 lorsque ces instructions sont exécutées par le processeur 2.One of these memories, for example the rewritable non-volatile memory 6, stores computer program instructions (for example with a structure such as that presented in FIG. 6) which allow the implementation of at least one of the methods described below with reference to FIGS. 2 and 5 when these instructions are executed by processor 2.

Les mémoires 4, 6 stockent également des données représentatives de valeurs utilisées lors de la mise en oeuvre des procédés décrits ci-dessous. Par exemple, dans l’exemple décrit ici où le dispositif électronique 1 est conçu pour mettre en oeuvre un algorithme cryptographique (comme expliqué plus bas), la mémoire non-volatile réinscriptible 6 mémorise une clé cryptographique K.The memories 4, 6 also store data representative of values used during the implementation of the methods described below. For example, in the example described here where the electronic device 1 is designed to implement a cryptographic algorithm (as explained below), the rewritable non-volatile memory 6 stores a cryptographic key K.

La mémoire vive 4 mémorise par ailleurs, par exemple au sein de variables, des données traitées au cours des procédés décrits ci-dessous.The random access memory 4 also stores, for example within variables, data processed during the methods described below.

Le dispositif électronique 1 comprend ici en outre une interface de communication 8 avec des dispositifs électroniques externes. Par exemple, lorsque le dispositif électronique 1 est une carte à microcircuit, l’interface de communication 8 comprend par exemple des contacts affleurant sur une face de la carte à microcircuit. En variante, l’interface de communication 8 pourrait être réalisée par un module de communication sans contact. De manière générale, l’interface de communication 8 peut être un module de communication (filaire ou sans fil) avec une autre entité électronique.The electronic device 1 here further comprises a communication interface 8 with external electronic devices. For example, when the electronic device 1 is a microcircuit card, the communication interface 8 comprises, for example, contacts which are flush with one face of the microcircuit card. As a variant, the communication interface 8 could be produced by a contactless communication module. In general, the communication interface 8 can be a communication module (wired or wireless) with another electronic entity.

Le processeur 2 peut ainsi recevoir des données, par exemple un message M, en provenance de l’autre entité électronique via l’interface de communication 8 et émettre d’autres données, par exemple un résultat d’application de l’algorithme cryptographique précité au message M, à l’autre entité électronique via l’interface de communication 8.The processor 2 can thus receive data, for example a message M, from the other electronic entity via the communication interface 8 and transmit other data, for example a result of application of the aforementioned cryptographic algorithm to the message M, to the other electronic entity via the communication interface 8.

Comme déjà indiqué, l’invention n’est toutefois pas limitée à cet exemple et peut s’appliquer à d’autres types de dispositif électronique (même sans traitement cryptographique).As already indicated, the invention is not limited to this example, however, and can be applied to other types of electronic device (even without cryptographic processing).

La figure 2 représente, sous forme de logigramme, un premier exemple de procédé conforme à l’invention. Ce procédé est par exemple mis en oeuvre du fait de l’exécution par le processeur 2 d’instructions représentées schématiquement sur la figure 6. Bien entendu, l’invention n’est toutefois pas limitée à une telle organisation des instructions dans la mémoire.FIG. 2 represents, in the form of a flow diagram, a first example of a process according to the invention. This method is for example implemented due to the execution by the processor 2 of instructions shown diagrammatically in FIG. 6. Of course, the invention is not however limited to such an organization of the instructions in the memory.

Ce procédé débute à l’étape E2 à laquelle le processeur 2 reçoit des données, par exemple un message M à traiter, via l’interface de communication 8. Cette étape E2 de réception est par exemple mise en oeuvre du fait de l’exécution d’instructions INSTRrec représentées en figure 6.This method begins at step E2 at which the processor 2 receives data, for example a message M to be processed, via the communication interface 8. This step E2 of reception is for example implemented due to the execution of INSTR rec instructions shown in Figure 6.

Comme déjà indiqué, l’invention n’est pas limitée à l’exemple décrit ici et s’applique également à des dispositifs électroniques sans moyens de communication avec des dispositifs externes (auquel cas l’étape E2 n’est pas mise en oeuvre).As already indicated, the invention is not limited to the example described here and also applies to electronic devices without means of communication with external devices (in which case step E2 is not implemented) .

Le processeur 2 effectue alors à l’étape E4 une initialisation de son fonctionnement, ici du fait de l’exécution par le processeur 2 d’instructions INSTRinit mémorisées dans la mémoire non-volatile réinscriptible 6.The processor 2 then performs in step E4 an initialization of its operation, here due to the execution by the processor 2 of INSTRinit instructions stored in the rewritable non-volatile memory 6.

L’étape d’initialisation E4 peut comprendre par exemple :The initialization step E4 can include for example:

- des opérations de mise à jour ou d’initialisation de variables (mémorisées dans la mémoire vive 4) utilisées dans l’étape de traitement cryptographique E10 décrite plus bas, et/ou- operations to update or initialize variables (stored in RAM 4) used in the cryptographic processing step E10 described below, and / or

- des opérations de vérification du contenu d’une partie au moins de la mémoire vive 4 et ou de la mémoire non-volatile réinscriptible 6 ; et/ou- operations to verify the content of at least part of the RAM 4 and or the rewritable non-volatile memory 6; and or

- une opération de détection (à un emplacement prédéterminé de la mémoire non-volatile réinscriptible 6) de la présence éventuelle d’une donnée de blocage (le processeur 2 commandant l’arrêt du fonctionnement du dispositif électronique 1 en cas de détection effective de cette donnée de blocage).an operation for detecting (at a predetermined location in the rewritable non-volatile memory 6) the possible presence of blocking data (the processor 2 controlling the stopping of the operation of the electronic device 1 in the event of effective detection of this blocking data).

Le processeur 2 détermine ensuite à l’étape E6 une valeur A, ici par tirage aléatoire. Dans l’exemple décrit ici, la valeur A est une valeur entière (aléatoire) comprise entre 1 et un nombre prédéterminé N (le tirage aléatoire utilisé permettant de préférence d’obtenir avec une probabilité identique chacune des valeurs entières comprises entre 1 et N). (Cette étape de détermination E6 est par exemple mise en oeuvre du fait de l’exécution de certaines instructions parmi des instructions INSTRapp mémorisées dans la mémoire non-volatile 6.)The processor 2 then determines in step E6 a value A, here by random drawing. In the example described here, the value A is an integer (random) value between 1 and a predetermined number N (the random drawing used preferably making it possible to obtain with an identical probability each of the integer values between 1 and N) . (This determination step E6 is for example implemented due to the execution of certain instructions from INSTRapp instructions stored in the non-volatile memory 6.)

Le processeur 2 met en oeuvre une étape de désynchronisation E8 dont la durée est variable selon la valeur A obtenue à l’étape E6.The processor 2 implements a desynchronization step E8, the duration of which is variable according to the value A obtained in step E6.

Précisément, au cours de l’étape de désynchronisation E8 est exécutée par le processeur 2 une séquence d’instructions choisie parmi N séquences d’instructions sur la base de la valeur A obtenu à l’étape E6.Specifically, during the desynchronization step E8 is executed by the processor 2 a sequence of instructions chosen from N sequence of instructions on the basis of the value A obtained in step E6.

Selon une première possibilité, chacune des N séquences d’instructions comprend des instructions INSTRPROti, INSTRPROt2, INSTRPROtn conçues pour effectuer une opération de vérification du fonctionnement du dispositif électronique 1 lorsque ces instructions sont exécutées par le processeur 2.According to a first possibility, each of the N sequences of instructions comprises instructions INSTR PRO ti, INSTR PRO t2, INSTR PRO tn designed to perform an operation verification operation of the electronic device 1 when these instructions are executed by the processor 2.

En variante, une partie seulement des N séquences d’instructions pourrait comprendre des instructions conçues pour effectuer une opération de vérification du fonctionnement du dispositif électronique 1 lorsque ces instructions sont exécutées par le processeur 2.As a variant, only part of the N instruction sequences could include instructions designed to perform an operation verification operation of the electronic device 1 when these instructions are executed by the processor 2.

Ainsi, des séquences d’instructions sans opération de vérification, peuvent être utilisées pour assurer une bonne dispersion des durées de désynchronisation et notamment la présence de durées de désynchronisation courtes. Il s’agit par exemple des séquences d’instructions correspondant à des durées de désynchronisation qui sont inférieures à la durée d’exécution de chaque opération de vérification possible.Thus, sequences of instructions without verification operation, can be used to ensure good dispersion of the desynchronization times and in particular the presence of short desynchronization times. These are, for example, sequences of instructions corresponding to desynchronization times which are less than the execution time of each possible verification operation.

Les différentes opérations de vérification respectivement mises en oeuvre du fait de l’exécution par le processeur 2 des N séquences d’instructions possibles peuvent chacune par exemple être choisies parmi :The different verification operations respectively implemented due to the execution by processor 2 of the N possible instruction sequences can each, for example, be chosen from:

- une opération de vérification d’intégrité d’une partie au moins de la mémoire vive 4 ou de la mémoire non-volatile réinscriptible 6,- an integrity verification operation of at least part of the random access memory 4 or of the rewritable non-volatile memory 6,

- une opération de vérification d’une valeur d’une variable mémorisée au sein du dispositif électronique 1,- an operation for verifying a value of a variable stored in the electronic device 1,

- une opération de vérification d’une mesure fournie par un capteur (par exemple un capteur de lumière ou un capteur de température) équipant le dispositif électronique 1 et- a verification operation of a measurement supplied by a sensor (for example a light sensor or a temperature sensor) equipping the electronic device 1 and

- une opération de vérification de réception d’un signal de fonctionnement correct en provenance d’un composant (par exemple un générateur de nombre aléatoire ou un crypto-processeur) du dispositif électronique 1.- an operation for verifying receipt of a correct operating signal from a component (for example a random number generator or a crypto-processor) of the electronic device 1.

En pratique, une table de redirection T mémorise, pour chaque valeur comprise entre 1 et N, une adresse PROT1, PROT2, PROTN où est mémorisé l’un des ensembles d’instructions INSTRPROti, INSTRPROt2, INSTRPROtn, comme représenté en figure 3.In practice, a redirection table T stores, for each value between 1 and N, an address PROT1, PROT2, PROTN where one of the sets of instructions INSTR PRO ti, INSTR PRO t2, INSTR PRO tn is stored, as shown in figure 3.

Dans ce cas, l’étape de désynchronisation E8 est mise en oeuvre par appel (du fait de l’exécution par le processeur 2 des instructions INSTRaPP) d’un sous-programme mémorisé à l’adresse PROTi associée à la valeur aléatoire A dans la table de redirection T (ce sous-programme étant formé des instructions INSTRProtî concernées).In this case, the desynchronization step E8 is implemented by calling (due to the execution by the processor 2 of the INSTRa PP instructions) of a subroutine stored at the address PROTi associated with the random value A in the redirection table T (this subroutine being formed of the instructions INSTR P rotî concerned).

Les différents ensembles d’instructions INSTRProti, INSTRProt2, INSTRProtn, et donc les différentes séquences d’instructions, ont des durées d’exécution différentes de sorte que la durée nécessaire à la mise en oeuvre de l’étape de désynchronisation E8 varie d’une mise en oeuvre à l’autre du procédé de la figure 2.The different sets of instructions INSTR P roti, INSTR P rot2, INSTR P rotn, and therefore the different sequences of instructions, have different execution durations so that the duration necessary for the implementation of the desynchronization E8 varies from one implementation to another of the method of FIG. 2.

Selon une seconde possibilité, chacune des N séquences d’instructions comprend des instructions conçues pour effectuer une combinaison d’une pluralité d’opérations de vérification du fonctionnement du dispositif électronique 1 lorsque ces instructions sont exécutées par le processeur 2.According to a second possibility, each of the N instruction sequences includes instructions designed to perform a combination of a plurality of operations for verifying the operation of the electronic device 1 when these instructions are executed by the processor 2.

Chaque opération de vérification peut en pratique être de l’un des types envisagés ci-dessus.Each verification operation can in practice be of one of the types envisaged above.

Comme représenté en figure 4, on peut prévoir par exemple une table de redirection T’ associant, à chacune des valeurs entières comprises entre 1 et N, une pluralité d’adresses PROTi où sont respectivement mémorisées des ensembles d’instructions INSTRProtî permettant chacun la mise en oeuvre d’une opération de vérification du fonctionnement du dispositif électronique 1 (lorsque l’ensemble d’instructions concerné est exécuté par le processeur 2). On remarque que, comme représenté en figure 4, le nombre d’adresses PROTi associées aux différentes valeurs entières comprises entre 1 et N peut être variable d’une valeur entière à l’autre.As shown in FIG. 4, it is possible, for example, to provide a redirection table T 'associating, with each of the integer values between 1 and N, a plurality of addresses PROTi in which sets of instructions INSTR P rotî are respectively stored allowing each the implementation of an operation verification operation of the electronic device 1 (when the set of instructions concerned is executed by the processor 2). Note that, as shown in FIG. 4, the number of addresses PROTi associated with the different integer values between 1 and N can be variable from one integer value to another.

De préférence, afin d’assurer une bonne variation de la trace de la consommation électrique d’une mise en oeuvre à l’autre, les opérations de vérification (si elles sont communes pour plusieurs valeurs entières) doivent être exécutées dans des ordres différents selon la valeur entière à laquelle elles sont associées. En particulier, la première opération de vérification et/ou la dernière opération de vérification doivent être différentes pour les différentes valeurs entières utilisables (comprises entre 1 et N).Preferably, in order to ensure a good variation of the trace of the electrical consumption from one implementation to another, the verification operations (if they are common for several whole values) must be executed in different orders according to the integer value with which they are associated. In particular, the first verification operation and / or the last verification operation must be different for the different integer values that can be used (between 1 and N).

Dans le cas décrit ici, l’étape de désynchronisation E8 est ainsi par exemple mise en oeuvre du fait d’appels successifs (du fait de l’exécution par le processeur 2 des instructions INSTRapp) de sous-programmes respectivement mémorisés aux différentes adresses PROTi associées à la valeur aléatoire A dans la table de redirection T’ (chaque sous-programme étant formé des instructions INSTRprotî mémorisées à l’adresse PROTi concernée).In the case described here, the desynchronization step E8 is thus for example implemented due to successive calls (due to the execution by the processor 2 of the INSTRapp instructions) of subroutines respectively stored at the different addresses PROTi associated with the random value A in the redirection table T '(each subroutine being formed of instructions INSTRprotî stored at the address PROTi concerned).

La durée de mise en oeuvre de l’étape de désynchronisation E8 correspond donc dans ce cas à la somme des durées d’exécution des différents ensembles d’instructions INSTRprotî rnis en oeuvre conformément à ce qui est prévu pour la valeur aléatoire courante A dans la table de redirection T’.The duration of implementation of the desynchronization step E8 therefore corresponds in this case to the sum of the durations of execution of the different sets of instructions INSTRprotî rnis implemented in accordance with what is provided for the current random value A in the redirection table T '.

On peut prévoir par exemple que la durée de mise en oeuvre de l’étape de désynchronisation E8 associée à chaque valeur possible pour la valeur aléatoire A (c’est-à-dire à chaque valeur comprise entre 1 et N) soit comprise dans une plage de durée parmi plusieurs plages de durées T1, T3, TM (comme indiqué sur la figure 4). On remarque ici que les plages de durées T1, T3, TM ne sont pas utilisées par le processeur 2 (mais seulement pour la clarté du présent exposé) et pourraient donc en pratique ne pas être incluses dans la table de redirection T’.We can provide for example that the duration of implementation of the desynchronization step E8 associated with each possible value for the random value A (that is to say with each value between 1 and N) is included in a duration range among several duration ranges T1, T3, TM (as shown in FIG. 4). It is noted here that the duration ranges T1, T3, TM are not used by the processor 2 (but only for the clarity of the present description) and could therefore in practice not be included in the redirection table T ’.

Comme représenté sur la figure 4, on peut alors prévoir par exemple que la durée de mise en oeuvre de l’étape de désynchronisation E8 soit dans la même plage de durée (par exemple T3) pour plusieurs valeurs possibles de la valeur aléatoire A (ici pour les valeurs 7, 8 et 9).As shown in FIG. 4, it can then be provided, for example, for the duration of implementation of the desynchronization step E8 to be in the same duration range (for example T3) for several possible values of the random value A (here for values 7, 8 and 9).

On prévoit dans ce cas de préférence d’associer un nombre identique de valeurs possibles (comprises entre 1 et N) à chaque plage de durée T1, T3, TM de sorte que, la valeur A étant choisie aléatoirement, toutes les plages de durée aient une probabilité uniforme d’être utilisées.In this case, provision is preferably made to associate an identical number of possible values (between 1 and N) with each duration range T1, T3, TM so that, the value A being chosen randomly, all the duration ranges have a uniform probability of being used.

On remarque toutefois que, comme déjà indiqué, le nombre d’adresses PROTi associées aux différentes valeurs entières comprises entre 1 et N peut être variable d’une valeur entière à l’autre (même pour des valeurs entières associées à une même plage de durée).Note however that, as already indicated, the number of PROTi addresses associated with the various integer values between 1 and N can be variable from one integer value to another (even for integer values associated with the same duration range ).

Selon une troisième possibilité, les première et seconde possibilités qui viennent d’être décrites peuvent être combinées : une partie des N séquences d’instructions comprend alors des instructions conçues pour effectuer une combinaison d’une pluralité d’opérations de vérification du fonctionnement et une autre partie des N séquences d’instructions comprend des instructions conçues pour effectuer une (seule) opération de vérification. On assure ainsi une bonne dispersion des durées de désynchronisation.According to a third possibility, the first and second possibilities which have just been described can be combined: part of the N sequences of instructions then comprises instructions designed to perform a combination of a plurality of operations verification operations and a other part of the N instruction sequences includes instructions designed to perform a (single) verification operation. This ensures good dispersion of the desynchronization times.

Quoiqu’il en soit, la durée d’exécution de l’étape de désynchronisation E8 sera variable en fonction de la valeur A obtenue à l’étape E8 et sera donc différente à chaque exécution du procédé de la figure 2.In any case, the duration of execution of the desynchronization step E8 will be variable according to the value A obtained in step E8 and will therefore be different each time the method of FIG. 2 is executed.

Le processeur 2 effectue alors à l’étape E10 une opération de traitement d’une donnée sensible, ici un traitement cryptographique appliqué aux données reçues (ici au message M), par exemple par mise en oeuvre d’un algorithme cryptographique (utilisant éventuellement la clé cryptographique K) tel qu’un algorithme de chiffrement, un algorithme de déchiffrement, un algorithme de signature ou un algorithme de vérification de signature. Cette étape de traitement cryptographique E10 est ici réalisée du fait de l’exécution par le processeur 2 d’instructions INSTRcrypto mémorisées dans la mémoire non-volatile 6 comme représenté en figure 6.The processor 2 then performs in step E10 an operation for processing sensitive data, here a cryptographic processing applied to the received data (here at the message M), for example by implementing a cryptographic algorithm (possibly using the cryptographic key K) such as an encryption algorithm, a decryption algorithm, a signature algorithm or a signature verification algorithm. This cryptographic processing step E10 is carried out here due to the execution by the processor 2 of INSTRcrypto instructions stored in the non-volatile memory 6 as shown in FIG. 6.

Du fait de la variation de la durée de l’étape de désynchronisation E8 d’une mise en oeuvre du procédé de la figure 2 à l’autre, un attaquant ne peut pas prévoir à quel instant débute l’étape de traitement cryptographique E10 lors de la mise en oeuvre courante du procédé de la figure 2 et ne peut donc pas créer un défaut de fonctionnement qui affecte le traitement cryptographique (attaque par faute).Due to the variation in the duration of the desynchronization step E8 from one implementation of the method of FIG. 2 to the other, an attacker cannot predict when the cryptographic processing step E10 begins when of the current implementation of the method of FIG. 2 and therefore cannot create a malfunction which affects the cryptographic processing (attack by fault).

De manière optionnelle, le processeur 2 peut mettre en oeuvre une étape de sécurité E12 (ici du fait de l’exécution d’instructions INSTRsecur par Ιθ processeur 2). Cette étape de sécurité peut inclure tout ou partie des opérations de vérification du fonctionnement du dispositif électronique 1 mentionnées plus haut (par exemple par appel de certaines au moins des adresses PROT1, PROT2, PROTN où sont mémorisées les instructions INSTRPROti, INSTRPROt2, INSTRPROtn permettant la mise en oeuvre de ces opérations de vérification).Optionally, the processor 2 can implement a security step E12 (here due to the execution of INSTRsecur instructions by Ιθ processor 2). This security step can include all or part of the operations for verifying the operation of the electronic device 1 mentioned above (for example by calling at least some of the addresses PROT1, PROT2, PROTN where the instructions INSTR PRO ti, INSTR PRO t2 are stored. , INSTR PRO tn allowing the implementation of these verification operations).

Au cours de l’étape de sécurité E12 peut être prévu de terminer le procédé de la figure 2 (sans mettre en oeuvre l’étape d’émission E14 décrite cidessous) si l’une des opérations de vérification effectuées détecte un risque d’attaque (c’est-à-dire par exemple en pratique un défaut d’intégrité d’une partie de mémoire, une valeur erronée d’une variable mémorisée dans le dispositif électronique, un défaut de fonctionnement d’un composant ou une mesure inhabituelle fournie par un capteur).During the security step E12, provision may be made to terminate the method of FIG. 2 (without implementing the emission step E14 described below) if one of the verification operations carried out detects a risk of attack. (i.e. for example in practice a fault in the integrity of a part of memory, an incorrect value of a variable stored in the electronic device, a fault in the functioning of a component or an unusual measurement supplied by a sensor).

En cas d’absence de défaut à l’étape de sécurité E12 (lorsqu’une telle étape est effectuée), le procédé de la figure 2 se termine par une étape E14 à laquelle le processeur 2 commande l’émission de données (ici du résultat du traitement cryptographique de l’étape E10) via l’interface de communication 8 (ici du fait de l’exécution par le processeur 2 d’instructions INSTREM mémorisées dans la mémoire non-volatile 8).In the absence of a fault at the safety step E12 (when such a step is carried out), the method of FIG. 2 ends with a step E14 at which the processor 2 controls the transmission of data (here of the result of the cryptographic processing of step E10) via the communication interface 8 (here due to the execution by the processor 2 of instructions INSTR EM stored in the non-volatile memory 8).

La figure 5 représente, sous forme de logigramme, un second exemple de procédé conforme à l’invention.FIG. 5 represents, in the form of a flow diagram, a second example of a method according to the invention.

Ce procédé débute à l’étape E20 à laquelle le processeur 2 reçoit des données à traiter, par exemple un message M à traiter.This process begins at step E20 in which the processor 2 receives data to be processed, for example a message M to be processed.

Le processeur 2 met alors en oeuvre une étape d’initialisation E22. Cette étape d’initialisation E22 est du même type que l’étape E4 décrite plus haut en référence à la figure 2, mais comprend ici en outre une sous-étape d’initialisation (ici de mise à zéro) d’un ensemble de variables (ici binaires) INDi respectivement associées aux opérations de vérification du fonctionnement du dispositif électronique 1, comme expliqué plus bas.The processor 2 then implements an initialization step E22. This initialization step E22 is of the same type as the step E4 described above with reference to FIG. 2, but here also comprises a sub-step of initialization (here of zeroing) of a set of variables (here binaries) INDi respectively associated with the operations for verifying the operation of the electronic device 1, as explained below.

Le processeur 2 détermine alors une valeur A par tirage aléatoire à l’étape E24. Cette étape est identique à l’étape E6 décrite plus haut en référence à la figure 2.The processor 2 then determines a value A by random drawing in step E24. This step is identical to step E6 described above with reference to FIG. 2.

Le processeur 2 met ensuite en oeuvre une étape de désynchronisation E26 en exécutant une séquence d’instructions sélectionnée en fonction de la valeur A parmi une pluralité de séquences d’instructions ayant des durées d’exécution différentes.The processor 2 then implements a desynchronization step E26 by executing a sequence of instructions selected as a function of the value A from a plurality of sequences of instructions having different durations of execution.

Comme dans le cas de la figure 2, la séquence d’instructions sélectionnée et exécutée permet notamment la mise en oeuvre d’au moins une opération de vérification du fonctionnement du dispositif électronique 1. On pourra se référer à la description donnée ci-dessus en référence aux figures 2 à 4 (en particulier à propos de l’étape E8) pour plus de détails sur la mise en oeuvre pratique de cette étape de désynchronisation E26.As in the case of FIG. 2, the sequence of instructions selected and executed in particular allows the implementation of at least one operation for verifying the operation of the electronic device 1. Reference may be made to the description given above in reference to FIGS. 2 to 4 (in particular with regard to step E8) for more details on the practical implementation of this step of desynchronization E26.

Dans l’exemple décrit ici, l’étape de désynchronisation E26 comprend en outre, pour chaque opération de vérification mise en oeuvre au cours de cette étape E26, une sous-étape de mémorisation d’un indicateur de réalisation de l’opération de vérification concernée, ici en mettant à la valeur 1 la variable binaire INDi associée à l’opération de vérification concernée.In the example described here, the desynchronization step E26 further comprises, for each verification operation implemented during this step E26, a substep for storing an indicator for performing the verification operation concerned, here by setting to the value 1 the binary variable INDi associated with the verification operation concerned.

En variante, lorsqu’une combinaison d’opérations de vérification est mise en oeuvre au cours de l’étape de désynchronisation, on pourrait mémoriser un indicateur de réalisation de cette combinaison d’opérations de vérification.As a variant, when a combination of verification operations is implemented during the desynchronization step, one could store an indicator of performance of this combination of verification operations.

Selon une autre variante encore, on pourrait ne mémoriser des indicateurs de réalisation (comme proposé ci-dessus) que pour certaines des opérations de vérification mises en oeuvre au cours de l’étape E26.According to yet another variant, it would be possible to memorize performance indicators (as proposed above) only for certain of the verification operations implemented during step E26.

Le processeur 2 poursuit ensuite son fonctionnement à l’étape E28 par la mise en oeuvre d’un traitement cryptographique, comme décrit ci-dessus à propos de l’étape E10 en référence à la figure 2. Comme déjà indiqué, l’invention s’applique toutefois à tout type de traitement de données, non nécessairement cryptographique.The processor 2 then continues its operation in step E28 by implementing cryptographic processing, as described above with respect to step E10 with reference to FIG. 2. As already indicated, the invention s 'however applies to any type of data processing, not necessarily cryptographic.

Comme dans le cas de la figure 2, la durée de mise en oeuvre de l’étape de désynchronisation E26 varie d’une mise en oeuvre du procédé de la figure 5 à l’autre de sorte qu’un attaquant ne pourra pas prévoir l’instant précis d’exécution de l’étape de traitement cryptographique E28.As in the case of FIG. 2, the duration of implementation of the desynchronization step E26 varies from one implementation of the method of FIG. 5 to another so that an attacker will not be able to predict the precise moment of execution of the cryptographic processing step E28.

Comme décrit à présent, le procédé se poursuit alors par un traitement sécuritaire au cours duquel seules sont mises en oeuvre les opérations de vérification du fonctionnement du dispositif électronique 1 qui n’ont pas été effectuées au cours de l’étape de désynchronisation E26.As described now, the method then continues with a security processing during which only the operations for verifying the operation of the electronic device 1 are implemented, which were not carried out during the desynchronization step E26.

Pour ce faire, le processeur initialise à un un indice i à l’étape E30.To do this, the processor initializes an index i in step E30.

Le processeur 2 détermine alors à l’étape E32 si un indicateur de réalisation de l’opération de vérification associée à l’indice courant i est présent. Dans l’exemple décrit ici, le processeur 2 détermine dans ce but si la variable INDi associée à l’opération de vérification d’indice courant i est égale à 1.The processor 2 then determines in step E32 whether an indicator for carrying out the verification operation associated with the current index i is present. In the example described here, the processor 2 determines for this purpose if the variable INDi associated with the operation of checking current index i is equal to 1.

Dans l’affirmative à l’étape E32 (flèche P), l’opération de vérification associée à l’indice courant i a déjà été effectuée au cours de l’étape de désynchronisation E26 et le procédé se poursuit à l’étape E36 (décrite plus bas).If so in step E32 (arrow P), the verification operation associated with the current index i has already been carried out during the desynchronization step E26 and the process continues in step E36 (described lower).

Dans la négative à l’étape E32 (flèche N), c’est-à-dire en l’absence d’indicateur de réalisation de l’opération de vérification associée à l’indice courant i, le processeur 2 effectue à l’étape E34 l’opération de vérification associée à l’indice courant i, ici en appelant le sous-programme mémorisé à l’adresse PROTi et contenant les instructions INSTRProtî permettant la mise en oeuvre de l’opération de vérification concernée (lorsque ces instructions INSTRprotî sont exécutées par le processeur 2).If not in step E32 (arrow N), that is to say in the absence of an indicator for carrying out the verification operation associated with the current index i, the processor 2 performs at step E34 the verification operation associated with the current index i, here by calling the subroutine stored at the address PROTi and containing the instructions INSTR P rotî allowing the implementation of the verification operation concerned (when these INSTRprotî instructions are executed by processor 2).

Le procédé détermine alors à l’étape E36 si l’indice courant a balayé tous les indices respectivement associés à des opérations de vérification. Par exemple, dans le cas où on utilise une opération de vérification pour chaque valeur possible de la valeur aléatoire A comme décrit ci-dessus en référence à la figure 3, le processeur 2 détermine à l’étape E36 si l’indice courant i est égal au dernier indice possible (égal au nombre prédéterminé N).The method then determines in step E36 whether the current index has scanned all the indices respectively associated with verification operations. For example, in the case where a verification operation is used for each possible value of the random value A as described above with reference to FIG. 3, the processor 2 determines in step E36 if the current index i is equal to the last possible index (equal to the predetermined number N).

Dans la négative à l’étape E36 (flèche N), le processeur 2 incrémente l’indice courant i (étape E38) et le procédé boucle à l’étape E32 déjà décrite.If not in step E36 (arrow N), the processor 2 increments the current index i (step E38) and the process loops in step E32 already described.

Dans l’affirmative à l’étape E36 (flèche P), toutes les opérations de vérification ont été effectuées (soit au cours de l’étape de désynchronisation E26, soit au cours du traitement sécuritaire à l’étape E34) et le processeur 2 procède, dans l’exemple décrit ici, à l’émission de données (par exemple le résultat de l’application du traitement cryptographique aux données reçues) via l’interface de communication 8 (étape E40).If so in step E36 (arrow P), all of the verification operations have been carried out (either during the desynchronization step E26, or during the security processing in step E34) and the processor 2 proceeds, in the example described here, to the transmission of data (for example the result of the application of the cryptographic processing to the data received) via the communication interface 8 (step E40).

Les opérations de vérification du fonctionnement de l’appareil électronique 1 peuvent comprendre, outre ce qui a été indiqué plus haut, la mise en oeuvre de certaines actions sécuritaires en cas de détection d’un défaut de fonctionnement. Ces actions sécuritaires peuvent comprendre par exemple l’écriture de données indicatives du défaut détecté dans un fichier journal (ou log file selon l’appellation anglo-saxonne communément utilisée) et/ou l’écriture de données de blocage à un emplacement prédéterminé de la mémoire non-volatile 6 (afin d’empêcher toute nouvelle mise en oeuvre du traitement cryptographique, comme expliqué plus haut à propos de l’étape E4) et/ou l’arrêt (immédiat) du fonctionnement du dispositif électronique 1 (notamment sans émission de données).The operations for verifying the operation of the electronic device 1 may include, in addition to what has been indicated above, the implementation of certain security actions in the event of the detection of a malfunction. These security actions may include, for example, writing data indicative of the fault detected in a log file (or log file according to the commonly used Anglo-Saxon designation) and / or writing blocking data at a predetermined location of the non-volatile memory 6 (in order to prevent any new implementation of the cryptographic processing, as explained above with regard to step E4) and / or the (immediate) stop of the operation of the electronic device 1 (in particular without emission of data).

On remarque que la figure 6 est représentée dans le cas où sont mémorisés autant d’ensembles d’instructions INSTRPROti, INTSTRPROt2, INSTRPRotn qu’il y a de valeurs possibles pour la valeur aléatoire A (soit N ensembles d’instructions INSTRPRoti, INTSTRPRot2, INSTRPRotn et N valeurs possibles). Dans certains modes de réalisation, comme celui décrit plus haut en référence à la figure 4, le nombre d’ensembles d’instructions mémorisés peut être distinct du nombre de valeurs possibles pour la valeur aléatoire A (c’est-à-dire du nombre de séquences d’instructions parmi lesquelles une séquence d’instruction est sélectionnée aléatoirement pour être exécutée).Note that FIG. 6 is represented in the case where as many sets of instructions INSTR PRO ti, INTSTR PRO t2, INSTR PR otn are stored as there are possible values for the random value A (ie N sets d 'TRG PR oti instructions INTSTR ot2 PR, PR TRG otn and N possible values). In certain embodiments, such as that described above with reference to FIG. 4, the number of sets of instructions stored can be distinct from the number of possible values for the random value A (i.e. the number instruction sequences among which an instruction sequence is randomly selected to be executed).

Claims (10)

REVENDICATIONS 1. Procédé de traitement de données mis en oeuvre dans un dispositif électronique (1) équipé d’un processeur (2), ce procédé comprenant une étape (E4 ; E22) d’exécution d’un premier ensemble d’instructions (INSTRinit) par le processeur (2) et une étape (E10 ; E28) d’exécution d’un second ensemble d’instructions (INSTRCrypto) par le processeur (2), caractérisé en ce que, entre l’étape (E4 ; E22) d’exécution du premier ensemble d’instructions (INSTRinit) et l’étape (E10 ; E28) d’exécution du second ensemble d’instructions (INSTRcrypto), est exécutée une séquence d’instructions sélectionnée aléatoirement parmi une pluralité de séquences d’instructions ayant des durées d’exécution différentes, et en ce qu’au moins une des séquences d’instructions de ladite pluralité comprend des instructions conçues pour effectuer une opération de vérification du fonctionnement du dispositif électronique (1) lorsque ces instructions sont exécutées par le processeur (2).1. A method of processing data implemented in an electronic device (1) equipped with a processor (2), this method comprising a step (E4; E22) of execution of a first set of instructions (INSTRinit) by the processor (2) and a step (E10; E28) of execution of a second set of instructions (INSTR C rypto) by the processor (2), characterized in that, between step (E4; E22 ) of execution of the first set of instructions (INSTRinit) and the step (E10; E28) of execution of the second set of instructions (INSTRcrypto), is executed a sequence of instructions randomly selected from among a plurality of sequences of instructions having different execution durations, and in that at least one of the instruction sequences of said plurality includes instructions designed to perform an operation verification operation of the electronic device (1) when these instructions are executed by the processor (2 ). 2. Procédé selon la revendication 1, comprenant les étapes suivantes :2. Method according to claim 1, comprising the following steps: - détermination aléatoire (E6 ; E24) d’un nombre (A) ;- random determination (E6; E24) of a number (A); - lancement de l’exécution de la séquence d’instructions associée au nombre déterminé (A) parmi les séquences d’instructions de ladite pluralité.- launching of the execution of the sequence of instructions associated with the determined number (A) among the sequences of instructions of said plurality. 3. Procédé selon la revendication 1 ou 2, dans lequel chaque séquence d’instructions de la pluralité effectue une opération correspondante de vérification du fonctionnement du dispositif électronique (1).3. Method according to claim 1 or 2, wherein each sequence of instructions of the plurality performs a corresponding operation verification of the operation of the electronic device (1). 4. Procédé selon l’une des revendications 1 à 3, dans lequel au moins une séquence d’instructions de la pluralité effectue une combinaison d’opérations de vérification du fonctionnement du dispositif électronique (1).4. Method according to one of claims 1 to 3, wherein at least one plurality of instruction sequence performs a combination of operations to verify the operation of the electronic device (1). 5. Procédé selon l’une des revendications 1 à 4, comprenant les étapes suivantes :5. Method according to one of claims 1 to 4, comprising the following steps: - lors de l’exécution de la séquence d’instructions sélectionnée aléatoirement, mémorisation d’un indicateur de réalisation (INDi) d’au moins une opération de vérification associée à la séquence d’instructions concernée ;- during the execution of the randomly selected sequence of instructions, storage of a performance indicator (INDi) of at least one verification operation associated with the sequence of instructions concerned; - lors d’une phase ultérieure du fonctionnement du dispositif électronique, mise en œuvre (E34) de ladite au moins une opération de vérification seulement en cas d’absence dudit indicateur de réalisation.- during a subsequent phase of the operation of the electronic device, implementation (E34) of said at least one verification operation only in the absence of said performance indicator. 6. Procédé selon l’une des revendications 1 à 5, dans lequel l’opération de vérification est une opération de vérification d’intégrité d’une partie au moins d’une mémoire (4 ; 6) du dispositif électronique (1).6. Method according to one of claims 1 to 5, wherein the verification operation is an integrity verification operation of at least part of a memory (4; 6) of the electronic device (1). 7. Procédé selon l’une des revendications 1 à 5, dans lequel l’opération de vérification est une opération de vérification d’une valeur d’une variable mémorisée au sein du dispositif électronique (1).7. Method according to one of claims 1 to 5, wherein the verification operation is a verification operation of a value of a variable stored in the electronic device (1). 8. Procédé selon l’une des revendications 1 à 5, dans lequel l’opération de vérification est une opération de vérification d’une mesure fournie par un capteur équipant le dispositif électronique (1).8. Method according to one of claims 1 to 5, wherein the verification operation is a verification operation of a measurement provided by a sensor fitted to the electronic device (1). 9. Procédé selon l’une des revendications 1 à 5, dans lequel l’opération de vérification est une opération de vérification de réception d’un signal de fonctionnement correct en provenance d’un composant du dispositif électronique (1)·9. Method according to one of claims 1 to 5, wherein the verification operation is a verification operation of receipt of a correct operating signal from a component of the electronic device (1) · 10. Dispositif électronique comprenant un processeur (2) et une unité de mémorisation (6) d’instructions exécutables par le processeur (2), caractérisé en ce que lesdites instructions sont conçues de sorte qu’entre une étape (E4 ; E22) d’exécution d’un premier ensemble d’instructions (INSTRinit) et une étape (E10 ; E28) d’exécution d’un second ensemble d’instructions (INSTRCryPto), est exécutée une séquence d’instructions sélectionnée aléatoirement parmi une pluralité de séquences d’instructions ayant des durées d’exécution différentes, et en ce qu’au moins une des séquences d’instructions de ladite pluralité comprend des instructions conçues pour effectuer une opération de vérification du fonctionnement du dispositif électronique (1) lorsque ces instructions sont exécutées par le processeur (2).10. Electronic device comprising a processor (2) and a storage unit (6) of instructions executable by the processor (2), characterized in that said instructions are designed so that between a step (E4; E22) d execution of a first set of instructions (INSTRinit) and a step (E10; E28) of execution of a second set of instructions (INSTR C ry P to), is executed a sequence of instructions selected randomly from a plurality of instruction sequences having different execution durations, and in that at least one of the instruction sequences of said plurality includes instructions designed to perform an operation verification operation of the electronic device (1) when these instructions are executed by the processor (2).
FR1762655A 2017-12-20 2017-12-20 DATA PROCESSING METHOD AND ASSOCIATED ELECTRONIC DEVICE Active FR3075430B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1762655A FR3075430B1 (en) 2017-12-20 2017-12-20 DATA PROCESSING METHOD AND ASSOCIATED ELECTRONIC DEVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1762655A FR3075430B1 (en) 2017-12-20 2017-12-20 DATA PROCESSING METHOD AND ASSOCIATED ELECTRONIC DEVICE
FR1762655 2017-12-20

Publications (2)

Publication Number Publication Date
FR3075430A1 true FR3075430A1 (en) 2019-06-21
FR3075430B1 FR3075430B1 (en) 2020-08-07

Family

ID=62143278

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1762655A Active FR3075430B1 (en) 2017-12-20 2017-12-20 DATA PROCESSING METHOD AND ASSOCIATED ELECTRONIC DEVICE

Country Status (1)

Country Link
FR (1) FR3075430B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0448262A2 (en) * 1990-03-20 1991-09-25 General Instrument Corporation Of Delaware Prevention of determination of time of execution of predetermined data processing routine in relation to occurrence of prior observable external event
FR2874440A1 (en) * 2004-08-17 2006-02-24 Oberthur Card Syst Sa METHOD AND DEVICE FOR PROCESSING DATA

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0448262A2 (en) * 1990-03-20 1991-09-25 General Instrument Corporation Of Delaware Prevention of determination of time of execution of predetermined data processing routine in relation to occurrence of prior observable external event
FR2874440A1 (en) * 2004-08-17 2006-02-24 Oberthur Card Syst Sa METHOD AND DEVICE FOR PROCESSING DATA

Also Published As

Publication number Publication date
FR3075430B1 (en) 2020-08-07

Similar Documents

Publication Publication Date Title
EP1161725B1 (en) Method for monitoring a programme flow
FR2704341A1 (en) Device for protecting the keys of a smart card.
FR2867871A1 (en) Hardware unit for controlling access to e.g. memory, has latch generating and delivering electric validation signal of access request signal to logic combination unit, when access authorization code and preset reference value are equal
FR2895608A1 (en) Monotonic counter realizing method for e.g. mobile telephone, involves storing counting function, counter and private key in persistent memory of smart card e.g. subscriber identity module card
CA2575143C (en) Data processing method and device
EP3033857B1 (en) Binary code authentication
EP3391228B1 (en) Method for writing in a non-volatile memory of an electronic entity, and related electronic entity
FR2670595A1 (en) Integrated circuit card
FR2960327A1 (en) METHOD AND SYSTEM FOR ACCESSING AN INTEGRATED CIRCUIT COMPRISING A PERSONAL AUTHENTICATION KEY
FR3075430A1 (en) DATA PROCESSING METHOD AND ASSOCIATED ELECTRONIC DEVICE
EP1436792B1 (en) Authentication protocol with memory integrity verification
EP3042334B1 (en) Method of setting up safety means depending on a trust indicia varying before and after command execution in an electronic device with memory, and device for implementing said method
EP2955661B1 (en) Protection of data stored in a volatile memory
EP3493182B1 (en) Method and device for cryptographic processing of data
EP3179400B1 (en) Method for loading a computing resource into an electronic device, electronic module and corresponding computer program
EP3360034A1 (en) Dynamically distributed backup method and system
FR3011650A1 (en) METHOD AND DEVICE FOR REALIZING FUNCTION BY A MICROCIRCUIT
FR2991085A1 (en) METHOD AND CHIP CARD FOR TRANSMITTING INFORMATION
FR2910658A1 (en) Electronic system e.g. subscriber identification module card, for portable mobile phone, has physical address allocating module for allocating addresses in memory by variant according to behavioral factors of system
FR3022056A1 (en) PROTECTION OF DATA STORED IN AN INTEGRATED CIRCUIT
EP2564600A1 (en) Method of detecting an abnormal environmental operating condition of an element embedded in an apparatus and corresponding element

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20190621

PLFP Fee payment

Year of fee payment: 3

CA Change of address

Effective date: 20200120

CD Change of name or company name

Owner name: IDEMIA FRANCE, FR

Effective date: 20200120

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7