FR 2621409 A1 19890407 FR 8713936 A 19871002 DISPOSITIF DE PROTECTION DES ZONES MEMOIRE D'UN SYSTEME ELEETRONIDUE A MICROPROCESSEUR La presente invention a pour objet un dispositif de protection des zones memoire d'un système électronique a microprocesseur. Elle concerne d'une maniere générale le domaine des ordinateurs, et plus particuliérement le domaine des cartes a mémoire dont l'organe de mémorisation, inséré dans une carte, comporte un circuit ' intégré électronique géré par un microprocesseur. Le dispositif de l'invention pourrait en outre autre utilisé dans le domaine de la protection des logiciels ou, par une programmation astucieuse, il peut facilement empêcher la duplication ou l'édition de programmes qu'on tient â garder secrets.Il peut aussi avoir pour but d'éviter les conséquences Fâcheuses de certaines fausses manoeuvres. Dans les systèmes électroniques a microprocesseurs, notamment dans les applications de type monétique des cartes a mémoire, il est nécéssaire de réserver les conditions d'accès â certaines zones mémoire du systeme. En particulier on cherche a empêcher toute tentative de fraude par la lecture de zones théoriquement interdites dans ces cartes. Il s'agit par exemple des zones contenant le code secret d'utilisation de la carte. Par contre les mémoires des cartes a mémoire comportent d'autres zones, en particulier celles qui représentent un solde, dont la signification des informations enregistrées doit pouvoir être modifiée. On est alors confronte a une situation dans laquelle des zones mémoire différentes doivent pouvoir ou non être lues.Par ailleurs, dans des zones d'un autre type de la mémoire, des instructions a exécuter par le microprocesseur peuvent être également stockées. Dans ces zones d'un autre type on rencontre la même dualité, certaines instructions peuvent être laissées a la disposition de l'utilisateur, l'usage d'autres instructions doit lui être par contre interdit. Dans une situation plus complexe, et plus réaliste, certaines instructions sont en elles-mêmes banales, mais ne deviennent critiques pour la confidentialité du système que si elles sont appliquées a certains types de données. Par exemple, une instruction d'édition ne présente aucun caractère dangereux si , avec certaines précautions, elle est appliquée a l'édition du solde d'un compte. Par contre, elle devient beaucoup plus critique si elle est appliquée a l'édition du code secret de transaction avec la carte a mémoire en question. On connaît des solutions de l'état de la technique ou l'empêchement d'exécution de ces actions interdites est obtenu par des instructions supplémentaires que l'on peut introduire dans le système.En définitive un tel système fonctionne avec un logiciel dont certaines instructions sont destinées a empêcher l'exécution des actions interdites. Cependant, autant il a été possible d'introduire ces instructions, autant il peut être possible, avec un logiciel supplémentaire, de neutraliser ces instructions d'interdiction. De plus ces instructions d'interdiction compliquent le système et peuvent ralentir l'exécution des instructions autorisées. L'invention a pour objet de remédier a ces inconvénients et de proposer un dispositif simple, qui n'emprunte pas au logiciel, mais plumet au matérel, et dont l'adjonction dans les systèmes ne constitue aucune complication de l'utilisation de ce système, ni non plus de ralentissement de sa vitesse de travail. Le principe de l'invention réside dans la construction d'une matrice de décision qui reçoit par exemple, en temps réel, les instructions a exécuter et les données sur lesquelles doivent s'exécuter ces instructions. La matrice de décision élabore un signal de validation du Fonctionnement du système lorsque l'application des instructions aux données en question peut être autorisée. D'une maniére préférée, plutôt que de prendre en compte les instructions et les données elles-mêmes, la matrice de décision est susceptible de travailler sur les adresses des instructions et des données concernées. Ceci présente l'avantage, lorsque des codes secrets sont produits ultérieurement a la fabrication du circuit intégré, que la matrice de décision peut rester inchangée sous réserve que ces codes secrets soient rangés a une adresse déterminés a l'avance, mais quel que soit leur contenu. Dans ces conditions la matrice de décision peut être fabriquée en même temps que le circuit intégré. Ceci a deux avantages : premiérement il n'est pas nécéssaire de programmer ultérieurement cette matrice. Deuxiémement, ayant été déFinie des le début de la fabrication elle peut bénéficier de toutes les protections technologiques que l'on est en mesure d'accorder aux autres parties du circuit. L'invention a en conséquence pour objet un dispositif de protection de zones mémoires d'un système électronique a microprocesseur, les zones mémoire étant partagées entre des zones d'un premier type et des zones d'un deuxième type, caractérisé en ce qu il comporte - un circuit de décision recevant des signaux d'adresse relatifs a des informations stockées dans des zones du premier et du deuxième type, - et un circuit pour valider le Fonctionnement du système en fonction d'un signal délivré par le circuit de décision en réponse aux signaux d'adresse qu'il reçoit. L'invention sera mieux comprise a la lecture de la description qui suit et a l'examen des Figures qui l'accompagnent. Celles-ci ne sont données qu'a titre indicatif et nullement limitatif de l'invention. Les figures montrent - Figure 1 . un système électronique a microprocesseur a protéger - Figures 2a a 2d : des diagrammes temporels de signaux logiques utiles a faire fonctionner le dispositif de protection de l'invention - Figure 3 : une représentation schématique d'un dispositif de protection conforme a l'invention. La figure 1 représente un système électronique é microprocesseur 1 muni d'une mémoire 2 possédant des zones mémoire d'un premier type 1T, 1T' et des zones mémoire d'un deuxième type 2T, 2T'... Ces zones mémoire peuvent appartenir a une seule mémoire, ou des mémoires différentes. Elles peuvent aussi appartenir a. des mémoires de technologies différentes, par exemple des mémoires de type statique, des mémoires de type dynamique, ou des mémoires non volatiles (EPROX ou EEPROM). Elles peuvent aussi être des mémoires de Fonctionnalités différentes, par exemple a accès aléatoire ou bien des mémoires mortes.En pratique les zones d'un premier type peuvent être des zones ou sont rangées des instructions, et les zones d'un deuxième type peuvent être des zones ou sont rangées des données. D'une maniere plus générale les zones d'un premier ou d'un deuxième type peuvent même être des zones ou sont en fait rangées des adresses d'instructions ou de données. Le microprocesseur du système 1 fonctionne de la manière suivante . pendant un cycle 3 d'une séquence d'exécution d'instructions le microprocesseur prélève une instruction dans une zone d'un premier type il ou 1T'. Pendant le cycle s suivant, il prélève dans les zones de données 2T ou 21' les données sur lesquelles l'instruction préalablement extraite doit être appliquée. Eventuellement la succession ces cycle pourrait être inversée sans qu'il en résulte une modification profonde de l'invention.Dans un exemple préféré de réalisation, les transports des informations entre la mémoire et le microprocesseur sont faits par un bus unique dont l'affectation a la lecture des zones des différents types de la mémoire est imposée par un signal LI de lecture d'instructions . Un signal PHI constitue l'horloge du système il synchronise les différentes opérations. Le fonctionnement typique d'un# tel microprocesseur est le suivant (figures 2a â 2d) : pendant le premier cycle 3 une adresse ÀDI d'une instruction décodée par le décodeur de la mémoire est appliquée a la mémoire. A une date 5 dans le cycle 3, le contenu de cette instruction est envoyé au microprocesseur. Cet envoi est validé par l'ordre LI de lecture d'instructions, Pendant le cycle s suivant, une adresse de données ADD est appliquée a la mémoire, et les données contenues a cette adresse sont transférées au microprocesseur a une date 6 pour un état inverse du signal LI. Sur la figure 3 on a représenté un dispositif conforme a l'invention. Un circuit de décision 7 reçoit, lui aussi par l'intermédiaire d'un décodeur 10, les signaux d'adresses relatifs aux informations stockées dans les zones mémoire. Pour les adresses d'un premier type de zone dans la mémoire, celles des instructions, il reçoit les signaux Il 11 Il reçoit également les signaux d'adresse relatifs aux informations stockées dans les zones mémoire de deuxième type, celles des données : les signaux D1 è D#. Le dispositif de l'invention comporte un circuit B pour valider le fonctionnement du système en fonction d'un signal délivré par le circuit de décision 7 en réponse aux signaux d'adresse que celui-ci a reçus. D'une manière préférée, comme on l'a vu précédemment, l'accès aux informations stockées é des adresses de différents types de zone est commandé par des signaux d'orientation. Ici le signal d'orientation qui a été décrit est le signal de lecture d'instructions LI. Dans l'invention on utilise alors de préférence un registre-tampon 9 pour recevoir, en fonction de l'état du signal d'orientation, des signaux d'adresse relatifs aux informations stockées dans les zones du premier type, dans les zones d'instruction. Pendant le cycle 3, le registre tampon reçoit des signaux d'adresse Il a I. Il les garde jusqu'à ce qu'il reçoive un ordre de remise a zéro.L'existence de ce registre-tampon permet de n'utiliser qu'un seul décodeur 10 pour décoder toutes les adresses des informations a extraire a des périodes différentes pendant la séquence : pendant le cycle 3 ou le cycle #. Lorsque le cycle 5 s'exécute, le registre 9 délivre en sortie les signaux d'adresse I1 a IS tandis que le décodeur 10 fournit des signaux d'adresse D1 a D. Au temps de cycle suivant, qui peut être équivalent a un cycle de l'horloge intrinsèque du microprocesseur, le circuit de validation B peut délivrer un signal d'erreur ERR avant la fin de l'exécution par le microprocesseur de l'instruction qu'on lui a donnée a exécuter. Dans un exemple simple de réalisation on considérera que la mémoire est répartie en quatre zones : des zones 1T, 1T', 2T et 2T'. On peut alors utiliser pour des adresses codées sur un certain nombre de bits, par exemple sur seize bits, les deux bits de poids fort A1 et A15 pour déterminer a quelles zones de la mémoire on a affaire. Par exemple, pour le couple A15- valant 0-0 on peut avoir affaire a la zone 1T, pour 0-1 â la zone 1T', pour 1-O a la zone 2T, et pour 1 -1 a la zone 21'.Le décodeur 10 qui reçoit les signaux d'adresse peut transformer ces bits d'adresse, selon la zone concernée, en des signaux Z1, Z2, 23 et Z. Selon le cycle pendant lequel ces signaux sont élaborés on peut admettre qu'ils représentent les signaux d'adresse il a IS des instructions ou les signaux d'adresse D1 a D4 des données, Le décodeur 10 est de type classique : il comporte notamment pour chaque entrée des bits d'adresse pris en compte, un inverseur 11 ou 12, et un jeu de quatre portes ET 13 à 16 pour produire les signaux Z1 à Z4 â partir du couple des bits d'adresse A14-A15.Le registre-tampon 9 comporte quatre bascules B1 B4 recevant respectivement les signaux Z1 a Z4 d'une part, et un signal de blocage et de remise a zéro d'autre part. Les signaux de blocage et de remise â zéro sont délivrés par un circuit 17 dit d'introduction. Le circuit 17 permet l'introduction dans le circuit 7, pendant le déroulement du cycle 4, des signaux d'adresse Il a I4 qui ont été appliqués pendant le cycle 3 sur les bascules B1 a B4 du registre-tampon 9. Les sorties des bascules B1 a B4 sont reliées a quatre connexions respectivement 33 a 36. Dans une première variante le fonctionnement de ce circuit est le suivant : les adresses A14-A15 sont décodées et produisent les signaux z1 à Z4. A chaque cycle un seul de ces signaux z1 à Z4 est a un niveau un, les trois autres sont à zéro. Par exemple si l'adresse décodée correspond è la zone 1T alors Z1 sera a un. Pendant le cycle les signaux de données D1 a D# sont transmis au circuit de décision 7 par un circuit d'adaptation le. Le circuit d'adaptation 18 est présenté ici a titre indicatif. Il pourrait avoir une toute autre allure, ou bien même être absent dans une autre réalisation du dispositif de l'invention. Dans l'exemple, le circuit de validation 8 comporte une résistance 19 reliée a l'alimentation générale du système électronique a microprocesseur d'une part, et au circuit d'adaptation 18 d'autre part. Cette résistance peut être réalisée dans des technologies diverses elle peut être une résistance difFusée, être une résistance en polysilicium ou encore un transistor monté en résistance a la limite de la conduction.À l'endroit ou la résistance 19 est reliée au circuit 18, un inverseur 20 prélève une tension disponible et délivre en sortie le signal de validation ERR recherché. Le circuit d'adaptation 18 comporte un jeu de quatre transistors 21 relies d'une part en commun a la résistance 19 et d'autre part, par quatre connexions 29 a 32, a chacune des entrées d'adresse- du circuit de décision 7.Les transistors 21 a 24 reçoivent respectivement sur leur grille de commande les signaux Z1 a 2 décodés par le décodeur 10. Un Jeu de quatre portes ET 25 a 28 permet de transmettre ces adresses au clrcult de décision 7 lor-squ 'uR signal PHI de sychronisation de la lecture de données l'autorise. Dans un exemple le circuit de décision comporte, a l'intersection des connexions 29 a 32 et 33 a 38, des transistors Tl a T16 connectés de la maniere suivante. Les drains de ces transistors sont connectés aux connexions respectivement 29 a 32, les grilles de ces transistors sont connectées aux connexions 33 a 36. A certaines intersections, les transistors n'ont pas été réalisés : ils apparaissent entre parenthèses sur la figure 3 il s'agit par exemple des transistors T1, TE, T7, T11, T15 et T16. Le fonctionnement du dispositif de l'invention est le suivant. Lorsque PHI vaut zéro, les transistors 21 a 25 sont bloqués, aucun courant ne passe dans la résistance 19, la sortie ERR vaut un. Durant le premier cycle 3 lorsque le signal de lecture d'instructions LI et le signal d'horloge PHI valent un tous les deux, les bascules B1 a BQ sont ouvertes. Un des signaux Z1 à Z4 traverse ces bascules et se positionne a un en un signal I1 à I4 selon la zone de la mémoire, au décodage de laquelle il a correspondu. Ceci correspond a la zone d'instruction qui doit être exécutée.Lorsque le signal PHI revient â zéro, les bascules se bloquent et Il a IS gardent leur valeur jusqu'à un prochain cycle ou LI et PHI valent a nouveau un. Pendant le deuxième cycle #, lorsque PHI redevient égal a. un, avec LI a zéro, les signaux d'adressa Z1 a Z sont transformés en signaux d'adresse correspondants D1 a D. En fait un seul de ces signaux Z1 a Z4 vaut un, de sorte qu'un seul des transistors 21 a 2 devient conducteur. Supposons par exemple que le transistor 23 devienne conducteur parce que le signal Z3 valait un la donnée a prélever se situait dans la zone mémoire 2T. Si la zone 1T avait été décodée comme zone d'origine de l'instruction pendant le cycle 3, le transistor T3 deviendrait conducteur pendant le cycle e et du courant électrique passerait au travers de la résistance 19,. du transistor 23 et du transistor T3. Dans ces conditions la tension a l'entrée de l'inverseur 20 chuterait et le signal ERR monterait a un, indiquant une erreur.Cette erreur peut être exploitée pour interdire le fonctionnement du système. Par contre si la zone 1T' avait été décodée comme zone d'origine de l'instruction pendant le cycle 3 précèdent, l'absence du transistor T n'aurait pas permis le passage de ce courant a travers la résistance 19 le signal ERR serait resté a zéro, le Fonctionnement du système aurait été autorisé. En définitive les transistors T1 a T16 indiquent par leur présence ou leur absence une interdiction d'un accés a une zone concernée de la mémoire en combinaison avec un accès a une autre zone concernée de la mémoire.La classification en zones de premier type et en zones de deuxième type de la mémoire est donc essentiellement liée a la nature d'instructions , de données , ou même d'adresse que ces zones sont susceptibles de contenir. Elles peuvent bien entendu se situer géographiquement è des endroits mêlés dans la mémoire. Le codage est réalisé dans l'exemple décrit par la présence physique d'un transistor. La réalisation du circuit 7 de décision peut donc être obtenue par masquage : au moment de la fabrication du circuit intégré ,on utilise un jeu de masques tel qu'a l'endroit de ce circuit les transistors nécéssaires soient mis en place. Pour certaines applications néanmoins ces transistors peuvent être remplaces par des cellules mémoire de type EPROM ou EEPROM qui ont le mérite d'être programmables et non volatiles. Le circuit de décision 7 est ainsi une mémoire morte programmée. Cette disposition peut être ~necessaire lorsque les circuits intégrés fabriques doivent pouvoir être préalablement vérifiés et/ou programmés. Il peut alors s'avérer nécéssaire d'avoir, pour l'opération de vérification et pour des programmations exécutées par le Fabricant, d'accéder a des zones mémoire qui ultérieurement seront interdites. Dans ce cas on peut décider de réaliser des transistors programmables a tous les points d'intersection de la matrice de décision. Les transistors programmables sont par exemple des transistors a grille flottante intermédiaire de type EPRON ou EEPRON, ou bien des cellules de mémoire a accès aléatoire chargées a l'initialisation du système. Lorsque les opérations préliminaires ont été effectuées sur le circuit, on peut en dernier ressort programmer le circuit de décision dont l'effet peut être d'interdire d'une manière irrévocable l'exécution de certaines instructions, y compris la programmation ultérieure de certaines zones particulières de la mémoire et surtout y compris sa propre programmation.. Ce dispositif décrit simplement peut bien entendu être étendu un nombre de zones plus élevé dont les tailles seraient égales ou non. On a vu qu'on pouvait avec le signal LI interdire l'exécution de certaines instructions qui nécéssitent de lire le contenu des mémoirîs On a vu qu'on pouvait aussi désirer interdire l'écriture de certaines zones mémoire. Ceci peut être obtenu en utilisant un signal SU correspondant selon son niveau a l'écriture ou a la lecture des zones mémoire. On peut par exemple introduire ce signal SU en commun avec le signal d'horloge PHI dans une porte ET 37 pour valider selon les cas la transmission des informations d'adresse au circuit de décision en permettant ainsi d'obtenir un circuit de décision différent selon que l'instruction lit ou écrit une donnée. REUENDICATIONS 1 - dispositif de protection des zones mémoire C1T, 2T) d'un système (1, 23 électronique a microprocesseur, les zones mémoire étant partagées entre des zones d'un premier type C1T) et des zones d'un deuxième type C2T) , caractérisé en ce qu'il comporte - un circuit C73 de décision recevant des signaux d'adresse relatifs è des informations stockées dans les zones du premier CI1 - I#) et du deuxième CD1 - D) type, - un circuit (B) pour valider le Fonctionnement du système en fonction d'un signal délivré par le circuit de décision en réponse aux signaux d'adresse qu'il reçoit. 2 - Dispositif selon la revendication 1 caractérisé en ce qu'il comporte - des moyens Cfigure 2) pour que l'accès a des informations stockées a des adresses dans ces différents types de zone soit commandé par des signaux d'orientation CLIP, - un registre-tampon C93 pour recevoir en fonction du signal d'orientation des signaux d'adresse relatifs a des informations stockées dans les zones du premier type, - et un circuit C17) pour introduire, dans le circuit de décision, et par l'intermédiaire du registre-tampon, les signaux d'adresse relatifs aux informations stockées dans les zones du premier type. 3 - Dispositif selon l'une quelconque des revendications 1 ou 2 caractérisé en ce que les zones du premier type correspondent a des zones DU sont stockées des instructions, les zones du deuxième type correspondent a des zones ou sont stockées des données, ou vice versa. - - Dispositif selon l'une quelconque des revendications 1 a 3 carRcterise en ce qu'il comporte des moyens pour programmer CT1 - T 16) le circuit de décision. 5 - Dispositif selon la revendication Li caractérisé en ce qu'il comporte des moyens pour programmer (EPROM, EEPROM) le circuit de décision après des opérations de vérification et/ou de programmation du système. 6 - Dispositif selon la revendication 5 caractérisé en ce qu'il comporte des moyens C7) pour interdire la programmation du circuit de décision après que ce circuit ait été programme. 7 - Dispositif selon l'une quelconque des revendications 1 a E caractérisé en ce qu'il comporte des moyens CSU, 37) pour empêcher l'exécution d'instructions de lecture ou d'ecriture.