Brevet FR2807177A1 — publié le 20011005

DESCRIPTION La présente invention se rapporte une mémoire de cryptage/décryptage et à des procédés de sauvegarde et de récupération, lesquels incorporent un contrôleur de cryptage en vue de crypter et décrypter des données en lisant et en écrivant dans la mémoire d'un ordinateur. La présente invention comprend une mémoire de cryptage/décryptage et des procédés de sauvegarde et de récupération destinés à des ordinateurs Le dispositif principal est un contrôleur de cryptage devant être installé dans la mémoire (mémoire vive dynamique (DRAM), mémoire vive dynamique synchrone (SDRAM), mémoire vive statique (SRAM)). La procédure d'activation de cryptage/décryptage spéciale préétablie active le contrôleur de cryptage. Avant l'activation, les fonctions de la mémoire de cryptage/décryptage agissent de la même manière qu'une mémoire normale. Lorsqu'elle est activée, la mémoire de cryptage/décryptage crypte/décrypte les données et désigne une partie de la mémoire en tant que zone de registre afin de sauvegarder les données cryptées/décryptées, transforme ensuite les données en données cryptées/décryptées en lisant et en écrivant dans la mémoire, et permet ainsi au système ou aux dispositifs périphériques de sauvegarder et de récupérer les données et empêche de ce fait les pirates de décoder les données de la mémoire et de voler des dispositifs périphériques entiers. La présente invention améliore la sécurité des systèmes informatiques. Il existe de plus en plus de réseaux et de systèmes reliés au réseau Internet. Tout le monde a le même accès à l'espace cybernétique et récupère des données par l'intermédiaire du réseau Intranet et réseau Internet, puis les sauvegarde sur leur disque dur, ou bien enlève et récupère des données à partir d'un disque dur individuel. L'accès aisé aux données menace la sécurité du public ordinaire. Tout le monde peut récupérer des informations personnelles facilement, y compris des donnees personnelles, des informations de carte de crédit et des courriers électroniques. En ce sens, il n'y a aucune confidentialité du tout dans l'espace cybernétique. Pour les entreprises, leurs employés constituent les menaces principales vis-à-vis de leurs systèmes informatiques. Il n'y a aucune exigence d'une connaissance professionnelle quelconque. Quelqu'un qui sait comment utiliser des tournevis, peut démonter un ordinateur et voler facilement les disques durs. but final du délit informatique consiste à voler les données provenant des disques durs. Il est peu probable que ce mauvais procédé cesse. En tant que tel, le cryptage des données est la meilleure façon de protéger les données mémorisées sur les disques durs. Lorsque des données sont cryptees, les pirates ne peuvent pas récupérer des informations quelconques provenant du disque dur à l'exception du texte chiffré. Le même scénario s'applique à tout autre dispositif périphérique quelconque, tel qu'une carte d'interface de réseau (NIC) et une imprimante. Ces dispositifs sont les plus vulnérables aux délits informatiques. En ce qui concerne la sauvegarde et la récupération des données sur le disque dur, comme indiqué par la figure 1, lorsque l'unité centrale (UC) 10 demande des données X provenant du disque dur 21, les données X ne seront pas transmises directement du disque dur vers l'unité centrale. Au lieu de cela, les données X seront écrites dans la mémoire 30 (la mémoire est une mémoire vive dynamique (DRAM) dans cet exemple) (comme indiqué par l'itinéraire A), ensuite l'unité centrale lit les données X partir de la mémoire DRAM (itinéraire B). De la même maniere, comme indiqué par la figure 2, après que l'unité centrale 10 traite les données X, les données seront écrites dans la mémoire DRAM 30 (comme indiqué par l'itinéraire C), ensuite le disque dur 21 lit les données X à partir la mémoire DRAM (comme indiqué par l'itinéraire D). procédures indiquent que la mémoire DRAM 30 sert de parcours obligatoire pour les données circulant entre le dispositif périphérique 20, 21 (y compris le disque dur) et la mémoire centrale du système. En d'autres termes, c'est un point de contrôle. Sur la base de cet exposé, nous pouvons facilement comprendre les possibilités techniques de la mémoire DRAM de la façon suivante : 1. Lorsque des données sont transmises depuis des dispositifs périphériques vers une mémoire, les données lues par la mémoire centrale du système seront décryptées. 2. Avant la transmission des données depuis la mémoire vers les dispositifs périphériques, les données seront cryptees de façon à résister aux pirates. La mémoire DRAM de la présente invention comprend une mémoire flash et un contrôleur de cryptage. La mémoire flash sauvegarde la clé de cryptage et les messages de positionnement après qu'une zone de cryptage/décryptage soit établie. Un procédé de cryptage/décryptage spécial active le contrôleur de cryptage en vue de crypter/décrypter des données. Comme expliqué précédemment, le traitement d'activation spécial et écrit au même emplacement de la mémoire de façon répétée pendant un certain intervalle de temps et active le traitement de cryptage/décryptage. Ce traitement ne prend en compte qu'une unité de chiffrement de flux. Le cryptage/décryptage n'affecte pas une séquence et ne provoque pas de retard quelconque. De ce fait, le cryptage/décryptage peut être considéré comme une opération en temps réel. Les données peuvent être lues dès qu'elles sont écrites. La présente invention a donc pour objet une mémoire de cryptage/décryptage, comprenant un contrôleur de cryptage et une mémoire flash, dans laquelle le contrôleur de cryptage initialisé par le système d'exploitation ou bien un programme de logiciel supplémentaire qui divise la mémoire en une zone de cryptage et en une zone de décryptage, et commande la procédure d'activation et d'arrêt du cryptage/décryptage. La mémoire flash mémorise une clé de cryptage unique et les messages de positionnement générés par le système dès que la zone de cryptage/décryptage est initialisée. Le programme d'activation de cryptage/décryptage active la mémoire de cryptage pour décrypter les données cryptées avant que les données n'atteignent la mémoire en vue de l'utilisation du système, et les données non cryptées écrites par le systeme seront cryptées avant que les données n'atteignent la mémoire DRAM, et ensuite seront mémorisées dans des dispositifs périphériques. En faisant ainsi, des pirates ne seront capables de voler des informations quelconques lorsqu'ils volent les dispositifs périphériques et violent le système. De préférence, le contrôleur de cryptage est une unité de chiffrement de flux ou bien un générateur pseudo- aléatoire destiné à procéder au cryptage/décryptage des données. De préférence, le procédé d'activation de cryptage/décryptage consiste à activer la procédure de cryptage/décryptage lorsque le système d'exploitation ou bien le programme de logiciel ordonne au système de lire et écrire de façon répétée au même emplacement de mémoire (répéter l'écriture, la lecture et l'écriture 256 fois ou plus). En variante, le procédé d'activation de cryptage/décryptage consiste à activer la procédure de cryptage/décryptage lorsque le système d'exploitation ou bien le programme de logiciel ordonne au système de lire/écrire certains caractères (par exemple 10101010) de façon permanente à un emplacement quelconque décrit au préalable. Préférentiellement, le procédé de cryptage/décryptage consiste à activer la procédure de cryptage/décryptage lorsque les procédures de cryptage/décryptage ont lieu selon l'une des manières décrites ci-dessus. Sous un autre aspect, registre de cryptage comporte un bit en tant qu'initialisation de l'arrêt de la procédure de cryptage/décryptage. La mémoire peut être une mémoire DRAM, une mémoire SDRAM ou une mémoire SRAM. En variante, le procédé de cryptage/décryptage doit être utilisé comme pour une mémoire normale avant ou bien après que le procédé de cryptage/décryptage soit activé. La présente invention fournit également un procédé de sauvegarde et de récupération mettant en oeuvre une mémoire de cryptage/décryptage telle que décrite ci-dessus, dans lequel ladite mémoire de cryptage est initialisée par le système d'exploitation ou bien le programme de logiciel et comprenant : a. Le choix de l'emplacement de la mémoire et la transformation de celui-ci en un registre de cryptage. b. L'initialisation de la zone de sélection. c. La détermination emplacements de début et de fin et des tailles des zones. d. La détermination du cryptage/décryptage pour la totalité des zones sur la base des voies de transmission des données. e. La mémorisation des résultats obtenus à partir des étapes a à d dans le registre de cryptage et le choix des règles de fonctionnement. f. La détection de ce que les fonctions de cryptage/décryptage spéciales sont activées. g. Le cryptage/décryptage immédiat des données et la mémorisation des données dans les zones préétablies cryptage/décryptage pour le système ou bien les dispositifs périphériques en vue d'une récupération après que les fonctions de cryptage/décryptage spéciales soient activées. De préférence, les règles de fonctionnement sont du type connu sous les désignations RSA et ECC. De façon préférée, la procédure d'initialisation comprend en outre l'arrêt du cryptage/décryptage, grâce à une instruction d'arrêt vers l'octet, qui est positionné dans le registre de cryptage en vue de commander le procédé de cryptage/décryptage, pour mettre fin au cryptage/décryptage. La présente invention sera mieux comprise en ce qui concerne caractéristiques techniques après avoir lu la description détaillée des modes de réalisation préférés de la présente invention en faisant référence aux dessins annexés, dans lesquels : La figure 1 représente le mécanisme suivant lequel l'unité centrale (UC) lit des données à partir du disque dur, La figure 2 représente le mécanisme suivant lequel l'unité centrale traite les données et les mémorise sur le disque dur, La figure 3 représente les blocs internes de la mémoire de cryptage/décryptage de la présente invention, La figure 4 représente le mécanisme suivant lequel la mémorisation/récupération des données entre l'unité centrale et le disque dur a lieu, La figure 5 est un organigramme du procédé mis en oeuvre par la présente invention. La présente invention incorpore des techniques matérielles et des techniques logicielles en vue de développer une structure de mémoire DRAM 50 spéciale qui utilise des blocs et des systèmes fonctionnels supplémentaires qui sont intégrés à des systèmes d'exploitation ou logiciel en vue de détecter une ou plusieurs zones de mémoire DRAM 30. Les données du disque dur 21 peuvent être mémorisées et récupérees dans ces zones. Un procédé spécial active également le procédé de cryptage/décryptage dans ces zones. La taille des données dans des zones de cryptage/décryptage de mémoire DRAM dépend des exigences de la conception du système La structure de la mémoire de cryptage/décryptage 50 (mémoire DRAM en tant qu'exemple ci-dessous) est représentée sur la figure 3. La présente invention comprend une mémoire flash 51 et un contrôleur de cryptage 52 dans la structure interne de la mémoire DRAM 50, bien que la mémoire DRAM normale 30 ne soit pas équipée de tels dispositifs. Parmi lesquels : La mémoire flash 51 mémorise les messages importants suivants : 1. La clé de cryptage unique 2. messages de positionnement générés par le système dès que la zone de cryptage/décryptage (devant être expliquée ultérieurement) est établie. Le contrôleur de cryptage 52 peut être soit une unité de chiffrement de flux soit un générateur pseudo-aléatoire, lequel exécute un cryptage/décryptage sur la base des zones de cryptage/décryptage désignées par le logiciel et fournit des données décryptées à l'unité centrale 10 en vue d'un traitement ou d'une mémorisation sur le disque dur 21. ce qui concerne les autres composants de la mémoire de cryptage/décryptage 50 de la présente invention, par exemple la logique de commande 53 en vue de commander la récupération des données, le registre d'interface 54 en vue de relier une suite regroupée de données, de même que le bloc de mémoire 55 en vue de mémoriser des données, ces composants sont identiques à ceux d'une mémoire DRAM normale 30. Nous ne les décrirons pas dans cette partie. En ce qui concerne les zones de cryptage/décryptage et l'exécution du cryptage/décryptage dans la mémoire DRAM 50, le système d'exploitation ou bien des programmes de logiciel supplémentaires traiteront les points clés suivants : 1. L'établissement de zones de cryptage/décryptage dans la mémoire DRAM 50. 2. Après que les zones de cryptage/décryptage sont établies, que de préférence la zone de la mémoire DRAM 50 ne constitue pas la zone de logiciel du système le système mémorise et récupère des données fréquemment, ensuite l'écriture des résultats de la zone de cryptage/décryptage (y compris les emplacements de début et de fin) dans cette zone vierge pour permettre au contrôleur de cryptage 52 de comprendre les emplacements les zones de la mémoire de cryptage/décryptage. 3. La commande du début et de la fin du procédé de cryptage/décryptage. 4. Faire en sorte que les données pénètrent directement dans les zones de cryptage/décryptage correctes. Sur la base des points clés précédents, la procédure pour établir les zones de cryptage/décryptage destinées à une mémoire DRAM est la suivante : (l'exemple suivant est fondé sur un disque dur). Supposons que nous mémorisons et récupérons partir de quatre zones de la mémoire du disque dur 21, que nous voulons protéger, des données contenues sur le disque dur. La procédure d'établissement pour chaque zone est la suivante : 1. Déterminer quelle est la première zone (zone 1, zone 2, zone 3 ou zone 4). 2. Activer ou bien désactiver la zone. Si le système demande que quatre zones soient activées, le système d'exploitation du logiciel sera capable de le détecter dynamiquement, ou bien certaines zones seront désactivées. 3. Définir les emplacements de début et de fin des zones de cryptage/décryptage. 4. Définir les tailles des zones de cryptage/décryptage. 5. Définir le cryptage ou bien le décryptage. Lorsque les tâches précédentes sont achevées, le système d'exploitation ou bien le programme de logiciel recherchera une partie des emplacements dans la mémoire et modifiera cette partie d'emplacements en un registre de cryptage 56. Le système décidera quelles règles de fonctionnement de cryptage/décryptage (par exemple RSA, ECC) utiliser, mémorisera ensuite le résultat de l'initialisation et les règles de fonctionnement dans le registre de cryptage 56. En outre, la présente invention désigne un octet du registre de cryptage 56 destiné à l'initialisation en vue de terminer le procédé de cryptage/décryptage. La mémoire DRAM 50 est une mémoire volatile. Les donnees du commutateur d'alimentation du système enregistrées dans la mémoire DRAM disparaîtront. La totalité des initialisations de la présente invention est mémorisée dans la mémoire flash supplémentaire 51 de la mémoire DRAM 50. De ce fait, il n'est pas nécessaire d'exécuter de nouveau la procédure d'initialisation précédente lorsque l'alimentation est activée de nouveau. La présente invention réalise un procédé special afin de permettre le cryptage et le décryptage, lequel utilise un procedé d'activation de cryptage/décryptage spécial en vue de commander l'activation. Avant l'activation de ce procédé de cryptage/décryptage spécial, la mémoire DRAM ne sera pas cryptée/décryptée, et fonctionnera de la même manière qui mémoire normale. La mémoire de cryptage/décryptage peut être utilisée de la même façon qu'une mémoire normale ce qui concerne la mémorisation et la récupération. Aucun cryptage/décryptage n'aura lieu. Par exemple : Le mode d'activation de cette procédure sera activé dans les circonstances suivantes : 1. Lorsque le système d'exploitation ou bien le programme de logiciel ordonne au système de répéter "lecture, lecture, écriture" de façon permanente sur le même emplacement (par exemple 256 fois ou bien un nombre plus important), les fonctions de cryptage/décryptage seront activées. Lire et écrire un type spécifique de contenu sur le même emplacement de façon répétée. Si le contenu correspond à la séquence désirée, par exemple, 10101010, le procédé de cryptage/décryptage sera activé. 3. Les fonctions de cryptage/décryptage seront activées, si les deux situations précédentes ont lieu. Lorsque les fonctions de cryptage/décryptage spéciales sont activées, le contrôleur de cryptage 52 crypte et décrypte la totalité des données contenues à l'emplacement préétabli de la mémoire, sur la base du résultat de l'initialisation. Le matériel lui-même, à la place du système d'exploitation du logiciel, crypte/décrypte des données. En outre, le contrôleur de cryptage 52 est une unité de cryptage de chiffrement de flux uniquement. Le procédé de cryptage/décryptage n'affecte pas la séquence et ne provoque pas de retard. De ce fait, ce traitement est une opération en temps réel. Les données peuvent être lues dès qu'elles sont écrites. Donnons une explication supplémentaire au moyen de l'exemple de la figure 4, lorsque le disque dur 21 écrit des données dans la mémoire DRAM 50, le système d'exploitation ou bien le programme de logiciel envoie des données vers la zone de décryptage ( Ire et 3' zones de décryptage représentées sur la figure par Al et A3). En d'autres termes, lorsque des données sont transmises depuis le disque dur, les données sont cryptées. Les données seront décryptées avant qu'elles n'atteignent la memoire DRAM 50, ensuite de telles données sont prêtes à être utilisées par le système Par ailleurs, lorsque le système souhaite écrire des données dans la mémoire DRAM 50, le système d'exploitation ou bien le programme de logiciel envoie des données vers une zone de cryptage (2 de et 4e zones de cryptage représentées sur la figure par A2 et A4). En d'autres termes, lorsque la mémoire centrale du système transmet les données, les données ne sont pas encore cryptées. Avant que les données niatteignent la mémoire DRAM 50, la procédure de cryptage est terminee. Alors, les données seront transmises vers le disque dur en vue d'une sauvegarde. La présente invention permet aux utilisateurs de décider s'ils veulent arrêter le cryptage/décryptage. Les utilisateurs peuvent donner pour instruction par l'intermédiaire du système d'exploitation ou bien du programme de logiciel de désactiver le procédé de cryptage/décryptage du registre de cryptage 56 et de modifier la mémoire DRAM en une mémoire normale. Les procédés de la présente invention peuvent être résumés par les procédures suivantes (comme indiqué sur la figure 5) : a. Le système d'exploitation ou bien le programme de logiciel choisit l'emplacement de mémoire et le transforme en un registre de cryptage 56, b. L'initialisation des zones de sélection, c. La détermination des emplacements de début/fin des zones et leurs tailles, d. Le lancement du cryptage/décryptage. Par exemple, dans la seconde zone où le disque dur transmet des données vers la mémoire DRAM 50, alors la mémoire DRAM 50 envoie des données vers l'unité centrale 10. Dans ce cas, A2 de la seconde zone sera choisi pour exécuter le décryptage. e. La mémorisation des resultats obtenus à partir des procédures a à d dans le registre de cryptage 56 et la sélection des règles de fonctionnement (RSA, ECC). f. La détection de ce la procédure de cryptage/décryptage spéciale est activée (par exemple, lire, lire et écrire sur le même emplacement de mémoire de façon répétée 256 fois ou plus, ou bien les données d'un tel emplacement sont mémorisées sous un certain format, par exemple 10101010, ou bien les deux situations précédentes se produisent). g. Lorsque la procédure f est activée, des données seront cryptées/décryptées et mémorisées dans la zone préétablie de cryptage/décryptage. Alors, les données cryptées seront transmises au disque dur 21 en vue d'une sauvegarde, et les données décryptées seront transmises à l'unité centrale 10. h. L'émission des instructions vers l'octet, qui a été préétabli en vue de commander la procédure de cryptage/décryptage par le registre de cryptage 56, pour arrêter le cryptage/décryptage. i. Si la procédure f n'est pas activée ou bien si l'initialisation de la procédure h est terminée, la mémoire DRAM 50 servira de mémoire normale. Sur la base de l'exposé précédent, la présente invention possède les avantages suivants : La totalité des données contenues dans la mémoire ont été cryptées/décryptées. Les pirates ne peuvent pas avoir un accès direct aux données et sont obligés de récupérer les données par l'intermédiaire du programme du système d'exploitation normal. Les pirates seront détectés, s'ils veulent récupérer des données par l'intermédiaire du système d'exploitation. La présente invention sert à protéger la mémoire et à empêcher les données d'être détruites. La mémoire de cryptage,utilise les mêmes prises que la mémoire normale, qui peuvent être enfichées dans le connecteur de l'hôte en vue d'améliorer la possibilite de protection des données sans changer aucun équipement. Comme expliqué précédemment, la mémoire de cryptage/décryptage et les procédés de sauvegarde et de récupération de la présente invention cryptent/décryptent des données par l'intermédiaire de la lecture/écriture dans la mémoire et empêchent les pirates de décoder les données mémorisées dans la mémoire ou bien de voler/surveiller les dispositifs périphériques. La présente invention améliore la sécurite des systèmes informatiques de façon significative par opposition au système classique dans lequel le système peut être démonté et des données peuvent être facilement volées. techniques, les figures, les programmes et procédés de commande énoncés précédemment sont simplement des exemples d'une application de la présente invention. La portée de la présente invention ne devra pas être limitée de ce point de vue. REVENDICATIONS 1. Mémoire de cryptage/décryptage (50), comprenant un contrôleur de cryptage (52) et une mémoire flash (51), dans laquelle le contrôleur de cryptage (52) est initialisé par le système d'exploitation ou bien un programme de logiciel supplémentaire qui divise la mémoire en une zone de cryptage et en une zone de décryptage, et commande la procédure d'activation et d'arrêt du cryptage/décryptage, caractérisée en ce que la mémoire flash (51) mémorise une clé de cryptage unique et les messages de positionnement générés par le système dès que la zone de cryptage/décryptage est initialisée et en ce que le programme d'activation cryptage/décryptage active la mémoire de cryptage pour décrypter les données cryptées avant que les données niatteignent la mémoire en vue de l'utilisation du système, et les données non cryptées écrites par le système sont cryptées avant que les données n'atteignent la mémoire DRAM (30), et ensuite sont mémorisées dans des dispositifs périphériques (20). 2. Mémoire de cryptage/décryptage (50) selon revendication 1, caractérisée en ce que ledit contrôleur de cryptage (52) est une unité de chiffrement de flux ou bien un générateur pseudo-aléatoire destiné à procéder au cryptage/décryptage des données. 3. Mémoire de cryptage/décryptage (50) selon la revendication 1, caractérisée en ce que ledit procédé d'activation de cryptage/décryptage consiste à activer la procédure de cryptage/décryptage, lorsque le système d'exploitation ou le programme de logiciel ordonne au système de lire et écrire de façon répétée au même emplacement de mémoire, ctest-à-dire de répéter la lecture, la lecture et l'écriture 256 fois ou plus. 4. Mémoire de cryptage/décryptage (50) selon la revendication 1, caractérisée en ce que ledit procédé d'activation de cryptage/décryptage consiste à activer la procédure de cryptage/décryptage lorsque le système d'exploitation ou bien le programme de logiciel ordonne au système de lire/ecrire certains caractères, par exemple 10101010, de façon permanente à un emplacement quelconque décrit au préalable. 5. Mémoire cryptage/décryptage (50) selon la revendication 1, caractérisée en ce que ledit procédé de cryptage/décryptage consiste à activer la procédure de cryptage/décryptage lorsque les procédures de cryptage/décryptage ont lieu selon la revendication 3 et la revendication 4. 6. Mémoire de cryptage/décryptage (50) selon la revendication 1, caractérisée en ce que ledit registre de cryptage (56) comporte un bit en tant qu'initialisation de l'arrêt de la procédure de cryptage/décryptage. 7. Mémoire de cryptage/décryptage (50) selon la revendication 1, caractérisée en ce que ladite mémoire (50) est choisie dans le groupe formé par une mémoire DRAM, une mémoire SDRAM et une mémoire SRAM. 8. Mémoire de cryptage/décryptage (50) selon la revendication 1, caractérisée en ce que ledit procédé de cryptage/décryptage est utilisé comme pour une mémoire normale avant ou bien après que le procédé de cryptage/décryptage soit activé. 9. Procédé de sauvegarde et de récupération mettant en oeuvre une mémoire selon l'une des revendications 1 à 8, procédé dans lequel ladite mémoire de cryptage (50) est initialisée par le système d'exploitation ou bien le programme de logiciel, procédé caractérisé en qu'il comprend les étapes suivantes : a. le choix de l'emplacement de la mémoire (50) et la transformation de celui-ci en un registre de cryptage (56), b. l'initialisation de la zone de sélection, c. la détermination des emplacements de début et de fin et des tailles des zones (Al à A4), d. la détermination du cryptage/décryptage pour la totalité des zones sur la base des voies de transmission des données, e. la mémorisation des résultats obtenus à partir des étapes a à d dans le registre de cryptage (56) et le choix des règles de fonctionnement, f. la détection de ce que les fonctions de cryptage/décryptage spéciales sont activées, g. le cryptage/décryptage immédiat des données et la mémorisation des données dans les zones préétablies de cryptage/décryptage pour le système ou bien les dispositifs périphériques en vue d'une récupération après que les fonctions de cryptage/décryptage spéciales soient activées. 10. Procédé selon la revendication 9, caractérisé en ce que lesdites règles de fonctionnement sont du type RSA et ECC. 11. Procédé selon la revendication 9, caractérisé en ce que ladite procédure d'initialisation comprend en outre l'arrêt du cryptage/décryptage, grâce à une instruction d'arrêt vers l'octet, qui est positionné dans le registre de cryptage (56) en vue de commander le procédé de cryptage/décryptage, pour mettre fin au cryptage/décryptage.