FR2836735A1 - Circuit integre et procede de gestion de la memoire programme d'un tel circuit integre - Google Patents
Circuit integre et procede de gestion de la memoire programme d'un tel circuit integre Download PDFInfo
- Publication number
- FR2836735A1 FR2836735A1 FR0202618A FR0202618A FR2836735A1 FR 2836735 A1 FR2836735 A1 FR 2836735A1 FR 0202618 A FR0202618 A FR 0202618A FR 0202618 A FR0202618 A FR 0202618A FR 2836735 A1 FR2836735 A1 FR 2836735A1
- Authority
- FR
- France
- Prior art keywords
- memory
- code
- program memory
- circuit
- cyphered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/409—Device specific authentication in transaction processing
- G06Q20/4097—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
- G06Q20/40975—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/71—Protecting 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/77—Protecting 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 in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/357—Cards having a plurality of specified features
- G06Q20/3576—Multiple memory zones on card
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Finance (AREA)
- Storage Device Security (AREA)
Abstract
La présente invention concerne un circuit intégré comprenant une mémoire programme (11), une mémoire donnée (14), et une unité centrale (10), dans lequel la mémoire programme (11) comprend une première partie non chiffrée (12) d'un code exécutable et au moins une seconde partie chiffrée (13) de ce code, et dans lequel ledit circuit comprend, en outre, un composant configurable (15) configuré pour déchiffrer au vol ladite seconde partie chiffrée (13). La présente invention concerne également un procédé de gestion de la mémoire programme d'un tel circuit.
Description
<Desc/Clms Page number 1>
CIRCUIT INTEGRE ET PROCEDE DE GESTION DE LA MEMOIRE
PROGRAMME D'UN TEL CIRCUIT INTEGRE
DESCRIPTION DOMAINE TECHNIQUE
L'invention concerne un circuit intégré, par exemple un circuit pour carte à puce, et un procédé de gestion de la mémoire programme d'un tel circuit intégré.
PROGRAMME D'UN TEL CIRCUIT INTEGRE
DESCRIPTION DOMAINE TECHNIQUE
L'invention concerne un circuit intégré, par exemple un circuit pour carte à puce, et un procédé de gestion de la mémoire programme d'un tel circuit intégré.
ETAT DE LA TECHNIQUE ANTERIEURE
Lors de la fabrication d'un circuit intégré, par exemple un circuit intégré spécifique (ASIC ou 11 application- specific integrated circuit") ou un circuit pour carte à puce, le concepteur fournit au fondeur de silicium, fabricant de tels circuits, une version du code exécutable pour qu'il le grave sur celui-ci.
Lors de la fabrication d'un circuit intégré, par exemple un circuit intégré spécifique (ASIC ou 11 application- specific integrated circuit") ou un circuit pour carte à puce, le concepteur fournit au fondeur de silicium, fabricant de tels circuits, une version du code exécutable pour qu'il le grave sur celui-ci.
La remise d'un tel code logiciel à un fondeur de silicium ne permet pas de garantir toute la confidentialité sur ce code. En effet, ce code est transmis en clair au fondeur afin que ce dernier puisse procéder à toutes les opérations concernant le masquage du composant proprement dit. Le fondeur a donc accès à ce code directement. Si ce code comporte des clés ou des algorithmes, il peut en avoir connaissance aisément. Or, si le code est dérobé ou si une personne mal intentionnée dérobe ce code, toute la sécurité de non-divulgation est anéantie.
<Desc/Clms Page number 2>
Il n'existe pas aujourd'hui de mécanisme de chiffrement du code logiciel directement paramétrable par le client et hors du contrôle du fondeur.
De plus, dans le domaine de la télévision payante, qui est un domaine d'utilisation privilégiée de l'invention, les sanctions pour un piratage de ce type sont beaucoup moins graves que dans le domaine bancaire, voire inexistantes.
L'objectif de l'invention est de réduire le risque défini ci-dessus en fournissant au fondeur un code chiffré que l'unité centrale du circuit intégré ne soit pas capable de déchiffrer.
EXPOSÉ DE L'INVENTION
La présente invention propose un circuit intégré, par exemple un circuit pour carte à puce, comprenant une mémoire programme, une mémoire donnée, et une unité centrale, caractérisé en ce que la mémoire programme contient une première partie non chiffrée d'un code exécutable, et au moins une seconde partie chiffrée de ce code, et en ce que ledit circuit comprend, en outre, un composant configurable, configuré pour déchiffrer au vol ladite seconde partie chiffrée.
La présente invention propose un circuit intégré, par exemple un circuit pour carte à puce, comprenant une mémoire programme, une mémoire donnée, et une unité centrale, caractérisé en ce que la mémoire programme contient une première partie non chiffrée d'un code exécutable, et au moins une seconde partie chiffrée de ce code, et en ce que ledit circuit comprend, en outre, un composant configurable, configuré pour déchiffrer au vol ladite seconde partie chiffrée.
Le circuit configurable peut être un composant de type FPGA ("Field programmable gate arrays") ou de type ASIC programmable. La mémoire programme peut être une mémoire de type ROM ("Read only
memory"), ou de type Flash. La mémoire données peut être une mémoire de type E PROM ("Electrically Erasable ROM"ou ROM effaçable électriquement), de type Flash ou
memory"), ou de type Flash. La mémoire données peut être une mémoire de type E PROM ("Electrically Erasable ROM"ou ROM effaçable électriquement), de type Flash ou
<Desc/Clms Page number 3>
de type FeRAM ("Ferroelectric RAM"ou mémoire à accès aléatoire ferroélectrique).
L'invention concerne, également, un procédé de gestion de la mémoire programme d'un circuit intégré, comprenant en outre une mémoire données et une unité centrale, caractérisé en ce que, la mémoire programme contenant une première partie non chiffrée d'un code exécutable, et au moins une seconde partie chiffrée de ce code, le circuit comprenant un composant configurable, ledit procédé comprend les étapes suivantes : - l'unité centrale accède à la première partie, non chiffrée, du code en mémoire programme, - l'unité centrale enclenche un processus de chargement des données de configuration, préalablement chargées en mémoire données, dans le composant configurable, - l'unité centrale exécute la seconde partie, chiffrée, du code chargé en mémoire programme, celle-ci transitant par le composant configurable et y étant déchiffrée au vol.
On peut, de plus, utiliser un mécanisme d'interruption qui permet de réaliser le chargement du composant configurable lorsque l'unité centrale adresse au moins une zone de la partie de code chiffré de la mémoire programme.
On peut également utiliser plusieurs blocs dans la partie chiffrée de la mémoire programme, chaque bloc correspondant à un algorithme de chiffrement différent.
<Desc/Clms Page number 4>
Le fondeur de silicium ne dispose donc plus de toute la connaissance du code logiciel du client. Il est ainsi dégagé de certaines responsabilités qui découlaient de cette connaissance.
BRÈVE DESCRIPTION DES DESSINS
La figure unique illustre un exemple de réalisation du circuit intégré de l'invention.
La figure unique illustre un exemple de réalisation du circuit intégré de l'invention.
EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS
L'invention consiste à introduire dans un circuit intégré, par exemple un circuit pour carte à puce, un composant (matériel) configurable par l'utilisateur. Ce composant est assimilable à un composant FPGA, composant matériel configurable par logiciel.
L'invention consiste à introduire dans un circuit intégré, par exemple un circuit pour carte à puce, un composant (matériel) configurable par l'utilisateur. Ce composant est assimilable à un composant FPGA, composant matériel configurable par logiciel.
La figure illustre un exemple de réalisation d'un tel circuit intégré selon l'invention.
Celui-ci comprend : - une unité centrale 10, - une mémoire programme 11, par exemple une mémoire de type ROM ou de type Flash, dans laquelle est chargée une première partie non chiffrée du code exécutable, référencée 12, et une seconde partie chiffrée de ce code, référencée 13, - une mémoire données 14, par exemple de type E2PROM, Flash, ou FeRAM, - ce composant configurable 15, de type FPGA, ou ASIC programmable, pour déchiffrer la partie chiffrée du code, - un bus adresse 16,
<Desc/Clms Page number 5>
- des bus de données 17 et 18.
Dans la mémoire données 14 sont représentées des données 20 de configuration du composant configurable 15, qui correspondent à un fichier de programmation et/ou à une clé de déchiffrement, ou les deux.
Le composant configurable 15 a pour objet de laisser passer les données correspondant aux adresses de la partie non chiffrée 12 de la mémoire programme 11, qui permet d'une part le chargement des données de configuration 20 en mémoire de données 14, et d'autre part le transfert de ces données 20 vers le composant configurable 15. La partie chiffrée du code 13 est alors uniquement accessible si ces données 20 sont valides et permettent le bon déchiffrement de la partie chiffrée 13.
Le code exécutable fourni au fondeur comporte donc deux parties distinctes : - une partie de code non chiffrée directement exécutable par l'unité centrale 10 du circuit (sans modification), - une partie de code chiffrée, qui n'est exécutable par cette unité centrale 10 qu'après son passage dans le composant configurable 15.
Ce code est chargé en mémoire programme 11 du circuit, par le développeur. La première partie 12 a pour fonction de permettre de charger des données en mémoire données 14, de réaliser le chargement du logiciel de configuration du composant configurable 15, et de permettre alors au composant configurable 15 de
<Desc/Clms Page number 6>
déchiffrer la seconde partie chiffrée de code 13 à la volée, par exemple par blocs.
Le fondeur de silicium du circuit n'a ainsi plus connaissance de tout le code.
Le procédé de gestion de la mémoire programme 11 d'un tel circuit intégré, conformément à l'invention, comporte donc les étapes suivantes : - l'unité centrale 10 du circuit accède à la première partie 12, non chiffrée du code en mémoire programme 11, - l'unité centrale 10 enclenche le processus de chargement des données de configuration 20, préalablement chargées en mémoire données 14 dans le cycle de production, dans le composant configurable 15, - l'unité centrale 10 exécute la seconde partie, chiffrée, du code 13 chargée en mémoire programme 11, celle-ci transitant par le composant configurable 15 et y étant déchiffrée au vol.
Le composant configurable 15 peut être : - un composant de type FPGA qui peut être reconfiguré au minimum à chaque réinitialisation, - un composant utilisant une technologie "anti-fusible"qui ne peut être chargé qu'une fois.
Ce composant configurable 15 peut être constitué d'éléments XOR sur le bus de données, ou bien réalisé par une fonction de chiffrement plus complexe, aisément réalisable par un homme du métier.
<Desc/Clms Page number 7>
Dans une variante de réalisation, on utilise un mécanisme d'interruption pour réaliser le chargement du composant configurable 15, par exemple lorsque l'unité centrale 10 du circuit adresse une ou plusieurs zone de la partie de code chiffrée 13 de la mémoire 11.
Dans une autre variante de réalisation on utilise plusieurs blocs dans la partie chiffrée 13 de la mémoire programme 11, chaque bloc correspondant à un algorithme de chiffrement différent.
La sécurité intrinsèque du circuit a ainsi été augmentée, notamment vis-à-vis du fondeur. Vis-à- vis d'un pirate, le code ne peut être obtenu qu'avec beaucoup plus de difficulté : celui-ci doit en effet analyser la partie logique de chiffrement de ce circuit.
Claims (8)
1. Circuit intégré comprenant une mémoire programme (11), une mémoire donnée (14), et une unité centrale (10), caractérisé en ce en ce que la mémoire programme (11) contient une première partie non chiffrée (12) d'un code exécutable et au moins une seconde partie chiffrée (13) de ce code, et en ce que ledit circuit comprend, en outre, un composant configurable (15) configuré pour déchiffrer au vol ladite seconde partie chiffrée.
2. Circuit selon la revendication 1, dans lequel le circuit configurable (15) est un composant de type FPGA ou de type ASIC programmable.
3. Circuit selon la revendication 1, dans lequel la mémoire programme (11) est une mémoire de type ROM, ou de type Flash.
4. Circuit selon la revendication 1, dans lequel la mémoire données (14) est une mémoire de type E2PROM, de type Flash ou de type FeRAM.
5. Utilisation du circuit selon l'une quelconque des revendications précédentes dans une carte à puce.
6. Procédé de gestion de la mémoire programme (11) d'un circuit intégré comprenant en outre une mémoire données (14) et une unité centrale (10),
<Desc/Clms Page number 9>
caractérisé en ce que, cette mémoire programme (11) contenant une première partie non chiffrée d'un code exécutable, et au moins une seconde partie chiffrée de ce code, le circuit comprenant un composant configurable (15), le procédé comprend les étapes suivantes : - l'unité centrale (10) accède à la partie non chiffrée (12) du code en mémoire programme (11), - l'unité centrale enclenche un processus de chargement des données de configuration (20), préalablement chargées en mémoire données (14), dans le composant configurable (15), - l'unité centrale (10) exécute la partie chiffrée (13) du code en mémoire programme (14), celleci transitant par le composant configurable (15) et y étant déchiffrée au vol.
7. Procédé selon la revendication 6, dans lequel un mécanisme d'interruption permet de réaliser le chargement du composant configurable (15) lorsque l'unité centrale (10) adresse au moins une zone de la partie de code chiffré (13) de la mémoire programme (11).
8. Procédé selon la revendication 6, dans lequel on utilise plusieurs blocs dans la partie chiffrée (13) de la mémoire programme (11), chaque bloc correspondant à un algorithme de chiffrement différent.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0202618A FR2836735A1 (fr) | 2002-03-01 | 2002-03-01 | Circuit integre et procede de gestion de la memoire programme d'un tel circuit integre |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0202618A FR2836735A1 (fr) | 2002-03-01 | 2002-03-01 | Circuit integre et procede de gestion de la memoire programme d'un tel circuit integre |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2836735A1 true FR2836735A1 (fr) | 2003-09-05 |
Family
ID=27741360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0202618A Pending FR2836735A1 (fr) | 2002-03-01 | 2002-03-01 | Circuit integre et procede de gestion de la memoire programme d'un tel circuit integre |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2836735A1 (fr) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0449256A2 (fr) * | 1990-03-27 | 1991-10-02 | Kabushiki Kaisha Toshiba | Microcontrôleur ayant des moyens de sécurité |
US5386469A (en) * | 1993-08-05 | 1995-01-31 | Zilog, Inc. | Firmware encryption for microprocessor/microcomputer |
EP0720098A1 (fr) * | 1994-12-30 | 1996-07-03 | Thomson-Csf | Dispositif de sécurisation de systèmes d'information organisés autour de microprocesseurs |
US6195752B1 (en) * | 1996-10-15 | 2001-02-27 | Siemens Aktiengesellschaft | Electronic data processing circuit |
WO2001072075A1 (fr) * | 2000-03-21 | 2001-09-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Chiffrement et dechiffrement |
-
2002
- 2002-03-01 FR FR0202618A patent/FR2836735A1/fr active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0449256A2 (fr) * | 1990-03-27 | 1991-10-02 | Kabushiki Kaisha Toshiba | Microcontrôleur ayant des moyens de sécurité |
US5386469A (en) * | 1993-08-05 | 1995-01-31 | Zilog, Inc. | Firmware encryption for microprocessor/microcomputer |
EP0720098A1 (fr) * | 1994-12-30 | 1996-07-03 | Thomson-Csf | Dispositif de sécurisation de systèmes d'information organisés autour de microprocesseurs |
US6195752B1 (en) * | 1996-10-15 | 2001-02-27 | Siemens Aktiengesellschaft | Electronic data processing circuit |
WO2001072075A1 (fr) * | 2000-03-21 | 2001-09-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Chiffrement et dechiffrement |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1766588B1 (fr) | Composant pour module de sécurité | |
CN108932297B (zh) | 一种数据查询、数据共享的方法、装置及设备 | |
US20070186117A1 (en) | Secure processor-based system and method | |
Bossuet et al. | Dynamically configurable security for SRAM FPGA bitstreams | |
US20080107275A1 (en) | Method and system for encryption of information stored in an external nonvolatile memory | |
US6182217B1 (en) | Electronic data-processing device and system | |
US20070288765A1 (en) | Method and Apparatus for Secure Configuration of a Field Programmable Gate Array | |
CA2633371A1 (fr) | Systeme sur une seule puce securise | |
FR2681165A1 (fr) | Procede de transmission d'information confidentielle entre deux cartes a puces. | |
EP3324327B1 (fr) | Stockage dans une mémoire non volatile | |
KR20040068614A (ko) | 보안 환경에서 장치가 비의도적으로 사용되는 것을방지하는 방법 및 장치 | |
EP1939753A1 (fr) | Protection de zones mémoire | |
US20130124874A1 (en) | Secure system-on-chip | |
EP0720098B1 (fr) | Dispositif de sécurisation de systèmes d'information organisés autour de microprocesseurs | |
FR2979443A1 (fr) | Microcontroleur securise a base de mode | |
WO2001004728A1 (fr) | Dispositif d'interfaçage entre un port parallele d'un ordinateur et au moins un peripherique comportant une interface pour carte a puce | |
FR2829266A1 (fr) | Circuit integre a semiconducteurs ayant une fonction de crypteur/decrypteur pour proteger des donnees d'entree/ sortie transmises sur un bus interne | |
EP2323067B1 (fr) | Procédé sécurisé de traitement d'un contenu mémorisé au sein d'un composant, et composant correspondant | |
FR2836735A1 (fr) | Circuit integre et procede de gestion de la memoire programme d'un tel circuit integre | |
WO2016166450A1 (fr) | Procede de partage d'une memoire entre au moins deux entites fonctionnelles | |
FR2849233A1 (fr) | Procede de securisation des systemes informatiques par confinement logiciel | |
EP0172047B1 (fr) | Procédé et système pour chiffrer et déchiffrer des informations transmises entre un dispositif émetteur et un dispositif récepteur | |
Valette et al. | Securing embedded programmable gate arrays in secure circuits | |
EP3923169A1 (fr) | Démarrage sécurisé d'un circuit électronique | |
FR3106909A1 (fr) | Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique avec protection de clé secrète |