WO2000023866A1 - Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees - Google Patents

Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees Download PDF

Info

Publication number
WO2000023866A1
WO2000023866A1 PCT/FR1999/002521 FR9902521W WO0023866A1 WO 2000023866 A1 WO2000023866 A1 WO 2000023866A1 FR 9902521 W FR9902521 W FR 9902521W WO 0023866 A1 WO0023866 A1 WO 0023866A1
Authority
WO
WIPO (PCT)
Prior art keywords
execution
program
electronic component
counter
secondary program
Prior art date
Application number
PCT/FR1999/002521
Other languages
English (en)
Inventor
Philippe Anguita
David Naccache
Original Assignee
Gemplus
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus filed Critical Gemplus
Priority to EP99949058A priority Critical patent/EP1121629A1/fr
Priority to JP2000577544A priority patent/JP2002528784A/ja
Priority to AU62077/99A priority patent/AU6207799A/en
Publication of WO2000023866A1 publication Critical patent/WO2000023866A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2123Dummy operation

Definitions

  • the present invention relates to an electronic component and a method for masking the execution of instructions or the manipulation of data.
  • the present invention relates more particularly to electronic components used in applications where access to services or to data is strictly controlled.
  • Such components have an architecture formed around a microprocessor and memories. They implement algorithms using secret data contained in the component, inaccessible from the outside. Secret data can thus be used to validate an electronic transaction such as a purchase, without this data being accessible at any time from outside the component.
  • the object of the present invention is to mask the execution of instructions or the manipulation of data in the component, in order to render sterile the observation of external parameters of the electronic component.
  • the invention relates to an electronic component comprising at least one microprocessor and storage means for executing a main program.
  • the component further comprises a counter of a random value generating information to output the execution of said program during the execution of a secondary program.
  • this execution time of the secondary program is constant.
  • this execution time is variable. It can even be random.
  • this secondary program activates means of current consumption, which will distort the current consumption curve of the component, making the masking of the operations executed and of the data manipulated even more effective.
  • the invention also relates to a method for masking the execution of instructions or the manipulation of data in an electronic component.
  • FIG. 1 shows a block diagram of an electronic component according to the invention.
  • FIG. 2 shows a variant of the block diagram of an electronic component according to a variant of one invention.
  • FIG. 1 represents a simplified block diagram of an electronic component CI according to the invention. It includes a microprocessor 1 and internal resources which are connected to a data bus 6.
  • the internal resources include in particular memories, in the example, a program memory 2 and a working memory 3, a counter 4 and a generator 5 with a random value R.
  • the electronic component CI includes various external connection terminals. In the example, it is a component with serial data input / output, therefore with an I / O terminal for data input / output. It also includes a VSS ground terminal, a power terminal VCC and terminals relating to control signals (not shown).
  • the microprocessor receives instructions and data on a serial input / output port 8, connected to the data input / output terminal in connection with an external system.
  • the microprocessor internally generates different control signals to manage the different internal resources.
  • control signals there is shown a validation signal EN of the counter 4, a signal LOAD of initialization of the counter and an activation signal SEL of the random generator 5.
  • the counter When enabled (EN activated), the counter generates an ITO counting end signal. This end of counting information signal is used as the microprocessor interrupt signal. It is thus connected to an input of the interrupt port 7 of the microprocessor. It will be noted that the expression end of counting is a general expression which means as well that the counter has finished counting up to a determined value or that the counter has finished counting down to zero from a determined value.
  • the counter is a material resource.
  • the microprocessor 1 executes a main program contained in program memory, relative to data or instructions received from the serial input input port 8, in relation to an external system. According to the invention, the execution of the main program is suspended at random times, the time of the execution of a secondary program, contained in program memory.
  • a counter initialization routine is provided with a new random value.
  • this routine includes instructions to invalidate the counter (EN disabled), draw a random value R in the random generator 5, load (LOAD) this value in the counter, then activate the counter (EN enabled).
  • the counter When the counter has counted down to zero, it activates the ITO end of counting information signal, which causes an interruption on the microprocessor.
  • the execution of the main program is suspended for the time of execution (by the microprocessor) of the secondary program, corresponding to the interrupt management routine considered.
  • the secondary program includes at least the already seen sequence of initialization of the counter, at a new random value, so that a new interruption can take place.
  • This secondary program can correspond to a fixed number of instructions, in which case it is executed in constant time. For example, if the secondary program includes only the instructions corresponding to drawing a new random value R in the generator 5 and loading the counter 4 to this new value R (initialization), there is a secondary program executable in constant time. In this case, in addition to the execution of the main program, there are bits of code (corresponding to the secondary program) executed in constant time at random times.
  • the duration of execution of the secondary program is variable.
  • the secondary program provides for a test on a binary datum, modified at each passage in the program, the number of instructions executed next being a function of the result of the test.
  • the variable duration of execution depends on a mathematical function. For example, if this mathematical function requires a certain number of calculation turns to arrive at the result, this number of turns being a function of the input data, there will be a variable execution time, depending on a mathematical function. All these techniques for arriving at a variable duration are well known.
  • this variable execution time will be random.
  • the secondary program includes provision for deactivation of the counter, drawing of a new random value, counting down to zero of this value in a countdown loop, then initialization of the counter to a new random value.
  • This additional current consumption may be due, instantaneously, to instructions provided in the secondary program.
  • instructions provided in the secondary program For example, we can plan in this secondary program to execute turns of calculation of an algorithm, for example of a cryptography algorithm.
  • This execution will correspond to an instantaneous current consumption, that is to say the time of the execution of the instruction, which will interfere with the normal consumption of the main program by interposing in the normal current consumption as a function of the time due to execution of the main program. It can also be expected that this additional current consumption will have a lasting effect for a certain time.
  • the secondary program then provides for activating current consumption means, which will consume current for at least a certain time, during the execution of the following instructions of the secondary program and of the main program.
  • FIG. 2 A block diagram of an electronic component corresponding to this second embodiment of the invention is shown in Figure 2.
  • the electronic component comprises a pump of charges 9.
  • this charge pump normally designed to supply a high voltage VF? programming and / or erasing from the supply voltage VCC to allow programming and / or erasing of data in a non-volatile programmable and / or electrically erasable memory, such as for example the memories commonly called EPROM memories , EEPROM or flash EPROM.
  • this charge pump is associated with the program memory.
  • a known characteristic of such a pump is that it consumes a lot of current during the time of setting up the high voltage at the output and the programming or erasing time, which can be of the order of a few milliseconds.
  • a high current consumption is therefore superimposed which will mask the consumption of the following instructions of the secondary program and of the main program.
  • the invention is not limited to the embodiments or to the variants described. It covers any use of means to suspend the main program at random times for a time which may be fixed, variable or random, with or without the use of means to add additional current consumption.
  • the invention applies to all components comprising at least one counter and one random generator.
  • the choice of such or such secondary program depends on the resources of the component considered, on the efficiency in relation to the application considered.
  • Such a component is particularly useful in smart cards, to improve their inviolability.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Microcomputers (AREA)
  • Storage Device Security (AREA)

