Brevet FR2953975A1 — 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 antiré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 dispositifs 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 des bordures de piste, ainsi qu'à la compétence et aux connaissances de la 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 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 présente l'inconvénient de nécessiter l'intervention d'un opérateur et, de surcroit, n'est pas complètement fiable. 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 dispositif particulier installé lors de la fabrication du plan mémoire ni l'intervention d'un opérateur et qui est fiable à 100%. La solution apportée est un procédé d'effacement anti-rémanence par décomposition algorithmique 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 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 d'un mot Ai de N1 bit avec 1 Selon une caractéristique particulière, M1=0 ou M1=2M Selon une autre caractéristique, un procédé selon l'invention comporte une étape de décomposition en pages de la mémoire par le calcul du rapport k=2"/22M Selon une caractéristique additionnelle, M1=0 ou M1=2M . Selon une autre caractéristique, un procédé selon l'invention comporte une étape de 10 calcul du rapport R=2M/2" 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 2M adresses successives Al... Ai ...A2M des mots respectifs M1... Mi... M2M avec, pour chaque Mi, Mi égal à M;_1 incrémenté ou décrémenté de 1 ainsi qu'une étape de 15 commande par le microprocesseur de l'écriture dans lesdites 2M adresses successives Al... Ai ...A2M des mots respectifs M1 ... Mi ... M2M avec Mi étant le complémentaire de Mi. Selon une caractéristique additionnelle, un procédé selon l'invention comporte : au moins une étape de commande par le microprocesseur de l'écriture dans 20 2M adresses successives Al... Ai ...A2M des mots de N bits respectifs M1... Mi... M2M avec, pour chaque Mi, Mi égal à M;_l 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 ...A2M du mot 25 M' 1... M'i... M'2M de N bits présent en mémoire, - une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2M des mots de N bits respectifs Ml ... Mi... M2M commandés en écriture avec les mots M'1... M'i... M'2M lus - une étape d'enregistrement ou de signalisation de toute divergence entre les 30 mots Mi et Mi', - au moins une étape de commande par le microprocesseur de l'écriture dans 2M adresses successives Al... Ai ...A2M des mots de N bits respectifs M1...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 ...A2M des mots M1'...Mi'...M2M' de N bits présent en mémoire, - une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2M des mots de N bits respectifs M1...Mi...M2m commandés en écriture avec les mots M1'...Mi'...M2M' lus une étape d'enregistrement ou de signalisation de toute divergence entre les mots .Mi et .Mi ' Selon une caractéristique particulière, un procédé selon l'invention comporte une étape préalable de réinitialisation à 0 du plan complet, puis une réinitialisation à 1 par page avant les étapes d'écriture des mots Mi de N bits. 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 en outre l'application d'un procédé selon l'invention à l'effacement anti-rémanence de plan mémoire à semi-conducteur 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 M lignes d'adresses de mots comportant chacun N bits. Dans ce mode de réalisation particulier, le procédé selon l'invention comporte les 30 é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 MOi complémentaire de MOi, 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 2M adresses successives Al... Ai ...A2M des mots de N bits respectifs M1... Mi... M2M 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 à chacune desdites adresses successives Al... Ai ...A2M du mot M1'... Mi'... M2M' de N bits présent en mémoire, une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2M des mots de N bits respectifs M1... Mi... M2M commandés en écriture avec les mots M1'... Mi'... M2M' 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 2M adresses successives Al... Ai ...A2M des mots de N bits respectifs M1...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 ...A2M des mots M1'... Mi'... M2M'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 M1...Mi...M2M commandés en écriture avec les mots M1'... Mi'... M2M' 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 Dans le cas d'une mémoire composée de N lignes d'adresses et de M lignes de données, la profondeur du plan, c'est-à-dire le nombre de cellules mémoire est égal à2"x2Mbits. L'algorithme teste le plan mémoire à l'aide de séquences d'écriture/lecture par page (cf. Figure 1.) comme montré sur la figure 3. Chaque page est découpée en blocs dont la taille correspond au nombre de combinaisons binaires du mot de données soit en l'occurrence 2M combinaisons. Le nombre de blocs par page est fixé par l'algorithme. Tl 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 . 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 2N/22M La mise de cette étape du procédé se décompose en plusieurs étapes comme 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 de 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. 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 microstructures 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ée 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 En résumé le procédé mis en oeuvre est le suivant a- on initialise tout le plan mémoire à 0 b- on écrit une page de mots binaires issus de l'algorithme de comptage CELAR A c- on lit toute la mémoire et on vérifie le contenu de la page dans le plan d- on réitère les séquences b et c avec l'algorithme inversé CELAR_B d- on réinitialise la page à 0 e- les opérations de b- à d- sont répétées sur les pages suivantes de manière à balayer l'ensemble du plan mémoire 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 10 11 Le nombre d'itérations de séquences écriture/lecture des algorithmes I=M/P Avec un plan mémoire 512 K x 8 bits : nous aurions B=256 et P=65536 octets 1=219/65536=8 itérations par algorithme Comme montré ci après. 8 pages 64Ko 64Ko 64Ko 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 CELAR_A/B 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 CELAR_A/B 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 CELAR_A/B 15 REVENDICATIONS1. Procédé d'effacement anti-rémanence par décomposition algorithmique d'un plan mémoire comportant M bits d'adresses Ai et N bits par mot définissant 5 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 d'un mot Ai de N1 bit avec 15N15N un mot Mi de N1 bits 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 30 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 dans un bloc de la page. 3. Procédé selon la revendication1, caractérisé en ce qu'il comporte au moins une étape de commande par le microprocesseur de l'écriture dans deux adresses Ai et Aj avec j=i (modulo 2M) de deux blocs successifs des mots respectifs Mi et Mj égal à mi incrémenté ou décrémenté de 1 dans la même page. 4. 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 2M adresses successives Al... Ai ...A2M des mots respectifs Ml...Mi...M2M avec, pour chaque Mi, Mi égal à M;_l incrémenté ou décrémenté de 1 ainsi qu'une étape de commande par le microprocesseur de l'écriture dans lesdites 2M adresses successives Al... Ai ...A2M des mots respectifs Ml...Mi...M2M avec Mi étant le complémentaire de Mi. Selon une caractéristique additionnelle 5. Procédé selon la revendication 3, caractérisé en ce que M1=0 ou M1=2M 6. Procédé selon la revendication 1, caractérisé en ce qu'il comporte une étape de décomposition en pages de la mémoire par le calcul du rapport k=2N/22M 7. 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 2M adresses successives Al... Ai ...A2M des mots respectifs Ml...Mi...M2M avec, pour chaque Mi, 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 2M adresses successives Al... Ai ...A2M des mots respectifs Ml...Mi...M2M avec Mi étant le complémentaire de Mi. 8. 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 2M adresses successives Al... Ai ...A2M des mots de N bits respectifs M1... Mi... M2M avec, pour chaque Mi, Mi égal à m, incrémenté ou décrémenté 30 de 1, - au moins une étape de commande par le microprocesseur de la lecture à chacune desdites adresses successives Al... Ai ...A2M du mot M'1... Ml... M'2M de N bits présent en mémoire,au moins une étape de commande par le microprocesseur de la lecture à chacune desdites adresses successives Al... Ai ...A2M du mot M' 1... M'i... M'2M de N bits présent en mémoire, - une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2M des mots de N bits respectifs M1... Mi... M2M commandés en écriture avec les mots M'1...M'i...M'2M 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 2M adresses successives Al... Ai ...A2M des mots de N bits respectifs M1...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 ...A2M des mots M1'...Mi'...M2m' de N bits présent en mémoire, une étape de comparaison par le microprocesseur et à chacune des adresses successives Al... Ai ...A2M des mots de N bits respectifs M1...Mi...M2M commandés en écriture avec les mots Ml'...Mi'...M2M' lus - une étape d'enregistrement ou de signalisation de toute divergence entre les mots .Mi et .Mi ' 9. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comporte une étape préalable de réinitialisation à 0 du plan complet, puis une réinitialisation à 1 par page avant les étapes d'écriture des mots Mi de N bits. 10. 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 MOi complémentaire de Moi. 11. 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 étapeultérieure d'application d'un champ électrique entre la grille et la source du transistor de chaque point mémoire. 12. Application d'un procédé selon l'une des revendications 1 à 9 à l'effacement 5 anti-rémanence de plan mémoire à semi-conducteur RAM, EEPROM ou FlashEPROM .