Brevet FR2983623A1 — publié le 20130607

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 dispositifs ne peuvent être prévus que lors de la fabrication des mémoires et ne peuvent pas s'appliquer à des mémoires déjà 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. On connaît également le brevet EP0421693 qui décrit un dispositif ainsi qu'une méthode d'autotest de mémoire en échiquier. Le procédé décrit dans ce brevet est un procédé non déterministe qui créer un échiquier d'adresses de test générées aléatoirement. Cette solution d'autotest ne prends pas en compte les problèmes de rémanence de mémoire, et ainsi ne peux donc pas être utilisée dans un effacement sécurisé de mémoire. 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, qui prend en compte le phénomène de rémanence de la mémoire et qui est parfaitement fiable. La solution apportée est un procédé de test et d'effacement anti-rémanence par décomposition algorithmique d'un plan mémoire comportant X bits d'adresses A, avec 12x, et N bits par mot définissant ainsi 2x*N points mémoire, mis en oeuvre par au moins un microprocesseur connecté à ce plan mémoire, caractérisé en ce que - le plan mémoire est divisé en K pages, K=x2 -2N /Z si X>2N ou sinon k=1 ; chaque page est divisée en R/K blocs, R=2x/2" si X>N ou sinon R=1 ; - les R blocs ont une taille B=2" mots ; les k pages ont une taille P=22" mots ; et qu'il comporte : une étape de commande par le microprocesseur de l'écriture à chacune des adresses Ai d'un mot M, de N bits, dont la valeur est calculée à l'aide d'un algorithme de comptage, avec 12x ; une étape de commande par le microprocesseur de la lecture à chacune desdites adresses Ai du mot M', de N1 bits présent en mémoire, dont la valeur est calculée à l'aide d'un algorithme de comptage, avec 15i2x ; - une étape de comparaison par le microprocesseur à chacune des adresses Ai du mot Mi commandé en écriture avec le mot lu M'i, avec 1 , une étape d'enregistrement ou de signalisation de toute divergence entre les mots Mi et M'i, avec 1 Ce procédé permet de vérifier l'intégrité électrique de l'accès en écriture et lecture de tous les emplacements de stockage élémentaire de la mémoire, ceci dans le but de s'assurer de l'absence de données confidentielles résiduelles dans le composant, tout en effaçant la mémoire. Ce procédé permet notamment de mettre en évidence des défaillances basées sur des hypothèses de «collages» à «0» et à «1» sur les lignes d'adresses et de données d'un composant mémoire. Selon une caractéristique particulière, un procédé selon l'invention applique un l'algorithme de comptage qui comporte : une étape d'écriture à la première adresse du premier bloc de la première page de la mémoire d'un mot M1 ; une étape d'écriture dans le premier bloc de la première page de la mémoire, des mots M2 à M2N aux adresses A2 à A2N, tels que M1+1=M, +1 ou M,+1=M, -1, avec 1 2x-1 ; une étape d'écriture par rotation des mots du bloc n dans le bloc n+1, telle que le mot écrit à la première adresse du bloc n est écrit à la dernière adresse du bloc n+1, et que le mot écrit à la deuxième adresse du bloc n est écrit à la première adresse du bloc n+1 ; Selon une autre caractéristique, M1=0 ou M1=2". Selon une autre caractéristique, un procédé selon l'invention comporte une étape préalable de réinitialisation à 0 du plan de mémoire complet, puis une réinitialisation 20 à 1 par page avant les étapes d'écriture des mots M, de N bits, avec 15i5.2x. Selon une autre caractéristique, un procédé selon l'invention comporte une étape préalable de commande par le microprocesseur de la lecture à chacune desdites adresses A des mots Mo, qu'elles contiennent et de l'écriture à chacune desdites 25 adresses A d'un mot Mo, complémentaire de Mo,, avec 15i2x. Selon une autre caractéristique, lorsque le plan mémoire est constitué par des transistors EEPROM ou FlashEPROM. 30 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. D'autres avantages et caractéristiques apparaîtront dans la description d'un mode particulier de réalisation de l'invention au regard des figures annexées parmi lesquelles : La figure 1 montre les moyens mis en oeuvre pour réaliser l'invention selon un premier mode de réalisation ; - La figure 2 présente un graphique des tensions de seuil d'une cellule EEPROM ; - La figure 3 présente un schéma de la décomposition en pages et en blocs de la mémoire ; La figure 4 présente des tableaux de l'algorithme de comptage dans différentes configurations du plan mémoire : - La figure 4.1 lorsque X>2N ; La figure 4.2 lorsque X=2N ; La figure 4.3 lorsque N La figure 2 présente un diagramme qui montre le déplacement des tensions de seuil d'un transistor dans une cellule EEPROM à cause de réécritures successives d'une même donnée . Dans une mémoire EEPROM, la méthode de stockage de donnée est réalisée à l'aide de transistors à grille flottante qui jouent le rôle d'un accumulateur d'électrons. La quantité d'électrons piégés 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 électrons stockés dans la grille, de l'ordre de quelques milliers. 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 ». 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 VTprog VTprog correspondant à un état logique« 0 ». Si la cellule est effacée, le transistor est dans l'état bloqué pour VGS Dans le. cas d'applications à stockage de données confidentielles ou secrètes (clés de chiffrement par exemple, mot de passe...) se pose la problématique de leur rémanence après de multiples opérations d'effacement. Le nombre de cycle d'effacement (programmation) altère in fine le niveau du seuil VTeff (VTprog) pour devenir une empreinte susceptible de révéler une information mesurable d'une programmation préalable. La figure 3 présente un schéma de la décomposition en pages et en blocs de la mémoire. La mémoire est décomposée en K pages et R blocs, avec K=x2 /Z si X>2N ou sinon K=1, et R=2x/2" si X>N ou sinon R=1. Chaque page comporte R/K blocs. Les figures 4.1, 4.2, 4.3, 4.4 et 4.5 présentent des tableaux de l'algorithme de comptage pour différentes configurations du plan mémoire. L'algorithme de comptage consiste en : une étape d'écriture à la première adresse du premier bloc de la première page de la mémoire d'un mot M1 ; une étape d'écriture dans le premier bloc de la première page de la mémoire, des mots M2 à M2N aux adresses A2 à A2N, tels que Mi+1=M; +1 ou M,+1=M; -1, avec 15i2x-1 ; une étape d'écriture par rotation des mots du bloc n dans le bloc n+1, telle que le mot écrit à la première adresse du bloc n est écrit à la dernière adresse du bloc n+1, et que le mot écrit à la deuxième adresse du bloc n est écrit à la première adresse du bloc n+1 ; La figure 4.1 présente un tableau de l'algorithme de comptage lorsque X>2N, dans cet exemple X=5 et N=2. Donc la mémoire est décomposée en deux pages et en 8 blocs. Chaque page comporte 4 blocs. La figure 4.2 présente un tableau de l'algorithme de comptage lorsque X=2N, 15 dans cet exemple X=4 et N= 2. Donc la mémoire est décomposée en 1 page et en 4 blocs. La figure 4.3 présente un tableau de l'algorithme de comptage lorsque N REVENDICATIONS1. Procédé de test et d'effacement anti-rémanence par décomposition algorithmique d'un plan mémoire comportant X bits d'adresses A, avec 1i52x, et N bits par mot définissant ainsi 2x*N points mémoire, mis en oeuvre par au moins un microprocesseur connecté à ce plan mémoire, caractérisé en ce que : - le plan mémoire est divisé en K pages, K= 2x /22N /Z si X>2N ou sinon k=1 ; - chaque page est divisée en R/K blocs, R=2x/2" si X>N ou sinon R=1 ; les R blocs ont une taille B=2" mots ; - les k pages ont une taille P=22" mots ; et qu'il comporte : - une étape de commande par le microprocesseur de l'écriture à chacune des adresses A d'un mot M, de N bits, dont la valeur est calculée à l'aide d'un algorithme de comptage, avec 12x ; une étape de commande par le microprocesseur de la lecture à chacune desdites adresses A du mot M`, de N1 bits présent en mémoire, dont la valeur est calculée à l'aide d'un algorithme de comptage, avec 15i2x ; - une étape de comparaison par le microprocesseur à chacune des adresses A, du mot M, commandé en écriture avec le mot lu M',, avec 12x ; - une étape d'enregistrement ou de signalisation de toute divergence entre les mots M, et M'1, avec 1i 2. Procédé de selon la revendication 1, caractérisé en ce que l'algorithme de comptage comporte : une étape d'écriture à la première adresse du premier bloc de la première page de la mémoire d'un mot M1; une étape d'écriture dans le premier bloc de la première page de la mémoire, des mots M2 à M2N aux adresses A2 à A2N, tels que Mi+1=M, +1 ou M,±1=M; -1, avec 1.5_i5_2x-1 ; une étape d'écriture par rotation des mots du bloc n dans le bloc n+1, telle que le mot écrit à la première adresse du bloc n est écrit à la dernière adresse du bloc n+1, et que le mot écrit à la deuxième adresse du bloc n est écrit à la première adresse du bloc n+1 ; 3. Procédé selon la revendication 2, caractérisé en ce que M1=0 ou M1=2" ; 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comporte une étape préalable de réinitialisation à 0 du plan de mémoire complet, puis une réinitialisation à 1 par page avant les étapes d'écriture des mots Mi de N bits, avec 12x. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'il comporte une étape préalable de commande par le microprocesseur de la lecture à chacune desdites adresses A des mots Moi qu'elles contiennent et de l'écriture à chacune desdites adresses A d'un mot Mo, complémentaire de Moi, avec 12x. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que lorsque le plan mémoire est constitué par des transistors EEPROM ou FlashEPROM. 7. Application d'un procédé selon l'une des revendications 1 à 6 à l'effacement anti-rémanence de plan mémoire à semi-conducteur RAM, EEPROM ou FlashEPROM.