FR2963455A1 - Protection de cles secretes - Google Patents

Protection de cles secretes Download PDF

Info

Publication number
FR2963455A1
FR2963455A1 FR1056177A FR1056177A FR2963455A1 FR 2963455 A1 FR2963455 A1 FR 2963455A1 FR 1056177 A FR1056177 A FR 1056177A FR 1056177 A FR1056177 A FR 1056177A FR 2963455 A1 FR2963455 A1 FR 2963455A1
Authority
FR
France
Prior art keywords
data
address
circuit
processor
memory
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
FR1056177A
Other languages
English (en)
Other versions
FR2963455B1 (fr
Inventor
Sylvie Wuidart
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.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
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 STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Priority to FR1056177A priority Critical patent/FR2963455B1/fr
Priority to US13/189,672 priority patent/US8806109B2/en
Publication of FR2963455A1 publication Critical patent/FR2963455A1/fr
Application granted granted Critical
Publication of FR2963455B1 publication Critical patent/FR2963455B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé de protection d'au moins une première donnée (DSA) d'une mémoire non volatile (2) dans laquelle l'extraction de cette première donnée est déclenchée par la lecture ou l'écriture, par un processeur et dans ladite mémoire, d'une seconde donnée (DA) indépendante de la première, ladite première donnée étant fournie à un circuit non accessible par ledit processeur.

Description

B10225 - 10-RO-033 1 PROTECTION DE CLÉS SECRÈTES
Domaine de l'invention La présente invention concerne de façon générale les circuits électroniques et, plus particulièrement, la protection de données manipulées par un circuit électronique intégrant un processeur et au moins une mémoire non volatile. L'invention s'applique notamment aux cartes à puce et autres circuits intégrés sécurisés. Exposé de l'art antérieur Les cartes à puce, ou plus généralement les circuits intégrés dit sécurisés, sont généralement équipés d'un circuit intégré incluant un microprocesseur et plusieurs mémoires parmi lesquelles des mémoires non volatiles et volatiles. Ces dispositifs manipulent des données dites secrètes, c'est-à-dire des données dont l'accès est réservé à un ou plusieurs utilisateurs. On parle généralement de clés secrètes qui sont utilisées par des algorithmes de chiffrement pour protéger ou authentifier des données (messages, images, vidéo, etc.). Les données secrètes sont généralement stockées dans 20 une mémoire non volatile du circuit intégré et sont considérées comme protégées au sein de cette mémoire.
B10225 - 10-RO-033
2 Une des faiblesses de ces dispositifs est que lorsque les clés doivent être manipulées par le processeur d'exploitation du circuit, elles sont susceptibles de transiter sur un bus de données partagé par le microprocesseur et d'autres éléments du circuit, et risquent d'être piratées, par exemple, par la mise en oeuvre d'attaques dites par canaux cachés qui examinent, par exemple, la consommation du circuit, son rayonnement, etc. Diverses méthodes ont déjà été proposées pour essayer de protéger les clés manipulées par un circuit sécurisé. Par exemple, le document EP-A-1 880 387 décrit un système de protection d'une mémoire contre des attaques par injection de fautes. On a également déjà proposé de chiffrer les trans- missions sur le bus. Cela évite un éventuel piratage pendant le transfert entre la mémoire et les registres du processeur. Toutefois, les progrès en matière de piratage de données conduisent à une vulnérabilité accrue lorsque des données sont manipulées par le processeur du circuit. Même si les données secrètes sont le plus souvent masquées par des nombres aléatoires ou autres solutions de protection, il y a un moment où elles se retrouvent en clair dans un des registres du processeur. De récentes études ont montré qu'il était alors possible de pirater ces données sensibles à partir de tels registres. Résumé Un objet d'un mode de réalisation de la présente invention est de proposer un système de protection de données secrètes stockées en mémoire non volatile qui pallie tout ou partie des inconvénients des systèmes usuels. Un autre objet d'un mode de réalisation de la présente invention vise à éviter de rendre vulnérables des données secrètes lors de leur exploitation par le processeur du circuit. Pour atteindre tout ou partie de ces objets ainsi que d'autres, il est prévu un procédé de protection d'au moins une B10225 - 10-RO-033
3 première donnée d'une mémoire non volatile dans laquelle l'extraction de cette première donnée est déclenchée par la lecture ou l'écriture, par un processeur et dans ladite mémoire, d'une seconde donnée indépendante de la première, ladite première donnée étant fournie à un circuit non accessible par ledit processeur. Selon un mode de réalisation de la présente invention, l'adresse de la première donnée est fonction de l'adresse de la seconde.
Selon un mode de réalisation de la présente invention, l'adresse de la première donnée est obtenue par décalage de l'adresse de la seconde. Selon un mode de réalisation de la présente invention, la première donnée est fournie à un circuit logique.
Selon un mode de réalisation de la présente invention, ladite première donnée est une clé secrète d'un algorithme de chiffrement ou d'authentification. On prévoit également un circuit intégré comportant : un processeur de traitement ; au moins un bus de données et un bus d'adresse accessibles par ledit processeur et auxquels sont connectées au moins une mémoire programme et une mémoire non volatile, la mémoire non volatile étant, en sortie de données, associée à un sélecteur relié d'une part au bus de données et d'autre part à un circuit logique. Selon un mode de réalisation de la présente invention, un décodeur d'adresses calcule l'adresse de la première donnée à partir de l'adresse de la seconde. On prévoit également une carte à puce comportant un 30 tel circuit. Brève description des dessins Ces objets, caractéristiques et avantages, ainsi que d'autres seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif 35 en relation avec les figures jointes parmi lesquelles : B10225 - 10-RO-033
4 la figure 1 est un schéma bloc d'un mode de réalisation d'un circuit électronique selon la présente invention ; la figure 2 représente, de façon très schématique, un 5 mode de réalisation d'une mémoire non volatile ; et la figure 3 illustre les échanges d'adresses et de données dans la mémoire de la figure 3 pour une lecture d'une donnée secrète. Description détaillée 10 De mêmes éléments ont été désignés par de mêmes références aux différentes figures. Par souci de clarté, seuls les éléments utiles à la compréhension de l'invention ont été représentés et seront décrits. En particulier, les algorithmes de manipulation des données secrètes n'ont pas été détaillés, 15 l'invention étant compatible avec tout algorithme usuel. De plus, les mécanismes conduisant le système d'exploitation du processeur à appeler des données sensibles n'ont pas non plus été détaillés, l'invention étant là encore compatible avec les programmes habituellement manipulés par un tel processeur. 20 La figure 1 représente, sous forme de blocs, un exemple d'architecture d'un circuit électronique intégré 1. De façon habituelle, un tel circuit comporte un processeur 11 (CPU), ou unité centrale de traitement, susceptible de communiquer par l'intermédiaire d'au moins un bus 12 d'adresses 25 et d'un bus 13 de données avec d'autres éléments du circuit parmi lesquels au moins une mémoire non volatile 2 réinscriptible ou non. Dans l'exemple de la figure 1, le circuit 1 comporte une mémoire à lecture seulement 14 (ROM), une mémoire volatile 15 (RAM) et un circuit d'entrée-sortie 16 (I/O) 30 susceptible de communiquer avec l'extérieur du circuit. D'autres liaisons (par exemple un ou plusieurs bus de commande) ou d'autres circuits non représentés peuvent être intégrés au circuit 1. Selon ce mode de réalisation, la mémoire non volatile 2 est découpée en au moins deux zones 22 et 24 parmi lesquelles 35 la zone 22 n'a pas accès au bus de données. En d'autres termes, B10225 - 10-RO-033
les données de la zone 24 sont accessibles en lecture et en écriture par le microprocesseur 11 depuis les bus d'adresse et de données tandis que les données de la zone 22 ne sont accessibles qu'en lecture et ne sont pas fournies au bus 13. 5 Dans l'exemple de la figure 1, les données de la zone 22 sont fournies à un circuit logique 3 (LOGIC) dont le rôle est de traiter les données secrètes issues de la zone 22 par une logique paramétrable ou câblée. Le circuit logique 3 peut être de différentes natures.
Il peut s'agir d'une machine d'états en logique câblée, d'un circuit logique programmable ou reconfigurable. Selon les cas, ce circuit peut comprendre un ou plusieurs registres (non représentés) qui reçoivent les données secrètes uniquement lorsque ces données ont besoin d'être utilisées. Le circuit 3 fournit le résultat de son traitement au processeur 11 par le biais du bus de données, mais la clé ne sort pas du circuit 3. Ainsi, à la différence d'un circuit usuel, la clé n'est pas fournie au circuit 3 par le processeur 11, mais directement par la mémoire.
Le circuit 3 n'est pas accessible par le processeur 11, c'est-à-dire que seuls le ou les résultats de son traitement sont fournis. Le processeur ne peut cependant pas accéder aux registres internes éventuels du circuit 3. La lecture des données secrètes dans la mémoire 2 est 25 déclenchée, de façon usuelle, par le programme exécuté par l'unité centrale 11. La figure 2 représente, de façon très schématique, une mémoire non volatile 2. La sortie DOUT du plan mémoire 2 est associée à un circuit d'aiguillage 28 (par exemple un 30 multiplexeur) un vers deux, dont les entrées-sorties respectives sont reliées d'une part au bus de données 13 et d'autre part à un ou plusieurs registres temporaires 32 (SDR) du circuit logique 3 servant à mémoriser temporairement les données secrètes. Le multiplexeur 28 est commandé par un signal CT 35 provenant par exemple d'un décodeur d'adresse 26. Le décodeur B10225 - 10-RO-033
6 d'adresse 26 de la mémoire 2 reçoit une adresse ADDNVMA du microcontrôleur 11 et a pour rôle d'adresser une donnée dans la zone accessible 24 et, si besoin, une donnée dans la zone secrète 22. Quand le décodeur 26 reçoit une adresse ADDNVMA, il adresse la zone 24 à cette adresse et calcule une adresse ADDNVMSA dans la zone 22. La donnée DA de la zone 24 est fournie au bus de données tandis que la donnée secrète DSA est fournie au registre 32. Par exemple, lorsqu'une adresse déterminée est appelée par l'unité centrale, le décodeur 26 génère automatiquement une adresse dans la zone sensible en ajoutant une valeur de décalage (OFFSET) dans cette adresse. D'autres modes de calcul d'adresse peuvent être prévus. La figure 3 illustre, par des chronogrammes, un exemple d'extraction de données secrètes de la zone 22. Cette figure illustre un exemple d'adresses présentes sur le bus 12 du circuit, de données présentes sur le bus 13 d'adresses internes ADDNVM à la mémoire non volatile 2 et de données présentes sur la sortie DOUT de la mémoire 2. Pour simplifier, les décalages temporels liés à la propagation des signaux ont été négligés.
Dans l'exemple représenté, on suppose le besoin d'extraire une clé secrète DSA de la mémoire 2 et que le programme appelant cette clé secrète est stocké en mémoire morte 14 (ROM) ou mémoire programme. Lorsque le microprocesseur 11 présente, sur le bus d'adresses 12, une adresse ADDROMi à laquelle est présente une instruction de lecture d'une donnée secrète RDOpCode, ce code opératoire est retourné sur le bus de données. Puis, le microprocesseur présente, sur le bus d'adresses 13, les adresses ADDROMi+1 et ADDROMi+2 auxquelles sont stockées des adresses de données dans la mémoire non volatile 2. La mémoire 14 retourne sur le bus de données 13 les adresses ADDNVMAH et ADDNVMAL. On suppose ici que la capacité de la mémoire non volatile requiert d'utiliser deux mots sur le bus 13 (par exemple 2 octets). Le processeur reconstitue alors l'adresse ADDNVMA et présente celle-ci sur le bus d'adresse 12 à destination de la mémoire 2. Cette adresse correspond à la ligne B10225 - 10-RO-033
7 dans laquelle se trouve la donnée DA de la zone accessible et cette donnée est donc retournée sur le bus 13. En interne, le bus d'adresse ADDNVM de la mémoire non volatile présente ensuite à celle-ci l'adresse ADDNVMSA de la donnée secrète DSA qui est ensuite retournée sur la sortie DOUT sans toutefois être présentée sur le bus 13. La mémoire fournit la donnée DSA pendant que le processeur va chercher en mémoire programme 14 l'instruction suivante (adresse ADDROMi+3). La génération de l'adresse ADDNVMSA par le décodeur 26 de la mémoire non volatile est automatique par exemple par un décalage d'adresse (OFFSET). La mémoire 2 contient bien entendu, dans sa zone accessible 24, des données qui ne sont pas associées à une clé secrète. Le décodeur ne fournit dans ce cas pas de deuxième donnée.
La mise en oeuvre de l'invention requiert bien entendu que le programmeur connaisse les adresses qu'il doit appeler dans la zone accessible et le fonctionnement du décodeur pour pointer sur les données secrètes de la zone protégée qu'il souhaite obtenir.
La zone 22 n'est pas accessible par le microprocesseur en mode utilisateur, c'est-à-dire que le décodeur n'est pas capable d'interpréter une adresse qu'il reçoit et qui pointe vers cette zone. En mode test, en fin de fabrication, la zone 22 peut toutefois être rendue accessible pour que le processeur puisse stocker les clés secrètes dans la zone 22 en adressant directement cette zone. Lors de la fabrication et du test du circuit électronique, toute la mémoire non volatile 2 est vide. Sa zone 22 est toutefois accessible pour permettre de renseigner les clés secrètes. Les données secrètes sont alors stockées par le système d'exploitation du test. Lorsque le circuit électronique est commuté en mode utilisateur de façon irréversible, la mémoire non volatile n'est plus accessible par le système d'exploitation et seule une lecture, déclenchée par une autre lecture dans la zone accessible, est autorisée.
B10225 - 10-RO-033
8 En outre, le mécanisme décrit est compatible avec le procédé de protection du brevet EP 1 880 387 susmentionné. On pourra se référer notamment aux figures 3, 4A et 4B de ce brevet et à leur description pour combiner les deux mécanismes de protection en exécutant la lecture de la donnée DA à la façon d'un cycle de lecture de donnée décrit dans ce brevet, donc lire une donnée de référence dans la mémoire et la comparer à une valeur attendue. Une telle combinaison rend la signature électrique de la lecture de la donnée secrète DSA identique à celle de la donnée de référence obtenue par ce brevet. Selon une variante de réalisation, la fonction de protection décrite est activable à la demande par le système d'exploitation. Divers modes de réalisation ont été décrits. Diverses variantes et modifications apparaîtront à l'homme de l'art. De plus, la mise en oeuvre de l'invention à partir des indications fonctionnelles données ci-dessus est à la portée de l'homme du métier en utilisant les techniques de programmation et de conception habituelles.

Claims (8)

  1. REVENDICATIONS1. Procédé de protection d'au moins une première donnée (DSA) d'une mémoire non volatile (2) dans laquelle l'extraction de cette première donnée est déclenchée par la lecture ou l'écriture, par un processeur (11) et dans ladite mémoire, d'une seconde donnée (DA) indépendante de la première, ladite première donnée étant fournie à un circuit (3) non accessible par ledit processeur.
  2. 2. Procédé selon la revendication 1, dans lequel l'adresse (ADDNVMSA) de la première donnée (DSA) est fonction de 10 l'adresse (ADDNVMA) de la seconde (DA).
  3. 3. Procédé selon la revendication 2, dans lequel l'adresse (ADDNVMSA) de la première donnée (DSA) est obtenue par décalage de l'adresse (ADDNVMA) de la seconde (DA).
  4. 4. Procédé selon l'une quelconque des revendications 1 15 à 3, dans lequel la première donnée (DSA) est fournie à un circuit logique (3).
  5. 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel ladite première donnée (DSA) est une clé secrète d'un algorithme de chiffrement ou d'authentification. 20
  6. 6. Circuit intégré comportant : un processeur de traitement (11) ; au moins un bus de données (13) et un bus d'adresse (12) accessibles par ledit processeur et auxquels sont connectées au moins une mémoire programme (14) et une mémoire 25 non volatile (2), la mémoire non volatile étant, en sortie de données, associée à un sélecteur (28) relié d'une part au bus de données et d'autre part à un circuit logique (3) pour la mise en oeuvre du procédé conforme à l'une quelconque des revendications précédentes. 30
  7. 7. Circuit selon la revendication 6, dans lequel un décodeur (26) d'adresses calcule l'adresse (ADDNVMSA) de la première donnée (DSA) à partir de l'adresse (ADDNVMA) de la seconde (DA).B10225 - 10-RO-033 10
  8. 8. Carte à puce comportant un circuit selon la revendication 6 ou 7.
FR1056177A 2010-07-27 2010-07-27 Protection de cles secretes Expired - Fee Related FR2963455B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1056177A FR2963455B1 (fr) 2010-07-27 2010-07-27 Protection de cles secretes
US13/189,672 US8806109B2 (en) 2010-07-27 2011-07-25 Protection of secret keys

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1056177A FR2963455B1 (fr) 2010-07-27 2010-07-27 Protection de cles secretes

Publications (2)

Publication Number Publication Date
FR2963455A1 true FR2963455A1 (fr) 2012-02-03
FR2963455B1 FR2963455B1 (fr) 2013-01-18

Family

ID=43627021

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1056177A Expired - Fee Related FR2963455B1 (fr) 2010-07-27 2010-07-27 Protection de cles secretes

Country Status (2)

Country Link
US (1) US8806109B2 (fr)
FR (1) FR2963455B1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3097365B1 (fr) * 2019-06-11 2021-07-02 St Microelectronics Rousset Circuit électronique
FR3109229B1 (fr) * 2020-04-09 2023-08-25 Proton World Int Nv Procédé d'authentification

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010016910A1 (en) * 2000-01-12 2001-08-23 Chiaki Tanimoto IC card and microprocessor
US7739506B2 (en) * 2003-02-14 2010-06-15 Sony Corporation Authentication processing device and security processing method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4888802A (en) * 1988-06-17 1989-12-19 Ncr Corporation System and method for providing for secure encryptor key management
US6160734A (en) * 1998-06-04 2000-12-12 Texas Instruments Incorporated Method for ensuring security of program data in one-time programmable memory
US20050086471A1 (en) * 2003-10-20 2005-04-21 Spencer Andrew M. Removable information storage device that includes a master encryption key and encryption keys

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010016910A1 (en) * 2000-01-12 2001-08-23 Chiaki Tanimoto IC card and microprocessor
US7739506B2 (en) * 2003-02-14 2010-06-15 Sony Corporation Authentication processing device and security processing method

Also Published As

Publication number Publication date
FR2963455B1 (fr) 2013-01-18
US20120030443A1 (en) 2012-02-02
US8806109B2 (en) 2014-08-12

Similar Documents

Publication Publication Date Title
EP2120388B1 (fr) Vérification d'intégrité d'une clé de chiffrement
FR2989504A1 (fr) Registre protege contre des attaques par injection de fautes
EP1983436B1 (fr) Contrôle d'intégrité d'une mémoire externe à un processeur
FR2979443A1 (fr) Microcontroleur securise a base de mode
EP1832974A1 (fr) Protection EMA d'un calcul par un circuit électronique
FR2963455A1 (fr) Protection de cles secretes
EP2212824A2 (fr) Verification de donnees lues en memoire
FR2956764A1 (fr) Protection de registres contre des perturbations unilaterales
FR2906665A1 (fr) Systemes cryptographiques pour chiffrer des donnees d'entree en utilisant une adresse aux donnees d'entree, circuits de detection d'erreur et procedes pour les faire fonctionner
EP1742407B1 (fr) Protection d'une quantité numérique contenue dans un circuit intégré comportant une interface JTAG
EP3283968A1 (fr) Procede de partage d'une memoire entre au moins deux entites fonctionnelles
FR2949010A1 (fr) Procede de contremesure pour proteger des donnees memorisees
EP1980968B1 (fr) Protection de l'exécution d'un programme
EP3252987B1 (fr) Exécution sécurisée d'un algorithme
EP1436792B1 (fr) Protocole d'authentification a verification d'integrite de memoire
EP1713023B1 (fr) Protection de données contenues dans un circuit intégré
FR2811092A1 (fr) Appareil de traitement, circuit integre et module de circuit integre
EP1818846B1 (fr) Vérification d'intégrité de programmes ou de séquencement d'une machine d'états
EP1742162B1 (fr) Protection de l'exécution d'un programme
FR2910998A1 (fr) Protection d'une donnee statique dans un circuit integre.
WO2010010163A1 (fr) Circuit processeur à mémoire partagée et système tampon
EP3327985A1 (fr) Brouillage du fonctionnement d'un circuit intégré
EP0997854B1 (fr) Dispositif pour la gestion d'accès dans une carte à circuit intégré
EP4307143A1 (fr) Procede et circuit pour la verification de l'integrite d'un logiciel
FR3100907A1 (fr) Test de programme

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20150331