Brevet FR2788353A1 — publié le 20000713

MICROPROCESSEUR AVEC CIRCUITS DE PROTECTION POUR SECURISER L'ACCES A SES REGISTRES La présente invention concerne un microprocesseur muni de circuits de protection destinés à sécuriser l'accès aux registres dudit microprocesseur. La sélection d'un registre dans un microprocesseur se déroule généralement de la manière suivante: l'unité de commande du microprocesseur génère l'adresse du registre à sélectionner et l'applique sur le bus d'adresses du microprocesseur; cette adresse est transmise à un décodeur d'adresses qui sélectionne alors le registre se rapportant à ladite adresse en activant l'entrée de sélection de ce registre; le registre peut ensuite être lu ou son contenu modifié. Ce registre est par exemple un registre d'adresses ou un registre d'instructions. Il arrive parfois que le contenu des registres du microprocesseur soit modifié accidentellement lors d'une erreur ou d'une défaillance du système dans le microprocesseur, notamment lors de l'initialisation du microprocesseur. Un but de l'invention est donc de proposer un microprocesseur garantissant un accès sécurisé à ses registres. Selon l'invention, on prévoit d'empêcher après chaque initialisation du microprocesseur tout accès aux registres de celui-ci et de n'autoriser l'accès à un registre que si un mot de passe propre à ce registre a été présenté sur le bus de données du microprocesseur lors de la première opération de sélection de ce registre. Aussi, l'invention a pour objet un microprocesseur comportant un bus d'adresses, un bus de données, une pluralité de registres accessibles en lecture et en écriture, et un décodeur d'adresses pour sélectionner lesdits registres en fonction de l'adresse présente sur ledit bus d'adresses, caractérisé en ce qu'il comporte en outre une pluralité de circuits de protection associés chacun à un registre du microprocesseur pour sécuriser l'accès audit registre, lesdits circuits de protection bloquant automatiquement la sélection desdits registres après chaque initialisation du microprocesseur, et en ce que le déblocage d'un circuit de protection associé à un registre du microprocesseur est réalisé par l'envoi successif sur le bus de données de N mots de passe propres audit registre lors de N premières opérations de sélection dudit registre, avec Nil, la sélection dudit registre n'étant effective que pour les opérations ultérieures de sélection dudit registre jusqu'à l'initialisation suivante du microprocesseur. Suivant les besoins, le circuit de protection peut bloquer la sélection du registre associé lors des accès en lecture et en écriture à ce registre, ou uniquement lors des accès en écriture. Chaque circuit de protection compare, lors des N premières opérations de sélection du registre associé, les N données présentes sur le bus de données avec les N mots de passe propres audit registre associé et se débloque pour les opérations ultérieures de sélection dudit registre jusqu'à l'initialisation suivante du microprocesseur si les N données correspondent aux N mots de passe. Dans la forme de réalisation la plus simple, on ne prévoit qu'un mot de passe (N=l) par registre. Le circuit de protection comporte alors: - un circuit comparateur pour comparer lors de la première opération de sélection du registre associé la donnée présente sur le bus de données au mot de passe propre audit registre, et délivrer un signal de sortie représentatif du résultat de la comparaison, - des premiers moyens pour maintenir dans le circuit de protection ledit signal de sortie jusqu'à l'initialisation suivante du microprocesseur, - des seconds moyens pour autoriser la sélection du registre pour les opérations ultérieures de sélection dudit registre si ledit signal de sortie indique que la donnée présente sur le bus de données du microprocesseur lors de la première opération de sélection du registre correspond au mot de passe associé audit registre. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés, parmi lesquels: - la figure 1 représente une première forme de réalisation d'un circuit de protection selon l'invention pour sécuriser l'accès en lecture et en écriture à un registre; - la figure 2 représente une seconde forme de réalisation d'un circuit de protection selon l'invention pour sécuriser l'accès en écriture à un registre; et - la figure 3 représente une forme de réalisation particulière regroupant deux circuits de protection sécurisant conjointement l'accès à deux registres; et - la figure 4 représente une troisième forme de réalisation d'un circuit de protection selon l'invention pour sécuriser l'accès en lecture et en écriture à un registre. Les registres dont il est question dans la suite de la description comporte une entrée de sélection, une entrée de lecture/écriture sur laquelle est appliqué un signal de lecture/écriture R/W-, et une entrée/sortie de données connectée au bus de données du microprocesseur. Pour mettre en oeuvre l'invention, un microprocesseur dont une partie est représentée à la figure 1, est muni d'un circuit de protection 1 pour sécuriser l'accès à un registre 3. Ce circuit de protection est intercalé entre la sortie d'un décodeur d'adresses 2 chargée de sélectionner le registre 3 et l'entrée de sélection du registre 3. Ladite sortie du décodeur délivre un signal de sélection CS. On prévoit selon l'invention un circuit de protection par registre. Selon l'invention, le circuit de protection 1 est prévu pour bloquer automatiquement la transmission du signal de sélection CS après chaque initialisation (RESET dans la littérature anglo-saxonne) du microprocesseur. Le déblocage du circuit de protection 1 est ensuite réalisé par l'envoi d'un mot de passe propre au registre 3 sur le bus de données du microprocesseur lors de la première opération de sélection du registre 3. L'envoi d'un mot de passe sur le bus de données et l'opération de sélection du registre 3 sont par exemple mis en oeuvre lors d'un cycle d'écriture du mot de passe dans le registre 3. La première opération de sélection sert uniquement à débloquer le circuit de protection 1, la sélection du registre 3 n'étant effective que pour les opérations ultérieures de sélection du registre 3, et ce jusqu'à l'initialisation suivante du microprocesseur. Dans la forme de réalisation présentée à la figure 1, le circuit de protection 1 bloque la sélection du registre 3 lors des accès en lecture et en écriture au registre 3 après chaque initialisation. Selon une variante illustrée à la figure 2, le circuit de protection bloque la sélection du registre 3 uniquement lors des accès en écriture au registre 3. En référence à la figure 1, le circuit de protection comporte essentiellement un circuit comparateur CP1 pour comparer lors de la première opération de sélection du registre 3 la donnée présente sur le bus de données du microprocesseur au mot de passe propre au registre 3, et délivrer un signal de sortie représentatif du résultat de la comparaison, des moyens pour maintenir dans le circuit de protection ledit signal de sortie jusqu'à l'initialisation suivante du microprocesseur, et des moyens pour autoriser la sélection du registre pour les opérations ultérieures de sélection dudit registre si ledit signal de sortie indique que la donnée présente sur le bus de données du microprocesseur lors de la première opération de sélection du registre correspond au mot de passe associé au registre 3. Le circuit comparateur CP1 comporte une entrée de sélection E1 connectée à la sortie du décodeur d'adresses chargée de sélectionner le registre 3, une entrée de données E2 pour recevoir la donnée présente sur le bus de données, et une sortie S délivrant une valeur représentative du résultat de la comparaison entre la donnée sur le bus de données et le mot de passe associé au registre 3. Il délivre sur sa sortie S un "1" logique si les deux données sont égales et un "0" logique sinon. La structure d'un tel circuit est bien connue de l'homme du métier. A noter que le mot de passe associé au registre 3 peut être soit mémorisé de façon permanente dans le circuit comparateur CP1, soit fourni par un périphérique extérieur (non montré). Le résultat, "1" ou "0", de cette comparaison est maintenu dans le circuit de protection 1 jusqu'à l'initialisation suivante du microprocesseur par deux bascules de type D, B1 et B2, ayant chacune une entrée d'horloge CK, une entrée de signal D, une entrée d'initialisation RST et une sortie de signal Q. L'entrée d'horloge CK et l'entrée de signal D de la bascule B1 reçoivent respectivement le signal de sélection CS et un "1" logique. L'entrée de signal D est par exemple connectée à une source d'alimentation du microprocesseur. La sortie de signal Q de cette même bascule est connectée à l'entrée d'horloge CK de la bascule B2. L'entrée de signal D de la bascule B2 est connectée à la sortie S du circuit comparateur CP1. Un signal d'initialisation RESET est appliqué sur les entrées RST des bascules B1 et B2 à chaque initialisation du microprocesseur. Pendant la première opération de sélection du registre 3, la sélection du registre 3 n'est pas effective pour éviter que le mot de passe présent sur le bus de données pendant cette opération ne soit écrit dans le registre 3. Aussi, pour que la sélection du registre 3 ne soit autorisée qu'à partir de la deuxième opération de sélection du registre 3, la sortie Q de la bascule B2 est connectée via un circuit de retard RT1 à une première entrée d'une porte logique Pi de type ET à deux entrées. La seconde entrée de la porte P1 est reliée à la sortie du décodeur d'adresses 2 chargée de sélectionner le registre 3 et la sortie de la porte P1 est connectée à l'entrée de sélection du registre 3. Le circuit de retard RT1 est de préférence un registre à décalage synchronisé sur le signal de sélection CS. Le circuit de protection fonctionne de la manière suivante: à chaque initialisation (RESET) du microprocesseur, les bascules B1 et B2 sont remises à zéro. Lors de la première opération de sélection du registre 3, le circuit de protection 1 compare la donnée présente sur le bus de données du microprocesseur avec le mot de passe associé au registre 3. Lors de cette opération, la sortie Q de la bascule B1 passe à "1" et sur le front montant résultant du signal issu de cette sortie, la sortie Q de la bascule B2 délivre le résultat de la comparaison. Ce résultat est ensuite appliqué sur la première entrée de la porte P1 avec un retard pour éviter que la donnée présente sur le bus de données ne soit écrite dans le registre 3 pendant cette première opération. Si le circuit de retard RT1 est un registre à décalage synchronisé sur le signal CS, le résultat de la comparaison n'est appliqué sur la première entrée de la porte P1 qu'à partir de la deuxième opération de sélection du registre 3. Il est à noter par ailleurs que le mot de passe associé au registre 3 est de préférence une donnée non prévue habituellement dans le programme du microprocesseur pour éviter que le circuit de protection ne se débloque par hasard. Dans la variante de réalisation présentée à la figure 2, le circuit de protection est destiné à sécuriser uniquement l'accès en écriture du registre 3. L'accès en lecture du registre 3 n'est jamais bloqué. Le déblocage du circuit de protection doit toutefois être effectué lors de la première opération de sélection du registre comme pour le circuit de protection de la figure 1. En référence à la figure 2, le circuit de protection 1 est complété par une deuxième porte logique P2 de type ET à deux entrées et une porte logique OR de type OU à deux entrées. La porte P2 a une première entrée connectée à la sortie du décodeur 2 chargée de sélectionner le registre 3 et une deuxième entrée sur laquelle est appliqué le signal de lecture/écriture R/W-. Les sorties des portes P1 et P2 sont connectées chacune à une entrée de la porte OR et la sortie de la porte OR est reliée à l'entrée de sélection du registre 3. Ainsi, le registre 3 peut être lu à tout moment même si le circuit de protection 1 est bloqué. Dans le cas d'un microprocesseur 8 bits, la probabilité que la donnée présente sur le bus de données lors d'une première opération de sélection du registre 3 causée par une défaillance du système soit le mot de passe associé au registre 3, est de 1/256 (256=28). Pour diminuer cette probabilité, on propose en variante de combiner les circuits de protection de plusieurs registres entre eux. Cette forme de réalisation est illustrée à la figure 3. Dans l'exemple de la figure 3, les circuits de protection de deux registres sont combinés pour sécuriser leur accès. Dans cet exemple, le décodeur d'adresses est chargé de sélectionner des registres du microprocesseur, en particulier deux registres, 3 et 4. Les éléments B1, B2, CP1 et RT1 du circuit de protection 1 de la figure 1 sont regroupés dans un bloc 5. Une porte logique P3 de type ET à deux entrées est intercalée entre la sortie du bloc 5 (correspondant à la sortie du circuit de retard RT1) et la première entrée de la porte Pi. La sortie du décodeur 2 chargée de sélectionner le registre 3 est connectée à l'entrée du bloc 5 et à la deuxième entrée de la porte P1. Un bloc 6 identique au bloc 5 et une porte logique P4 de type ET constituent le circuit de protection du registre 4 tel que décrit à la figure 1. Bien entendu, le circuit comparateur du bloc 6 est chargé de comparer la donnée présente sur le bus de données avec un mot de passe associé au registre 4, distinct de celui associé au registre 3. La sortie du bloc 6 est connectée à une deuxième entrée de la porte P3. La sortie du décodeur 2 chargée de sélectionner le registre 4 est connectée à l'entrée du bloc 6 et à la deuxième entrée de la porte P4. Pour avoir accès aux registres 3 et 4, l'opération de déblocage du circuit de protection de la figure 3 consiste à effectuer un accès en écriture sur chaque registre en appliquant le mot de passe correspondant sur le bus de données. Ces deux accès en écriture sont à effectuer lors de la première sélection du registre 3 et lors de la première sélection du registre 4, la sélection du registre 3 pouvant se faire avant ou après celle du registre 4. Pour diminuer encore cette probabilité, une autre forme de réalisation du circuit de protection 1 est proposée à la figure 4. Pour ce faire, on prévoit de sécuriser l'accès au registre 3 par deux mots de passe, ces deux mots de passe devant être placés sur le bus de données dans un ordre donné. Pour la mise en oeuvre de ce circuit de protection, le circuit de protection de la figure 1 est complété par deux bascules de type D supplémentaires, B3 et B4, montées en cascade, un second circuit comparateur CP2 et un second circuit de retard RT2. L'entrée d'horloge CK de la bascule B3 est connectée à la sortie Q de la bascule B2 au moyen du second circuit de retard RT2. Un "1" logique est appliqué sur l'entrée D de la bascule B2 et sa sortie Q est connectée à l'entrée d'horloge CK de la bascule B4. L'entrée de données E2 du circuit comparateur CP2 est connectée au bus de données et son entrée de sélection El est connectée à la sortie du décodeur d'adresses chargée de sélectionner le registre 3. La sortie S du comparateur CP2 est connectée à l'entrée D de la bascule B4 et la sortie Q de la bascule B4 est connectée au circuit de retard RT1. Les deux circuits de retard sont synchronisés sur le signal de sélection CS. Les comparateurs CP1 et CP2 sont chargés de comparer, respectivement lors des première et seconde opérations de sélection du registre 3, la donnée présente sur le bus de données avec le premier et le second mot de passe du registre 3. Pour débloquer ce circuit de protection, il faut non seulement fournir sur le bus de données les deux mots de passe associés au registre 3 mais les fournir dans l'ordre. La sécurité des accès aux registres du microprocesseur s'en trouve par conséquent améliorée. Bien entendu, on peut augmenter encore la sécurité du système en augmentant le nombre de mots de passe associés à un même registre. REVENDICATIONS 1) Microprocesseur comportant un bus d'adresses, un bus de données, une pluralité de registres (3) accessibles en lecture et en écriture, et un décodeur d'adresses (2) pour sélectionner lesdits registres en fonction de l'adresse présente sur ledit bus d'adresses, caractérisé en ce qu'il comporte en outre une pluralité de circuits de protection (1) associés chacun à un registre (3) du microprocesseur pour sécuriser l'accès audit registre, lesdits circuits de protection bloquant automatiquement la sélection desdits registres après chaque initialisation (RESET) du microprocesseur, et en ce que le déblocage d'un circuit de protection (1) associé à un registre du microprocesseur est réalisé par l'envoi successif sur le bus de données de N mots de passe propres audit registre lors de N premières opérations de sélection dudit registre, avec NÄl, la sélection dudit registre n'étant effective que pour les opérations ultérieures de sélection dudit registre jusqu'à l'initialisation suivante du microprocesseur. 2) Microprocesseur selon la revendication 1, caractérisé en ce que ledit circuit de protection (1) est agencé pour bloquer, après chaque initialisation (RESET) du microprocesseur, la sélection d'un registre (4) lors des accès en lecture et en écriture audit registre. 3) Microprocesseur selon la revendication 1, caractérisé en ce que ledit circuit de protection (1) est agencé pour bloquer, après chaque initialisation (RESET) du microprocesseur, la sélection d'un registre uniquement lors des accès en écriture audit registre. 4) Microprocesseur selon l'une des revendications 1 à 3, caractérisé en ce que chaque circuit de protection (1) est connecté entre une sortie du décodeur d'adresses (2) chargée de sélectionner le registre (3) associé audit circuit de protection et une entrée de sélection dudit registre (3) associé. ) Microprocesseur selon l'une des revendications 1 à 4, caractérisé en ce que chaque circuit de protection (1) est agencé pour comparer, lors des N premières opérations de sélection du registre associé, les N données présentes sur le bus de données avec les N mots de passe propres audit registre et se débloque pour les opérations ultérieures de sélection dudit registre jusqu'à l'initialisation suivante du microprocesseur si les N données correspondent aux N mots de passe. 6) Microprocesseur selon la revendication 4, caractérisé en ce que, pour chaque registre, il est prévu un mot de passe (N=1), et chaque circuit de protection (1) comporte: - un circuit comparateur (CP1) pour comparer lors de la première opération de sélection du registre (3) associé la donnée présente sur le bus de données au mot de passe propre audit registre, et délivrer un signal de sortie représentatif du résultat de la comparaison, - des premiers moyens (B1,B2) pour maintenir dans le circuit de protection ledit signal de sortie jusqu'à l'initialisation suivante du microprocesseur, - des seconds moyens (RT1, P1) pour autoriser la sélection du registre pour les opérations ultérieures de sélection dudit registre si ledit signal de sortie indique que la donnée présente sur le bus de données du microprocesseur lors de la première opération de sélection du registre correspond au mot de passe associé audit registre. 7) Microprocesseur selon la revendication 6, caractérisé en ce que les premiers moyens comportent des première et seconde bascules (B1,B2) de type D ayant chacune une entrée d'horloge (CK), une entrée de signal (D), une entrée d'initialisation (RST) sur laquelle est appliqué un signal d'initialisation du microprocesseur, et une sortie de signal (Q), la première bascule (B1) ayant son entrée d'horloge (CK) connectée à la sortie du décodeur d'adresses chargée de sélectionner le registre (3) associé audit circuit de protection (1), et son entrée de signal (D) qui reçoit un signal qui correspond à un "1" logique, et la seconde bascule (B2) ayant son entrée d'horloge (CK) connectée à la sortie de signal (Q) de la première bascule (B1), son entrée de signal (D) qui reçoit le signal de sortie du circuit comparateur (CP1), et sa sortie de signal (Q) qui délivre ainsi le signal de sortie du circuit comparateur jusqu'à l'initialisation suivante du microprocesseur. 8) Microprocesseur selon la revendication 7, caractérisé en ce que les seconds moyens comportent une porte logique (Pl) de type ET à deux entrées dont la première entrée est connectée à la sortie du décodeur d'adresses chargée de sélectionner le registre (3) associé audit circuit de protection (1), la seconde entrée est connectée via un circuit de retard (RT1) à la sortie de signal (Q) de la deuxième bascule (B2) des premiers moyens, et la sortie est connectée à l'entrée de sélection du registre associé (3). 9) Microprocesseur selon la revendication 8, caractérisé en ce que ledit circuit de retard (RT1) est un registre à décalage synchronisé sur les opérations de sélection dudit registre (3).