Brevet FR2793904A1 — publié le 20001124

PROCEDE ET DISPOSITIF DE GESTION D'UN CIRCUIT ELECTRONIQUE La présente invention concerne un procédé et un dispositif de gestion d'un circuit électronique, notamment un microcontrôleur, du type comprenant une mémoire pour le stockage permanent d'informations confidentielles. A la figure 1 on a représenté le schéma de l'architecture interne d'un tel circuit électronique. Une unité centrale de traitement CPU ("Central Processing Unit", en anglais) échange des informations avec des organes périphériques internes par l'intermédiaire d'un bus de données DB. Ces organes périphériques comprennent une première mémoire non volatile ROM pour le stockage permanent d'un programme de gestion, qui est une mémoire à lecture seule ("Read-Only-Memory", en anglais). Ils comprennent également une seconde mémoire non volatile EEPROM pour le stockage permanent d'informations confidentielles, qui est une mémoire électriquement programmable et effaçable à lecture seule ("Electricaly Erasable and Programmable Read-Only-Memory", en anglais). Ils comprennent en outre une mémoire volatile RAM pour le stockage temporaire d'informations liées au fonctionnement du circuit, qui est une mémoire à accès aléatoire (I'Random Access Memoryll, en anglais) . En général, ils comprennent encore au moins un registre Reg pour le stockage d'une information binaire. L'invention s'applique notamment à un microcontrôleur de carte à puce. Les informations confidentielles stockées dans la mémoire EEPROM sont par exemple un code personnel connu de l'utilisateur seulement. Ce code personnel doit être fourni par l'utilisateur pour utiliser un appareil tel qu'un distributeur de billets, un décodeur pour télévision à péage, un téléphone portatif de type GSM, etc.... en combinaison avec la carte à puce. La carte à puce est classiquement insérée dans un lecteur de carte à puce de l'appareil. La carte à puce comporte des pastilles de contact coopérant avec des bornes correspondantes du lecteur pour l'échange d'informations entre la carte et le lecteur, et pour l'alimentation électrique de la carte à puce à l'aide d'une source d'alimentation électrique du lecteur. L'appareil comporte un clavier ou dispositif analogue sur lequel l'utilisateur saisit son code personnel. Le code personnel saisi par l'utilisateur est transmis au microcontrôleur de la carte à puce qui comporte des moyens pour le comparer au code personnel stocké dans la mémoire EEPROM. En cas d'égalité, l'accès au service délivré par l'appareil est permis à l'utilisateur. Une tentative de fraude classique consiste à utiliser une carte à puce volée dans un lecteur de carte à puce pirate, comprenant des moyens pour observer les données placées sur le bus de données DB. Il est alors théoriquement possible de relever sur le bus de données DB les données confidentielles correspondant au code personnel de l'utilisateur lorsque ces données sont lues dans la mémoire EEPROM et sont placées sur le bus de données DB. La seule difficulté consiste pour le fraudeur à savoir à quel moment précis ces données sont présentes sur le bus de données DB, afin de les identifier dans le flot de données qui transitent sur ce bus lors du fonctionnement du circuit électronique. or, on a remarqué que le courant électrique consommé par le circuit électronique en cours de fonctionnement n'est pas constant mais présente des variations en fonction, notamment, des opérations de lecture effectuées dans les différentes mémoires du circuit électronique. En effet, les cellules mémoires des différentes mémoires présentent une impédance qui, dans une certaines mesure, dépend de l'état programmé ou effacé de la cellule, mais qui, dans une plus large mesure, est différente d'un type de mémoire à l'autre. A la figure 2, une courbe 21 représente ainsi les variations en fonction du temps du courant électrique I consommé par le microcontrôleur en fonctionnement. Ce courant peut prendre différentes valeurs croissantes I(Reg), I(ROM), I(RAM), I(EEPROM) pour des opérations de lecture, respectivement dans le registre Reg, la mémoire ROM, la mémoire RAM ou la mémoire EEPROM. Par conséquent il suffit au fraudeur d'observer la valeur instantanée du courant électrique consommé par le microcontrôleur (en disposant un moyen adapté, tel qu'un ampèremètre en série entre une borne d'alimentation du lecteur prévue pour l'alimentation électrique de la carte à puce et la pastille de contact correspondante de celle-ci) et de relever les données présentes sur le bus de données DB au moment où ce courant présente la valeur I(EEPROM), pour connaître les données confidentielles lues dans la mémoire EEPROM. Afin d'empêcher ce type de fraude, on a déjà proposé des moyens pour masquer les variations du courant consommé par le circuit électronique en cours de fonctionnement, qui agissent pour faire en sorte que le courant consommé par le circuit électronique en fonctionnement ait en permanence une même valeur Iconst. Celle-ci est supérieure à la plus grande valeur du courant normalement consommé par le circuit électronique en fonctionnement. Un exemple de tels moyens est décrit dans la demande de brevet EP-A-0 500 461, où ils sont utilisés pour masquer les variations du courant consommé lors d'une opération de lecture dans une mémoire qui sont dues à l'état programmé ou effacé des cellules de la mémoire. Ils comprennent par exemple une source de courant constant (da valeur Iconst) connectée en série avec les cellules mémoires entre la borne d'alimentation positive Vcc et la masse, ainsi qu'une résistance connectée en parallèle avec les cellules mémoire. A la figure 2, la courbe du courant (constant, de valeur Iconst) consommé par le circuit électronique selon cet art antérieur est représentée par une courbe 22, qui correspond sensiblement à une ligne horizontale. Les faibles ondulations des courbes 21 et 22 correspondent à des impédances parasites dans le circuit électronique. Cette solution connue présente néanmoins l'inconvénient d'augmenter la consommation du circuit électronique de façon importante. En effet le courant consommé par le circuit électronique en fonctionnement est en permanence égal à la valeur Iconst qui est supérieure à la valeur maximum du courant consommé en soi par le circuit électronique en fonctionnement. Cette consommation élevée engendre des problèmes liés notamment à l'élévation de la température par effet Joule dans le circuit électronique. L'invention vise à pallier les inconvénient précités des circuits électroniques de l'état de la technique. A cet effet, l'invention propose un procédé de gestion d'un circuit électronique, par exemple du type comprenant une mémoire pour le stockage d'informations confidentielles, caractérisé en ce qu'il comprend le masquage des variations du courant électrique consommé par le circuit électronique, pendant une fraction du temps seulement, et en tout état de cause pendant la ou les portions du temps pendant lesquelles est exécutée une instruction portant sur des données confidentielles. Notammentf mais pas uniquement, le procédé comprend le masquage des variations du courant consommé par le circuit électronique pendant une portion du temps pendant laquelle est exécutée, entre autres, une instruction de lecture dans la mémoire. L'invention propose également un circuit électronique, notamment un microcontrôleur, par exemple du type comprenant une mémoire pour le stockage d'informations confidentielles, qui comporte des moyens de masquage des variations du courant électrique consommé par le circuit électrique en fonctionnement ainsi que des moyens d'activation et de désactivation sélectives des moyens de masquage. Par l'adjectif "sélectives", on entend une activation et une désactivation délibérées, c'est à dire provoquées délibérément lorsqu'elles sont nécessaires à l'obtention de l'effet technique recherché, à savoir masquer les variations du courant consommé par le circuit électronique lorsqu'une opération portant sur des données confidentielles est exécutée mais ne pas les masquer en permanence de manière à ne pas excessivement augmenter la consommation électrique moyenne du circuit électronique. Grâce à l'invention, le courant consommé par le circuit électronique n'est égal à une valeur constante maximum que pendant une fraction du temps seulement, en sorte que la consommation globale du circuit électronique est réduite. Cependant, le masquage des variations du courant consommé par le circuit électronique est effectif pendant les portions du temps où, notamment, des instructions de lecture de données confidentielles sont effectuées, en sorte qu'il est très difficile voire impossible de détecter le moment exact où ces données sont présentes sur le bus de données DB. D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels on a représenté : - à la figure 1, déjà analysée, le schéma de l'architecture interne d'un circuit électronique selon l'art antérieur ; - à la f igure 2, également déjà analysée : des courbes du courant consommé par le circuit électronique en fonctionnement, respectivement sans masquage des variations et avec masquage des variations selon l'art antérieur ; - à la f igure 3, le schéma de 1 1 architecture interne d 1 un circuit électronique selon l'invention ; - à la f igure 4 le schéma de moyen de masquage selon l'invention - à la figure 5 l'organigramme d'une séquence d'instructions d'un programme de gestion d'un circuit électronique selon l'invention ; - à la f igure 6 : des courbes du courant consommé par le circuit électronique en fonctionnement, respectivement sans masquage des variations et avec masquage des variations' selon l'invention. A la figure 3, sur laquelle les mêmes éléments qu'à la figure 1 portent les mêmes références, on a représenté un circuit électronique selon l'invention. Il comporte une unité centrale de traitement CPU, une première mémoire non volatile ROM (qui est une mémoire à lecture seule) pour le stockage permanent d'un programme de gestion exécutable par l'unité centrale de traitement CPU et une seconde mémoire non volatile EEPROM (qui est une mémoire électriquement programmable et effaçable à lecture seule) pour le stockage permanent d'informations confidentielles. Il comporte en outre une mémoire volatile RAM (qui est une mémoire à accès aléatoire) pour le stockage temporaire d'informations liées au fonctionnement du circuit. En outre, ils comprennent encore au moins un registre Reg pour le stockage d'une information binaire. Selon l'invention, le circuit électronique comporte en outre un tel registre, portant la référence 10, qui a une fonction particulière selon l'invention. En fonction de l'état de ce registre, les moyens de masquage des variations du courant consommé par les mémoires ROM, RAM et/ou EEPROM sont activés ou désactivés. Dit autrement, il est stocké dans le registre 10 une valeur logique déterminée ou la valeur logique complémentaire, pour respectivement activer ou désactiver les moyens de masquage du courant consommé par le circuit électronique. Des moyens de masquage sont représentés à la figure 4, en ce qui concerne la mémoire EEPROM. Ces moyens de masquage comprennent schématiquement une source de courant ici connectée en série avec la mémoire EEPROM par l'intermédiaire d'un interrupteur SW, entre un noeud d'alimentation positive recevant un potentiel d'alimentation positif Vcc d'une part et la masse d'autre part. On note A le noeud entre l'interrupteur SW et la mémoire EEPROM. Une résistance Ri est connectée en parallèle sur les bornes de la mémoire EEPROM (entre le noeud A et la masse). Dans un premier état de l'interrupteur SW, correspondant à l'activation des moyens de masquage, le noeud A est relié à la borne négative de la source de courant IC1, en sorte que le courant il délivré par la source IC1 s'écoule à travers la mémoire EEPROM sous forme d'un courant 13 d'une part, et/ou à travers la résistance Ri sous forme d'un courant Il d'autre part. En tout état de cause, la somme Il+I3 des courants Il et 13 est constante et est égale au courant Ji, même lorsqu'une opération de lecture dans la mémoire EEPROM est effectuée. Comme on l'aura compris, la valeur de Ri doit être comprise entre la valeur minimum et la valeur maximum de l'impédance de la mémoire EEPROM, afin de jouer un rôle de compensation des variations du courant 13 au cours du fonctionnement du microcontrôleur. Bien entendu, la valeur de Ji doit être supérieure à la valeur maximum du courant 13 au cours du fonctionnement du microcontrôleur (cette valeur maximum est atteinte lors d'une opération effectuée dans la mémoire EEPROM). Dans un cas limite, le courant Il peut éventuellement être nul. Dans un second état de 1 1 interrupteur SW, correspondant à la désactivation des moyens de masquage, le noeud A est connecté directement à la broche recevant le potentiel d'alimentation Vcc, en sorte que la source ICI ne débite aucun courant dans la mémoire EEPROM ni dans la résistance RI (cette source est éteinte). Un courant 13 et/ou un courant Il s'écoulent respectivement à travers la mémoire EEPROM et/ou la résistance RI directement depuis la borne d'alimentation délivrant le potentiel Vcc. Leurs valeurs, éventuellement très faibles, sont fonction de l'impédance de la mémoire EEPROM par rapport à RI. La somme Il+I3 des courants Il et 13 n'est pas constante. Notamment, elle varie lorsqu'une opération de lecture dans la mémoire EEPROM est effectuée. Elle peut être très faible, notamment lorsque aucune opération n'est effectué dans la mémoire EEPROM. En tout état de cause, elle est inférieure à la valeur du courant Jl du premier cas ci-dessus, en sorte qu'il est obtenu une économie du courant consommé par la microcontrôleur. La structure des moyens de masquage représentés à la figure 3 est purement schématique. De tels moyens peuvent être réalisés concrètement de toute manière appropriée, notamment à l'aide d'une circuiterie à base de transistors, par exemple des transistors MOS. De retour à la figure 3, on comprend que chaque mémoire du microcontrôleur, en l'occurrence les mémoires RAM, ROM et EEPROM, sont dotées de moyens de masquage tels que présentés à la figure 4. L'état de l'interrupteur SW de ces moyens de marquage est commandé par la valeur logique mémorisée par le registre 10. Dit autrement, l'activation ou la désactivation des moyens de masquage des mémoires du microcontrôleur est fonction de l'état du registre 10. On va maintenant décrire la façon dont cet état est modifié afin d'activer ou de désactiver les moyens de masquage. A la figure 5 on a représenté une séquence d'instructions d'un programme de gestion du microcontrôleur, qui est stocké dans la mémoire ROM. Ce programme est écrit en fonction de l'application du microcontrôleur et est stocké dans la mémoire ROM. De manière connue en soi, les instructions contenues dans ce programme sont exécutées séquentiellement lors du fonctionnement du microcontrôleur. Entre une instruction de début de programme START et une instruction de fin de programme END, le programme comprend une séquence d'instructions Instl, .... Instn- Parmi ces instructions une instruction particulière, Insti, a pour effet d'inscrire une valeur logique particulière dans le registre 10, par exemple la valeur logique 1, en sorte que l'interrupteur SW est mis dans le premier état précité. Une autre instruction Instj subséquente à l'instruction Insti dans la séquence, a pour fonction d'inscrire la valeur logique complémentaire dans le registre 10, à savoir par exemple la valeur logique 0, en sorte que l'interrupteur SW est mis dans le second état précité. Comme on l'aura compris, ces deux instructions Insti et Instj sont insérées dans la séquence d'instructions du programme de gestion de manière à encadrer, entre autres, une instruction de lecture dans la mémoire EEPROM. De cette façon les données confidentielles lues dans la mémoire EEPROM transitent sur le bus de données DB alors que les moyens de masquage Jl,SW,Ri des mémoires sont activés. Il va sans dire que les moyens de masquage sont activés par l'instruction Insti suffisamment tôt avant l'instruction de lecture, et sont désactivés par l'instruction Instj suffisamment longtemps après ladite instruction de lecture, pour que le masquage des variations du courant consommé par le circuit électronique soit efficace. Dit autrement, le procédé selon l'invention comprend le masquage des variations du courant consommé par le circuit électronique pendant une portion du temps pendant laquelle, entre autres, une instruction de lecture dans la mémoire EEPROM est exécutée. Mais le masquage doit être suffisamment long pour que l'opération de lecture dans la mémoire EEPROM ne soit pas facilement décelable. Il est évident que si les moyens de masquage n'étaient activés que pendant l'opération de lecture, l'effet de masquage recherché ne serait pas obtenu. A l'inverse, la portion du temps pendant laquelle les moyens de masquage sont activés, i.e., la portion du temps entre les instructions Insti et Instj, est suffisamment courte pour que soit substantielle l'économie de courant consommé par le circuit électronique par rapport à l'utilisation de moyens de masquage permanents conformément à l'art antérieur. C'est pourquoi, on dit que l'activation et la désactivation des moyens de masquage des variations du courant consommé par le circuit électronique sont sélectives. A la figure 6, qui est à comparer à la figure 2, une courbe 61 représente, en fonction du temps, le courant électrique I consommé par le circuit électronique en fonctionnement selon le principe de l'invention. Les moyens de masquage des mémoires du microcontrôleur sont activés à un instant ti et sont désactivés à un instant ultérieur tj respectivement par l'exécution de l'instruction Insti et par l'exécution de l'instruction Inst j- Dans la portion du temps comprise entre ces deux instants ti et tj, le courant consommé par le circuit électronique est constant et vaut Iconst. Notamment, il ne varie pas en fonction des opérations de lecture effectuées dans les mémoires ROM, RAM et/ou EEPROM. De cette manière un fraudeur ne parvient pas à savoir à quel moment précis les données présentes sur le bus de données du microcontrôleur correspondent au code personnel de la carte à puce. Une courbe 62, en traits discontinus, montre ce que serait l'allure du courant consommé par le microcontrôleur entre les instants ti et tj sans l'activation des moyens de masquage selon l'invention. Dans l'exemple, la valeur Iconst correspond sensiblement à la somme des courants Jl des moyens de masquage des mémoires ROM, RAM et EEPROM activés simultanément entre les instants ti et tj. On notera que les courants Jl n'ont pas forcément la même valeur pour chacune des mémoires ROM, RAM et EEPROM. En outre, il n'est pas indispensable que des moyens de masquage soient prévus pour chacune des mémoires du microcontrôleur. Dans un autre mode de réalisation, des moyens de masquage peuvent être disposé ailleurs que dans les mémoires. Par exemple, on peut prévoir des moyens de masquage uniques, disposés directement à proximité de la pastille de contact prévue pour l'alimentation électrique de la carte à puce. Néanmoins, des moyens de masquage uniques disposés de cette manière sont plus faciles à déjouer par un fraudeur. L'invention a été décrite ci-dessus en ce qui concerne le masquage des variations du courant consommé par le circuit électronique lors de l'exécution, entre autres, d'une instruction de lecture dans une mémoire de stockage d'informations confidentielles. Mais, bien entendu, elle ne se limite pas à ce cas. Au contraire, elle s'applique au masquage de des variations du courant consommé par le circuit électronique lors de l'exécution, entre autres, de toute instruction portant sur des données confidentielles. REVENDICATIONS 1. Procédé de gestion d'un circuit électronique, caractérisé en ce qu'il comprend la mise en oeuvre de moyens de masquage des variations du courant électrique (I) consommé par le circuit électronique en fonctionnement, le procédé comprenant les étapes : a) d'activation sélective des moyens de masquage et b) de désactivation sélective des moyens de masquage, l'intervalle entre l'activation et la désactivation des moyens de masquage occupant une fraction (ti-tj) seulement du temps de gestion, cette fraction couvrant en tout état de cause la ou les portions du temps pendant lesquelles est exécutée une instruction portant sur des données confidentielles. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend le masquage des variations du courant consommé par le circuit électronique pendant une portion du temps pendant laquelle est exécutée, entre autres, une instruction de lecture dans une mémoire (EEPROM) pour le stockage de données confidentielles. 3. Procédé selon la revendication 1 ou selon la revendication 2, caractérisé en ce que les moyens de masquage des variations du courant (I) consommé par le circuit électrique en fonctionnement sont activés par une première instruction (Insti) et sont désactivés par une seconde instruction (Instj) subséquente d'un programme de gestion du circuit électronique, ces instructions encadrant une instruction portant sur des données confidentielles. 4. Procédé selon la revendication 3, caractérisé en ce que la première instruction (Insti) et la seconde instruction (Instj) provoquent respectivement l'écriture d'une valeur logique déterminée et l'écriture de la valeur logique complémentaire dans un registre (10) du circuit électronique. 5. Circuit électronique, notamment un microcontrôleur, du type comprenant une mémoire pour le stockage d'informations confidentielles, caractérisé en ce qu'il comporte des moyens de masquage des variations du courant électrique consommé par le circuit électrique en fonctionnement ainsi que des moyens d'activation et de désactivation sélectives des moyens de masquage. 6. Circuit électronique selon la revendication 5f caractérisé en ce qu'il comprend un registre (10) dans lequel est inscrite une valeur logique déterminée ou la valeur logique complémentaire, pour respectivement activer ou désactiver les moyens de masquage du courant consommé par le circuit électronique. 7. Circuit électronique selon la revendication 6, caractérisé en ce qu'il comporte une unité centrale de traitement (CPU), une première mémoire non volatile (ROM) pour le stockage permanent d'un programme de gestion exécutable par l'unité centrale de traitement (CPU) et une seconde mémoire non volatile (EEPROM) pour le stockage permanent d'informations confidentielles. 8. Circuit électronique selon la revendication 7, caractérisé en ce que le programme de gestion comporte une première instruction (Insti) et une seconde instruction (Instj) pour provoquer respectivement l'écriture d'une valeur logique déterminée et l'écriture de la valeur logique complémentaire dans le registre (10), cette première et cette seconde instructions encadrant dans la séquence d'instructions du programme de gestion une instruction portant sur des données confidentielles, notamment une instruction de lecture dans la seconde mémoire non volatile (EEPROM).