Brevet FR2953976A1 — publié le 20110617

La présente invention concerne le domaine de la sécurité des systèmes d'information et a plus particulièrement pour objet un procédé d'effacement et de lutte anti-rémanence de mémoire à semi-conducteur non volatile destinés à réduire les risques de compromission de données confidentielles. Le développement des technologies numériques et des réseaux de communication a renforcé les risques relatifs à la sécurité des informations. La vulnérabilité des systèmes électroniques numériques de stockage de cette information est dorénavant un thème préoccupant pour toute application nécessitant la protection d'un savoir-faire (perte de compétence ou de marché industriel) ou d'un secret (bancaire, identité, télécommunication, internet, militaire... ). Compte tenu de ces risques, il est nécessaire de disposer de procédés techniques adaptés au contrôle du blanchissement (« blanking» ou zéroisation ), c'est-à-dire de l'effacement des données sensibles stockées physiquement dans un support mémoire. Ce problème apparaît de manière récurrente au niveau des systèmes d'armes et des équipements militaires dans un contexte de SSI (Sécurité des Systèmes d'Information) d'usage militaire. En effet, les besoins de maintenance peuvent nécessiter un retour chez les industriels ou chez des sous-traitants. Dans cette optique, un processus de déclassification compatible de la réglementation en vigueur est requis. Actuellement, cette réglementation passe par la destruction des dispositifs à mémoire ayant contenu des données ou informations classifiées. De ces dispositions préventives en découlent des conséquences économiques fortes sur la logistique et des incidences probables sur la disponibilité d'un équipement en service tout au long de sa durée de vie. Pour éviter ces destructions, on connait des dispositifs tels que figurant par exemple dans les brevets US2005286314, 2005276119ou US2006056240 qui sont associés à des mémoires volatiles lors de la fabrication des barrettes de mémoires et qui permettent d'effacer des mémoires non-volatiles et qui sont basés sur une mise en oeuvre des caractéristiques électriques de charges et de décharges de transistors à grille flottante. Ces dispositifs correspondent à des intégrations et/ou des constructions physiques de cellules mémoires. Bien évidemment de tels dispositif ne peuvent être prévus que lors de la fabrication des mémoires et ne peuvent pas s'appliquer à des mémoires existantes. Pour résoudre cet inconvénient, il est connu d'utiliser des procédés d'effacement de mémoires indépendantes de la technologie de construction du point mémoire. A ce titre, on connait la réécriture qui permet de supprimer ou d'effacer l'information sur un support en écrivant des bits de données « 1 » et (ou) « 0 » dans toutes les zones de stockage du support, remplaçant ainsi tous les bits significatifs d'information existants. L'efficacité de cette méthode est liée au nombre de cycles de réécriture notamment pour annuler le phénomène d'accumulation de charges lié à la rémanence des données, ainsi qu'à la compétence et aux connaissances de la 10 personne qui exécute le processus, et, le cas échéant, aux fonctions de vérification du logiciel de réécriture qui aident à s'assurer que la réécriture s'effectue sur tout l'espace de stockage accessible du support. Dans ce domaine on connaît un procédé connu sous le nom de triple réécriture et qui consiste à effectuer trois passages du logiciel de réécriture. La première 15 passe doit écrire des uns (1) ou des zéros (0) binaires sur tout le support, la deuxième, des caractères complémentaires (ou opposés) à ceux de la première passe, et la troisième, un schéma pseudo-aléatoire que l'opérateur est en mesure de lire pour vérifier les résultats. Une telle méthode n'est pas complètement fiable du point de vue « test » car il 20 est nécessaire d'accéder de manière déterministe à toutes les locations mémoire et du point de vue de la rémanence des données compte tenu des principes d'écriture et de lecture pseudo-aléatoires mis en oeuvre. Le but de l'invention est de résoudre les inconvénients de l'état de la technique en proposant un procédé d'effacement d'un plan mémoire ne nécessitant ni un 25 dispositif particulier installé lors de la fabrication du plan mémoire ni l'intervention d'un opérateur et qui est fiable à 100%. En effet, un procédé selon l'invention permet une prise de décision en cas de détection d'une défaillance lors du test pouvant aller jusqu'à la destruction du composant. La solution apportée est un procédé d'effacement d'un plan mémoire comportant 30 M bits d'adresses Ai et N bits par mot définissant ainsi 2M*N points mémoire, mis en oeuvre par au moins un microprocesseur connecté à ce plan mémoire, caractérisé en ce qu'il comporte : une étape de commande par le microprocesseur de l'écriture à chacune desdites adresses Ai d'un mot Mi de NI bit avec 1 Selon une caractéristique additionnelle, M1=0 ou M1=2" . Selon une autre caractéristique, un procédé selon l'invention comporte une étape de calcul du rapport R=2M/2" 10 Selon une caractéristique additionnelle, un procédé selon l'invention comporte R étapes consistant en une commande par le microprocesseur de l'écriture dans 2N adresses successives Al... Ai ...A2N des mots respectifs Ml...Mi...M2N avec, pour chaque Mi, Mi est égal à incrémenté ou décrémenté de 1 ainsi qu'une étape de commande par le microprocesseur de l'écriture dans lesdites 2" 15 adresses successives Al ... Ai ...A2N des mots respectifs M 1...Mi...M2M M1...Mi...M2M étant les complémentaires respectifs de Ml...Mi...M2N . Selon une caractéristique additionnelle, un procédé selon l'invention comporte : 20 au moins une étape de commande par le microprocesseur de l'écriture dans 2" adresses successives Al... Ai ...A2N des mots de N bits respectifs MI...Mi...M2N avec, pour chaque Mi, Mi égal à M;_1 incrémenté ou décrémenté de 1, au moins une étape de commande par le microprocesseur de la lecture à 25 chacune desdites adresses successives Al... Ai ...A2N du mot M'1...M'i...M'2N de N bits présent en mémoire, une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2N des mots de N bits respectifs M1 ...Mi...M2N commandés en écriture avec les mots M'1...M'i...M'2N lus 30 une étape d'enregistrement ou de signalisation de toute divergence entre les mots Mi et Mi', au moins une étape de commande par le microprocesseur de l'écriture dans 2" adresses successives Al... Ai ...A2N des mots de N bits respectifs M1...Mi...M2M M1...Mi...M2M , M1...Mi...M2M étant les complémentaires respectifs de Ml...Mi...M2N, au moins une étape de commande par le microprocesseur de la lecture à chacune desdites adresses successives Al... Ai ...A2N des mots M 1'...Mi'...M2M' de N bits présent en mémoire, une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2N des mots de N bits respectifs M 1...Mi...M2M commandés en écriture avec les mots M l'...Mi'...M2M' lus, une étape d'enregistrement ou de signalisation de toute divergence entre les mots .Mi et .Mi ' Selon une caractéristique additionnelle, un procédé selon l'invention comporte une étape préalable de réinitialisation à 0 du plan complet et, préférentiellement, une étape ultérieure de réinitialisation à 1 par page avant les étapes d'écriture des mots Mi de N bits. Selon une caractéristique préférentielle, un procédé selon l'invention comporte une étape préalable de commande par le microprocesseur de la lecture à chacune desdites adresses Ai des mots MOi qu'elles contiennent et de l'écriture à chacune desdites adresses Ai d'un mot Moi complémentaire de MOi. Lorsque le plan mémoire est constitué par des transistors EEPROM ou FlashEPROM, un procédé selon l'invention peut en outre comporter une étape ultérieure d'application d'un champ électrique entre la grille et la source du transistor de chaque point mémoire. L'invention concerne aussi l'application d'un procédé selon l'invention à l'effacement de plan mémoire RAM, EEPROM ou FlashEPROM La figure 1 montre un exemple des moyens mis en oeuvre pour réaliser l'invention Un plan mémoire 2 est relié par au moins un bus à une interface 4 qui est elle-même connectée à un microordinateur 3. Dans cet exemple de réalisation le microordinateur 3 est relié à l'interface par une liaison de type RS232 et l'interface est donc une interface RS232/bus. La figure 2 présente un organigramme d'un procédé selon un mode de réalisation particulier de l'invention. Soit un plan mémoire comportant N lignes d'adresses de mots comportant chacun M bits. Dans ce mode de réalisation particulier, le procédé selon l'invention comporte les 10 étapes successives suivantes une étape de commande par le microprocesseur de la lecture à chacune desdites adresses Ai des mots MOi qu'elles contiennent, une étape de commande par le microprocesseur de l'écriture à chacune desdites adresses Ai d'un mot N7o i complémentaire de MOi, 15 Une étape de réinitialisation des points mémoire par écriture de zéro dans chaque point mémoire au moins une étape de commande par le microprocesseur de l'écriture dans 2" adresses successives Al ... Ai ...A2N des mots de N bits respectifs Ml...Mi...M2N avec, pour chaque Mi, Mi égal à M;_1 incrémenté 20 ou décrémenté de 1, au moins une étape de commande par le microprocesseur de la lecture à chacune desdites adresses successives Al... Ai ...A2N du mot M'1...M'i...M'2N de N bits présent en mémoire, une étape de comparaison par le microprocesseur et à chacune des 25 adresses successives Al... Ai ...A2N des mots de N bits respectifs Ml...Mi...M2N commandés en écriture avec les mots M'1...M'i...M'2N lus une étape d'enregistrement ou de signalisation de toute divergence entre les mots Mi et Mi', au moins une étape de commande par le microprocesseur de l'écriture 30 dans 2" adresses successives Al... Ai ...A2N des mots de N bits respectifs M 1...Mi...M2M , chaque Mi étant le complémentaire de Mi. au moins une étape de commande par le microprocesseur de la lecture à chacune desdites adresses successives Al... Ai ...A2N des mots M"1...M"i...M"2N de N bit présent en mémoire, une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2N des mots de N bits respectifs M 1...Mi...M2M commandés en écriture avec les mots M"1...M"i...M"2N lus une étape d'enregistrement ou de signalisation de toute divergence entre les mots .Mi et Mi" Une étape de réinitialisation des points mémoire En cas de divergence entre la valeur commandée en écriture et celle lue, le microcontrôleur commande l'affichage sur l'écran de l'ordinateur d'un message d'erreur indiquant notamment l'adresse du mot correspondant et la valeur lue de ce mot. Dans le cas d'une mémoire composée de N lignes d'adresses et de M lignes de 15 données, la profondeur du plan, c'est-à-dire le nombre de cellules mémoire est égal à 2" x 2M bits. L'algorithmie teste le plan mémoire à l'aide de séquences d'écriture/lecture par page comme montré sur la figure 3. Chaque page est découpée en blocs dont la taille correspond au nombre de 20 combinaisons binaires du mot de données soit en l'occurrence 2M combinaisons. Le nombre de blocs par page est fixé par l'algorithme. Il est composé au total de 2M * 2M mots. Les valeurs des mots sont calculées par comptage, par exemple par incrément de 1, et sont uniques dans le bloc. La valeur initiale de chaque bloc est égale à la valeur du bloc précédent augmentée de 1 modulo 2M . 25 Soit k le nombre de pages à tester, si le nombre total d'adresses 2" est inférieur ou égal à 22M , le nombre total de combinaisons de mots, le test ne comprend qu'une page (k=1). Dans l'autre cas, le nombre de pages à tester k est fonction de M et N et est égal au rapport 2"/22M La mise de cette étape du procédé se décompose en plusieurs étapes comme 30 montré sur la figure 4. Après avoir, pour chaque adresse du plan mémoire lu les mots MOi du plan mémoire et avoir commandé l'écriture du mot complémentaire, une phase d'initialisation est commandée, qui consiste à initialiser toutes les données du plan mémoire au niveau logique « 0 » ou « 1 » (reset ou set). On écrit ensuite une première page de mots de données calculés par un algorithme de comptage. Pour cela, le plan mémoire est décomposé en bloc et en page et pour la première adresse A1du bloc le microprocesseur commande l'écriture de la valeur M1=0 tandis que pour les adresses suivantes A2, A3....A2M, il incrémente cette valeur de 1 dé sorte que M;= + 1. C'est à ce titre que l'on parle d'algorithme de comptage. Puis, on effectue le microprocesseur commande la lecture de tout le plan mémoire en vérifiant la cohérence du contenu des locations lues avec celles attendues par comparaison. Le microprocesseur commande ensuite la réinitialisation de tout le plan mémoire à l'état logique « 0 » On réitère ces opérations en appliquant un contenu calculé par l'algorithme de comptage inversé De sorte à ce que chaque mot commandé en écriture dans chacune des mémoires Ai soit le complémentaire de celui Mi commandé dans l'étape précédente. La mise en oeuvre décrite ci-dessus peut être optimisée en réalisant deux opérations d'écriture / lecture. Une étape complémentaire peut être mise en oeuvre dans le cas où le plan mémoire est constitué par des transistors EEPROM ou FlashEPROM. Cette étape est elle aussi indépendante des contraintes technologiques de construction de la cellule mémoire élémentaire. Elle consiste à moyenner électriquement les traces résiduelles des cycles de charge et décharge des transistors à grille flottante. Le stockage de données est assuré par des micro-structures de type FlashEPROM ou EEPROM. Ces dernières sont caractérisées par leur capacité à conserver des données hors alimentation. Elles appartiennent à la famille des mémoires dites non volatiles (NVM Non Volatile Memory). La méthode de stockage est réalisée à l'aide de transistors à grille flottante qui jouent le rôle d'un accumulateur de micro-charges (électrons). La quantité de charges piégées par effet tunnel ou par injection dans la grille flottante modifie alors les caractéristiques du transistor. Ce dernier est donc soit passant, soit bloqué en fonction du quantum d'électrons piégés dans la grille. En appliquant un champ électrique entre la grille et la source du transistor, on évacue les charges stockées dans la grille (de l'ordre de quelques milliers d'électrons). La programmation d'une cellule mémoire correspond donc à des cycles de charge et décharge d'une grille flottante qui agit sur la tension de seuil du transistor. L'état passant ou bloqué du transistor est interprété par un niveau logique « 1 »ou «0 ». Dans un transistor EEPROM, comme montré sur la figure 5 qui montre les tensions de seuil d'une cellule EEPROM, la tension de seuil VT est caractérisée par la quantité de charges positives ou négatives accumulées dans la grille flottante correspondant à 3 états de la mémoire: «Programmé» (extraction d'électrons de la grille flottante par effet tunnel) « Vierge » (état initial : pas de charge) «Effacé» (injection d'électrons par effet tunnel) Lors d'une opération de lecture de la cellule mémoire, on applique sur la grille de contrôle de la cellule une tension VGS=O V (plus généralement VT prog VT prog) correspondant à un état logique« 0 ». Si la cellule est effacée, le transistor est dans l'état bloqué (VGS Dans le cas d'une mémoire M x N bits (N : largeur du mot, M : profondeur totale de la mémoire) Taille du bloc B= 2" Taille de la page P= 2"*B Le nombre d'itérations de séquences écriture/lecture des algorithmes l=M/P Avec un plan mémoire 512 K x 8 bits : nous aurions : B=256 et P=65536 octets I=219/65536=8 itérations par algorithme Comme montré ci après. 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 CELAR_A/B 11111111 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 CELAR_AB 00000000 00000000 00000000 00000000 64Ko 64Ko CELAR_A/B 11111111 00000000 00000000 00000000 00000000 00000000 64Ko 000000005 REVENDICATIONS1. Procédé d'effacement d'un plan mémoire comportant M bits d'adresses Ai et N bits par mot définissant ainsi 2M*N points mémoire, mis en oeuvre par au moins 5 un microprocesseur connecté à ce plan mémoire, caractérisé en ce qu'il comporte une étape de commande par le microprocesseur de l'écriture à chacune desdites adresses Ai d'un mot Mi de NI bit avec 15.N15.N une étape de commande par le microprocesseur de la lecture à chacune 10 desdites adresses Ai du mot Mi' de NI bit avec 15N15N présent en mémoire, une étape de comparaison par le microprocesseur et à chacune des adresses Ai du mot Mi commandé en écriture avec le mot lu Mi' une étape d'enregistrement ou de signalisation de toute divergence entre 15 les mots Mi et Mi' une étape de commande par le microprocesseur de l'écriture à chacune desdites adresses Ai d'un mot Mi , complémentaire de Mi de NI bit avec 1 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte au moins une étape de commande par le microprocesseur de l'écriture dans deux adresses successives Ai-1 et Ai des mots respectifs Mi-1 et Mi avec Mi égal à mi-1 incrémenté ou décrémenté de 1. 30 3. Procédé selon la revendication 1, caractérisé en ce qu'il comporte au moins une étape de commande par le microprocesseur de l'écriture dans 2" adresses successives Al... Ai ...A2N des mots respectifs MI...Mi...M2N avec, pour chaqueMi, Mi égal à mi.., incrémenté ou décrémenté de 1 ainsi qu'une étape de commande par le microprocesseur de l'écriture dans lesdites 2" adresses successives Al... Ai ...A2N des mots respectifs M i ...Mi..M2M , Mi...Mi...M2M étant les complémentaires respectifs de MI...Mi...M2N . 4. Procédé selon la revendication 3, caractérisé en ce que MI=0 ou M1=2" 5. Procédé selon la revendication 1, caractérisé en ce qu'il comporte une étape de calcul du rapport R=2M/2" 6 Procédé selon la revendication 5, caractérisé en ce qu'il comporte R étapes consistant en une commande par le microprocesseur de l'écriture dans 2" adresses successives Al... Ai ...A2N des mots respectifs MI...Mi...M2N avec, pour chaque Mi, Mi est égal à M;_, incrémenté ou décrémenté de 1 ainsi qu'une étape de commande par le microprocesseur de l'écriture dans lesdites 2" adresses successives Al... Ai ...A2N des mots respectifs M -T ...Mi...M2M , M 1...Mi...M2M étant les complémentaires respectifs de M1...Mi...M2N . 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comporte : au moins une étape de commande par le microprocesseur de l'écriture dans 2" adresses successives Al... Ai ...A2N des mots de N bits respectifs MI...Mi...M2N avec, pour chaque Mi, Mi égal à incrémenté ou décrémenté de 1, au moins une étape de commande par le microprocesseur de la lecture à chacune desdites adresses successives Al... Ai ...A2N du mot M'1...M'i...M'2N de N bits présent en mémoire, une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2N des mots de N bits respectifs Ml ...Mi...M2N commandés en écriture avec les mots M'1...M'i...M'2N lus une étape d'enregistrement ou de signalisation de toute divergence entre les mots Mi et Mi', au moins une étape de commande par le microprocesseur de l'écriture dans 2" adresses successives Al... Ai ...A2N des mots de N bits respectifs Mi ...Mi...M2M , MT ...Mi...M2M , Ml ...Mi...M2M étant les complémentaires respectifs de Ml...Mi...M2N,au moins une étape de commande par le microprocesseur de la lecture à chacune desdites adresses successives Al... Ai ...A2N des mots M 1'...Mi'...MZM' de N bits présent en mémoire, une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2N des mots de N bits respectifs M 1...Mi...M2M commandés en écriture avec les mots M l'...Mi'...M2M' lus une étape d'enregistrement ou de signalisation de toute divergence entre les mots .Mi et .Mi ' 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comporte une étape préalable de réinitialisation à o avant toute étape d'écriture. 9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il comporte une étape préalable de commande par le microprocesseur de la lecture à chacune desdites adresses Ai des mots MOi qu'elles contiennent et de l'écriture à chacune desdites adresses Ai d'un mot Nro i complémentaire de MOi. 10 Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que lorsque le plan mémoire est constitué par des transistors EEPROM ou FlashEPROM, un procédé selon l'invention peut en outre comporter une étape ultérieure d'application d'un champ électrique entre la grille et la source du transistor de chaque point mémoire. 11. Application d'un procédé selon l'une quelconque des revendications 1 à 9 à l'effacement de plan mémoire RAM, EEPROM ou FlashEPROM