Brevet FR2600183A1 — publié le 19871218

CIRCUIT INTEGRE POUR LA MEMORISATION ET LE TRAITEMENT D'INFORMATIONS DE MANIERE CONFIDENTIELLE COMPORTANT UN DISPOSITIF ANTI-FRAUDE. La présente invention a pour objet un circuit intégré pour la mémorisation et- le traitement d'informations de manière confidentielle comportant un dispositif anti-fraude. Elle concerne plus particulièrement, mais non exclusivement, les circuits intégrés du type ci-dessus connus sous la dénomination de cartes à mémoire. Les cartes à mémoire sont réalisées avec un circuit intégré électronique comportant essentiellement une mémoire non volatile programmable électriquement comprenant souvent des données confidentielles non-modifiables, des moyens d'entrée/sortie 10 permettant d'accoupler le circuit à un dispositif de transfert de données et des moyens de traitement interconnectés entre les moyens d'entrée-sortie et la mémoire. Dans certaines applications des cartes à mémoire, il est impératif de protéger l'accès à certaines zones de la mémoire non volatile par une clé d'accès telle 15 qu'un code confidentiel associé à certains droits de lecture ou d'écriture dans ces zones spécifiques. Il existe de nombreux dispositifs permettant de dissuader les fraudeurs qui cherchent à découvrir le code secret ou la clé d'accès à une mémoire par essais successifs. Parmi ces dispositifs, le plus connu est sans doute celui 20 qui mémorise d'une façon permanente les erreurs de clé et bloque le fonctionnement dès que le nombre des erreurs dépasse une valeur prédéterminée. Cependant, ce dispositif est inefficace s'il est utilisé seul. En effet, lorsque l'on programme à "1" une cellule- mémoire, il y a variation du courant et l'observation de la variation du courant 25 d'écriture dans la mémoire permet de déterminer avec précision le passage d'une clé bonne à condition de limiter correctement ce courant de façon qu'un enregistrement des erreurs ne puisse se produire. Pour remédier à cet inconvénient, la technique actuellement utilisée consiste à programmer dans tous les cas une 30 information provoquant ainsi une consommation de courant. Dans ce cas, un fraudeur ne peut pas reconnaître les essais corrects des essais incorrects par la mesure du courant eyterne consommé par le composant. Le fraudeur ne peut donc pas être informé des résultats des actions qu'il entreprend. Ce fonctionnement, bien qu'efficace, 5 présente un grave inconvénient. Il nécessite une place mémoire relativement importante pour enregistrer les tentatives correctes qui sont en fait les plus fréquentes. Or, dans le cas d'une mémoire non volatile de type EPROM ou similaire, il ne sera pas possible de réutiliser cette place. D'autre part, il n'est pas utile de conserver 10 trace des tentatives correctes qui ne sont pas utilisées par la suite à l'inverse des tentatives -erronées qui doivent être utilisées pour bloquer le système. Pour remédier à cet inconvénient, l'homme de l'art peut penser à ne programmer qu'une seule et même cellule de mémoire non 15 volatile dans le cas o une information présentée est correcte et à ne programmer des cellules différentes que dans le cas o l'information présentée est incorrecte. Ceci permet un gain de mémoire important. Toutefois, une cellule-mémoire déjà programmée présente une courbe de consommation de courant 20 différente d'une cellule-mémoire vierge. En effet, une cellulemémoire vierge d'une mémoire non volatile présente une pointe de consommation de courant d'environ 2 % en début de programmation, pointe qui est pratiquement résorbée après 2 millisecondes. Or, cette pointe de consommation n'existe plus dans le cas o la cellule 25 est reprogrammée. Il est donc toujours possible pour un fraudeur de détecter le passage d'une clé bonne. La présente invention a donc pour but de remédier à cet inconvénient tout en utilisant un seul point pour la programmation des tentatives correctes. Par conséquent, la présente invention a pour objet un circuit intégré pour la mémorisation et le traitement d'informations de manière confidentielle comprenant au moins: - une mémoire non volatile programmable électriquement contenant entre autres des données d'habilitation, - des moyens d'entrée/sortie permettant d'accoupler le circuit 260 0183 un dispositif de transfert de données, - des moyens de traitement interconnectés entre les moyens d'entrée/sortie et la mémoire non volatile, lesdits moyens de traitement comportant, entre autres, un comparateur 5 d'identification destiné à comparer des données d'habilitation à un code confidentiel ou clé d'accès introduit par l'intermédiaire des moyens d'entrée/sortie, le comparateur d'identification étant associé à des moyens pour mémoriser dans une premiere zone mémoire non volatile un bit d'erreur et dans une deuxième zone 10 mémoire non volatile un bit d'accès suivant que le code introduit est erroné ou non, caractérisé en ce que la deuxième zone mémoire est constituée par une seule cellule dite cellule de simulation qui, lorsqu'elle est activée, consomme le même courant qu'une cellulemémoire jamais programmée de la première zone mémoire. Avec le système ci-dessus, le fraudeur ne peut plus être informé du résultat des actions qu'il entreprend puisque, quels que soient les résultats inscrits dans la première zone mémoire ou simulés sur la cellule, on observe la même consommation de courant. Dans la définition de la présente invention, on précisera pour l'homme de l'art les points ci-après: Par traitement d'informations, on entend soit le simple transfert de données entre le circuit intégré et un système extérieur, soit le transfert et l'exécution d'un certain nombre 25 d'opérations à l'intérieur du circuit lui-même. Par comparateur, on entend non seulement un simple comparateur effectuant la comparaison entre les données d'habilitation et le code confidentiel ou clé d'accès, mais aussi tout système qui, à partir des données d'habilitation ou du code 30 confidentiel ou clé d'accès, effectue un certain nombre d'opérations en vue d'autoriser la poursuite des opérations. Par moyen de traitement, on entend tous les circuits nécessaires à l'écriture et la lecture des données dans la mémoire ainsi qu'au traitement de ces données. De manière générale, le moyen de traitement est constitué par un microprocesseur muni de ses circuits annexes bien connu de l'homme de l'art. Selon un mode de réalisation préférentiel de la présente invention, lorsque la premiere zone mémoire est constituée par une mémoire non volatile dont les cellules-mémoire sont formées de transistors à grille flottante, la cellule de simulation est constituée par un transistor à grille flottante dont la grille flottante est courtcircuitée avec la grille de commande et qui présente la même tension grille-source qu'une cellule-mémoire de la première zone mémoire. La même tension grillesource peut être obtenue en 1 appliquant sur la grille de commande de la cellule de simulation une tension de commande d'écriture égale à ex la tension de commande d'écriture appliquée sur les cellules-mémoire de la première zone mémoire, r étant le facteur de couplage d'un transistor à grille flottante. En fait, la cellule conforme à la présente invention n'est 15 pas une cellule-mémoire, car elle n'enregistre pas de bit, mais une cellule simulant au niveau du courant une programmation, d'o son appellation de cellule de simulation. D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description d'un mode de réalisation 20 faite ci-après avec référence aux dessins ci-annexés dans lesquels: - la figure I représente schématiquement sous forme de blocs les différentes parties d'un circuit intégré auquel peut s'appliquer la présente invention, - la figure 2 représente schématiquement un mode de 25 réalisation d'une cellule-mémoire de la première zone mémoire connectée à ses circuits de commande, - les figures 3A et 3B représentent respectivement une vue en coupe et une vue en plan de dessus de la cellule-mémoire de la figure 2, - les figures 4A et 4B représentent respectivement une vue en coupe et une vue en plan de dessus d'un mode de réalisation d'une cellule de simulation conforme à la présente invention, et - la figure 5 représente schématiquement la cellule de simulation des figures 4A et 4B connectée à des circuits de commande. Pour simplifier la description, dans les dessins les mêmes éléments portent les mêmes références. Sur la figure 1, on a représenté à titre d'exemple, une carte à mémoire C, comme circuit intégré mettant en oeuvre la présente 5 invention. Il est évident pour l'homme de l'art que d'autres circuits intégrés peuvent être envisagés pour la mise en oeuvre de la présente invention. La carte à mémoire C représentée sur la figure I comporte essentiellement une mémoire non volatile M programmable 10 électriquement, par exemple une mémoire EPROM, un dispositif d'entrée/sortie E/S permettant d'accoupler ladite carte à un dispositif de transfert de données extérieur, et un microprocesseur MP interconnecté entre le dispositif d'entrée/sortie E/S et ladite mémoire M. Pour permettre le traitement de certaines informations 15 de manière confidentielle, la carte à mémoire contient des données - d'habilitation. Ces données d'habilitation sont, en général, programmées dans une zone ZI de la mémoire EPROM. D'autre part, pour ce traitement confidentiel, les données d'habilitation contenues dans la zone ZI doivent être en général comparées avec une clé 20 d'accès ou code confidentiel entré de l'extérieur par l'intermédiaire du dispositif d'entrée/sortie E/S. En conséquence, le microprocesseur MP comporte des moyens de comparaison dénommés comparateur d'identification COMP destiné à comparer les données d'habilitation contenues dans la zone Z1 au code 25 confidentiel ou clé d'accès introduit par l'intermédiaire du dispositif E/S. Selon un mode de réalisation de l'art antérieur, ce comparateur d'identification COMP est associé à des moyens pour mémoriser dans une première zone mémoire non volatile un bit d'erreur lorsque la clé d'accès est erronée. Cette première zone mémoire est 30 constituée, dans le mode de réalisation représenté, par une zone Z2 de la mémoire EPROM M. D'autre part, lorsque le code introduit n'est pas erroné, le comparateur d'identification envoie le bit d'accès dans une deuxième zone mémoire qui est constituée par la zone Z3 de la mémoire EPROM M. Comme mentionné dans l'introduction, la mémorisation de tous les essais non erronés dans la zone mémoire Z3 consomme beaucoup de place mémoire. Aussi, conformément à la présente invention, la zone mémoire Z3 peut être limitée à une seule cellule dite cellule de simulation qui, lorsqu'elle est activée, consomme le même courant qu'une cellule mémoire jamais programmée de la première zone mémoire. Dans le cas des mémoires non volatiles programmables électriquement de type EPROM dans lesquelles la cellule-mémoire est constituée par un transistor à grille flottante, la cellule de simulation conforme à la présente invention sera constituée par un 10 transistor à grille flottante dont la grille flottante est reliée à la grille de commande. D'un point de vue technologique, cette cellule de simulation peut être réalisée dans un même plan mémoire qu'une cellule EPROM classique et sélectionnée en utilisant les mêmes décodeurs et circuits de commande, comme cela sera expliqué de 15 manière plus détaillée ci-après. Ainsi, selon un mode de réalisation de la présente invention, la première zone mémoire Z2 destinée à enregistrer les bits d'erreur est constituée par une zone mémoire de type EPROM dont es cellules-mémoire sont formées de transistors à grille flottante I tels 20 que représentés sur les figures 2 et 3. Chaque transistor à grille flottante 1 comporte deux électrodes principales respectivement 2 et 3 et une grille de commande 5 empilée sur la grille flottante 4. Dans le cas d'un transistor MOS à canal N, tel que représenté sur les figures 3A et 3B, les électrodes 2 et 3 sont constituées par des 25 diffusions N+ dans un substrat de type P. La grille flottante 5 et la grille de commande 4 sont réalisées par exemple en silicium polycristallin tandis que l'isolant I est lui réalisé en oxyde de silicium SiO2. Une des électrodes principales, à savoir l'électrode 2 dans le mode de réalisation représenté, est reliée à la masse tandis 30 que l'électrode 3 est reliée par l'intermédiaire d'une ligne de bit non représentée et d'un transistor MOS formant interrupteur 8 à un décodeur d'adresse colonne 7. La grille de commande 5 est reliée par l'intermédiaire d'une autre connexion dite ligne de mots non représentée à un décodeur d'adresse de lignes 6. Les lignes de bit et lignes de mot sont arrangées en lignes et - en colonnes pour déterminer une matrice incluant la cellule-mémoire 1 de manière 2600 1 83 connue de l'homme de l'art. En fait, le décodeur d'adresse colonne 7 est relié à la grille du transistor 8 dont l'une des électrodes principales est reliée à l'électrode 3 du transistor 1 tandis que son autre électrode principale est reliée par l'intermédiaire d'un circuit 5 constitué des transistors MOS 11 et 12 à la tension de polarisation Vpp. De manière plus spécifique, le transistor MOS 11 est un transistor déplété dont l'une des électrodes est reliée à la tension Vpp tandis que l'autre électrode est reliée à une des électrodes du transistor MOS 12 qui est un transistor enrichi. Les deux grilles des 10 transistors 11 et 12 sont reliées en commun à un circuit 10 de commande de la programmation. L'autre électrode du transistor 12 est donc reliée à une des électrodes du transistor MOS 8 formant interrupteur, le point milieu entre les transistors 12 et 8 étant relié à un amplificateur de lecture 9. Pour programmer à "1" une cellule-mémoire du type de celle représentée à la figure 2, on applique sur sa grille de commande 5 une tension de programmation égale à Vpp, en sélectionnant ladite cellule-mémoire I par l'intermédiaire des décodeurs 6 et 7. Dans ce cas, les transistors 8, 11 et 12 correspondent à une résistance de 20 charge et la tension de drain VD est égale à Vpp - Vcharge, tandis que la tension grille Vgp est égale à Vpp. On décrira maintenant avec référence aux figures 4 et 5, une cellule de simulation conforme à la présente invention. Dans le mode de réalisation représenté, la cellule de simulation fait partie 25 du champ mémoire EPROM M. Toutefois, il est évident pour l'homme de l'art que cette cellule de simulation peut être réalisée et commandée de manière indépendante directement à partir du comparateur d'identification. Comme représenté sur les figures 4A et 4B, la cellule de simulation est constituée par un transistor MOS 30 à grille flottante 20 dont la grille flottante 21 a été reliée à la grille de commande 22. Dans le mode de réalisation représenté, cette cellule de simulation 20 est connectée à un décodeur d'adresse de rangée 6' et aux mêmes circuits décodeur d'adresse colonne 7 et commande de la programmation 10 que la cellule-mémoire de la figure 2. En fait, la cellule de simulation 20 peut être connectée au 26 0 0 1 8 3 même circuit décodeur d'adresse de rangée 6 que la cellule-mémoire de la figure 2, si l'on peut commander sur le. décodeurs eux-mêmes le signal Vpp et le signal Vréf. utilisé pour obtenir le même courant de programmation. Dans l'exemple de réalisation représenté, on a 5 choisi pour consommer moins d'utiliser deux décodeurs d'adresse de rangée différents 6, 6', l'un recevant Vpp, l'autre recevant Vréf., mais la rangée sélectionnée est la même, c'est-à-dire que les deux décodeurs décodent la même adresse-mémoire. Conformément à la présente invention, pour éviter les fraudes 10 la cellule de simulation doit se comporter lors de la programmation de la même manière que la cellule-mémoire 1. Pour ce faire, il faut donc avoir la même droite de charge, c'est-à-dire la même tension drain-source Vds et la même tension grille-source Vgs. Dans le mode de réalisation représenté, Vds = Vpp -Vcharge et 15 est identique dans les deux cas. D'autre part, Vgs = de Vgp. En conséquence, la même tension grille-source dans une cellule de simulation que dans une cellule normale est obtenue en utilisant le facteur t-. En effet, quand on programme une cellule20 mémoire, on vient charger la grille flottante et par conséquent sur la grille de commande, on a un rapport capacitif dOû à cette charge. Ainsi, par exemple, si Vpp = 22 volts, sur la grille de commande, on a une tension de 22 volts x e sur la grille flottante. Aussi, conformément à la présente invention, au lieu d'appliquer Vpp sur 25 l'ensemble grille de commande/grille flottante de la cellule de simulation 20, on appliquera une tension Vréf. qui sera égale à Y Vpp. Conformément à la présente invention, cette tension Vréf. peut être obtenue à partir de la tension Vpp en utilisant un circuit 30 soustracteur de tension. Ce circuit soustracteur de tension est constitué par le transistor MOS déplété 30, par un montage en cascade de cinq transistors MOS 31, 32, 33, 34, 35 connectés chacun en diode et par un transistor MOS déplété 36. De manière plus spécifique, une première électrode principale du transistor 30 est reliée à la source de tension Vpp et sa deuxième 2600 183 électrode principale est reliée en un point 37 à la première électrode du transistor 31. Les grilles des transistors 30 et 31 sont reliées ensemble et sont reliées au point 37. La deuxième électrode principale du transistor 31 est reliée à la première électrode 5 principale du transistor 32. Le transistor déplété 30 a en fait deux r8les. Son premier r8le est de protéger les transistors 31 à 36 par rapport à la tension Vpp car il possède une meilleure tenue à des tensions de l'ordre de Vpp, à savoir 20 V. Son deuxième r8le est de contr8ler le courant dans la chaTne des transistors et, par 10 conséquent, la valeur de Vréf.. Dans le montage en cascade des transistors 31, 32, 33, 34 et , les grilles de commande de chacun de ces transistors sont reliées à leur drain. Chacun constitue donc une diode et occasionne une chute de potentiel VT calibrée. D'autre part, la deuxième électrode 15 du transistor 35 est reliée à Ia première électrode principale du transistor déplété 36 dont la deuxième électrode principale et la grille sont reliées à Vss. Le transistor 36 est donc toujours conducteur. Il canalise le courant de Vpp vers Vss et permet une meilleure stabilité de la tension Vréf.. Vréf. est une référence de 20 tension et absorbe peu de courant. Avec le montage ci-dessus, on obtient donc au niveau du point 38 la tension de référence Vréf = Vpp - 5 VT, VT étant choisi de telle sorte que 5VT = Y. Ce circuit a été réalisé dans un cas particulier pour lequel 25 Vpp = 22 V 0,7 VT = VTo + KB 0T = 1,2 V (KB étant le coefficient d'effet substrat). Dans la technologie choisie, les transistors ont un VTO0 de 0,9V, 30 mais quand leur source est à un potentiel supérieure à Vss, un effet substrat se rajoute et on obtient alors un VT de 1,2V. Il est évident pour l'homme de l'art que d'autres circuits peuvent être envisagés pour obtenir la tension de référence tels que des circuits élévateurs de tension ou circuits pompes, ou encore des circuits plus complexes avec des transistors avec une tension de seuil spéciale, avec des cellules-mémoire ou autres. REVENDICATIONS 1. Un circuit intégré pour la mémorisation et le traitement d'informations de manière confidentielle comprenant au moins: - une mémoire (M) non volatile programmable électriquement contenant entre autres des données d'habilitation, - des moyens d'entrée/sortie (E/S) permettant d'accoupler le circuit à un dispositif de transfert de données, - des moyens de traitement (MP) interconnectés entre les moyens d'entrée/sortie et la mémoire non volatile, lesdits moyens de traitement comportant, entre autres, un comparateur (COMP) 10 d'identification destiné à comparer des données d'habilitation à un code confidentiel ou clé d'accès introduit par l'intermédiaire des moyens d'entrée/sortie, -le comparateur d'identification étant associé à des moyens pbur mémoriser dans une première zone mémoire (22) non volatile un bit d'erreur et dans une deuxième zone 15 mémoire (23) non volatile un bit d'accès suivant que le code introduit est erroné ou non, caractérisé en ce que la deuxième zone mémoire est constituée par une seule cellule (20) dite cellule de simulation qui, lorsqu'elle est activée, consomme le même courant qu'une cellule-mémoire jamais programmée de la première zone 20 mémoire. 2. Un circuit intégré selon la revendication 1, caractérisé en ce que, lorsque la première zone mémoire est constituée par une mémoire non volatile dont les cellules-mémoire sont formées de transistors (1) à grille flottante, la cellule de simulation est 25 constituée par un transistor (20) à grille flottante dont la grille flottante est courtcircuitée avec la grille de commande et qui présente la même tension grille-source qu'une cellule-mémoire de la première zone mémoire. 3. Un circuit intégré selon la revendication 2, caractérisé en 30 ce que la tension grille-source de la cellule de simulation est obtenue en appliquant sur la grille de commande de la cellule de simulation une tension de commande d'écriture (Vréf.) égale à 5' x 1i la tension de commande d'écriture appliquée sur les cellulesmémoire de la première zone mémoire, 5étant le-facteur de couplage d'un transistor à grille flottante.