Abstract

Un composant électronique (CI) comprend un microprocesseur (1) et des moyens de mémorisation (2, 3) pour exécuter un programme principal. Un compteur (4) d'une valeur aléatoire (R) génère en sortie un signal d'information de fin de comptage (ITO) pour suspendre l'exécution du programme principal le temps de l'exécution d'un programme secondaire. Application aux cartes à puces.

Description

COMPOSANT ÉLECTRONIQUE ET PROCÉDÉ POUR MASQUER L'EXÉCUTION D'INSTRUCTIONS OU LA MANIPULATION DE
DONNÉES
La présente invention concerne un composant électronique et un procédé pour masquer 1 ' exécution d'instructions ou la manipulation de données.
La présente invention concerne plus particulièrement les composants électroniques utilisés dans des applications où l'accès à des services ou à des données est sévèrement contrôlé. De tels composants ont une architecture formée autour d'un microprocesseur et de mémoires. Ils mettent en oeuvre des algorithmes utilisant des données secrètes contenues dans le composant, inaccessibles de l'extérieur. Une donnée secrète peut ainsi servir à valider une transaction électronique telle qu'un achat, sans que cette donnée soit à aucun moment accessible de 1 ' extérieur du composan .
Cependant, l'observation de certains paramètres extérieurs tels que les données échangées avec un système extérieur, ou le courant consommé sur la borne d'alimentation du composant, permet dans certains cas de retrouver des informations concernant le composant, au moyen de traitements statistiques. En particulier, à partir de 1 ' observation en fonction du temps des informations circulant sur le bus de données, en général un bus série, il est possible de faire une corrélation entre ces informations et le déroulement de l'algorithme mis en oeuvre dans le composant.
Il peut être également possible de faire une corrélation de ces informations avec l'observation de la consommation de courant en fonction du temps. Il est alors possible de déduire la valeur d'un bit manipulé dans une instruction. On sait en effet qu'à un instant donné, la consommation en courant d'une instruction particulière varie selon la valeur "0" ou "1" du bit manipulé. La présente invention a pour but de masquer l'exécution d'instructions ou la manipulation de données dans le composant, afin de rendre stérile 1 ' observation de paramètres externes du composant électronique . Selon l'invention, on prévoit d'interrompre de manière aléatoire l'exécution du programme principal mis en oeuvre par le composant électronique, pour exécuter un programme secondaire. De cette manière, le déroulement du programme change tout le temps. Vu de l'extérieur, il n'est plus possible de faire des traitements statistiques, car les courbes relevées sont toutes décalées temporellement, de manière aléatoire. Si on prend l'exemple de l'observation des données échangées, les temps de réponse de la carte à n'importe quelle commande extérieure changent tout le temps, en sorte qu'il n'est plus possible d'en déduire une quelconque information pertinente.
En ce qui concerne l'observation de la consommation en courant, cette consommation en courant en fonction du temps est elle même découpée, diffusée par rapport à la courbe de consommation normale, en sorte que l'on ne peut obtenir aucune information pertinente.
Ainsi, telle que caractérisée, l'invention concerne un composant électronique comprenant au moins un microprocesseur et des moyens de mémorisation pour exécuter un programme principal .
Selon l'invention, le composant comprend en outre un compteur d'une valeur aléatoire générant en sortie une information pour suspendre l'exécution dudit programme le temps de l'exécution d'un programme secondaire. Dans un mode de réalisation de l'invention, ce temps d'exécution du programme secondaire est constant.
Dans un autre mode de réalisation de l'invention, ce temps d'exécution est variable. Il peut même être aléatoire.
Dans un perfectionnement, on prévoit que ce programme secondaire active des moyens de consommation en courant, qui vont venir fausser la courbe de consommation en courant du composant, rendant le masquage des opérations exécutées et des données manipulées encore plus efficace.
L'invention concerne aussi un procédé de masquage de l'exécution d'instruction ou de la manipulation de données dans un composant électronique. D'autres caractéristiques et avantages de l'invention sont détaillés dans la description suivante faite à titre indicatif et nullement limitatif et en référence aux dessins annexés, dans lesquels :
- la figure 1 représente un schéma-bloc d'un composant électronique selon l'invention; et
- la figure 2 représente une variante du schéma- bloc d'un composant électronique selon une variante de 1 ' invention.
La figure 1 représente un schéma-bloc simplifié d'un composant électronique CI selon l'invention. Il comprend un microprocesseur 1 et des ressources internes qui sont connectés à un bus de données 6. Les ressources internes comprennent notamment des mémoires, dans l'exemple, une mémoire programme 2 et une mémoire de travail 3, un compteur 4 et un générateur 5 d'une valeur aléatoire R.
Le composant électronique CI comprend différentes bornes de connexion externe. Dans l'exemple, c'est un composant à entrée/sortie série de données, avec donc une borne I/O d'entrée/sortie de données. Il comprend aussi une borne e masse VSS, une borne d'alimentation VCC et des bornes relatives à des signaux de contrôle (non représentés).
Le microprocesseur reçoit des instructions et des données sur un port d'entrée/sortie série 8, connecté à la borne d ' entrée/sortie de données en relation avec un système externe.
Le microprocesseur génère en interne différents signaux de contrôle pour gérer les différentes ressources internes . Parmi ces signaux de contrôle, on a représenté un signal de validation EN du compteur 4, un signal LOAD d'initialisation du compteur et un signal d'activation SEL du générateur aléatoire 5.
Quand il est validé (EN activé), le compteur génère un signal de fin de comptage ITO. Ce signal d'information de fin de comptage est utilisé comme signal d'interruption du microprocesseur. Il est ainsi connecté sur une entrée du port d ' interruption 7 du microprocesseur. On notera que l'expression fin de comptage est une expression générale qui veut dire aussi bien que le compteur a fini de compter jusqu'à une valeur déterminée ou que le compteur a fini de décompter à zéro depuis une valeur déterminée.
On notera que dans l'exemple plus particulièrement représenté le compteur est une ressource matérielle.
Le microprocesseur 1 exécute un programme principal contenu en mémoire programme, relativement à des données ou des instructions reçues du port d'entrée sortie série 8, en relation avec un système externe. Selon l'invention, l'exécution du programme principal est suspendue à des moments aléatoires, le temps de l'exécution d'un programme secondaire, contenu en mémoire programme.
Pour cela, au début du programme principal, on prévoit une routine d'initialisation du compteur avec une nouvelle valeur aléatoire. En pratique, cette routine comprend des instructions pour invalider le compteur (EN désactivé), tirer une valeur aléatoire R dans le générateur aléatoire 5, charger (LOAD) cette valeur dans le compteur, puis activer le compteur (EN activé).
Lorsque le compteur a décompté jusqu'à zéro, il active le signal d'information de fin de comptage ITO, ce qui provoque une interruption sur le microprocesseur. L'exécution du programme principal est suspendu le temps de l'exécution (par le microprocesseur) du programme secondaire, correspondant à la routine de gestion de l'interruption considérée.
Le programme secondaire comprend au minimum la séquence déjà vue d'initialisation du compteur, à une nouvelle valeur aléatoire, pour qu'une nouvelle interruption puisse avoir lieu.
Ce programme secondaire peut correspondre à un nombre fixe d'instructions, auquel cas il s'exécute en temps constant. Par exemple, si le programme secondaire comprend seulement les instructions correspondant au tirage d'une nouvelle valeur aléatoire R dans le générateur 5 et au chargement du compteur 4 à cette nouvelle valeur R (initialisation), on a un programme secondaire exécutable en temps constant. Dans ce cas, en plus de l'exécution du programme principal, on a des bouts de code (correspondant au programme secondaire) exécutés en temps constant à des moments aléatoires.
Dans une variante de l'invention, en prévoit que la durée d'exécution du programme secondaire soit variable.
Dans un premier exemple pratique de réalisation, le programme secondaire prévoit un test sur une donnée binaire, modifiée à chaque passage dans le programme, le nombre d'instructions exécutées ensuite étant fonction du résultat du test. On peut aussi prévoir que la durée variable d'exécution dépende d'une fonction mathématique. Par exemple, si cette fonction mathématique nécessite un certain nombre de tours de calcul pour arriver au résultat, ce nombre de tours étant fonction des données d'entrée, on aura une durée d'exécution variable, dépendant d'une fonction mathématique. Toutes ces techniques pour arriver à une durée variable sont bien connues.
Dans un autre exemple pratique, on prévoit que cette durée d'exécution variable soit aléatoire. On prévoit dans cet exemple que le programme secondaire comprend la désactivation du compteur, le tirage d'une nouvelle valeur aléatoire, le décomptage jusqu'à zéro de cette valeur dans une boucle de décomptage, puis l'initialisation du compteur à une nouvelle valeur aléatoire.
Dans cette variante, on introduit dans l'exécution du programme principal, des bouts de code exécutés en temps aléatoire à des moments aléatoires. En pratique, de nombreuses variantes de l'invention sont possibles.
Notamment, pour ne pas trop dégrader le temps d'exécution du programme principal, on peut prévoir de limiter dans le temps la durée totale des retards dus à l'exécution du ou des programmes secondaires.
Dans un autre mode de réalisation de l'invention, on prévoit non seulement de suspendre 1 ' exécution du programme principal à des moments aléatoires, mais aussi de prévoir une consommation en courant supplémentaire, qui va brouiller la consommation en courant due à l'exécution du programme principal.
Cette consommation en courant supplémentaire peut être due, de façon instantanée, à des instructions prévues dans le programme secondaire. Par exemple, on peut prévoir dans ce programme secondaire, d'exécuter des tours de calcul d'un algorithme, par exemple d'un algorithme de cryptographie.
A cette exécution va correspondre une consommation en courant instantanée, c'est à dire le temps de l'exécution de l'instruction, qui va brouiller la consommation normale du programme principal en venant s'intercaler dans la consommation de courant normale en fonction du temps due à 1 ' exécution du programme principal . On peut aussi prévoir que cette consommation de courant supplémentaire ait un effet durable pendant un certain temps. Le programme secondaire prévoit alors d'activer des moyens de consommation de courant, qui vont consommer du courant au moins un certain temps, pendant 1 ' exécution des instructions suivantes du programme secondaire et du programme principal.
Un schéma-bloc d'un composant électronique correspondant à ce deuxième mode de réalisation de l'invention est représenté sur la figure 2. En plus des éléments déjà décrits qui portent les mêmes références que sur la figure 1, le composant électronique comprend une pompe de charges 9.
Cette pompe de charges est normalement prévue pour fournir une haute tension VF? de programmation et/ou d'effacement à partir de la tension d'alimentation VCC pour permettre la programmation et/ou l'effacement de données dans une mémoire non volatile programmable et/ou effaçable électriquement, comme par exemple les mémoires communément appelées mémoires EPROM, EEPROM ou encore flash EPROM. Dans l'invention, cette pompe de charges est associée à la mémoire programme.
Dans l'exemple, elle est activée par un signal d'écriture E de la mémoire programme.
Une telle pompe a comme caractéristique connue de consommer beaucoup de courant pendant le temps d'établissement de la haute tension en sortie et le temps de la programmation ou de l'effacement, ce qui peut être de l'ordre de quelques millisecondes. En activant une telle pompe, par exemple, en prévoyant une instruction de programmation dans le programme secondaire, on surimpose donc une forte consommation en courant qui va masquer la consommation des instructions suivantes du programme secondaire et du programme principal.
L'invention ne se limite pas aux modes de réalisation ou aux variantes décrits. Elle couvre toute utilisation de moyens pour suspendre le programme principal à des moments aléatoires pendant un temps qui peut-être fixe, variable ou aléatoire, avec ou sans l'utilisation de moyens pour ajouter une consommation en courant supplémentaire.
Avec un tel masquage ou brouillage en utilisant l'une quelconque des variantes de l'invention ou une combinaison de celles-ci, aucun traitement statistique ne devient possible. En pratique, le choix de tel ou tel programme secondaire peut dépendre de l'application à laquelle le composant électronique est destiné.
L'invention s'applique à tous les composants comprenant au moins un compteur et un générateur aléatoire. Pour un composant électronique donné, le choix de tel ou tel programme secondaire dépend des ressources du composant considéré, de l'efficacité en rapport avec l'application considérée.
On peut aussi prévoir d'utiliser différents programmes secondaires, ce qui permet de mélanger les genres, pour améliorer le brouillage, le choix du programme secondaire à exécuter se faisant alors en début de routine d'interruption.
Un tel composant est tout particullièrement utilisable dans les cartes à puces, pour améliorer leur inviolabilité.

