Brevet FR3041796A1 (20170331)
REVENDICATIONS1. Procédé de sécurisation d'un code programme destiné à être exécuté par une unité centrale (5) d'un module de traitement informatique (1)couplée à une mémoire cache (6) contenant des lignes de cache (60) possédant chacune un champ de données destiné à stocker des mots d'instruction (83) exécutables par l'unité centrale (5), comprenant un stockage du code programme dans des emplacements mémoire (81) d'une mémoire externe (2) au module de traitement informatique (1), chaque emplacement mémoire (8) étant capable de stocker les mots d'instructions (81) d'une ligne de cache, une détermination de codes d'authentification respectivement associés auxdites lignes de cache et pour chaque ligne de cache une fragmentation du code d'authentification associé et un stockage de ce code d'authentification fragmenté réparti dans l'emplacement mémoire (8) correspondant.\n<CLM>\1\tProcédé selon la revendication 1, dans lequel chaque emplacement mémoire (8) contient des mots mémoires (81) destinés à stocker respectivement les mots (83) de la ligne de cache correspondante, chaque mot mémoire (81) a une capacité de stockage supérieure à celle du mot d'instruction (83) et contient une zone non utilisée (82) pour le stockage du mot d'instruction, et les fragments du code d'authentification associés aux mots d'instructions (83) de la ligne de cache sont stockés dans certaines au moins desdites zones non utilisées.\n<CLM>\1\tProcédé selon la revendication 2, comprenant en outre - lors d'une requête d'un mot d'instruction (83) par l'unité centrale (5) non présent dans une ligne de cache (60) de la mémoire cache (6), - une extraction de la mémoire externe (2) des mots d'instructions (83) de la ligne de cache correspondante et du code d'authentification fragmenté associé, - une reconstitution du code d'authentification à partir desdits fragments (82) 3041796 12 un calcul du code d'authentification à partir des mots d'instructions (83) extraits, et une comparaison du code d'authentification calculé MACcalc avec le code d'authentification reconstitué 5 MACref.\n<CLM>\1\tProcédé selon la revendication 1, dans lequel chaque emplacement mémoire (8) contient des mots mémoires (81) destinés à stocker respectivement les mots (83) de la ligne de cache correspondante, chaque mot mémoire (81) a une capacité de stockage 10 égale à celle du mot d'instruction (83), et le stockage du code programme comprend une compression de certains au moins des mots d'instructions (83) de chaque ligne de cache (8) et un stockage des mots d'instructions compressés (84) dans les mots mémoires (81) correspondants, ce stockage laissant subsister une zone libre (82) dans 15 le mot mémoire (81) correspondant, et les fragments du code d'authentification associé aux mots d'instructions compressés (84) de la ligne de cache sont stockés dans lesdites zones libres.\n<CLM>\1\tProcédé selon la revendication 4, dans lequel la compression se fait selon un algorithme à codage déterministe les 20 zones libres étant de tailles égales.\n<CLM>\1\tProcédé selon la revendication 4, dans lequel la compression se fait selon un algorithme à codage variable les zones libres étant de tailles variables.\n<CLM>\1\tProcédé selon l'une des revendications 4 à 6, comprenant 25 en outre lors d'une requête d'un mot d'instruction (83) par l'unité centrale non présent dans une ligne de cache (60) de la mémoire cache (6), une extraction de la mémoire externe (2) des mots d'instructions compressé (84) de la ligne de cache (60) 30 correspondante et du code d'authentification fragmenté associé, - une reconstitution du code d'authentification à partir desdits fragments, 3041796 13 - une décompression des mots d'instructions compressés (84), - un calcul du code d'authentification à partir des mots d'instruction décompressés (84), et 5 une comparaison du code d'authentification calculé MACcalc avec le code d'authentification extrait MACref.\n<CLM>\1\tSystème SYS comprenant : un module de traitement informatique (1) contenant une unité centrale (5), 10 une mémoire cache (6) contenant des lignes de cache (60) possédant chacune un champ de données destiné à stocker des mots d'instruction (83) exécutables par l'unité centrale (5) du module de traitement informatique (1), 15 une mémoire externe (2) au module de traitement informatique (1) comprenant des emplacements mémoire (8) correspondant à des champs de données de lignes de cache, chaque emplacement mémoire étant configuré pour stocker les mots d'instructions (83) d'une ligne de 20 cache, des moyens de contrôle (4) configurés pour déterminer des codes d'authentification respectivement associés auxdites lignes de cache, fragmenter le code d'authentification associé et stocker ce code 25 d'authentification fragmenté réparti dans l'emplacement mémoire (8) correspondant,\n<CLM>\1\tSystème selon la revendication 8, dans lequel chaque mot mémoire (81) de chaque emplacement mémoire (8) a une capacité de stockage supérieure à celle du mot d'instruction (83) et contient une 30 zone non utilisée pour le stockage du mot d'instruction (83), et certaines au moins desdites zones non utilisées sont aptes à recevoir les fragments du code d'authentification associé aux mots d'instructions (83) de la ligne de cache. 3041796 14\n<CLM>\1\tSystème selon la revendication 8 ou 9, dans lequel les moyens de contrôle (4) sont configurés pour, lors d'une requête d'un mot d'instruction (84) par l'unité centrale non présent dans une ligne de cache de la mémoire cache, 5 extraire de la mémoire externe les mots d'instructions (83) de la ligne de cache (60) correspondante et le code d'authentification fragmenté associé, reconstruire le code d'authentification à partir desdits fragments, 10 calculer le code d'authentification à partir des mots d'instructions extraits (83), et comparer le code d'authentification calculé MACcal, avec le code d'authentification reconstitué MACref.\n<CLM>\1\tSystème selon la revendication 8, dans lequel chaque 15 emplacement mémoire (8) contient des mots mémoires (81) destinés à stocker respectivement les mots (83) de la ligne de cache correspondante, chaque mot mémoire (81) a une capacité de stockage égale à celle du mot d'instruction (83), et est apte à recevoir des mots d'instruction compressés (84) ou non de manière à laisser subsister ou 20 non une zone libre dans le mot mémoire apte à recevoir un fragment du code d'authentification associé aux mots d'instructions de la ligne de cache.\n<CLM>\1\tSystème selon la revendication 11, dans lequel les moyens de contrôle (4) sont configurés pour compresser les mots d'instruction 25 (83) en mots compressés (84) de tailles égales.\n<CLM>\1\tSystème selon la revendication 11, dans lequel les moyens de contrôle sont configurés pour compresser les mots d'instruction (83) en mots compressés (84) de tailles variables.