Brevet FR3096206A1 — publié le 20201120

Description Titre de l'invention : DISPOSITIF DE PROTECTION DE DONNEES MASQUEES ET PROCEDE ASSOCIE [0001] Des modes de mise en oeuvre et de réalisation de l'invention concernent les circuits intégrés comportant des modules sécurisés, et en particulier la protection de ce type de circuit contre les analyses par canaux auxiliaires, connues par l'homme du métier sous la dénomination anglo-saxonne «Sicle channel analysis», et tout particulièrement contre les analyses des signaux électriques produits par le module sécurisé lors de son fonctionnement. [0002] En fonctionnement, le module sécurisé produit des signaux électriques transitant par l'intermédiaire des pistes métalliques du circuit intégré. [0003] Des données reçues par le module sécurisé sont chiffrées en utilisant une dé secrète formée par un masque statiques ou dynamiques et des données masquées. Lc masque et les données masquées sont sauvegardés respectivement dans un premier et un deuxième registres de données du circuit intégré. [0004] Lc masque et les données masquées forment une dé secrète. [0005] Les techniques de chiffrement peuvent mettre en oeuvre une clé de session temporaire unique « session key » permettant le déchiffrement des données secrètes chiffrées, la dé de session étant fournie par un serveur certifié. [0006] Les données sont chiffrées par exemple par un algorithme du type « AES », « Advanced Encryption Standard ». [0007] Les masques protégeant la dé secrète sont rafraîchis en général au mieux une fois par opération de chiffrement. [0008] En analysant les signaux électriques des registres contenant les données masquées et le masque dynamique ou statique, à l'aide par exemple d'une antenne et d'algorithmes mathématiques dédiés, il est possible d'obtenir des informations sur les opérations effectuées ainsi que sur les données manipulées et/ou sur leurs occurrences. [0009] Pour protéger le module sécurisé d'une analyse par canaux auxiliaires, seules les données actualisées font l'objet d'un nouveau masquage. [0010] Par conséquent, des signaux masqués demeurent inchangés pendant plusieurs cycles d'horloge. [0011] Lorsqu'un signal sur une piste demeure inchangé pendant une durée suffisante, par exemple supérieure à 1 ms, une analyse par canaux auxiliaires mettant en oeuvre un microscope à balayage permet de déterminer si la piste est à l'état logique « 0 » ou « 1 ». [0012] En comparant simultanément l'état logique de la piste et les valeurs logiques aux bornes des premier et deuxième registres contenant le masque et les données masquées 2 l'état logique d'un hit de donnée masquée et d'un hit de masquage peuvent être déterminés simultanément permettant le déchiffrement du bit de donnée masquée, la détermination des états logiques étant réalisée en analysant les pistes et les homes à l'aide d'un microscope à balayage. [0013] En réitérant l'opération de déchiffrement hit par bit, la donnée secrète peut être retrouvée. [0014] Il existe un besoin d'améliorer la protection des données masquées contre les analyses par canaux auxiliaires, notamment les analyses par canaux auxiliaires mettant en oeuvre un microscope à balayage. [0015] Selon des modes de mises en oeuvre et de réalisation, il est avantageusement proposé de masquer de façon aléatoire les contenus de deux registres contenant respectivement un premier masque et des données masquées, et formant ensemble une clé secrète et de disposer les registres contenant la clé secrète de sorte que les sorties de ces registres ne soient pas optiquement visualisables simultanément. [0016] Selon un aspect, il est proposé un procédé de protection des contenus de registres d'un module d'un circuit intégré, un premier registre contenant un premier masque et un deuxième registre contenant des données masquées, le premier masque et lesdites données masquées formant une clé secrète. [0017] Le procédé comprend une génération de manière aléatoire d'un deuxième masque, un masquage de la clé secrète en utilisant le deuxième masque. [0018] Ce deuxième masque peut être considéré comme un masque dynamique. [0019] La génération du deuxième masque et le masquage de la clé secrète sont effectués lorsque la clé secrète n'est pas utilisée pour une opération de chiffrement et lors de la réception d'un signal de validation. [0020] Les premier et deuxième registres sont disposés dans le module sécurisé de sorte que les sorties de ces registres ne soient pas optiquement visualisables simultanément. [0021] En pratique un attaquant peut utiliser un microscope à balayage. [0022] Selon un mode de mise en oeuvre, on espace alors les deux registres d'une distance supérieure à la distance permettant de visualiser simultanément les deux registres ainsi que l'état de leurs sorties par un microscope à balayage, compte tenu de la résolution dudit microscope à balayage. [0023] Comme la distance séparant les deux registres formant la clé secrète est choisie de façon que leurs sorties ne soient pas simultanément visualisables par un instrument optique, par exemple supérieure à la distance permettant de visualiser simultanément les deux registres ainsi que l'état de leurs sorties compte tenu de la résolution d'un microscope à balayage, il n'est pas possible de déterminer simultanément l'état des sorties des registres contenant la clé secrète. [0024] Par ailleurs en combinaison avec la disposition éloignée des registres, le masquage de 3 la clé secrète formée par les contenus des deux registres, à l'aide d'un masque dynamique permet d'empêcher une acquisition séquentielle de l'état des sorties des registres contenant la clé secrète. [0025] De plus, l'élaboration du deuxième masque et le masquage dc la clé secrète par le deuxième masque sont effectués de manière automatique et ne nécessitent pas l'intervention d'une unité de traitement permettant d'optimiser les ressources et la consommation du module sécurisé. [0026] Selon un mode de mise en oeuvre, le masquage dc la clé secrète comprend l'application des premiers opérateurs logiques sur le deuxième masque et le contenu de chacun des premier et deuxième registres, et la génération du deuxième masque comprend : [0027] - un tirage aléatoire d'une donnée initiale ayant une taille inférieure à celle du deuxième masque, [0028] - une scission de la donnée initiale en plusieurs données (au moins deux) ayant chacune une taille inférieure à celle de la donnée initiale, et [0029] - un assemblage des données par un deuxième opérateur logique. [0030] Selon un autre mode de mise en oeuvre, la donnée initiale est scindée du mot initial en une première donnée, une deuxième donnée et une troisième donnée ayant chacune une taille inférieure à celle de la donnée initiale, et les première, deuxième et troisième données sont assemblées par le deuxième opérateur logique. [0031] Selon encore un autre mode de mise en oeuvre, le masquage de la clé secrète utilise des premiers opérateurs logiques, et la génération du deuxième masque comprend : [0032] - un tirage aléatoire d'une donnée initiale ayant une taille inférieure à celle du deuxième masque ; [0033] - une scission de la donnée initiale en une première donnée, une deuxième donnée et une troisième donnée ayant chacun une taille inférieure à celle de la donnée initiale ; [0034] - et un assemblage des première, deuxième et troisième données par un deuxième opérateur logique. [0035] Selon encore un autre mode de mise en oeuvre, les premiers opérateurs logiques et le deuxième opérateur logique comportent des opérateurs OU EXCLUSIF. [0036] Selon encore un autre mode de mise en oeuvre, la donnée initiale comporte une donnée de 32 bits, la première donnée comporte une donnée de 16 bits, la deuxième donnée et la troisième donnée comportent des données de 8 bits chacune. [0037] 11 suffit de tirer la donnée initiale de 32 bits pour créer le deuxième masque de par exemple 128 bits. La consommation d'énergie pour générer le deuxième masque est réduite. [0038] Selon un mode de mise en oeuvre, le procédé comprend une réitération, à chaque oc- currence du signal de validation, de la génération du deuxième masque et du masquage de la clé secrète. [0039] Chaque réitération comprend un écrasement des contenus des premier et deuxième registres respectivement par les contenus précédents de ces deux registres masqués par le deuxième masque. [0040] Selon un autre mode de mise en oeuvre, la durée séparant deux occurrences du signal de validation est choisie inférieure à la durée d'acquisition d'un dispositif de visualisation optique. [0041] Selon encore un mode de mise en oeuvre, la génération du signal de validation est aléatoire. [0042] La durée maximale séparant deux occurrences du signal de validation est avanta- geusement choisie de sorte qu'elle soit inférieure à la durée d'acquisition d'un dispositif de visualisation optique, par exemple un microscope à balayage de telle sorte qu'il ne soit pas possible de déterminer l'état des sorties des premier et deuxième registres. [0043] Selon un mode de mise en oeuvre, les contenus des premier et deuxième registres sont modifiés après chaque opération de chiffrement utilisant ladite clé secrète. [0044] De préférence, les premier et deuxième registres sont configurés pour stocker des données de 128 bits. [0045] Selon un autre aspect, il est proposé un circuit intégré comprenant un module comprenant : [0046] - un premier registre contenant un premier masque, [0047] - un deuxième registre contenant des données masquées, le premier masque et lesdites données masquées formant une clé secrète, et [0048] - des moyens de traitement configurés pour générer un deuxième masque et pour masquer la clé secrète avec le deuxième masque lorsque la clé secrète n'est pas utilisée pour une opération de chiffrement et lors de la réception d'un signal de validation. [0049] Les premier et deuxième registres sont disposés dans le module sécurisé de sorte que les sorties de ces registres ne soient pas optiquement visualisables simultanément. [0050] Selon un mode de réalisation, les deux registres sont séparés d'une distance su- périeure à la distance permettant de visualiser simultanément les deux registres ainsi que l'état de leurs sorties par un microscope à balayage compte tenu de la résolution dudit microscope à balayage. [0051] Selon un autre mode de réalisation, les moyens de traitement comportent des moyens de génération configurés pour générer le deuxième masque et des moyens de masquage comprenant des premiers opérateurs logiques aptes à masquer le contenu des premier et deuxième registres avec le deuxième masque, les moyens de génération comprenant : [0052] - un générateur d'occurrence apte à générer le signal de validation, [0053] - un générateur aléatoire apte à générer aléatoirement une donnée initiale ayant une taille inférieure à celle du deuxième masque, et [0054] - un module de traitement apte à scinder la donnée initiale en des données ayant chacune une taille inférieure à celle de la donnée initiale, ledit module de traitement étant apte à assembler les données par un deuxième opérateur logique pour créer ledit deuxième masque. [0055] Selon encore un autre mode de réalisation, le module de traitement est apte à scinder la donnée initiale en une première donnée, une deuxième donnée et une troisième donnée ayant une taille inférieure à celle de la donnée mot initiale, ledit module de traitement étant apte à assembler les première, deuxième et troisième données par le deuxième opérateur logique pour créer ledit deuxième masque. [0056] Selon encore un autre mode de réalisation, les premiers opérateurs logiques et le deuxième opérateur logique comportent des opérateurs OU EXCLUSIF. [0057] Avantageusement, la donnée initiale comporte une donnée de 32 bits, la première donnée comporte une donnée de 16 bits, la deuxième donnée et la troisième donnée comportent des données de 8 bits chacun. [0058] Selon un mode de réalisation, les moyens de traitement sont aptes à générer le deuxième masque, à masquer la clé secrète et à écraser des contenus des premier et deuxième registres respectivement par les contenus précédents de ces deux registres à nouveau masqués par le deuxième masque à chaque occurrence du signal de validation. [0059] Selon un autre mode de réalisation, la durée séparant deux occurrences du signal de validation est choisie inférieure à la durée d'acquisition d'un dispositif de visualisation optique. [0060] Selon un autre mode de réalisation, le générateur d'occurrence est apte à générer aléatoirement le signal de validation. [0061] Selon encore un autre mode de réalisation, le système comprend en outre des moyens aptes à transmettre la clé secrète aux premier et deuxième registres et aptes à modifier les contenus des premier et deuxième registres après chaque opération de chiffrement utilisant ladite clé secrète. [0062] Selon encore un autre mode de réalisation, les premier et deuxième registres com- prennent 128 bits. [0063] Selon un autre aspect, il est proposé un appareil incorporant un circuit intégré tel que défini ci-avant. [0064] D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : [0065] [fig.1] illustre un exemple d'un mode de réalisation d'un circuit intégré ; et 6 [0066] [fig.2] illustre un exemple de mise en oeuvre du circuit intégré. [0067] On se réfère à la figure 1 qui représente un exemple d'un mode de réalisation d'un circuit intégré CI, incorporé dans un appareil électronique CP, par exemple une carte à puce. [0068] Le circuit intégré CI comprend un système de protection de données masquées comprenant un module 2, par exemple sécurisé et une première unité de traitement 3, par exemple sécurisée. [0069] Le module sécurisé 2 comprend une interface 4 de communication reliée d'une part avec la première unité de traitement sécurisée 3 et, d'autre part, avec un bus 5 de données. [0070] Le module 2 comprend en outre un premier et un deuxième registres 6 et 7 reliés chacun au bus 5, une deuxième unité de traitement 8 reliée aux premier et deuxième registres 6 et 7. [0071] Le premier registre 6 comprend des données masquées A et le deuxième registre 7 comprend un premier masque B, le contenu des deux registres 6 et 7 formant une clé secrète. [0072] Bien entendu, le masque B peut être contenu dans le premier registre 6 et les données masquées A peuvent être contenues dans le deuxième registre 7. [0073] Le module 2 comprend en outre des moyens de traitement configurés pour générer un deuxième masque M et pour masquer la clé secrète avec le deuxième masque M, lorsque la clé secrète n'est pas utilisée pour une opération de chiffrement et lors de la réception d'un signal de validation VALID [0074] Le masquage de la clé secrète permet d'empêcher une acquisition séquentielle de l'état des sorties des registres contenant la clé secrète. [0075] Les moyens de traitement comportent des moyens de génération configurés pour générer le deuxième masque et des moyens de masquage comprenant des premiers opérateurs OU EXCLUSIF OPI et OP2 aptes à masquer le contenu des premier et deuxième registres 6 et 7 avec le deuxième masque M. [0076] Les moyens de génération comprennent un générateur d'occurrence 9 apte à générer le signal de validation VALID, un générateur aléatoire apte à générer aléatoirement une donnée initiale C, et un module de traitement 10 apte à scinder la donnée initiale en une première donnée E, une deuxième donnée F et un troisième donnée G de taille inférieure à celle de la donnée initiale. [0077] Le module de traitement 10 est apte à assembler les première, deuxième et troisième données par un deuxième opérateur logique 100. [0078] Le module générateur d'occurrence 9 et le module de traitement 10 sont reliés chacun aux premier et deuxième registres 6 et 7, le générateur aléatoire 11 est relié au module de traitement 10 et au module générateur d'occurrence 9. 7 [0079] Le module de traitement 10 est en outre relié à une première entrée des opérateurs OP1 et OP2. [0080] Une deuxième entrée de l'opérateur OP1 est reliée au premier registre 6, une deuxième entrée de l'opérateur OP2 est reliée au registre 7, une sortie de l'opérateur OP1 est reliée au premier registre 6 et une sortie de l'opérateur OP2 est reliée au deuxième registre 7, de sorte que lorsque le deuxième masque M est transmis à la première entrée des opérateurs OP1 et OP2 par le module de traitement, les opérateurs OP1 et OP2 masquent le contenu des premier et deuxième registres avec le deuxième masque M et masquent donc la clé secrète. [0081] Les premier et deuxième registres 6 et 7 sont disposés dans le module sécurisé 2 de sorte que les sorties de ces registres ne soient pas optiquement visualisables simultanément, par exemple par un dispositif optique comprenant un microscope à balayage 13 ayant une chambre d'analyse et un écran 14. [0082] Les deux registres sont séparés d'une distance DIST par exemple choisie de façon que sur l'écran 14 du microscope on ne puisse pas visualiser simultanément les deux registres 6 et 7 ainsi que l'état de leurs sorties compte tenu de la résolution du microscope. [0083] A titre indicatif, une distance DIST d'au moins 80 pm est acceptable. [0084] Comme la distance DIST séparant les deux registres formant la clé secrète est su- périeure à la distance permettant de visualiser simultanément les deux registres 6 et 7 ainsi que l'état de leurs sorties compte tenu de la résolution du microscope, il n'est pas possible de déterminer simultanément l'état des sorties des registres contenant la clé secrète. [0085] Le module 2 comprend en outre un troisième registre 12 relié d'un part au bus 5, et, d'autre part à une deuxième unité de traitement 8 qui utilise la clé secrète pour chiffrer des données d'entrée. [0086] La première unité de traitement 3 communique avec le module sécurisé 2 par l'intermédiaire de l'interface 4 et du bus de données 5. [0087] Le module sécurisé 2 est cadencé par une horloge non représentée. [0088] Les premier, deuxième et troisième registres 6, 7 et 12 sont du type volatile, par exemple une mémoire volatile. [0089] Le premier registre 6 comprend des données masquées A comportant 128 bits A[i], i variant de 1 à 128, et le deuxième registre 7 comprend un masque B comportant 128 bits BU], j variant de 0 à 128. [0090] Les premier et deuxième registres 6 et 7 contenant les données A et B sont configurés pour stocker des données de 128 bits. [0091] Selon un autre mode de réalisation les données A et B formant la clé secrète peuvent comprendre plus ou moins de 128 bits, les premier et deuxième registres 6 et 7 étant 8 configurés pour stocker les données masquées A et le masque B. [0092] La division de la clé secrète en deux données A et B permet de protéger la clé secrète contre des attaques par canaux auxiliaires. [0093] Les données masquées A et le masque B sont fournis par la première unité de traitement 3. [0094] La première unité de traitement 3 est en outre apte à modifier les contenus des premier et deuxième registres 6 et 7 après chaque opération de chiffrement par l'unité 8 utilisant ladite clé secrète. [0095] La première unité de traitement 3 fournit en outre des données d'entrée DATA destinées à être chiffrées. [0096] Les données DATA sont sauvegardées dans le troisième registre 12. [0097] La deuxième unité de traitement 8 est apte à chiffrer les données DATA contenues dans le troisième registre 12 à partir de la clé secrète contenue dans les premier et deuxième registres 6 et 7. [0098] La deuxième unité de traitement 8 génère des données de sortie CRYPT cor- respondant aux données d'entrée DATA chiffrées. [0099] Les données CRYPT sont sauvegardées dans le troisième registre 12 de manière à écraser les données DATA. [0100] La deuxième unité de traitement 8 est réalisée par exemple à partir d'un micro- processeur, niais il peut s'agir de tout dispositif apte à chiffrer des données à partir d'une clé secrète contenue dans deux registres, et à sauvegarder les données chiffrées dans un registre. [0101] La première unité de traitement 3 charge les données masquées A dans le premier registre 6 et charge le masque B dans le deuxième registre 7. [0102] En outre, la première unité de traitement 3 charge les données à chiffrer DATA dans le troisième registre 12 et récupère les données chiffrées CRYPT sauvegardées dans le troisième registre 12. [0103] La première unité de traitement 3 est réalisée par exemple à partir d'un micro- processeur, mais il peut s'agir de tout dispositif apte à charger les données masquées A dans le premier registre 6, apte à charger le masque B dans le deuxième registre 7, apte à charger les données à chiffrer DATA dans le troisième registre 12 et apte à récupérer les données chiffrées CRYPT sauvegardées dans le troisième registre 12. [0104] Le module générateur d'occurrence 9 génère par exemple de manière aléatoire un signal de validation VALID. [0105] En variante, le module générateur d'occurrence 9 génère de manière déterministe le signal de validation VALID. [0106] Le signal VALID est transmis aux premier et deuxième registres 6 et 7, et au gé- nérateur aléatoire 11. 9 [0107] Le module générateur d'occurrence 9 est par exemple réalisé par un compteur comportant par exemple des bascules. [0108] Dans ce qui suit, on suppose que la donnée initiale C comporte une donnée de 32 bits, la première donnée E comporte une donnée de 16 bits, la deuxième donnée F et la troisième donnée G comportent des données de 8 bits chacune, et le deuxième opérateur logique 100 comprend des opérateurs OU EXCLUSIF. [0109] Le générateur aléatoire 11 effectue un tirage aléatoire, à la réception du signal VALID émis par le module générateur d'occurrence 9, de la donnée initiale C comportant 32 bits C[k], k variant de 1 à 32. [0110] La donnée C est transmise au module de traitement 10. [0111] A partir de la donnée C, le module de traitement 10 génère le deuxième masque M comportant 128 bits M[I], I variant de 1 à 128. [0112] Plus précisément, l'unité de traitement 10 scinde la donnée initiale C de manière aléatoire de manière à obtenir les première, deuxième et troisième données E, F et G. [0113] Puis le module de traitement 10 génère le masque M selon l'équation (1) : [0114] M[l]=E[ENT[l mod 16]] XOR F[ENT[I/16]] XOR G[ENT[(I+1/16) mod 8)11, I variant de 1 à 128 [0115] où ENT[] est la partie entière, mod est le modulo, E est la donnée E comportant 16 bits E[p], p variant de 1 à 16, F est la donnée F comportant 8 bits F[q], q variant de 1 à 8, et G est la donnée G comportant 8 bits G[r], r variant de 1 à 8, et XOR est l'opérateur booléen OU EXCLUSIF 100. [0116] 11 suffit de tirer la donnée initiale C de 32 bits pour créer le deuxième masque M de 128 bits. La consommation d'énergie pour générer le deuxième masque M est réduite. [0117] De plus, un générateur générant 32 bits prend moins de place sur le silicium qu'un générateur générant 128 bits. [0118] Bien entendu, l'exemple de réalisation du masque M comportant 128 bits à partir de la donnée initiale C comportant 32 bits s'applique pour une donnée initiale de taille différente et pour un deuxième masque de taille différente. [0119] En variante, la donnée initiale C peut être scindée en plusieurs données, par exemple deux ou plus de trois données, ayant chacune une taille inférieure à celle de la donnée initiale, le module de traitement 10 scindant la donnée initiale C en des données ayant chacune une taille inférieure à celle de la donnée initiale et assemblant les données par le deuxième opérateur logique 100 pour créer ledit deuxième masque M. [0120] Les données de taille inférieure à celle de la donnée initiale C sont dimensionnées de sorte que le deuxième masque M soit de même taille que la clé secrète permettant d'utiliser des algorithmes de chiffrement mettant en oeuvre des clés secrètes de tailles différentes. [0121] Le module de traitement 10 est défini par exemple à partir de circuits logiques. [0122] La figure 2 illustre un exemple de mise en oeuvre du système 1 de protection de données masquées. [0123] Durant par exemple une étape 20, la première unité de traitement 3 charge les données masquées A et le masque B dans les premier et deuxième registre 6 et 7. [0124] En outre, la première unité de traitement 3 peut charger les données à chiffrer DATA dans le troisième registre 12. [0125] Si le troisième registre 12 contient des données à chiffrer DATA, on poursuit par exemple à une étape 21. [0126] Durant par exemple l'étape 21, la deuxième unité de traitement 8 chiffre les données DATA contenues dans le troisième registre 12 en utilisant la clé secrète formée par les données masquées A et le masque B contenus dans les premier et deuxième registres 6 et 7 pour obtenir les données chiffrées CRYPT. [0127] Lorsque les données chiffrées CRYPT ont été générées par la deuxième unité de traitement 8, les données CRYPT sont sauvegardées dans le troisième registre 12 de manière à écraser le contenu précédent du troisième registre 12. [0128] Puis dans par exemple une étape 22, lorsque les données CRYPT ont été sau- vegardées dans le troisième registre 12, la première unité de traitement 3 charge, par exemple dans une mémoire interne, les données chiffrées CRYPT pour une utilisation ultérieure. [0129] On revient alors à l'étape 20, dans laquelle la première unité de traitement 3 modifie les données masquées A et le masque B de sorte que le contenu des premier et deuxième registres 6 et 7 soit unique. [0130] Les contenus des premier et deuxième registres 6 et 7 sont modifiés après chaque opération de chiffrement utilisant la clé secrète. [0131] Si la clé secrète est utilisée ou si le module générateur d'occurrence 9 ne délivre pas de signal VALID, on revient à la fin de l'étape 20. [0132] Si la clé secrète n'est pas utilisée et que le module générateur d'occurrence 9 délivre le signal VALID, on poursuit à une étape 23. [0133] Durant l'étape 23, le générateur aléatoire 11 génère la donnée initiale C de 32 bits à la réception du signal VALID [0134] Puis par exemple à l'étape 24, module de traitement 10 génère le deuxième masque M selon l'équation (1). [0135] Lorsque le deuxième masque M est généré, durant par exemple une étape 25, le contenu des premier et deuxième registres 6 et 7 est actualisé selon les équations : [0136] = A[i] XOR M[i] ; et [0137] B[i] = XOR [0138] i variant de 1 à 128 et n=0, XOR étant l'opérateur OU EXCLUSIF utilisé dans cet exemple à la fois par les opérateurs référencés OP1 et OP2. 11 [0139] Puis on revient à la fin de l'étape 20. [0140] A chaque occurrence du signal de validation VALID, on réitère la génération du deuxième masque M et le masquage de la clé secrète avec le deuxième masque, et on écrase les contenus des premier et deuxième registres 6 et 7 respectivement par les contenus de ces deux registres masqués par le deuxième masque M. [0141] La première unité de traitement 3 peut charger des données A et B dans les premier et deuxième registres 6 et 7, et des données DATA dans le troisième registre 12 tant que la deuxième unité de traitement 8 ne procède pas à au chiffrement de données DATA. [0142] La durée maximale séparant deux occurrences du signal VALID est choisie de sorte qu'elle soit inférieure à la durée d'acquisition d'un dispositif de visualisation optique de telle sorte qu'il ne soit pas possible de déterminer l'état des sorties des premier et deuxième registres avant une opération de chiffrement de la clé secrète par le masque dynamique. [0143] La durée maximale séparant deux occurrences du signal valide est par exemple in- férieure à 1 ms. [0144] De plus, l'élaboration du deuxième masque et le masquage de la clé secrète sont effectués de manière automatique et ne nécessitent pas l'intervention d'une unité de traitement permettant d'optimiser les ressources et la consommation. 12 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] [Revendication 6] REVENDICATIONSProcédé de protection des contenus de registres (6, 7) d'un module (2) d'un circuit intégré, un premier registre (6) contenant un premier masque (B) et un deuxième registre (7) contenant des données masquées (A), le premier masque ct lesdites données masquées formant une clé secrète, le procédé comprenant une génération de manière aléatoire d'un deuxième masque (M), un masquagc de la clé secrète en utilisant le deuxième masque (M), la génération du deuxième masque ct le masquage de la clé secrète étant effectués lorsque la clé secrète n'est pas utilisée pour une opération de chiffrement et lors de la réception d'un signal de validation (VALID), les premier et deuxième registres étant disposés dans le module sécurisé de sorte que les sorties de ces registres ne soient pas optiquement visualisables simultanément. Procédé selon la revendication 1, dans lequel on espace les deux registres d'une distance (DIST) supérieure à la distance permettant de visualiser simultanément les deux registres ainsi que l'état de leurs sorties par un microscope à balayage compte tenu de la résolution dudit microscope à balayage (13). Procédé selon l'une des revendications 1 ou 2, dans lequel le masquage de la clé secrète comprend l'application des premiers opérateurs logiques (0P1, OP2) sur le deuxième masque (M) et sur le contenu de chacun des premier (6) et deuxième (7) registres, et la génération du deuxième masque (M) comprend un tirage aléatoire d'une donnée initiale (C) ayant une taille inférieure à celle du deuxième masque, une scission de la donnée initiale en plusieurs données ayant chacune une taille inférieure à celle de la donnée initiale, et un assemblage des données par un deuxième opérateur logique. Procédé selon la revendication 3, dans lequel la donnée initiale est scindée en une première donnée (E), une deuxième donnée (F) et une troisième (G) donnée ayant chacune une taille inférieure à celle de la donnée initiale, et les première, deuxième et troisième données sont assemblées par le deuxième opérateur logique (100). Procédé selon l'une des revendications 3 et 4, dans lequel les premiers opérateurs logiques et le deuxième opérateur logique comportent des opérateurs OU EXCLUSIF. Procédé selon l'une des revendications 4 et 5 dans sa dépendance à la revendication 4, dans lequel la donnée initiale comprend une donnée de 13 32 bits (C), la première donnée comporte une donnée de 16 bits (E), la deuxième donnée et la troisième donnée (G) comportent des données de 8 bits chacun, et l'opérateur logique comprend un opérateur OU EXCLUSIF (100). [Revendication 7] Procédé selon l'une des revendications précédentes, comprenant une ré- itération, à chaque occurrence du signal de validation, de la génération du deuxième masque (M) et du masquage de la clé secrète, et chaque réitération comprend un écrasement des contenus des premier et deuxième registres (6, 7) respectivement par les contenus précédents de ces deux registres masqués par le deuxième masque (M). [Revendication 8] Procédé selon la revendication 7, dans lequel la durée séparant deux oc- currences du signal de validation (VALID) est choisie inférieure à la durée d'acquisition d'un dispositif de visualisation optique. [Revendication 9] Procédé selon l'une des revendications précédentes, comprenant une gé- nération aléatoire du signal de validation (VALID). [Revendication 10] Procédé selon l'une des revendications précédentes, comprenant une modification des contenus des premier et deuxième registres (6, 7) après chaque opération de chiffrement utilisant ladite clé secrète. [Revendication 11] Procédé selon l'une des revendications précédentes, dans lequel les premier et deuxième registres (6, 7) sont configurés pour stocker des données de 128 bits. [Revendication 12] Circuit intégré (CI) comprenant un module (2) comprenant un premier registre (6) contenant un premier masque (B), un deuxième registre (7) contenant des données masquées (A), le premier masque et lesdites données masquées formant une clé secrète, et des moyens de traitement (9, 10, 11, OP1, OP2) configurés pour générer un deuxième masque (M) et pour masquer la clé secrète avec le deuxième masque lorsque la clé secrète n'est pas utilisée pour une opération de chiffrement et lors de la réception d'un signal de validation (VALID), les premier et deuxième registres étant disposés dans le module sécurisé de sorte que les sorties de ces registres ne soient pas optiquement visualisables simultanément. [Revendication 13] Circuit intégré (CI) selon la revendication 12, dans lequel les deux registres (6, 7) sont séparés d'une distance (DIST) supérieure à la distance permettant de visualiser simultanément les deux registres ainsi que l'état de leurs sorties par un microscope à balayage compte tenu de la résolution dudit microscope à balayage (13). [Revendication 14] Circuit intégré (CI) selon l'une des revendications 12 ou 13, dans lequel les moyens de traitement comportent des moyens (9, 10, 11) de gé- 14 nération configurés pour générer le deuxième masque et des moyens de masquage comprenant des premiers opérateurs logiques (OH, OP2) aptes à masquer le contenu des premier et deuxième registres (6, 7) avec le deuxième masque, les moyens de génération comprenant un générateur d'occurrence (9) apte à générer le signal de validation, un générateur aléatoire (11) apte à générer aléatoirement une donnée initiale ayant une taille inférieure à celle du deuxième masque et un module de traitement (10) apte à scinder la donnée initiale en des données ayant chacune une taille inférieure à celle de la donnée initiale, ledit module de traitement étant apte à assembler les données par un deuxième opérateur logique (100) pour créer ledit deuxième masque (M). [Revendication 15] Circuit intégré (CI) selon la revendication 14, dans lequel le module de traitement (10) est apte à scinder la donnée initiale en une première donnée (E), une deuxième donnée (F) et une troisième (G) donnée ayant une taille inférieure à celle de la donnée initiale, ledit module de traitement étant apte à assembler les première, deuxième et troisième données par le deuxième opérateur logique (100) pour créer ledit deuxième masque (M). [Revendication 16] Circuit intégré (CI) selon l'une des revendications 14 et 15, dans lequel les premiers opérateurs logiques et le deuxième opérateur logique comportent des opérateurs OU EXCLUSIF. [Revendication 17] Circuit intégré (CI) selon l'une des revendications 15 et 16 dans sa dé- pendance à la revendication 15, dans lequel la donnée initiale comprend une donnée de 32 bits (C), la première donnée comprend une donnée de (E) 16 bits, la deuxième donnée et la troisième donnée (G) comportent des données de 8 bits chacun. [Revendication 18] Circuit intégré (CI) selon l'une quelconque des revendications 12 à 17, dans lequel les moyens de traitement (9, 10, 11, OP1, OP2) sont aptes à générer le deuxième masque (M), à masquer la clé secrète et à écraser des contenus des premier et deuxième registres (6, 7) respectivement par les contenus précédents de ces deux registres à nouveau masqués par le deuxième masque à chaque occurrence du signal de validation. [Revendication 19] Circuit intégré (CI) selon l'une quelconque des revendications 12 à 18, dans lequel la durée séparant deux occurrences du signal de validation (VALID) est choisie inférieure à la durée d'acquisition d'un dispositif de visualisation optique. [Revendication 20] Circuit intégré (CI) selon l'une quelconque des revendications 12 à 18 prise en combinaison avec la revendication 14, dans lequel le générateur 15 [Revendication 21] [Revendication 22] [Revendication 23] d'occurrence est apte à générer aléatoirement le signal de validation (VALID). Circuit intégré (CI) selon l'une quelconque des revendications 12 à 20, comprenant en outre des moyens (3) aptes à transmettre la clé secrète aux premier et deuxième registres (6, 7) et aptes à modifier les contenus des premier et deuxième registres (6, 7) après chaque opération de chiffrement utilisant ladite clé secrète. Circuit intégré (CI) selon l'une quelconque des revendications 12 à 21, dans lequel les premier et deuxième registres (6, 7) sont configurés pour stocker des données de 128 bits. Appareil (CP), par exemple une carte à puce, incorporant un circuit intégré selon l'une des revendications 12 à 22.