Brevet FR3155077A1 — publié le 20250509

Procédé de stockage des données critiques La présente description concerne un procédé de stockage de blocs de données critiques (Data200) d'un dispositif électronique (200) dans une mémoire (202) externe audit dispositif électronique (200), comprenant les étapes suivantes : - l'obtention de premiers blocs cryptés de données (EA(Data200)) en cryptant des blocs de données critiques (Data200) à l'aide d'une première clé de chiffrement (2063) ; - l'obtention de deuxièmes blocs cryptés de données (EB(Data200)) par cryptage de blocs de données critiques (Data200) à l'aide d'une deuxième clé de chiffrement (2064) différente de la première clé de chiffrement (2063) ; et - le stockage des premier et deuxième blocs cryptés de données (EA(Data200), EB(Data200)) dans ladite mémoire (202). Figure pour l'abrégé : Fig. 2 Procédé de stockage de données critiques La présente description concerne de façon générale les circuits et dispositifs électroniques, et plus particulièrement la sécurité de données critiques utilisées dans ces circuits et dispositifs. La présente description concerne plus précisément un procédé de stockage de données critiques dans une mémoire externe. Le stockage de données critiques dans un dispositif électronique est une tâche qui fait partie de la gestion générale de la sécurité dudit dispositif électronique. Il serait souhaitable d'améliorer, au moins en partie, certains aspects du procédé connu de stockage de données critiques dans une mémoire externe. Il existe un besoin d'un procédé de stockage de données critiques qui soit plus sûr. Il existe un besoin d'un procédé de stockage de données critiques dans une mémoire externe qui soit plus sûr. Il existe un besoin d'un procédé de stockage de données critiques qui n'ajoute pas de complexité au procédé. Il existe un besoin d'un procédé de stockage de données critiques qui puisse détecter immédiatement une modification des données critiques. Il existe un besoin d'un dispositif électronique capable d'exécuter le procédé décrit précédemment pour stocker des données critiques. Un mode de réalisation permet de pallier à tout ou partie des inconvénients des procédés connus de stockage de données critiques. Un mode de réalisation prévoit un procédé de stockage de blocs de données critiques d'un dispositif électronique dans une mémoire qui est externe audit dispositif électronique, comprenant les étapes suivantes : - l'obtention de premiers blocs cryptés de données en cryptant des blocs de données critiques à l'aide d'une première clé de chiffrement ; - l'obtention de deuxièmes blocs cryptés de données en cryptant des blocs de données critiques à l'aide d'une deuxième clé de chiffrement différente de la première clé de chiffrement ; et - le stockage des premiers et deuxièmes blocs de données cryptés dans ladite mémoire. Un autre mode de réalisation prévoit un dispositif électronique adapté pour stocker des blocs de données critiques dans une mémoire qui est externe audit dispositif électronique en exécutant les étapes suivantes : - l'obtention de premiers blocs de données cryptés en cryptant des blocs de données critiques à l'aide d'une première clé de chiffrement ; - l'obtention de deuxièmes blocs de données cryptés en cryptant des blocs de données critiques à l'aide d'une deuxième clé de chiffrement différente de la première clé de chiffrement ; et -le stockage des premiers et deuxièmes blocs de données cryptés dans ladite mémoire. Selon un mode de réalisation, lesdits premier et deuxième blocs de données cryptés sont mélangés dans ladite mémoire. Selon un mode de réalisation, dans ladite mémoire, chaque donnée composant ledit chaque premier bloc de données crypté est stockée immédiatement avant le deuxième bloc de données crypté correspondant. Selon un mode de réalisation, les premier et deuxième blocs de données cryptés sont obtenus en appliquant le système AES auxdites données critiques. Selon un mode de réalisation, lesdits premiers blocs de données cryptés sont obtenus à l'aide des étapes suivantes : (a) la combinaison de blocs de données critiques avec un premier mot de données ; et (b) le cryptage du résultat de l'étape (a) avec ladite première clé de chiffrement. Selon un mode de réalisation, lesdits deuxièmes blocs de données cryptés sont obtenus à l'aide des étapes suivantes : (c) la combinaison des blocs de données critiques avec lesdits premiers blocs de données cryptés ; et (d) le cryptage du résultat de l'étape (c) à l'aide de la deuxième clé de chiffrement. Selon un mode de réalisation, ladite mémoire est une mémoire DRAM. Selon un mode de réalisation, ledit dispositif électronique comprend un processeur capable de traiter des blocs critiques de données. Un autre mode de réalisation prévoit un procédé de récupération de blocs critiques de données stockés dans une mémoire en utilisant le procédé décrit précédemment. Un autre mode de réalisation prévoit un dispositif capable de récupérer des blocs critiques de données stockés dans une mémoire en utilisant le procédé décrit précédemment. Selon un mode de réalisation, ledit procédé comprend les étapes suivantes : - l'obtention de premier et deuxième blocs de données cryptés de ladite mémoire ; - le décryptage des premiers blocs de données cryptés à l'aide de la première clé de chiffrement ; - le décryptage des deuxièmes blocs de données cryptés à l'aide de la deuxième clé de chiffrement ; et - la comparaison des résultats des deux étapes de décryptage, s'ils sont identiques, les blocs de données critiques peuvent être utilisés. Selon un mode de réalisation, si le résultat des deux étapes de décryptage n'est pas identique, les blocs de données critiques ne peuvent pas être utilisés. Selon un mode de réalisation, l'étape d'obtention des premier et deuxième blocs de données cryptés de ladite mémoire comprend une étape de séparation des premier et le deuxième données cryptées. 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 FIG. 1 représente, très schématiquement et sous forme de blocs, un exemple de dispositif électronique capable d'exécuter le mode de réalisation décrit en relation avec les figures 2 à 4 ; la FIG. 2 représente, très schématiquement et sous forme de blocs, un premier mode de réalisation d'un procédé de stockage de données critiques ; la FIG. 3 représente, sous forme de blocs, une étape du mode de réalisation de la FIG. 2 ; la FIG. 4 représente, très schématiquement et sous forme de blocs, un exemple d'exécution du premier mode de réalisation de la FIG. 2 ; et la FIG. 5 représente, très schématiquement et sous forme de blocs, un deuxième mode de réalisation d'un procédé de stockage de données critiques. De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. Les modes de réalisation décrits ci-après concernent le stockage de données critiques dans la mémoire et le procédé de récupération correspondant. Dans ce qui suit, les données critiques sont des données dont l'accès est limité à une ou plusieurs personnes et/ou dispositifs particuliers. Dans la plupart des cas, lorsqu'un processeur ou un circuit traite des données sensibles, ces données sont stockées dans une mémoire à laquelle ledit processeur ou circuit fait confiance. C'est plus pratique à des fins de sécurité. Une mémoire de confiance est souvent une mémoire qui est montée sur la même puce que le processeur ou le circuit, et avec laquelle une communication sécurisée est possible. En raison de restrictions d'espace dans les dispositifs électroniques, il est courant qu'une mémoire de confiance ne dispose pas d'une capacité de stockage suffisante pour traiter toutes les données critiques nécessaires. Pour ce faire, il est plus pratique d'utiliser une mémoire non fiable pour stocker des données critiques. Une mémoire non fiable, appelée ci-après mémoire externe, est une mémoire avec laquelle une communication sécurisée n'est pas possible. Par conséquent, une mémoire non fiable n'est souvent pas montée sur la même puce que le processeur ou le circuit. Si des données critiques sont stockées dans une mémoire non fiable, un moyen de sécuriser les données critiques doit néanmoins être exécuté. Les modes de réalisation décrits ci-après concernent un procédé sécurisé de stockage de données critiques dans une mémoire non fiable, ainsi que le procédé de récupération correspondante. À cet effet, le procédé comprend une double étape de cryptage avec différentes clés de chiffrement et une étape de mélange des données cryptées. Cela permet d'éviter que les données soient accessibles et/ou modifiées par une personne ou un circuit non autorisé. Ces procédés sont décrits plus en détail dans les figures 2 à 4. La FIG. 1 représente, très schématiquement et sous forme de blocs, un dispositif électronique 100 capable d'exécuter le procédé de stockage de données critiques décrit en relation avec les figures 2 à 4. Le dispositif 100 est un dispositif électronique adapté pour traiter des données, et plus particulièrement pour traiter des données critiques. Le dispositif 100 comprend un processeur 101 (CPU) capable de traiter des données. Selon un exemple, le dispositif 100 peut comprendre plusieurs processeurs, chacun adapté pour traiter différents types de données. Selon un exemple particulier, le dispositif 100 peut comprendre au moins un processeur adapté pour traiter des données critiques. Le dispositif 100 comprend en outre une ou plusieurs mémoires 102 (MEM) dans lesquelles sont stockées des données, par exemple des données critiques. Selon un exemple, le dispositif 100 comprend une pluralité de types de mémoires, telles qu'une ROM, une RAM, une mémoire volatile et/ou une mémoire non volatile. Selon un exemple particulier, le dispositif 100 peut comprendre une ou plusieurs mémoires auxquelles le processeur 101 fait confiance et qui ont un accès sécurisé au processeur 101. Selon un mode de réalisation, le dispositif 100 comprend une ou plusieurs mémoires externes, ou mémoires non fiables, qui n'ont pas d'accès sécurisé au processeur 101. Le procédé de stockage de données critiques décrit en relation avec les figures 2 à 4 concerne le stockage de données critiques par le processeur 101 dans une mémoire externe. Le dispositif 100 comprend en outre un ou plusieurs éléments sécurisés 103 (SE) adaptés pour traiter des données critiques et/ou secrètes. L'élément sécurisé 103 peut comprendre son ou ses propres processeurs, sa ou ses propres mémoires, etc. Selon un exemple, le procédé de stockage de données critiques décrit en relation avec les figures 2 à 4 peut concerner le stockage de données critiques par l'élément sécurisé 103 dans une mémoire externe. Le dispositif 100 comprend en outre et facultativement un ou plusieurs circuits d'entrée/sortie 104 (I/O) permettant au dispositif 100 de transmettre et/ou de recevoir des données et/ou de l'énergie avec un ou plusieurs dispositifs électroniques externes. Le dispositif 100 comprend en outre un ou plusieurs circuits 105 (FCT1) et 106 (FCT2) mettant en œuvre une ou plusieurs fonctionnalités du dispositif 100. Selon un exemple, les circuits 105 et 106 peuvent comprendre des circuits de traitement de données particuliers, tels que des circuits de chiffrement, ou des circuits permettant d'effectuer des mesures, tels que des capteurs. Le dispositif 100 comprend en outre un ou plusieurs bus de communication 107 permettant à tous les circuits du dispositif 100 de communiquer. Dans la FIG. 1 , un seul bus 107 reliant le processeur 101, la ou les mémoires 102, l'élément sécurisé 103 et les circuits 104 à 106 est représenté, mais, en pratique, le dispositif 100 comprend une pluralité de bus de communication reliant ces différents éléments. La FIG. 2 représente, sous forme de blocs, l'exécution, par un dispositif 200, d'un mode de réalisation d'un procédé de stockage de données critiques dans une mémoire. Selon un mode de réalisation, le dispositif 200 comprend un processeur 201 (CPU) du type du processeur 101 décrit en relation avec la FIG. 1 , et une mémoire 202 (External RAM) qui est considérée comme non fiable par le processeur 201. La mémoire 202 est appelée ci-après mémoire externe. Le processeur 201 est capable de traiter des données critiques et doit stocker des données critiques dans la mémoire 202. Le processeur 201 a accès à un bus privé 204 (PRIVATE BUS) assurant une communication sécurisée avec d'autres circuits ou composants du dispositif 200. La mémoire 202 n'a accès qu'à un bus public 205 (Public BUS) pour communiquer avec les autres composants du dispositif 200, et notamment avec le processeur 201. Selon un exemple, la mémoire 202 est une mémoire vive, également appelée RAM, et plus particulièrement une mémoire vive dynamique, également appelée DRAM. Le dispositif 201 comprend en outre une unité de cryptage et de décryptage 206 (Crypt/Decrypt) adaptée pour connecter les deux bus 204 et 205. Plus particulièrement, l'unité 206 est capable d'échanger des données critiques avec le bus privé 204, et d'échanger des données cryptées avec le bus public 205. Selon un mode de réalisation, l'unité 206 comprend deux moteurs de cryptage et de décryptage identiques 2061 et 2062 capables de : - crypter des données critiques reçues en provenance du bus privé 204 ; et - décrypter des données cryptées reçues en provenance du bus public 204. La seule différence entre les moteurs 2061 et 2062 est qu'ils travaillent avec des clés de chiffrement et de déchiffrement différentes 2063 (KeyA) et 2064 (KeyB). Dans la FIG. 2 , le moteur 2061 utilise la clé de chiffrement et de déchiffrement 2063, tandis que le moteur 2062 utilise la clé de chiffrement et de déchiffrement 2064. À cette fin, les moteurs 2061 et 2062 peuvent mettre en œuvre différents types d'algorithmes de cryptage et de décryptage symétriques. Un exemple d'algorithme de cryptage et de décryptage pouvant être utilisé est la norme de chiffrement avancé également appelé AES (de l'anglais "Advanced Encryption Standard"). Cet exemple particulier est décrit en détail en relation avec la FIG. 5 . Le procédé suivant permet de stocker des données critiques du processeur 201 dans la mémoire externe 202. Certaines données critiques du processeur 201 sont considérées ici. Ces données critiques sont divisées en blocs de données critiques Data200 de même taille. Les blocs de données critiques Data200 sont envoyés à l'unité de cryptage et de décryptage 206, par l'intermédiaire du bus privé 204. Ensuite, l'unité 206 utilise les deux moteurs 2061 et 2062 pour crypter chaque bloc de données critiques Data200. Plus particulièrement, le moteur 2061 crypte chaque bloc de données critiques Data200 à l'aide de la clé de chiffrement et de déchiffrement 2063, afin de fournir un premier bloc crypté de données EA(Data200). Dans le même temps, le moteur 2062 crypte chaque bloc de données critiques Data200, en utilisant la clé de chiffrement et de déchiffrement 2064, afin de fournir un deuxième bloc crypté de données EB(Data200). Les premier et deuxième blocs de données cryptés EA(Data200) et EB(Data200) sont tous deux envoyés à la mémoire 202 pour y être stockés, par l'intermédiaire du bus public 205. Selon un mode de réalisation préféré, les premier et deuxième blocs cryptés de données EA(Data200) et EB(Data200) sont mélangés dans la mémoire 202. Une façon préférée de mélanger les premiers et deuxièmes blocs cryptés de données EA(Data200) et EB(Data200) dans la mémoire 202 est décrite en détail en relation avec la FIG. 3 . Ainsi, un procédé de stockage des blocs de données critiques Data200 dans la mémoire externe 202 comprend les étapes suivantes : - le cryptage de chaque bloc de données critiques Data200 avec une première clé de chiffrement et de déchiffrement 2063 pour obtenir un premier bloc crypté de données EA(Data200) ; - le cryptage de chaque bloc de données critiques Data200 avec une deuxième clé de chiffrement et de déchiffrement 2064 pour obtenir un deuxième bloc crypté de données EB(Data200) ; et - le stockage de chaque premier et deuxième bloc crypté de données EA(Data200) et EB(Data200) dans la mémoire externe 202, et, par exemple, mélanger lesdits premier et deuxième blocs cryptés de données EA(Data200) et EB(Data200). Une fois que les premier et deuxième blocs cryptés de données EA(Data200) et EB(Data200) sont stockés dans la mémoire, un procédé pour récupérer les données critiques est le suivant. Les deux premiers et deuxièmes blocs cryptés de données EA(Data200) et EB(Data200) sont récupérés à partir de la mémoire externe 202. Les premier et deuxième blocs de données cryptés EA(Data200) et EB(Data200) sont envoyés à l'unité de cryptage et de décryptage 206, par l'intermédiaire du bus public 205. Chaque bloc crypté de données est décrypté par un moteur 2061 ou 2062. Plus particulièrement, le premier bloc de données cryptées EA(Data200) est décrypté à l'aide des moteurs 2061 et de la clé 2063, la clé 2063 ayant été utilisée pour obtenir le bloc crypté de données EA(Data200). Le deuxième bloc crypté de données EB(Data200) est décrypté à l'aide des moteurs 2062 et de la clé 2064, la clé 2064 ayant été utilisée pour obtenir les blocs cryptés de données EB(Data200). Les deux blocs de données décryptés sont ensuite comparés. S'ils sont identiques, les bons blocs de données critiques Data200 ont été récupérés et peuvent être envoyés au processeur 201, par l'intermédiaire du bus privé 204. S'ils ne sont pas identiques, les bons blocs de données critiques Data200 n'ont pas été récupérés, car ils ont été corrompus. Le processeur ne peut pas utiliser les blocs de données décryptés. Ainsi, un procédé de récupération des blocs de données critiques Data200 qui ont été stockés dans la mémoire externe 202 à l'aide du procédé précédent comprend les étapes suivantes : - l'obtention des premier et deuxième blocs cryptés de données EA(Data200) et EB(Data200) de la mémoire externe 202 ; - le décryptage des premiers blocs cryptés de données EA(Data200) à l'aide de la première clé de chiffrement 2063 ; - le décryptage des deuxièmes blocs cryptés de données EB(Data200) à l'aide de la deuxième clé de chiffrement 2064 ; et - la comparaison des résultats des deux étapes de décryptage, s'ils sont identiques, les blocs de données critiques peuvent être utilisés par le processeur. L'un des avantages de ces procédés est de permettre à un processeur de stocker des données critiques dans une mémoire non fiable. La FIG. 3 représente, sous forme de bloc, une étape de mélange des données cryptées de l'exemple de la FIG. 2 . La FIG. 3 représente certains blocs critiques de données Data300 tels qu'ils sont avant d'être stockés dans une mémoire externe, c'est-à-dire dans un processeur 301 (CPU). La FIG. 3 représente également les premier et deuxième blocs cryptés de données EA(Data300) et EB(Data300) résultant du procédé de stockage décrit en relation avec la FIG. 2 . Les premier et deuxième blocs cryptés de données EA(Data300) et EB(Data300) sont tous deux stockés dans une mémoire externe 302 (External RAM). Selon un mode de réalisation, les premier et deuxième blocs cryptés de données EA(Data300) et EB(Data300) sont mélangés dans la mémoire 302. En d'autres termes, les deux versions complètes des données cryptées ne sont pas écrites en un seul bloc dans la mémoire 302, mais sont séparées en plusieurs blocs de données écrits dans différentes parties de la mémoire. Selon un mode de réalisation préféré, chaque premier bloc crypté de données EA(Data300) est stocké entre deux deuxièmes blocs cryptés de données EB(Data300). De même, chaque deuxième bloc crypté de données EB(Data300) est stocké entre deux premiers blocs cryptés de données EA(Data300). En d'autres termes, chaque premier bloc crypté de données EA(Data300) est stocké immédiatement avant le deuxième bloc crypté correspondant de données EB(Data300). De même, chaque deuxième bloc crypté de données EB(Data300) est stocké immédiatement avant les premiers blocs cryptés correspondants de données EA(Data300). Ainsi, si quelqu'un veut corrompre les blocs critiques de données Data300 en accédant à la mémoire 302, il est très probable que deux parties différentes des premier et deuxième blocs de données cryptées soient corrompues. Il est alors extrêmement improbable que les deux blocs de données corrompus se décryptent pour donner des résultats identiques. Il existe un concept de "diffusion" dans les algorithmes de cryptage, selon lequel si un seul bit des données cryptées est modifié, cela concernera tous les bits du bloc décrypté (et pas seulement les bits proches) et en modifiera environ la moitié, en moyenne. La FIG. 4 représente, sous forme de blocs, un exemple d'exécution du mode de réalisation des procédés décrits en relation avec la FIG. 2 . Plus particulièrement, la FIG. 4 représente un procédé 340 de stockage de données critiques dans une mémoire selon le mode de réalisation décrit en relation avec la FIG. 2 , et un procédé 350 de récupération de ces données critiques dans la mémoire selon les modes de réalisation décrits en relation avec la FIG. 2 . Le procédé 340 comprend donc les étapes suivantes. Lors d'une première étape 341 (Data200), le processeur 201 de la FIG. 2 souhaite stocker certains blocs de données critiques Data200 dans la mémoire externe 202. Lors d'une étape 342 (Copy), après l'étape 341, le processeur 201 crée une copie des blocs de données critiques Data200 et envoie les deux copies à l'unité de cryptage et de décryptage 206 par l'intermédiaire du bus privé 204. Lors d'une étape 343 (Encrypt KeyA), après l'étape 342, le moteur 2061 de l'unité de cryptage et de décryptage 206 crypte la première copie des blocs de données critiques Data200 à l'aide de la première clé de chiffrement et de déchiffrement 2063. Des premières données cryptées EA(Data200) sont générées. Lors d'une étape 344 (Encrypt KeyB), après l'étape 342, le moteur 2062 de l'unité de cryptage et de décryptage 206 crypte la deuxième copie des blocs de données critiques Data200 à l'aide de la deuxième clé de chiffrement et de déchiffrement 2064. Des deuxièmes données cryptées EB(Data200) sont générées. Lors d'une étape 345 (EAB(Data200)), après les étapes 343 et 344, les premier et deuxième blocs cryptés de données EA(Data200) et EB(Data200) sont tous deux envoyés à la mémoire 202 pour y être stockés, par l'intermédiaire du bus public 205. Selon les modes de réalisation préférés, les premier et deuxième blocs cryptés de données EA(Data200) et EB(Data200) sont mélangés dans la mémoire 202, par exemple en utilisant le procédé de mélange décrite en détail en relation avec la FIG. 3 . Le procédé 350 comprend les étapes suivantes. Lors d'une première étape 351 (Retrieve), les données EAB(Data200) sont récupérées sous forme de premier et deuxième blocs cryptés de données EA(Data200) et EB(Data200) dans la mémoire 202. Lors d'une étape 352 (Decrypt KeyA), après l'étape 351, chaque premier bloc crypté de données EA (Data200) est ensuite décrypté à l'aide de la clé de chiffrement et de déchiffrement 2063 afin d'obtenir une première copie d'un bloc de données Data200. Lors d'une étape 353 (Decrypt KeyB), après l'étape 351, chaque deuxième bloc crypté de données EB(Data200) est ensuite décrypté à l'aide de la clé de déchiffrement et de déchiffrement 2064 pour obtenir une deuxième copie d'un bloc de données Data200. Lors d'une étape 354 (Comp), après les étapes 352 et 352, les deux copies de chaque bloc de données critiques Data200 sont comparées. Si la comparaison est réussi (sortie Y du bloc 354), l'étape suivante est l'étape 355 (Use). Dans le cas contraire (sortie N du bloc 354), l'étape suivante est l'étape 356 (Error). Lors d'une étape 355 (Use), chaque copie des blocs de données critiques Data200 est identique, ce qui signifie que les données EAB(Data200) n'ont pas été corrompues lors de leur stockage dans la mémoire 202. Le processeur 201 peut utiliser les données critiques Data200 en toute sécurité. Lors d'une étape 356 (Error), au moins une copie d'un bloc de données critiques Data200 n'est pas identique, ce qui signifie que les données EAB(Data200) ont été corrompues lors de leur stockage dans la mémoire 202. Selon un exemple, un message d'erreur peut être envoyé au processeur 201. Selon un autre exemple, les deux copies des blocs de données critiques Data200 peuvent être envoyées au processeur pour analyse. La FIG. 5 représente, sous forme de blocs, l'exécution d'une variante du mode de réalisation des procédés décrits en relation avec la FIG. 2 . Plus particulièrement, la FIG. 5 représente l'exécution d'un procédé 401 de stockage de données critiques dans une mémoire externe, et d'un procédé 402 de récupération desdites données. Selon un mode de réalisation, les procédés 401 et 402 utilisent tous deux l'algorithme AES pour crypter et décrypter les données. Plus particulièrement, les procédés 401 et 402 utilisent l'enchaînement de plusieurs opérations AES, généralement appelé AES-CBC pour l'anglais AES-Cipher-Block-Chaining, ou enchaînement de cryptage par blocs par AES. Le procédé 401 de stockage de données critiques dans une mémoire externe est la suivante. Les données critiques sont envoyées par un processeur du type du processeur 201 de la FIG. 2 à une unité de cryptage et de décryptage de l'unité de cryptage et de décryptage 206 de la FIG. 2 . L'unité crée deux copies de blocs des données critiques, appelées ci-après Data400-1 (Plaintext Block1) et Data400-2 (Plaintext Block2). La première copie Data400-1 est combinée avec un premier mot de données Seed400-1 à l'aide d'une opération logique OU EXCLUSIF 403, également appelée opération XOR, puis une opération de cryptage 404 est utilisée, avec une clé de chiffrement KeyA4, pour obtenir une première copie cryptée Data EA4(Data400-1) (Ciphertext Black 1A). Selon un exemple, l'opération de cryptage 404 est une mise en œuvre d'une opération de cryptage AES. Ensuite, la deuxième copie Data400-2 est combinée avec la première copie cryptée Data EA4(Data400-1), à l'aide de l'opération XOR 403, puis l'opération de cryptage 404 est utilisée, avec la clé de chiffrement KeyA4, pour obtenir une deuxième copie cryptée Data EA4(Data400-2) (Ciphertext Black 2A). On obtient ainsi deux données cryptées différentes. Parallèlement, la deuxième copie Data400-2 est également combinée avec un deuxième mot de données Seed400-2, en utilisant l'opération XOR 403, puis l'opération de cryptage 404 est utilisée, avec une autre clé de chiffrement KeyB4, pour obtenir une deuxième copie cryptée Data EB4(Data400-2) (Ciphertext Black 1B). Ensuite, la première copie Data400-1 est également combinée avec la deuxième copie cryptée Data EB4(Data400-2) à l'aide de l'opération XOR 403, et l'opération de cryptage 404 est utilisée, avec la clé de chiffrement KeyB4, pour obtenir une première copie cryptée Data EB4(Data400-1) (Ciphertext Black 2B). On obtient ainsi à nouveau deux blocs de données cryptés différents. Tous les blocs cryptés de données EA4(Data400-1), EA4(Data400-2), EB4(Data400-1) et EB4(Data400-2) peuvent être stockés dans la mémoire. Selon une variante préférée, toutes les données cryptées EA4(Data400-1), EA4(Data400-2), EB4(Data400-1) et EB4(Data400-2) peuvent être mélangées et stockées dans la mémoire, comme décrit en relation avec la FIG. 3 . Le procédé 402 de récupération des blocs de données critiques est le suivant. Tous les blocs cryptés de données EA4(Data400-1), EA4(Data400-2), EB4(Data400-1) et EB4(Data400-2) sont récupérés dans la mémoire. Chaque bloc crypté de données EA4(Data400-1) est décrypté à l'aide d'une opération de décryptage 405 et de la clé KeyA4, puis séparé du mot de données Seed400-1 à l'aide de l'opération XOR 403. Selon un exemple, l'opération de cryptage 404 est une implémentation d'une opération de décryptage AES. Chaque bloc crypté de données EA4(Data400-2) est décrypté à l'aide de l'opération de décryptage 405, puis séparé du bloc crypté de données EA4(Data400-1) à l'aide de l'opération XOR 403. La copie Data400-1 doit ensuite être récupérée en tant que résultat des deux opérations. De même, chaque bloc crypté de données EB4(Data400-2) est décrypté à l'aide d'une opération de décryptage 405 et de la clé KeyB4, puis séparé du mot de données Seed400-2 à l'aide de l'opération XOR 403. Chaque bloc crypté de données EB4(Data400-1) est décrypté à l'aide de l'opération de décryptage 405, puis séparé du bloc crypté de données EB4(Data400-2) à l'aide de l'opération XOR 403. La copie Data400-2 doit ensuite être récupérée en tant que résultat des deux opérations. Des étapes de comparaison de chaque bloc de données sont ensuite effectuées pour déterminer si les blocs de données décryptés sont tous identiques. L'avantage de l'utilisation de l'algorithme AES-CBC est de garantir qu'un attaquant ne peut pas simplement chercher deux blocs cryptés qui se décryptent en des valeurs identiques au moyen des deux clés. Il doit rechercher deux paires de blocs cryptés qui se déchiffrent en deux paires de valeurs identiques. Cela permet de doubler la résistance aux attaques par force brute. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Procédé de stockage (401) de blocs de données critiques (Data200 ; Data300 ; Data400-1, Data400-2) d'un dispositif électronique (100 ; 200) dans une mémoire (103 ; 202 ; 302) externe audit dispositif électronique (100 ; 200), comprenant les étapes suivantes : - l'obtention de premiers blocs cryptés de données (EA(Data200) ; EA(Data300) ; EA4(Data400-1), EA4(Data400-2)) en cryptant des blocs de données critiques (Data200 ; Data300 ; Data400-1, Data400-2) à l'aide d'une première clé de chiffrement (2063 ; KeyA4) ; - l'obtention de deuxièmes blocs cryptés de données (EB(Data200) ; EB(Data300) ; EB4(Data400-1), EB4(Data400-2)) par cryptage de blocs de données critiques (Data200 ; Data300 ; Data400-1, Data400-2) à l'aide d'une deuxième clé de chiffrement (2064 ; KeyB4) différente de la première clé de chiffrement (2063 ; KeyA4) ; et - le stockage des premier et deuxième blocs cryptés de données (EA(Data200), EB(Data200) ; EA(Data300), EB(Data300) ; EA4(Data400-1), EB4(Data400-2), EA4(Data400-1), EB4(Data400-2)) dans ladite mémoire (103 ; 202 ; 302). Procédé selon la revendication 1, dans lequel lesdits premier et deuxième blocs cryptés de données (EA(Data200, EB(Data200) ; EA(Data300), EB(Data300) ; EA4(Data400-1), EA4(Data400-2), EB4(Data400-1), EB4(Data400-2)) sont mélangés dans ladite mémoire (103 ; 202 ; 302). Procédé selon les revendications 1 ou 2, dans lequel, dans ladite mémoire (103 ; 202 ; 302), chaque donnée composant ledit chaque premier bloc de données cryptées (EA(Data200) ; EA(Data300) ; EA4(Data400-1), EA4(Data400-2)) est stockée immédiatement avant le deuxième bloc crypté de données correspondant (EA(Data200) ; EA(Data300) ; EA4(Data400-1), EA4(Data400-2)). Procédé selon l'une quelconque des revendications 1 à 3, dans lequel les premier et deuxième blocs cryptés de données sont obtenus en appliquant le procédé AES aux données critiques (Data200 ; Data300 ; Data400-1, Data400-2). Procédé selon la revendication 4, dans lequel lesdits premiers blocs cryptés de données (EA4(Data400-1), EB4(Data400-2)) sont obtenus à l'aide des étapes suivantes : (a) la combinaison de blocs de données critiques (Data400-1, Data400-2) avec un premier mot de données (Seed400-1, Seed400-2) ; et (b) le cryptage du résultat de l'étape (a) avec ladite première clé de chiffrement (KeyA4, KeyB4). Procédé selon la revendication 4 ou 5, dans lequel lesdits deuxièmes blocs cryptés de données (EA4(Data400-2), EB4(Data400-1)) sont obtenus à l'aide des étapes suivantes : (c) la combinaison de blocs de données critiques (Data400-2, Data400-1) avec lesdits premiers blocs cryptés de données (EA4(Data400-1), EB4(Data400-2)) ; et (d) le cryptage du résultat de l'étape (c) avec ladite deuxième clé de chiffrement (KeyA4, KeyB4). Procédé selon l'une quelconque des revendications 1 à 6, dans lequel ladite mémoire (103 ; 202 ; 302) est une mémoire DRAM (103 ; 202 ; 302). Procédé selon l'une quelconque des revendications 1 à 7, dans lequel ledit dispositif électronique (100 ; 200) comprend un processeur capable de traiter des blocs de données critiques (Data200 ; Data300 ; Data400-1, Data400-2). Procédé de récupération de blocs critiques de données stockées dans une mémoire (103 ; 202 ; 302) en utilisant le procédé selon l'une quelconque des revendications 1 à 8. Procédé selon la revendication 9, comprenant les étapes suivantes : - l'obtention de premier et deuxième blocs cryptés de données (EA(Data200), EB(Data200) ; EA(Data300), EB(Data300) ; EA4(Data400-1), EB4(Data400-2), EA4(Data400-1), EB4(Data400-2)) dans ladite mémoire (103 ; 202 ; 302) ; - le décryptage des premiers blocs cryptés de données (EA(Data200) ; EA(Data300) ; EA4(Data400-1), EA4(Data400-2)) à l'aide de la première clé de chiffrement (2063 ; KeyA4) ; - le décryptage des deuxièmes blocs cryptés de données (EB(Data200) ; EB(Data300) ; EB4(Data400-1), EB4(Data400-2)) en utilisant ladite deuxième clé de chiffrement (2064 ; KeyB4) ; et - la comparaison des résultats des deux étapes de décryptage, s'ils sont identiques, les blocs de données critiques (Data200 ; Data300 ; Data400-1, Data400-2) peuvent être utilisés. Procédé selon la revendication 9 ou 10, dans lequel, si le résultat des deux étapes de décryptage n'est pas identique, les blocs de données critiques (Data200 ; Data300 ; Data400-1, Data400-2) ne peuvent pas être utilisés. Procédé selon l'une quelconque des revendications 9 à 11, dans lequel l'étape d'obtention des premier et deuxième blocs cryptés de données (EA(Data200), EB(Data200) ; EA(Data300), EB(Data300) ; EA4(Data400-1), EB4(Data400-2), EA4(Data400-1), EB4(Data400-2)) à partir de ladite mémoire (103 ; 202 ; 302) comprend une étape de séparation des premier et deuxième blocs cryptés de données. Dispositif électronique (100 ; 200) adapté pour stocker des blocs de données critiques (Data200 ; Data300 ; Data400-1, Data400-2) dans une mémoire (103 ; 202 ; 302) qui est externe audit dispositif électronique (100 ; 200) en exécutant les étapes suivantes : - l'obtention de premiers blocs cryptés de données (EA(Data200) ; EA(Data300) ; EA4(Data400-1), EA4(Data400-2)) en cryptant les blocs de données critiques (Data200 ; Data300 ; Data400-1, Data400-2) à l'aide d'une première clé de chiffrement (2063 ; KeyA4) ; - l'obtention de deuxièmes blocs cryptés de données (EB(Data200) ; EB(Data300) ; EB4(Data400-1), EB4(Data400-2)) par cryptage de blocs de données critiques (Data200 ; Data300 ; Data400-1, Data400-2) à l'aide d'une deuxième clé de chiffrement (2064 ; KeyB4) différente de la première clé de chiffrement (2063 ; KeyA4) ; et - le stockage des premier et deuxième blocs cryptés de données (EA(Data200), EB(Data200) ; EA(Data300), EB(Data300) ; EA4(Data400-1), EB4(Data400-2), EA4(Data400-1), EB4(Data400-2)) dans ladite mémoire (103 ; 202 ; 302). Dispositif capable de récupérer des blocs critiques de données stockées dans une mémoire (103 ; 202 ; 302) en utilisant le procédé selon l'une quelconque des revendications 1 à 8.