FR2853097A1 - Circuit programmable pourvu d'une memoire securisee - Google Patents

Circuit programmable pourvu d'une memoire securisee Download PDF

Info

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
Application number
FR0303521A
Other languages
English (en)
Other versions
FR2853097B1 (fr
Inventor
Arnaud Dehamel
Bruno Bernard
Frank Lhermet
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.)
Innova Card SARL
Original Assignee
Innova Card SARL
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 Innova Card SARL filed Critical Innova Card SARL
Priority to FR0303521A priority Critical patent/FR2853097B1/fr
Priority to PCT/FR2004/000719 priority patent/WO2004086230A2/fr
Publication of FR2853097A1 publication Critical patent/FR2853097A1/fr
Application granted granted Critical
Publication of FR2853097B1 publication Critical patent/FR2853097B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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

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)

REVENDICATIONS
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.
FR0303521A 2003-03-24 2003-03-24 Circuit programmable pourvu d'une memoire securisee Expired - Lifetime FR2853097B1 (fr)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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