FR 2924838 A1 20090612 FR 0708551 A 20071207 PROCEDE ET DISPOSITIF DE REDUCTION DE LA REMANENCE DE DONNEES STOCKEES SUR UN SUPPORT D'ENREGISTREMENT La présente invention concerne un procédé et un dispositif de réduction de la rémanence des données stockées sur un support d'enregistrement. L'invention s'applique en particulier aux supports magnétiques tels que les disques durs, pour faciliter l'effacement complet des données inscrites sur ces supports. Un examen approfondi des supports magnétiques usagés tels que les disques durs est aujourd'hui une source de renseignements précieux, aussi bien pour les services de police que pour l'espionnage économique. Aussi, un grand nombre de disques durs est détruit lors des renouvellements de matériel de manière à éviter la divulgation intempestive de données confidentielles. Généralement, sur un poste informatique muni d'une mémoire réinscriptible, l'utilisateur souhaitant supprimer une première donnée ne fait que supprimer l'adresse pointant sur les blocs d'enregistrement de cette donnée. A ce stade, cette première donnée, non altérée, est donc encore présente sur la mémoire, même si les zones de mémoire accueillant ces blocs de données sont considérées comme disponibles pour accueillir une autre donnée. C'est ensuite, au cours de l'utilisation du poste, que ces zones sont susceptibles d'être utilisées de nouveau pour accueillir des blocs d'une deuxième donnée. La première donnée est alors écrasée, partiellement ou entièrement, par la deuxième donnée. Toutefois, du fait des technologies actuellement utilisées, notamment pour les disques durs, une donnée laisse des traces rémanentes même après avoir été écrasée plusieurs fois. Par exemple, pour beaucoup de disques durs, la rémanence magnétique des données est telle, que même après plusieurs dizaines d'écrasements mémoire, la donnée est encore parfois récupérable avec des moyens appropriés tels que des microscopes à balayage électronique. Aussi, des logiciels spécifiques ont été développés pour permettre d'effacer efficacement les données. On peut notamment citer : ^ la demande de brevet de Xerox Corporation, publiée le 5 décembre 2002 sous la référence US2002181134, ^ les méthodes proposées par Peter Gutmann sur son site internet http://www.cs.auckland.ac.nz/ùpqut001/pubs/secure del.html, les méthodes préconisées par le ministère de la défense américain, notamment: dans le document DoD 5220.22-M (chap 8-306), (http://www.dtic.mil/whs/directives/corres/html/522022m.htm). Ces méthodes permettent un effacement sécurisé de données enregistrées sur un support magnétique grâce à des écritures répétées sur le support d'un motif particulier ou de données pseudo-aléatoires. Cependant, ces méthodes de suppression a posteriori de la rémanence sont très longues car elles nécessitent beaucoup de cycles de réécritures. Cet inconvénient peut parfois se révéler catastrophique, par exemple lorsque l'on souhaite effacer les données confidentielles d'un système informatique en urgence lors d'une intrusion dans le système. II est également possible de chiffrer les données pendant l'utilisation du support, c'est-à-dire mémoriser uniquement des données cryptées. Cependant, le chiffrement reste vulnérable puisqu'il dépend d'éléments secrets susceptibles d'être compromis. De plus, compte tenu des évolutions rapides au niveau technique et algorithmique, rien ne garantit que le chiffrement ne soit pas cassé quelques années après la mise au rebut des supports d'enregistrement. Un but de l'invention est de diminuer la rémanence des données stockées sur un support d'enregistrement. A cet effet, l'invention a pour objet un procédé de réduction de la rémanence de données stockées sur l'espace mémoire d'un support d'enregistrement, caractérisé en ce qu'au moins une partie des données stockées sur l'espace mémoire est déplacée par blocs selon un cycle répété dans le temps, le cycle comportant au moins les étapes suivantes : ^ choisir un nombre N de blocs de données à déplacer, ^ tant que le nombre de blocs déplacés D au cours du cycle est 30 inférieur à N o choisir un bloc de données Bi à déplacer, de préférence parmi les N-D blocs n'ayant pas encore été déplacés, o choisir une zone de mémoire libre, o déplacer le bloc de données Bi sur cette zone libre. 35 Selon un mode de réalisation, le procédé comporte une étape supplémentaire de modification de l'état logique de la zone mémoire libérée par le déplacement du bloc de données Bi afin de réduire la rémanence des données sur ladite zone de mémoire. La zone de mémoire libérée par le déplacement du bloc de données Bi étant généralement formée d'une série de bits, les états logiques d'au moins une partie des bits de la zone de mémoire libérée peuvent être inversés. Selon un autre mode de réalisation, un motif de données pseudoaléatoire est écrit sur la zone de mémoire libérée. Selon un mode de réalisation, la zone libre choisie pour accueillir le bloc de données déplacé est sélectionnée de manière pseudo-aléatoire parmi les zones libres présentes sur l'espace mémoire. Selon un mode de réalisation, le bloc de données choisi pour être déplacé est le bloc d'indice aléatoire i parmi les N-D blocs de données à ne 15 pas avoir encore été déplacés. Selon un mode de réalisation, le support d'enregistrement est magnétique. Le support d'enregistrement peut être un disque dur. L'invention a également pour objet un dispositif de réduction de la rémanence de données stockées sur l'espace mémoire d'un support 20 d'enregistrement, le dispositif comportant une unité de calcul, le support d'enregistrement et l'unité de calcul communiquant via un bus de données, le dispositif comportant une unité de gestion de la mémoire mettant en oeuvre le procédé de réduction de la rémanence de données tel que décrit plus haut, l'unité de gestion de la mémoire maintenant une table de 25 correspondance entre les adresses physiques des blocs de données stockés et déplacés sur l'espace mémoire du support d'enregistrement et les adresses logiques visibles des applications exécutées pair l'unité de calcul. D'autres caractéristiques apparaîtront à la lecture de la description 30 détaillée donnée à titre d'exemple et non limitative qui suit faite en regard de dessins annexés qui représentent : - la figure 1, une illustration de l'exécution d'un cycle du procédé de réduction de la rémanence de données selon l'invention, la figure 2, un mode de réalisation d'un dispositif mettant en oeuvre le 35 procédé selon l'invention, la figure 3, une illustration du fonctionnement d'une unité de gestion de la mémoire mettant en oeuvre le procédé selon l'invention. Le procédé selon l'invention repose notamment sur le constat suivant : en général, plus les données demeurent longtemps sur le même emplacement mérnoire d'un support d'enregistrement, plus la rémanence de ces données est importante, autrement dit, plus les traces laissées par ces données sont profondes. En déplaçant une donnée d'un emplacement mémoire vers un autre emplacement mémoire à une fréquence suffisamment élevée, la durée durant laquelle une donnée demeure au même emplacement est réduite, et par conséquent, la rémanence de cette donnée sur le support d'enregistrement est maintenue à un faible niveau. La figure 1 illustre l'exécution d'un cycle du procédé de réduction de la rémanence selon l'invention. Un même espace mémoire 110, qui couvre tout ou partie de la mémoire d'un support d'enregistrement, est représenté à différents stades de l'application du procédé. Cet espace mémoire 110, est découpé en plusieurs zones de mémoire 100a, 100b, 100c, 100d, 100e, 100f. Les zones mémoires comprenant des données sont représentées en hachuré sur la figure 1, tandis que les zones libres sont laissées vides. Pour des raisons de simplification de la description, le nombre de zones représentées sur la figure 1 est restreint à un petit nombre, mais le procédé peut être appliqué à un nombre de zones très élevé. Dans le cas d'un disque dur, une zone correspond par exemple à un bloc mémoire pointée par la table d'allocation du système de fichiers. L'espace mémoire de la figure 1 comporte six zones 100a, 100b, 100c, 100d, 100e, 100f, deux zones étant libres : la troisième zone 100c et la sixième zone 100f, tandis que les première 100a, deuxième 100b, quatrième 100d, et cinquième 100e zones sont chacune occupées par un bloc de données 101, 102, 103, 104. Le procédé selon l'invention est itératif et cyclique. Un cycle comporte plusieurs itérations et est terminé lorsque suffisamment de blocs de données, de préférence tous, ont été déplacés au moins une fois. Le nombre de blocs à déplacer au cours d'un cycle est choisi en fonction du niveau de rémanence restant sur l'espace mémoire 110 que l'on tolère pour les données. En effet, plus le nombre de blocs déplacés au cours d'un cycle est élevé, plus la rémanence moyenne des données sur l'ensemble des zones mémoires est faible. Dans l'état initial 111 du support, aucun bloc de données n'a encore été déplacé par le procédé de réduction de la rémanence. Au cours d'un cycle, le procédé selon l'exemple de la figure 1 déplace à chaque itération le premier bloc de données à ne pas avoir été déplacé vers la première zone libre du support 100. C'est donc, dans l'exemple, le premier bloc de données 101 qui est choisi pour être déplacé vers la première zone libre, c'est à dire la troisième zone 100c. Les déplacements de blocs de données sont représentés sur la figure 1 par des flèches. Dans le deuxième état 112 du support 100, suite au déplacement du premier bloc de données 101, la première zone 100a est libérée et la troisième zone 100c est occupée par le premier bloc de données 101. Ainsi, les deuxième 100b, troisième 100c, quatrième 100d et cinquième 100e zones sont occupées par des données et les première 100a et sixième 100f zones sont libres. Ensuite, le premier bloc de données à ne pas avoir été déplacé est choisi pour être transposé. Dans l'exemple, il s'agit du deuxième bloc de données 102 qui est déplacé vers la première zone libre, c'est à dire la première zone 100a. Dans le troisième état 113 du support 100, suite au déplacement du deuxième bloc de données 102, la deuxième zone 100b est libérée et la première zone 1 CIOa est de nouveau occupée. Ainsi, les première 100a, troisième 100c, quatrième 100d, et cinquième 100e zones sont occupées tandis que les deuxième 100b et sixième 100f zones sont libres. A ce stade de l'exécution du procédé, le premier bloc de données à ne pas avoir été déplacé est alors le troisième bloc de données 103 occupant la quatrième zone 100d du support 100. Ce troisième bloc de données 103 est déplacé vers la première zone libre, c'est-à-dire la deuxième zone 100b du support 100. Dans le quatrième état 114 du support 100, suite au déplacement du troisième bloc de données 103, la quatrième zone 100d est libérée et la deuxième zone 100b est occupée. Ainsi, les première 100a, deuxième 100b, troisième 100c et cinquième zones 100e sont occupées tandis que les quatrième 100d et sixième zones 100f sont libres. Ensuite, le quatrième bloc de données 104, le seul bloc de données n'ayant pas été déplacé, est transposé vers la première zone libre, c'est-à-dire la quatrième zone 100d. Dans le cinquième état 115 du support 100, après ce dernier déplacement d'un bloc de données, 115, les quatre premières zones 100a, 100b, 100c, 100d sont occupées par des données et les cinquième 100e et sixième zones sont libres. Un cycle du procédé est terminé lorsque tous les blocs de données de la zone ont été déplacés au moins une fois. Le cycle est alors répété à une fréquence F choisie en fonction du type de support d'enregistrement concerné, notamment en fonction de ses caractéristiques de rémanence. Par exemple, dans le cas d'un support magnétique, la fréquence F de répétition des cycles est déterminée à partir de la susceptibilité magnétique a du support 100, a étant définie comme suit : a=limdM e-*o dB où M est l'aimantation du matériau constituant le support 100, et B l'excitation magnétique qui lui est appliquée. Selon un mode de réalisation, la température à laquelle est soumis le support d'enregistrement peut également être prise en compte dans le choix de la fréquence F, la température ayanl: une influence sur la rémanence magnétique, selon la loi de Curie, connue de l'Homme du métier. Dans l'exemple de la figure 1, le premier bloc non déplacé est systématiquement choisi pour être transposé vers la première zone libre de l'espace mémoire du support 100. Néanmoins, les stratégies possibles pour choisir le bloc de données à déplacer à chaque étape du procédé sont multiples, de même que les stratégies conduisant au choix de la zone libre destinée à accueillir le bloc de données déplacé. Par exemple, un choix pseudo-aléatoire est envisageable à la fois pour le bloc de données à déplacer et aussi pour la zone libre d'accueil de ce bloc. Par exemple, le bloc de données choisi pour être déplacé est le bloc de données d'indice i parmi les blocs de données n'ayant pas encore été déplacés au cours du cycle, i étant égal à un entier aléatoire compris entre 1 et N-D, N étant le nombre total de blocs de données, D étant le nombre de blocs de données ayant déjà été déplacés. Par ailleurs, selon un mode de réalisation, seule une partie de la mémoire du support d'enregistrement est concernée par le procédé de réduction de la rémanence, la partie complémentaire ,de l'espace mémoire 110 étant gérée de manière classique, sans réduction de rémanence. Par exemple, si un disque dur abrite des données confidentielles sur une première partition et des données non sensibles sur une seconde partition, le procédé peut être appliqué uniquement sur la première partition. Pour diminuer davantage la rémanence des données, le procédé peut être complété par une étape de modification de l'état des zones libérées après chaque déplacement de données. Les modifications applicables lors de cette étape peuvent prendre des formes multiples. Par exemple, l'écriture d'un motif de données peut être systématiquement effectuée sur la zone libérée par le déplacement, le motif de données utilisé pour surcharger la zone libérée pouvant être, par exemple, un bloc de données généré pseudo-aléatoirement. II est également judicieux d'inverser l'état mémoire de la zone libérée pour diminuer la rémanence des données. A titre d'exemple, dans le cas d'un disque dur stockant les données binaires, une inversion des états logiques de chaque bit ou seulement d'une partie d'entre eux peut être effectuée sur la zone libérée après le déplacement d'un bloc de données. La figure 2 présente un mode de réalisation d'un dispositif mettant en oeuvre le procédé selon l'invention. Le dispositif 200 comporte une unité de gestion de la mémoire 202, noté par la suite MMU pour � Memory Management Unit �, permettant à une unité de calcul 204 d'accéder à l'espace mémoire d'un support d'enregistrement 206 à travers un bus système 208. Contrairement à une MMU classique, la MMU 202 de la figure 2 met en oeuvre des mécanismes permettant d'appliquer le procédé selon l'invention. La MMU 202 maintient une correspondance entre l'adresse physique des données stockées sur le support d'enregistrement 206, qui varie dans le temps en fonction des déplacements programmés, et l'adresse logique des données présentée au niveau des applications. La mise en oeuvre du procédé selon l'invention est totalement transparente au niveau des applications car la MMU 202 met à jour une table de correspondance en fonction des déplacements de blocs de données effectués lors d'un cycle. La figure 3 illustre le fonctionnement de la MMU 202 (figure 2). La MMU 202 définit une table de correspondance 302 des adresses de mémoire. Cette table de permutation 302 contient les correspondances entre les adresses de mémoire logique enregistrées dans une table d'allocation 304 et les adresses de mémoire physique pointant sur l'espace mémoire 306 du support d'enregistrement 206 (figure 2). A l'initialisation du dispositif, la table de correspondance 302 établit des liens entre les adresses logiques @L et les adresses physiques @P des blocs de données B1, B2, B3 présents sur l'espace mémoire 306. Ces liens sont représentés par des flèches sur la figure 3. Soit le ième bloc de données Bi de l'espace mémoire 306, le bloc Bi étant référencé dans la table de correspondance 302 par son adresse 15 logique @L=100 et par son adresse physique @P=300. Le procédé itératif de déplacement des blocs de données stockées sur l'espace mémoire 306 est exécuté par la MMU 202 (figure 2). L'itération concernant le déplacement du bloc Bi est détaillée ci-après, les itérations concernant les autres blocs B1, B2, B3 étant analogues. L'itération 20 comporte les étapes suivantes : la MMU 202 calcule un nouvel emplacement physique, dans l'exemple @P=700, pour y placer le bloc Bi, accessible initialement à l'adresse physique @P=300 ; la MMU 202 copie le bloc Bi de l'adresse physique initiale @P=300 25 vers la nouvelle adresse physique @P=700 ; dans l'exemple, lorsque cette copie est terminée, l'intégrité des données copiées est contrôlée ; - la référence à l'adresse physique du bloc Bi est modifiée dans la table de correspondance 302 comme suit : l'adresse physique initiale 30 @P=300 est remplacée par la nouvelle adresse physique @P=700, tandis que la référence à l'adresse logique @L est laissée à la même valeur @L=100 ; dans l'exemple, l'état logique du bloc de données accessible à l'adresse physique initiale @P=300 est modifié selon l'une des 35 méthodes précitées de diminution de la rémanence des données (par exemple, une ou plusieurs écritures d'un bloc de données prédéterminé aléatoirement ou non, ou encore une inversion binaire d'une partie des données). Une fois l'opération du déplacement du bloc Bi étant terminée, le cycle continue pour les autres blocs de données, plus particulièrement pour ceux n'ayant pas encore été déplacés. Comme le montre la figure 3, à travers un premier état 300a et un second état 300b de l'espace mémoire 306, l'agencement des blocs de données évolue au cours du temps. Selon un autre mode de réalisation, le procédé est exécuté à travers un pilote logiciel chargé d'ordonner des déplacements fréquents de données et d'établir des correspondances entre les adresses logiques des blocs de données et les adresses physiques de l'espace mémoire. L'application du procédé selon l'invention permet de s'affranchir de nombreux cycles de réécriture mémoire lorsque l'on souhaite effacer définitivement les données. En effet, la rémanence de ces données est maintenue constarnment faible, ce qui permet, à tout moment, de les effacer définitivement par un simple écrasement mémoire. Le procédé selon l'invention peut notamment être utilisé dans le cadre de calculs cryptographiques, lesquels nécessitent le stockage de variables sensibles. Ces variables sensibles peuvent être avantageusement stockées sur un espace mémoire protégé par le procédé de réduction de rémanence selon l'invention afin d'éviter toute compromission de ces variables après l'exécution de ces calculs. Le procédé selon l'invention s'applique aisément à certaines technologies telles que les supports de mémoires magnétiques comme les disques durs mais peut également concerner d'autres types de support tels que les supports optiques réinscriptibles. REVENDICATIONS 1. Procédé de réduction de la rémanence de données stockées sur l'espace mémoire (110) d'un support d'enregistrement (206), caractérisé en ce qu'au moins une partie des données stockées sur l'espace mémoire (110) est déplacée par blocs selon un cycle répété dans le temps, le cycle comportant au moins les étapes suivantes : ^ choisir un nombre N de blocs de données à déplacer, ^ tant que le nombre de blocs déplacés D au cours du cycle est inférieur à N : o choisir un bloc de données Bi à déplacer, o choisir une zone de mémoire libre, o déplacer le bloc de données Bi sur cette zone libre. 2. Procédé de réduction de la rémanence de données selon la revendication 1, caractérisé en ce qu'il comporte une étape supplémentaire de modification de l'état logique de la zone mémoire libérée par le déplacement du bloc de données Bi afin de réduire la rémanence des données sur ladite zone de mémoire. 3. Procédé de réduction de la rémanence de données selon la revendication 2, la zone de mémoire libérée par le déplacement du bloc de données Bi étant formée d'une série de bits, caractérisé en ce que l'étape supplémentaire de modification de l'état logique de la zone mémoire libérée comporte une inversion de l'état logique d'au moins une partie des bits de la zone de mémoire libérée. 4. Procédé de réduction de la rémanence de données selon la revendication 2, la zone de mémoire libérée par le déplacement du bloc de données Bi étant formée d'une série de bits, caractérisé en ce qu'un motif de données pseudo-aléatoire est écrit sur la zone de mémoire libérée. 5. Procédé de réduction de la rémanence de données selon l'une des revendications précédentes, caractérisé en ce que la zone libre choisie pour accueillir le bloc de données déplacé est sélectionnée de manièrepseudo-aléatoire parmi les zones libres présentes sur l'espace mémoire (110). 6. Procédé de réduction de la rémanence de données selon l'une des revendications 1 à 5, caractérisé en ce que le bloc de données choisi pour être déplacé est le bloc d'indice aléatoire i parmi les N-D blocs de données à ne pas avoir encore été déplacés. 7. Procédé de réduction de la rémanence de données selon l'une des 10 revendications précédentes, caractérisé en ce que le support d'enregistrement (206) est magnétique. 8. Procédé de réduction de la rémanence de données selon la revendication 7, caractérisé en ce que le support d'enregistrement (206) est un disque 15 dur. 9. Dispositif de réduction de la rémanence de données stockées sur l'espace mémoire (306) d'un support d'enregistrement (206), le dispositif comportant une unité de calcul (204), le support d'enregistrement (206) et 20 l'unité de calcul (204) communiquant via un bus de données (208), caractérisé en ce qu'il comporte une unité de gestion de la mémoire (202) mettant en oeuvre le procédé selon l'une des revendications précédentes, l'unité de gestion de la mémoire (202) maintenant une table de correspondance (302) entre les adresses physiques des blocs de données 25 stockés et déplacés sur l'espace mémoire (306) du support d'enregistrement (206) et les adresses logiques (304) visibles des applications exécutées par l'unité de calcul (204).