Brevet FR2746199A1 — publié le 19970919

ARCHITECTURE DE SECURITE A DOUBLE FONCTION AVEC SYSTEME D'EXPLOITATION INTERNE PROTEGE Arrière-plan de l'invention La présente invention concerne une architecture de circuit intégré et particulièrement une architecture de sécurité de circuit intégré à double fonction avec un système d'exploitation interne protég6. Pour certaines applications de traitement, il est primordial de fonctionner dans un environnement sur, de sorte que les opérations ne puissent pas être examinées ou altérées. Dans la technique antérieure, différents procédés ont été utilisés pour procurer un environnement de sécurité de traitement. Par exemple, un châssis mécanique peut être utilisé pour loger l'équipement de traitement. Ce châssis mécanique peut comprendre des commutateurs de modification et d'autres éléments pour détecter et se prémunir contre des altérations et des modifications. Malheureusement, un châssis mécanique de ce type peut augmenter, de manière significative, le coût du produit. En variante, afin de limiter l'accès à des circuits intégrés particuliers, les circuits intégrés peuvent être recouverts d'époxy ou d'autres matières chimiques pour empêcher l'accès. Malheureusement, souvent ces protections peuvent être retirées facilement et n'apportent donc qu'une protection limitée. Un autre procédé pour réaliser un environnement de sécurité de traitement est d'implanter le système sur un seul circuit intégré. Cependant, si un système d'exploitation de sécurité n'est pas implanté, ces systèmes peuvent également, d'une manière générale, être contournés. Cependant, l'implantation d'un système d'exploitation complètement sûr pour toutes les fonctions limite, de manière significative, ILa fonctionnalit:é dcu système ltfEnde_V.ILuLlltiQf Selon le mode de ré-alisation préfr-ié. de la pré.sente invention, un mode de s6écurité est implanté à l'intérieur d"un processeur à dcouble mode. Dans le amode gqénéral/externe, le processeur à double mode exé:cute. des instructions procurées par une source externe.]es.b instructions sont délivrées au processeur par l'intermédiaire de dispositifs d'entrée/sortie..]Aors le1 ]la réception cd' une interruption matérielle ou logicielle spéciale, le processeur à doub. Le mode entre dans un mode de sécuritté'./interne. L' interruption spécifie une fonction de sécurité stockée dans une mémoire à lecture seule à l'inté:rieur du p:roce;sseur à double mode. Lors de la réception d'une interruption de ce t'ype, les entrées/sorties du processeur ë double mode sont désactivées. Un pointeur interne identi:Efi. par 1' interruption est utilisé pour identifier J'emplacement de la fonction de sécurité stock.e dans la mémoire à lecture seule à 1' inté-rieur du processeur. La fonction de sécurité identifiée est exécutée par le processeur. Pendant l' exécutionr de la fonction de sécurité, toute tentative d'insérer des instructions n'ayant pas pour origine la mé-moire à lecture seule, est ignorée. Cependant, le] processeur est autorisé à accéder aux don:nées identifiées, de manière spécifique, par la fonction cde sécurité en train d'être exécutée. Lors de l'achèvement de l'exécution de la fonction de sécurité, un sous-programme de sortie est exécuté pour valider les entrées/sorties du processeur iet pou:r reprendre l: exécution des instructions apporté:es par les dispositifs d'entrée/sortie cà partir de la source externe au prc)cesseur. Les instructions pour le sous- programme de sortie sont égalenent stockées & l'intérieur de la mémoire c lecture seule. Dans le mode de réalisation préféré, le sous- programme de sortie utilise un circuit de commande matériel spécial pour valider les entrées/sorties dui processeur. Egalement dans le mode de réalisation préféré, lors de la remise a l'état initial, le processeur effectue un autotest en mode de sécurité, les entrées/sorties étant désactivées. LDrs de l'achèvement avec succès de l'exécution de la fonction d'autotest, le sous-programme de sortie est exécuté pour valider les entres/sEcrties du processeur et pour commencer l'exécution des instructions apportées par l'intermédiaire des dispositifs d'entrée/sortie en provenance de la source externe au processeur. Du matériel de protection est utilisé pour procurer une protection contre les altérations physiques et électriques. Le système de traitement à double mode est utilisé, par exemple, pour effectuer des fonctions de chiffrage telles que le cryptage ou la substitution à clé publique. Par exemple, dans une application particulière de ce type, ces patdlets ou blocs de données sont interceptés et sont envoyés au processeur a double mode. Les primitives qui chiffrent/déchiffrent les données sont stockées dans la mémcire à lecture seule A l'intérieur du processeur. Ces primitives sont exécutées lorsque le processeur à double mode est en mode de sécurité. O'autres fonctions de système sont exécutées en mode général. La présente invention propose des moyens efficaces et peu coûteux pour réaliser un traitement à double mode. Lors du fonctionnement en mode général, toutes les instructions externes peuvent être exécutées sans aucune servitude associée à un système d'exploitation de sécurité. Pendant le fonctionnement en mode de sécurité, les fonctions de sécurité sont exécutées en étant protégées contre toute altération ou examen. Brève description des dessins D'autres caractéristiques et avantages de l'invention ressortiront plus clairement à la lecture de la description ci-après, faite en référence aux dessins annexés, dans lesquels: La figure 1 représente un schéma fonctionnel d'un système dans lequel un processeur à double mode est utilisé en mode de sécurité pour le cryptage et le déchiffrage selon un mode de réalisation préféré de la présente invention. La figure 2 représente un schéma fonctionnel simplifié du processeur à double mode représenté à la figure 1 selon un mode de réalisation préféré de la présente invention. La figure 3 représente un organigramme qui représente l'initialisation du processeur à double mode représenté à la figure 2 selon un mode de réalisation préféré de la présente invention. La figure 4 représente un organigramme qui représente le fonctionnement du processeur à double mode dans le mode de fonctionnement de sécurité selon le mode de réalisation préféré de la présente invention. La figure 5 est un schéma fonctionnel qui indique le contenu d'une ROM (mémoire à lecture seule) à l'intérieur du processeur à double mode représenté à la figure 2 selon le mode de réalisation préféré de la présente invention. Description détaillée du mode de réalisation préféré La figure 1 représente un schéma fonctionnel d'un système dans lequel un processeur à double mode 12 est utilisé dans un mode (interne) de sécurité pour le cryptage et le déchiffrage selon un mode de réalisation préféré de la présente invention. Le processeur à double mode 12 communique avec un processeur à canal de commande 11 par l'intermédiaire d'un canal de données 18 et d'un canal de données 19. Les canaux de données 18 et 19, par exemple, sont réalisés en tant que bus d'entrée/sortie (E/S) qui fonctionne selon un standard de bus d'entrée/sortie, tel que, par exemple, le standard Industry Standard Architecture (ISA). Le processeur à canal de commande 11 procure des données au processeur à double mode 12. De plus, lorsque le processeur à double mode 12 est dans le mode (externe) général, le processeur à canal de commande donne des instructions à exécuter par le processeur à double mode 12. Le processeur à double mode 12 est utilisé pour effectuer une fonction de chiffrage telle que le cryptage ou la substitution à clé publique. Par exemple, la figure 1 représente un démultiplexeur 13 qui reçoit un flot de données chiffrées 14 et qui produit un flot de données déchiffrées démultiplexées 15. Le flot de données chiffrées 14 et les flots de données déchiffrées 15 sont, par exemple, constitués par des blocs de données ou des paquets de données en train d'être transférés vers et depuis le démultiplexeur 13. Le démultiplexeur 13 envoie les données chiffrées au processeur à double mode 12 par l'intermédiaire d'un chemin de données 16. Le processeur à double mode 12 déchiffre les données et renvoie les données déchiffrées au démultiplexeur 13 par l'intermédiaire d'un chemin de données 17. Afin de protéger l'intégrité du schéma de chiffrage particulier utilisé, il est nécessaire de protéger les fonctions de chiffrage à l'intérieur du processeur & double mode 12 contre un accès ou une altération. Dans ce but, le processeur à double mode 12 comporte deux modes de fonctionnement. Dans un mode général, le processeur à double mode 12 exécute des instructions reçues depuis le processeur à canal de commande 11. Dans un mode de sécurité, le processeur à double mode exécute les fonctions de chiffrage dans un environnement de sécurité, comme plus complètement examiné dans la suite du document. La figure 2 représente un schéma fonctionnel simplifié du processeur à double mode 12 selon un mode de réalisation préféré de la présente invention. Les fonctions de traitement sont exécutées par des circuits de fonctions de traitement 21. Par exemple, les circuits de fonctions de traitement 21 sont un processeur à calculateur à jeu d'instructions réduit (RISC). Les circuits de fonctions de traitement 21 s'interfacent avec les canaux de données 18 et 19 par l'intermédiaire de circuits d'interface d'entrée/sortie (E/S) de bus 23. Les circuits de fonctions de traitement 21 s'interfacent avec les chemins de données 16 et 17 par l'intermédiaire de circuits d'interface d'entrée/sortie (E/S) de chiffrage 25. Une mémoire à accès direct (RAM) 22 est utilisée par les circuits de fonctions de traitement 21, par exemple, pour le stockage de données et pour l'exécution à haute vitesse de petits blocs de code. Une mémoire à lecture seule (ROM) 24 est utilisée pour contenir les primitives de sécurité qui sont exécutées par les circuits de fonctions de traitement 21 quand le processeur à double mode 12 est dans le mode de sécurité. Un circuit de commande de matériel d'E/S 26 est adressé par un sous-programme de sortie de mode de sécurité afin de libérer des commandes d'E/S quand le processeur à double mode 12 passe du mode de sécurité au mode général. Le circuit de commande de matériel 26 contient une logique de sortie qui assure que le processeur à double mode 12 va exécuter une séquence fixée de commandes qui ne pourraient pas, par ailleurs, s'exécuter si le processeur à double mode 12 a perdu sa progression. L'utilisation du circuit de commande de matériel 26 pour effectuer la transition entre le mode de sécurité et le mode général assure que si le processeur à double mode 12 perd sa progression, par exemple à cause d'une pointe ou d'une altération du courant, le processeur à double mode 12 ne va pas, de façon prématurée ou de façon incomplète, sortir du mode de sécurité. Quand une altération ou une pointe de courant affecte le fonctionnement du processeur & double mode 12 pendant le mode de sécurité, le circuit de commande de matériel 26 va verrouiller le processeur à double mode 12 et va exiger une remise à l'état initial avant que le fonctionnement du processeur à double mode 12 ne reprenne. Lors de l'entrée dans le mode de sécurité, le circuit de commande de matériel 26 désactive les dispositifs d'entrée/sortie du processeur à double mode 12. Lors de la sortie du mode de sécurité, le circuit de commande de matériel 26 valide les dispositifs d'entrée/sortie du processeur à double mode 12. Dans le mode de sécurité, tout accès externe aux circuits de fonctions de traitement 21 est désactivé. En étant dans le mode de sécurité les circuits de fonctions de traitement 21 exécutent seulement les primitives de sécurité dans la ROM 24. Dans le mode de sécurité, les circuits de fonctions de traitement 21 ont encore la capacité d'accéder à une mémoire externe pour les données, mais seulement lorsque les primitives de sécurité, à l'intérieur de la ROM 24, l'autorisent. De plus, dans le mode de sécurité, le processeur & double mode 12 ignore toutes les tentatives d'insertion d'une instruction parasite. La logique de protection 27 apporte une protection contre les altérations physiques et électriques. La logique de protection est activée lors de l'entrée en mode de sécurité. La figure 3 représente un organigramme qui représente l'initialisation du processeur à double mode 12. A l'étape 31, le système est remis à l'état initial. Lors de la remise à l'état initial, tous les chemins d'entrée/sortie du processeur à double mode 12 sont désactivés. A l'étape 32, le processeur à double mode 12 effectue une fonction d'autotest pour assurer un fonctionnement correct. Le sous- programme d'autotest exécuté est stocké dans la ROM 24 en tant que sous- programme de sécurité. Pendant l'exécution du sous- programme d'autotest, la logique de protection 27 est activée pour empêcher toute altération physique et électrique du processeur à double mode 12. Si le processeur à double mode 12 réussit la fonction d'autotest, à l'étape 33, le sous-programme de sortie de mode de sécurité est exécuté. Le sous-programme de sortie de mode de sécurité nettoie ou efface tous les registres. Le sous-programme de sortie de mode de sécurité adresse ensuite le circuit de commande de matériel 26 afin de libérer les commandes d'E/S. A l'étape 34, le sous-programme de sortie est terminé et le gestionnaire de programmes est appelé. A l'étape 35, le gestionnaire de programmes gère l'exécution d'un code de programmation externe exécuté par le processeur à double mode 12 lorsque le processeur à double mode 12 est dans le mode général. La figure 4 représente un organigramme qui représente le fonctionnement du processeur & double mode dans le mode de fonctionnement de sécurité selon le mode de réalisation préféré de la présente invention. Avant l'étape 41, le processeur & double mode est dans le mode général et le gestionnaire de programmes gère l'exécution d'un code de programmation externe exécuté par le processeur à double mode 12. A l'étape 41, une interruption matérielle ou logicielle spéciale (SWI) est affirmée. L'interruption logicielle/matérielle spéciale dirige le processeur à double mode 12 afin d'obliger le processeur à double mode 12 à entrer dans le système d'exploitation de sécurité interne. L'interruption logicielle/matérielle spéciale comporte une adresse qui indique une fonction à exécuter, stockée à l'intérieur de la ROM 24. A l'étape 42, on pénètre dans le système d'exploitation de sécurité. Tous les dispositifs d'entrée/sortie sont désactivés par le circuit de commande de matériel d'E/S 26. La logique de protection 27 est activée pour protéger le processeur à double mode 12 de toute altération physique ou électrique. A l'étape 43, la fonction d'adresse à l'intérieur de la ROM 24 spécifiée par l'adresse à l'intérieur de l'interruption logicielle/matérielle spéciale est localisée par un pointeur interne. A l'étape 44, la fonction adressée est exécutée. A l'étape 45, le sous- programme de sortie de mode de sécurité est exécuté. Le sous-programme de sortie de mode de sécurité nettoie ou efface tous les registres. Le sous-programme de sortie de mode de sécurité ordonne ensuite au circuit de commande de matériel 26 de libérer les commandes d'E/S. A l'étape 46, le sous-programme de sortie est terminé et le gestionnaire de programmes est appelé. A l'étape 47, le gestionnaire de programmes gère l'exécution d'un code de programmation externe exécuté par le processeur à double mode 12 lorsque le processeur à double mode 12 est dans le mode général. La figure 5 représente un exemple du contenu de la ROM 24. La ROM 24 contient un sous-programme d'entrée en mode de sécurité 51. Le sousprogramme d'entrée en mode de sécurité 51 est le premier sous-programme exécuté quand on entre dans le mode de sécurité ou quand le processeur à double mode 12 est remis à l'état initial. Le sous-programme d'entrée en mode de sécurité 51 désactive tous les dispositifs d'E/S du processeur à double mode 12 et utilise des pointeurs internes 52 pour aller vers des fonctions de sécurité 53. Chaque fonction de sécurité des fonctions de sécurité 53 est faite à partir d'une ou plusieurs primitives. Les fonctions de sécurité particulières stockées à l'intérieur de la ROM 24 varient avec l'application particulière à réaliser. Par exemple, dans le mode de réalisation préféré, les fonctions de sécurité 53 comprennent les primitives utilisées pour les opérations de chiffrage. Après qu'une fonction de sécurité a été exécutée, on sort du mode de sécurité en utilisant le sous-programme de sortie de mode de sécurité 54. L'examen précédent dévoile et décrit simplement des exemples de procédés et de modes de réalisation de la présente invention. Comme le comprendront les hommes de l'art, l'invention peut être réalisée sous d'autres formes spécifiques sans s'écarter de l'esprit ni des caractéristiques primordiales de cette dernière. Par conséquent, la description de la présente invention est destinée à être représentative, mais non limitative, de l'étendue de l'invention, qui est fixée dans les revendications annexées. il REVENDICATIONS 1. Procédé réalisé par ordinateur pour procurer un mode de sécurité à l'intérieur d'un processeur, le procédé étant caractérisé en ce qu'il comprend les étapes suivantes: (a) l'exécution d'instructions données par une source externe au processeur, les instructions étant délivrées au processeur par l'intermédiaire de dispositifs d'entrée/sortie du processeur; et (b) lors de la réception d'une interruption spécifiant une fonction de sécurité, l'exécution des étapes secondaires suivantes: (b.1) la désactivation des dispositifs d'entrée/sortie du processeur, (b.2) l'exécution de la fonction de sécurité spécifiée par l'interruption, les instructions pour la fonction de sécurité étant stockées dans une mémoire à lecture seule (24) à l'intérieur du processeur, et (b.3) lors de l'achèvement de l'exécution de la fonction de sécurité, l'exécution d'un sous- programme de sortie qui valide les dispositifs d'entrée/sortie du processeur et autorise la reprise de l'exécution des instructions données par la source externe au processeur, les instructions pour le sous- programme de sortie étant stockées à l'intérieur de la mémoire à lecture seule (24). 2. Procédé réalisé par ordinateur selon la revendication 1, caractérisé en ce que, à l'étape secondaire (b.3), la validation des dispositifs d'entrée/sortie du processeur est effectuée par un circuit de commande de matériel (26). 3. Procédé réalisé par ordinateur selon la revendication 1, caractérisé en ce qu'il comprend, de plus, les étapes suivantes: (c) lorsque le processeur reçoit un ordre de remise à l'état initial, l'exécution des étapes suivantes: (c.1) la désactivation des dispositifs d'entrée/sortie du processeur, (c.2) l'exécution d'un programme d'autotest du processeur, les instructions pour le programme d'autotest étant stockées à l'intérieur de la mémoire & lecture seule (24) a l'intérieur du processeur, et (c.3) lors de l'achèvement réussi de l'exécution du programme d'autotest, l'exécution du sous-programme de sortie. 4. Procédé réalisé par ordinateur selon la revendication 1, caractérisé en ce que l'étape secondaire (b.2) comprend l'utilisation d'un pointeur interne identifié par l'interruption, le pointeur interne pointant sur la fonction de sécurité. 5. Procédé réalisé par ordinateur selon la revendication 1, caractérisé en ce que l'étape secondaire (b.2) comprend l'exécution de primitives qui cryptent/déchiffrent un flot de données. 6. Processeur à double mode, caractérisé en ce qu'il comprend: des moyens d'exécution d'instructions pour exécuter des instructions; des moyens d'entrée/sortie pour donner des instructions externes par une source externe au processeur à double mode (12); et une mémoire à lecture seule (24) stockant des primitives pour un système d'exploitation de sécurité, les primitives incluant des instructions qui, quand elles sont exécutées par les moyens d'exécution d'instructions, effectuent les fonctions suivantes: la désactivation des dispositifs d'entrée/sortie du processeur à double mode (12), l'exécution des fonctions de sécurité spécifiées par les interruptions au processeur & double mode (12), et lors de l'achèvement de l'exécution de l'une quelconque des fonctions de sécurité, l'exécution d'un sous-programme de sortie qui valide les dispositifs d'entrée/sortie du processeur à double mode (12) et qui permet la reprise de l'exécution des instructions données par la source externe au processeur à double mode (12). 7. Processeur à double mode selon la revendication 6, caractérisé en ce qu'il comprend de plus des circuits spéciaux qui, quand ils sont appelés par le sous-programme de sortie, valident les dispositifs d'entrée/sortie du processeur à double mode (12) et qui sont utilisés lors de l'entrée dans un mode de sécurité pour désactiver les dispositifs d'entrée/sortie du processeur à double mode (12). 8. Processeur à double mode selon la revendication 7, caractérisé en ce qu'il comprend de plus un matériel de protection qui procure une sécurité physique et une sécurité électrique au processeur à double mode (12) lorsque le processeur à double mode (12) est dans le mode de sécurité. 9. Processeur à double mode selon la revendication 6, caractérisé en ce que la mémoire à lecture seule (24) stocke, de façon supplémentaire, des primitives qui, quand elles sont exécutées par les moyens d'exécution d'instructions, effectuent les fonctions suivantes en réponse au processeur à double mode (12) recevant un ordre de remise à l'état initial: la désactivation des dispositifs d'entrée/sortie du processeur à double mode (12), l'exécution d'un programme d'autotest du processeur à double mode (12), et lors de l'achèvement réussi de l'exécution du programme d'autotest, l'exécution du sous-programme de sortie. 10. Processeur à double mode selon la revendication 6, caractérisé en ce que la mémoire à lecture seule (24) comprend des pointeurs internes qui pointent sur des fonctions de sécurité, les pointeurs internes étant indiqués par des interruptions au processeur à double mode (12). 11. Processeur à double mode selon la revendication 6, caractérisé en ce que les fonctions de sécurité comprennent des primitives qui cryptent/déchiffrent un flot de données. 12. Système pour effectuer une fonction de chiffrage sur des données dans un flot de données, caractérisé en ce que le système comprend: des moyens d'interception pour intercepter le flot de données; et un processeur à double mode (12) comprenant: des moyens d'exécution d'instructions pour exécuter des instructions; des moyens d'entrée/sortie pour donner des instructions externes par une source externe au processeur à double mode (12); une mémoire a lecture seule (24) stockant des primitives pour un système d'exploitation de sécurité, les primitives incluant des instructions qui, quand elles sont exécutées par les moyens d'exécution d'instructions, effectuent les fonctions suivantes: la désactivation des dispositifs d'entrée/sortie du processeur à double mode (12), l'exécution des fonctions de sécurité spécifiées par des interruptions au processeur à double mode (12), les fonctions spéciales incluant des primitives qui cryptent/déchiffrent les données dans le flot de données, et lors de l'achèvement de l'exécution de l'une quelconque des fonctions de sécurité, l'exécution d'un sous-programme de sortie qui valide les dispositifs d'entrée/sortie du processeur à double mode (12) et qui permet la reprise de l'exécution des instructions procurées par la source externe au processeur à double mode (12). 13. Système selon la revendication 12, caractérisé en ce que le processeur à double mode (12) comprend de plus des circuits spéciaux qui, quand ils sont appelés par le sous-programme de sortie, valident les dispositifs d'entrée/sortie du processeur à double mode (12). 14. Système selon la revendication 12, caractérisé en ce que la mémoire à lecture seule (24) stocke, de façon supplémentaire, des primitives qui, quand elles sont exécutées par les moyens d'exécution d'instructions, effectuent les fonctions suivantes en réponse au processeur à double mode (12) recevant un ordre de remise à l'état initial: la désactivation des dispositifs d'entrée/sortie du processeur à double mode (12), l'exécution d'un programme d'autotest du processeur à double mode (12), et lors de l'achèvement réussi de l'exécution du programme d'autotest, l'exécution du sous-programme de sortie. 15. Système selon la revendication 12, caractérisé en ce que la mémoire à lecture seule (24) comprend des pointeurs internes qui pointent sur des fonctions de sécurité, les pointeurs internes étant indiqués par des interruptions au processeur à double mode (12).