FR2853097A1 - Circuit programmable pourvu d'une memoire securisee - Google Patents
Circuit programmable pourvu d'une memoire securisee Download PDFInfo
- Publication number
- FR2853097A1 FR2853097A1 FR0303521A FR0303521A FR2853097A1 FR 2853097 A1 FR2853097 A1 FR 2853097A1 FR 0303521 A FR0303521 A FR 0303521A FR 0303521 A FR0303521 A FR 0303521A FR 2853097 A1 FR2853097 A1 FR 2853097A1
- Authority
- FR
- France
- Prior art keywords
- memory
- data
- circuit according
- volatile memory
- encryption
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Microcomputers (AREA)
Abstract
La présente invention concerne un circuit programmable qui comprend un microprocesseur MIC, des périphériques dont une mémoire non volatile FL et une mémoire de travail RAM, un bus d'interconnexion BUS pour relier ces périphériques au microprocesseur MIC.De plus, ce circuit comprend des moyens de protection AD pour sécuriser la mémoire non volatile FL.
Description
i
Circuit programmable pourvu d'une mémoire sécurisée La présente invention concerne un circuit programmable pourvu d'une mémoire sécurisée.
Le domaine de l'invention est celui des composants électroniques 5 sécurisés, notamment celui des circuits utilisés pour réaliser des transactions confidentielles.
Un tel circuit peut être subdivisé en deux zones, l'une sécurisée, l'autre non. Les informations qui transitent dans la zone sécurisée sont protégées: elles sont brouillées à l'émission et débrouillées à la réception. Dans la zone non 10 sécurisée, les informations transitent en clair.
En tout état de cause, ce circuit intègre un microprocesseur et, souvent, une mémoire cache, un contrôleur de mémoire de cache et / ou une unité de gestion mémoire. De plus, une mémoire non volatile, une ou plusieurs mémoires de travail telles que mémoire à accès aléatoire (" RAM " pour le terme anglais 15 " Random Access Memory ") ou mémoire à lecture seule (" ROM " pour le terme anglais " Read Only Memory ") figurent généralement dans la zone sécurisée. La plupart du temps, d'autres périphériques sont implantés dans la zone non sécurisée.
La mémoire non volatile (dite aussi mémoire " flash ") conserve les 20 données enregistrées lorsque le circuit est hors tension, si bien que ces données sont accessibles à la prochaine mise sous tension. C'est donc dans cette mémoire que sont stockées les données qui doivent être toujours disponibles et, notamment, les clés de chiffrement propre au circuit.
Or une mémoire flash n'est pas totalement protégée. Il est possible de 2 5 venir lire son contenu de l'extérieur au moyen de deux grands types d'attaques.
En premier lieu, l'attaque logicielle consiste à demander au circuit par une interface externe la lecture de la mémoire flash, ou bien à demander directement au microprocesseur qu'il sorte du circuit les données enregistrées dans cette mémoire. Ce type d'attaque est généralement prévenu par l'utilisation 3 o d'une unité de gestion de mémoire couplée au microprocesseur.
En second lieu, l'attaque physique du circuit est réalisée le plus souvent avec un microscope à effet de champ. Celui-ci permet de mesurer les charges stockées sur les grilles flottantes des cellules non volatiles afin de décoder les données contenues dans ces cellules. Cette deuxième attaque est aujourd'hui 35 lente et coûteuse. De plus, certains mécanismes ont été mis en place pour la détecter et vider le contenu complet de la mémoire en cas de détection.
Cependant, ces mécanismes présentent un certain temps de réponse et il peut arriver qu'une partie au moins de la mémoire soit décodée avant que celle-ci ne soit effacée.
Dans certaines applications, il ne faut pas prendre le risque d'une telle 5 attaque qui rend vulnérable les données stockées dans la mémoire flash, données au nombre desquelles peuvent figurer des clés de chiffrement.
La présente invention a ainsi pour objet de renforcer la protection de cette mémoire contre les accès frauduleux.
Selon l'invention, un circuit programmable comprend un 1c microprocesseur, des périphériques dont une mémoire non volatile et une mémoire de travail, un bus d'interconnexion pour relier ces périphériques au microprocesseur; de plus ce circuit comprend des moyens de protection pour sécuriser la mémoire non volatile.
Avantageusement, ces moyens de protection comportent des moyens de 15 cryptage pour adresser des mots cryptés à la mémoire non volatile.
De préférence, les moyens de cryptage font appel à une clé privée.
Selon un mode de réalisation privilégié du circuit, les moyens de cryptage figurent dans un module d'adaptation raccordé d'une part au bus d'interconnexion et d'autre part à la mémoire non volatile par l'intermédiaire 2 o d'une liaison dédiée.
Il est souhaitable que la longueur de la clé de cryptage soit supérieure à la longueur standard des données que traite le microprocesseur, si bien que celui-ci comprend des moyens pour décomposer les mots cryptés en données de longueur standard.
Selon le mode de réalisation privilégié ci-dessus, ces moyens pour décomposer les mots cryptés en données de longueur standard figurent de préférence dans le module d'adaptation.
Ainsi, lorsque le circuit comporte de plus une mémoire cache associé à un contrôleur, la longueur de la clé de cryptage étant supérieure à la longueur 30 standard des données que traite le microprocesseur, le module d'adaptation est prévu pour exploiter les accès consécutifs de ce contrôleur afin de décomposer les mots cryptés en données de longueur standard.
Il est préférable que la clé de cryptage soit stockée dans un registre programmable une seule fois, ce registre pouvant figurer dans la mémoire non 3 5 volatile.
La présente invention apparaîtra maintenant avec plus de détails dans le cadre de la description qui suit d'un exemple de réalisation donné à titre illustratif en se référant à la figure annexée qui représente un schéma d'un circuit programmable selon l'invention.
En référence à la figure, un circuit programmable comporte un microprocesseur MIC éventuellement associé à une mémoire cache et/ou à un contrôleur de mémoire (non représentés). Les autres éléments du circuit sont: - une mémoire non volatile FL de type flash, - une mémoire de travail RAM à accès aléatoire, - éventuellement un ou plusieurs autres périphériques PER, - un module d'adaptation AD, - un bus système BUS pour interconnecter tous les éléments du circuit hormis la mémoire non volatile FL, et - une liaison dédiée DL pour relier cette mémoire non volatile FL et le module d'adaptation AD.
L'invention propose donc de protéger les données dans la mémoire non volatile FL et une solution avantageuse consiste à recourir à des moyens de cryptage qui sont mis en oeuvre de préférence par le module d'adaptation AD.
Ainsi, les données sont cryptées avant d'être enregistrées dans cette 20 mémoire et elles sont décryptées lorsqu'elles sont lues avant d'être traitées.
Il convient donc de chiffrer les données a la volée avant de les stocker dans la mémoire non volatile FL.
Couramment, le microprocesseur traite des données d'une longueur de 8, 16 ou 32 bits (longueur standard), si bien qu'accéder à de telles données de 25 manière sécurisée imposerait un cryptage sur 32 bits. Il s'agirait là d'un cryptage très vulnérable, pratiquement inefficace, si l'on emploie des algorithmes connus.
Il est donc souhaitable de choisir un algorithme travaillant sur des données de 64 bits dans le cas présent, voire même 128 bits dès lors que cela s'avère nécessaire. La sélection d'un algorithme standard permet d'éviter des 3 0 contraintes supplémentaires, tout en assurant un niveau de sécurité maximal.
On préférera un algorithme a clé privée car il nécessite des temps de calcul beaucoup plus courts qu'un algorithme à clé publique.
A titre d'exemple, on retiendra les algorithmes suivants: - AES (abréviation de l'expression anglaise " Advanced Encryption Standard "), travaillant sur des mots de 128 bits et offrant, à l'heure actuelle, une sécurité maximale, - DES (abréviation de l'expression anglaise " Data Encryption Standard "), travaillant sur des mots de 64 bits, connu pour son universalité dans les systèmes les moins exigeants en matière de sécurité, - 3DES (abréviation de l'expression anglaise " Triple Data Encryption Standard "), ou - XDES (abréviation de l'expression anglaise " Extended Data Encryption Standard "), ces deux derniers algorithmes étant réputés pour des systèmes plus exigeant en terme de sécurité 10 tout en assurant de hauts débits de chiffrement à faible coût.
Naturellement, le module d'adaptation AD permet de crypter des données plus longues que la longueur standard. Ce module est prévu pour traiter des données de 64 ou 128 bits enregistrées en deux ou quatre mots de 32 bits dans la mémoire non volatile FL, si bien qu'un accès à une de ces données est 15 divisé en plusieurs accès de 32 bits.
A cet effet, le module d'adaptation AD peut exploiter les accès groupés ou accès consécutifs du contrôle de la mémoire cache du microprocesseur.
Cette mémoire cache contient une copie partielle de la mémoire non volatile FL qui est mise à jour en fonction de la partie du programme que le microprocesseur 2 0 MIC exécute. La mémoire cache étant très rapide et très proche du microprocesseur MIC, elle permet généralement d'améliorer les performances du circuit.
Le remplacement des données présentes dans la mémoire cache au moyen du contrôleur de cache s'effectue par paquets, ces paquets ayant une 25 taille minimale de 2 ou plus souvent 4 mots de 32 bits, ceci quelle que soit la taille des données traitées par le microprocesseur MIC.
On remarquera ici que la mémoire cache peut également être utilisée à d'autres fins par le circuit.
Le contrôleur écrit les données enregistrées dans la mémoire cache qui 3o concernent la mémoire flash FL, par paquets d'une taille multiple de 64 bits.
L'interfaçage de la mémoire cache avec la mémoire flash FL qui n'est capable de gérer que des accès de 32 bits se fait de façon simple en scindant un accès de taille 64bits en deux accès de 32 bits.
L'algorithme DES ou 3DES sera ainsi chargé tous les 2 mots de 32 bits, 35 tandis que l'algorithme AES sera chargé tous les 4 mots de 32 bits. Les données sont chargées à la volée. Dans le cas d'un traitement " pipeline " de l'algorithme AES, autrement dit lorsque le traitement complet d'une donnée en un ou plusieurs cycles est capable de recevoir une nouvelle donnée à chaque cycle, seul le premier accès introduit un temps de latence sur le temps total du transfert des données.
La clé privée utilisée par l'algorithme est stockée dans une zone non sécurisée du circuit dont l'accès se fait sans chiffrement, de préférence dans un registre programmable une seule fois dit " OTP " (pour l'expression anglaise One Time Programmable). Ce registre peut d'ailleurs prendre place dans la mémoire non volatile FL.
Dans le cas d'une attaque physique telle que décrite ci-dessus, il suffit d'effacer la clé de cryptage dès que l'attaque est détectée, ce qui est une opération très rapide. Il n'est plus nécessaire de vider complètement la mémoire flash FL pour la rendre inopérante, cette opération de vidage pouvant prendre un temps relativement important si cette mémoire a une taille conséquente. Le fait 15 que cette mémoire soit rendue inopérante beaucoup plus rapidement offre un facteur de sécurité supplémentaire.
L'exemple de réalisation de l'invention présenté ci-dessus a été choisi pour son caractère concret. Il ne serait cependant pas possible de répertorier de manière exhaustive tous les modes de réalisation que recouvre cette invention.
20 En particulier, tout moyen décrit peut-être remplacé par un moyen équivalent sans sortir du cadre de la présente invention.
Claims (8)
1) Circuit programmable comprenant un microprocesseur MIC, des périphériques dont une mémoire non volatile FL et une mémoire de 5 travail RAM, un bus d'interconnexion BUS pour relier lesdits périphériques audit microprocesseur MIC, caractérisé en ce qu'il comprend des moyens de protection AD pour sécuriser ladite mémoire non volatile FL.
2) Circuit selon la revendication 1, caractérisé en ce que lesdits moyens de protection AD comportent des moyens de cryptage pour adresser des mots cryptés à ladite mémoire non volatile FL.
3) Circuit selon la revendication 2, caractérisé en ce que lesdits moyens de 15 cryptage AD font appel à une clé privée.
4) Circuit selon l'une quelconque des revendications 2 ou 3, caractérisé en ce que lesdits moyens de cryptage figurent dans un module d'adaptation AD raccordé d'une part audit bus d'interconnexion BUS et d'autre part à 20 ladite mémoire non volatile FL par l'intermédiaire d'une liaison dédiée DL.
5) Circuit selon l'une quelconque des revendications 2 ou 3 caractérisé en ce que, la longueur de la clé de cryptage étant supérieure à la longueur 25 standard des données que traite ledit microprocesseur MIC, il comprend des moyens AD pour décomposer lesdits mots cryptés en données de longueur standard.
6) Circuit selon la revendication 4 caractérisé en ce que, comportant de 3 0 plus une mémoire cache associé à un contrôleur, la longueur de la clé de cryptage étant supérieure à la longueur standard des données que traite ledit microprocesseur MIC, ledit module d'adaptation AD est prévu pour exploiter les accès consécutifs dudit contrôleur afin de décomposer lesdits mots cryptés en données de longueur standard.
7) Circuit selon l'une quelconque des revendications 2 à 6, caractérisé en ce que la clé de cryptage est stockée dans un registre programmable une seule fois.
8) Circuit selon la revendication 7, caractérisé en ce que ledit registre figure dans ladite mémoire non volatile FL.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0303521A FR2853097B1 (fr) | 2003-03-24 | 2003-03-24 | Circuit programmable pourvu d'une memoire securisee |
| PCT/FR2004/000719 WO2004086230A2 (fr) | 2003-03-24 | 2004-03-24 | Circuit programmable pourvu d’une memoire securisee |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0303521A FR2853097B1 (fr) | 2003-03-24 | 2003-03-24 | Circuit programmable pourvu d'une memoire securisee |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR2853097A1 true FR2853097A1 (fr) | 2004-10-01 |
| FR2853097B1 FR2853097B1 (fr) | 2005-07-15 |
Family
ID=32947095
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR0303521A Expired - Lifetime FR2853097B1 (fr) | 2003-03-24 | 2003-03-24 | Circuit programmable pourvu d'une memoire securisee |
Country Status (2)
| Country | Link |
|---|---|
| FR (1) | FR2853097B1 (fr) |
| WO (1) | WO2004086230A2 (fr) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
| US6195752B1 (en) * | 1996-10-15 | 2001-02-27 | Siemens Aktiengesellschaft | Electronic data processing circuit |
| US6202152B1 (en) * | 1998-01-27 | 2001-03-13 | Philips Semiconductors, Inc. | System and method for accessing information decrypted in multiple-byte blocks |
| US20020029345A1 (en) * | 2000-07-13 | 2002-03-07 | Yusuke Kawasaki | Processing apparatus and integrated circuit |
| US20030005313A1 (en) * | 2000-01-18 | 2003-01-02 | Berndt Gammel | Microprocessor configuration with encryption |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6523118B1 (en) * | 1998-06-29 | 2003-02-18 | Koninklijke Philips Electronics N.V. | Secure cache for instruction and data protection |
| WO2002071231A1 (fr) * | 2001-02-15 | 2002-09-12 | Nokia Corporation | Procede et systeme de protection d'informations |
| JP2002328845A (ja) * | 2001-05-07 | 2002-11-15 | Fujitsu Ltd | 半導体集積回路及びicカードのセキュリティー保護方法 |
| US6996725B2 (en) * | 2001-08-16 | 2006-02-07 | Dallas Semiconductor Corporation | Encryption-based security protection for processors |
-
2003
- 2003-03-24 FR FR0303521A patent/FR2853097B1/fr not_active Expired - Lifetime
-
2004
- 2004-03-24 WO PCT/FR2004/000719 patent/WO2004086230A2/fr not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6195752B1 (en) * | 1996-10-15 | 2001-02-27 | Siemens Aktiengesellschaft | Electronic data processing circuit |
| US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
| US6202152B1 (en) * | 1998-01-27 | 2001-03-13 | Philips Semiconductors, Inc. | System and method for accessing information decrypted in multiple-byte blocks |
| US20030005313A1 (en) * | 2000-01-18 | 2003-01-02 | Berndt Gammel | Microprocessor configuration with encryption |
| US20020029345A1 (en) * | 2000-07-13 | 2002-03-07 | Yusuke Kawasaki | Processing apparatus and integrated circuit |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2004086230A2 (fr) | 2004-10-07 |
| FR2853097B1 (fr) | 2005-07-15 |
| WO2004086230A3 (fr) | 2004-12-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8862901B2 (en) | Memory subsystem and method therefor | |
| US6345359B1 (en) | In-line decryption for protecting embedded software | |
| USRE43987E1 (en) | System and method for protecting a computer system from malicious software | |
| EP3132375B1 (fr) | Systeme d'execution de code avec mecanisme d'hypervision en aveugle | |
| EP1766588B1 (fr) | Composant pour module de sécurité | |
| TWI490724B (zh) | 用於加載至少一個軟體模組的代碼的方法 | |
| WO2001095273A1 (fr) | Procede de stockage securise d'une donnee sensible dans une memoire d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede | |
| US20070186117A1 (en) | Secure processor-based system and method | |
| EP4120091A1 (fr) | Procédé de gestion de droits d accès de tâches logicielles exécutées par un microcontrôleur, et microcontrôleur correspondant | |
| US20080072070A1 (en) | Secure virtual RAM | |
| EP1914990A1 (fr) | Module électronique pour récepteur de télévision numérique | |
| FR2853097A1 (fr) | Circuit programmable pourvu d'une memoire securisee | |
| WO2002056592A1 (fr) | Methode pour stocker des donnees encryptees | |
| EP1507185A1 (fr) | Méthode et dispositif de protection contre l'accès non-autorisé à une routine sensible | |
| EP2323067A1 (fr) | Procédé sécurisé de traitement d'un contenu mémorisé au sein d'un composant, et composant correspondant | |
| FR2853098A1 (fr) | Circuit pourvu d'un acces externe securise | |
| WO2002093332A1 (fr) | Procede de protection d'un circuit logique contre des attaques exterieures, et unite logique comprenant un circuit logique a proteger contre des attaques exterieures | |
| EP4453740B1 (fr) | Système sur puce comprenant au moins une iommu sécurisée | |
| EP0889450B1 (fr) | Méthode de chargement de donnees dans une carte à microprocesseur | |
| WO2007094857A1 (fr) | Méthode et appareil pour sécuriser des données numériques | |
| EP0968462B1 (fr) | Procede de controle de l'etancheite d'applications chargees dans un terminal multi-applicatif et terminal pour la mise en oeuvre | |
| WO2023117270A1 (fr) | Module et procédé de sécurisation d'un équipement informatique | |
| WO2008068137A1 (fr) | Systeme de protection des donnees en memoire | |
| EP4390730A1 (fr) | Protection d'un procédé d'authentification | |
| FR2836735A1 (fr) | Circuit integre et procede de gestion de la memoire programme d'un tel circuit integre |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 18 |
|
| PLFP | Fee payment |
Year of fee payment: 19 |
|
| PLFP | Fee payment |
Year of fee payment: 20 |