FR2938358A1 - Interface de memoire securisee - Google Patents

Interface de memoire securisee Download PDF

Info

Publication number
FR2938358A1
FR2938358A1 FR0954852A FR0954852A FR2938358A1 FR 2938358 A1 FR2938358 A1 FR 2938358A1 FR 0954852 A FR0954852 A FR 0954852A FR 0954852 A FR0954852 A FR 0954852A FR 2938358 A1 FR2938358 A1 FR 2938358A1
Authority
FR
France
Prior art keywords
data
secure
memory
memory device
address
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.)
Granted
Application number
FR0954852A
Other languages
English (en)
Other versions
FR2938358B1 (fr
Inventor
Sebastien Riou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of FR2938358A1 publication Critical patent/FR2938358A1/fr
Application granted granted Critical
Publication of FR2938358B1 publication Critical patent/FR2938358B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Une interface (108) de mémoire sécurisée inclut un bloc lecteur (116), un bloc enregistreur (114) et un sélecteur (112) de mode pour détecter l'injection de défauts dans un dispositif (102) de mémoire lorsqu'un mode sécurisé est activé. Le sélecteur de mode active ou désactive le mode sécurisé en utilisant de l'information d'accès à la mémoire provenant d'une unité (104) de traitement de données. Ainsi, l'unité (104) de traitement de données spécifie de façon souple la longueur et l'emplacement des données sécurisées mémorisées dans le dispositif (102) de mémoire.

Description

1 La présente invention se rapporte d'une manière générale aux systèmes électroniques avec un dispositif de mémoire et une unité de traitement de données et, plus particulièrement, à une commande souple d'accès sécurisé ou normal au dispositif de mémoire par l'unité de traitement de données. Les dispositifs de mémoire sont sujets aux attaques par injection de défauts comme par l'utilisation de lasers ou de rayons X. Par exemple, les lasers et les rayons X permettent des attaques précises par modification des états des bits dans le dispositif de mémoire. Le laser est particulièrement approprié pour injecter des défauts dans les registres, dans les dispositifs de mémoire vive (RAM pour "Random Access Memory"), dans les dispositifs de mémoire effaçables et programmables électriquement (EEP pour "Electrically Erasable and Programmable") et dans les dispositifs de mémoire flash. Une telle injection de défauts peut être permanente ou temporaire. En plus, on peut utiliser de telles attaques par injection de défauts pour découvrir des clés secrètes ou pour sortir un contenu de mémoire. Il est souhaitable de détecter une telle injection de défauts dans le dispositif de mémoire pour prévenir un usage abusif de l'information mémorisée dans le dispositif de mémoire.
Dans l'art antérieur, on peut utiliser un détecteur de laser pour détecter une source de lasers. Cependant, le détecteur de laser n'est pas apte à détecter des attaques au laser sur des dispositifs de mémoire. En variante, dans l'art antérieur, des dispositifs de mémoire sont aptes à inclure la mémorisation d'un code de détection d'erreur. Dans ce cas, le dispositif de mémoire détecte les attaques par injection de défauts à l'intérieur du dispositif de mémoire. Cependant, la mise en oeuvre d'un tel code de détection d'erreur à l'intérieur des dispositifs de mémoire augmente la superficie de silicium du dispositif de mémoire. De plus, si les états des bits
2 sont modifiés sur un bus à l'extérieur du dispositif de mémoire, le code de détection d'erreur ne peut pas détecter une telle injection de défauts à l'extérieur du dispositif de mémoire.
En outre, dans l'art antérieur, le dispositif de mémoire peut inclure une redondance de matériel avec une mémorisation redondante des données pour la détection d'une injection de défauts dans le dispositif de mémoire. Cependant, une telle redondance de mémorisation a pour résultat un doublement de la superficie de silicium ce dont il résulte une superficie de silicium particulièrement grande pour des dispositifs de mémoire de grande capacité. En plus, la vérification des données avec redondance de mémorisation peut entraîner un fonctionnement plus lent du dispositif de mémoire. En variante, dans l'art antérieur, une unité de traitement de données comme une unité centrale de traitement (CPU pour "Central Processing Unit") accédant au dispositif de mémoire inclut du logiciel destiné à vérifier l'intégrité des données. Cependant, un tel logiciel qui est aussi mémorisé dans le dispositif de mémoire est soumis à l'injection de défauts. De plus, la taille de code et le temps d'exécution pour le logiciel de la CPU augmentent avec une telle fonctionnalité supplémentaire de vérification des données. Donc, il est souhaité un mécanisme efficace de détection d'injection de défauts dans le dispositif de mémoire et à l'extérieur du dispositif de mémoire, comme dans le bus d'entrée/sortie du dispositif de mémoire.
Par conséquent, selon un aspect général de la présente invention, une interface de mémoire sécurisée agit pour la détection automatique d'une telle injection de défauts. Une interface de mémoire sécurisée selon un aspect de la présente invention inclut un bloc lecteur et un sélecteur de mode. Le bloc lecteur engendre une donnée finale de lecture à transférer à une unité de traitement de
3 données en enlevant le code de détection d'erreur de la donnée initiale de lecture transférée par un dispositif de mémoire lorsqu'un mode sécurisé est activé. Le sélecteur de mode active ou désactive le mode sécurisé en utilisant de l'information d'accès à la mémoire provenant de l'unité de traitement de données. Dans un mode de réalisation de la présente invention, lorsque le mode sécurisé est désactivé, le bloc lecteur engendre la donnée finale de lecture à partir de la donnée initiale de lecture sans enlever de code de détection d'erreur. Dans un exemple de mode de réalisation de la présente invention, l'information d'accès à la mémoire inclut un nom d'instruction. Dans ce cas, le sélecteur de mode inclut un décodeur d'instruction qui active le mode sécurisé lorsque le nom d'instruction concerne une instruction de lecture sécurisée, et qui désactive le mode sécurisé lorsque le nom d'instruction concerne une instruction de lecture normale. Dans un mode supplémentaire de réalisation de la présente invention, le bloc lecteur et le décodeur d'instruction sont disposés dans l'unité de traitement de données qui est une unité centrale de traitement (CPU pour "Central Processing Unit"). Dans une variante de mode de réalisation de la présente invention, l'information d'accès à la mémoire inclut une adresse du dispositif de mémoire à laquelle on doit accéder pour la donnée initiale de lecture. Dans ce cas, le sélecteur de mode inclut un décodeur d'adresse qui active le mode sécurisé lorsque l'adresse du dispositif de mémoire à laquelle on doit accéder est une adresse sécurisée et qui désactive le mode sécurisé lorsque l'adresse du dispositif de mémoire à laquelle on doit accéder est une adresse non sécurisée. Dans un exemple de mode de réalisation de la présente invention, le décodeur d'adresse est disposé à l'extérieur de l'unité de traitement de données qui est une CPU pour
4 engendrer l'adresse du dispositif de mémoire à laquelle on doit accéder. Dans un autre mode de réalisation de la présente invention, l'information d'accès à la mémoire inclut un nom de registre. Dans ce cas, le sélecteur de mode inclut un indicateur de registre respectif qui indique si le nom de registre correspond à l'activation ou à la désactivation du mode sécurisé. Dans un exemple de mode de réalisation de la présente invention, le bloc lecteur et l'indicateur de registre respectif sont disposés dans l'unité de traitement de données qui est une CPU. Dans un mode supplémentaire de réalisation de la présente invention, le bloc lecteur inclut un séparateur, un codeur et un comparateur. Le séparateur engendre la donnée finale de lecture en séparant le code de détection d'erreur de la donnée initiale de lecture lorsque le mode sécurisé est activé, et engendre la donnée finale de lecture à partir de la donnée initiale de lecture sans séparer aucun code de détection d'erreur lorsque le mode sécurisé est désactivé. Le codeur engendre un code escompté de détection d'erreur à partir d'au moins l'une d'une adresse correspondante et de la donnée finale de lecture. Le comparateur engendre un signal de détection d'erreur en comparant le code de détection d'erreur séparé de la donnée initiale de lecture avec le code escompté de détection d'erreur. Dans un autre mode de réalisation de la présente invention, le bloc lecteur inclut en outre un automate fini avec un sélecteur de longueur. L'automate fini lit la donnée initiale de lecture dans le dispositif de mémoire en engendrant une adresse de mémoire et un signal de validation de lecture à partir de l'information d'accès à la mémoire. Le sélecteur de longueur commande l'automate fini pour lire la donnée initiale de lecture avec une longueur de donnée de mémoire dépendant d'au moins un signal de commande de longueur de donnée qui commande aussi le fonctionnement du codeur et du séparateur. Dans un exemple de mode de réalisation de la présente 5 invention, la longueur de donnée de mémoire correspond au dispositif de mémoire, et l'au moins un signal de commande de longueur de donnée correspond à une longueur de donnée de traitement de l'unité de traitement de données. Dans un mode de réalisation de la présente invention, l'unité de traitement de données est une CPU séparée du dispositif de mémoire par un bus. L'unité de traitement de données et le dispositif de mémoire sont fabriqués sur un même circuit intégré. En variante, l'unité de traitement de données et le dispositif de mémoire sont fabriqués sous la forme de deux circuits intégrés distincts. Dans un autre mode de réalisation de la présente invention, l'interface de mémoire sécurisée inclut en outre un bloc enregistreur qui engendre une donnée finale d'écriture à écrire dans le dispositif de mémoire à partir d'une donnée initiale d'écriture et d'un code de détection d'erreur lorsque le mode sécurisé est activé. Le bloc enregistreur engendre la donnée finale d'écriture à partir de la donnée initiale d'écriture sans le code de détection d'erreur lorsque le mode sécurisé est désactivé.
Sous un aspect de la présente invention, le bloc enregistreur et le bloc lecteur sont réalisés à l'aide de portes logiques matérielles à l'intérieur de la CPU. Lorsque l'information d'accès à la mémoire inclut un nom d'instruction, le décodeur d'instruction active le mode sécurisé lorsque le nom d'instruction est pour une instruction d'écriture sécurisée, et désactive le mode sécurisé lorsque le nom d'instruction est pour une instruction d'écriture normale. Dans un mode supplémentaire de réalisation de la présente invention, le bloc enregistreur inclut un codeur et un mélangeur. Le codeur engendre le code de détection
6 d'erreur à partir d'au moins l'une d'une adresse correspondante et de la donnée initiale d'écriture. Le mélangeur engendre une donnée mélangée d'écriture à partir de la donnée initiale d'écriture et du code de détection d'erreur lorsque le mode sécurisé est activé et à partir de la donnée initiale d'écriture sans le code de détection d'erreur lorsque le mode sécurisé est désactivé. La donnée mélangée d'écriture détermine la donnée finale d'écriture. Dans un autre mode de réalisation de la présente invention, le bloc enregistreur inclut en outre un automate fini et un sélecteur de longueur. L'automate fini engendre, à partir de la donnée mélangée, la donnée finale d'écriture, un signal de validation d'écriture et une adresse de mémoire du dispositif de mémoire pour mémoriser la donnée finale d'écriture. Le sélecteur de longueur commande l'automate fini pour engendrer la donnée finale d'écriture avec une longueur de donnée de mémoire en fonction de l'au moins un signal de commande de longueur de donnée qui commande le codeur et le mélangeur.
Un système électronique selon un autre aspect de la présente invention inclut un dispositif de mémoire, une unité de traitement de données et une unité d'interface. L'unité de traitement de données engendre une information d'accès à la mémoire incluant au moins un bit d'adresse ou un nom de registre qui spécifie un type d'accès au dispositif de mémoire. L'unité d'interface accède au dispositif de mémoire en fonction du type d'accès tel qu'il est spécifié par l'information d'accès à la mémoire. Par exemple, le type d'accès inclut un accès sécurisé ou un accès non sécurisé. L'au moins un bit d'adresse engendré par l'unité de traitement de données détermine le type d'accès au dispositif de mémoire. En variante, le nom de registre engendré par l'unité de traitement de données détermine le type d'accès au dispositif de mémoire.
De cette manière, la CPU spécifie de manière souple la valeur et la localisation de la donnée mémorisée dans le
7 dispositif de mémoire avec accès sécurisé. L'injection de défauts est détectée pour des données telles que spécifiées par la CPU en utilisant les blocs lecteur et enregistreur réalisés en matériel dans la CPU. Ainsi, l'augmentation de superficie de silicium pour de tels blocs lecteur et enregistreur est insignifiante pour le dispositif de mémoire de n'importe quelle capacité. En plus, on détecte efficacement une injection de défauts à l'intérieur du dispositif de mémoire ou au niveau du bus entre le dispositif de mémoire et la CPU. Les caractéristiques et avantages de l'invention ressortiront davantage de la description qui va suivre à titre d'exemple en se référant aux dessins annexés, dans lesquels : la figure 1 montre un schéma fonctionnel d'un système électronique avec une interface de mémoire sécurisée, selon un mode de réalisation de la présente invention ; la figure 2 montre un schéma fonctionnel de l'interface de mémoire sécurisée de la figure 1, selon un 20 mode de réalisation de la présente invention ; la figure 3 montre un schéma fonctionnel d'un bloc enregistreur dans l'interface de mémoire sécurisée de la figure 2, selon un mode de réalisation de la présente invention ; 25 la figure 4 montre un schéma de circuit d'un sélecteur de longueur dans le bloc enregistreur de la figure 3, selon un mode de réalisation de la présente invention ; la figure 5 montre un schéma fonctionnel d'un codeur destiné à engendrer un code de détection d'erreur dans le 30 bloc enregistreur de la figure 3, selon un mode de réalisation de la présente invention ; la figure 6 montre un schéma fonctionnel d'un bloc lecteur dans l'interface de mémoire sécurisée de la figure 2, selon un mode de réalisation de la présente invention ; 35 la figure 7 montre un schéma fonctionnel d'une CPU incluant un décodeur d'instruction comme sélecteur de mode
8 dans le bloc enregistreur et/ou le bloc lecteur des figures 3 et 6, selon un mode de réalisation de la présente invention ; la figure 8 montre un schéma fonctionnel d'une CPU incluant un décodeur d'adresse comme sélecteur de mode dans le bloc enregistreur et/ou le bloc lecteur des figures 3 et 6, selon un mode de réalisation de la présente invention ; la figure 9 montre un schéma fonctionnel qui est une variante de la figure 8 avec le sélecteur de mode disposé à l'extérieur de la CPU, selon une variante de mode de réalisation de la présente invention ; la figure 10 représente l'utilisation des bits d'adresse de CPU pour indiquer l'activation ou la désactivation du mode sécurisé, selon un mode de réalisation de la présente invention ; la figure 11 montre un schéma fonctionnel d'une CPU incluant un registre d'indicateurs comme sélecteur de mode dans le bloc enregistreur et/ou le bloc lecteur des figures 3 et 6, selon un mode de réalisation de la présente invention ; la figure 12 montre un tableau représentant l'activation ou la désactivation du mode sécurisé lorsqu'à la fois un registre d'indicateurs et un décodeur d'adresse sont utilisés pour le sélecteur de mode, selon un mode de réalisation de la présente invention ; la figure 13 montre un tableau de longueurs de données pour la CPU et le dispositif de mémoire avec l'activation et la désactivation du mode sécurisé, selon un mode de réalisation de la présente invention ; la figure 14 montre un organigramme des étapes pendant le fonctionnement de l'interface de mémoire sécurisée de la figure 2 et du bloc enregistreur de la figure 3, selon un mode de réalisation de la présente invention ; la figure 15 montre un organigramme des étapes pendant 35 le fonctionnement de l'interface de mémoire sécurisée de la 9 figure 2 et du bloc lecteur de la figure 6, selon un mode de réalisation de la présente invention ; la figure 16A montre un tableau des entrées du codeur de la figure 5, selon un exemple de mode de réalisation de 5 la présente invention ; et la figure 16B montre un tableau des sorties du codeur de la figure 5, selon un exemple de mode de réalisation de la présente invention. Les figures mentionnées ici sont réalisées pour la 10 clarté de l'explication et ne sont pas nécessairement dessinées à l'échelle. Les éléments ayant les mêmes repères aux figures 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16A et 16B se réfèrent à des éléments ayant une structure et/ou une fonction similaires, à moins qu'il n'en 15 soit indiqué autrement. La figure 1 montre un schéma fonctionnel d'un système électronique 100 comportant un dispositif 102 de mémoire, une unité 104 de traitement de données et un bus 106. Le système électronique 100 peut être formé comme des 20 composants d'une carte intelligente 110 dans un exemple de mode de réalisation de la présente invention. Cependant, la présente invention n'est pas limitée à cela, et la présente invention peut être mise en pratique avec un système électronique 100 qui serait dans d'autres applications. La 25 présente invention peut être mise en pratique avec le dispositif 102 de mémoire et l'unité 104 de traitement de données qui seraient fabriquées sur un même circuit intégré ou qui seraient fabriquées sur deux circuits intégrés distincts. 30 Le dispositif 102 de mémoire et l'unité 104 de traitement de données échangent des signaux via le bus 106. Dans un exemple de mode de réalisation de la présente invention, l'unité 104 de traitement de données est une CPU (unité centrale de traitement) avec une interface 108 35 (c'est-à-dire, une unité formant interface) de mémoire sécurisée.
10 En se référant aux figures 1 et 2, l'interface 108 de mémoire sécurisée inclut un sélecteur 112 de mode, un bloc enregistreur 114 et un bloc lecteur 116. Le bloc enregistreur 114 reçoit une adresse (une adresse de CPU) et une donnée (une donnée de CPU) de la CPU 104 pour écrire cette donnée à l'adresse spécifiée du dispositif 102 de mémoire. Le bloc lecteur 116 reçoit une adresse (une adresse de CPU) provenant de la CPU 104 pour lire la donnée à l'adresse spécifiée du dispositif 102 de mémoire.
Le sélecteur 112 de mode active ou désactive le mode sécurisé de fonctionnement pour le bloc enregistreur 114 et le bloc lecteur 116. Le bloc enregistreur 114 et le bloc lecteur 116 opèrent en mode sécurisé ou en mode non sécurisé en fonction, respectivement, de l'activation ou de la désactivation du mode sécurisé par le sélecteur 112 de mode. Le sélecteur 112 de mode engendre un signal de validation de mode sécurisé SMI Enable pour indiquer l'activation ou la désactivation du mode sécurisé. La figure 3 montre un schéma fonctionnel du bloc enregistreur 114 de la figure 2, selon un exemple de mode de réalisation de la présente invention. Le bloc enregistreur 114 inclut un sélecteur 202 de longueur, un codeur 204, un mélangeur 206 et un automate fini 208 (FSM pour "Finite State Machine") d'écriture en mémoire.
En se référant aux figures 1, 2 et 3, la CPU 104 active l'un des signaux "24", "16" et "8" de longueur de registre, Register Width, pour indiquer le nombre de bits (c'est-à-dire, la longueur de donnée de la CPU ou plus généralement une longueur de donnée de traitement) traités par la CPU 104 avec le dispositif 102 de mémoire. Par exemple, la CPU 104 engendre 8 bits, 16 bits ou 24 bits de données à la fois pour les envoyer au dispositif 102 de mémoire, ou reçoit à la fois 8 bits, 16 bits ou 24 bits en provenance du dispositif 102 de mémoire.
La figure 13 montre un tableau des bits de donnée occupés dans le dispositif 102 de mémoire en fonction de la
11 longueur de donnée de CPU. La première colonne 902 énumère des exemples typiques de longueur de donnée de CPU comme 8 bits, 16 bits ou 24 bits. La deuxième colonne énumère le nombre correspondant de bits mémorisés dans le dispositif 102 de mémoire pour chacune des longueurs de donnée de CPU de 8 bits, 16 bits et 24 bits lorsque le mode sécurisé n'est pas activé. La troisième colonne énumère le nombre correspondant de bits mémorisés dans le dispositif 102 de mémoire pour chacune des longueurs de donnée de CPU de 8 bits, 16 bits et 24 bits lorsque le mode sécurisé est activé. Lorsque le mode sécurisé n'est pas activé, les 8 bits de donnée provenant de la CPU 104 sont mémorisés sous forme de 8 bits dans le dispositif 102 de mémoire. De façon similaire, lorsque le mode sécurisé n'est pas activé, les 16 bits de donnée provenant de la CPU 104 sont mémorisés sous forme de 16 bits dans le dispositif 102 de mémoire. Également, lorsque le mode sécurisé n'est pas activé, les 24 bits de donnée provenant de la CPU 104 sont mémorisés sous forme de 32 bits dans le dispositif 102 de mémoire, avec les 8 bits supplémentaires qui sont mis à des valeurs binaires prédéterminées. Lorsque le mode sécurisé est activé, les 8 bits de donnée provenant de la CPU 104 sont mémorisés sous forme de 16 bits dans le dispositif 102 de mémoire, avec les 8 bits supplémentaires qui sont engendrés à l'aide d'un code de détection d'erreur. De façon similaire, lorsque le mode sécurisé est activé, les 16 bits de donnée provenant de la CPU 104 sont mémorisés sous forme de 16 bits dans le dispositif 102 de mémoire, avec les 16 bits supplémentaires qui sont engendrés à l'aide d'un code de détection d'erreur. Également, lorsque le mode sécurisé est activé, les 24 bits de donnée provenant de la CPU 104 sont mémorisés sous forme de 32 bits dans le dispositif 102 de mémoire, avec les 8 bits supplémentaires qui sont engendrés à l'aide d'un code de détection d'erreur.
12 Une quatrième colonne 908 du tableau de la figure 13 indique l'augmentation sous forme d'un coefficient multiplicateur (c'est-à-dire, un facteur d'augmentation de taille) des bits mémorisés dans le dispositif 102 de mémoire (c'est-à-dire, la longueur de donnée de mémoire) par rapport au nombre de bits engendrés par la CPU 104 (c'est-à-dire la longueur de donnée de CPU) dans le cas où le mode sécurisé est activé par rapport au mode sécurisé désactivé. Le coefficient multiplicateur du nombre de bits mémorisés dans le dispositif 102 de mémoire par rapport au nombre de bits engendrés par la CPU 104 est de deux fois lorsque la longueur de données de CPU est de 8 bits ou 16 bits avec le mode sécurisé activé. Le coefficient multiplicateur du nombre de bits mémorisés dans le dispositif 102 de mémoire par rapport au nombre de bits engendrés par la CPU 104 reste de "1" lorsque la longueur de données de CPU est de 24 bits même avec le mode sécurisé activé. La cinquième colonne 910 du tableau de la figure 13 indique le niveau de sécurité atteint avec l'activation du mode sécurisé pour les exemples de 8 bits, 16 bits et 24 bits des longueurs de donnée de CPU. Le niveau de sécurité (c'est-à-dire, l'aptitude à détecter une injection de défauts) atteint pour les 8 bits ou 16 bits de la longueur de données de CPU est très élevé parce que le nombre de bits est multiplié par deux après incorporation du code de détection d'erreur pour mémorisation dans le dispositif 102 de mémoire. Le niveau de sécurité atteint pour les 24 bits de la longueur de donnée de CPU est élevé mais moins élevé que pour les 8 bits ou les 16 bits parce que le nombre de bits est accru de moins de deux fois pour les 24 bits après incorporation du code de détection d'erreur pour mémorisation dans le dispositif 102 de mémoire.
En se référant aux figures 3 et 13, le sélecteur 202 de longueur active l'un des signaux "8", "16" et "32" de
13 longueur de donnée pour commander le FSM 208 d'écriture en mémoire pour engendrer la donnée de mémoire sous forme de 8 bits, 16 bits ou 32 bits. La figure 4 montre un schéma de circuit de l'exemple de sélecteur 202 de longueur qui active l'un des signaux "8", "16" et "32" de longueur de donnée de mémoire en fonction de celui des signaux "8", "16" et "24" de longueur de données de CPU qui est actif et en fonction de ce que le signal de validation de mode sécurisé (SMI Enable) est ou non actif.
En se référant à la figure 4, le sélecteur 202 de longueur inclut un inverseur et des première, deuxième, troisième et quatrième portes ET 222, 224, 226 et 228, respectivement. Le sélecteur 202 de longueur inclut aussi des première et seconde portes OU 232 et 234, respectivement. Le signal de validation de mode sécurisé (SMI Enable) est entré par l'inverseur 220 et les portes ET 222 et 226. Le signal "24" de longueur de donnée de CPU est entré par la porte OU 232, le signal "16" de longueur de donnée de CPU est entré par les portes ET 222 et 224, et le signal "8" de longueur de données de CPU est entré par les portes ET 226 et 228. L'inverseur 220, les portes ET 222, 224, 226 et 228 et les portes OU 232 et 234 sont connectés comme le représente la figure 4 de façon que la porte OU 232 sorte le signal "32" de longueur de donnée de mémoire, que la porte OU 234 sorte le signal "16" de longueur de donnée de mémoire, et que la porte ET 228 sorte le signal "8" de longueur de donnée de mémoire. En se référant aux figures 4 et 13, l'un des signaux "8", "16" et "32" de longueur de donnée de mémoire est activé lorsque l'un correspondant des signaux "8", "16" et "24" de longueur de donnée de CPU est activé et lorsque le mode sécurisé n'est pas activé, comme le représentent les première et deuxième colonnes 902 et 904 de la figure 13.
En variante, l'un des signaux "16" et "32" de longueur de donnée de mémoire est activé lorsque l'un,
14 correspondant, des signaux "8", "16" et "24" de longueur de donnée de CPU est activé et lorsque le mode sécurisé est activé, comme représenté dans les première et troisième colonnes 902 et 906 à la figure 13. En se référant à la figure 3, les signaux "8", "16" et "32" de longueur de donnée de mémoire sont reçus par le FSM 208 d'écriture en mémoire pour engendrer les données de mémoire sous forme de 8 bits, 16 bits ou 36 bits en fonction de celui des signaux "8", "16" et "32" de longueur de donnée de mémoire qui est activé. La figure 5 montre un schéma fonctionnel du codeur 204 destiné à engendrer le code de détection d'erreur (EDC) à utiliser lorsque le mode sécurisé est activé. L'exemple de codeur 204 de la figure 5 utilise la donnée de CPU engendrée par la CPU 104 pour engendrer le code de détection d'erreur. Cependant, la présente invention peut aussi être mise en pratique avec un codeur qui engendre le code de détection d'erreur à partir à la fois de la donnée de CPU et de l'adresse de CPU engendrée par la CPU 104.
Dans ce cas, l'interface 110 de mode sécurisé détecterait une injection de défauts à la fois dans la donnée et dans l'information d'adresse. La figure 16A montre un tableau des entrées du codeur 204 de la figure 5 pour l'activation de chacun des signaux "8", "16" et "24" de longueur de donnée de CPU, selon un exemple de mode de réalisation de la présente invention. La figure 16B montre un tableau des sorties du codeur 204 de la figure 5 pour l'activation de chacun des signaux "8", "16" et "24" de longueur de donnée de CPU, selon un exemple de mode de réalisation de la présente invention. En se référant à l'exemple de la figure 5, le codeur 204 inclut un signal 242 d'entrée "E" de 8 bits, un signal 244 d'entrée "Rh" de 8 bits et un signal 248 d'entrée "Rl" de 8 bits. De plus, le codeur 204 inclut un signal 258 de sortie "EDC out H" de 8 bits et un signal 260 de sortie "EDC out L" de 8 bits.
15 En se référant à l'exemple des figures 5, 16A et 16B, lorsque la longueur de donnée de CPU est de 8 bits, le signal 248 "Rl" d'entrée inclut la donnée de CPU tandis que les signaux 242 et 244 "E" et "Rh" sont indéfinis (c'est-à- dire, X à la figure 16A). Dans ce cas aussi, seul le signal 260 EDC out L de sortie est valide tandis que le signal 258 EDC out H de sortie est indéfini. Ainsi, le signal 260 EDC out L de sortie inclut le code de détection d'erreur (EDC) à 8 bits utilisé par le mélangeur 206 lorsque la largeur de donnée de CPU est de 8 bits. En variante, lorsque la longueur de donnée de CPU est de 16 bits, le signal 248 d'entrée "Rl" inclut l'octet inférieur de la donnée de CPU, le signal 244 d'entrée "Rh" inclut l'octet supérieur de la donnée de CPU, et le signal 242 d'entrée "E" est fixé à zéro. Également dans ce cas, le signal 260 de sortie EDC out L et le signal 258 de sortie EDC out H sont tous les deux valides. Ainsi, le signal 260 de sortie EDC out L et le signal 258 de sortie EDC out H incluent le code de détection d'erreur (EDC) de 16 bits utilisé par le mélangeur 206 lorsque la longueur de donnée de CPU est de 16 bits. Lorsque la longueur de donnée de CPU est de 24 bits, le signal 248 d'entrée "Rl" inclut l'octet inférieur de la donnée de CPU, le signal 244 d'entrée "Rh" inclut l'octet moyen de la donnée de CPU, et le signal 242 d'entrée "E" inclut l'octet supérieur de la donnée de CPU. Également dans ce cas, seul le signal 258 de sortie EDC out H est valide tandis que le signal 260 de sortie EDC out L est indéfini. Ainsi, le signal 258 de sortie EDC out H inclut le code de détection d'erreur (EDC) de 8 bits utilisé par le mélangeur 206 lorsque la longueur de donnée de CPU est de 24 bits. Le codeur 204 opère aussi avec un signal 246 "Ctrl 16bits Access" de commande de 1 bit qui peut être le signal "16" de longueur de données de CPU dans un exemple de mode de réalisation de la présente invention. Le codeur
16 204 inclut aussi un registre 250 d'une donnée prédéterminée, un codeur 252 des bits inférieurs, un codeur 256 des bits supérieurs et un multiplexeur 254. Le signal 246 "Ctrl 16bits Access" commande le multiplexeur 254 pour sortir soit une sortie du registre 250 de donnée prédéterminée soit une sortie du codeur 252 des bits inférieurs. Le signal 246 "Ctrl 16bits Access" est activé à un état logique haut lorsque la CPU engendre 16 bits de donnée pour la longueur de donnée de CPU de 16 bits. Dans ce cas, le multiplexeur 254 choisit la sortie du registre 250 de donnée prédéterminée qui est une combinaison binaire prédéterminée (comme, par exemple, 0x00 ou OxFF) pour être entrée par le codeur 256 de bits supérieurs. À la suite de quoi, le codeur 256 de bits supérieurs utilise le signal 244 d'entrée "Rh" de 8 bits pour engendrer le signal 258 de sortie EDC out H de 8 bits tandis que le signal "E" est fixé à 0 par la CPU 104. Également dans ce cas, le codeur 252 de bits inférieurs utilise le signal 248 d'entrée "Rl" de 8 bits pour engendrer le signal 260 de sortie EDC out L de 8 bits. En se référant aux figures 3 et 5, les 16 bits au total du code de détection d'erreur des signaux de sortie "EDC out H" et "EDC out L" sont disponibles pour le mélangeur 206 lorsque le signal 246 "Ctrl 16bits Access" est activé pour la longueur de donnée de CPU de 16 bits. Le signal 246 "Ctrl 16bits Access" est désactivé à un état logique bas lorsque la CPU engendre 8 bits ou 24 bits de donnée pour la longueur de donnée de CPU de 8 bits ou 24 bits. Dans les deux cas, le codeur 252 de bits inférieurs utilise juste le signal 248 d'entrée "Rl" pour engendrer le signal 260 "EDC out L" de sortie de l'EDC de 8 bits, disponible au niveau du mélangeur 206 et du multiplexeur 254. Dans les deux cas, le multiplexeur 254 choisit la sortie du codeur 252 de bits inférieurs pour être entrée par le codeur 256 de bits supérieurs.
17 Le codeur 256 de bits supérieurs utilise le signal 244 d'entrée "Rh", le signal 242 d'entrée "E", et la sortie du codeur 252 de bits inférieurs pour engendrer le signal 258 "EDC out H" de sortie d'EDC de 8 bits disponible au niveau du mélangeur 206. Dans le cas de la longueur de donnée de CPU de 8 bits, seul le signal 260 de sortie "EDC out L" est valide et utilisé par le mélangeur 206 qui ignore le signal 258 de sortie "EDC out H". Dans le cas de la longueur de donnée de CPU de 24 bits, seul le signal 258 de sortie "EDC out H" est valide et utilisé par le mélangeur 206 qui ignore le signal 260 de sortie "EDC out L". En se référant aux figures 2 et 3, l'interface 108 de mémoire sécurisée et le bloc enregistreur 114 opèrent selon l'organigramme de la figure 14 lorsque la CPU 104 accède au dispositif 102 de mémoire pour une opération d'écriture. La CPU 104 engendre de l'information d'accès à la mémoire d'écriture comme une instruction d'écriture incluant un nom d'instruction d'écriture, une adresse de CPU indiquant une adresse du dispositif 102 de mémoire à laquelle on doit accéder, et une donnée de CPU à écrire dans le dispositif 102 de mémoire (étape S701 à la figure 14). L'adresse de CPU indique la localisation du dispositif 102 de mémoire pour mémoriser la donnée de CPU. La CPU 104 peut engendrer un nom de registre respectif mémorisant une telle donnée de CPU en tant que partie de l'information d'accès à la mémoire d'écriture. Le sélecteur 112 de mode détermine, à partir de l'information d'accès à la mémoire d'écriture, si le mode sécurisé est activé par la CPU (étape S702 de la figure 14). Dans un exemple de mode de réalisation de la présente convention, la figure 7 montre le sélecteur 112 de mode réalisé sous la forme d'un décodeur de nom d'instruction. Dans ce cas, la CPU 104 spécifie, avec le nom d'instruction correspondant, l'activation ou la désactivation du mode sécurisé pour l'instruction d'écriture.
18 Par exemple, l'instruction d'écriture inclut un nom d'instruction d'écriture normale pour la désactivation du mode sécurisé et inclut un nom d'instruction d'écriture sécurisée pour activation du mode sécurisé. Dans ce cas, le sélecteur 112 de mode de la figure 7 décode le nom d'instruction pour activation ou désactivation du signal SMI Enable en fonction du nom d'instruction. Pour le mode de réalisation de la figure 7, la CPU est apte à exécuter un ensemble d'instructions supplémentaires comprenant par exemple une instruction d'écriture normale, une instruction d'écriture sécurisée, une instruction de lecture normale et une instruction de lecture sécurisée. Chacun des noms d'instruction d'écriture et de lecture normales a pour résultat la désactivation du signal SMI Enable, et chacun des noms d'instruction d'écriture et de lecture sécurisées a pour résultat l'activation du signal SMI Enable. Dans un autre mode de réalisation de la présente invention, la figure 8 montre le sélecteur 112 de mode qui est réalisé sous forme d'un décodeur 264 d'adresse. Dans ce cas, la CPU 104 spécifie l'activation ou la désactivation du mode sécurisé pour une instruction d'écriture avec l'adresse de CPU engendrée par un générateur 262 d'adresse à l'intérieur de la CPU 104. Comme représenté dans un exemple de la figure 10, le nombre de bits d'adresse de CPU est suffisant pour spécifier 16 Mo de capacité de mémoire. Cependant, la capacité totale réelle de tous les dispositifs de mémoire dans le système électronique 100 comme une carte intelligente est sensiblement moindre que la capacité de mémoire adressable.
Donc, certains bits de l'adresse de CPU engendrés par la CPU 104 peuvent s'utiliser pour spécifier l'activation ou la désactivation du mode sécurisé puisque ces bits ne sont pas nécessaires pour spécifier les adresses du dispositif 102 de mémoire. Dans ce cas, le décodeur 264 d'adresse décode une telle adresse de CPU provenant du générateur 262 d'adresse pour activer ou désactiver le
19 signal SMI Enable pour activation ou désactivation du mode sécurisé. Par exemple, le décodeur 264 d'adresse inclut un filtre d'adresse qui détermine si chaque adresse de CPU provenant du générateur 262 d'adresse est une adresse sécurisée pour activation du mode sécurisé ou est une adresse non sécurisée pour désactivation du mode sécurisé. La figure 9 représente une variante de mode de réalisation de la présente invention avec un décodeur 265 d'adresse qui est formé à l'extérieur de la CPU 104. Le générateur 262 d'adresse de la figure 9 opère de façon similaire au générateur 262 d'adresse de la figure 8. Cependant, le sélecteur 112 de mode avec le décodeur 265 d'adresse est formé à l'extérieur de la CPU 104 à la figure 9 pour minimiser la modification de la CPU 104 du système électronique 100. Dans une variante de mode de réalisation de la présente invention, la figure 11 représente le sélecteur 112 de mode qui est réalisé avec un registre 750 d'indicateurs correspondant à une pluralité de registres 760 de donnée de la CPU 104. Chacun de la pluralité de registres 760 de donnée mémorise une donnée respective de CPU à traiter entre la CPU 104 et le dispositif 102 de mémoire. Lors de la génération d'une instruction d'écriture/lecture, la CPU 104 spécifie un identificateur respectif du registre (c'est-à-dire, un nom de registre correspondant) contenant la donnée de CPU. Le registre 750 d'indicateurs inclut une pluralité d'indicateurs de registre avec chaque indicateur de registre qui est réglé pour l'activation ou la désactivation respective pour l'un, correspondant, de la pluralité de registres 760. Par exemple, l'indicateur de registre n° 1 correspond au registre n° 1, l'indicateur de registre n° 2 correspond au registre n° 2, ..., et ainsi de suite. Le sélecteur 112 de mode de la figure 11 inclut un multiplexeur 752 d'indicateurs qui sort un indicateur de registre correspondant pour l'un des registres 760 choisi
20 par un signal de choix de registre "register select" pour sortir la donnée de CPU par l'intermédiaire d'un multiplexeur 762 de registres. Dans ce cas, la CPU 104 engendre l'instruction d'écriture/lecture incluant un nom de registre respectif correspondant à la donnée de CPU. Le signal register select est engendré en fonction du nom de registre respectif pour commander les multiplexeurs 752 et 762 pour sortir celui qui correspond des indicateurs 750 de registre et la donnée de CPU provenant de celui qui correspond des registres 760. L'indicateur de registre choisi provenant du multiplexeur 752 d'indicateurs est le signal SMI Enable. Dans le mode de réalisation de la figure 11, chaque indicateur dans les registres 750 d'indicateurs est programmable dans la CPU 104. Le mode de réalisation de la figure 11 est spécialement utile pour des mises en oeuvre de piles de la CPU 104, le registre 750 d'indicateur indiquant automatiquement l'accès sécurisé ou non sécurisé au dispositif 102 de mémoire pour chaque pointeur dans une mise en oeuvre de pile. La figure 12 représente une variante de mode de réalisation de la présente invention avec le sélecteur 112 de mode comportant à la fois le décodeur 264 ou 265 d'adresse et le registre 750 d'indicateur. Dans ce cas, on utilise à la fois le nom de registre et l'adresse de CPU dans l'information d'accès à la mémoire engendrée par la CPU 104 pour déterminer l'activation ou la désactivation du mode sécurisé d'après le tableau de la figure 12. En se référant à la première ligne 771 du tableau de la figure 12, l'indicateur pour le nom de registre indique la désactivation du mode sécurisé, et l'adresse de CPU indique la désactivation du mode sécurisé. Dans ce cas, le signal SMI Enable est désactivé pour désactivation du mode sécurisé. En se référant à la deuxième ligne 772 du tableau de la figure 12, l'indicateur pour le nom de registre indique la désactivation du mode sécurisé, mais l'adresse
21 de CPU indique l'activation du mode sécurisé. Dans ce cas, le signal SMI Enable est activé pour activation du mode sécurisé. En se référant à la troisième ligne 773 du tableau de la figure 12, l'indicateur pour le nom de registre indique l'activation du mode sécurisé, mais l'adresse de CPU indique la désactivation du mode sécurisé. Dans ce cas, le signal SMI Enable est activé pour activation du mode sécurisé. En se référant à la quatrième ligne 774 du tableau la figure 12, l'indicateur pour le nom de registre indique l'activation du mode sécurisé, et l'adresse de CPU indique l'activation du mode sécurisé. Dans ce cas, le signal SMI Enable est activé pour activation du mode sécurisé. De cette manière à la figure 12, le signal SMI Enable est activé pour activation du mode sécurisé lorsqu'au moins l'un du nom de registre ou de l'adresse de CPU indique l'activation du mode sécurisé. Des exemples d'information d'accès à la mémoire engendrée par la CPU 104 incluent une série d'instructions 20 de lecture/écriture comme suit : write 8 RO @0xiOO secure write 16 A8 @Ox1OA read 8 R1 @0x102 secure read 24 A8 @Ox1OA 25 L'instruction prise comme exemple "write 8 RO @OxiOO" inclut le nom d'instruction "write 8" indiquant une écriture normale avec désactivation du mode sécurisé et avec une longueur de donnée de CPU de 8 bits. Une telle instruction inclut aussi le nom de registre "RO" contenant 30 la donnée de CPU à écrire dans le dispositif 102 de mémoire et inclut l'adresse de CPU "0xlOO" pour indiquer l'adresse du dispositif 102 de mémoire à laquelle on doit accéder pour l'opération d'écriture. L'instruction prise comme exemple "secure write 16 A8 35 @Ox1OA " inclut le nom d'instruction "secure write 16" indiquant une écriture sécurisée avec activation du mode
22 sécurisé et avec une longueur de donnée de CPU de 16 bits. Une telle instruction inclut aussi le nom de registre "A8" contenant la donnée de CPU à écrire dans le dispositif 102 de mémoire et inclut l'adresse de CPU "OxlOA" pour indiquer l'adresse du dispositif 102 de mémoire à laquelle on doit accéder pour l'opération d'écriture. L'instruction prise comme exemple "read 8 R1 @Ox102" inclut le nom d'instruction "read 8" indiquant une lecture normale avec désactivation du mode sécurisé et avec une longueur de donnée de CPU de 8 bits. Une telle instruction inclut aussi le nom de registre "R1" destiné à recevoir la donnée lue dans le dispositif 102 de mémoire et inclut l'adresse de CPU "0x102" pour indiquer l'adresse du dispositif 102 de mémoire à laquelle on doit accéder pour l'opération de lecture. L'instruction prise comme exemple "secure read 24 A8 @OxiOA" inclut le nom d'instruction "secure read 24" indiquant une lecture sécurisée avec activation du mode sécurisé et avec une longueur de donnée de CPU de 24 bits.
Une telle instruction inclut aussi le nom de registre "A8" destiné à recevoir la donnée lue dans le dispositif 102 de mémoire et inclut l'adresse de CPU "OxlOA" pour indiquer l'adresse du dispositif 102 de mémoire à laquelle on doit accéder pour l'opération de lecture.
En retournant aux figures 3 et 14, lorsque le mode sécurisé est désactivé comme indiqué par le signal SMI Enable (étape S703 de la figure 14) le mélangeur 206 sort la donnée mélangée simplement en tant que donnée de CPU (c'est-à-dire, la donnée initiale d'écriture) vers le FSM 208 d'écriture en mémoire (étape S704 de la figure 14). À la suite de quoi, le FSM 208 d'écriture en mémoire passe la donnée de CPU (c'est-à-dire la donnée initiale d'écriture) en tant que donnée de mémoire et l'adresse de CPU en tant qu'adresse de mémoire au dispositif 102 de mémoire avec l'activation du signal de validation d'écriture (étape S707 de la figure 14). Ainsi, cette
23 donnée de mémoire est écrite à cette adresse de mémoire du dispositif 102 de mémoire. La longueur de donnée de mémoire écrite dans le dispositif 102 de mémoire dépend de la sortie du sélecteur 202 de longueur comme décrit ci-dessus en se référant aux figures 4 et 13. En variante, lorsque le mode sécurisé est activé comme indiqué par le signal SMI Enable (étape S703 de la figure 14), le codeur engendre, à partir de la CPU 104, le code de détection d'erreur (EDC) en utilisant la donnée de CPU (c'est-à-dire la donnée initiale d'écriture) et/ou l'adresse de CPU correspondante. Le nombre de bits du code de détection d'erreur (EDC) dépend de la longueur de donnée de CPU (étape S705 de la figure 14) comme décrit ci-dessus en se référant aux figures 5, 16A et 16B.
Ce code de détection d'erreur (EDC) est mélangé avec la donnée de CPU (c'est-à-dire, la donnée initiale d'écriture) par le mélangeur 206 pour engendrer une donnée d'écriture mélangée (étape S706 de la figure 14) avec un nombre de bits dépendant de la longueur de donnée de CPU. À la suite de quoi, le FSM 208 d'écriture en mémoire engendre la donnée de mémoire (c'est-à-dire, la donnée finale d'écriture) et l'adresse de mémoire à partir de cette donnée d'écriture mélangée (étape S707 de la figure 14). Le nombre de bits de la donnée de mémoire dépend des signaux "8", "16" et "32" de longueur de donnée de mémoire provenant du sélecteur 202 de longueur comme décrit ci-dessus en se référant aux figures 4 et 13. Le dispositif 102 de mémoire reçoit et mémorise cette donnée de mémoire à cette adresse de mémoire du dispositif 102 de mémoire. De cette manière, la donnée de mémoire telle que mémorisée dans le dispositif 102 de mémoire lorsque le mode sécurisé est activé incorpore le code de détection d'erreur (EDC) pour une opération d'écriture sécurisée à l'étape S707 de la figure 14.
La figure 6 montre un schéma fonctionnel du bloc lecteur 116 de la figure 2, selon un exemple de mode de
24 réalisation de la présente invention. Le bloc lecteur 116 inclut un sélecteur 252 de longueur, un codeur 254, un séparateur 256, un FSM 258 (automate fini) de lecture en mémoire et un comparateur 260. Selon un exemple de mode de réalisation de la présente invention, le sélecteur 252 de longueur et le codeur 254 du bloc lecteur 116 de la figure 6 sont réalisés de façon similaire au sélecteur 202 de longueur et au codeur 204 du bloc enregistreur 114 de la figure 3. Le séparateur 256 du bloc lecteur 116 de la figure 6 opère en sens inverse du mélangeur 206 du bloc enregistreur 114 de la figure 3 pour séparer le code de détection d'erreur de la donnée. En se référant aux figures 2 et 6, l'interface 108 de mémoire sécurisée et les composants 252, 254, 256, 258 et 260 du bloc lecteur 116 opèrent en outre selon l'organigramme de la figure 15 lorsque la CPU 104 accède au dispositif 102 de mémoire pour une opération de lecture. La CPU 104 engendre de l'information d'accès à la mémoire comme une instruction de lecture incluant un nom d'instruction de lecture et une adresse de CPU indiquant une adresse du dispositif de mémoire à laquelle on doit accéder (étape S801 de la figure 15). L'adresse de CPU indique l'emplacement du dispositif 102 de mémoire qui doit être lu.
Le sélecteur 112 de mode détermine à partir de l'information d'accès de lecture à la mémoire si le mode sécurisé est activé par la CPU (étape S802 de la figure 15). Le sélecteur 112 de mode peut être réalisé selon l'un quelconque des exemples de mode de réalisation des figures 7, 8, 9, 10, 11 et 12 comme décrit ci-dessus. En plus, le FSM 258 de lecture en mémoire passe l'adresse de CPU en tant qu'adresse de mémoire au dispositif 102 de mémoire avec l'activation du signal de validation de lecture (étape S803 de la figure 15). À la suite de quoi le dispositif 102 de mémoire transfère la donnée de mémoire en tant que donnée initiale de lecture de
25 cette adresse de mémoire du dispositif 102 de mémoire au FSM 258 de lecture en mémoire (étape S804 de la figure 15). Le nombre de bits de la donnée initiale de lecture dépend des signaux "8", "16" et "32" de longueur de donnée de mémoire provenant du sélecteur 252 de longueur comme décrit ci-dessus en se référant aux figures 4 et 13. Lorsque le mode sécurisé est désactivé comme indiqué par le signal SMI Enable (étape S805 de la figure 15), le séparateur 256 engendre la donnée finale de lecture (c'est- à-dire, la donnée de CPU) à partir de la donnée initiale de lecture sans séparer aucun code de détection d'erreur de la donnée initiale de lecture (étape S806 de la figure 15). La donnée finale de lecture (c'est-à-dire, la donnée de CPU) est transférée à la CPU 104 avec le nombre de bits de la donnée finale de lecture correspondant à celui qui est activé des signaux "8", "16" et "24" de longueur de donnée de CPU. Comme variante, lorsque le mode sécurisé est activé comme indiqué par le signal SMI Enable (étape S805 de la figure 15), le séparateur 256 engendre la donnée finale de lecture (c'est-à-dire, la donnée de CPU) à partir de la donnée initiale de lecture en séparant le code de détection d'erreur de la donnée initiale de lecture (étape S807 de la figure 15). À la suite de quoi, le codeur 254 engendre un code de détection d'erreur (EDC) escompté en utilisant au moins l'une de l'adresse de CPU et de la donnée finale de lecture (étape S808 de la figure 15). Après quoi, le comparateur 260 engendre un signal de détection d'erreur (SMI Error) par comparaison de cet EDC escompté provenant du codeur 254 avec l'EDC calculé extrait de la donnée initiale de lecture par le séparateur 256 (étape S809 de la figure 15). Si l'EDC escompté provenant du codeur 254 n'est pas pratiquement le même que l'EDC calculé extrait de la donnée initiale de lecture par le séparateur 256, le comparateur 260 active le signal SMI Error pour indiquer la détection
26 d'une injection de défauts dans la donnée initiale de lecture reçue par le FSM 258 de lecture en mémoire. Le système électronique 100 est averti d'une telle injection de défauts dans la donnée initiale de lecture.
Dans un mode de réalisation de la présente invention, le bloc enregistreur 114 et le bloc lecteur 116 sont chacun réalisés à l'aide de portes logiques matérielles dans la CPU 104. De telles portes logiques matérielles supplémentaires occupent une superficie de silicium relativement petite de la CPU 104. L'injection de défauts est détectée pour des données sécurisées comme spécifié par la CPU 104 en utilisant les blocs lecteur et enregistreur 114 et 116 réalisés en matériel dans la CPU 104. Ainsi, l'augmentation de la superficie de silicium pour de tels blocs lecteur et enregistreur 114 et 116 est insignifiante pour le dispositif 102 de mémoire de grande capacité. De plus, l'injection de défauts à l'intérieur du dispositif 102 de mémoire ou au niveau du bus 106 entre le dispositif 102 de mémoire et la CPU 104 est efficacement détecté. En plus, la CPU 104 peut spécifier de façon souple la longueur et l'emplacement des données sécurisées mémorisées dans le dispositif 102 de mémoire quelle que soit la capacité du dispositif 102 de mémoire. Ce qui précède a été décrit à titre d'exemple seulement et n'est pas destiné à être limitatif. Ainsi, le nombre des éléments tels qu'ils sont représentés et décrits ici est seulement à titre d'exemple. De plus, les composants du bloc enregistreur 114 et du bloc lecteur 116 peuvent être facilement réalisés à l'aide de portes logiques matérielles étant donné la description des composants qui s'y trouvent selon un exemple de mode de réalisation de la présente invention. Cependant, la présente invention peut aussi être mise en pratique avec des composants du bloc enregistreur 114 et du bloc lecteur 116 qui seraient réalisés avec une combinaison de matériel et/ou de logiciel.

Claims (55)

  1. REVENDICATIONS1. Interface (108) de mémoire sécurisée caractérisée en ce qu'elle comprend : un bloc lecteur (116) qui engendre une donnée finale de lecture à transférer à une unité (104) de traitement de données en enlevant un code de détection d'erreur (EDC) d'une donnée initiale de lecture transférée par un dispositif (102) de mémoire lorsqu'un mode sécurisé est activé ; et un sélecteur (112) de mode destiné à activer ou désactiver le mode sécurisé en utilisant de l'information d'accès à la mémoire provenant de l'unité (104) de traitement de données.
  2. 2. Interface de mémoire securisée selon la revendication 1, caractérisée en ce que le bloc lecteur (116) engendre la donnée finale de lecture à partir de la donnée initiale de lecture sans séparer aucun code de détection d'erreur (EDC) lorsque le mode sécurisé est désactivé.
  3. 3. Interface de mémoire sécurisée selon la revendication 2, caractérisée en ce que l'information d'accès à la mémoire inclut un nom d'instruction, et en ce que le sélecteur (112) de mode inclut : un décodeur (112) d'instruction qui active le mode sécurisé lorsque le nom d'instruction est pour une instruction de lecture sécurisée, et qui désactive le mode sécurisé lorsque le nom d'instruction est pour une instruction de lecture normale.
  4. 4. Interface de mémoire sécurisée selon la revendication 3, caractérisée en ce que le bloc lecteur (116) et le décodeur (112) d'instruction sont disposés dans l'unité (104) de traitement de données qui est une CPU (unité centrale de traitement).
  5. 5. Interface de mémoire sécurisée selon la 35 revendication 2, caractérisée en ce que l'information d'accès à la mémoire inclut une adresse du dispositif (102) 28 de mémoire à laquelle on doit accéder pour la donnée initiale de lecture, et en ce que le sélecteur (112) de mode inclut . un décodeur (264) d'adresse qui active le mode sécurisé lorsque l'adresse du dispositif (102) de mémoire à laquelle on doit accéder est une adresse sécurisée et qui désactive le mode sécurisé lorsque l'adresse du dispositif (102) de mémoire à laquelle on doit accéder est une adresse non sécurisée.
  6. 6. Interface de mémoire securisée selon la revendication 5, caractérisée en ce que le décodeur (265) d'adresse est disposé à l'extérieur de l'unité (104) de traitement de données qui est une CPU (unité centrale de traitement) pour engendrer l'adresse du dispositif (102) de mémoire à laquelle on doit accéder.
  7. 7. Interface de mémoire sécurisée selon la revendication 2, caractérisée en ce que l'information d'accès à la mémoire inclut un nom de registre, et en ce que le sélecteur (112) de mode inclut : un indicateur (750) de registre respectif qui indique si le nom de registre correspond à l'activation ou à la désactivation du mode sécurisé.
  8. 8. Interface de mémoire securisée selon la revendication 7, caractérisé en ce que le bloc lecteur (116) et l'indicateur (750) de registre respectif sont disposés dans l'unité (114) de traitement de données qui est une CPU.
  9. 9. Interface de mémoire securisée selon la revendication 1, caractérisée en ce que le bloc lecteur 30 (116) inclut : un séparateur (256) destiné à engendrer la donnée finale de lecture en enlevant le code de détection d'erreur (EDC) de la donnée initiale de lecture lorsque le mode sécurisé est activé, et à engendrer la donnée finale de 35 lecture à partir de la donnée initiale de lecture sans 29 enlever aucun code de détection d'erreur lorsque le mode sécurisé est désactivé ; un codeur (254) destiné à engendrer un code de détection d'erreur (EDC) escompté à partir d'au moins l'une d'une adresse correspondante et de la donnée finale de lecture ; et un comparateur (260) destiné à engendrer un signal de détection d'erreur en comparant le code de détection d'erreur séparé de la donnée initiale de lecture avec le code de détection d'erreur escompté.
  10. 10. Interface de mémoire sécurisée selon la revendication 9, caractérisée en ce que le bloc lecteur (116) inclut en outre : un automate fini (258) destiné à lire la donnée initiale de lecture dans le dispositif (102) de mémoire en engendrant une adresse de mémoire et un signal de validation de lecture à partir de l'information d'accès à la mémoire ; et un sélecteur (252) de longueur destiné à commander l'automate fini (258) pour lire la donnée initiale de lecture avec une longueur de donnée de mémoire dépendant d'au moins un signal de commande de longueur de donnée qui commande aussi le fonctionnement du codeur (254) et du séparateur (256).
  11. 11. Interface de mémoire sécurisée selon la revendication 10, caractérisée en ce que la longueur de donnée de mémoire correspond audit dispositif (102) de mémoire, et en ce que l'au moins un signal de commande de longueur de donnée correspond à une longueur de données de traitement de l'unité (104) de traitement de données.
  12. 12. Interface de mémoire securisée selon la revendication 11, caractérisée en ce que l'unité (104) de traitement de données est une CPU séparée du dispositif de mémoire par un bus.
  13. 13. Interface de mémoire sécurisée selon la revendication 12, caractérisée en ce que l'unité (104) de 30 traitement de données et le dispositif de mémoire sont fabriqués sur un même circuit intégré.
  14. 14. Interface de mémoire securisée selon la revendication 12, caractérisée en ce que l'unité (104) de traitement de données et le dispositif (102) de mémoire sont fabriqués sur deux circuits intégrés distincts.
  15. 15. Interface de mémoire sécurisée selon la revendication 1, caractérisée en ce qu'elle comprend en outre : un bloc enregistreur (114) qui engendre une donnée finale d'écriture à écrire dans le dispositif (102) de mémoire à partir d'une donnée initiale d'écriture et d'un code de détection d'erreur (EDC) lorsque le mode sécurisé est activé ; et en ce que le bloc enregistreur (114) engendre la donnée finale d'écriture à partir de la donnée initiale d'écriture sans le code de détection d'erreur lorsque le mode sécurisé est désactivé.
  16. 16. Interface de mémoire sécurisée selon la revendication 15, caractérisée en ce que le bloc enregistreur (114) et le bloc lecteur (116) sont réalisés à l'aide de portes logiques matérielles.
  17. 17. Interface de mémoire sécurisée, caractérisée en ce qu'elle comprend : un bloc enregistreur (114) qui engendre une donnée finale d'écriture à écrire dans le dispositif (102) de mémoire à partir d'une donnée initiale d'écriture et d'un code de détection d'erreur (EDC) lorsque le mode sécurisé est activé ; et un sélecteur (112) de mode destiné à activer ou à désactiver le mode sécurisé en utilisant de l'information d'accès à la mémoire provenant d'une unité (104) de traitement de données.
  18. 18. Interface de mémoire sécurisée selon la revendication 17, caractérisée en ce que le bloc enregistreur (114) engendre la donnée finale d'écriture à 31 partir de la donnée initiale d'écriture sans le code de détection d'erreur (EDC) lorsque le mode sécurisé n'est pas activé.
  19. 19. Interface de mémoire securisée selon la revendication 18, caractérisée en ce que l'information d'accès à la mémoire inclut un nom d'instruction, et en ce que le sélecteur (112) de mode inclut : un décodeur (112) d'instruction qui active le mode sécurisé lorsque le nom d'instruction est pour une instruction d'écriture sécurisée, et qui désactive le mode sécurisé lorsque le nom d'instruction est pour une instruction d'écriture normale.
  20. 20. Interface de mémoire sécurisée selon la revendication 18, caractérisée en ce que l'information d'accès à la mémoire inclut une adresse du dispositif (102) de mémoire à laquelle on doit accéder, et en ce que le sélecteur (112) de mode inclut : un décodeur d'adresse qui active le mode sécurisé lorsque l'adresse du dispositif (102) de mémoire à laquelle on doit accéder est une adresse sécurisée, et qui désactive le mode sécurisé lorsque l'adresse du dispositif (102) de mémoire à laquelle on doit accéder est une adresse non sécurisée.
  21. 21. Interface de mémoire sécurisée selon la revendication 18, caractérisée en ce que l'information d'accès à la mémoire inclut un nom de registre, et en ce que le sélecteur (112) de mode inclut : un indicateur (750) de registre respectif qui indique si le nom de registre correspond à l'activation ou à la 30 désactivation du mode sécurisé.
  22. 22. Interface de mémoire sécurisée selon la revendication 18, caractérisée en ce que le bloc enregistreur (114) inclut : un codeur (204) destiné à engendrer le code de 35 correction d'erreur (EDC) à partir d'au moins l'une d'une 32 adresse correspondante et de la donnée initiale d'écriture ; et un mélangeur (206) destiné à engendrer une donnée mélangée d'écriture à partir de la donnée initiale d'écriture et du code de détection d'erreur lorsque le mode sécurisé est activé et à partir de la donnée initiale d'écriture sans le code de correction d'erreur lorsque le mode sécurisé est désactivé ; et en ce que la donnée mélangée d'écriture détermine la 10 donnée finale d'écriture.
  23. 23. Interface de mémoire sécurisée selon la revendication 22, caractérisée en ce que le bloc enregistreur (114) inclut en outre : un automate fini (208) destiné à engendrer, à partir 15 de la donnée mélangée, la donnée finale d'écriture, un signal de validation d'écriture, et une adresse de mémoire du dispositif (102) de mémoire destinée à mémoriser la donnée finale d'écriture ; et un sélecteur (202) de longueur destiné à commander 20 l'automate fini (208) pour engendrer la donnée finale d'écriture avec une longueur de donnée de mémoire en fonction d'au moins un signal de commande de longueur de donnée qui commande aussi le fonctionnement du codeur (204) et du mélangeur (206) ; et 25 en ce que l'au moins un signal de commande de longueur de donnée correspond à une longueur de donnée de traitement de l'unité (104) de traitement de données.
  24. 24. Interface de mémoire securisée selon la revendication 23, caractérisée en ce que l'unité (104) de 30 traitement de données est une CPU séparée du dispositif (102) de mémoire par un bus.
  25. 25. Interface de mémoire sécurisée selon la revendication 24, caractérisée en ce que l'unité (104) de traitement de données et le dispositif (102) de mémoire 35 sont fabriqués sur un même circuit intégré. 33
  26. 26. Interface de mémoire securisée selon la revendication 24, caractérisée en ce que l'unité (104) de traitement de données et le dispositif (102) de mémoire sont fabriqués sous forme de deux circuits intégrés distincts.
  27. 27. Procédé d'accès sécurisé à un dispositif (102) de mémoire, caractérisé en ce qu'il comprend : la génération d'une donnée finale de lecture à transférer à une unité (104) de traitement de données en enlevant un code de détection d'erreur (EDC) d'une donnée initiale de lecture transférée par le dispositif (102) de mémoire lorsqu'un mode sécurisé est activé ; et l'activation ou la désactivation du mode sécurisé en utilisant de l'information d'accès à la mémoire provenant 15 de l'unité (104) de traitement de données.
  28. 28. Procédé selon la revendication 27, caractérisé en ce qu'il comprend en outre : la génération de la donnée finale de lecture à partir de la donnée initiale de lecture sans séparer aucun code de 20 détection d'erreur (EDC) lorsque le mode sécurisé est désactivé.
  29. 29. Procédé selon la revendication 28, caractérisé en ce que l'information d'accès à la mémoire inclut un nom d'instruction, et en ce que le procédé inclut en outre : 25 l'activation du mode sécurisé lorsque le nom d'instruction est pour une instruction de lecture sécurisée ; et la désactivation du mode sécurisé lorsque le nom d'instruction est pour une instruction de lecture normale. 30
  30. 30. Procédé selon la revendication 28, caractérisé en ce que l'information d'accès à la mémoire inclut une adresse du dispositif (102) de mémoire à laquelle on doit accéder pour la donnée initiale de lecture, et en ce que le procédé inclut en outre :34 l'activation du mode sécurisé lorsque l'adresse du dispositif (102) de mémoire à laquelle on doit accéder est une adresse sécurisée ; et la désactivation du mode sécurisé lorsque l'adresse du 5 dispositif (102) de mémoire à laquelle on doit accéder est une adresse non sécurisée.
  31. 31. Procédé selon la revendication 28, caractérisé en ce que l'information d'accès à la mémoire inclut un nom de registre, et en ce qu'un indicateur de registre respectif 10 indique si le nom de registre correspond à l'activation ou à la désactivation du mode sécurisé.
  32. 32. Procédé selon la revendication 28, caractérisé en ce qu'il comprend en outre : la génération d'un code de détection d'erreur (EDC) 15 escompté à partir d'au moins l'une d'une adresse correspondante et de la donnée finale de lecture ; et la génération d'un signal de détection d'erreur en comparant le code de détection d'erreur séparé de la donnée initiale de lecture avec le code de détection d'erreur 20 escompté.
  33. 33. Procédé selon la revendication 32, caractérisé en ce qu'il comprend en outre : la lecture de la donnée initiale de lecture dans le dispositif (102) de mémoire en engendrant une adresse de 25 mémoire et un signal de validation de lecture à partir de l'information d'accès à la mémoire ; et la commande de l'automate fini (258) pour lire la donnée initiale de lecture avec une longueur de donnée de mémoire dépendant d'au moins un signal de commande de 30 longueur de donnée ; et en ce que l'au moins un signal de commande de longueur de donnée correspond à une longueur de donnée de traitement de l'unité (104) de traitement de données.
  34. 34. Procédé selon la revendication 33, caractérisé en 35 ce que l'unité (104) de traitement de données est une CPU séparée du dispositif (102) de mémoire par un bus. 35
  35. 35. Procédé selon la revendication 34, caractérisé en ce que l'unité (104) de traitement de données et le dispositif (102) de mémoire sont fabriqués sur un même circuit intégré.
  36. 36. Procédé selon la revendication 34, caractérisé en ce que l'unité (104) de traitement de données et le dispositif (102) de mémoire sont fabriqués sur deux circuits intégrés distincts.
  37. 37. Procédé selon la revendication 27, caractérisé en 10 ce qu'il comprend en outre : la génération d'une donnée finale d'écriture à écrire dans le dispositif (102) de mémoire à partir d'une donnée initiale d'écriture et d'un code de détection d'erreur (EDC) lorsque le mode sécurisé est activé ; et 15 la génération de la donnée finale d'écriture à partir de la donnée initiale d'écriture sans le code de détection d'erreur lorsque le mode sécurisé est désactivé.
  38. 38. Procédé d'accès sécurisé à un dispositif (102) de mémoire, caractérisé en ce que le procédé comprend : 20 la génération d'une donnée finale d'écriture à écrire dans le dispositif (102) de mémoire à partir d'une donnée initiale d'écriture et d'un code de détection d'erreur (EDC) lorsque le mode sécurisé est activé ; et l'activation ou la désactivation du mode sécurisé en 25 utilisant de l'information d'accès à la mémoire provenant d'une unité de traitement de données.
  39. 39. Procédé selon la revendication 38, caractérisé en ce qu'il comprend en outre : la génération de la donnée finale d'écriture à partir 30 de la donnée initiale d'écriture sans le code de détection d'erreur (EDC) lorsque le mode sécurisé est désactivé.
  40. 40. Procédé selon la revendication 39, caractérisé en ce que l'information d'accès à la mémoire inclut un nom d'instruction, et en ce que le procédé inclut en outre : 36 l'activation du mode sécurisé lorsque le nom d'instruction est pour une instruction d'écriture sécurisée ; et la désactivation du mode sécurisé lorsque le nom d'instruction est pour une instruction d'écriture normale.
  41. 41. Procédé selon la revendication 39, caractérisé en ce que l'information d'accès à la mémoire inclut une adresse du dispositif (102) de mémoire à laquelle on doit accéder, et en ce que le procédé inclut en outre : l'activation du mode sécurisé lorsque l'adresse du dispositif (102) de mémoire à laquelle on doit accéder est une adresse sécurisée ; et la désactivation du mode sécurisé lorsque l'adresse du dispositif (102) de mémoire à laquelle on doit accéder est 15 une adresse non sécurisée.
  42. 42. Procédé selon la revendication 39, caractérisé en ce que l'information d'accès à la mémoire inclut un nom de registre, et en ce qu'un indicateur de registre respectif indique si le nom de registre correspond à l'activation ou 20 à la désactivation du mode sécurisé.
  43. 43. Procédé selon la revendication 39, caractérisé en ce qu'il comprend en outre : la génération du code de correction d'erreur (EDC) à partir d'au moins l'une de la donnée initiale d'écriture et 25 d'une adresse correspondante ; et la génération d'une donnée mélangée d'écriture à partir de la donnée initiale d'écriture et du code de détection d'erreur (EDC) lorsque le mode sécurisé est activé et à partir de la donnée initiale d'écriture sans le 30 code de détection d'erreur lorsque le mode sécurisé est désactivé ; et en ce que la donnée mélangée d'écriture détermine la donnée finale d'écriture.
  44. 44. Procédé selon la revendication 43, caractérisé en 35 ce qu'il comprend en outre : 37 la génération, à partir de la donnée mélangée, de la donnée finale d'écriture, d'un signal de validation d'écriture, et d'une adresse de mémoire du dispositif (102) de mémoire destinée à mémoriser la donnée finale d'écriture ; et la génération de la donnée finale d'écriture avec une longueur de donnée de mémoire en fonction d'au moins un signal de commande de longueur de donnée ; et en ce que l'au moins un signal de commande de longueur 10 de donnée correspond à une longueur de donnée de traitement de l'unité (104) de traitement de données.
  45. 45. Procédé selon la revendication 44, caractérisé en ce que l'unité (104) de traitement de données est une CPU séparée du dispositif (102) de mémoire par un bus. 15
  46. 46. Procédé selon la revendication 45, caractérisé en ce que l'unité (104) de traitement de données et le dispositif (102) de mémoire sont fabriqués sur un même circuit intégré.
  47. 47. Procédé selon la revendication 45, caractérisé en 20 ce que l'unité (104) de traitement de données et le dispositif (102) de mémoire sont fabriqués sous forme de deux circuits intégrés distincts.
  48. 48. Procédé d'accès à un dispositif (102) de mémoire, caractérisé en ce que le procédé comprend : 25 la génération d'une information d'accès à la mémoire incluant au moins 1 bit d'adresse ou un nom de registre qui spécifie un type d'accès au dispositif (102) de mémoire ; et l'accès au dispositif (102) de mémoire en fonction du 30 type d'accès tel qu'il est spécifié par l'information d'accès à la mémoire.
  49. 49. Procédé selon la revendication 48, caractérisé en ce que le type d'accès inclut un accès sécurisé ou un accès non sécurisé. 35
  50. 50. Procédé selon la revendication 48, caractérisé en ce que l'au moins un bit d'adresse engendré par l'unité 38 (104) de traitement de données détermine le type d'accès au dispositif (102) de mémoire.
  51. 51. Procédé selon la revendication 48, caractérisé en ce que le nom de registre engendré par l'unité (104) de traitement de données détermine le type d'accès au dispositif (102) de mémoire.
  52. 52. Système électronique, caractérisé en ce qu'il comprend : un dispositif (102) de mémoire ; une unité de traitement de données destinée à engendrer une information d'accès à la mémoire incluant au moins 1 bit d'adresse ou un nom de registre qui spécifie un type d'accès au dispositif (102) de mémoire ; et une unité d'interface destinée à accéder au dispositif 15 (102) de mémoire en fonction du type d'accès tel qu'il est spécifié par l'information d'accès à la mémoire.
  53. 53. Système électronique selon la revendication 52, caractérisé en ce que le type d'accès inclut un accès sécurisé ou un accès non sécurisé. 20
  54. 54. Système électronique selon la revendication 52, caractérisé en ce que l'au moins un bit d'adresse engendré par l'unité (104) de traitement de données détermine le type d'accès au dispositif (102) de mémoire.
  55. 55. Système électronique selon la revendication 52, 25 caractérisé en ce que le nom de registre engendré par l'unité (104) de traitement de données détermine le type d'accès au dispositif (102) de mémoire.
FR0954852A 2008-10-01 2009-07-10 Interface de memoire securisee Active FR2938358B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020080096574A KR101537018B1 (ko) 2008-10-01 2008-10-01 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
US12/319,788 US8397042B2 (en) 2008-10-01 2009-01-12 Secure memory interface

Publications (2)

Publication Number Publication Date
FR2938358A1 true FR2938358A1 (fr) 2010-05-14
FR2938358B1 FR2938358B1 (fr) 2016-09-16

Family

ID=42058844

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0954852A Active FR2938358B1 (fr) 2008-10-01 2009-07-10 Interface de memoire securisee

Country Status (5)

Country Link
US (2) US8397042B2 (fr)
JP (1) JP5535547B2 (fr)
KR (1) KR101537018B1 (fr)
CN (1) CN101714411B (fr)
FR (1) FR2938358B1 (fr)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3239919A1 (fr) 2008-03-05 2017-11-01 eBay Inc. Procédé et appareil de services de reconnaissance d'images
US9495386B2 (en) 2008-03-05 2016-11-15 Ebay Inc. Identification of items depicted in images
FR2946787A1 (fr) * 2009-06-16 2010-12-17 St Microelectronics Rousset Procede de detection d'une attaque par injection de faute d'un dispositif de memoire, et dispositif de memoire correspondant
US9164577B2 (en) 2009-12-22 2015-10-20 Ebay Inc. Augmented reality system, method, and apparatus for displaying an item image in a contextual environment
AT510381B1 (de) * 2010-08-05 2017-03-15 Siemens Ag Oesterreich Speicherkontrollelement und zugehöriges konfigurationsverfahren
US10127606B2 (en) 2010-10-13 2018-11-13 Ebay Inc. Augmented reality system and method for visualizing an item
US9449342B2 (en) 2011-10-27 2016-09-20 Ebay Inc. System and method for visualization of items in an environment using augmented reality
US9240059B2 (en) 2011-12-29 2016-01-19 Ebay Inc. Personal augmented reality
US9116711B2 (en) 2012-02-08 2015-08-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US9213828B2 (en) 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
US9477834B2 (en) * 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
US10210349B2 (en) 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain
US10846766B2 (en) 2012-06-29 2020-11-24 Ebay Inc. Contextual menus based on image recognition
KR101977772B1 (ko) * 2012-07-12 2019-05-13 삼성전자주식회사 데이터 처리 장치 및 이를 포함하는 보안 메모리 장치
US9336541B2 (en) 2012-09-21 2016-05-10 Paypal, Inc. Augmented reality product instructions, tutorials and visualizations
US9129071B2 (en) 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US9749319B2 (en) 2015-05-20 2017-08-29 Google Inc. Address validation using signatures
US9929858B2 (en) 2015-09-21 2018-03-27 Nxp B.V. Method and system for detecting fault attacks
US10621336B2 (en) * 2015-09-26 2020-04-14 Intel Corporation Technologies for software attack detection using encoded access intent
CN105550089B (zh) * 2015-12-07 2018-03-30 中国航空工业集团公司西安航空计算技术研究所 一种基于数字电路的fc网络帧头数据错误注入方法
KR20170078307A (ko) * 2015-12-29 2017-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN105787395B (zh) * 2016-02-29 2019-03-22 宇龙计算机通信科技(深圳)有限公司 数据存取方法、数据存取装置和移动终端
US20190050570A1 (en) * 2017-08-14 2019-02-14 Qualcomm Incorporated Computer resource access control based on the state of a non-accessing component
CN108009060A (zh) * 2017-11-29 2018-05-08 北京润科通用技术有限公司 一种rs485总线故障模拟方法及装置
US12182260B2 (en) 2017-12-18 2024-12-31 Nuvoton Technology Corporation System and method for detecting fault injection attacks
US10990682B2 (en) * 2017-12-18 2021-04-27 Nuvoton Technology Corporation System and method for coping with fault injection attacks
EP3506143B1 (fr) * 2017-12-27 2024-02-14 Siemens Aktiengesellschaft Interface pour module de sécurité de matériel
CN111400182B (zh) * 2020-03-16 2021-08-17 腾讯科技(深圳)有限公司 故障注入方法、装置、服务器及计算机可读存储介质
US11783026B2 (en) * 2021-01-05 2023-10-10 Nuvoton Technology Corporation Processor with in-band fault-injection detection
WO2023009560A1 (fr) * 2021-07-30 2023-02-02 Nvidia Corporation Transmission de données entre des régions de niveaux d'intégrité de sécurité variables dans un système sur puce
US11907559B1 (en) * 2022-08-09 2024-02-20 Winbond Electronics Corporation Physically secure memory partitioning
CN115565584A (zh) * 2022-09-29 2023-01-03 武汉新芯集成电路制造有限公司 存储芯片、工作方法及判断方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01209552A (ja) * 1988-02-17 1989-08-23 Hitachi Maxell Ltd 半導体ファイルメモリ装置
JP2647989B2 (ja) * 1990-03-13 1997-08-27 日本電気アイシーマイコンシステム株式会社 記憶装置
JP3178909B2 (ja) * 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
JP3364753B2 (ja) * 1992-05-06 2003-01-08 日本電気エンジニアリング株式会社 メモリエラー修正回路
JPH0612270A (ja) * 1992-06-26 1994-01-21 Matsushita Electric Ind Co Ltd テスト回路
US5224166A (en) * 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
US5859858A (en) * 1996-10-25 1999-01-12 Intel Corporation Method and apparatus for correcting a multilevel cell memory by using error locating codes
US5978953A (en) * 1996-12-19 1999-11-02 Compaq Computer Corporation error detection and correction
US6279072B1 (en) * 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
JP2003122638A (ja) * 2001-10-18 2003-04-25 Fujitsu Ltd 半導体集積回路装置
KR100746225B1 (ko) * 2006-02-13 2007-08-03 삼성전자주식회사 반도체 메모리 장치 및 이를 구비한 메모리 시스템
KR100837270B1 (ko) * 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
KR100836758B1 (ko) * 2006-09-11 2008-06-10 삼성전자주식회사 메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및독출 방법
KR101397549B1 (ko) * 2007-08-16 2014-05-26 삼성전자주식회사 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법

Also Published As

Publication number Publication date
KR101537018B1 (ko) 2015-07-17
KR20100037313A (ko) 2010-04-09
FR2938358B1 (fr) 2016-09-16
CN101714411B (zh) 2014-06-11
CN101714411A (zh) 2010-05-26
JP5535547B2 (ja) 2014-07-02
JP2010086523A (ja) 2010-04-15
US20100082927A1 (en) 2010-04-01
US8397042B2 (en) 2013-03-12
US20130212348A1 (en) 2013-08-15

Similar Documents

Publication Publication Date Title
FR2938358A1 (fr) Interface de memoire securisee
FR2633749A1 (fr) Systeme microprocesseur avec une memoire morte programmable effacable electriquement ayant une fonction de prevention des erreurs d'ecriture et circuit de memoire
FR2810152A1 (fr) Memoire eeprom securisee comprenant un circuit de correction d'erreur
FR3038752A1 (fr)
FR2989504A1 (fr) Registre protege contre des attaques par injection de fautes
EP1108249B1 (fr) Procede de securisation du traitement d'une information sensible dans un module de securite monolithique, et module de securite associe
EP1983436A1 (fr) Contrôle d'intégrité d'une mémoire externe à un processeur
EP3391228B1 (fr) Procédé d'écriture dans une mémoire non-volatile d'une entité électronique et entité électronique associée
FR2828601A1 (fr) Ensemble de circuits electroniques comportant des moyens de decontamination de parties contaminees par des erreurs
FR2879320A1 (fr) Carte a puce a circuit integre et procede pour detecter si des donnees en memoire dans une telle carte ont ete compromises
FR2963128A1 (fr) Procédé de détection d'une attaque par injection de faute dans un dispositif de mémoire, et système de détection correspondant
EP1818846B1 (fr) Vérification d'intégrité de programmes ou de séquencement d'une machine d'états
FR3132365A1 (fr) Mémoire non volatile sécurisée
EP2250561B1 (fr) Dispositif permettant l'utilisation d'un composant programmable dans un environnement radiatif naturel
EP1880387A1 (fr) Dispositif de protection d'une memoire contre les attaques par injection d'erreur
FR2889005A1 (fr) Integrite materielle permanente des donnees
EP0636984B1 (fr) Procédé et dispositif de contrÔle des données dans un calculateur
FR2740235A1 (fr) Dispositif de controle du fonctionnement d'un systeme electronique embarque a bord d'un vehicule automobile
WO2018234920A1 (fr) Registre à bits défectueux pour mémoire
EP3893117B1 (fr) Circuit de vérification du contenu de registres
EP1340148B1 (fr) Dispositif et procede de detection et correction d'erreurs memoire dans un systeme electronique
EP1713023A1 (fr) Protection de données contenues dans un circuit intégré
FR3161046A1 (fr) Procédé de protection d’un microcontrôleur
FR2920894A1 (fr) Architecture de registre memoire a detection d'erreur integre et procede de detection d'erreur associe
FR3104285A1 (fr) Contrôle d’intégrité d’une mémoire

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 17