FR3011650A1 - METHOD AND DEVICE FOR REALIZING FUNCTION BY A MICROCIRCUIT - Google Patents
METHOD AND DEVICE FOR REALIZING FUNCTION BY A MICROCIRCUIT Download PDFInfo
- Publication number
- FR3011650A1 FR3011650A1 FR1359808A FR1359808A FR3011650A1 FR 3011650 A1 FR3011650 A1 FR 3011650A1 FR 1359808 A FR1359808 A FR 1359808A FR 1359808 A FR1359808 A FR 1359808A FR 3011650 A1 FR3011650 A1 FR 3011650A1
- Authority
- FR
- France
- Prior art keywords
- function
- microcircuit
- zone
- decoy
- memory
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000006870 function Effects 0.000 claims abstract description 131
- 230000015654 memory Effects 0.000 claims abstract description 79
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 238000012795 verification Methods 0.000 claims description 8
- 230000005856 abnormality Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005670 electromagnetic radiation Effects 0.000 claims description 2
- 230000006378 damage Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/073—Special arrangements for circuits, e.g. for protecting identification code in memory
- G06K19/07309—Means for preventing undesired reading or writing from or onto record carriers
- G06K19/07363—Means for preventing undesired reading or writing from or onto record carriers by preventing analysis of the circuit, e.g. dynamic or static power analysis or current analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé de réalisation de fonction par un microcircuit, comprenant : au moins une étape de détermination (205) de si une anomalie est détectée ou de si le fonctionnement du microcircuit est normal ; et pour chaque étape de détermination : lorsqu'il est déterminé qu'une anomalie est détectée, une étape de réalisation (210) d'une fonction de protection comprenant une commande d'écriture dans une première zone d'une mémoire non-volatile non-reprogrammable ; lorsqu'il est déterminé que le fonctionnement du microcircuit est normal, une étape de réalisation (215) d'une fonction leurre simulant la fonction de protection en étant perceptible, depuis l'extérieur du microcircuit, de manière sensiblement identique à la fonction de protection, la fonction leurre comprenant une commande d'écriture dans une seconde zone de la mémoire non-volatile non-reprogrammable, différente de la première zone.The invention relates to a method for performing a function by a microcircuit, comprising: at least one step of determining (205) whether an anomaly is detected or whether the operation of the microcircuit is normal; and for each determination step: when it is determined that an anomaly is detected, a step of performing (210) a protection function comprising a write command in a first area of a non-volatile memory not -reprogrammable; when it is determined that the operation of the microcircuit is normal, a step of producing (215) a decoy function simulating the protection function being perceptible, from outside the microcircuit, substantially identically to the protection function , the decoy function comprising a write command in a second zone of the non-volatile non-reprogrammable memory, different from the first zone.
Description
DOMAINE DE L'INVENTION L'invention concerne un procédé et un dispositif de réalisation de fonction par un microcircuit. Elle s'applique, en particulier, à la protection des cartes à microcircuits contre les attaques avec analyse de consommation électrique.FIELD OF THE INVENTION The invention relates to a method and a device for performing function by a microcircuit. It applies, in particular, to the protection of microcircuit cards against attacks with analysis of electrical consumption.
CONTEXTE DE L'INVENTION Afin d'améliorer la sécurité des données et programmes que les cartes à microcircuits conservent, les procédés couramment utilisés comprennent des étapes de vérification du fonctionnement normal du microcircuit, dans le but de détecter d'éventuelles anomalies dont une origine possible est une attaque.BACKGROUND OF THE INVENTION In order to improve the security of the data and programs that microcircuit cards retain, commonly used methods include steps of checking the normal operation of the microcircuit, with the aim of detecting possible anomalies of which a possible origin. is an attack.
A ce titre, aussi bien le fabricant que les développeurs d'applications pour ces microcircuits mettent en place des mécanismes de détection des attaques. Par exemple, le fabricant peut inclure des détecteurs de conditions anormales d'alimentation (e.g. glitches) ou encore de lumière et les développeurs peuvent implémenter des contre-mesures consistant par exemple à vérifier l'intégrité des variables manipulées, ou encore tester la redondance des informations. Lorsqu'une anomalie est détectée, la carte peut mettre en oeuvre une fonction de protection consistant par exemple à écrire une valeur donnée dans une zone de mémoire non-volatile réservée à un drapeau de destruction (Killcard flag). Lorsque certaines conditions sont remplies (par exemple lorsqu'un certain nombre d'anomalies ont été détectées), cette fonction de protection peut avoir pour effet d'interdire tout fonctionnement ultérieur de la carte et/ou de supprimer les données stockées dans le microcircuit. Afin de sécuriser ce drapeau de destruction, il est possible d'utiliser une méthode bien connue de sécurisation de données consistant à écrire les données à sécuriser (ici le drapeau de destruction) dans une mémoire non-volatile non-réinscriptible (One-Time- Programmable (OTP) memory). Les mémoires OTP sont en effet couramment utilisées dans les milieux embarqués, particulièrement sujets aux attaques. Ce type de mémoire présente un niveau de sécurité supérieur à celui d'une mémoire non-volatile classique puisque son contenu, une fois programmé, ne peut être modifié par un attaquant en vue de perturber le fonctionnement du microcircuit. En pratique, chaque zone d'une telle mémoire peut être constituée d'un fusible, grillé lors de la programmation par l'application d'une tension adéquate. Bien entendu, d'autres types de mémoires OTP existent.In this respect, both the manufacturer and the application developers for these microcircuits set up mechanisms for detecting attacks. For example, the manufacturer may include detectors for abnormal supply conditions (eg glitches) or even light and the developers can implement countermeasures, for example to check the integrity of the variables handled, or to test the redundancy of the variables. information. When an anomaly is detected, the card can implement a protection function consisting for example of writing a given value in a non-volatile memory area reserved for a destruction flag (Killcard flag). When certain conditions are met (for example when a certain number of anomalies have been detected), this protection function can have the effect of preventing any further operation of the card and / or deleting the data stored in the microcircuit. In order to secure this destruction flag, it is possible to use a well-known method of securing data consisting of writing the data to be secured (here the destruction flag) in a non-volatile non-rewritable memory (One-Time- Programmable (OTP) memory). OTP memories are indeed commonly used in embedded environments, particularly prone to attacks. This type of memory has a higher security level than a conventional non-volatile memory since its content, once programmed, can not be modified by an attacker to disrupt the operation of the microcircuit. In practice, each zone of such a memory may consist of a fuse, burned during programming by the application of a suitable voltage. Of course, other types of OTP memories exist.
Cependant, les commandes d'écriture en mémoire non-volatile non-réinscriptible consomment beaucoup plus de courant que des opérations en mémoire vive. L'exécution d'une fonction de protection est donc facilement détectable par un attaquant, du fait de sa signature en consommation électrique particulière.However, the write commands in non-volatile non-rewritable memory consume much more current than operations in RAM. The execution of a protection function is therefore easily detectable by an attacker, because of his signature in particular power consumption.
Lorsqu'un attaquant détecte cette signature particulière, il peut perturber physiquement le microcircuit (e.g. par perturbation de la fréquence d'horloge fournie au microcircuit ou par laser sur une zone du microcircuit), ou encore empêcher l'exécution de cette fonction de protection par exemple en coupant l'alimentation du microcircuit. L'opération d'écriture du drapeau de destruction permettant de protéger les données et programmes du microcircuit est alors interrompue. RESUME DE L'INVENTION La présente invention a ainsi pour objet de pallier au moins un de ces inconvénients. Dans ce contexte, un premier aspect de l'invention concerne un procédé de réalisation de fonction par un microcircuit, comprenant : au moins une étape de détermination de si une anomalie est détectée ou de si le fonctionnement du microcircuit est normal ; et pour chaque étape de détermination : lorsqu'il est déterminé qu'une anomalie est détectée, une étape de réalisation d'une fonction de protection comprenant une commande d'écriture dans une première zone d'une mémoire non-volatile non-reprogrammable ; lorsqu'il est déterminé que le fonctionnement du microcircuit est normal, une étape de réalisation d'une fonction leurre simulant la fonction de protection en étant perceptible, depuis l'extérieur du microcircuit, de manière sensiblement identique à la fonction de protection, la fonction leurre comprenant une commande d'écriture dans une seconde zone de la mémoire non-volatile non-reprogrammable, différente de la première zone. Corrélativement, un deuxième aspect de l'invention concerne un dispositif de réalisation de fonction par un microcircuit, comportant : des moyens de détermination de si une anomalie est détectée ou de si le fonctionnement du microcircuit est normal ; une mémoire non-volatile non-reprogrammable ; et des moyens de contrôle adaptés : lorsqu'il est déterminé qu'une anomalie est détectée, à réaliser une fonction de protection comprenant une commande d'écriture dans une première zone de la mémoire non-volatile non-reprogrammable ; lorsqu'il est déterminé que le fonctionnement du microcircuit est normal, à réaliser une fonction leurre simulant la fonction de protection en étant perceptible, depuis l'extérieur du microcircuit, de manière sensiblement identique à la fonction de protection, la fonction leurre comprenant une commande d'écriture dans une seconde zone de la mémoire non-volatile non-reprogrammable, différente de la première zone. Ainsi, un attaquant cherchant à perturber le fonctionnement du microcircuit aura des difficultés à percevoir la réalisation de la fonction de protection puisque même si aucune anomalie n'est détectée par le microcircuit, la fonction leurre simule la réalisation de la fonction de protection. De plus, dans le cas où l'attaquant arrête l'alimentation du microcircuit comme mentionné ci-avant dès qu'il perçoit une signature caractéristique d'une écriture dans une mémoire non-volatile (par la fonction de protection et par la fonction leurre), il ne peut analyser le fonctionnement du microcircuit de manière aussi efficace que dans l'art antérieur. L'exécution de telles commandes d'écriture peut aboutir ou non à l'écriture effective de données en mémoire non-volatile non-réinscriptible. D'autres caractéristiques du procédé et du dispositif selon des modes de réalisation de l'invention sont décrites dans les revendications dépendantes.When an attacker detects this particular signature, he can physically disrupt the microcircuit (eg by disturbing the clock frequency supplied to the microcircuit or by laser on an area of the microcircuit), or even prevent the execution of this protection function by example by cutting the power of the microcircuit. The operation of writing the destruction flag for protecting the data and programs of the microcircuit is then interrupted. SUMMARY OF THE INVENTION The present invention thus aims to overcome at least one of these disadvantages. In this context, a first aspect of the invention relates to a method of performing a function by a microcircuit, comprising: at least one step of determining whether an anomaly is detected or whether the operation of the microcircuit is normal; and for each determination step: when it is determined that an abnormality is detected, a step of performing a protection function comprising a write command in a first area of a non-volatile non-reprogrammable memory; when it is determined that the operation of the microcircuit is normal, a step of performing a decoy function simulating the protection function being perceptible, from outside the microcircuit, substantially identically to the protection function, the function decoy comprising a write command in a second zone of the non-volatile non-reprogrammable memory, different from the first zone. Correlatively, a second aspect of the invention relates to a device for performing a function by a microcircuit, comprising: means for determining whether an anomaly is detected or whether the operation of the microcircuit is normal; a non-volatile non-reprogrammable memory; and adapted control means: when it is determined that an abnormality is detected, performing a protection function comprising a write command in a first area of the non-volatile non-reprogrammable memory; when it is determined that the operation of the microcircuit is normal, to perform a decoy function simulating the protection function being perceptible from the outside of the microcircuit, substantially identically to the protection function, the decoy function comprising a control writing in a second zone of the non-volatile non-reprogrammable memory, different from the first zone. Thus, an attacker seeking to disrupt the operation of the microcircuit will have difficulty in perceiving the realization of the protection function since even if no anomaly is detected by the microcircuit, the decoy function simulates the realization of the protection function. In addition, in the case where the attacker stops feeding the microcircuit as mentioned above as soon as he perceives a characteristic signature of a write in a non-volatile memory (by the protection function and the decoy function) ), it can not analyze the operation of the microcircuit as effectively as in the prior art. The execution of such write commands may or may not result in the actual writing of data in non-volatile non-rewritable memory. Other features of the method and device according to embodiments of the invention are described in the dependent claims.
Chaque zone de la mémoire non-volatile non-réinscriptible n'est programmable qu'une unique fois, toute tentative de reprogrammation n'ayant pas d'effet sur le contenu de ladite zone. Or, les inventeurs ont remarqué que, contrairement à ce qu'on pouvait escompter, la commande d'écriture en mémoire non-réinscriptible effectuée par la fonction leurre a une signature similaire à l'écriture dans cette même mémoire réalisée par la fonction de protection, même lorsque la fonction leurre est réitérée et commande donc l'écriture dans une zone mémoire non modifiable. Dans un mode particulier de réalisation de l'invention, l'étape de détermination du fonctionnement normal du circuit comprend une étape de mesure d'au moins un paramètre de la liste suivante : température, tension d'alimentation, désadaptation (glitches), lumière, fréquence d'horloge. Dans un mode particulier de réalisation de l'invention, l'étape de détermination du fonctionnement normal du circuit comprend une étape de comparaison des résultats de deux exécutions, ou une étape de vérification d'une relation entre deux variables de calcul, ou une étape de vérification d'une propriété d'une variable. La fonction de protection est par exemple une fonction de mise hors service du microcircuit comme une fonction Killcard consistant à écrire une donnée dans une zone de mémoire non-volatile non-réinscriptible réservée à un drapeau de destruction (Killcard flag) tel que précité.Each zone of the non-volatile non-rewritable memory is programmable only once, any reprogramming attempt having no effect on the content of said zone. However, the inventors have noticed that, contrary to what might be expected, the non-rewritable memory write command performed by the decoy function has a signature similar to the writing in this memory performed by the protection function. , even when the decoy function is reiterated and therefore controls the writing in a non-modifiable memory zone. In a particular embodiment of the invention, the step of determining the normal operation of the circuit comprises a step of measuring at least one parameter of the following list: temperature, supply voltage, mismatch (glitches), light , clock frequency. In a particular embodiment of the invention, the step of determining the normal operation of the circuit comprises a step of comparing the results of two executions, or a step of verifying a relationship between two calculation variables, or a step checking a property of a variable. The protection function is for example a decommissioning function of the microcircuit as a Killcard function of writing data in a non-volatile memory area non-rewritable reserved for a Killcard flag as mentioned above.
Sous certaines conditions, la détection de ce drapeau de destruction peut par exemple provoquer le blocage du fonctionnement de la carte (via l'arrêt du programme en cours d'exécution et l'empêchement d'une réinitialisation de la carte), ou en variante la destruction immédiate des données qu'elle contient.Under certain conditions, the detection of this destruction flag may for example cause the blocking of the operation of the card (by stopping the program being executed and preventing a reset of the card), or alternatively the immediate destruction of the data it contains.
Dans un mode particulier de réalisation de l'invention, la fonction leurre a une consommation électrique identique à celle de la fonction de protection ; ou la fonction leurre a un rayonnement électromagnétique sensiblement identique à celui de la fonction de protection. En variante, une grandeur physique perceptible de l'extérieur du microcircuit, 5 modulée par la fonction de protection et la fonction leurre peut être un champ électromagnétique, une résistance, une capacité, une inductance, une tension, ou une intensité. On note que, dans ce type d'attaque, si l'attaquant ne coupe pas l'alimentation électrique alors qu'il détecte une consommation électrique élevée, dans le but par exemple de poursuivre l'observation du fonctionnement du microcircuit après la réalisation d'une fonction 10 leurre, il laisse nécessairement s'exécuter la fonction de protection dès que son attaque a été détectée. Dans un mode particulier de réalisation de l'invention, le procédé comprend plusieurs étapes de détermination déterminant que le fonctionnement du microcircuit est normal, et au moins deux étapes de réalisation d'une même fonction leurre comprenant une 15 commande d'écriture dans la même seconde zone. Ainsi, lorsque la fonction leurre est plusieurs fois réalisée, seule la première commande d'écriture dans la seconde zone de la mémoire non-volatile non-reprogrammable par la fonction leurre aura un effet sur le contenu de cette mémoire, puisque la mémoire n'est pas reprogrammable. Toutefois, de l'extérieur, les différentes réalisations de la fonction leurre 20 seront perçues de la même manière, en termes de consommation électrique par exemple. Dans un mode particulier de réalisation de l'invention, le même algorithme d'écriture est mis en oeuvre lors de l'exécution des commandes d'écriture respectivement de la fonction de protection et de la fonction leurre, bien qu'elles visent des zones différentes. La signature de la fonction leurre en est d'autant plus similaire à la signature de la 25 fonction de protection. Dans un mode particulier de réalisation de l'invention, au moins une des commandes d'écriture ne fait intervenir aucune donnée de vérification. Notamment, aucune somme de vérification (Checksum) n'est mise en oeuvre. Dans un mode particulier de réalisation de l'invention, au moins une des 30 commandes d'écriture ne comprend pas la relecture de la donnée écrite. Ces dispositions permettent chacune d'accélérer l'écriture en mémoire non-volatile non-réinscriptible, réduisant ainsi le risque d'une action de l'attaquant pour perturber le microcircuit avant la réalisation complète de la fonction de protection, sans pour autant que les signatures des différentes fonctions soient différentes. 35 Par ailleurs, le fonctionnement du microcircuit est accéléré puisque le temps de calcul nécessaire à la mise en oeuvre des commandes d'écriture sans vérification et/ou sans relecture est réduit. Les avantages, buts et caractéristiques particulière du dispositif sont similaires à ceux du procédé précité.In a particular embodiment of the invention, the decoy function has a power consumption identical to that of the protection function; or the decoy function has electromagnetic radiation substantially identical to that of the protection function. Alternatively, a physical magnitude perceivable from outside the microcircuit, modulated by the protection function and the decoy function, may be an electromagnetic field, a resistor, a capacitance, an inductance, a voltage, or an intensity. It is noted that, in this type of attack, if the attacker does not cut the power supply while he detects a high power consumption, for the purpose for example to continue the observation of the operation of the microcircuit after the completion of a decoy function, it necessarily lets the protection function execute as soon as its attack has been detected. In a particular embodiment of the invention, the method comprises several determination steps determining that the operation of the microcircuit is normal, and at least two steps of performing the same decoy function comprising a write command in the same manner. second zone. Thus, when the decoy function is performed several times, only the first write command in the second zone of the non-volatile memory that can not be reprogrammed by the decoy function will have an effect on the content of this memory, since the memory is not reprogrammable. However, from the outside, the various embodiments of the decoy function 20 will be perceived in the same way, in terms of electrical consumption for example. In a particular embodiment of the invention, the same write algorithm is implemented during the execution of the write commands respectively of the protection function and the decoy function, although they target zones different. The signature of the decoy function is all the more similar to the signature of the protection function. In a particular embodiment of the invention, at least one of the write commands does not involve any verification data. In particular, no check sum (Checksum) is implemented. In a particular embodiment of the invention, at least one of the write commands does not include the reading of the written data. These provisions each make it possible to accelerate the writing in non-volatile non-rewritable memory, thus reducing the risk of an action by the attacker to disrupt the microcircuit before the complete realization of the protection function, without the signatures of the different functions are different. Moreover, the operation of the microcircuit is accelerated since the computation time necessary for the implementation of the write commands without verification and / or without replay is reduced. The advantages, aims and special features of the device are similar to those of the aforementioned method.
Dans un mode particulier de réalisation, les différentes étapes du procédé précité sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre par un microprocesseur, ce programme comprenant des instructions adaptées à la mise en oeuvre des étapes du procédé tel que mentionné ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un microprocesseur, et comprenant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comprendre un moyen de stockage, tel qu'une ROM, par exemple une ROM de microcircuit, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur, ou encore une mémoire flash. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur une plateforme de stockage d'un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Le support d'informations et le programme d'ordinateur précités présentent des caractéristiques et avantages analogues au procédé qu'ils mettent en oeuvre. BREVE DESCRIPTION DES FIGURES D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les figures ci-jointes qui en illustrent des exemples de réalisation dépourvus de tout caractère limitatif. Sur les figures : - La Figure 1 représente schématiquement un dispositif conforme à un mode de réalisation particulier de l'invention, - La Figure 2 représente sous forme d'organigramme, les principales étapes d'un procédé selon un mode particulier de réalisation de l'invention, - La Figure 3 illustre schématiquement l'état de la mémoire non-volatile non- réinscriptible après plusieurs réalisations de la fonction leurre, selon un scénario particulier de réalisation de l'invention. - La Figure 4 représente sous forme d'organigramme, un algorithme d'écriture en mémoire non-volatile non-réinscriptible courant pouvant être utilisée par les fonctions de protection et leurre, et - La Figure 5 représente sous forme d'organigramme, un algorithme d'écriture en mémoire non-volatile non-réinscriptible simplifié pouvant être utilisée par les fonctions de protection et leurre. DESCRIPTION DETAILLEE DE L'INVENTION Dans la description qui va suivre, la grandeur physique perceptible depuis l'extérieur du microcircuit considérée à titre d'exemple non limitatif est la consommation électrique, du fait que les attaques les plus couramment rencontrées aujourd'hui la concernent. Cependant, la présente invention ne se limite pas à ce type de grandeur physique modulée lors de la réalisation d'une fonction de protection ou d'une fonction leurre mais s'étend, bien au contraire, à toutes les grandeurs physiques modulées perceptibles à l'extérieur d'un microcircuit, par contact avec ce microcircuit ou avec des liaisons reliées à lui ou à distance. Ainsi, une grandeur physique modulée concernée par la présente invention peut être un rayonnement ou un champ électromagnétique, une résistance, une capacité, une inductance, une tension, une intensité ou une consommation électrique, par exemple.In a particular embodiment, the various steps of the aforementioned method are determined by instructions of computer programs. Consequently, the invention also relates to a computer program on an information medium, this program being capable of being implemented by a microprocessor, this program comprising instructions adapted to the implementation of the steps of the method such as than mentioned above. This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape. The invention is also directed to a microprocessor-readable information medium, and including instructions of a computer program as mentioned above. The information carrier may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a microcircuit ROM, or a magnetic recording means, for example a hard disk, or a flash memory. On the other hand, the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention may in particular be downloaded to a storage platform of an Internet type network. Alternatively, the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question. The above-mentioned information carrier and computer program have characteristics and advantages similar to the method they implement. BRIEF DESCRIPTION OF THE FIGURES Other features and advantages of the invention will become apparent in the following description, illustrated by the accompanying figures which illustrate embodiments having no limiting character. In the figures: - Figure 1 shows schematically a device according to a particular embodiment of the invention, - Figure 2 represents in flowchart form, the main steps of a method according to a particular embodiment of the invention. FIG. 3 schematically illustrates the state of the non-volatile non-rewritable memory after several embodiments of the decoy function, according to a particular embodiment of the invention. FIG. 4 represents, in flowchart form, a current non-volatile non-volatile memory write algorithm that can be used by the protection and decoy functions, and FIG. 5 represents in the form of a flow chart, an algorithm Simplest non-volatile non-volatile memory write function that can be used by the protection and decoy functions. DETAILED DESCRIPTION OF THE INVENTION In the following description, the physical quantity perceptible from the outside of the microcircuit considered as a non-limiting example is the power consumption, because the attacks most commonly encountered today concern it. . However, the present invention is not limited to this type of physical quantity modulated during the performance of a protection function or a decoy function but extends, on the contrary, to all the modulated physical quantities perceptible to the outside of a microcircuit, by contact with this microcircuit or with links connected to it or remotely. Thus, a modulated physical quantity concerned by the present invention may be a radiation or an electromagnetic field, a resistance, a capacitance, an inductance, a voltage, an intensity or an electrical consumption, for example.
De façon générale, si une anomalie est détectée au cours du fonctionnement du microcircuit, une fonction de protection du microcircuit est réalisée, modulant ainsi, en conséquence, au moins une grandeur physique prédéterminée perceptible à l'extérieur du microcircuit. Conformément à la présente invention, au cours du fonctionnement normal du microcircuit, une fonction leurre simulant la fonction de protection est réalisée en modulant chaque grandeur physique prédéterminée perceptible à l'extérieur du microcircuit de manière sensiblement identique à la fonction de protection. La Figure 1 représente une carte à microcircuit 105 comportant les éléments suivants reliés entre eux par un bus 155 : - un microprocesseur 110, - des entrées/sorties 115, - une mémoire morte 120 stockant un système d'exploitation 125, et - une mémoire non-volatile non-réinscriptible 130 comportant une matrice de mémoire 135 et directement contrôlée par le microprocesseur 110.In general, if an anomaly is detected during the operation of the microcircuit, a protection function of the microcircuit is performed, thereby modulating, accordingly, at least one predetermined physical quantity perceptible outside the microcircuit. According to the present invention, during normal operation of the microcircuit, a decoy function simulating the protection function is performed by modulating each predetermined physical quantity perceptible outside the microcircuit substantially identically to the protection function. FIG. 1 represents a microcircuit card 105 comprising the following elements interconnected by a bus 155: a microprocessor 110, inputs / outputs 115, a read-only memory 120 storing an operating system 125, and a memory non-volatile non-rewritable 130 having a memory array 135 and directly controlled by the microprocessor 110.
Cette mémoire non-volatile non-réinscriptible (one-time-programmable memory ou OTP memory) n'étant programmable qu'une unique fois, toute tentative de reprogrammation n'a pas d'effet sur celle-ci. Ce type de mémoire présente donc un niveau de sécurité supérieur à celui d'une mémoire non-volatile classique puisque son contenu, une fois programmé, ne peut être modifié par un attaquant en vue de perturber le fonctionnement du microcircuit.Since this non-volatile non-volatile memory (one-time-programmable memory or OTP memory) is only programmable once, any reprogramming attempt has no effect on it. This type of memory therefore has a higher security level than a conventional non-volatile memory since its content, once programmed, can not be modified by an attacker to disrupt the operation of the microcircuit.
Un programme 150 d'écriture simplifié (ou algorithme d'écriture simplifié), dont les instructions sont représentées sur la Figure 5 décrite ultérieurement, est stocké par exemple dans la mémoire morte 120 ou dans une mémoire non-volatile. En variante, le programme 150 est directement implémenté par le système d'exploitation 125 stocké en mémoire morte 120.A simplified writing program 150 (or simplified writing algorithm), the instructions of which are shown in FIG. 5 described later, is stored, for example, in the read-only memory 120 or in a non-volatile memory. As a variant, the program 150 is directly implemented by the operating system 125 stored in read-only memory 120.
Ainsi ces mémoires peuvent constituer un support d'informations au sens de l'invention. La mémoire morte 120 ou une mémoire non-volatile stockent des instructions d'un programme de fonctionnement de la carte 105. Ce programme met notamment en oeuvre les étapes du mode de réalisation particulier illustré sur la Figure 2.Thus these memories can constitute an information carrier within the meaning of the invention. The read-only memory 120 or a non-volatile memory store instructions of an operating program of the card 105. This program notably implements the steps of the particular embodiment illustrated in FIG. 2.
En particulier, au cours de son fonctionnement, la carte à microcircuit détermine (étape 205) si une anomalie est détectée ou si le fonctionnement de la carte est normal. En pratique, cette étape consiste par exemple à vérifier une somme de contrôle ou de vérification (Checksum), c'est-à-dire à vérifier que des données inscrites en mémoire sont bien cohérentes avec la somme de vérification associée à ces données. En variante, la détermination peut par exemple être basée sur la comparaison des résultats obtenus par deux mises en oeuvre d'un même algorithme. A l'issue de la détermination, si une anomalie est détectée, une fonction de protection, destinée à protéger la carte et/ou son contenu est réalisée (c'est-à-dire mise en oeuvre).In particular, during its operation, the microcircuit card determines (step 205) whether an abnormality is detected or whether the operation of the card is normal. In practice, this step consists, for example, in verifying a checksum or checksum, that is to say, in verifying that data entered in memory are coherent with the checksum associated with these data. As a variant, the determination may for example be based on the comparison of the results obtained by two implementations of the same algorithm. At the end of the determination, if an anomaly is detected, a protection function, intended to protect the card and / or its contents is performed (that is to say implemented).
Au contraire, si aucune anomalie n'est détectée, c'est-à-dire s'il est déterminé que le fonctionnement est normal, une fonction leurre simulant la fonction de protection est réalisée. Cette fonction leurre est configurée de sorte à être perceptible, depuis l'extérieur dudit microcircuit, de manière sensiblement identique à la fonction de protection. Dans des modes de réalisation simples, la fonction leurre est identique à la fonction de protection à une valeur de paramètre ou de variable près. Comme illustré sur la Figure 2, dans un mode particulier de réalisation, la fonction de protection consiste, au cours d'une étape 210, à écrire une donnée prédéterminée dans une première zone d'une mémoire non-volatile non-réinscriptible. Il s'agit, par exemple, de mettre à une valeur prédéterminée un drapeau de destruction, en écrivant une donnée prédéterminée dans une première zone de la mémoire non-volatile non-réinscriptible (OTP) spécifiquement dédiée à ce drapeau. Autrement dit, la présence de cette donnée prédéterminée dans cette première zone est le résultat de la réalisation ou de la mise en oeuvre de cette fonction de protection. Ainsi, l'écriture d'une telle donnée dans une zone de mémoire différente de cette première zone dédiée au drapeau, n'est pas prise en compte par la carte comme une valeur de drapeau de destruction appelant par exemple au blocage du fonctionnement de la carte (via l'arrêt du programme en cours d'exécution et l'empêchement d'une réinitialisation de la carte), ou en variante à la destruction immédiate des données qu'elle contient.On the contrary, if no anomaly is detected, that is to say if it is determined that the operation is normal, a decoy function simulating the protection function is performed. This decoy function is configured so as to be perceptible, from the outside of said microcircuit, substantially identically to the protection function. In simple embodiments, the decoy function is identical to the protection function at a parameter or variable value. As illustrated in FIG. 2, in a particular embodiment, the protection function consists, during a step 210, in writing a predetermined datum in a first zone of a non-volatile non-rewritable memory. For example, it is a matter of setting a destruction flag to a predetermined value by writing a predetermined datum in a first zone of the non-volatile non-rewritable memory (OTP) specifically dedicated to this flag. In other words, the presence of this predetermined datum in this first zone is the result of the implementation or implementation of this protection function. Thus, the writing of such data in a memory area different from this first zone dedicated to the flag, is not taken into account by the card as a destruction flag value calling for example to block the operation of the flag. card (by stopping the running program and preventing a reset of the card), or alternatively to the immediate destruction of the data it contains.
Dans ce mode de réalisation, même si aucune anomalie n'est détectée, c'est-à-dire si le fonctionnement du circuit est déterminé comme étant normal, on effectue une étape 215 de réalisation d'une fonction leurre présentant la même signature, en termes de consommation électrique, que l'écriture par la fonction de protection d'une donnée prédéterminée dans la première zone de la mémoire non-volatile non-réinscriptible. Dans un mode de réalisation simple, la fonction leurre consiste à écrire une donnée en mémoire non-volatile non-réinscriptible, dans une deuxième zone, différente de la première zone. On rappelle que cette deuxième zone n'est pas la zone dédiée au drapeau (première zone) et donc l'écriture d'une donnée, quelle qu'elle soit, dans cette zone ne sera pas interprétée par la carte comme une valeur de drapeau de destruction appelant à la destruction immédiate des données qu'elle contient ou au blocage du fonctionnement de la carte, comme c'est le cas lors de la mise en oeuvre de la fonction de protection. Suite à l'exécution de la commande d'écriture de la fonction leurre, une nouvelle étape de détermination 205 peut être mise en oeuvre à un instant ultérieur de fonctionnement de la carte à microcircuit. Si au cours de la mise en oeuvre du procédé, il est déterminé plusieurs fois que le fonctionnement du microcircuit est normal, la fonction leurre commande plusieurs fois l'écriture de données dans la mémoire non-volatile non-réinscriptible. Selon un mode de réalisation particulier de l'invention, ces commandes d'écriture se font à chaque fois dans la même zone de mémoire, correspondant à la seconde zone précitée. Cela permet de ne monopoliser qu'une seule zone de la mémoire non-volatile non-réinscriptible pour les différentes mises en oeuvre de la fonction leurre. Considérons un exemple non limitatif de scénario, dans lequel par exemple trois étapes de détermination permettent de déterminer successivement le fonctionnement normal de la carte à deux reprises puis la détection d'une anomalie. La Figure 3 représente l'état de la mémoire non-volatile non-réinscriptible à l'issue de chacune des commandes d'écriture engendrées à la suite des trois étapes de détermination. La mémoire non-volatile non-réinscriptible comprend dans cet exemple quatre zones de mémoire Z1, Z2, Z3, Z4. La première zone Z1, réservée au drapeau de destruction et la deuxième zone Z2, réservée à la fonction leurre sont vierges lors de la mise en oeuvre de la première étape de détermination. Dans cet exemple, au cours d'une première étape de détermination 205, la carte détermine le fonctionnement normal de la carte, la fonction leurre commande l'écriture d'une donnée D1 dans la seconde zone Z2 différente de la première zone Z1 réservée au drapeau de destruction. Suite à cette écriture, le procédé peut reboucler, lors du fonctionnement ultérieur, sur une seconde étape de détermination 205 à l'issue de laquelle le fonctionnement normal de la carte est de nouveau constaté.In this embodiment, even if no anomaly is detected, that is to say if the operation of the circuit is determined to be normal, a step 215 is carried out for producing a decoy function having the same signature, in terms of power consumption, that writing by the protection function of a predetermined datum in the first area of the non-volatile memory non-rewritable. In a simple embodiment, the decoy function consists of writing data in non-volatile non-rewritable memory in a second zone, different from the first zone. Remember that this second zone is not the zone dedicated to the flag (first zone) and therefore the writing of any data in this zone will not be interpreted by the map as a flag value. destroying the data contained therein or blocking the operation of the card, as is the case when implementing the protection function. Following the execution of the write command of the decoy function, a new determination step 205 may be implemented at a later time of operation of the microcircuit card. If during the implementation of the method, it is determined several times that the operation of the microcircuit is normal, the decoy function controls several times the writing of data in the non-volatile memory non-rewritable. According to a particular embodiment of the invention, these write commands are each time in the same memory zone, corresponding to the second aforementioned zone. This makes it possible to monopolize only one zone of the non-volatile memory non-rewritable for the various implementations of the decoy function. Consider a non-limiting example of a scenario, in which for example three determination steps make it possible to successively determine the normal operation of the card twice and then the detection of an anomaly. FIG. 3 represents the state of the non-volatile non-rewritable memory at the end of each of the write commands generated following the three determination steps. The non-volatile non-rewritable memory comprises in this example four memory zones Z1, Z2, Z3, Z4. The first zone Z1, reserved for the destruction flag and the second zone Z2, reserved for the decoy function are blank during the implementation of the first determination step. In this example, during a first determination step 205, the card determines the normal operation of the card, the decoy function controls the writing of a datum D1 in the second zone Z2 different from the first zone Z1 reserved for flag of destruction. Following this writing, the process can loop back, during the subsequent operation, on a second determination step 205 at the end of which the normal operation of the card is again found.
La fonction leurre commande l'écriture d'une donnée D2 (différente ou bien égale à la donnée D1) dans la seconde zone Z2, mais cette commande d'écriture n'a pas d'effet sur la zone de mémoire Z2 puisque la donnée D1 a déjà été écrite dans cette zone de mémoire Z2 et que la mémoire est justement non-réinscriptible.The decoy function controls the writing of a datum D2 (different or equal to the datum D1) in the second zone Z2, but this write command has no effect on the memory zone Z2 since the datum D1 has already been written in this zone of memory Z2 and that the memory is precisely non-rewritable.
L'état de la mémoire à l'issue de la seconde réalisation de la fonction leurre est donc identique à l'état précédent (c'est-à-dire à l'issue de la première réalisation de la fonction leurre). Bien que sans effet sur le contenu de la mémoire non-réinscriptible, cette seconde commande d'écriture provoque une consommation de courant et est perçue par l'attaquant comme une écriture classique en mémoire non-volatile telle que celle mise en oeuvre par la fonction de protection. Suite à cette seconde commande d'écriture, le procédé peut reboucler, lors du fonctionnement ultérieur, sur une troisième étape de détermination 205 à l'issue de laquelle une anomalie est détectée.The state of memory at the end of the second embodiment of the decoy function is therefore identical to the previous state (that is to say at the end of the first implementation of the decoy function). Although having no effect on the content of the non-rewritable memory, this second write command causes current consumption and is perceived by the attacker as a conventional write in non-volatile memory such as that implemented by the function. protection. Following this second write command, the method can loop back, during subsequent operation, on a third determination step 205 at the end of which an anomaly is detected.
La fonction de protection est alors réalisée et la valeur Killcard du drapeau de destruction est écrite dans la zone prévue à cet effet, à savoir la première zone Z1, jusqu'alors vierge. Ainsi, alors que la fonction leurre est plusieurs fois mise en oeuvre, seule la première commande d'écriture dans la seconde zone de la mémoire non-volatile non- reprogrammable par la fonction leurre aura un effet sur le contenu de la mémoire, puisque cette mémoire n'est pas reprogrammable. De retour à la Figure 2, pour que les signatures soient les plus proches possible, au cours de la commande d'écriture dans la deuxième zone, on commande l'écriture un même nombre d'informations binaires que la donnée prédéterminée et on met en oeuvre le même protocole (ou la même routine ou le même algorithme) d'écriture que lors de l'écriture de la donnée prédéterminée. Préférentiellement, au cours de la commande d'écriture dans la deuxième zone, on commande l'écriture de la donnée prédéterminée (c'est à dire la donnée écrite par la fonction de protection) dans la deuxième zone. Par exemple, si la fonction Killcard(Z1) est utilisée lorsqu'il est déterminé qu'une anomalie est détectée, la fonction Killcard(Z2) est mise en oeuvre lorsqu'il n'y a pas de détection d'une anomalie c'est-à-dire lorsque le microcircuit fonctionne normalement. Un code, ou série d'instructions, correspondant est le suivant: If anomaly detected Complete processing of the current APDU; Killcard(Z1); Else Complete processing of the current APDU Killcard(Z2);40 Dans ce cadre, la Figure 4 représente un exemple de fonction Killcard pouvant être utilisée par les fonctions de protection et leurre. Cette fonction comprend une commande d'écriture constituée d'instructions correspondant à un algorithme courant d'écriture d'une donnée en mémoire non-volatile non-réinscriptible.The protection function is then performed and the Killcard value of the destruction flag is written in the zone provided for this purpose, namely the first zone Z1, hitherto blank. Thus, while the decoy function is implemented several times, only the first write command in the second zone of the non-volatile memory that can not be reprogrammable by the decoy function will have an effect on the content of the memory, since this memory is not reprogrammable. Returning to FIG. 2, so that the signatures are as close as possible, during the write command in the second zone, the same number of binary information is commanded as the predetermined datum and implement the same protocol (or the same routine or the same algorithm) of writing as when writing the predetermined data. Preferably, during the write command in the second zone, the writing of the predetermined datum (ie the datum written by the protection function) is commanded in the second zone. For example, if the Killcard (Z1) function is used when it is determined that an anomaly is detected, the Killcard (Z2) function is implemented when there is no detection of an anomaly. that is, when the microcircuit is operating normally. A corresponding code, or series of instructions, is: If anomaly detected Complete processing of the current APDU; Killcard (Z1); In this context, Figure 4 shows an example of a Killcard function that can be used by the protection and decoy functions. This function comprises a write command consisting of instructions corresponding to a current algorithm for writing data in non-volatile non-rewritable memory.
Un tel algorithme comporte : - une étape 310 de détermination d'au moins une somme de vérification (Checksum) à partir de la donnée qui doit être écrite; - une étape 315 d'écriture de la donnée et de chaque somme de vérification déterminée lors de l'étape 310 ; - une étape 320 de relecture de la donnée écrite et de chaque somme de vérification et - une étape 325 de détermination de la validité des sommes de vérification en refaisant, sur les données lues, une détermination de chaque somme de vérification correspondante et en la comparant avec la somme de vérification lue.Such an algorithm comprises: a step 310 of determining at least one checksum from the data to be written; a step 315 of writing the data and each verification sum determined during step 310; a step 320 of reading the written data and of each checksum and a step 325 of determining the validity of the checksums by repeating, on the data read, a determination of each corresponding checksum and comparing it with the checksum read.
Ainsi, cet algorithme classique d'écriture est relativement long (e.g. 2 millisecondes dans le cas d'une mémoire EEPROM), ce qui ralentit le fonctionnement du microcircuit. Le coût calculatoire est lié principalement au nombre d'écritures en mémoire non-volatile (ici au moins deux : écriture de la donnée et d'au moins une somme de vérification). Dans le but d'éviter ces inconvénients, il est possible d'utiliser une version modifiée de la fonction Killcard comprenant des instructions correspondant à un algorithme d'écriture simplifié (e.g. d'une durée par exemple de 1 milliseconde dans le cas d'une mémoire EEPROM) par rapport à celui de la Figure 4. Un exemple d'une telle fonction Killcard modifiée utilisant un algorithme d'écriture simplifié est représenté sur la Figure 5.Thus, this conventional writing algorithm is relatively long (e.g. 2 milliseconds in the case of an EEPROM), which slows the operation of the microcircuit. The computational cost is mainly related to the number of writes in non-volatile memory (here at least two: writing of the data and at least one verification sum). In order to avoid these disadvantages, it is possible to use a modified version of the Killcard function comprising instructions corresponding to a simplified writing algorithm (eg of a duration for example of 1 millisecond in the case of a EEPROM) compared to that of Figure 4. An example of such a modified Killcard function using a simplified write algorithm is shown in Figure 5.
En pratique, afin de ne pas perturber l'exécution de commandes d'écritures en fonctionnement normal, le microprocesseur de la carte détermine préalablement à l'exécution d'une commande d'écriture si la commande concerne l'une des zones 1 ou 2 de la mémoire non-volatile non-réinscriptible. Si non, cela signifie que cette commande d'écriture n'est pas relative à la fonction de protection ni à la fonction leurre, et l'algorithme d'écriture courant de la Figure 4 est réalisé. Si oui, cela signifie que cette commande d'écriture est relative à la fonction de protection ou à la fonction leurre et un algorithme d'écriture simplifié, tel que représenté à la Figure 5, est utilisé. Cet algorithme d'écriture simplifié ne comporte : - pas l'étape de détermination d'au moins une somme de vérification (en anglais Checksum) ; cette étape est éventuellement, maintenue pour certaines commandes d'écriture choisies aléatoirement ou cycliquement, au cours d'une étape 410 ; - pas d'étape d'écriture de somme(s) de vérification; cette étape est, éventuellement, maintenue au cours d'une étape 416 pour chaque somme de vérification déterminées au cours d'une étape 410 ; - pas l'étape de relecture de la donnée écrite; cette étape est, éventuellement, maintenue au cours d'une étape 420 pour les données ayant donné lieu à détermination d'au moins une somme de vérification; - pas l'étape de détermination de la validité des sommes de vérification en refaisant, sur les données lues, une détermination de chaque somme de vérification correspondante; cette étape est, éventuellement, maintenue au cours d'une étape 425, pour les données ayant donné lieu à détermination d'au moins une somme de vérification. Ainsi, dans un mode de réalisation envisageable, l'algorithme d'écriture en mémoire non-volatile non-réinscriptible, utilisé par les fonctions de protection et leurre, ne comporte que: - l'étape 415 d'écriture de la donnée et - seulement pour certaines commandes d'écriture de données choisies aléatoirement ou cycliquement, les étapes 410, 416, 420 et 425. En variante de ce mode dans lequel le même algorithme d'écriture est utilisé par la fonction de protection et par la fonction leurre, la fonction de protection, appelée Killcardl(Z1) peut utiliser un algorithme d'écriture différent de celui utilisé par la fonction leurre, appelée, par exemple, Killcard2(Z2). Par exemple, la fonction de protection peut utiliser l'algorithme d'écriture courant et la fonction leurre peut utiliser un algorithme d'écriture simplifié comme par exemple celui de la Figure 5. Ainsi, dans certains modes de réalisation, la commande d'écriture en mémoire non-volatile non-réinscriptible par la fonction de protection comporte la génération, l'écriture, la relecture et la vérification de somme(s) de vérification alors que l'écriture en mémoire non-volatile non-réinscriptible par la fonction leurre ne les comporte pas. En variante, comme exposé ci-avant, seule certaines commandes d'écriture (sélectionnées cycliquement ou aléatoirement) par la fonction leurre comportent la génération, l'écriture, la relecture et la vérification de somme(s) de vérification. Dans ces deux derniers cas, l'usure de la mémoire non-volatile non-réinscriptible est réduite, la vitesse de fonctionnement normal du microcircuit est augmentée, tout en complexifiant la reconnaissance de la réalisation de la fonction de protection par un attaquant extérieur.In practice, in order not to disturb the execution of write commands in normal operation, the microprocessor of the card determines prior to the execution of a write command if the command concerns one of the zones 1 or 2 non-volatile memory non-rewritable. If not, it means that this write command is not relative to the protection function or the decoy function, and the current write algorithm of Figure 4 is realized. If so, this means that this write command is relative to the protection function or the decoy function and a simplified write algorithm, as shown in Figure 5, is used. This simplified writing algorithm does not include: - not the step of determining at least one check sum (in English Checksum); this step is optionally maintained for some write commands chosen randomly or cyclically, during a step 410; no step of writing check sum (s); this step is optionally maintained during a step 416 for each checksum determined during a step 410; - not the step of reading back the written data; this step is optionally maintained during a step 420 for the data having given rise to the determination of at least one checksum; - not the step of determining the validity of the checksums by redoing, on the read data, a determination of each corresponding checksum; this step is possibly maintained during a step 425, for the data having given rise to the determination of at least one checksum. Thus, in one conceivable embodiment, the write algorithm in non-volatile non-rewritable memory, used by the protection and decoy functions, comprises only: the step 415 of writing the data and only for some randomly or cyclically selected data write commands, steps 410, 416, 420 and 425. As a variant of this mode in which the same write algorithm is used by the protection function and the decoy function, the protection function, called Killcardl (Z1) can use a different write algorithm than the one used by the decoy function, called, for example, Killcard2 (Z2). For example, the protection function can use the current writing algorithm and the decoy function can use a simplified writing algorithm such as that of Figure 5. Thus, in some embodiments, the write command in non-volatile memory non-rewritable by the protection function comprises the generation, writing, replay and verification sum (s) of verification while writing in non-volatile memory non-rewritable by the decoy function do not have them. As a variant, as explained above, only certain writing commands (cyclically or randomly selected) by the decoy function comprise the generation, writing, replaying and verifying sum (s) of verification. In the latter two cases, the wear of the non-volatile non-rewritable memory is reduced, the normal operating speed of the microcircuit is increased, while complicating the recognition of the realization of the protection function by an external attacker.
En conséquence, le délai de finalisation de l'écriture est très limité lorsqu'il n'y a pas de mise en oeuvre de somme(s) de vérification, par rapport à l'état de l'art. On note que la présente invention peut être mise en oeuvre sous la forme d'un programme s'exécutant dans le microcircuit ou sous la forme d'un circuit intégré spécialisé, par exemple un ASIC (pour Application-Specific Integrated Circuit), un circuit logique programmable comprenant une mémoire OTP. Dans des modes de réalisation, une entité électronique de poche ou portable comporte un dispositif de protection d'un microcircuit qui met en oeuvre le procédé de protection objet de la présente invention. Par exemple, cette entité électronique est un PDA (« personal digital assistant» pour assistant personnel numérique), une clef USB, une carte mémoire, un téléphone mobile, un passeport électronique ou une carte à microcircuit (c'est-à-dire conforme à la norme ISO 7816 et sécurisée, par exemple certifiée conformément aux critères communs).Consequently, the deadline for finalizing the writing is very limited when there is no implementation of checksum (s), compared to the state of the art. Note that the present invention can be implemented in the form of a program running in the microcircuit or in the form of a specialized integrated circuit, for example an ASIC (for Application-Specific Integrated Circuit), a circuit programmable logic comprising an OTP memory. In embodiments, a pocket or portable electronic entity includes a device for protecting a microcircuit that implements the protection method that is the subject of the present invention. For example, this electronic entity is a PDA (personal digital assistant), a USB key, a memory card, a mobile phone, an electronic passport or a microcircuit card (that is to say compliant ISO 7816 and secure, eg certified according to common criteria).
Les exemples qui précèdent ne sont que des modes de réalisation de l'invention qui ne s'y limite pas.The foregoing examples are only embodiments of the invention which is not limited thereto.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1359808A FR3011650B1 (en) | 2013-10-09 | 2013-10-09 | METHOD AND DEVICE FOR REALIZING FUNCTION BY A MICROCIRCUIT |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1359808A FR3011650B1 (en) | 2013-10-09 | 2013-10-09 | METHOD AND DEVICE FOR REALIZING FUNCTION BY A MICROCIRCUIT |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3011650A1 true FR3011650A1 (en) | 2015-04-10 |
FR3011650B1 FR3011650B1 (en) | 2015-12-11 |
Family
ID=50231265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1359808A Active FR3011650B1 (en) | 2013-10-09 | 2013-10-09 | METHOD AND DEVICE FOR REALIZING FUNCTION BY A MICROCIRCUIT |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3011650B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10725935B2 (en) | 2015-12-15 | 2020-07-28 | Idemia France | Method for writing in a non-volatile memory of an electronic entity, and related electronic entity |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2164031A1 (en) * | 2008-09-11 | 2010-03-17 | Oberthur Technologies | Method and device for protecting an integrated circuit against attacks |
-
2013
- 2013-10-09 FR FR1359808A patent/FR3011650B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2164031A1 (en) * | 2008-09-11 | 2010-03-17 | Oberthur Technologies | Method and device for protecting an integrated circuit against attacks |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10725935B2 (en) | 2015-12-15 | 2020-07-28 | Idemia France | Method for writing in a non-volatile memory of an electronic entity, and related electronic entity |
Also Published As
Publication number | Publication date |
---|---|
FR3011650B1 (en) | 2015-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2164031B1 (en) | Method and device for protecting an integrated circuit against attacks | |
EP1161725B1 (en) | Method for monitoring a programme flow | |
EP1904946B1 (en) | Detection of faults during a long perturbation | |
WO2006045924A1 (en) | Protection against attacks by generation of errors on jump instructions | |
CA2575143C (en) | Data processing method and device | |
EP2860668B1 (en) | Method and device for performing a function by a microcircuit | |
EP3391228B1 (en) | Method for writing in a non-volatile memory of an electronic entity, and related electronic entity | |
FR3011650A1 (en) | METHOD AND DEVICE FOR REALIZING FUNCTION BY A MICROCIRCUIT | |
EP2860669B1 (en) | Method implemented in a microcircuit and related device | |
EP2797018B1 (en) | Method and system for simulating the effects of an attack on a computer code | |
EP2333703B1 (en) | Electronic component capable of detecting active attacks | |
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 | |
FR3070076A1 (en) | METHOD FOR PROTECTING AN ELECTRONIC DEVICE AGAINST FAULT INJECTION ATTACKS | |
EP2229648B1 (en) | Method for secure data transfer | |
EP2466506A1 (en) | Dynamic method for verifying the integrity of the execution of executable code | |
EP2343663A1 (en) | Method for multiform protection of an executable code | |
EP3422232B1 (en) | Method for protecting an electronic device running a program against fault-injection attacks | |
FR3068152B1 (en) | METHOD FOR PROTECTING AN ELECTRONIC DEVICE EXECUTING A PROGRAM AGAINST FAULT INJECTION ATTACKS | |
WO2008096076A2 (en) | Secured electronic systems, securing methods and uses of such systems | |
FR2879781A1 (en) | METHOD AND DEVICE FOR FILLING THE SECURITY OF A MEMORY AND ASSOCIATED MEMORY | |
FR3011657A1 (en) | METHOD USED BY A PROCESSOR AND ASSOCIATED ELECTRONIC ENTITY | |
FR3075430A1 (en) | DATA PROCESSING METHOD AND ASSOCIATED ELECTRONIC DEVICE | |
FR2964480A1 (en) | Method for executing computer financial transaction application in e.g. contactless smart card utilized in payment terminal, involves determining function data of execution context before utilizing function data by computer application | |
FR2980600A1 (en) | Method for securing software application having conditional statement, involves modifying intermediate file by adding redundancy conditional statement determined based on state of Boolean variable and instruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 3 |
|
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 |
|
CA | Change of address |
Effective date: 20200218 |
|
CD | Change of name or company name |
Owner name: IDEMIA FRANCE, FR Effective date: 20200218 |
|
CJ | Change in legal form |
Effective date: 20200218 |
|
PLFP | Fee payment |
Year of fee payment: 8 |
|
PLFP | Fee payment |
Year of fee payment: 9 |
|
PLFP | Fee payment |
Year of fee payment: 10 |
|
PLFP | Fee payment |
Year of fee payment: 11 |
|
PLFP | Fee payment |
Year of fee payment: 12 |