PROTECTION D'INFORMATIONS CONTENUES DANS UN CIRCUIT ELECTRONIQUE
Domaine de l'invention
La présente invention concerne de façon générale les circuits électroniques et, plus particulièrement, la protection d'informations contenues dans un circuit électronique contre des tentatives de fraudes visant à découvrir ces informations . Les informations peuvent être des quantités numériques censées rester secrètes (c'est-à-dire à l'intérieur du circuit élec¬ tronique), par exemple des codes d'accès ou des mots de passe, ou des étapes particulières d'algorithmes et, plus généralement, toute information numérique censée ne pas être communiquée de façon non contrôlée.
La présente invention sera décrite par la suite en relation avec un exemple d'application à des cartes à puce mais elle s'applique plus généralement à tout circuit électronique contenant des informations à diffusion contrôlée, que ce circuit soit sur une carte à puce, isolé, ou monté sur une carte électronique d'un appareil plus complexe. Exposé de l'art antérieur
Lorsque qu'un circuit électronique est susceptible de manipuler des informations qui ne sont pas censées être diffusées de façon incontrôlée, il est équipé de mécanismes logiciels et/ou matériels de détection et de protection contre
différentes tentatives d'attaque visant à pirater ces informations. Parmi ces attaques, des attaques perturbent le fonctionnement du circuit électronique (par exemple, les attaques connues sous la dénomination Différential Fault Analysis - DFA) ou consistent à couper l'alimentation du circuit électronique.
Un problème des mécanismes actuels de protection qu'ils soient logiciels ou matériels est qu'il est difficile de distinguer une tentative de fraude d'une perturbation accidentelle. Or, la suite à donner à un dysfonctionnement peut être différente selon qu'il s'agit d'une attaque ou d'un dysfonctionnement accidentel. Dans le premier cas, il convient généralement de bloquer le fonctionnement du circuit électro¬ nique afin d'éviter la sortie d'informations censées rester confidentielles. Dans le second cas, il peut être souhaitable d'autoriser un redémarrage du circuit. Résumé de l' invention
La présente invention vise à pallier tout ou partie des inconvénients des mécanismes de protection d'informations contenues dans un circuit électronique.
Un mode de réalisation vise à permettre des actions différentes entre des dysfonctionnements accidentels et des dysfonctionnements susceptibles d'être frauduleux.
Un mode de réalisation vise une solution compatible avec les technologies de fabrication actuelles des circuits intégrés et des mémoires EEPROM.
Pour atteindre tout ou partie de ces objets ainsi que d'autres, la présente invention prévoit un procédé de protection d'informations contenues dans un circuit électronique contre une perturbation de son fonctionnement, dans lequel une détection d'une perturbation conditionne l'incrément ou le décrément d'un compteur sur au moins un bit, le compteur étant réinitialisé automatiquement au bout d'une durée indépendante du fait que le circuit soit alimenté ou non.
Selon un mode de mise en oeuvre, le compteur est réalisé sous la forme d'au moins un circuit de rétention de charges comportant au moins un premier élément capacitif présentant une fuite au travers de son espace diélectrique. Selon un mode de mise en oeuvre, un passage d'un bit dudit compteur dans un état actif est provoqué par une injection ou extraction de charges dans ledit premier élément capacitif.
Selon un mode de mise en oeuvre, un test de la valeur dudit compteur est effectué avant toute exécution d'un processus considéré comme sensible du point de vue des informations à protéger.
Selon un mode de mise en oeuvre, ledit test provoque, en cas de dépassement d'un seuil, une action bloquant de façon durable au moins l'accès audit processus et, de préférence, le fonctionnement du circuit.
Selon un mode de mise en oeuvre, ledit compteur est sur plusieurs bits, le résultat dudit test étant fourni directement par l'état d'un des bits.
Selon un mode de mise en oeuvre, une incrémentation ou décrémentation dudit compteur force le circuit à effectuer ledit test.
Selon un mode de mise en oeuvre, ledit compteur est incrémenté ou décrémenté avant un processus considéré comme sensible du point de vue des informations à protéger, puis décrémenté, respectivement incrémenté, en fin de processus si aucune perturbation n'a été détectée pendant l'exécution du processus.
Un mode de réalisation prévoit un circuit électronique apte à mettre en oeuvre le procédé et dans lequel le ou chaque circuit de rétention de charges comporte : au moins un premier élément capacitif dont une première électrode est connectée à un noeud flottant ; au moins un deuxième élément capacitif dont une première électrode est connectée audit noeud flottant, le
deuxième élément capacitif ayant une capacité supérieure au premier ; et au moins un premier transistor à borne de commande isolée et connectée audit noeud flottant. Selon un mode de réalisation, au moins un troisième élément capacitif a une première électrode reliée audit noeud flottant et une deuxième électrode connectable à une source de tension.
Selon un mode de réalisation, le circuit est implanté dans un réseau de cellules mémoire de type EEPROM comportant chacune un transistor de sélection en série avec un transistor à grille flottante, et dans lequel, sur une même rangée de cellules mémoire dont les grilles flottantes respectives des transistors des cellules sont interconnectées : le premier élément capacitif comporte un premier sous- ensemble d'au moins une première cellule dont l'épaisseur du diélectrique de la fenêtre tunnel du transistor à grille flottante est inférieure à celle des autres cellules ; le deuxième élément capacitif comporte un deuxième sous-ensemble d'au moins une deuxième cellule dont les drain et source du transistor à grille flottante sont interconnectés ; le troisième élément capacitif comporte un troisième sous-ensemble d'au moins une troisième cellule ; et le premier transistor comporte un quatrième sous- ensemble d'au moins une quatrième cellule dont la fenêtre tunnel est supprimée.
Brève description des dessins
Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de mise en oeuvre et de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente une carte à puce du type auquel s'applique à titre d'exemple la présente invention ;
la figure 2 représente un circuit électronique du type auquel s'applique à titre d'exemple la présente invention ; la figure 3 illustre une attaque par interruption d'alimentation d'une carte à puce ; la figure 4 représente, de façon schématique et sous forme de blocs, un mode de réalisation d'un circuit élec¬ tronique ; la figure 5 est un schéma fonctionnel simplifié d'une première phase du procédé de protection selon un mode de mise en oeuvre ; la figure 6A est un schéma fonctionnel simplifié d'une deuxième phase du procédé de protection selon un mode de mise en oeuvre ; la figure 6B est un schéma fonctionnel simplifié d'une deuxième phase du procédé de protection selon un autre mode de mise en oeuvre ; la figure 7 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un compteur d'événements utilisé par les mises en oeuvre illustrées aux figures 5, 6A et 6B ; la figure 8 représente un mode de réalisation d'un circuit électronique de rétention de charges ; la figure 9 est un graphe courant-tension illustrant le fonctionnement du circuit de la figure 8 ; la figure 10 est un chronogramme illustrant le fonctionnement du circuit de la figure 8 ; la figure 11 représente un autre mode de réalisation d'un circuit de rétention de charges dans un exemple d'environnement ; la figure 12 est un graphe courant-tension illustrant le fonctionnement du circuit de la figure 11 ; les figures 13A, 13B et 13C sont respectivement une vue de dessus, une vue en coupe selon une première direction et le schéma électrique équivalent d'un mode de réalisation d'un
circuit électronique de rétention de charges à partir de cellules EEPROM ; les figures 14A, 14B et 14C sont respectivement une vue de dessus, une vue en coupe selon une deuxième direction et le schéma électrique équivalent d'un premier élément du circuit des figures 13A à 13C ; les figures 15A, 15B et 15C sont respectivement une vue de dessus, une vue en coupe selon la deuxième direction et le schéma électrique équivalent d'un deuxième élément du circuit des figures 13A à 13C ; les figures 16A, 16B et 16C sont respectivement une vue de dessus, une vue en coupe selon la deuxième direction et le schéma électrique équivalent d'un troisième élément du circuit des figures 13A à 13C ; et les figures 17A, 17B et 17C sont respectivement une vue de dessus, une vue en coupe selon la deuxième direction et le schéma électrique équivalent d'un quatrième élément du circuit des figures 13A à 13C.
De mêmes éléments ont été désignés par de mêmes références aux différentes figures. Description détaillée
Par souci de clarté, seuls les éléments et étapes qui sont utiles à la compréhension de l'invention ont été représentés aux figures et seront décrits par la suite. En particulier, les mécanismes de détection de dysfonctionnements du circuit électronique, que ce soit par injection de fautes, par coupure de l'alimentation du circuit ou par tout autre moyen n'ont pas été détaillés, l'invention étant compatible avec tout mécanisme de détection connu. De même, l'exploitation faite d'un résultat d'une détection d'un dysfonctionnement considéré comme frauduleux au moyen de l'invention n'a pas non plus été détaillée, l'invention étant là encore compatible avec toute exploitation habituelle de ce genre de détection.
La figure 1 représente, de façon schématique, une carte 1 à puce du type auquel s'applique à titre d'exemple la
présente invention. Une telle carte est constituée d'un support, généralement en matière plastique, sur ou dans lequel sont encartés un ou plusieurs circuits électroniques 10. Le circuit 10 est susceptible de communiquer avec un terminal au moyen de contacts 2 et/ou sans contact (transmission radioélectrique ou par modulation d'un champ électromagnétique d'un terminal).
La figure 2 représente, de façon très schématique et sous forme de blocs, un circuit électronique 10 (par exemple d'une carte à puce 1 de la figure 1) du type auquel s'applique à titre d'exemple la présente invention. Le circuit 10 comporte, entre autres, une unité de traitement numérique 11 (par exemple, une unité centrale de traitement - CPU) , une ou plusieurs mémoires 12 (MEM) parmi lesquelles au moins une mémoire non volatile (par exemple de type EEPROM) et un circuit 13 d'entrée/sortie (I/O) pour communiquer avec l'extérieur du circuit (pour connexion aux contacts 2 ou à une antenne) . Les différents éléments internes au circuit communiquent entre eux et avec l'interface 13 par un ou plusieurs bus 14 de données, d'adresses et de commande, ainsi que par d'éventuelles liaisons directes entre certains de ces éléments. Le circuit 10 peut également intégrer d'autres fonctions logicielles ou maté¬ rielles. Ces fonctions ont été symbolisées par un bloc 15 (FCT) en figure 2.
La figure 3 illustre, de façon très schématique et sous forme de blocs, un exemple de mise en oeuvre d'une attaque dite par coupure d'alimentation du circuit intégré 10 d'une carte à puce 1.
Par exemple, le circuit 10 tire son alimentation d'un terminal 20, par exemple, au moyen de contacts 21 prévus dans une fente 22 du terminal 20 destinée à recevoir, par introduction, une carte 1. Les contacts 21 constituent non seulement des contacts d'alimentation mais également des contacts d'échange de données avec le circuit 10 et sont reliés à un dispositif électronique 23 du terminal 20, alimenté par une
tension Valim (par exemple, au moyen de batterie ou du réseau de distribution électrique) .
Une attaque par interruption de l ' alimentation de la carte à puce pour engendrer un comportement erroné de celle-ci consiste, par exemple, à retirer brusquement la carte de la fente de façon à interrompre son alimentation en cours de traitement. Une telle interruption d'alimentation peut soit servir directement à perturber le fonctionnement de la carte soit, dans des mécanismes plus complexes, être utilisée pour éviter une contremesure de la carte visant, après détection d'une tentative de fraude, à provoquer une inscription en mémoire non volatile de type EEPROM. Intervenir sur l'alimentation au moment propice permet d'éviter l'écriture dans cette mémoire et peut rendre inefficace les contremesures de détection de faute .
D'autres attaques consistent à perturber le fonctionnement du circuit électronique 10 de façon thermique, par rayonnement électromagnétique, par l'introduction forcée d'une ou plusieurs valeurs erronées, etc. Une différence entre les dysfonctionnements d'ordre accidentels et d'ordre frauduleux (ou du moins ceux dont il faut bloquer une répétition éventuelle) est leur fréquence (moyenne) d'apparition. Dans le cas d'une attaque par perturbation du fonctionnement du circuit, le fraudeur répète la perturbation jusqu'à obtenir les informations qu'il souhaite. De plus, cette répétition s'effectue sur un intervalle de temps relativement court pour que l'attaque lui soit profitable. Typiquement, on peut considérer qu'à partir de quelques dizaines de dysfonctionnements sur une durée de l'ordre d'une journée, il peut s'agir d'un comportement frauduleux du dispositif électronique ou d'un comportement qui, même s'il est accidentel, est suffisamment répétitif pour justifier un blocage du dispositif.
On pourrait donc envisager de compter le nombre de dysfonctionnements du dispositif électronique sur un temps donné
pour différencier les dysfonctionnements accidentels des dysfonctionnements frauduleux.
Cependant, un circuit électronique n'est pas néces¬ sairement alimenté en permanence et, dans la plupart des cas, ne contient pas de batterie permettant de faire fonctionner un compteur temporel, de sorte qu'une telle mesure temporelle pose problème. De plus, même s'il dispose d'une batterie, celle-ci est susceptible d'être déchargée (volontairement ou non) . En outre, dans le cas d'une coupure volontaire de l'alimentation (par exemple, par arrachement de la carte de son lecteur), le compteur d'événements qui pourrait être stocké dans une mémoire non volatile reprogrammable est difficilement mis à jour.
La figure 4 représente, de façon très schématique et sous forme de blocs, par une vue à rapprocher de la figure 2, un mode de réalisation d'un circuit électronique 10'.
Comme précédemment, ce circuit 10' comporte une unité de traitement 11 (CPU) susceptible de contrôler son fonction¬ nement, que ce soit de façon matérielle et/ou logicielle, une ou plusieurs mémoires 12 (MEM) parmi lesquelles au moins une mémoire non volatile reprogrammable, un circuit 13 d'entrée- sortie (I/O) et diverses fonctions matérielles ou logicielles symbolisées par un bloc 15 (FCT) dépendant de l'application.
Selon ce mode de réalisation, le circuit 10' comporte également au moins un circuit 100 (TK) de rétention de charges dont le niveau de charge évolue avec le temps, même lorsque le circuit 10' n'est pas alimenté.
Des exemples détaillés de circuits 100 seront décrits ultérieurement en relation avec les figures 8 et suivantes. Pour l'instant, on se contente de noter qu'un circuit 100 est susceptible d'être programmé ou activé (placé dans un état noté arbitrairement 1) par injection ou extraction de charges dans un élément capacitif qui présente une fuite au travers de son espace diélectrique, de telle sorte que son état actif disparaît (l'élément rebascule vers l'état 0) au bout d'un temps donné, indépendamment de l'alimentation éventuelle du circuit.
Un tel circuit de rétention de charges est mis en oeuvre pour stocker au moins un état indicateur d'un comportement suspect du circuit électronique 10.
La figure 5 illustre, par un schéma fonctionnel simplifié, un mode de mise en oeuvre d'une première phase d'un mécanisme de protection.
A chaque réinitialisation du circuit électronique 10' (bloc 31, RESET) ou à chaque démarrage d'un traitement considéré comme sensible du point de vue des informations qu'il manipule, l'unité centrale 11 commence par vérifier (bloc 32, COUNT < TH ?) l'état d'un compteur COUNT par rapport à un seuil TH. Le compteur COUNT représente le nombre de dysfonctionnements détectés et mémorisés dans le ou les circuits de rétention de charges 100 du circuit 10'. Si le nombre de dysfonctionnements excède le seuil
(sortie N du bloc 32), le circuit électronique s'arrête (bloc 33, STOP) . En variante, une contremesure adaptée à un comportement frauduleux est prise. Par exemple, les applications considérées comme sensibles du point de vue de la sécurité des informations qu'elles manipulent sont inaccessibles.
Tant que le seuil TH n'est pas atteint par le compteur (sortie Y du bloc 32), l'unité 11 autorise la poursuite du processus démarré (bloc 34, CONT) , typiquement, la poursuite du démarrage du circuit électronique 10'. La figure 6A illustre, par un schéma fonctionnel simplifié, un premier mode de mise en oeuvre d'une deuxième phase du mécanisme de protection.
A chaque détection (bloc 41, DETECT) d'un dysfonctionnement du circuit, le compteur COUNT est incrémenté (bloc 42, COUNT = COUNT+1) . Le mécanisme de protection provoque alors soit l'arrêt (bloc 43, STOP) soit une réinitialisation (bloc 43, RESET) du circuit électronique 10'. Toutefois, il ne s'agit pas de la contremesure habituellement prévue en cas de détection d'une tentative de fraude, mais d'un traitement obligeant le
circuit à passer par la phase décrite en relation avec la figure 5 avant toute poursuite de processus sensible.
Grâce à l'utilisation d'un circuit de rétention de charges dont l'état activé disparaît au bout d'un temps donné, le compteur COUNT se réinitialise automatiquement et indépendamment de l'alimentation du circuit électronique 10'. Par conséquent, il est désormais possible de déclencher une contremesure dédiée à un comportement censé être frauduleux en comptant le nombre de dysfonctionnements sur une période donnée. Dans un mode de réalisation simplifié, un compteur sur un seul bit suffit à déclencher l'arrêt du circuit. Il s'agit alors d'un blocage systématique pendant une durée donnée à chaque dysfonctionnement. Comme un dysfonctionnement accidentel n'est pas censé se reproduire avec la même fréquence, la réinitialisation du bit permet un redémarrage alors qu'une nouvelle attaque bloquera de nouveau le circuit.
Dans tous les cas, un fraudeur éventuel se trouve découragé par l ' arrêt du circuit pendant une durée relativement longue par rapport au profit qu'il est susceptible d'en tirer. La figure 6B illustre, par un schéma fonctionnel simplifié, un autre mode de mise en oeuvre d'une deuxième phase du mécanisme de protection.
Ce mode de mise en oeuvre est plus particulièrement destiné aux dysfonctionnements susceptibles d'empêcher une mise à jour d'une mémoire non volatile, notamment une EEPROM. Il s'agit donc, par exemple, de protéger contre des attaques par arrachement ou plus généralement d'attaques où le fraudeur surveille les éventuelles détections de ses attaques par le circuit afin d'empêcher des écritures ultérieures en mémoire non volatile.
Avant ou au début (bloc 41', START) d'un processus considéré comme sensible du point de vue des informations manipulées, le compteur COUNT est incrémenté (bloc 42, COUNT = COUNT+1) . Puis, le processus habituel est mis en oeuvre (bloc 45, PROCESS) ou se poursuit avec ses contremesures habi-
tuelles détectant des attaques. De telles contremesures peuvent vérifier l'exécution correcte d'un programme (l'absence d'interruption, la prise en compte de toutes les variables, le passage par des étapes données, l'absence de tentative de sortie de données, le temps d'exécution, etc.). Dans le cas où un dysfonctionnement est détecté, un bit (généralement un drapeau) ou un mot indicateur est mis à jour dans un élément de mémo¬ risation volatile (un registre, une adresse RAM, etc.). Dans les contremesures activant une écriture en mémoire non volatile en fin de processus, cet indicateur est habituellement utilisé pour conditionner cette écriture.
En fin de processus 45, le procédé de la figure 6B vérifie l'état de l'indicateur (bloc 46, DET = 0 ?) et plus généralement, si un dysfonctionnement s'est produit pendant l'exécution du processus 45. En l'absence de dysfonctionnement détecté (sortie Y du bloc 46) , le compteur COUNT est décrémenté (bloc 47, COUNT = COUNT-I). Puis, le cours normal de l'applica¬ tion se poursuit (bloc 43', CONT). En présence d'un dysfonc¬ tionnement détecté (sortie N du bloc 46), la mise à jour 47 du compteur COUNT n'est pas effectuée et l'application se poursuit directement.
Ainsi, la conséquence d'une action d'un fraudeur en fin de processus 45 pour éviter l'interprétation d'une détection de dysfonctionnement se traduit en fait par la prise en compte de ce dysfonctionnement. De plus, même en cas de coupure de l'alimentation, le compteur COUNT ayant été incrémenté avant le processus sensible, la première phase (figure 5) peut jouer son rôle à l'exécution suivante. Le processus 45 étant un processus considéré comme sensible, la première phase est en effet préfèrentiellement mise en oeuvre avant chaque exécution (avant ou après la mise à jour 42) .
Les deux modes de mise en oeuvre de la deuxième phase sont combinables entre eux et/ou avec d'autres contremesures.
La figure 7 représente, de façon très schématique et sous forme de blocs, un exemple de circuit 50 de comptage
contenant n circuits électroniques de rétention de charges 10OQ, 100]_, ..., 10On stockant chacun un bit BQ, B]_, ..., Bn du compteur COUNT. Le circuit 50 est de préférence commandé par un circuit interne 51 (CTRL) provoquant, comme il sera mieux compris par la suite en relation avec les figures 8 et suivantes, l'incrémentation du compteur suite à une détection de dysfonctionnement (entrée INC du bloc 50) , ainsi que la lecture de l'état d'un ou plusieurs bits du compteur.
Dans l'exemple illustré par la figure 7, on suppose que le bit Bn de rang le plus élevé définit le seuil TH. En effet, un changement d'état de ce bit représente un débordement par rapport au compte 2 - 1. La lecture de ce seul bit suffit alors pour fournir un signal OK/NOK indicateur du résultat du test 32 (figure 5) . Un avantage d'une telle comparaison par débordement est qu'il rend une même réalisation matérielle du circuit 50 versatile. En effet, le seuil TH peut alors être aisément adapté quel que soit le nombre de bits structurels du compteur 50 en sélectionnant celui des bits du compteur à prendre en compte pour fournir le résultat OK/NOK du test 32.
Différents seuils peuvent être choisis en fonction du type d'alarme détecté. Par exemple, s'il s'agit d'une séquence de fonctionnement imprévue (fortement susceptible d'être également accidentelle) un blocage de durée relativement faible (par exemple, quelques heures peuvent suffire). Par contre, s'il s'agit d'une détection de réinitialisation de carte (par coupure de son alimentation), on peut alors prévoir une durée de l'ordre d'une semaine afin de décourager un fraudeur éventuel.
Un avantage est de dissocier les dysfonctionnements accidentels des dysfonctionnements frauduleux d'un circuit intégré et de prendre les mesures adaptées.
Un autre avantage est la compatibilité avec tout mode de détection d'un dysfonctionnement, y compris lorsque cette détection est elle-même détectée par le fraudeur qui coupe alors l'alimentation pour éviter une contremesure .
Dans le cas d'un compteur sur plusieurs bits, la solution exposée est compatible avec les contremesures usuelles (par exemple, un blocage définitif) du circuit électronique. Seul le déclenchement de cette contremesure est alors différé au dépassement du seuil TH, permettant ainsi de dissocier les dysfonctionnements accidentels des dysfonctionnements frauduleux (ou suffisamment répétitifs pour que l'on considère préférable de bloquer le circuit) .
La figure 8 représente un exemple préféré d'un circuit de rétention de charges 100.
Le circuit 100 comporte un premier élément capacitif Cl dont une première électrode 121 est connectée à un noeud flottant F et dont l'espace diélectrique 123 est conçu (par sa permittivité et/ou par son épaisseur) pour présenter des fuites non négligeables dans le temps. Par noeud flottant F, on entend un noeud non directement connecté à une quelconque région diffusée du substrat semiconducteur dans lequel est réalisé préférentiellement le circuit 100 (et le circuit 10') et, plus particulièrement, séparé par un espace diélectrique de toute borne d'application de potentiel. La deuxième électrode 122 de l'élément capacitif Cl est, soit reliée (pointillés en figure 2) à une borne 112 destinée à être reliée à un potentiel de référence (par exemple la masse), soit laissée en l'air.
Un deuxième élément capacitif C2 a une première électrode 131 connectée au noeud F et une deuxième électrode 132 connectée à la borne 112. L'élément capacitif C2 présente une capacité de rétention de charges supérieure à celle de l'élément capacitif Cl.
De préférence, un troisième élément capacitif C3 a une première électrode 141 connectée au noeud F et une deuxième électrode 142 reliée à une borne 113 du circuit 100, destinée à être connectée à une source d'alimentation lors d'une initia¬ lisation d'une phase de rétention de charges (activation du bit stocké à l'état 1).
Un rôle de l'élément capacitif C2 est de stocker une charge électrique. Un rôle de l'élément capacitif Cl est de décharger relativement lentement l'élément de stockage C2 (par rapport à une connexion directe de son électrode 131 à la masse) grâce à une fuite à travers son espace diélectrique. La présence de l'élément capacitif C2 permet de dissocier le niveau de charge présent dans le circuit 100 par rapport à l'élément de décharge (capacité Cl). L'épaisseur du diélectrique de l'élément C2 est supérieure à celle de l'élément Cl. La capacité de l'élément C2 est supérieure, de préférence dans un rapport d'au moins 10, à celle de l'élément C2.
Un rôle de l'élément capacitif C3 est de permettre une injection de charges dans l'élément capacitif C2 par effet Fowler-Nordheim ou par un phénomène d'injection d'électrons chauds. L'élément C3 permet d'éviter les contraintes (stress) sur l'élément Cl lors de la charge des éléments C2 et Cl en parallèle. L'épaisseur de l'espace diélectrique de l'élément C3 est supérieure à celle de l'élément Cl, de façon à éviter d'introduire un chemin de fuite parasite. Le noeud F est relié à une grille G d'un transistor à borne de commande isolée (par exemple, un transistor MOS 150) dont les bornes de conduction (drain D et source S) sont connectées à des bornes de sortie 114 et 115 pour mesurer la charge résiduelle contenue dans l'élément C2 (en négligeant la capacité de l'élément Cl en parallèle). Par exemple, la borne
115 est reliée à la masse et la borne 114 est reliée à une source de courant (non représentée) permettant une conversion courant-tension du courant de drain I]_]_4 dans le transistor 150.
L'épaisseur du diélectrique de grille du transistor 150 est supérieure à celle du diélectrique de l'élément Cl de façon à éviter d'introduire une fuite supplémentaire sur le noeud F. De préférence, l'épaisseur de grille du transistor 150 est même supérieure à l'épaisseur du diélectrique de l'élément C3, de façon à éviter d'introduire un chemin parasite de
programmation (d'injection ou d'extraction de charges du noeud F) .
L'interprétation du niveau stocké peut être effectuée de façon simple au moyen d'un comparateur dont le basculement s'opère tant que la charge du noeud F reste suffisante. Le niveau pour lequel le comparateur bascule définit alors le niveau de changement d'état du bit stocké par l'élément 100. D'autres solutions de lecture peuvent être envisagées, par exemple, une interprétation multiniveaux dans une réalisation où le circuit 100 stocke directement plusieurs bits.
La figure 9 représente un exemple d'allure du courant I]_]_4 de drain du transistor 150 en fonction de la tension Vp au noeud F, référencée par rapport à la borne 115. La tension Vp exprime alors la tension grille/source du transistor 150. Elle dépend de la charge résiduelle aux bornes des capacités Cl et C2 en parallèle, donc essentiellement de la charge résiduelle dans la capacité C2. L'évaluation du courant de drain I]_]_4 peut être effectuée en maintenant les bornes 112 et 115 au même potentiel (par exemple la masse) et en appliquant une tension connue sur la borne 114.
La figure 10 illustre l'évolution de la charge Qp au point F en fonction du temps. A un instant tO où une tension d'alimentation (de programmation) cesse d'être appliquée sur la borne 113, la charge Qp part d'une valeur initiale QINIT Pour s'annuler à un instant tl avec une allure de décharge capacitive. L'intervalle de temps entre les instants tO et tl dépend non seulement de la capacité de fuite du diélectrique de l'élément Cl mais également de la valeur (donc de la capacité de stockage) de l'élément C2 qui conditionne la valeur QINIT- En supposant que les bornes 112 et 115 et la deuxième électrode 122 de l'élément capacitif Cl sont à des potentiels de référence et que la borne 114 est polarisée à un niveau déterminé pour qu'une variation du courant I114 ne provienne que d'une variation du potentiel du noeud F, cette variation ne dépend alors que du temps écoulé depuis l'instant tO . Ce
résultat est, dans le mode de réalisation représenté, obtenu grâce à la dissociation opérée entre l'élément de fuite temporel (Cl) et l'élément représentatif de la charge résiduelle (C2) .
La programmation ou activation du circuit 100 (passage à l'état 1 du bit stocké) à travers l'élément capacitif C3 protège l'élément capacitif Cl dont l'épaisseur d'oxyde (diélec¬ trique) est relativement mince et qui risquerait autrement d'être détérioré lors de la programmation. Cela permet notamment de rendre les mesures fiables et reproductibles dans le temps . Le cas échéant, plusieurs éléments capacitifs C3 sont connectés en parallèle entre la borne 113 et le noeud F de façon à accélérer le temps de programmation.
De même, la durée de rétention peut être adaptée non seulement en réglant les épaisseurs et/ou les permittivités des diélectriques des éléments Cl et C2 mais également en prévoyant plusieurs éléments Cl et/ou C2 en parallèle.
La figure 11 représente le schéma électrique d'un autre mode de réalisation d'un circuit de rétention de charges 100' . Par rapport au mode de réalisation de la figure 8, le transistor 150 est remplacé par un transistor 160 à grille flottante FG reliée au noeud F. La grille de commande CG du transistor 160 est reliée à une borne 116 de commande en lecture de la charge résiduelle dans le circuit 100' (donc de l'état du bit stocké). L'épaisseur du diélectrique, entre la grille flottante FG et le canal (zone active) du transistor 160, est supérieure à celle de l'élément Cl et préférentiellement supérieure à celle de l'élément C3.
Une autre différence est que l'élément C3 d'injection ou d'extraction de charges est un transistor MOS 170 à grille flottante. La grille flottante 141 du transistor 170 est reliée au noeud F.
Dans l'exemple de la figure 11, le circuit a été représenté dans une partie de son environnement. Le drain 142 du transistor 170 est relié à une source de courant 118 recevant
une tension d'alimentation Valim et sa source 173 est connectée à la masse. Sa grille de commande 174 reçoit un signal de commande CTRL destinée à rendre le transistor 170 passant lors d'un besoin d'injection de charges. Le drain (borne 114) du transistor 160 reçoit la tension d'alimentation Valim et sa source est reliée à la masse par une source de courant 119 (variante inversée par rapport au mode de réalisation décrit en relation avec la figure 8) . La tension V]_]_g aux bornes de la source de courant 119 est représentative de la tension au point F et est utilisée pour faire basculer la sortie d'un comparateur (non représenté) .
La figure 12 illustre, par un graphe du courant I]_i4 en fonction de la tension V]_]_g appliquée sur la grille de commande, le fonctionnement du circuit de la figure 11. Pour les besoins de l'explication, on suppose que la tension aux bornes 114 de drain et 115 de source du transistor 160 est maintenue constante par le circuit de lecture extérieur. La chute de tension entre la grille flottante et la borne 115 dépend alors de la charge électrique présente au noeud F, de la capacité totale entre les noeuds F et 112 (essentiellement les capacités Cl et C2), et de la tension appliquée sur la grille de commande 116 du transistor 160. En figure 12, trois courbes a, b et c ont été illustrées. La courbe a représente le cas où le noeud F est entièrement déchargé. La courbe b représente le cas d'une charge positive présente sur le noeud F (extraction d'électrons). Le seuil du transistor 160 est alors abaissé. La courbe c représente le cas d'une charge négative au noeud F (injection d'électrons) qui engendre un seuil supérieur pour le transistor MOS 160. Selon les applications, on pourra injecter ou extraire des charges du noeud F de façon à modifier la caractéristique du transistor 160 depuis la courbe a vers l'une des courbes b et c. Une fois isolée de la tension de programmation, la fuite de la capacité Cl permet de retrouver avec le temps la courbe a. Une mesure du courant I]_i4 (donc de la tension V]_]_g) à tension V]_]_g
nulle permet de détecter une expiration du temps (réinitia¬ lisation du bit à zéro) quand le courant I114 s'annule.
Par la suite, on suppose une extraction d'électrons (application sur la borne 113 d'une tension d'activation ou de programmation positive par rapport à la borne 112) par effet Fowler-Nordheim. Le fonctionnement qui va être décrit se trans¬ pose toutefois sans difficulté à une injection d'électrons au noeud F, par exemple, par un phénomène dit de porteurs chauds en appliquant des tensions adaptées entre les bornes 142, 173 et 174.
Des tensions différentes peuvent être utilisées en programmation et en lecture à condition de disposer d'une référence exploitable entre la charge résiduelle et l'inter¬ prétation de l'état du bit stocké. Selon un exemple particulier de réalisation, un circuit de rétention de charges est réalisé avec les valeurs suivantes :
Capacité Cl : 2 fF, épaisseur de diélectrique : 40 Â ;
Capacité C2 : 20 fF, épaisseur de diélectrique : 160 Â ;
Capacité C3 : 1 fF, épaisseur de diélectrique : 80 Â.
Un tel circuit peut être initialisé par application d'une tension de l'ordre de 12 volts et se trouve déchargé au bout d'environ une semaine. Il ne s'agit bien entendu que d'un exemple, les épaisseurs de diélectrique et l'éventuelle association en parallèle de plusieurs éléments Cl ou C2 conditionnant la durée de rétention des charges .
Les figures 13A, 13B, 13C, 14A, 14B, 14C, 15A, 15B,
15C, 16A, 16B, 16C, 17A, 17B et 17C représentent un exemple de circuit 100' selon le mode de réalisation de la figure 11 dans une structure intégrée, dérivée d'une architecture de mémoire
EEPROM.
Les figures 13A, 14A, 15A, 16A et 17A sont des vues de dessus schématiques, respectivement du circuit électronique de rétention de charges et de ses éléments C2, 170, Cl et 160. La
figure 13B est une coupe selon la ligne AA' de la figure 13A. Les figures 14B, 15B, 16B et 17B sont respectivement des vues en coupe selon les lignes BB' des figures 14A, 15A, 16A et 17A. Les figures 13C, 14C, 15C, 16C et 17C représentent les schémas électriques équivalents respectifs du circuit électronique de rétention de charges et de ses éléments C2, 170, Cl et 160.
On suppose une réalisation de transistors à canal N dans un substrat 180 (figure 13B) de silicium de type P. L'inverse est bien entendu possible. Chaque élément ou cellule C2, 170, Cl ou 160 est obtenu à partir d'un transistor à grille flottante connecté en série avec un transistor de sélection T2, T3, Tl ou T4 à simple grille pour sélectionner, par exemple dans un réseau matriciel de cellules mémoire EEPROM, le circuit électronique de rétention de charges.
Les grilles flottantes des différents transistors constitutifs des éléments C2, 170, Cl et 160 sont inter¬ connectées (ligne conductrice 184) pour former le noeud flottant F. Leurs grilles de commande sont reliées ensemble à une ligne conductrice 185 d'application du signal CG de commande en lecture. Leurs sources respectives SC2, S7, SCl et S6 sont interconnectées à la borne 112 (la masse) et leurs drains respectifs DC2, D7, DCl et D6 sont reliés aux sources respectives des transistors de sélection T2, T3, Tl et T4. Les grilles des transistors Tl à T4 sont reliées ensemble à une ligne conductrice 186 d'application d'un signal SEL de sélection du circuit. Leurs drains respectifs Dl à D4 sont connectés à des lignes de bit BLl à BL4 commandables individuellement. L'ordre des lignes de bit dans la figure 13C a été illustré de façon arbitraire BL2, BL3, BLl et BL4 mais l'ordre des différents éléments C2, 170, Cl et 160 dans la direction horizontale des rangées (dans l'orientation des figures) est indifférent.
Dans cet exemple de réalisation, on suppose des régions de source et drain de type N (figure 13B) séparées les unes des
autres dans la direction des lignes par des zones isolantes 181. Les grilles flottantes sont réalisées dans un premier niveau conducteur Ml séparé des régions actives par un niveau isolant 182 et les grilles de commande sont réalisées dans un deuxième niveau conducteur M2 séparé du premier par un troisième niveau isolant 183. Les grilles des transistors de sélection sont réalisées, par exemple, dans le niveau M2.
Une différence par rapport à un réseau de cellules mémoire EEPROM usuel est que les grilles flottantes sont inter- connectées par groupe de quatre transistors pour réaliser le noeud flottant F. Une autre différence est que les transistors à grille flottante réalisant les différents éléments du circuit sont différents les uns des autres dans l'épaisseur de leur fenêtre tunnel et/ou dans leur connexion de drain et source. Les figures 14A à 14C illustrent la réalisation du condensateur C2 de stockage. Les drain DC2 et source SC2 du transistor à grille flottante correspondant sont court-circuités (par extension de l'implantation de type N+ dans toute la zone active, figure 14B) pour former l'électrode 132 du condensateur. Par ailleurs, la fenêtre tunnel est éliminée par rapport à une cellule EEPROM standard.
Les figures 15A à 15C illustrent la réalisation du transistor 170 formant l'élément capacitif C3 de programmation. Il s'agit d'une cellule EEPROM standard dont l'extension 201 de la zone dopée N sous la fenêtre tunnel 202 (figure 15B) permet d'obtenir un plateau dans la zone d'injection de charges. A la manière d'une cellule EEPROM standard, la zone de drain D7 est reliée à la source du transistor de sélection T3. La zone de source S7 est reliée à la borne 112. Les figures 16A à 16C illustrent la réalisation de l'élément capacitif Cl constituant l'élément de fuite du circuit de rétention de charges. Par rapport à une cellule EEPROM standard, une différence consiste à amincir (zone 212, figure 16B) la fenêtre diélectrique servant à l'effet tunnel pour augmenter les fuites. Par exemple, l'épaisseur du diélectrique
212 est choisie pour être d'environ la moitié (par exemple, entre 30 et 40 angstrδms) de celle (par exemple, entre 70 et 80 angstrδms) d'une fenêtre tunnel (202, figure 15B) d'une cellule non modifiée. Les figures 17A à 17C illustrent la réalisation du transistor de lecture 160 dans lequel la fenêtre tunnel a été supprimée de même que, de préférence, la zone implantée habi¬ tuelle (201, figure 15B) d'une cellule EEPROM. La zone active limitée par les source S6 et drain D6 est donc similaire à celle d'un transistor MOS normal.
Les représentations des figures 13A à 17C sont schématiques et pourront être adaptées à la technologie utilisée. En particulier, les grilles ont été représentées alignées avec les limites des zones de drain et source mais un léger recou- vrement est souvent présent.
Un avantage de la réalisation au moyen d'une techno¬ logie de cellules EEPROM est que le circuit de rétention de charges peut être programmé et réinitialisé en appliquant les mêmes niveaux de tension et les mêmes fenêtres temporelles que ceux utilisés pour effacer ou écrire dans des cellules mémoire EEPROM.
Un autre avantage est que cela préserve une stabilité dans le temps en évitant les dégradations de l'oxyde mince de l'élément de fuite (Cl) lors des opérations d'écritures successives.
Les connexions respectives des lignes de bit BLl à BL4 dépendent des phases de fonctionnement du circuit et notamment de la phase de programmation (activation) ou de lecture.
Le tableau I ci-dessous illustre un mode de mise en oeuvre d'une activation (SET) et d'une lecture (READ) d'un circuit électronique de rétention de charges tel qu'illustré par les figures 13A à 17C.
Tableau I
Dans une phase d'activation SET (passage du bit stocké à l'état 1), le signal de sélection SEL est porté à un premier potentiel haut VPP1 par rapport à la masse pour rendre passants les différents transistors Tl à T4 tandis que le signal CG appliqué sur les grilles de commande des transistors à grille flottante reste au niveau bas 0 de façon à ne pas rendre passant le transistor 160. Les lignes de bit BLl, BL2 et BL4 restent en l'air (état de haute impédance HZ) tandis que la ligne BL3 se voit appliquée un potentiel positif Vpp2 permettant la charge du noeud flottant F. La ligne 112, commune aux sources des transistors à grille flottante, est préférentiellement laissée en l'air HZ.
Pour la lecture READ, les différents transistors de sélection sont activés par le signal SEL à un niveau VgElj et une tension VpEAO ^e lecture est appliquée sur les grilles de commande des différents transistors à grille flottante. Les lignes BLl, BL2 et BL3 sont dans un état de haute impédance HZ alors que la ligne BL4 reçoit un potentiel V114 permettant d'alimenter la source de courant de lecture. La ligne 112 est ici connectée à la masse.
Les relations entre les différents niveaux VPP1, VPP2, VSEL' VREAD et V114 son"t, de préférence, les suivantes : VPP1 supérieur à VPP2 ; VSEL supérieur à Vp^0 ;
VREAD ^u même ordre de grandeur que V114. Selon un exemple particulier de réalisation : VPP1 = 14 volts ; VPP2 = 12 volts ; VSEL = 4 volts ;
VREAD = 2 volts ; et
V114 = 1 volt.
Ce qui a été décrit ci-dessus en relation avec une cellule EEPROM par élément du circuit de rétention de charges peut bien entendu être remplacé par une structure dans laquelle des sous-ensembles de plusieurs cellules identiques en parallèle sont utilisés pour les différents éléments respectifs. En particulier : plusieurs éléments C2 peuvent être utilisés en parallèle pour accroître la capacité du noeud F de façon à augmenter le temps de décharge du circuit électronique ; plusieurs éléments 170 peuvent être utilisés en parallèle pour accroître la vitesse d'injection ou d'extraction d'électrons au noeud F lors d'une programmation ; plusieurs éléments de fuite Cl peuvent être utilisés en parallèle pour réduire le temps de décharge du système ; et/ou plusieurs éléments de lecture 160 peuvent être introduits en parallèle pour fournir un courant supérieur lors de l'évaluation du circuit. Un circuit électronique de rétention de charges peut être introduit dans n'importe quelle position d'un réseau de cellules mémoire EEPROM standard, ce qui permet de rendre plus difficile sa localisation par un éventuel utilisateur mal intentionné. Le cas échéant, les transistors de sélection des cellules formant le circuit de rétention de charges sont partagés avec des cellules EEPROM normales sur les mêmes lignes de bits, en prévoyant des moyens d'adressage et de commutation adaptés. Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, le circuit de rétention de charges pourra être constitué par n'importe quel circuit susceptible de présenter, de façon reproductible, une perte de charge au cours du temps indépendamment de l'alimentation du circuit. Par
exemple, on pourra avoir recours à un circuit tel que décrit dans la demande internationale WO-A-03/083769.
De plus, la mise en oeuvre pratique du circuit à partir des indications fonctionnelles données ci-dessus et des besoins de l'application est à la portée de l'homme du métier. Les compteurs pourront être de toute nature et la fonction de comptage peut être de n'importe quel incrément ou décrément. Par exemple (notamment dans des modes de réalisation, par exemple figure 8 et suivantes, où les cellules de comptage ne peuvent pas être réinitialisées autrement que de façon temporelle), on pourra utiliser deux compteurs incrémentiels de taille finie dont la différence fournit la valeur à considérer.
En outre, notamment comme elle ne requiert pas d'alimentation permanente, l'invention peut être mise en oeuvre dans des dispositifs sans contact (de type transpondeur élec¬ tromagnétique) qui tirent leur alimentation d'un champ électro¬ magnétique dans lequel ils se trouvent (généré par un terminal) . Enfin, tout ce qui a été décrit en relation avec un incrément d'un compteur se transpose sans difficulté à un décrément d'un compteur à chaque détection.