Claims

REVENDICATIONS
1. Composant électronique comprenant au moins un microprocesseur (1) et des moyens de mémorisation (2, 3) pour exécuter un programme principal, caractérisé en ce qu'il comprend en outre un compteur (4) d'une valeur aléatoire (R), ledit compteur générant en sortie un signal d'information de fin de comptage (ITO) pour suspendre 1 ' exécution dudit programme principal le temps de l'exécution d'un programme secondaire par le microprocesseur .
2. Composant électronique selon la revendication 1, caractérisé en ce que le temps d'exécution du programme secondaire est constant.
3. Composant électronique selon la revendication 1, caractérisé en ce que le temps d'exécution du programme secondaire est variable.
4. Composant électronique selon la revendication 3, caractérisé en ce que le temps d'exécution du programme secondaire est aléatoire.
5. Composant électronique selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre des moyens consommateur de courant activés par le programme secondaire.
6. Composant électronique selon la revendication 5, caractérisé en ce que ces moyens consommateur de courant comprennent une pompe de charges (9).
7. Composant électronique selon le revendication 5 ou 6 , caractérisé en ce que ces moyens comprennent des instructions entraînant une .consommation instantanée.
8. Procédé pour masquer l'exécution d'opérations ou la manipulation de données dans un composant électronique (CI) comprenant un microprocesseur (1) et des moyens de mémorisation (2, 3) pour exécuter un programme principal, caractérisé en ce que ce procédé consiste à utiliser un générateur (5) d'une valeur aléatoire (R) et un compteur (4) pour suspendre l'exécution du programme principal à des instants aléatoires, le temps de l'exécution d'un programme secondaire.
9. Procédé selon la revendication 8, caractérisé en ce que le programme secondaire consiste à invalider le compteur (4), à tirer une nouvelle valeur aléatoire (R), à initialiser le compteur (4) avec cette nouvelle valeur et à autoriser le décomptage avant de retourner à l'exécution du programme principal.
10. Procédé selon la revendication 8, caractérisé en ce que le programme secondaire est exécutable en temps aléatoire.
11. Procédé selon la revendication 10, caractérisé en ce que le programme secondaire consiste à invalider le compteur (4), à tirer une nouvelle valeur aléatoire (R), à décompter jusqu'à zéro cette nouvelle valeur aléatoire dans une boucle du programme secondaire, puis à tirer une nouvelle valeur aléatoire (R), à initialiser le compteur à cette nouvelle valeur et à activer le compteur avant de retourner à l'exécution du programme principal.
12. Procédé selon l'une quelconque des revendications 8 à 11, caractérisé en ce que le programme secondaire active en outre des moyens de consommation de courant.
13. Procédé selon la revendication 12, caractérisé en ce que les dits moyens de consommation de courant comprennent une pompe de charges (9).
14. Procédé selon la revendication 12 ou 13, caractérisé en ce que ces moyens comprennent des instructions provoquant une consommation en courant instantanée .
15. Procédé selon l'une quelconque des revendications 8 à 14, caractérisé en ce qu'il comprend différents programmes secondaires .
PCT/FR1999/002521 1998-10-16 1999-10-15 Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees WO2000023866A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP99949058A EP1121629A1 (fr) 1998-10-16 1999-10-15 Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees
JP2000577544A JP2002528784A (ja) 1998-10-16 1999-10-15 命令実行またはデータ処理を遮蔽する電子構成部品およびその方法
AU62077/99A AU6207799A (en) 1998-10-16 1999-10-15 Electronic component for masking execution of instructions or data manipulation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR98/12988 1998-10-16
FR9812988A FR2784763B1 (fr) 1998-10-16 1998-10-16 Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees

