Brevet FR2670595A1 — publié le 19920619

La présente invention se rapporte à une carte à circuit intégré et plus particulièrement, elle se rapporte à une carte à circuit intégré qui emmagasine un programme de test et un programme d'application. La figure 4 donne un schéma bloc montrant la structure d'une carte à circuit intégré conventionnelle Cette carte à circuit intégré 10 contient un bus 2 et des mémoires mortes 3 et 4 pour stocker une donnée invariante, une mémoire morte programmable effaçable électriquement 5 pour emmagasiner une donnée variable, une mémoire à accès aléatoire 6 pour emmagasiner temporairement la donnée et un circuit d'entrée/sortie 7 pour l'entrée/sortie de la donnée relativement à un appareil externe, qui sont connectés les uns aux autres par le bus 2. La mémoire morte 3 emmagasine un programme de test pour le fabricant de la carte à circuit intégré 10 afin de tester le fonctionnement du circuit interne et la mémoire morte 3 emmagasine un programme d'application pour l'utilisateur, pour qu'il puisse exécuter diverses fonctions La mémoire morte programmable effaçable électriquement 5 est pourvue d'une région 51 de mémorisation de test, emmagasinant des mots de passe qui ne sont accessibles que lorsque le programme de test est exécuté. La carte à circuit intégré 10 est pourvue d'une borne d'entrée de courant positif Pi, d'une borne de mise à la terre P 2, d'une borne P 3 de signal de remise à zéro pour recevoir un signal de remise à zéro pour initialiser une unité centrale de traitement 1, d'une borne d'horloge P 4 pour recevoir un signal d'horloge et d'une borne d'entrée/sortie P 5 pour l'entrée/sortie de la donnée. La figure 5 est un schéma d'explication montrant les processus pour débuter l'exécution des programmes d'application et de test L'unité centrale de traitement 1 ou CPU exécute le traitement 300 par un programme de test 31 et le traitement 400 par un programme d'application 41 et le traitement 300 par le programme de test 31 comprend un sous- programme du point de branchement 32 et un sous-programme de confirmation de mot de passe 33, en plus du programme de test 31. Les figures 6 A et 6 B sont des diagrammes conceptuels montrant des cartes de mémoire pendant l'exécution des programmes d'application et de test 41 et 31, respectivement La carte de mémoire montrée à la figure 6 A, qui est en exécution du programme d'application 41, est pourvue de la mémoire morte programmable effaçable électriquement 5 et du programme d'application 41 Par ailleurs, la carte montrée à la figure 6 B, qui est en exécution du programme de test 31, est pourvue de la région de mémorisation de test 51, de la mémoire morte programmable effaçable électriquement 5, du programmable d'application 41, du sous- programme du point de branchement 32, du sous-programme de confirmation du mot de passe 33 et du programme de test 31. Pendant l'exécution du programme d'application 41, il est impossible de lire/écrire la donnée par rapport à la région 51 de mémorisation de test par le programme d'application 41 car la carte de mémoire est prévue de manière que la région 51 de mémorisation de test soit cachée par le matériel. Le fonctionnement de cette carte à circuit intégré 10 sera maintenant décrit en se référant à la figure 5, qui montre les processus pour exécuter les programmes Lorsqu'un signal de remise à zéro est introduit à la borne P 3 du signal de remise à zéro, l'unité central de traitement 1 extrait une adresse de début d'exécution pour le sous- programme 32, d'une adresse prescrite de la mémoire morte 3, afin de débuter l'exécution du sous-programme du point de branchement 32 à partir de cette adresse La transition du sous-programme 32 au sous- programme 33 confirmant le mot de passe a lieu lorsqu'un ordre d'exécution du programme de test 31 est introduit à la borne 5 d'entrée/sortie, par l'appareil externe. Le sous-programme 33 de confirmation du mot de passe vérifie un mot de passe qui est fourni par l'appareil externe à la borne P 5 d'entrée/sortie par rapport à celui emmagasiné dans la région de mémorisation de test 51, afin d'exécuter le programme de test 31 lorsqu'ils correspondent, alors qu'il interrompt l'exécution du programme de test 31 lorqu'ils ne se correspondent pas. Le programme de test 31 est exécuté par la carte de mémoire montrée à la figure 6 B Quand la région 51 de mémorisation de test n'emmagasine pas de mot de passe, par conséquent, le mot de passe fourni est vérifié avec un mot de passe fictif qui est inscrit dans le programme de test. Afin de décider si, oui ou non, la région de mémorisation de test 51 emmagasine un mot de passe, la donnée, dont la discipline est différente de celle de la donnée initiale lors de la fabrication de la carte à circuit intégré 10, est emmagasinée dans la mémoire morte programmable effaçable électriquement 5 pour confirmer si oui ou non le mot de passe à vérifier correspond à la donnée emmagasinée. Le programme de test 31 est pourvu d'une fonction qui permet l'accès à une adresse prescrite pour permettre un test suffisant du produit, de manière que l'unité 1 accède à chaque adresse selon le programme de test 31 pour ainsi accomplir le test du produit. Lorsqu'aucun ordre d'exécution du programme de test 31 n'est fourni à la borne P 5 d'entrée/sortie, une adresse de début d'exécution pour le programme d'application 41, qui a été emmagasinée au préalable à une adresse prescrite de la mémoire morte 4, est lu pour débuter l'exécution du programme d'application 41 à partir de cette adresse de début d'exécution. Comme le montre la figure 6 A, il est impossible de lire/écrire la donnée par rapport à la région de mémorisation de test 51 pendant l'exécution du programme d'application 41 Ainsi, le contenu du programme de test 31 est protégé même si le programme d'application 41 disparaît. Quand la carte à circuit intégré 10 est connectée à l'appareil externe, comme décrit ci-dessus, pour être entraînée comme un système, la région de mémorisation de test 51 n'est pas accessible pendant l'exécution du programme d'application 41 Par conséquent, l'appareil externe ne peut lire la donnée de la région de mémorisation de test 51 pour identifier la carte à circuit intégré 10 qui est ainsi connectée. Ainsi, quand la carte à circuit à intégré 10 est dupliquée par décodage et exécution du programme d'application 41 pour réécrire le contenu de la mémoire , il peut être possible d'utiliser frauduleusement la carte à circuit intégré 10. En considérant le problème ci-dessus, la présente invention a pour objectif de procurer une carte à circuit intégré que l'on ne peut utiliser frauduleusement, même si elle passe dans d'autres mains. Une carte à circuit intégré selon la présente invention comprend un moyen pour produire un premier signal indiquant l'exécution d'un programme de test et un moyen pour recevoir le premier signal et un second signal pour ordonner l'écriture de la donnée dans une région prescrite d'une mémoire afin de permettre la sortie du second signal pendant l'entrée du premier signal, tout en inhibant la sortie du second signal pendant qu'il n'y a pas d'entrée du premier signal. Le premier signal est produit pendant l'exécution du programme de test Quand le second signal pour ordonner l'écriture de la donnée dans une région prescrite de la mémoire est reçu pendant la production du premier signal, l'écriture de la donnée est permise en relation avec la région prescrite de la mémoire. Par ailleurs, aucun premier signal n'est produit pendant l'exécution d'un programme d'application. Même si le second signal est fourni pendant qu'il n'y pas de production du premier signal, aucune écriture de donnée n'est permise relativement à la région prescrite de la mémoire Ainsi, même si la carte à circuit intégré selon l'invention, mémorisant un programme d'application, passe dans d'autres mains avant ou après son émission, aucune donnée ne peut être écrite dans la région prescrite de la mémoire. Ainsi, il est possible d'empêcher un usage frauduleux de la carte à circuit intégré, en la forçant à être identifiée par la donnée qui est lue de la région prescrite de la mémoire pour exécuter le programme d'application. Selon la présente invention, telle qu'on l'a décrite ci-dessus, aucune donnée ne peut être écrite dans la région prescrite de la mémoire pendant l'exécution du programme d'application, même si un tiers prend possession de la carte à circuit intégré Par conséquent, il est possible d'empêcher une exécution frauduleuse du programme d'application car la carte à circuit intégré doit être identifiée par la donnée qui est lue de la région prescrite de la mémoire Ainsi, la présente invention permet d'offrir efficacement une carte à circuit intégré qui est sûre et excellente, et qui ne pourra être utilisée frauduleusement. L'invention sera mieux comprise, et d'autres buts, caractéristiques, détails et avantages de celle-ci apparaîtront plus clairement au cours de la description explicative qui va suivre faite en référence aux dessins schématiques annexés donnés uniquement à titre d'exemple illustrant un mode de réalisation de l'invention, et dans lesquels: la figure 1 donne un schéma bloc conceptuel montrant la structure d'une carte à circuit intégré selon un mode de réalisation de la présente invention; les figures 2 A et 2 B sont des schémas conceptuels montrant des cartes de mémoire pendant l'exécution d'un programme d'application et d'un programme de test de la carte à circuit intégré selon l'invention, respectivement; la figure 3 est un schéma de circuit montrant un circuit de commutation pour commuter entre l'exécution du programme de test et celle du programme d'application; la figure 4 donne un schéma bloc montrant la structure d'une carte à circuit intégré conventionnelle la figure 5 est un schéma d'explication montrant les processus pour débuter l'exécution d'un programme d'application et d'un programme de test, respectivement; et les figures 6 A et 6 B sont des diagrammes conceptuels montrant des cartes de mémoire pendant l'exécution d'un programme d'application et d'un programme de test dans la carte à circuit intégré conventionnelle, respectivement. Un mode de réalisation de la présente invention sera maintenant décrit en se référant aux dessins La figure 1 est un schéma bloc montrant la structure d'une carte à circuit intégré 10 selon un mode de réalisation de la présente invention Cette carte à circuit intégré contient un bus 2, et des mémoires mortes ou ROM 3 et 4 pour emmagasiner une donnée invariante, une mémoire morte programmable effaçable électriquement ou EEPROM 5 pour emmagasiner une donnée variable, une mémoire à accès aléatoire ou RAM 6 pour emmagasiner temporairement la donnée et un circuit d'entrée/sortie 7 pour l'entrée/sortie de la donnée relativement à un appareil externe, qui sont connectés les uns aux autres par le bus 2. La mémoire morte ou ROM 3 mémorise un programme de test pour le fabricant de cette carte 10 afin de tester le fonctionnement du circuit interne et la mémoire morte 4 mémorise un programme d'application pour l'utilisateur afin d'exécuter diverses fonctions La mémoire morte programmable électriquement effaçable 5 est pourvue d'une région spécifique de mémorisation 52 emmagasinant un code d'identification du fabricant, qui est peut être lu et écrit pendant l'exécution du programme de test mais qui entre dans un état fixe quand le programme d'application est exécuté. La carte à circuit intégré 10 est pourvue d'une borne d'entrée Pl de courant positif, d'une borne de mise à la terre P 2, d'une borne P 3 de signal de remise à zéro pour recevoir un signal de remise à zéro pour initialiser une unité centrale de traitement ou CPU 1, d'une borne d'horloge P 4 pour recevoir un signal d'horloge, et d'une borne d'entrée/sortie ou I/O P 5 pour l'entrée/sortie de la donnée. Un circuit de commutation 20 est interposé entre la CPU 1 et le bus 2, comme on le décrira en détail ci-après Ce circuit de commutation 20 est adapté à contenir un signal de test, un signal d'écriture et un signal de commutation ou de changement d'adresse qui sortent de la CPU 1, afin d'invalider le signal d'écriture ou de fixer le signal de changement d'adresse sur la base du signal de test. Un signal de test ST qui sort de la CPU 1 entre à un niveau haut " 1 " lorsqu'un signal de remise à zéro est introduit tandis qu'il entre à un niveau bas "O" quand le programme d'application est exécuté Le processus, avant de débuter l'exécution du programme de test, est similaire à celui montré à la figure 5. Les figures 2 A et 2 B sont des schémas conceptuels montrant des cartes de mémoire pendant l'exécution d'un programme d'application 41 et d'un programme de test 31 de la carte à circuit intégré 10 selon l'invention, respectivement. Pendant l'exécution du programme d'application 41, la carte de mémoire est pourvue de la mémoire morte programmable électriquement effaçable 5, de la région de mémorisation spécifique 52 de la mémoire 5, d'ou aucune donnée ne peut être lue pendant l'exécution du programme d'application 41, et du programme d'application 41 pour l'utilisateur afin d'exécuter diverses fonctions, comme le montre la figure 2 A. Pendant l'exécution du programme de test 31, par ailleurs, la carte de mémoire est pourvue de la région de mémorisation spécifique 52 permettant la lecture/écriture de la donné pendant l'exécution du programme de test 31, de la mémoire morte programmable électriquement effaçable 5, du programme d'application 41, d'un sous-programme du point de branchement 32, d'un sous-programme de confirmation du mot de passe 33 et du programme de test 31. Les symboles OOOOH, 8000 H et FFFFH désignent des adresses et le symbole H indique des hexadécimales. La figure 3 est un schéma de circuit montrant un circuit de commutation 20 pour la commutation entre la carte de mémoire en l'exécution du programme de test 31 et celle en exécution du programme d'application 41. Comme le montre la figure 3, le signal de test ST à la sortie de l'unité 1 est fourni aux premières bornes d'entrée de circuits ET Ai et A 2. Un signal de commutation de carte AD 15, qui est un signal binaire d'adresse la plus importante pour commutation à la carte de mémoire en exécution du programme de test 31, est fourni à la seconde borne d'entrée du circuit ET Ai qui, à son tour, émet le signal reçu de commutation de carte AD 15 directement en tant que signal de commutation de carte AD 15 ' lorsqu'un signal de test ST à un niveau haut est introduit pour ordonner l'exécution du programme de test 31 Un signal d'écriture SW, pour ordonner l'écriture de la donnée dans la région de mémorisation spécifique 52, est introduit à la seconde borne d'entrée du circuit ET A 2 Quand le signal de test ST au niveau haut est introduit, le circuit ET A 2 émet le signal reçu d'écriture SW sous la forme d'un signal d'écriture SW'. Comme la carte de mémoire (figure 2 B) exécutant le programme de test 31 n'est pas pourvue d'une région de mémorisation de test 51, contrairement à celle montrée à la figure 6 B, les mots de passe devant être vérifiés dans le sous-programme de confirmation de mot de passe 33 sont dabord écrits dans le programme de test 31. Le fonctionnement de la carte à circuit intégré ayant la structure cidessus mentionnée sera maintenant décrit en se référant aux figures 1 et 5. Lorsqu'un signal de remise à zéro est reçu par la borne PT 3, l'unité 1 extrait une adresse de début d'exécution de la sous-routine du point de branchement 32, d'une adresse prescrite de la mémoire morte 3, pour débuter l'exécution de la sous-routine du point de branchement 32 d'une adresse prescrite de la mémoire morte 3, pour débuter l'exécution de la sous-routine du point de branchement 32 à partir de l'adresse de début d'exécution A ce moment, le signal de test ST qui sort de l'unité 1 passe au niveau haut. Lorsqu'un ordre d'exécution du programme de test 31 est introduit à la borne d'entrée/sortie P 5, de l'appareil externe, la transition du sous-programme du point de branchement 32 au sous-programme de confirmation de mot de passe 33 a lieu de manière que le sous-programme 33 vérifie un mot de passe qui est fourni par la borne P 5 avec le mot de passe du programme de test qui est mémorisé dans le programme de test 31 pour exécuter le programme de test 31 lorsqu'il y a correspondance Dans l'expédition de la carte à circuit intégré 10, par ailleurs, un mot de passe du programme d'application tel qu'un code du fabricant, par exemple, pour identifier la carte à circuit intégré 10 pour l'exécution du programme d'application 41 est inscrit dans la région spécifique de mémorisation 52. Une telle opération est accomplie dans la carte de mémoire lors de l'exécution du programme de test 31, comme le montre la figure 2 B Comme le signal de test ST est à un niveau haut " 1 " pendant l'exécution du programme de test 31, le signal de changement de carte AD 15 ' à la sortie de l'unité 1 est employé pour lire la donnée dans la valeur d'origine du signal de changement de carte AD 15 Le signal d'écriture SW' pour ordonner l'écriture de la donnée dans la région spécifique de mémorisation 52 est également émis comme le signal de changement de carte AD 15 '. Lorsque la transition pour l'exécution du programme d'application 41 a lieu, le signal de test entre à un niveau " O ", et ainsi le signal de changement de carte AD 15 ', qui est signal binaire d'adresse le plus important, émis du circuit Ai, est fixé à un niveau bas. Par conséquent, les contenus de la mémorisation des adresses 8000 H à FFFFH sont cachés et la carte de mémoire en exécution du programme d'application 4 entre à l'état montré à la figure 2 A Même si un signal d'écriture SW pour ordonner l'écriture de donnée dans la région de mémorisation spécifique 52 est introduit dans le circuit ET A 2, le signal d'écriture SW' est fixé à un niveau bas et, par conséquent, il est impossible d'écrire la donnée dans la région de mémorisation spécifique 52. Ainsi, la région de mémorisation spécifique 52 entre à un état fixe pendant l'exécution du programme d'application 41, donc aucune donnée ne peut être écrite dans la région 52 même si un tiers prend possession de la carte à circuit intégré 10 et tente de l'utiliser frauduleusement par décodage du programme d'application il 41 Par conséquent, il est possible d'empêcher l'exécution du programme d'application 41 pour prévenir toute utilisation frauduleuse de la carte à circuit intégré 10 car la carte 10 doit être identifiée par une donnée qui est lue de la région de mémorisation spécifique 52 pour l'exécution du programme d'application 41, pour ainsi garantir la sécurité de la carte 10. Bien que la région de mémorisation spécifique 52 soit prévue dans la mémoire 5 dans le mode de réalisation ci-dessus, elle peut également est prévue dans la mémoire à accès aléatoire 6 qui est soutenue par une batterie. Quand la région de mémorisation de test 51 décrite en se référant à la carte à circuit intégré conventionnelle est combinée à la région de mémorisation spécifique 52, il est possible de mieux protéger le programme d'application 41, ce qui empêche encore de manière plus fiable un usage frauduleux de la carte 10. Lorsque des données de programme d'étude telles que le numéro de production et le stade de production de la carte 10, etc, sont inscrites dans la région de mémorisation spécifique 52, ou aucune donnée ne peut être inscrite après, il est possible de suivre la carte à circuit intégré 10 même si les données sont rompues dans la mémoire 5 par une rupture du programme d'application 41. Bien que le signal de test ST à la sortie de l'unité 1 entre à un niveau " 1 " à l'entrée du signal de remise à zéro tandis qu'il entre à un niveau bas " O " à la transition pour l'exécution du programme d'application 41 dans le mode de réalisation ci-dessus mentionné, il peut régulièrement rester à un niveau bas pour passer à un niveau haut lorsqu'un signal reçu par la borne P 5 d'entrée/sortie, en exécution du sous-programme de confirmation du mot de passe 33, ordonne l'exécution du programme de test 31. R E V E N D I C A T I O N S 1 Carte à circuit intégré emmagasinant un programme de test et un programme d'application dans une mémoire, caractérisée en ce qu'elle comprend: un moyen ( 1) pour produire un premier signal indiquant l'exécution dudit programme de test, et un moyen ( 7) pour recevoir ledit premier signal et un second signal pour ordonner l'écriture de donnée dans une région prescrite de la mémoire afin de permettre la sortie du second signal pendant l'entrée du premier signal tout en inhibant la sortie dudit second signal pendant l'exécution du programme d'application. 2 Carte à circuit intégré caractérisée en ce qu'elle comprend: une unité centrale de traitement ( 1) pour emettre un signal de test entrant à un état actif lors de l'exécution d'un programme de test, un première partie de mémorisation, emmagasinant ledit programme de test ( 31), une seconde partie de mémorisation emmagasinant un programme d'application ( 41), une troisième partie de mémorisation pouvant être lue et écrite ( 52) pourvue d'au moins une région pour la mémorisation d'un code d'identification qui est spécifique de ladite carte, et un moyen de commutation ( 20) pour recevoir le signal de test et mettre, ladite troisième partie de mémorisation à un état ou l'écriture est impossible quand ledit signal de test est à un état inactif. 3 Carte selon la revendication 2, caractérisée en ce qu'elle comprend de plus: une borne (P 3) d'un signal de remise à zéro pour recevoir un signal de remise à zéro pour initialiser l'unité centrale de traitement, o le signal de test est émis par ladite unité centrale de traitement ( 1) et entre dans un état actif quand le signal de remise à zéro est reçu tandis qu'il entre dans un état inactif lorsque le programme d'application est exécuté. 4 Carte selon la revendication 2, caractérisée en ce qu'elle comprend de plus: une borne (P 5) d'entrée/sortie de donnée pour l'entrée/sortie de la donnée relativement à un appareil externe, afin de recevoir un signal d'ordre de test ordonnant l'exécution/non exécution du programme de test, o l'unité ( 1) porte le signal de test à un état actif uniquement quand le signal d'ordre de test ordonne l'exécution du programme de test. Carte selon la revendication 3, caractérisée en ce que les première et seconde parties de mémorisation sont des première et seconde mémoires mortes ( 3 et 4), respectivement. 6 Carte selon la revendication 3, caractérisée en ce que la troisième partie de mémorisation est une mémoire morte programmable électriquement effaçable ( 5). 7 Carte selon la revendication 3, caractérisée en ce que la troisième partie de stockage ( 5) a une fonction de soutien d'une batterie. 8 Carte selon la revendication 3, caractérisée en ce qu'elle comprend de plus: une borne (P 5) d'entrée/sortie de donnée pour l'entrée/sortie de la donnée relativement à un appareil externe, un circuit ( 7) d'entrée/sortie pour le transfert de la donnée entre lui et la borne d'entrée/sortie de donnée, un bus ( 2) connecté à l'unité centrale de traitement, aux première à troisième parties de mémorisation et au circuit d'entrée/sortie pour permettre le transfert de la donnée entre l'unité centrale de traitement, les première à troisième parties de mémorisation et le circuit d'entré/sortie 9 Carte selon la revendication 8, caractérisée en ce qu'elle comprend de plus une troisième partie de mémorisation ( 6) connectée au bus pour préserver temporairement la donnée. Carte selon la revendication 9, caractérisée en ce que la quatrième partie de mémorisation ( 6) est une mémoire à accès aléatoire. 11 Carte selon la revendication 3, caractérisée en ce qu'elle comprend de plus: une borne d'entrée de courant positif (Pi), une borne de mise à la terre (P 2) pour l'entrée d'un potentiel de la terre, et une borne d'horloge (P 4) pour introduction d'un signal d'horloge. 12 Carte selon la revendication 11, caractérisée en ce que le programme d'application ( 41) peut être exécuté uniquement quand le code d'identification qui est mémorisé dans la troisième partie de mémorisation est à une valeur prescrite.