Brevet FR3120964A1 — publié le 20220923

Stockage matériel d’une clé unique La présente description concerne un procédé dans lequel une valeur aléatoire, générée par un générateur de nombres aléatoires (110), est stockée, par une machine à états finis (106) reliée audit générateur (110) par un premier bus dédié (118), dans une zone mémoire (202) d’une mémoire non volatile de type fusible (104) d’un circuit intégré (102), la zone mémoire (202) n’étant accessible que par ladite machine à états finis. Figure pour l'abrégé : Fig. 3 Stockage matériel d’une clé unique La présente description concerne de façon générale les circuits électroniques, et plus particulièrement les circuits intégrés comportant une mémoire non volatile à programmation irréversible (communément désignée de type fusible). La présente description concerne, en particulier, la mise en œuvre d’un procédé permettant de protéger des données stockées dans la mémoire non volatile de type fusible d’un tel circuit. Le fonctionnement d’un dispositif électronique à circuit intégré nécessite l’exécution de codes logiciel ou de protocoles propriétaires utilisés dans la vie du circuit. Les données représentant les codes logiciel et protocoles propriétaires sont liées à certaines instances du circuit mais nécessitent d’être stockées dans une mémoire accessible de l’extérieur de type non-volatile. De telles données sont considérées comme étant sensibles en termes de confidentialité et ont besoin d’être cryptées afin de ne pas pouvoir être exploitées en cas d’une attaque sur le circuit. Le cryptage et le décryptage de ces données est effectué par un processeur cryptographique, et nécessite une ou plusieurs clefs de chiffrement stockées dans une mémoire non volatile du dispositif. Généralement, la commande de génération de ces clefs de chiffrement ainsi que leur stockage dans une mémoire non-volatile sont exécutés par un processeur non sécurisé. Cependant, ces clés de chiffrement ne doivent pas être accessibles à tout potentiel attaquant du circuit. Toute connexion physique entre le processeur non sécurisé et la mémoire non volatile contenant ces clefs de chiffrement peut être exploitée par des attaquants. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la représente, de façon très schématique et sous forme de blocs, un mode de réalisation d’un dispositif à circuit intégré du type auquel s’appliquent, à titre d’exemple, des modes de réalisation décrits ; la représente, de façon schématique et sous forme de blocs, plus détaillée qu'en , un mode de réalisation de circuit intégré du type auquel s’appliquent, à titre d’exemple, des modes de réalisation décrits ; la est un organigramme représentant des étapes d'un mode de mise en œuvre d'une création et du stockage d’une clef de cryptage ; et la est un organigramme représentant les étapes suivies par le circuit lors d’un démarrage ou d’une réinitialisation. Procédé dans lequel une valeur aléatoire, générée par un générateur de nombres aléatoires (110), est stockée, par une machine à états finis (106) reliée audit générateur (110) par un premier bus dédié (118), dans une zone mémoire (202) d’une mémoire non volatile de type fusible (104) d’un circuit intégré (102), la zone mémoire (202) n’étant accessible que par ladite machine à états finis. Procédé selon la revendication 1, dans lequel la zone mémoire (202) ne peut être programmée que par la machine à états finis (106). Procédé selon la revendication 1 ou 2, dans lequel le premier bus dédié (118) relie exclusivement la machine à états finis (106) au générateur de nombres aléatoires (110). Procédé selon l’une quelconque des revendications 1 à 3, dans lequel à chaque phase de réinitialisation dudit circuit, le contenu de la zone mémoire (202) est chargé par la machine à états finis (106) dans des éléments de mémorisation volatile (206). Procédé selon la revendication 4, dans lequel un deuxième bus dédié (116) relie exclusivement les éléments de mémorisation volatile (206) à un premier processeur (112). Procédé selon la revendication 5, dans lequel le premier processeur (112) est un processeur cryptographique. Procédé selon l’une quelconque des revendications 4 à 6, dans lequel la machine à états finis (106) ainsi que les éléments de mémorisation volatile (206) sont contenus dans un adaptateur (108). Procédé selon l’une quelconque des revendications 4 à 6, dans lequel une transition du circuit vers un ou sortant d’un état autorisant l’exécution d’un scan-test engendre l’effacement du contenu stocké dans les éléments de mémorisation volatile (206). Procédé selon la revendication 8 dans lequel la mémoire non volatile (104) est déconnectée du circuit lorsque ledit circuit est dans l’état autorisant un scan-test. Procédé selon l’une quelconque des revendications 1 à 9, dans lequel la machine à états finis (106) verrouille la zone mémoire (202) après stockage de la valeur aléatoire si la valeur aléatoire stockée correspond à la valeur aléatoire générée par le générateur (110). Circuit intégré configuré pour la mise en œuvre du procédé selon l’une quelconque des revendications 1 à 10.