Publications (1)

Publication Number Publication Date
WO2000023866A1 true WO2000023866A1 (fr) 2000-04-27

Family

ID=9531646

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1999/002521 WO2000023866A1 (fr) 1998-10-16 1999-10-15 Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees

Country Status (6)

Country Link
EP (1) EP1121629A1 (fr)
JP (1) JP2002528784A (fr)
CN (1) CN1332860A (fr)
AU (1) AU6207799A (fr)
FR (1) FR2784763B1 (fr)
WO (1) WO2000023866A1 (fr)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002050640A1 (fr) * 2000-12-21 2002-06-27 Cp8 Technologies Procede de securisation de l'execution d'un programme dans un module electronique a microprocesseur
FR2857804A1 (fr) * 2003-07-17 2005-01-21 Atmel Corp Procede et appareil pour lisser la consommation de courant d ans un circuit integre
EP1651969A2 (fr) * 2003-07-17 2006-05-03 Atmel Corporation Methode et appareil pour lisser une consommation de courant dans un circuit integre
CN100412894C (zh) * 2001-09-13 2008-08-20 株式会社瑞萨科技 存储卡及其初始化设置方法
RU2469384C2 (ru) * 2007-11-26 2012-12-10 Морфо Способ маскировки перехода к концу срока службы электронного устройства и устройство, содержащее соответствующий контрольный модуль
CN103608822A (zh) * 2011-03-21 2014-02-26 茂福公司 掩饰电子装置寿命终期转换的方法及包含相应控制模块的装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001118042A (ja) * 1999-10-19 2001-04-27 Hitachi Ltd カード監視方法
EP1293856A1 (fr) * 2001-09-18 2003-03-19 EM Microelectronic-Marin SA Circuit Intégré sécurisé comprenant des parties à caractère confidentiel, et procédé pour sa mise en action
GB0221240D0 (en) * 2002-09-13 2002-10-23 Koninkl Philips Electronics Nv Current source for cryptographic processor
US20100264982A1 (en) 2007-12-13 2010-10-21 Nxp B.V. Electronic circuit and method of masking current requirements of an electronic circuit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4932053A (en) * 1988-11-10 1990-06-05 Sgs-Thomson Microelectronics, S.A. Safety device against the unauthorized detection of protected data
EP0448262A2 (fr) * 1990-03-20 1991-09-25 General Instrument Corporation Of Delaware Evitement de la détermination du temps d'exécution d'une routine prédéterminée en relation avec l'occurrence d'un événement externe observable au préalable
WO1997033217A1 (fr) * 1996-03-07 1997-09-12 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4932053A (en) * 1988-11-10 1990-06-05 Sgs-Thomson Microelectronics, S.A. Safety device against the unauthorized detection of protected data
EP0448262A2 (fr) * 1990-03-20 1991-09-25 General Instrument Corporation Of Delaware Evitement de la détermination du temps d'exécution d'une routine prédéterminée en relation avec l'occurrence d'un événement externe observable au préalable
WO1997033217A1 (fr) * 1996-03-07 1997-09-12 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002050640A1 (fr) * 2000-12-21 2002-06-27 Cp8 Technologies Procede de securisation de l'execution d'un programme dans un module electronique a microprocesseur
FR2818766A1 (fr) * 2000-12-21 2002-06-28 Bull Cp8 Procede de securisation de l'execution d'un programme implante dans un module electronique a microprocesseur, ainsi que le module electronique et la carte a microcircuit associes
CN100412894C (zh) * 2001-09-13 2008-08-20 株式会社瑞萨科技 存储卡及其初始化设置方法
FR2857804A1 (fr) * 2003-07-17 2005-01-21 Atmel Corp Procede et appareil pour lisser la consommation de courant d ans un circuit integre
US6954866B2 (en) 2003-07-17 2005-10-11 Atmel Corporation Method and apparatus for smoothing current consumption in an integrated circuit
EP1651969A2 (fr) * 2003-07-17 2006-05-03 Atmel Corporation Methode et appareil pour lisser une consommation de courant dans un circuit integre
EP1651969A4 (fr) * 2003-07-17 2007-03-07 Atmel Corp Methode et appareil pour lisser une consommation de courant dans un circuit integre
CN1823275B (zh) * 2003-07-17 2010-05-26 艾梅尔公司 用于平整化集成电路中的电流消耗的方法和装置
RU2469384C2 (ru) * 2007-11-26 2012-12-10 Морфо Способ маскировки перехода к концу срока службы электронного устройства и устройство, содержащее соответствующий контрольный модуль
CN103608822A (zh) * 2011-03-21 2014-02-26 茂福公司 掩饰电子装置寿命终期转换的方法及包含相应控制模块的装置

