Brevet FR2695225A1 — publié le 19940304

CARTE A CIRCUIT INTEGRE AVEC MOYENS DE TRAITEMENT DE CONTROLE ET PROCEDE DE CONTROLE DE NUMERO D'IDENTIFICATION PERSONNELLE DE CETTE CARTE La présente invention concerne une carte à circuit intégré ou CI avec un micro-ordinateur et une mémoire incorporés, et elle concerne également un procédé de contrôle d'un numéro d'identification personnelle de la carte à CI. Il y a eu récemment un développement rapide de l'utilisation de cartes à CI qui comprennent des micro- ordinateurs et des mémoires mortes programmables et effaçables par des moyens électriques, ou EEPROM L'une des raison de ce développement consiste en ce que le CI se présente sous la forme d'une seule puce avec une seule alimentation Habituellement, un CI comprenant un micro- ordinateur en une seule puce, comportant une mémoire morte, une mémoire vive et une unité centrale universelles, et un autre CI comprenant une mémoire EEPROM ou EPROM, étaient montés indépendamment sur un substrat constituant un module à CI Cependant, avec les progrès de la technologie de fabrication des semiconducteurs, il est possible d'obtenir une configuration à une seule puce pour le CI, en intégrant la mémoire EEPROM dans le CI qui contient le micro-ordinateur en une seule puce De plus, alors qu'une alimentation indépendante pour l'écriture était exigée dans le passé, on peut obtenir effectivement un CI ayant une configuration à une seule alimentation, en incorporant un circuit élévateur de tension dans le CI. La figure 3 est un schéma synoptique montrant la carte à CI conforme à l'art antérieur, dans lequel la référence 1 désigne une unité centrale (ou UC) qui comprend un circuit de génération d'horloge 2, un registre d'état de processeur 3, des compteurs d'instructions 4 et , un pointeur de pile 6, un diviseur de tête 7, un tempo- risateur 8, un registre d'instruction 9, un décodeur d'instruction 10, une unité arithmétique et logique (UAL) à 8 bits 11, un accumulateur 12 et des registres d'index 13 et 14. La référence 15 désigne une mémoire EEPROM dans laquelle sont enregistrées des données variables telles qu'un numéro d'identification personnelle La référence 16 désigne une mémoire vive ou RAM dans laquelle des données sont enregistrées de façon temporaire La référence 17 désigne une mémoire morte ou ROM dans laquelle sont enregistrées des données invariables telles qu'un programme La référence 18 désigne une unité d'entrée/ sortie qui assure les fonctions d'entrée et de sortie de données en relation avec un terminal externe Les réfé- rences 19 et 20 désignent respectivement un bus de données et un bus d'adresse La référence CLK désigne une borne par laquelle une horloge de fonctionnement provenant d'un élément externe est appliquée au circuit d'horloge 2 La référence RST désigne une borne par laquelle un signal de restauration est appliqué pour initialiser l'unité centrale 1 Les références Vcc, GND et I/O désignent respectivement une borne sur laquelle la tension d'alimen- tation est appliquée, une borne de masse et une borne d'entrée/sortie pour l'unité d'entrée/sortie 18. La figure 4 est un schéma synoptique montrant la configuration de la mémoire EEPROM 15, dans lequel la référence 21 désigne un réseau de mémoire EEPROM compre- nant des cellules de mémoire EEPROM ayant chacune une structure ELOTOX ou une structure NMOS; la référence 22 désigne un circuit de bascules d'adresse qui conserve un signal d'adresse pour écrire/lire de l'information dans le réseau de mémoire EEPROM 21; la référence 23 désigne un circuit de bascules de données qui conserve temporairement une information écrite; la référence 24 désigne un ampli- ficateur de lecture qui convertit un signal lu dans le réseau de mémoire EEPROM 21, pour donner un signal numérique 0/1 qui est émis vers le bus de données 19; et la référence 25 désigne un circuit de génération de tension élevée qui génère une tension élevée nécessaire pour écrire de l'information dans le réseau de mémoire EEPROM 21 auquel la tension élevée qui est générée est appliquée. On va maintenant décrire le fonctionnement de la carte à CI. Un programme d'application, qui est écrit sur la base des spécifications de chaque utilisateur (par exemple la personne à laquelle une carte est délivrée), est enregistré dans la mémoire morte 17 de la carte à CI, et, cette dernière est connectée au terminal, et le système d'application considéré peut être mis en oeuvre par l'exécution du programme d'application qu'effectue l'unité centrale 1, lorsque l'alimentation et les signaux exigés sont fournis. La majeure partie des diverses sortes d'informa- tion qu'utilise un système d'application de la carte à CI est enregistrée dans la mémoire EEPROM 15, dont l'informa- tion peut être réécrite A titre d'exemple, l'information suivante peut être enregistrée dans la mémoire EEPROM 15 un numéro d'identification personnelle, ou numéro PIN, pour vérifier l'identification personnelle, une clé de vérification mutuelle et une clé secrète de codage/ décodage d'un terminal ou autre, ainsi qu'un enregistre- ment de transactions, toutes ces informations étant habituellement réécrites ou écrites en plus, sur demande. Dans la mémoire EEPROM 15 qui est représentée sur la figure 4, le circuit de génération de tension élevée 25 est conçu de façon à élever la tension d'alimen- tation, qui est fournie par la borne Vcc, au moyen d'un circuit de pompe de charge ou d'un circuit semblable La tension de sortie qui est produite dans le circuit de génération de tension élevée 25 dépend fortement de la tension présente sur la borne Vcc Par conséquent, lorsque la tension sur la borne Vcc est diminuée, la tension de sortie du circuit de génération de tension élevée 25 diminue, ce qui fait que l'on ne peut pas obtenir une tension suffisante pour l'écriture dans la cellule de mémoire De façon générale, la tension d'alimentation nominale de la carte à CI est de 5 V + 0 % Cependant, lorsque la tension d'alimentation est diminuée, la propriété caractéristique du circuit de génération de tension élevée 25 est affectée, et par conséquent le circuit du système d'écriture dans la mémoire EEPROM 15 ne peut pas remplir correctement sa fonction. Du fait que la carte à CI classique présente généralement la configuration indiquée ci-dessus, lorsque la tension d'alimentation est diminuée, il peut apparaîtte une zone de tension d'alimentation dans laquelle l'unité centrale 1, la mémoire morte 17 et la mémoire vive 16 fonctionnent correctement, mais le circuit du système d'écriture dans la mémoire EEPROM 15 ne peut pas remplir sa fonction Dans un procédé qui est employé de façon générale pour vérifier l'identification personnelle par l'utilisation de la carte à CI dans le système d'applica- tion, des numéros d'identification personnelle peuvent être enregistrés dans une zone prédéterminée dans la mémoire EEPROM 15 de la carte à CI, et le numéro peut être vérifié. Un indicateur est établi à l'avance dans la mémoire EEPROM 15 de façon à bloquer automatiquement une opération d'utilisation de la carte à CI lorsque le nombre d'erreurs d'identification dépasse un nombre prédéterminé. La vérification est effectuée par l'unité centrale 1 dans la carte à CI, et l'unité centrale 1 peut écrire le nombre d'erreurs d'identification dans une zone prédéterminée séparée dans la mémoire EEPROM 15 On peut ainsi empêcher une utilisation illicite de cartes en fixant l'indicateur de façon qu'il puisse effectuer une opération d'écriture dans la mémoire EEPROM 15 lorsque le nombre d'erreurs d'identification dépasse le nombre prédéterminé Le procédé de contrôle mentionné ci-dessus peut être utilisé à titre de procédé ayant une sécurité élevée, pour les raisons suivantes: le numéro d'identification personnelle d'origine ne peut pas émis vers l'extérieur de-la carte à CI; le nombre d'erreurs d'identification peut être actualisé dans la mémoire EEPROM 15 par la carte à CI elle-même; et un moyen est incorporé pour bloquer automa- tiquement l'opération d'utilisation de la carte à CI. Cependant, le circuit du système d'écriture dans la mémoire EEPROM 15 ne peut pas fonctionner lorsque la tension d'alimentation est diminuée intentionnellement, comme décrit ci-dessus Dans ce cas, bien que la vérifica- tion mentionnée ci-dessus puisse être effectuée normale- ment, l'actualisation du nombre d'erreurs d'identification dans la mémoire EEPROM 15 et le blocage automatique du fonctionnement ne peuvent pas être exécutés Il existe donc un problème dans la mesure o seuls les résultats de la vérification peuvent être émis vers l'extérieur de la, carte à CI, et par conséquent le numéro d'identification personnelle d'origine peut être divulgué par le fait qu'un contrôle répété du numéro d'identification personnelle est permis. Pour résoudre les problèmes décrits ci-dessus, la présente invention procure une carte à CI et un procédé de contrôle d'un numéro d'identification personnelle, ou numéro PIN, dans lesquels un numéro PIN d'origine qui est enregistré dans la carte à CI ne peut pas être divulgué, même si le numéro PIN est contrôlé pendant qu'une tension d'alimentation est diminuée intentionnellement. Une carte à CI conforme à la présente invention comprend: des moyens de traitement de données pour traiter des données; une mémoire dans laquelle un numéro d'iden- tification personnelle est enregistré à l'avance; une borne d'alimentation à laquelle une tension d'alimentation est appliquée à partir d'une unité externe; une borne d'entrée/sortie par laquelle sont effectuées des opéra- tions d'entrée et de sortie en relation avec l'unité externe; un circuit de détection de tension qui détecte la tension d'alimentation qui est appliquée à la borne d'alimentation à partir de l'unité externe; et des moyens de traitement de contrôle qui sont destinés à exécuter une vérification d'un numéro d'identification personnelle qui est introduit à partir de l'unité externe, par comparaison avec un numéro d'identification personnelle enregistré dans la mémoire, conformément à l'introduction d'un ordre de vérification du numéro d'identification, à partir de l'unité externe, par l'intermédiaire de la borne d'entrée/ sortie, lorsque la tension d'alimentation qui est détectée dans le circuit de détection de tension est supérieure o égale à une valeur prédéterminée, tandis qu'au contraire, les moyens de traitement de contrôle exécutent constamment une opération qui consiste à renvoyer des erreurs d'iden- tification vers l'unité externe sous l'effet de l'intro- duction d'un ordre de vérification du numéro d'identifi- cation, à partir de l'unité externe, par l'intermédiaire de la borne d'entrée/sortie, lorsque la tension d'alimen- tation qui est détectée dans le circuit de détection de tension est inférieure à la valeur prédéterminée. De plus, un procédé de contrôle d'un numéro d'identification personnelle par une carte à CI conforme à la présente invention comprend les étapes suivantes: on écrit des données fictives prédéterminées dans une mémoire lorsqu'un ordre de contrôle d'un numéro d'identification personnelle est introduit à partir d'une unité externe; on lit les données fictives dans la mémoire; on détermine si une écriture normale a été effectuée ou non, en comparait les données fictives qui sont lues avec les données fictives qui ont été écrites; on contrôle le numéro d'identification qui est introduit à partir de l'unité externe, par comparaison avec un numéro d'identification personnelle qui a été enregistré à l'avance dans la mémoire, lorsqu'on a déterminé qu'une écriture normale a été effectuée; et on effectue une opération consistant à renvoyer constamment une erreur d'identification vers l'unité externe, lorsqu'on a déterminé qu'une écriture anormale a été effectuée. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description qui va suivre de modes de réalisation, donnés à titre d'exemples non limitatifs La suite de la descrip- tion se réfère aux dessins annexés dans lesquels: La figure 1 est un schéma synoptique d'un premier mode de réalisation d'une carte à CI conforme à la présente invention. La figure 2 est un organigramme montrant le fonctionnement d'un second mode de réalisation conforme à la présente invention. La figure 3 est un schéma synoptique d'une carte à CI classique. La figure 4 est un schéma synoptique montrant une mémoire EEPROM qui est incorporée dans la carte à CI classique. Premier mode de réalisation On a utilisé des références numériques identi- ques pour désigner des éléments identiques d'une carte à CI, sur la figure 1 qui représente l'invention et sur la figure 3 qui représente l'art antérieur. La carte à CI d'un mode de réalisation préféré comprend une unité centrale (UC) 1; et une mémoire EEPROM , une mémoire vive 16, une mémoire morte 17 et une unité d'émission-réception asynchrone universelle (ou UART) 18, qui sont connectées à l'unité centrale 1 par l'intermé- diaire d'un bus de données 19 L'unité centrale 1 comprend un circuit de génération d'horloge 2, un registre d'état de processeur 3, des compteurs d'instructions 4 et 5, un pointeur de pile 6, un diviseur de tête 7, un temporisa- teur 8, un registre d'instruction 9, un décodeur d'ins- truction 10, une unité arithmétique et logique à 8 bits 11, un accumulateur 12, des registres d'index 13 et 14, ou des éléments similaires De plus, la carte à CI comporte un circuit de détection de tension 26 qui est connecté à une borne Vcc. Le circuit de détection de tension 26 est un circuit qui détecte la tension d'alimentation qui est appliquée à la borne Vcc Le circuit 26 émet un signal de niveau haut vers le bus de données 19 lorsque la tension d'alimentation est supérieure ou égale à un niveau prédé- terminé, et il émet un signal de niveau bas vers le bus de données 19 lorsque cette tension est inférieure au niveau prédéterminé. On va maintenant décrire le fonctionnement La carte à CI est introduite dans un terminal, tel qu'une unité d'interface (non représentée), dans le but d'activer la carte à CI Lorsque la tension d'alimentation prédé- terminée est appliquée à la borne Vcc de la carte à CI, le circuit de détection de tension 26 émet le signal de niveau haut Lorsque l'unité centrale 1 reconnaît l'émis- sion du signal de niveau haut par le circuit de détection de tension 26, par l'intermédiaire du bus de données 19, elle interprète un signal d'ordre qui provient du terminal par l'intermédiaire d'une borne I/O, de façon à passer à un mode de traitement qui est demandé par le signal d'ordre A titre de moyen permettant de reconnaître cette transition, il est possible de préparer dans une zone prédéterminée de la mémoire vive 16 un indicateur de reconnaissance pour la transition, de façon que l'indica- teur puisse être instauré au moment de la transition, pour être consulté pendant que le traitement d'ordre est en cours d'exécution. Au moment o le signal d'ordre qui demande le contrôle d'un numéro d'identification personnelle est reçu à-partir du terminal, l'unité centrale 1 reconnaît que l'indicateur de transition dans la mémoire vive 16 est instauré, et elle reconnaît simultanément à nouveau l'état de la sortie du circuit de détection de tension 26. Lorsque la sortie du circuit de détection de tension 26 est à un niveau haut, l'unité centrale 1 exécute un traitement de contrôle normal Au contraire, lorsque le signal de sortie est à un niveau bas, un pseudo-traitement pour le contrôle est exécuté de façon inconditionnelle. Dans ce pseudo-traitement, la décision de contrôle peut être prise conformément à la même information que dans le traitement de contrôle normal Ensuite, le résultat de décision indiquant une "erreur d'identification" est toujours présenté, indépendamment du résultat du contrôle. Par conséquent, le pseudo-traitement est apparemment identique au traitement de contrôle normal, mais le résultat de décision est défini comme étant "erreur d'identification". Le nombre d'erreurs d'identification qui résultent du pseudo-traitement est compté chaque fois et il est enregistré dans la mémoire vive 16 L'unité centrale 1 compare le nombre d'apparitions d'erreur qui est enregistré dans la mémoire vive 16 avec le nombre prédéterminé Lorsque ce nombre dépasse le nombre prédé- terminé, l'unité centrale 1 arrête ou interdit l'exécution de tout traitement d'ordre ultérieur. Par conséquent, même lorsque la tension d'alimentation a été diminuée intentionnellement pour contrôler le numéro PIN, le numéro PIN d'origine ne peut pas être divulgué, du fait de la réponse constante indi- quant "erreur d'identification". Mode de réalisation 2 Conformément à un second mode de réalisation, un procédé de contrôle du numéro PIN, dans lequel on utilise la carte à CI classique qui est représentée sur la figure 3, peut également offrir une sécurité aussi élevée que dans le premier mode de réalisation Dans le procédé du second mode de réalisation, avant que le traitement d'ordre pour le contrôle de numéro PIN ne soit exécuté, des données fictives sont écrites dans une zone d'écriture de données fictive prédéterminée dans une mémoire EEPROM Les données fictives sont contrôlées pour déterminer la possibilité d'écriture dans la mémoire EEPROM 15. Lorsque la décision résultante indique l'impossibilité d'écriture, le pseudo-traitement pour le contrôle peut être exécuté de la même manière que dans le premier mode de réalisation. Il est préférable que les conditions du procédé d'écriture de données fictivies soient plus strictes que celles pour l'écriture de données ordinaires Dans un procédé possible, on peut diminuer, par conception, la tension de sortie du circuit de génération de tension élevée 25 dans la mémoire EEPROM 15 On peut par exemple employer un circuit de génération de tension 25 ayant deux sortes de niveaux de sortie, de façon à diminuer la tension de sortie pendant l'écriture fictive, en compa- il raison avec la tension de sortie pendant l'écriture ordinaire On peut également adopter une conception dans laquelle on peut faire varier la tension de sortie du circuit de génération de tension élevée 25 sous la com- mande de l'unité centrale 1. Il existe d'autres procédés qui consistent à rendre strictes les conditions de lecture après l'écriture fictive Un procédé consiste à diminuer le niveau de sensibilité en augmentant la charge de la cellule dans le cas d'une cellule de mémoire dans laquelle on effectue l'écriture fictive; et un autre procédé consiste à incor- porer un moyen pour appliquer une tension pour faire en sorte que les conditions de niveau de tension soient plus strictes que celles correspondant au niveau ordinaire. Il y a deux sortes de données fictives pour l'écriture, l'une consistant en données fixes et l'autre consistant en données variables dont le contenu varie chaque fois que des données sont écrites On peut écrire successivement ces deux sortes de données différentes On peut utiliser les données fixes pour reconnaître le foncr tionnement de la section de lecture en employant une configuration bit-colonne " 0 "/" 1 " formant une configura- tion en damier Lorsque la section de lecture devient anormale, les données de lecture sont fixées à " O " ou 'l", ce qui permet la détection de l'anomalie Les données f variables peuvent être établies chaque fois, de façon qué les données deviennent différentes de celles écrites précédemment Par exemple, après avoir vérifié le contenu précédent, on écrit un nombre qui est calculé en ajoutant 1 au contenu précédent L'anomalie d'écriture peut donc être détectée, du fait qu'il y a écriture de données différentes de celles écrites précédemment. La figure 2 est un organigramme qui montre le fonctionnement du second mode de réalisation. On détermine à l'étape ST 1 si un ordre de contrôle du numéro PIN est apparu ou non Si un tel ordre existe, la tension de sortie du circuit de génération de tension élevée 25 peut être réduite à l'étape ST 2. Ensuite, à l'étape ST 3, des données fictives prédétermi- nées sont écrites dans la zone prédéterminée de la mémoire EEPROM 15 A l'étape ST 4, les données fictives écrites sont lues pour vérifier si les données fictives sont écrites correctement ou non Lorsqu'on vérifie que les données fictives sont écrites correctement, à l'étape ST 5, le traitement de contrôle normal peut être exécuté à l'étape ST 6 Lorsqu'on vérifie que les données écrites sont anormales à l'étape ST 5, on considère qu'il y a une anomalie de la tension d'alimentation Par conséquent, l'information "erreur d'identification" est émise en effectuant le pseudo-traitement pour le contrôle à l'étape ST 5, de la même manière que dans le premier mode de réalisation. Dans le second mode de réalisation, on peut détecter l'anomalie de la tension d'alimentation par écriture et vérification des données fictives, même si la carte à CI ne comporte pas le circuit de détection de tension qui est inclus dans le premier mode de réalisa- tion Ensuite, on peut effectuer une opération qui consiste à répondre avec l'information "erreur d'identi- fication", lorsqu'on a obtenu le résultatde détection indiquant une anomalie Par conséquent, même lorsque la tension d'alimentation est diminuée intentionnellement pour découvrir le numéro PIN, le numéro PIN d'origine n'est pas divulgué, du fait de l'opération constante de réponse avec l'information "erreur d'identification". Il va de soi que de nombreuses modifications peuvent être apportées au dispositif et au procédé décrits et représentés, sans sortir du cadre de l'invention. REVENDICATIONS 1 Carte à circuit intégré caractérisée en ce- qu'elle comprend: des moyens de traitement de données ( 1) destinés à traiter des données; une mémoire ( 15) dans laquelle un numéro d'identification personnelle est enregistré à l'avance; une borne d'alimentation (Vcc) à laquelle une tension d'alimentation est appliquée à partir d'une unité externe; une borne d'entrée/sortie (I/O) par laquelle sont effectuées des opérations d'entrée et de sortie de données en relation avec l'unité externe; un circuit de détection de tension ( 26) qui détecte la tension d'alimentation qui est appliquée sur la borne d'alimentation (Vcc) à partir de l'unité externe; et des moyens de traitement de contrôle ( 1) qui sont destinés à exécuter une vérification d'un numéro d'identification personnelle qui est introduit à partir de l'unité externe, par comparaison avec un numéro d'identification person- nelle qui est enregistré dans la mémoire ( 15), conformé- ment à l'introduction d'un ordre de vérification du numéro d'identification, à partir de l'unité externe, par l'intermédiaire de la borne d'entrée/sortie (I/O), lorsque la tension d'alimentation qui est détectée dans le circuit de détection de tension ( 26) est supérieure ou égale à la valeur prédéterminée, tandis qu'au contraire, les moyens de traitement de contrôle ( 1) exécutent constamment une opération consistant à retourner des erreurs d'identifica- tion à l'unité externe, conformément à l'introduction d'un ordre de vérification du numéro d'identification, à partir de l'unité externe, par l'intermédiaire de la borne d'entrée/sortie (I/O), lorsque la tension d'alimentation qui est détectée dans le circuit de détection de tension ( 26) est inférieure à la valeur prédéterminée. 2 Carte à circuit intégré selon la revendica- tion 1, caractérisée en ce que la mémoire ( 15) est une mémoire morte programmable et effaçable par des moyens électriques, ou EEPROM. 3 Carte à circuit intégré selon la revendica- tion 1, caractérisée en ce que les moyens de traitement de données et les moyens de traitement de contrôle compren- nent une unité centrale ( 1). 4 Carte à circuit intégré selon la revendica- tion 3, caractérisée en ce qu'elle comprend en outre une mémoire vive ( 16) dans laquelle des données sont enregis- trées temporairement; et une mémoire morte ( 17) dans laquelle est enregistré un programme pour le fonctionne- ment de l'unité centrale ( 1). Carte à circuit intégré selon la revendica- tion 1, caractérisée en ce que les moyens de traitement de contrôle ( 1) effectuent une opération de vérification de la même manière que dans le cas o la tension d'alimenta- tion est supérieure ou égale à la valeur prédéterminée; et ils effectuent ensuite constamment une opération qui consiste à retourner des erreurs d'identification à l'unité externe, conformément à l'introduction de l'ordre pour la vérification du numéro d'identification, à partir de l'unité externe, par l'intermédiaire de la borne d'entrée/sortie (I/O), lorsque la tension d'alimentation qui est détectée dans le circuit de détection de tensioiï- ( 26) est inférieure à la valeur prédéterminée. 6 Procédé de contrôle d'un numéro d'identifi- cation personnelle par une carte à circuit intégré, j caractérisé en ce qu'il comprend les étapes suivantes: on écrit des données fictives prédéterminées dans une mémoire ( 15) lorsqu'un ordre de contrôle d'un numéro d'identifi- cation personnelle est introduit à partir d'une unité externe; on lit les données fictives dans la mémoire ( 15); on détermine si une opération d'écriture normale a été effectuée ou nonr en comparant les données fictives qui sont lues avec les données fictives écrites; on contrôle le numéro d'identification qui est introduit à partir de l'unité externe, par comparaison avec un numéro d'identi- fication personnelle qui a été enregistré à l'avance dans la mémoire ( 15), lorsqu'on a déterminé qu'une opération d'écriture normale a été effectuée; et on effectue une opération consistant à retourner constamment une erreur d'identification à l'unité externe, lorsqu'on a déterminé qu'une opération d'écriture anormale a été effectuée. 7 Procédé selon la revendication 6, caractérisé en ce que les données fictives à écrire dans la mémoire ( 15) comprennent des données fixes pour une vérification de l'opération de lecture, et des données variables pour une vérification de l'opération d'écriture.