FR2861234A1 - Chiffrement de donnees dans un appareil electronique a plusieurs processeurs symetriques - Google Patents
Chiffrement de donnees dans un appareil electronique a plusieurs processeurs symetriques Download PDFInfo
- Publication number
- FR2861234A1 FR2861234A1 FR0312206A FR0312206A FR2861234A1 FR 2861234 A1 FR2861234 A1 FR 2861234A1 FR 0312206 A FR0312206 A FR 0312206A FR 0312206 A FR0312206 A FR 0312206A FR 2861234 A1 FR2861234 A1 FR 2861234A1
- Authority
- FR
- France
- Prior art keywords
- data word
- circuit
- pseudo
- data
- secret key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Abstract
Pour le chiffrement de données à stocker dans une mémoire (23) externe à un circuit, on prévoit de stocker dans la mémoire externe des mots de données chiffrés (Ci) en association avec un vecteur d'initialisation (IVi) et un identificateur de clé (KIDi) associé à une clé secrète (Ki) ayant servi à le chiffrer.
Description
CHIFFREMENT DE DONNEES DANS UN APPAREIL ELECTRONIQUE A
PLUSIEURS PROCESSEURS SYMETRIQUES
La présente invention concerne de façon générale le chiffrement ou cryptage de données destinées à être utilisées dans un ou plusieurs processeurs, lorsque ces données doivent être stockées dans une mémoire externe aux processeurs.
Elle trouve des applications, en particulier, dans les appareils électroniques ayant une architecture à plusieurs processeurs symétriques et à mémoire externe partagée (ou architecture SMP, de l'anglais "Symetric Multi-Processor"). Plus précisément, la présente invention concerne les applications dans lesquelles on souhaite empêcher qu'un utilisateur non autorisé accède à données de façon exploitable, et dans lesquelles lesdites données doivent, au moins en partie, pouvoir être accédées par plus d'un circuit.
On fait ici référence au terme "données" pour désigner indifféremment n'importe quel code binaire qu'il s'agisse de programmes exécutables, ou de données binaires qui sont traitées par ces programmes. De plus, on fait référence au terme "circuit" pour désigner indifféremment n'importe quelle unité fonctionnelle d'un appareil électronique reliée à d'autres unités fonctionnelles via un ou plusieurs bus de communication, qu'il s'agisse d'un processeur, d'un contrôleur de périphérique (par exemple un contrôleur de disque), une carte réseau,etc.
La figure 1 illustre schématiquement l'architecture SMP d'un appareil électronique, à laquelle s'applique la présente invention. Plusieurs processeurs 2 (CPU) sont couplés à une mémoire externe 4 (EXT MEM), par l'intermédiaire d'un ou plusieurs bus 3. On peut définir une zone 1, dite zone sécurisée, à l'intérieur de laquelle se trouve un ou plusieurs processeurs 2, et à l'intérieur de laquelle on considère que les données traitées ne sont pas susceptibles d'être piratées. En pratique, la zone sécurisée 1 comprend le plus souvent une ou plusieurs puces de circuit intégré correspondant à des processeurs respectifs, la mémoire 4 étant une autre puce qui n'appartient pas à la zone sécurisée. En outre, d'autres circuits 5, comme un contrôleur de disque (DSK CTRL) ou une carte réseau (NET LARD), peuvent être reliés aux processeurs 2 par l'intermédiaire des bus 3.
Le chiffrement auquel s'applique la présente invention concerne plus particulièrement celui des données transitant sur le ou les bus 3, entre la mémoire 4 et le ou les processeurs 2 de la zone 1. Dans le jargon de l'Homme du métier, on parle de chiffrement de la mémoire ou encore de chiffrement du bus. Ce chiffrement consiste à coder les données stockées dans la mémoire 4 au moyen d'une clé de chiffrement de bus connue par les processeurs concernés.
Des exemples de solution pour chiffrer une mémoire externe à un microprocesseur sont décrits dans les brevets américains 5 825 878, 10 5 982 887, et 6 041 449.
Ces solutions ne sont pas adaptées au cas des systèmes à architecture SMP, dans la mesure où l'on doit utiliser la même clé de chiffrement de bus pour chiffrer et pour déchiffrer les données alors que chaque processeur utilise une clé de chiffrement de bus qui lui est propre. En effet, des mesures doivent être prises pour permettre un autre processeur de la zone sécurisée de déchiffrer, en vue de les utiliser, des données chiffrées et stockées dans la mémoire externe partagée par un autre processeur de ladite zone sécurisée. Ces mesures doivent toutefois être compatibles avec le caractère de clé secrète des clés de chiffrement de bus.
Une autre contrainte est liée à la méthode de chiffrement utilisée. Dans l'art antérieur, on utilise généralement des chiffrements par blocs avec des algorithmes de type DES ("Data Encryption System") ou AES ("Advanced Encryption System"), selon un mode par carnet de codage électronique dit mode ECB ("Electronic Code Book") ou un mode par chaînage de blocs dit mode CBC ("Cipher-Block Chaining"). La taille d'un bloc dépend de l'algorithme de chiffrement utilisé. Dans le mode ECB, deux blocs identiques sont chiffrés de la même manière. Des attaques sont donc possibles, par la technique dite "du dictionnaire", dans la mesure où la redondance de messages chiffrés de façon identique peut permettre l'identification des messages en clair. Par opposition, dans le mode CBC, chaque bloc est chiffré en fonction des blocs précédents. Ce mode est plus robuste. Néanmoins, il nécessite un accès séquentiel à la mémoire, ce qui le rend incompatible avec le chiffrement de données auxquelles on souhaite pouvoir accéder aléatoirement dans la mémoire externe.
La présente invention vise à proposer, dans le contexte d'un appareil électronique à architecture SMP, une nouvelle technique de chiffrement, par un processeur, de données à stocker dans une mémoire externe à ce processeur, lorsque les données doivent pouvoir être exploitées par plus d'un processeur.
A cet effet, un premier aspect de l'invention prévoit un procédé de chiffrement dans un circuit d'un appareil électronique, de données à stocker dans une mémoire externe audit circuit, comprenant les étapes consistant à : - sélectionner une clé secrète, à partir d'une liste de clés secrètes respectivement stockées dans un ensemble de registres du circuit en association chacune avec un identificateur de clé, au moins l'une desdites clés étant une clé partagée avec au moins un autre circuit de l'appareil électronique; - découper les données en un flux de mots de données de taille déterminée; et, en continu pour chaque mot de données, générer un nombre pseudo aléatoire de taille déterminée au moyen d'un générateur pseudo aléatoire mettant en oeuvre un algorithme de génération en fonction de ladite clé secrète et d'un vecteur d'initialisation changeant de valeur à chaque mot de données; - combiner le mot de données et le nombre pseudo aléatoire correspondant, pour générer un mot de données chiffré ; puis, - stocker dans ladite mémoire externe chaque mot de données chiffré 25 en association avec le vecteur d'initialisation et l'identificateur de clé associé à la clé secrète ayant servi à le chiffrer.
Un deuxième aspect de l'invention prévoit un procédé de déchiffrement, dans un circuit d'un appareil électronique, de données stockées sous la forme de mots de données chiffrés dans une mémoire externe audit circuit, comprenant les étapes consistant à : - lire dans ladite mémoire externe un mot de données chiffrés ainsi qu'un vecteur d'initialisation et qu'un identificateur de clé secrète respectivement associés audit mot de données; - sélectionner une clé secrète, à partir d'une liste de clés secrètes respectivement stockées dans un ensemble de registres du circuit et dont l'une au moins est une clé partagée avec au moins un autre circuit de l'appareil électronique, et à partir en outre dudit identificateur; et, en continu pour chaque mot de données chiffré, - générer un nombre pseudo aléatoire de taille déterminée au moyen d'un générateur pseudo aléatoire mettant en oeuvre un algorithme de génération en fonction de ladite clé secrète et dudit vecteur d'initialisation; et - combiner le mot de données et le nombre pseudo aléatoire correspondant, pour générer un mot de données déchiffré.
Un troisième aspect de l'invention se rapporte à un dispositif pour la mise en oeuvre d'un procédé de chiffrement selon le premier aspect, comprenant: - un ensemble des registres stockant des clés secrètes respectives, dont l'une au moins est une clé partagée avec un autre circuit de l'appareil électronique, en association chacune avec un identificateur de clé ; - une unité de sélection de clés secrètes adaptée pour sélectionner une clé secrète à partir de la liste des clés stockées dans ledit ensemble de registres; - une unité de segmentation adaptée pour découper les données de manière à former un flux de mots de données de taille déterminée; - un générateur de vecteur d'initialisation adapté pour générer un flux de vecteurs d'initialisation changeant de valeur à chaque mot de données; - un générateur de nombres pseudo aléatoires mettant en oeuvre un algorithme de génération adapté pour générer, pour chaque mot de données, en fonction de ladite clé secrète et d'un déterminé desdits vecteurs d'initialisation, un nombre pseudo aléatoire de taille déterminée; - une unité de combinaison adaptée pour combiner en continu le mot de données et le nombre pseudo aléatoire correspondant, pour générer un mot de données chiffré ; et, - des moyens pour stocker dans ladite mémoire externe chaque mot de données chiffré en association avec ledit vecteur d'initialisation déterminé et l'identificateur de clé associé à la clé secrète ayant servi à le chiffrer.
De plus, selon un quatrième aspect, l'invention propose un dispositif pour la mise en oeuvre d'un procédé de déchiffrement selon le deuxième aspect. Ce dispositif comprend: - un ensemble de registres stockant des clés secrètes respectives dont l'une au moins est une clé partagée, en association chacune avec un identificateur de clé ; - des moyens de lecture pour lire dans ladite mémoire externe un mot de données ainsi qu'un vecteur d'initialisation et qu'un identificateur d'une clé secrète respectivement associés audit mot de données; - des moyens de sélection pour sélectionner, pour chaque mot de données, une clé secrète à partir d'une liste de clés stockées dans lesdits registres et à partir en outre dudit identificateur de clé ; - un générateur de nombres pseudo aléatoires mettant en oeuvre un algorithme de génération adapté pour générer, pour chaque mot de données, en fonction de ladite clé secrète et dudit vecteur d'initialisation, un nombre pseudo aléatoire de taille déterminée; et, une unité de combinaison adaptée pour combiner le mot de données et le nombre pseudo aléatoire correspondant, de manière à déchiffrer ledit mot de données.
Un cinquième aspect de l'invention concerne un circuit comprenant une unité de chiffrement/déchiffrement formant dispositif de chiffrement selon le troisième aspect et dispositif de déchiffrement selon le quatrième aspect. L'ensemble de registres, le générateur de nombres pseudo aléatoires et l'unité de combinaison sont alors communs aux deux dispositifs.
Selon un sixième et dernier aspect, l'invention propose encore un appareil électronique comprenant au moins deux circuits selon le cinquième aspect, dans lequel au moins l'une des clés secrètes est partagée entre lesdits circuits de manière à former un sous-système sécurisé.
Les clés sont dites partagées en ce sens que d'autres circuits de l'appareil électronique les connaissent, par exemple les circuits appartenant à la zone sécurisée, c'est-à-dire au sous-système sécurisé. L'invention offre ainsi une solution qui permet d'individualiser le chiffrement selon le processeur qui le réalise, tout en assurant que tous les processeurs ayant l'autorisation d'utiliser les données stockées dans la mémoire externe pourront les déchiffrer.
Le chiffrement selon l'invention est du type d'un chiffrement en continu ("Stream Cipher"), qui est plus simple et donc plus rapide qu'un chiffrement par blocs. Un chiffrement en continu est en outre insensible aux attaques par dictionnaire, car le même mot de données est chiffré en un mot différent à chaque chiffrement.
De plus, le chiffrement selon l'invention est compatible avec un accès aléatoire à la mémoire externe.
D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels: - la figure 1 est un schéma d'un appareil électronique auquel peuvent s'appliquer les différents aspects de l'invention - la figure 2 est un schéma fonctionnel d'un exemple de circuit couplé à une mémoire externe, selon un mode de réalisation d'un circuit selon l'invention.
Sur les dessins, les mêmes éléments sont désignés par les mêmes références aux différentes figures. Pour des raisons de clarté, seules les étapes du procédé et les éléments qui sont nécessaires à la compréhension de l'invention ont été représentés et sont décrits dans la suite. En particulier, tous les éléments d'un circuit n'ont pas été détaillés, l'invention exploitant des composants connus pour sa mise en oeuvre.
Une caractéristique de la présente invention est de chiffrer des données (programmes, données binaires quelconques) devant être stockées dans une mémoire externe partagée par plusieurs circuits d'un appareil électronique. Les données sont chiffrées au moyen d'une clé secrète, propre au circuit réalisant le chiffrement, qui peut être différente de la clé secrète utilisée par d'autres circuits pour un chiffrement comparable.
Afin de permettre l'utilisation des données chiffrées par plus d'un circuit, certaines au moins des clés secrètes susceptibles d'être utilisées par un circuit sont partagées avec un ou des autres circuits, c'est-à-dire qu'elle sont connues de ces circuits tout en étant secrètes vis-à-vis du reste du système.
Une clé partagée définit un sous-système de circuits pouvant utiliser des données communes stockées dans la mémoire externe. Typiquement, ce soussystème peut correspondre à une zone sécurisée telle que présentée en introduction en regard du schéma de la figure 1.
De plus, les données sont stockées dans la mémoire externe en association avec un identificateur de la clé secrète ayant servi à les chiffrer. Cet identificateur permet aux circuits autorisés de déterminer la clé secrète à utiliser pour le déchiffrement des données. Cet identificateur peut correspondre à un index dans un ensemble de registres internes dans lesquels les clés secrètes supportées par un circuit sont respectivement stockées. Ce n'est donc pas la clé secrète elle-même qui est stockée avec les données chiffrées par elle, mais l'identificateur de cette clé secrète. La divulgation de l'identificateur par stockage dans la mémoire externe n'apporte aucune faiblesse de chiffrement, puisque seuls les circuits autorisés peuvent connaître la clé secrète à utiliser à partir de cet identificateur.
Une autre caractéristique de la présente invention est de prévoir un chiffrement et un déchiffrement en continu, lors des transferts entre un circuit et la mémoire externe. Ce chiffrement continu est obtenu à partir d'un découpage des données en mots de taille déterminée qui sont ensuite stockés sous forme chiffrée dans la mémoire externe. On prévoit également que le chiffrement utilise la combinaison d'un mot de données avec un nombre pseudo aléatoire, lequel est généré à partir de la clé secrète et d'un vecteur d'initialisation.
Avantageusement, le vecteur d'initialisation change de valeur pour chaque mot, de préférence de façon aléatoire, afin de renforcer la sécurité du chiffrement. Le vecteur d'initialisation ayant servi au chiffrement d'un mot de données est avantageusement stocké dans la mémoire externe en association avec le mot de données chiffré, de même que l'identificateur de la clé secrète comme indiqué ci-dessus. On s'affranchit ainsi des problèmes liés au chiffrement en continu qui sont classiquement incompatibles avec les accès directs aléatoires à une mémoire.
Le schéma de la figure 2 montre les moyens essentiels d'un exemple de réalisation d'un circuit convenant pour la mise en oeuvre du procédé de chiffrement (illustrée par les flèches en traits pleins) et pour la mise en oeuvre du procédé de déchiffrement (illustrée par les flèches en traits pointillés).
Le circuit est ici un processeur 2 (CPU) comprenant un coeur de processeur 44 (CORE), des mémoires cache 33 et 34 (CACHE), une unité 31 (KSEL) de sélection de clé de chiffrement (K), et une unité 38 (BEU) de chiffrement/déchiffrement.
L'unité 38 comprend une unité 22 (SEGM) de segmentation de données, un ensemble 32 (KREG) de registres de clés secrètes, un premier générateur pseudo aléatoire 24 (IVGEN), une mémoire cache 25 (IVCACHE), un registre de clé de chiffrement 12 et un registre de vecteur d'initialisation 13, un second générateur pseudo aléatoire 10 (PRNG), et enfin une unité de combinaison 11.
L'unité de segmentation 22 a pour fonction de segmenter les données à chiffrer (DATA) qu'elle reçoit du coeur de processeur 44, en mots de données (W) de taille déterminée. Un mot de données peut ainsi comprendre un seul bit. De préférence, toutefois, la taille d'un mot est égale à un octet, c'est-à-dire qu'un mot comprend huit bits.
Chaque registre de l'ensemble 32 est adapté pour stocker de manière non volatile une clé secrète (K) à laquelle est associé un identificateur de clé secrète (KID). Tout ou partie des clés secrètes peut être fournie au processeur via un canal sécurisé, par exemple lors de la fabrication du système. Certaines au moins des clés secrètes peuvent, à l'inverse, être générées en interne selon un algorithme ad-hoc dont la description sortirait du cadre du présent exposé. Dans un exemple préféré pour sa simplicité, l'identificateur est un index, tel qu'un numéro de registre, permettant d'accéder à la clé secrète correspondante parmi la liste de clés secrètes supportées par le processeur et stockées dans l'ensemble 32.
Le générateur aléatoire 24 est adapté pour générer des vecteurs d'initialisation, au rythme d'un vecteur d'initialisation par mot de données à chiffrer, selon un algorithme pseudo aléatoire quelconque.
La mémoire cache 25 est adaptée pour stocker des paires formées chacune d'un vecteur d'initialisation et d'un identificateur de clé associés à un mot de données.
Le registre 12 est adapté pour stocker une clé de chiffrement, à savoir l'une des clés secrètes stockées dans l'ensemble de registres 32. Ce registre est indiqué ici pour la clarté de l'exposé, mais il peut être omis si l'on prévoit des moyens de gestion de l'ensemble de registres 32 adaptés.
Le registre 13 de vecteur d'initialisation a pour fonction de stocker le vecteur d'initialisation généré en continu par le générateur pseudo aléatoire 24. De préférence, la taille des vecteurs d'initialisation est égale à la taille des mots de données à chiffrer.
Le rôle du générateur pseudo aléatoire 10 est de générer en continu un flux de nombres pseudo aléatoires (PN), à raison d'un tel nombre par mot de données à chiffrer. Chaque nombre pseudo aléatoire est généré à partir de la clé de chiffrement stockée dans le registre 12 et du vecteur d'initialisation stocké dans le registre 13, ce dernier changeant de valeur à chaque mot de données.
Dans un exemple, l'unité de combinaison est une porte OU-Exclusif (XOR). Le générateur pseudo aléatoire 10 et une porte XOR forment un cryptosystème qui, en soi, est bien connu de l'Homme du métier. Les mots de données chiffrés qu'il délivre en sortie ont la même taille que les mots de données (avant chiffrement) reçus en entrée. Un tel cryptosystème présente l'avantage de fournir un algorithme de chiffrement simple, donc rapide, et dont la robustesse vis-à-vis des attaques de sécurité est déterminée par les détails internes du générateur pseudo aléatoire 10. Plus le flux de nombre PN généré par ce dernier est aléatoire, meilleure est la sécurité de l'algorithme de chiffrement. Un autre avantage d'un algorithme de chiffrement par porte XOR est que le déchiffrement s'effectue de la même façon que le chiffrement, ce qui simplifie la conception matérielle du cryptosystème.
Le fonctionnement du circuit en mode chiffrement, va maintenant être expliqué, en considérant les flèches en traits pleins représentés à la figure 2.
Le mode chiffrement est typiquement activé par le coeur de processeur 44 lorsque des données DATA stockées dans, ou transitant par la mémoire cache 34 doivent être écrites dans la mémoire externe 23, et doivent à cet effet transiter via le bus de communication 3.
Le coeur 44 commande l'unité de sélection 31 de manière à sélectionner l'une des clés secrètes stockées dans l'ensemble de registre 32. Dans un exemple, l'unité 31 sélectionne un identificateur de clé secrète KIDi associé à une clé secrète déterminée. Cet identificateur KIDi est fourni par l'unité 31 à l'unité de chiffrement 38.
Dans l'unité de chiffrement 38, la clé Ki associée à l'identificateur KIDi est lue dans l'ensemble de registre 32 à l'aide dudit identificateur KIDi, utilisé par exemple comme index dans le parcours de l'ensemble de registres 32. La clé Ki est alors stockée dans le registre 12.
Par ailleurs, le coeur 44 commande la mémoire cache 34 de manière que les données DATA sont fournies à l'unité de chiffrement 38, et plus particulièrement en entrée de l'unité de segmentation 22. Cette dernière délivre un flux de mots binaires Wi correspondant chacun à un segment du flux de données DATA. Parallèlement, le générateur pseudo aléatoire 24 génère un flux de vecteurs d'initialisation IVi, au rythme de la délivrance des mots de données Wi par l'unité 22, ces vecteurs d'initialisation changeant de valeur à chacun des mots Wi. Dit autrement, à chaque mot de données Wi est associé un vecteur d'initialisation IVi dont la valeur est différente de celle du vecteur d'initialisation associée au mot précédent dans le flux de mot de données. Les vecteurs d'initialisation IVi, qui sont générés en continu, sont à chaque fois stockés dans le registre 13.
Pour chaque mot de données Wi, les opérations suivantes sont alors effectuées en continu.
D'une part, le générateur pseudo aléatoire 10 génère un nombre pseudo aléatoire PNi en fonction de la clé secrète Ki stockée dans le registre 12 et du vecteur d'initialisation IVi stocké dans le registre 13. A chaque fois, le nombre PNi est délivré sur une seconde entrée de la porte XOR 11.
D'autre part, le mot de données Wi et le nombre pseudo aléatoire PNi correspondant sont combinés par la porte XOR 11, de manière à générer un 30 mot de données chiffré Ci.
L'unité de chiffrement 38 stocke alors le mot Ci dans la mémoire externe 23, ainsi que et en association avec le vecteur d'initialisation IVi, et l'identificateur de clé secrète KIDi qui ont servi à le chiffrer. Pour cette écriture, le mot de données chiffré Ci, le vecteur d'initialisation IVi et l'identificateur de clé secrète KIDi transitent par l'intermédiaire du bus de communication 3. Ceci n'est toutefois pas une faiblesse de sécurité du procédé de chiffrement, dans la mesure où le mot Ci est chiffré, où le vecteur d'initialisation IVi ne suffit pas à lui seul pour réaliser le déchiffrement, et où l'identificateur KIDi n'a aucune signification pour un autre circuit qui ne dispose pas de la clé secrète associée à cet identificateur.
Le fonctionnement du circuit en mode déchiffrement est maintenant exposé en considérant les flèches en traits pointillés représentés à la figure 2.
Sous la commande du coeur de processeur 44, des mots de données chiffrés sont lus dans la mémoire externe 23 à des adresses déterminées. Chaque mot Cj ainsi lu est délivré sur la première entrée de la porte XOR 11. Pour chaque mot Cj, le vecteur d'initialisation IVj et l'identificateur de clé secrète KIDj qui sont associés à ce mot, sont également lus dans la mémoire externe 23.
A partir de l'identificateur KIDj, l'unité de déchiffrement 38 sélectionne la clé secrète Kj associée à cet identificateur, en cherchant dans la liste des clés secrètes stockées dans l'ensemble de registres 32. La clé Kj ainsi sélectionnée est stockée dans le registre 12. Parallèlement, le vecteur IVj est stocké dans le registre 13.
En fait, le vecteur IVj et l'identificateur KID] transitent par la mémoire cache 25. Cette mise en mémoire cache permet d'améliorer les performances de l'unité de déchiffrement, en terme de vitesse de déchiffrement. Le générateur pseudo aléatoire 10 génère alors un nombre pseudo aléatoire PNj à partir de la clé Kj stockée dans le registre 12 et du vecteur IVj stocké dans le registre 13. Le nombre PNj est délivré sur la seconde entrée de la porte XOR 11.
La porte XOR 11 combine le mot de données chiffrées Cj et le nombre pseudo aléatoire PNj et délivre en sortie un mot de donnée Wj correspondant 30 au mot Cj déchiffré.
Le mot de données déchiffré Wj est alors fourni au coeur de processeur 44 à travers la mémoire cache 33.
Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'Homme du métier. En particulier, l'invention pourra être mise en oeuvre avec n'importe quel algorithme de chiffrement continu connu, conditionnant le générateur pseudo aléatoire 10 à partir de la clé secrète et des vecteurs d'initialisation. De plus, on suppose que la réalisation pratique de l'invention est à la portée de l'Homme du métier à partir des indications fonctionnelles données plus haut. A cet égard, on notera que, selon un mode de réalisation de l'invention décrit ici, les différents outils de chiffrement et de déchiffrement sont réalisés par des ressources matérielles du processeur. Toutefois, une mise en oeuvre par des ressources logicielles est bien entendu envisageable.
En outre, l'invention ne se limite en aucune manière à une application dans un processeur. Bien au contraire, une unité de chiffrement/déchiffrement telle que l'unité 38 décrite plus haut peut être prévue dans d'autres circuits d'un appareil électronique tel que représenté à la figure 1, notamment dans le contrôleur de disque ou dans la carte réseau.
On notera également que la totalité des données stockées dans la mémoire externe ne doit pas forcément être chiffrée. A cet égard, on peut prévoir qu'un identificateur de clé ayant la valeur nulle correspond à l'absence de chiffrement du mot de données correspondant, c'est-à-dire que ledit mot de données est stocké en clair dans la mémoire externe.
Claims (14)
1. Procédé de chiffrement dans un circuit (2) d'un appareil électronique, de données à stocker dans une mémoire (23) externe audit circuit, comprenant les étapes consistant à : - sélectionner une clé secrète (Ki), à partir d'une liste de clés secrètes (K) respectivement stockées dans un ensemble de registres (32) du circuit en association chacune avec un identificateur de clé (KID), au moins l'une desdites clés étant une clé partagée avec au moins un autre circuit de l'appareil électronique; découper les données en un flux de mots de données (Wi) de taille déterminée; et, en continu pour chaque mot de données, - générer un nombre pseudo aléatoire (PNi) de taille déterminée au moyen d'un générateur pseudo aléatoire mettant en oeuvre un algorithme de génération en fonction de ladite clé secrète et d'un vecteur d'initialisation (lVi) changeant de valeur à chaque mot de données; - combiner le mot de données et le nombre pseudo aléatoire correspondant, pour générer un mot de données chiffré (Ci) ; puis, - stocker dans ladite mémoire externe chaque mot de données chiffré en association avec le vecteur d'initialisation et l'identificateur de clé (KIDi) associé à la clé secrète ayant servi à le chiffrer.
2. Procédé selon la revendication 1, suivant lequel la combinaison est du type OU-Exclusif, la taille des nombres pseudo aléatoires étant égale à la taille des mots de données.
3. Procédé selon l'une quelconque des revendications précédentes, suivant lequel au moins l'une des clés secrètes est propre au circuit.
4. Procédé de déchiffrement, dans un circuit (2) d'un appareil électronique, 30 de données stockées sous la forme de mots de données chiffrés dans une mémoire (23) externe audit circuit, comprenant les étapes consistant à : - lire dans ladite mémoire externe un mot de données chiffrés (Cj) ainsi qu'un vecteur d'initialisation (lVj) et qu'un identificateur de clé secrète (KlDj) respectivement associés audit mot de données; - sélectionner une clé secrète (Kj), à partir d'une liste de clés secrètes (K) respectivement stockées dans un ensemble de registres (32) du circuit et dont l'une au moins est une clé partagée avec au moins un autre circuit de l'appareil électronique, et à partir en outre dudit identificateur; et, en continu pour chaque mot de données chiffré, générer un nombre pseudo aléatoire (PNj) de taille déterminée, au moyen d'un générateur pseudo aléatoire (10) mettant en oeuvre un algorithme de génération en fonction de ladite clé secrète et dudit vecteur d'initialisation; et, - combiner le mot de données et le nombre pseudo aléatoire correspondant, pour générer un mot de données déchiffré (Wj).
5. Procédé selon la revendication 4, suivant lequel la combinaison est du type OU-Exclusif, la taille des nombres pseudo aléatoires étant égale à la taille des mots de données.
6. Procédé selon l'une quelconque des revendications 4 et 5, suivant lequel le vecteur d'initialisation et l'identificateur de clé secrète lus dans la mémoire externe, sont stockés en association l'un avec l'autre dans une mémoire cache (25) du circuit.
7. Dispositif pour la mise en oeuvre d'un procédé de chiffrement selon l'une quelconque des revendications 1 à 3, comprenant: - un ensemble des registres (32) stockant des clés secrètes (K) respectives, dont l'une au moins est une clé partagée avec un autre circuit de l'appareil électronique, en association chacune avec un identificateur de clé (KID); - une unité de sélection de clés secrètes adaptée pour sélectionner une clé secrète (Ki) à partir de la liste des clés stockées dans ledit ensemble de registres; - une unité de segmentation (22) adaptée pour découper les données de manière à former un flux de mots de données (Wi) de taille déterminée; - un générateur de vecteurs d'initialisation (24) adapté pour générer un flux de vecteurs d'initialisation (lVi) changeant de valeur à chaque mot de données; - un générateur de nombres pseudo aléatoires (10) mettant en oeuvre un algorithme de génération adapté pour générer, pour chaque mot de données, en fonction de ladite clé secrète et d'un déterminé desdits vecteurs d'initialisation, un nombre pseudo aléatoire (PNi) de taille déterminée; - une unité de combinaison (11) adaptée pour combiner en continu le mot de données et le nombre pseudo aléatoire correspondant, pour générer un mot de données chiffré (Ci) ; et, - des moyens pour stocker dans ladite mémoire externe chaque mot de données chiffré en association avec ledit vecteur d'initialisation déterminé et 15 l'identificateur de clé associé à la clé secrète ayant servi à le chiffrer.
8. Dispositif pour la mise en oeuvre d'un procédé de déchiffrement selon l'une quelconque des revendications 4 à 6, comprenant: - un ensemble de registres stockant des clés secrètes respectives dont 20 l'une au moins est une clé partagée, en association chacune avec un identificateur de clé ; - des moyens de lecture pour lire dans ladite mémoire externe un mot de données ainsi qu'un vecteur d'initialisation et qu'un identificateur d'une clé secrète respectivement associés audit mot de données; - des moyens de sélection pour sélectionner, pour chaque mot de données, une clé secrète à partir d'une liste de clés stockées dans lesdits registres et à partir en outre dudit identificateur de clé ; - un générateur de nombres pseudo aléatoires (10) mettant en oeuvre un algorithme de génération adapté pour générer, pour chaque mot de données, en fonction de ladite clé secrète et dudit vecteur d'initialisation, un nombre pseudo aléatoire de taille déterminée; et, - une unité de combinaison adaptée pour combiner le mot de données et le nombre pseudo aléatoire correspondant, de manière à déchiffrer ledit mot de données.
9. Circuit comprenant une unité de chiffrement/déchiffrement (38) formant dispositif de chiffrement selon la revendication 7 et dispositif de déchiffrement selon la revendication 8, l'ensemble de registres, le générateur de nombres pseudo aléatoires et l'unité de combinaison étant communs aux deux dispositifs.
10. Circuit selon la revendication 9, dans lequel l'unité de combinaison est une porte OU-Exclusif, la taille des nombres pseudo aléatoires étant égale à la taille des mots de données.
11. Circuit selon l'une quelconque des revendications 9 et 10, dans lequel au moins l'une des clé secrètes est propre au circuit.
12. Circuit selon l'une quelconque des revendications 9 à 11, dans lequel au moins l'une des clé secrètes est partagée avec un autre circuit d'un appareil électronique.
13. Circuit selon l'une quelconque des revendications 9 à 12, dans lequel l'unité de chiffrement/déchiffrement comprend une mémoire cache (25) dans laquelle le vecteur d'initialisation et l'identificateur de clé secrète lus dans la mémoire externe sont stockés en association l'un avec l'autre.
14. Appareil électronique comprenant au moins deux circuits selon l'une quelconque des revendications 9 à 13, dans lequel au moins l'une des clés secrètes est partagée entre lesdits circuits de manière à former un soussystème sécurisé.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0312206A FR2861234A1 (fr) | 2003-10-17 | 2003-10-17 | Chiffrement de donnees dans un appareil electronique a plusieurs processeurs symetriques |
DE602004001732T DE602004001732T2 (de) | 2003-10-17 | 2004-09-06 | Datenverschlüsselung in einem elektronischen Gerät mit mehreren symmetrischen Prozessoren |
EP04292137A EP1524795B1 (fr) | 2003-10-17 | 2004-09-06 | Chiffrement de données dans un appareil électronique à plusieurs processeurs symétriques |
US10/966,833 US7657034B2 (en) | 2003-10-17 | 2004-10-14 | Data encryption in a symmetric multiprocessor electronic apparatus |
JP2004301252A JP2005122745A (ja) | 2003-10-17 | 2004-10-15 | 対称型マルチプロセッサを持つ電子機器におけるデータの暗号化 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0312206A FR2861234A1 (fr) | 2003-10-17 | 2003-10-17 | Chiffrement de donnees dans un appareil electronique a plusieurs processeurs symetriques |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2861234A1 true FR2861234A1 (fr) | 2005-04-22 |
Family
ID=34355508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0312206A Pending FR2861234A1 (fr) | 2003-10-17 | 2003-10-17 | Chiffrement de donnees dans un appareil electronique a plusieurs processeurs symetriques |
Country Status (5)
Country | Link |
---|---|
US (1) | US7657034B2 (fr) |
EP (1) | EP1524795B1 (fr) |
JP (1) | JP2005122745A (fr) |
DE (1) | DE602004001732T2 (fr) |
FR (1) | FR2861234A1 (fr) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070258586A1 (en) * | 2006-04-28 | 2007-11-08 | Chien-Chung Huang | Personal video recorder having dynamic security functions and method thereof |
US7903812B2 (en) * | 2006-09-07 | 2011-03-08 | International Business Machines Corporation | Detection and handling of encryption key and initialization vector |
US20080084995A1 (en) | 2006-10-06 | 2008-04-10 | Stephane Rodgers | Method and system for variable and changing keys in a code encryption system |
US7925890B2 (en) * | 2006-10-23 | 2011-04-12 | Harris Corporation | Network centered recovery process for cryptographic processing modules |
US8345713B2 (en) * | 2006-10-25 | 2013-01-01 | Verizon Patent And Licensing Inc. | Methods and apparatus for content scrambling in a communications system |
US8464069B2 (en) * | 2007-02-05 | 2013-06-11 | Freescale Semiconductors, Inc. | Secure data access methods and apparatus |
US8707082B1 (en) * | 2009-10-29 | 2014-04-22 | Symantec Corporation | Method and system for enhanced granularity in fencing operations |
US8990582B2 (en) * | 2010-05-27 | 2015-03-24 | Cisco Technology, Inc. | Virtual machine memory compartmentalization in multi-core architectures |
US8621260B1 (en) | 2010-10-29 | 2013-12-31 | Symantec Corporation | Site-level sub-cluster dependencies |
JP5806187B2 (ja) * | 2012-09-14 | 2015-11-10 | レノボ・シンガポール・プライベート・リミテッド | 秘密情報の交換方法およびコンピュータ |
CN107690773B (zh) * | 2015-05-01 | 2021-02-26 | 马维尔亚洲私人有限公司 | 用于经由芯片间跳频总线的安全数据传送的系统和方法 |
US10438006B2 (en) * | 2017-07-27 | 2019-10-08 | Citrix Systems, Inc. | Secure information storage |
GB201713499D0 (en) | 2017-08-23 | 2017-10-04 | Nchain Holdings Ltd | Computer-implemented system and method |
US11727127B2 (en) * | 2020-10-16 | 2023-08-15 | Micron Technology, Inc. | Secure storage device verification with multiple computing devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5438622A (en) * | 1994-01-21 | 1995-08-01 | Apple Computer, Inc. | Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing an offset in the pseudorandom sequence |
WO1999012310A1 (fr) * | 1997-08-28 | 1999-03-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Chiffrement de paquets de donnees a l'aide d'une sequence de cles secretes generees a partir d'un echange de cle revelee |
US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
EP1229427A2 (fr) * | 2001-01-31 | 2002-08-07 | Kabushiki Kaisha Toshiba | Microprocesseur à déchiffrage à clé publique |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3627384B2 (ja) * | 1996-01-17 | 2005-03-09 | 富士ゼロックス株式会社 | ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法 |
US5818939A (en) * | 1996-12-18 | 1998-10-06 | Intel Corporation | Optimized security functionality in an electronic system |
US6857076B1 (en) * | 1999-03-26 | 2005-02-15 | Micron Technology, Inc. | Data security for digital data storage |
US7278016B1 (en) * | 1999-10-26 | 2007-10-02 | International Business Machines Corporation | Encryption/decryption of stored data using non-accessible, unique encryption key |
EP1440439A1 (fr) * | 2001-10-12 | 2004-07-28 | Koninklijke Philips Electronics N.V. | Appareil et procede de lecture ou d'ecriture de donnees utilisateur stockees en blocs |
US20030196081A1 (en) * | 2002-04-11 | 2003-10-16 | Raymond Savarda | Methods, systems, and computer program products for processing a packet-object using multiple pipelined processing modules |
US7334124B2 (en) * | 2002-07-22 | 2008-02-19 | Vormetric, Inc. | Logical access block processing protocol for transparent secure file storage |
US8467534B2 (en) * | 2003-04-16 | 2013-06-18 | Broadcom Corporation | Method and system for secure access and processing of an encryption/decryption key |
US7543158B2 (en) * | 2004-03-23 | 2009-06-02 | Texas Instruments Incorporated | Hybrid cryptographic accelerator and method of operation thereof |
-
2003
- 2003-10-17 FR FR0312206A patent/FR2861234A1/fr active Pending
-
2004
- 2004-09-06 EP EP04292137A patent/EP1524795B1/fr active Active
- 2004-09-06 DE DE602004001732T patent/DE602004001732T2/de active Active
- 2004-10-14 US US10/966,833 patent/US7657034B2/en active Active
- 2004-10-15 JP JP2004301252A patent/JP2005122745A/ja not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5438622A (en) * | 1994-01-21 | 1995-08-01 | Apple Computer, Inc. | Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing an offset in the pseudorandom sequence |
WO1999012310A1 (fr) * | 1997-08-28 | 1999-03-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Chiffrement de paquets de donnees a l'aide d'une sequence de cles secretes generees a partir d'un echange de cle revelee |
US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
EP1229427A2 (fr) * | 2001-01-31 | 2002-08-07 | Kabushiki Kaisha Toshiba | Microprocesseur à déchiffrage à clé publique |
Also Published As
Publication number | Publication date |
---|---|
DE602004001732T2 (de) | 2007-08-09 |
EP1524795B1 (fr) | 2006-08-02 |
US7657034B2 (en) | 2010-02-02 |
JP2005122745A (ja) | 2005-05-12 |
DE602004001732D1 (de) | 2006-09-14 |
EP1524795A1 (fr) | 2005-04-20 |
US20050138403A1 (en) | 2005-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1617586B1 (fr) | Chiffrement en continu du contenu d'une mémoire externe à un processeur | |
EP1524795B1 (fr) | Chiffrement de données dans un appareil électronique à plusieurs processeurs symétriques | |
EP2120388B1 (fr) | Vérification d'intégrité d'une clé de chiffrement | |
FR2833120A1 (fr) | Appareil et procede de cryptage de donnees | |
EP2020773B1 (fr) | Masquage d'une donnée dans un calcul | |
EP2166696B1 (fr) | Protection de l'intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature | |
FR2979443A1 (fr) | Microcontroleur securise a base de mode | |
EP1355446B1 (fr) | Chiffrement du contenu d'une mémoire externe à un processeur | |
EP1615369A1 (fr) | Chiffrement par blocs du contenu d'une mémoire externe à un processeur | |
WO2020070455A1 (fr) | Methode de transchiffrement a faible latence de calcul appliquee au chiffrement homomorphe | |
EP1419640B1 (fr) | Reseau numerique local, procedes d'installation de nouveaux dispositifs et procedes de diffusion et de reception de donnees dans un tel reseau | |
FR2922393A1 (fr) | Systeme tracable de chiffrement/dechiffrement de donnees numeriques diffusees | |
EP1723791B1 (fr) | Methode de securisation d'un evenement telediffuse | |
FR2690258A1 (fr) | Procédé de contrôle d'accès du type autorisant l'accès à une fonction d'exploitation d'un module d'exploitation à l'aide d'un mot de contrôle. | |
EP2153575B1 (fr) | Obtention de valeurs dérivées dépendant d'une valeur maîtresse secrète | |
FR2910998A1 (fr) | Protection d'une donnee statique dans un circuit integre. | |
EP2294750B1 (fr) | Procede et systeme tracables de diffusion de donnees numeriques | |
FR3133246A1 (fr) | Procédé de protection contre les attaques par canaux auxiliaires | |
FR2890201A1 (fr) | Protection d'un contenu numerique sur un support physique | |
FR2889637A1 (fr) | Procede et systeme de chiffrement a haut debit | |
FR3106909A1 (fr) | Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique avec protection de clé secrète | |
FR2857184A1 (fr) | Procede de chiffrement/dechiffrement d'un message et dispositif associe | |
FR3049086A1 (fr) | Procede d'authentification biometrique sans divulgation de mesures biometriques d'un individu et adapte pour securiser des transactions a travers un reseau informatique decentralise | |
EP1605698A1 (fr) | Méthode de sécurisation d'un événement télédiffusé | |
WO2003071735A1 (fr) | Procede de cryptographie utilisant un algorithme cryptographique symetrique par flot et application a une carte a puce |