Also Published As

Publication number Publication date
AU6207799A (en) 2000-05-08
EP1121629A1 (fr) 2001-08-08
FR2784763A1 (fr) 2000-04-21
JP2002528784A (ja) 2002-09-03
CN1332860A (zh) 2002-01-23
FR2784763B1 (fr) 2001-10-19

Similar Documents

Publication Publication Date Title
EP0606029B1 (fr) Carte à puce avec données et programmes protégés contre le vieillissement
EP1605333B1 (fr) Contrôle de l'exécution d'un programme
EP0377368A1 (fr) Dispositif de traitement de données comportant une mémoire non volatile électriquement effaçable et reprogrammable
FR2968799A1 (fr) Procede et dispositif de controle d'execution pour des fonctions internes et des applications protegees embarquees dans des cartes a microcircuits pour terminaux mobiles
WO1999049416A1 (fr) Dispositifs pour masquer les operations effectuees dans une carte a microprocesseur
WO2000023866A1 (fr) Composant electronique et procede pour masquer l'execution d'instructions ou la manipulation de donnees
EP1220101B1 (fr) Procédé et dispositif de protection contre le piratage de circuits intégrés
EP1359550A1 (fr) Régéneration d'une quantité secrète à partir d'un identifiant d'un circuit intégré
FR2828779A1 (fr) Procede de calcul universel applique a des points d'une courbe elliptique
EP3441902B1 (fr) Procédé de protection d'un dispositif électronique contre des attaques par injection de faute
EP1344137A1 (fr) Procede et dispositif de securisation d'un traitement de donnees
EP1279141B1 (fr) Procede de contre mesure dans un microcircuit et carte a puce comportant ledit microcircuit
FR2786007A1 (fr) Procede de controle d'utilisation d'une carte a puce
EP3671519A1 (fr) Sécurisation d'une transaction au moyen d'une carte à puce et carte à puce
FR2812101A1 (fr) Protocole d'echange de messages entre applications implantees sur un systeme embarque, et systeme embarque correspondant
FR3011656A1 (fr) Procede et dispositif de realisation de fonction par un microcircuit
EP3317832B1 (fr) Procede de controle mis en oeuvre par un dispositif electronique au cours d'une transaction, et dispositif correspondant
EP3188032B1 (fr) Stockage de données dans une mémoire flash
EP1030314B1 (fr) Dispositif et procédé de test d'une mémoire non-volatile reprogrammable
EP2955661B1 (fr) Protection de données stockées dans une mémoire volatile
EP1455259B1 (fr) Procédé et dispositif de sélection de mode de fonctionnement d'un circuit intégré
EP0734023A1 (fr) Procédé de protection en écriture d'une mémoire en circuit intégré et circuit intégré correspondant
FR2821181A1 (fr) Procede de creation de valeurs aleatoires par un module associe a un microprocesseur
FR3080474A1 (fr) Procede de controle de commandes mis en oeuvre par un dispositif tel qu'une carte a puce, et dispositif.
FR2789774A1 (fr) Procede de comparaison securise de deux registres memoire, et module de securite mettant en oeuvre ce procede

Legal Events

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

Ref document number: 99812249.1

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AU BR CA CN IN JP KR MX RU SG US VN

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 1999949058

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: PA/a/2001/003684

Country of ref document: MX

ENP Entry into the national phase

Ref document number: 2000 577544

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 09807614

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1999949058

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1999949058

Country of ref document: EP