Brevet FR2853098A1 — publié le 20041001

i Circuit pourvu d'un accès externe sécurisé La présente invention concerne un circuit pourvu d'un accès externe sécurisé. Le domaine de l'invention est celui des circuits intégrés programmables, 5 notamment celui des circuits utilisés pour réaliser des transactions confidentielles. Un tel circuit intègre un microprocesseur et, souvent, une mémoire cache, un contrôleur de mémoire cache et / ou une unité de gestion mémoire. Il intègre de plus généralement une mémoire non volatile, une ou plusieurs 10 mémoires de travail telles que mémoire à accès aléatoire (" RAM " pour le terme anglais " Random Access Memory ") ou mémoire à lecture seule (" ROM " pour le terme anglais " Read Only Memory "). Il intègre encore, la plupart du temps, d'autres périphériques propres aux applications qu'il est chargé de mettre en oeuvre. D'autre part, ce circuit comporte une interface de communication prévue pour un accès externe. Autrement dit, cette interface permet au microprocesseur d'échanger des données avec un quelconque composant localisé en dehors du circuit. L'invention trouve une application particulièrement avantageuse lorsque 20 ce composant est une mémoire. En effet, il est courant d'adjoindre une mémoire externe au circuit intégré de sorte que les utilisateurs de ce circuit puissent disposer d'un espace mémoire supplémentaire. Naturellement, le contenu de la mémoire externe est accessible par le microprocesseur, mais il est aussi accessible par n'importe quel autre 2 5 équipement. Ainsi, il est aisé d'aller lire et même modifier des données enregistrées dans cette mémoire. Or il est parfois impératif que ce contenu ne puisse faire l'objet d'une intervention extérieure au circuit. C'est le cas notamment lorsque la mémoire externe comporte des informations sécuritaires tel qu'un code d'accès confidentiel ou une vérification de signature numérique. 3 0 Il est d'ailleurs prévu, lors du chargement d'un programme dans la mémoire externe, que le circuit intégré qui reçoit ce programme de l'extérieur vérifie son authenticité (l'identité de l'émetteur) et son intégrité (l'absence de modification par un tiers) avant de l'enregistrer dans la mémoire. Cette vérification est classiquement réalisée au moyen d'un protocole de signature 35 électronique. Il est pratiquement impossible d'appliquer ce protocole à chaque fois que la mémoire externe est lue par le circuit intégré car il s'agit là d'une opération qui nécessite une grosse puissance de calcul et qui est par conséquent très lente. La présente invention a ainsi pour objet de renforcer la protection de cette mémoire externe contre les accès indésirables. Selon l'invention un circuit comprend un microprocesseur et un ensemble de périphériques comportant au moins une interface de communication prévue pour un accès externe, ces périphériques hormis l'interface de communication étant reliés au microprocesseur par un bus d'interconnexion; de plus, le circuit 10 comprend un module de sécurisation relié d'une part au bus d'interconnexion et d'autre part à l'interface de communication par l'intermédiaire d'une liaison dédiée. Suivant un mode de réalisation privilégié du circuit, l'interface de communication est adaptée à une mémoire externe. Avantageusement, le module de sécurisation comporte des moyens de cryptage CR. De préférence, ces moyens de cryptage font appel à une clé privée. Il est souhaitable que la longueur de la clé de cryptage soit supérieure à la longueur standard des données que traite le microprocesseur, si bien que 2 0 celui-ci comprend des moyens pour décomposer les mots cryptés en données de longueur standard. Si le circuit comporte de plus une mémoire cache associé à un contrôleur, le module de sécurisation est prévu pour exploiter les accès consécutifs de ce contrôleur afin de décomposer les mots cryptés en données de 25 longueur standard. Il est préférable que la clé de cryptage soit stockée dans un registre programmable une seule fois, ce registre pouvant figurer dans une mémoire non volatile. La présente invention apparaîtra maintenant avec plus de détails dans le 30 cadre de la description qui suit d'un exemple de réalisation donné à titre illustratif en se référant à la figure annexée qui représente un schéma d'un circuit intégré selon l'invention. En référence à la figure, un circuit intégré IC comporte un microprocesseur MIC éventuellement associé à une mémoire cache et/ou à un 35 contrôleur de mémoire (non représentés). Il comporte aussi une interface de communication UMI et, généralement, d'autres périphériques PER tels qu'une mémoire non volatile de type flash, une mémoire de travail à accès aléatoire etc. Selon l'invention, le circuit comporte de plus un module de sécurisation CR. Un bus système BUS interconnecte tous les éléments du circuit hormis 5 l'interface de communication UMI, et une liaison dédiée DL relie cette interface UMI au module de sécurisation CR. En dehors du circuit figure un composant MEM qui peut communiquer avec l'interface de communication UMI et l'invention propose donc de protéger les données qui transitent par cette interface au moyen du module de 10 sécurisation CR. Dans le cas présent, ce composant est une mémoire externe MEM et l'interface de communication est de préférence une interface mémoire universelle UMI. Le module de sécurisation CR peut mettre en oeuvre différentes 15 techniques pour coder ou modifier les données qu'il reçoit du microprocesseur MIC par le bus système BUS avant de transmettre les données ainsi codées à l'interface de communication UMI, de sorte que celles-ci n'apparaissent pas en clair dans la mémoire externe MEM. Bien sûr, ce module peut procéder au codage inverse lorsqu'il lit des données dans cette mémoire externe MEM afin de 2 0 les restituer au microprocesseur MIC telles que celui-ci les lui a fournies. Une solution avantageuse consiste à recourir à des moyens de cryptage qui sont mis en oeuvre de préférence par le module de sécurisation CR. Ainsi, les données sont cryptées avant d'être enregistrées dans la mémoire externe MEM et elles sont décryptées lorsqu'elles y sont lues avant 25 d'être transmises sur le bus système BUS. Il convient donc de chiffrer les données a la volée avant de les stocker dans la mémoire externe MEM. Le microprocesseur MIC sait traiter des données de 8, 16 ou 32 bits. Couramment, l'accès à des données externes se fait avec des mots d'une 30 longueur standard de 8, 16 ou 32 bits. Sécuriser de telles données imposerait un cryptage sur 8, 16 ou 32 bits respectivement. Il s'agirait là d'un cryptage très vulnérable, pratiquement inefficace, si l'on emploie des algorithmes connus. Il est donc souhaitable de choisir un algorithme travaillant sur des données de 64 bits, voire même 128 bits dès lors que cela s'avère nécessaire. 35 La sélection d'un algorithme standard permet d'éviter des contraintes supplémentaires, tout en assurant un niveau de sécurité maximal. On préférera un algorithme a clé privée car il nécessite des temps de calcul beaucoup plus courts qu'un algorithme à clé publique. A titre d'exemple, on retiendra les algorithmes suivants: - AES (abréviation de l'expression anglaise " Advanced Encryption Standard "), travaillant sur des mots de 128 bits et offrant, à l'heure actuelle, une sécurité maximale, - DES (abréviation de l'expression anglaise " Data Encryption Standard "), travaillant sur des mots de 64 bits, connu pour son universalité dans les systèmes les moins exigeants en matière 10 de sécurité, - 3DES (abréviation de l'expression anglaise " Triple Data Encryption Standard "), ou - XDES (abréviation de l'expression anglaise " Extended Data Encryption Standard "), ces deux derniers algorithmes étant 15 réputés pour des systèmes plus exigeant en terme de sécurité tout en assurant de hauts débits de chiffrement à faible coût. Naturellement, le module de sécurisation CR permet de crypter des données plus longues que la longueur standard. Ce module est prévu pour traiter des données de 64 ou 128 bits enregistrées en huit ou seize mots de 8 bits, 20 quatre ou huit mots de 16 bits, ou bien deux ou quatre mots de 32 bits respectivement dans la mémoire externe MEM, si bien qu'un accès à une de ces données est divisé en plusieurs accès de 8, 16 ou 32 bits respectivement. A cet effet, le module de sécurisation CR peut exploiter les accès groupés ou accès consécutifs du contrôle de la mémoire cache du 25 microprocesseur. Cette mémoire cache contient une copie partielle de la mémoire externe MEM qui est mise à jour en fonction de la partie du programme que le microprocesseur MIC exécute. La mémoire cache étant très rapide et très proche du microprocesseur MIC, elle permet généralement d'améliorer les performances du circuit. Le remplacement des données présentes dans la mémoire cache au moyen du contrôleur de cache s'effectue par paquets, ces paquets ayant une taille minimale de 4 mots de 32 bits, ceci quelle que soit la taille des données traitées par le microprocesseur MIC. On remarquera ici que la mémoire cache peut également être utilisée à 35 d'autres fins par le circuit. Il peut être imposé au contrôleur d'écrire les données enregistrées dans la mémoire cache qui concernent la mémoire externe MEM, par paquets d'une taille multiple de 64 bits. L'interfaçage de la mémoire cache avec la mémoire externe MEM qui n'est capable de gérer que des accès de 8, 16 ou 32 bits se fait de façon simple 5 en scindant un accès de taille 64bits en huit accès de 8 bits, quatre accès de 16 bits ou deux accès de 32 bits respectivement. Dans le cas d'accès 32 bits,L'algorithme DES ou 3DES sera ainsi chargé tous les 2 mots de 32 bits, tandis que l'algorithme AES sera chargé tous les 4 mots de 32 bits. Les données sont chargées à la volée. Dans le cas d'un 10 traitement " pipeline " de l'algorithme AES, autrement dit lorsque le traitement complet d'une donnée en un ou plusieurs cycles est capable de recevoir une nouvelle donnée à chaque cycle, seul le premier accès introduit un temps de latence sur le temps total du transfert des données. La clé privée utilisée par l'algorithme est stockée de préférence dans un 15 registre programmable une seule fois dit " OTP " (pour l'expression anglaise One Time Programmable). Si le circuit intégré IC est pourvu d'une mémoire non volatile de type flash, ce registre peut y être localisé. L'exemple de réalisation de l'invention présenté ci-dessus a été choisi pour son caractère concret. Il ne serait cependant pas possible de répertorier de 20 manière exhaustive tous les modes de réalisation que recouvre cette invention. En particulier, tout moyen décrit peut-être remplacé par un moyen équivalent sans sortir du cadre de la présente invention. REVENDICATIONS 1) Circuit IC comprenant un microprocesseur MIC, un ensemble de périphériques comportant au moins une interface de communication UMI 5 prévue pour un accès externe, lesdits périphériques PER hormis ladite interface de communication UMI étant reliés audit microprocesseur MIC par un bus d'interconnexion BUS, caractérisé en ce qu'il comprend de plus un module de sécurisation CR relié d'une part audit bus d'interconnexion BUS et d'autre part à ladite 10 interface de communication UMI par l'intermédiaire d'une liaison dédiée DL. 2) Circuit selon la revendication 1, caractérisé en ce que ladite interface de communication UMI est adaptée à une mémoire externe MEM. 3) Circuit selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que ledit module de sécurisation comporte des moyens de cryptage CR. 4) Circuit selon la revendication 3, caractérisé en ce que lesdits moyens de cryptage CR font appel à une clé privée. 5) Circuit selon l'une quelconque des revendications 3 ou 4 caractérisé en ce que, la longueur de la clé de cryptage étant supérieure à la longueur 25 standard des données que traite ledit microprocesseur MIC, il comprend des moyens pour décomposer lesdits mots cryptés en données de longueur standard. 6) Circuit selon la revendication 4 caractérisé en ce que, comportant de 3 0 plus une mémoire cache associé à un contrôleur, la longueur de la clé de cryptage étant supérieure à la longueur standard des données que traite ledit microprocesseur MIC, ledit module de sécurisation CR est prévu pour exploiter les accès consécutifs dudit contrôleur afin de décomposer lesdits mots cryptés en données de longueur standard. 7) Circuit selon l'une quelconque des revendications 3 à 6, caractérisé en ce que la clé de cryptage est stockée dans un registre programmable une seule fois. 8) Circuit selon la revendication 7 caractérisé en ce que, comprenant de plus une mémoire non volatile, ledit registre figure dans cette mémoire non volatile.