Brevet FR3132365A1 — publié le 20230804

Mémoire non volatile sécurisée La présente description concerne un procédé comprenant : - le chargement, à partir d’une mémoire non volatile (104) d’un circuit (102) vers un circuit de calcul (130), d’un premier paramètre de sécurité du circuit et d’un premier code correcteur d’erreur stocké en association avec le premier paramètre de sécurité ; - la vérification, par le circuit de calcul (130), du premier paramètre de sécurité et du premier code correcteur d’erreur afin de déterminer si un ou plusieurs des bits du paramètre de sécurité sont erronés ; et - s’il est déterminé que deux bits du paramètre de sécurité sont erronés, le chargement d’une valeur par défaut du premier paramètre dans un registre (132). Figure pour l'abrégé : Fig. 1 Mémoire non volatile sécurisée La présente description concerne le domaine des procédés et circuits pour la sécurité des circuits électroniques, et en particulier un procédé et un circuit permettant de protéger un circuit électronique comprenant une mémoire non volatile. Les mémoires non volatiles, telles que les mémoires de type FLASH, peuvent stocker des données sensibles en termes de confidentialité et sécurité telles que par exemple des clefs de chiffrement ou des paramètres de sécurité. La séquence de démarrage d’un circuit électronique est une étape sensible en termes de sécurité, car elle implique en général le traitement de ces données sensibles. Bien que des solutions existent pour rendre les données sensibles immuables, il serait souhaitable de protéger d’avantage ces données lorsqu’elles sont chargées de la mémoire non volatile vers d’autres mémoires. Il existe un besoin d’améliorer les méthodes de protections de la confidentialité et/ou la sécurité du contenu d’une mémoire non volatile d’un dispositif électronique. Un mode de réalisation pallie tout ou partie des inconvénients des méthodes de protection connus. Un mode de réalisation prévoit un procédé comprenant : - le chargement, à partir d’une mémoire non volatile d’un circuit vers un circuit de calcul, d’un premier paramètre de sécurité du circuit et d’un premier code correcteur d’erreur stocké en association avec le premier paramètre de sécurité ; - la vérification, par le circuit de calcul, du premier paramètre de sécurité et du premier code correcteur d’erreur afin de déterminer si un ou plusieurs des bits du paramètre de sécurité sont erronés ; et - s’il est déterminé que deux bits du paramètre de sécurité sont erronés, le chargement d’une valeur par défaut du premier paramètre dans un registre. Selon un mode de réalisation, la valeur par défaut correspond à une valeur imposant au circuit un état de fonctionnement sécurisé. Selon un mode de réalisation, le procédé ci-dessus comprend, s’il est déterminé que deux bits du paramètre de sécurité sont erronés, la transmission d’un signal de sortie d’une interface de la mémoire non volatile vers un circuit de contrôle du circuit, et la réalisation d’une ou plusieurs contre-mesures par le circuit de contrôle. Selon un mode de réalisation, le circuit de contrôle est configuré pour incrémenter un compteur suite à la réception du signal de sortie, et pour réinitialiser le circuit lorsqu’une valeur seuil est atteinte par le compteur. Selon un mode de réalisation, le procédé ci-dessus comprend, s’il est déterminé que deux bits du paramètre de sécurité sont erronés, la réalisation par l’interface de la mémoire d’une ou plusieurs contre-mesures. Selon un mode de réalisation, le procédé ci-dessus comprend : - la réception, par l’interface de la mémoire non volatile, d’un premier signal de commande, le premier signal de commande étant composé de bits, pouvant prendre valeurs différentes, seulement valeurs parmi ces valeurs étant autorisées, chacune de ces valeurs étant différente des autres par au moins deux valeurs de bits, où m est supérieure ou égale à 2 et est inférieure ou égale à ; - la comparaison de la valeur du premier signal de commande, par l’interface de la mémoire non volatile, avec chacune des q valeurs autorisées ; et - si la valeur du premier signal de commande ne correspond à aucune des q valeurs autorisées, la réalisation d’une ou plusieurs contre-mesures, comprenant par exemple la transmission du signal de sortie par l’interface de la mémoire au circuit de contrôle du circuit. Selon un mode de réalisation, le procédé ci-dessus comprend en outre la réception par l’interface de la mémoire non volatile, à partir du circuit de contrôle du circuit, d’un signal d’entrée d’avertissement indiquant la détection d’un événement suspect, et la réalisation par l’interface d’une ou plusieurs contre-mesures. Selon un mode de réalisation, l’une ou plusieurs contre-mesures comprennent l’interdiction d’accès à une première zone de la mémoire non volatile suite à la réception du signal d’entrée d’avertissement. Selon un mode de réalisation, la première zone de la mémoire non volatile contient au moins une clef de chiffrement. Selon un mode de réalisation, l’une ou plusieurs contre-mesures comprennent le remplacement la valeur d’une clef de chiffrement, stockée dans la mémoire non volatile, par une valeur factice. Selon un mode de réalisation, le chargement dans le registre du premier paramètre de sécurité du circuit est effectué avant la fin d’une séquence de démarrage du circuit. Selon un mode de réalisation, la mémoire non volatile est une mémoire de type FLASH. Un mode de réalisation prévoit un circuit comprenant: - une mémoire non volatile stockant un premier paramètre de sécurité, et un premier code correcteur d’erreur, stocké en association du premier paramètre dans la mémoire non volatile ; et - un circuit de calcul configuré pour : vérifier le premier paramètre de sécurité et le premier code correcteur d’erreur afin de déterminer si un ou plusieurs des bits du paramètre de sécurité sont erronés ; et s’il est déterminé que deux bits du paramètre de sécurité sont erronés, charger une valeur par défaut du premier paramètre de sécurité dans un registre. Selon un mode de réalisation, le circuit ci-dessus comprend une interface de la mémoire non volatile configurée pour, lorsqu’il est déterminé que deux bits du paramètre de sécurité sont erronés, transmettre un signal de sortie vers un circuit de contrôle du circuit configuré pour réaliser une ou plusieurs contre-mesures. 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 électronique selon un mode de réalisation de la présente description ; la est un organigramme représentant des opérations d’un procédé de protection d’un circuit selon un exemple de réalisation de la présente description ; la est un organigramme représentant des opérations d’un procédé de protection d’un circuit selon un autre exemple de réalisation de la présente description ; et la est un organigramme représentant des opérations d’un procédé de protection d’un circuit selon un autre exemple de réalisation de la présente description. Procédé comprenant : - le chargement, à partir d’une mémoire non volatile (104) d’un circuit (102) vers un circuit de calcul (130), d’un premier paramètre de sécurité du circuit et d’un premier code correcteur d’erreur stocké en association avec le premier paramètre de sécurité ; - la vérification, par le circuit de calcul (130), du premier paramètre de sécurité et du premier code correcteur d’erreur afin de déterminer si un ou plusieurs des bits du paramètre de sécurité sont erronés ; et - s’il est déterminé que deux bits du paramètre de sécurité sont erronés, le chargement d’une valeur par défaut du premier paramètre dans un registre (132). Procédé selon la revendication 1, dans lequel la valeur par défaut correspond à une valeur imposant au circuit (102) un état de fonctionnement sécurisé. Procédé selon la revendication 1 ou 2, comprenant en outre, s’il est déterminé que deux bits du paramètre de sécurité sont erronés, la transmission d’un signal de sortie (TAMPER_OUT) d’une interface (106) de la mémoire non volatile (104) vers un circuit de contrôle (108) du circuit (102), et la réalisation d’une ou plusieurs contre-mesures par le circuit de contrôle. Procédé selon la revendication 3, dans lequel le circuit de contrôle (108) est configuré pour incrémenter un compteur (114) suite à la réception du signal de sortie (TAMPER_OUT), et pour réinitialiser le circuit (102) lorsqu’une valeur seuil est atteinte par le compteur. Procédé selon la revendication 3 ou 4, comprenant en outre, s’il est déterminé que deux bits du paramètre de sécurité sont erronés, la réalisation par l’interface (106) de la mémoire (104) d’une ou plusieurs contre-mesures. Procédé selon la revendication 3 ou 4, comprenant en outre : - la réception, par l’interface (106) de la mémoire non volatile (104), d’un premier signal de commande (SIG), le premier signal de commande étant composé de bits, pouvant prendre valeurs différentes, seulement valeurs parmi ces valeurs étant autorisées, chacune de ces valeurs étant différente des autres par au moins deux valeurs de bits, où m est supérieure ou égale à 2 et est inférieure ou égale à ; - la comparaison de la valeur du premier signal de commande, par l’interface de la mémoire non volatile, avec chacune des q valeurs autorisées ; et - si la valeur du premier signal de commande ne correspond à aucune des q valeurs autorisées, la réalisation d’une ou plusieurs contre-mesures, comprenant par exemple la transmission du signal de sortie (TAMPER_OUT) par l’interface de la mémoire au circuit de contrôle (108) du circuit (102). Procédé selon la revendication 3 ou 4, comprenant en outre la réception par l’interface (106) de la mémoire non volatile (104), à partir du circuit de contrôle (108) du circuit (102), d’un signal d’entrée d’avertissement (TAMPER_IN) indiquant la détection d’un événement suspect, et la réalisation par l’interface d’une ou plusieurs contre-mesures. Procédé selon l’une quelconque des revendications 5 à 7, dans lequel l’une ou plusieurs contre-mesures comprennent l’interdiction d’accès à une première zone (124) de la mémoire non volatile (104) suite à la réception du signal d’entrée d’avertissement (TAMPER_IN). Procédé selon la revendication 8, dans lequel la première zone (124) de la mémoire non volatile contient au moins une clef de chiffrement (OBK). Procédé selon l’une quelconque des revendications 5 à 9, dans lequel l’une ou plusieurs contre-mesures comprennent le remplacement la valeur d’une clef de chiffrement (HW KEY), stockée dans la mémoire non volatile (104), par une valeur factice. Procédé selon l’une quelconque des revendications 1 à 10, dans lequel le chargement dans le registre (132) du premier paramètre de sécurité du circuit (102) est effectué avant la fin d’une séquence de démarrage du circuit. Procédé selon l’une quelconque des revendications 1 à 11, dans lequel la mémoire non volatile (104) est une mémoire de type FLASH. Circuit (102) comprenant: - une mémoire non volatile (104) stockant un premier paramètre de sécurité, et un premier code correcteur d’erreur, stocké en association du premier paramètre dans la mémoire non volatile ; et - un circuit de calcul (130) configuré pour : vérifier le premier paramètre de sécurité et le premier code correcteur d’erreur afin de déterminer si un ou plusieurs des bits du paramètre de sécurité sont erronés ; et s’il est déterminé que deux bits du paramètre de sécurité sont erronés, charger une valeur par défaut du premier paramètre de sécurité dans un registre (132). Circuit (102) selon la revendication 13, comprenant en outre une interface (106) de la mémoire non volatile (104) configurée pour, lorsqu’il est déterminé que deux bits du paramètre de sécurité sont erronés, transmettre un signal de sortie (TAMPER_OUT) vers un circuit de contrôle (108) du circuit configuré pour réaliser une ou plusieurs contre-mesures.