FR2991797A1 - SECURE PROCESSOR WITHOUT NON-VOLATILE MEMORY - Google Patents

SECURE PROCESSOR WITHOUT NON-VOLATILE MEMORY Download PDF

Info

Publication number
FR2991797A1
FR2991797A1 FR1201678A FR1201678A FR2991797A1 FR 2991797 A1 FR2991797 A1 FR 2991797A1 FR 1201678 A FR1201678 A FR 1201678A FR 1201678 A FR1201678 A FR 1201678A FR 2991797 A1 FR2991797 A1 FR 2991797A1
Authority
FR
France
Prior art keywords
microcircuit
data
key
pgm
signature
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
FR1201678A
Other languages
French (fr)
Other versions
FR2991797B1 (en
Inventor
Bruno Charrat
Benoit Feix
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.)
Rambus Inc
Original Assignee
Inside Secure SA
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 Inside Secure SA filed Critical Inside Secure SA
Priority to FR1201678A priority Critical patent/FR2991797B1/en
Priority to PCT/FR2013/051334 priority patent/WO2013186473A1/en
Publication of FR2991797A1 publication Critical patent/FR2991797A1/en
Application granted granted Critical
Publication of FR2991797B1 publication Critical patent/FR2991797B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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
    • G06F21/73Protecting 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 by creating or determining hardware identification, e.g. serial numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé de gestion de la mémoire d'un microcircuit sécurisé, comprenant des étapes exécutées par le microcircuit consistant à : appliquer une fonction déterministe (PUF) spécifique du microcircuit à un premier nombre (a0) pour obtenir un second nombre (a), générer une clé secrète (K) à partir du second nombre, recevoir d'une mémoire externe (DB) des premières données (EC), et appliquer un premier algorithme de cryptographie aux premières données en utilisant la clé secrète, pour obtenir des secondes données (Pgm) dans une mémoire volatile du microcircuit.The invention relates to a method for managing the memory of a secure microcircuit, comprising steps performed by the microcircuit consisting of: applying a specific deterministic function (PUF) of the microcircuit to a first number (a0) to obtain a second number ( a), generating a secret key (K) from the second number, receiving from an external memory (DB) first data (EC), and applying a first cryptographic algorithm to the first data using the secret key, to obtain second data (Pgm) in a volatile memory of the microcircuit.

Description

PROCESSEUR SECURISE SANS MEMOIRE NON VOLATILE La présente invention concerne généralement les microcircuits sécurisés tels que ceux qui sont intégrés dans des cartes à puce, et les objets portables tels que les téléphones mobiles, intégrant de telles cartes à puce.The present invention generally relates to secure microcircuits such as those integrated in smart cards, and portable objects such as mobile phones, incorporating such smart cards.

La présente invention s'applique notamment aux cartes à puces permettant de sécuriser des transactions sensibles telles que des transactions de paiement ou d'accès à un service, à contact ou à champ proche NFC (Near Field Communication). Les microcircuits comprennent généralement une mémoire non volatile, réinscriptible, pour mémoriser notamment le programme exécuté par un processeur du microcircuit et des données propres au système et d'autres à conserver entre deux transactions. Cette mémoire non volatile, généralement de type EEPROM ou Flash, est relativement coûteuse à fabriquer, comparativement au processeur, et occupe une surface importante du microcircuit. En outre, les techniques de fabrication requises pour fabriquer des cellules mémoires de mémoire non volatile ne sont pas disponibles dans les technologies les plus denses. Il peut donc être souhaitable de proposer un microcircuit sans mémoire non volatile et réinscriptible, ou avec une telle mémoire non volatile de faible capacité, insuffisante pour y mémoriser le programme d'exploitation ("operating system") exécuté par le processeur du microcircuit, et des données devant être conservées lorsque le microcircuit est mis hors tension. Les programmes et données devant être conservés peuvent être stockés à l'extérieur du microcircuit, par exemple dans une mémoire non volatile du dispositif dans lequel est intégré le microcircuit, et être chargés dans une mémoire volatile du microcircuit à la mise sous tension de ce dernier. Cependant, la sauvegarde de programmes et de données à l'extérieur du microcircuit soulève des problèmes de sécurité. En effet, les microcircuits de carte à puce peuvent stocker dans des mémoires des données secrètes telles que des identifiants et des clés de chiffrement. Le contenu de ces mémoires n'est pas accessible de l'extérieur, seul le microcircuit peut y accéder. Par ailleurs, les programmes exécutés par ces microcircuits sont généralement certifiés. En revanche, la mémoire externe où seraient stockés les programmes et données à sauvegarder n'est pas nécessairement sécurisée, ni reliée au microcircuit par une liaison sécurisée. Il peut donc être nécessaire d'assurer la confidentialité et/ou l'intégrité des données et des programmes sauvegardés à l'extérieur du microcircuit. A cet effet, il peut être prévu de chiffrer et/ou de signer les programmes et les données à sauvegarder avant de les transmettre à l'extérieur du microcircuit. Le processeur doit donc disposer d'une clé de chiffrement secrète. En l'absence de mémoire non volatile, cette clé secrète ne peut pas être conservée par le 10 microcircuit lorsque celui-ci est mis hors tension, afin de pouvoir déchiffrer des programmes et données reçus ou vérifier des signatures ultérieurement. La sauvegarde de programmes et de données dans une mémoire externe peut également soulever des problèmes de sécurité, lorsqu'il s'agit de contrôler ou limiter un nombre d'opérations ou de transactions autorisées 15 à être exécutées par le microcircuit. Ce problème se pose lorsque le microcircuit ne doit pouvoir exécuter qu'un nombre limité de transactions, par exemple dans le cadre d'applications de paiement ou de contrôle d'accès à un lieu ou un service. En effet, si les données de transactions sont stockées à l'extérieur du microcircuit, même sous forme chiffrée, une attaque dite "par 20 rejeu" peut consister à remplacer un dernier bloc de données chiffrées par un bloc de données chiffrées précédemment transmis par le microcircuit. En l'absence de mémoire non volatile, le microcircuit ne peut pas déterminer si un bloc de données chiffrées reçu correspond au dernier bloc de données qu'il a émis pour être sauvegardé dans une mémoire non volatile externe. 25 il peut donc être souhaitable de proposer un microcircuit sans mémoire Flash ou EEPROM, ou avec une telle mémoire mais de faible capacité, insuffisante pour y stocker le programme exécuté par le microcircuit. Il peut être également souhaitable que ce microcircuit offre une sécurité au moins équivalente à un microcircuit comportant une mémoire 30 Flash ou EEPROM permettant de sauvegarder tous les programmes et données utilisées par le microcircuit. Des modes de réalisation concernent un procédé de gestion d'une mémoire volatile d'un microcircuit sécurisé, comprenant une procédure de chargement de données comportant des étapes exécutées par le 35 microcircuit consistant à: appliquer une fonction déterministe spécifique du microcircuit à un premier nombre pour obtenir un second nombre, générer une clé secrète en appliquant une fonction déterministe au second nombre, recevoir d'une mémoire externe des premières données, et appliquer un premier algorithme de cryptographie aux premières données en utilisant la clé secrète, pour obtenir des secondes données dans une mémoire volatile du microcircuit. Selon un mode de réalisation, le procédé comprend une procédure de sauvegarde de données, comprenant des étapes exécutées par le microcircuit consistant à: appliquer un second algorithme de cryptographie à 10 des données à sauvegarder, en utilisant la clé secrète, pour obtenir des troisièmes données, et transmettre les troisièmes données avec le premier nombre à l'extérieur du microcircuit pour les stocker dans une mémoire externe au microcircuit. Selon un mode de réalisation, le premier nombre est généré par le 15 microcircuit lors d'une procédure d'initialisation comprenant l'exécution de la procédure de chargement de données, et est transmis au microcircuit lors d'une procédure de sauvegarde de données. Selon un mode de réalisation, la fonction déterministe spécifique du microcircuit est réalisée par un circuit du microcircuit, qui est sensible aux 20 conditions de fabrication du microcircuit, de sorte que deux microcircuits issus d'une même chaine de fabrication mettent en oeuvre des fonctions irréversibles respectives différentes. Selon un mode de réalisation, l'application d'une fonction déterministe spécifique du microcircuit au premier nombre est réalisée en appliquant une 25 fonction irréversible standard au premier nombre et à une donnée secrète spécifique du microcircuit. Selon un mode de réalisation, les premières ou troisièmes données comprennent un bloc de données chiffrées résultant du chiffrement par un calcul de chiffrement du second calcul cryptographique, appliqué aux 30 secondes données, le premier calcul cryptographique comprenant un calcul de déchiffrement du bloc de données chiffré pour obtenir les secondes données, le procédé comprenant une étape d'exploitation des secondes données résultant du calcul de déchiffrement. Selon un mode de réalisation, les premières ou troisièmes données 35 comprennent une première signature des secondes données obtenue par un premier calcul de signature du premier calcul cryptographique, le premier calcul cryptographique comprenant un calcul de signature pour obtenir une seconde signature, le procédé comprenant des étapes de comparaison de la première signature avec la seconde signature, et l'exploitation des premières ou troisièmes données reçues uniquement si la première signature correspond à la seconde signature. Selon un mode de réalisation, les secondes données sont du code exécutable par le microcircuit, des données utilisées par le code exécutable étant stockées dans une mémoire non volatile du microcircuit, utilisée pour mémoriser exclusivement des données ne comportant pas de code exécutable. Selon un mode de réalisation, les secondes données comprennent du code exécutable par le microcircuit et des données. Selon un mode de réalisation, le procédé comprend des étapes de : insertion dans les secondes données d'un identifiant de bloc qui est mémorisé de manière non volatile par le microcircuit, avant application du second calcul cryptographique aux secondes données, extraction de l'identifiant de bloc dans les premières ou troisièmes données reçues, comparaison de l'identifiant de bloc extrait avec l'identifiant de bloc mémorisé, et si l'identifiant de bloc extrait correspond à l'identifiant de bloc mémorisé, exploitation des premières ou troisièmes données et modification de l'identifiant de bloc mémorisé pour être inséré dans les secondes données avant une nouvelle application du premier calcul cryptographique aux secondes données.The present invention applies in particular to smart cards for securing sensitive transactions such as payment transactions or access to a service, contact or near field NFC (Near Field Communication). Microcircuits generally comprise a non-volatile memory, rewritable, for storing in particular the program executed by a microcircuit processor and system-specific data and others to keep between two transactions. This non-volatile memory, generally of the EEPROM or Flash type, is relatively expensive to manufacture, compared to the processor, and occupies a large area of the microcircuit. In addition, the manufacturing techniques required to fabricate nonvolatile memory cells are not available in the densest technologies. It may therefore be desirable to propose a microcircuit without a non-volatile memory and rewritable, or with such a non-volatile memory of low capacity, insufficient to store therein the operating program executed by the microcircuit processor, and data to be retained when the microcircuit is turned off. The programs and data to be stored can be stored outside the microcircuit, for example in a non-volatile memory of the device in which the microcircuit is integrated, and be loaded into a volatile memory of the microcircuit when the latter is powered up. . However, backing up programs and data outside the microcircuit raises security issues. In fact, smart card microcircuits can store in secret data memories such as identifiers and encryption keys. The content of these memories is not accessible from the outside, only the microcircuit can access it. Moreover, the programs executed by these microcircuits are generally certified. On the other hand, the external memory where the programs and data to be stored would be stored is not necessarily secured, nor connected to the microcircuit by a secure link. It may therefore be necessary to ensure the confidentiality and / or integrity of the data and programs saved outside the microcircuit. For this purpose, it may be provided to encrypt and / or sign programs and data to be saved before transmitting them outside the microcircuit. The processor must therefore have a secret encryption key. In the absence of nonvolatile memory, this secret key can not be retained by the microcircuit when the latter is de-energized, in order to be able to decrypt programs and data received or verify signatures later. Saving programs and data in external memory may also raise security concerns when it comes to controlling or limiting a number of operations or transactions allowed to be performed by the microcircuit. This problem arises when the microcircuit must only be able to execute a limited number of transactions, for example in the context of payment applications or access control to a place or a service. Indeed, if the transaction data are stored outside the microcircuit, even in encrypted form, a so-called "replay" attack may consist of replacing a last block of encrypted data with a block of encrypted data previously transmitted by the microcircuit. In the absence of nonvolatile memory, the microcircuit can not determine if an encrypted data block received corresponds to the last block of data that it has sent to be saved in an external nonvolatile memory. It may therefore be desirable to provide a microcircuit without a flash memory or EEPROM, or with such a memory but of low capacity, insufficient to store the program executed by the microcircuit. It may also be desirable for this microcircuit to offer security at least equivalent to a microcircuit comprising a Flash or EEPROM memory enabling all programs and data used by the microcircuit to be backed up. Embodiments provide a method of managing a volatile memory of a secure microcircuit, comprising a data loading procedure comprising steps performed by the microcircuit comprising: applying a specific deterministic function of the microcircuit to a first number to obtain a second number, generate a secret key by applying a deterministic function to the second number, receive from an external memory first data, and apply a first cryptography algorithm to the first data using the secret key, to obtain second data in a volatile memory of the microcircuit. According to one embodiment, the method comprises a data backup procedure, comprising steps performed by the microcircuit consisting of: applying a second cryptographic algorithm to data to be backed up, using the secret key, to obtain third data , and transmit the third data with the first number outside the microcircuit to store them in a memory external to the microcircuit. According to one embodiment, the first number is generated by the microcircuit during an initialization procedure including the execution of the data loading procedure, and is transmitted to the microcircuit during a data backup procedure. According to one embodiment, the specific deterministic function of the microcircuit is realized by a circuit of the microcircuit, which is sensitive to the microcircuit manufacturing conditions, so that two microcircuits coming from the same production line implement irreversible functions. respective ones. According to one embodiment, the application of a specific deterministic function of the microcircuit to the first number is performed by applying a standard irreversible function to the first number and to a specific secret data of the microcircuit. According to one embodiment, the first or third data comprises a block of encrypted data resulting from the encryption by an encryption calculation of the second cryptographic calculation, applied to the 30 second data, the first cryptographic calculation comprising a decryption calculation of the encrypted data block to obtain the second data, the method comprising a step of exploiting the second data resulting from the decryption calculation. According to one embodiment, the first or third data 35 comprise a first signature of the second data obtained by a first signature calculation of the first cryptographic calculation, the first cryptographic calculation comprising a signature calculation to obtain a second signature, the method comprising steps of comparing the first signature with the second signature, and the exploitation of the first or third data received only if the first signature corresponds to the second signature. According to one embodiment, the second data is executable code by the microcircuit, data used by the executable code being stored in a nonvolatile memory of the microcircuit, used to exclusively store data without executable code. According to one embodiment, the second data comprises code executable by the microcircuit and data. According to one embodiment, the method comprises steps of: inserting in the second data a block identifier that is stored non-volatile by the microcircuit, before applying the second cryptographic calculation to the second data, extracting the identifier in the first or third received data, comparison of the extracted block identifier with the stored block identifier, and if the extracted block identifier corresponds to the stored block identifier, exploitation of the first or third data and modifying the stored block identifier to be inserted in the second data before a new application of the first cryptographic calculation to the second data.

Selon un mode de réalisation, l'identifiant de bloc à insérer dans les secondes données et l'identifiant de bloc mémorisé sont fournis au microcircuit par un serveur distant. Selon un mode de réalisation, l'identifiant de bloc à insérer dans les secondes données est généré par le microcircuit et mémorisé de manière non volatile dans un circuit interne au microcircuit. Selon un mode de réalisation, la clé secrète est générée en appliquant une opération d'exponentiation modulaire à un nombre reçu de l'extérieur à la puissance le second nombre.According to one embodiment, the block identifier to be inserted in the second data and the stored block identifier are supplied to the microcircuit by a remote server. According to one embodiment, the block identifier to be inserted in the second data is generated by the microcircuit and stored in a non-volatile manner in a circuit internal to the microcircuit. According to one embodiment, the secret key is generated by applying a modular exponentiation operation to a number received from outside the power the second number.

Selon un mode de réalisation, le procédé comprend des étapes de génération d'une paire de clés publique et privée à partir du second nombre, et de transmission de la clé publique générée à l'extérieur du microcircuit. Des modes de réalisation concernent également un microcircuit comprenant un processeur, une mémoire programmable une seule fois, une mémoire volatile et un circuit mettant en oeuvre une fonction irréversible, le microcircuit étant configuré pour mettre en oeuvre le procédé tel que précédemment défini. Selon un mode de réalisation, le microcircuit comprend une mémoire 10 non volatile, programmable une seule fois, ou un compteur non volatil mémorisant un identifiant du dernier bloc sauvegardé à l'extérieur du microcircuit. Des exemples de réalisation de l'invention seront décrits dans ce qui 15 suit, à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente schématiquement un dispositif portable comprenant un microcircuit sécurisé, la figure 2 représente schématiquement des circuits du microcircuit sécurisé, selon un mode de réalisation, 20 la figure 3 représente des étapes exécutées à la mise sous tension du microcircuit sécurisé et à la suite de la réception d'un signal d'initialisation, selon un mode de réalisation, la figure 4 représente des étapes exécutées à la mise sous tension du microcircuit sécurisé et à la suite de la réception d'un programme à 25 recharger dans le microcircuit sécurisé, selon un mode de réalisation, la figure 5 représente des étapes exécutées par le microcircuit sécurisé et par un serveur en communication avec le microcircuit, selon un mode de réalisation, la figure 6 représente des étapes exécutées par le microcircuit 30 sécurisé et par un processeur en communication avec le microcircuit, selon un mode de réalisation, les figures 7 et 8 représentent schématiquement des circuits du microcircuit sécurisé, selon d'autres modes de réalisation, les figures 9 à 12 représentent des étapes exécutées par le microcircuit, et un processeur ou un serveur en communication avec le microcircuit, selon d'autres modes de réalisation, la figure 13 représente schématiquement un circuit du microcircuit, selon un mode de réalisation, la figure 14 représente des étapes exécutées par le microcircuit sécurisé et par un serveur en communication avec le microcircuit, selon un autre mode de réalisation. La figure 1 représente un dispositif portable HD tel qu'un téléphone 10 mobile. Le dispositif HD comprend par exemple un processeur principal BBP, également appelé processeur en "bande de base" ("Base-Band Processor"), un circuit de radiocommunication RCT connecté au processeur BBP, et un microcircuit SE relié au processeur BBP. Le microcircuit SE peut être de type UICC ("Universal Integrated Circuit Card"), par exemple de type 15 mini-SIM ou micro-SIM, ou de type micro-SD ("Micro Secure Digital card"). Le dispositif portable HD peut être de type à champ proche NFC, équipé d'une interface de communication à champ proche. Ainsi, le dispositif portable peut comprendre également un contrôleur NFC, référencé NFCC, qui est relié au processeur BBP par une liaison B2, un circuit d'antenne AC1 20 connecté au contrôleur NFCC. Le microcircuit SE peut être relié au contrôleur NFCC par une liaison B3. Le microcircuit SE peut être configuré pour effectuer des transactions NFC avec un terminal de transaction (non représenté) par l'intermédiaire du contrôleur NFCC. Le contrôleur NFCC comprend une interface de communication sans contact CLF connectée au 25 circuit d'antenne AC1. Le contrôleur NFCC peut se présenter sous la forme d'un circuit intégré, tel que MicroRead0 commercialisé par le Déposant. Le dispositif HD peut également comprendre un autre processeur sécurisé, par exemple intégré dans une carte SIM ("Subscriber Identity Module"), ainsi qu'une carte mémoire non volatile, telle qu'une carte Micro-30 SD. Le microcircuit SE qui est par exemple intégré dans une carte, peut être relié au processeur BBP par une liaison B1. La figure 2 représente des circuits du microcircuit SE. Le microcircuit SE comprend un processeur PRO, ainsi que des mémoires MEM1, MEM2 et des circuits de calcul cryptographiques CRYC, connectés au processeur 35 PRO. La mémoire MEM1 est par exemple de type ROM ("Read-Only Memory") ou de type programmable une seule fois OTP ("One Time Programmable") et la mémoire MEM2 est volatile, par exemple de type RAM ("Random Access Memory"). Selon un mode de réalisation, le microcircuit ne comprend pas de mémoire réinscriptible non volatile, mais comprend un circuit physiquement non reproductible IFC connecté au processeur PRO. Le circuit IFC met en oeuvre une fonction déterministe, irréversible, physiquement non reproductible PUF ("Physically Unclonable Function"), dont le fonctionnement est essentiellement imprédictible et non déterminable si l'on ne dispose pas du microcircuit. Une telle fonction peut donc être utilisée à des fins d'identification de microcircuit. Les fonctions PUF sont généralement réalisées par un circuit sensible aux conditions de fabrication du circuit, de sorte que les fonctions PUF respectives de deux microcircuits ont une probabilité très faible de fournir un résultat identique même si les deux microcircuits sont issus d'une même chaine de fabrication. La fonction PUF peut donc être une fonction à sens unique équivalente à une fonction de hachage telle que SHA1, dont le fonctionnement ne peut pas être reproduit. La fonction PUF peut également fournir toujours la même valeur. Le circuit IFC est utilisé pour générer une ou plusieurs valeurs secrètes qui peuvent par exemple servir à générer des clés de chiffrement. La figure 3 représente des étapes exécutées par un serveur SRV d'une autorité de confiance, par le processeur PRO du microcircuit sécurisé SE préalablement mis en communication avec le serveur SRV. La communication entre le microcircuit SE et le serveur SRV peut être sécurisée. A la suite de la mise sous tension POR du microcircuit SE, le microcircuit SE se met en attente d'un message. A une étape S1, le serveur SRV émet un message d'initialisation Inn. A la réception de ce message, le microcircuit exécute des étapes S6 à S8. A l'étape S6, le microcircuit SE reçoit le message émis par le serveur SRV. S'il s'agit d'un message d'initialisation, le microcircuit SE exécute des étapes S7, S8 et S10. A l'étape S7, le microcircuit SE génère un nombre a0 à l'aide d'une fonction de génération d'un nombre aléatoire RND1. Le nombre a0 peut également être fourni par le serveur SRV. Dans ce cas, l'utilisation de la fonction RND1 n'est pas nécessaire. Le nombre a0 est appliqué en entrée de la fonction PUF qui fournit un nombre a à conserver secret par le microcircuit. Compte tenu des propriétés de la fonction PUF, la connaissance du nombre a0 ne permet pas de déterminer le nombre secret a. Le nombre a est utilisé pour générer une ou plusieurs clés de chiffrement. Ainsi, le nombre a peut par exemple être utilisé pour mettre en oeuvre l'algorithme de cryptographie de Diffie-Hellman à partir de nombres g et p, par exemple inscrits dans la mémoire MEM1 lors de la fabrication du microcircuit. A cet effet un nombre A est calculé par une opération d'exponentiation modulaire, en élevant le nombre g à la puissance a modulo to p. A l'étape S8, le microcircuit SE transmet au serveur SRV en réponse au message d'initialisation, une requête d'un programme à charger et exécuter, contenant les nombres A et a0, ainsi qu'un identifiant Id du microcircuit SE. A l'étape S10, le microcircuit SE se met en attente d'une réponse à la requête émise à l'étape S8. 15 A la réception de cette requête, le serveur SRV exécute des étapes S2, S4 et S5. A l'étape S2, le serveur SRV génère un nombre aléatoire b à l'aide d'une fonction aléatoire RND2. Le nombre b est utilisé pour calculer un nombre B, par une opération d'exponentiation modulaire modulo p élevant un nombre g à la puissance le nombre b. Le serveur SRV détermine une clé 20 secrète K par une opération d'exponentiation modulaire modulo p en élevant à la puissance le nombre b, le nombre A reçu dans la requête de programme. A l'étape S4, le serveur SRV chiffre à l'aide de la clé K, un programme exécutable Pgm à transmettre au microcircuit SE. L'algorithme de chiffrement utilisé peut être ici un algorithme de cryptographie symétrique 25 tel que l'AES (Advanced Encryption Standard) ou le TDES (Triple Digital Encryption Standard). A l'étape S5, le serveur SRV transmet au microcircuit SE le nombre B, ainsi que le bloc de programme chiffré EC obtenu à l'étape S4. Le serveur SRV peut stocker dans une base de données DB l'identifiant Id du 30 microcircuit SE et en association avec cet identifiant, les données a0 et B et la clé K ou bien les données A et b permettant de régénérer la clé K (étape S15). A la réception du bloc de programme chiffré EC, le microcircuit SE exécute des étapes S12 à S14. A l'étape S12, le microcircuit SE détermine 35 la clé secrète K en élevant le nombre B reçu à la puissance le nombre a modulo p. De cette manière, le microcircuit SE et le serveur SRV partagent la même clé secrète K. A l'étape S13, le microcircuit SE déchiffre le bloc programme chiffré EC à l'aide de la clé K, et charge le programme Pgm ainsi obtenu dans sa mémoire MEM2. A l'étape S14, le microcircuit SE exécute le programme Pgm ainsi chargé dans la mémoire MEM2. L'identifiant Id du circuit peut être choisi égal au résultat de la fonction PUF appliqué à un nombre Id0 qui peut être mémorisé à l'extérieur du microcircuit avec les nombres a0 et B. Le nombre Id° peut également être choisi égal à O. La clé utilisée pour chiffrer et déchiffrer le programme Pgm peut être non pas la clé K qui peut être considérée comme une clé maitre, mais une clé dérivée obtenue en chiffrant un nombre aléatoire par exemple, à l'aide de la clé K, le nombre aléatoire étant transmis par le serveur SRV au microcircuit SE par exemple à l'étape S5. Les étapes de la figure 3 peuvent être exécutées une seule fois, par exemple avant la remise du microcircuit SE à un utilisateur final. Une nouvelle exécution de ces étapes peut être empêchée en fermant ou ouvrant définitivement un contact (fusible) à l'intérieur du microcircuit SE. Si le microcircuit SE est mis hors tension, puis mis à nouveau sous tension, seules certaines étapes représentées sur la figure 3 nécessitent d'être exécutées, notamment pour régénérer la clé K. Ainsi, la figure 4 représente des étapes exécutées par le serveur SRV et par le microcircuit SE, à chaque mise sous tension de ce dernier, une fois que le serveur SRV a mémorisé dans une base de données DB les nombres a0 et B, et la clé K, en association avec l'identifiant Id du microcircuit SE. A la suite de la mise sous tension POR du microcircuit SE, le microcircuit SE se met en attente d'un message. A une étape S16, le serveur SRV émet un message de début de transaction Trs. A la réception de ce message, le microcircuit exécute des étapes S17 et S18, puis l'étape S10 précédemment décrite. A l'étape S17, le microcircuit SE reçoit le message émis par le serveur SRV. S'il s'agit d'un message de début de transaction, le microcircuit SE exécute les étapes S18 et S10. A l'étape S18, le microcircuit SE transmet une requête de programme et de données avec son identifiant Id. A la réception de ce message, le serveur SRV exécute les étapes S19 et S4 et S5'. A l'étape S19, le serveur SRV reçoit l'identifiant Id et 35 recherche dans sa base de données DB la clé K et les données a0 et B correspondant à l'identifiant Id. A l'étape S4, le serveur SRV chiffre le programme Pgm à exécuter par le microcircuit SE à l'aide de la clé K. A l'étape S5', le serveur SRV transmet au microcircuit SE le bloc de programme chiffré EC obtenu, ainsi que les nombres a0 et B. A la réception 5 de ces données, le microcircuit SE exécute les étapes S11 à 514. A l'étape S11, le microcircuit SE calcule la donnée secrète a en appliquant la fonction PUF à la donnée a0 reçue. Le microcircuit SE peut ensuite exécuter les étapes S12 à S14 précédemment décrites de génération de la clé K, de déchiffrement du bloc de programme chiffré EC à l'aide de la clé K, et 10 d'exécution du programme Pgm. Sur la figure 4, les communications entre le microcircuit SE et le serveur SRV peuvent être établies par l'intermédiaire du processeur BBP. Dans ce cas, l'étape S14 peut être suivie d'une étape de sauvegarde du programme EC chiffré à l'aide de la clé K, et des données a0 et B, dans une 15 mémoire non volatile telle qu'une mémoire LM connectée au processeur BBP. A la mise sous tension du microcircuit SE, le processeur BBP peut transmettre le bloc de programme chiffré EC et les nombres a0 et B au microcircuit SE, pour que ce dernier puisse générer la clé K, puis déchiffrer et exécuter le programme Pgm ainsi transmis. 20 Lorsque le microcircuit SE est relié à distance au serveur SRV, il peut être nécessaire d'authentifier au préalable le microcircuit SE. A cet effet, le serveur SRV peut exécuter des étapes S20 à S24 représentées sur la figure 5, avant de transmettre le programme Pgm à exécuter au microcircuit SE à l'étape S4. Les étapes S20 à S24 peuvent être exécutées par exemple à la 25 suite de l'étape S2 (figure 3) ou S19 (figure 4). A l'étape S20, le serveur SRV transmet au microcircuit SE une requête d'authentification contenant un nombre aléatoire r. A la réception de cette requête d'authentification, le microcircuit SE exécute des étapes S21 et S22. A l'étape S21, le microcircuit SE chiffre le nombre r reçu et son identifiant Id à l'aide de la clé K. A l'étape 30 S22, le microcircuit SE transmet le résultat du chiffrement EIA au serveur SRV. A l'étape S23, le serveur SRV reçoit la donnée chiffrée EIA et la déchiffre à l'aide de la clé K. Si à l'étape S24, les données résultant du déchiffrement à l'étape S23 ne correspondent pas à l'identifiant Id du microcircuit sécurisé et au nombre aléatoire r généré pour l'identifiant Id et 35 transmis à l'étape S20, le serveur SRV estime qu'il n'est pas en communication avec le microcircuit sécurisé authentique attendu et met fin à la procédure, sans envoyer le programme Pgm à exécuter par le microcircuit SE (étape S4). Dans le cas contraire, le serveur SRV exécute les étapes S4, puis S5 ou S5'.According to one embodiment, the method comprises steps of generating a public and private key pair from the second number, and transmitting the public key generated outside the microcircuit. Embodiments also relate to a microcircuit comprising a processor, a one-time programmable memory, a volatile memory and a circuit implementing an irreversible function, the microcircuit being configured to implement the method as previously defined. According to one embodiment, the microcircuit comprises a non-volatile memory, programmable once, or a non-volatile counter storing an identifier of the last block saved outside the microcircuit. Exemplary embodiments of the invention will be described in the following, without limitation in connection with the accompanying figures in which: Figure 1 schematically shows a portable device comprising a secure microcircuit, Figure 2 schematically shows circuits of the 1, the microprocessor circuit is in accordance with one embodiment, FIG. 3 represents steps performed on energizing the secure microcircuit and following the reception of an initialization signal, according to one embodiment, FIG. steps performed on powering up the secure microcircuit and following receipt of a program to be reloaded in the secure microcircuit, according to one embodiment, FIG. 5 represents steps executed by the secure microcircuit and by a server in communication with the microcircuit, according to one embodiment, FIG. executed by the secure microcircuit 30 and by a processor in communication with the microcircuit, according to one embodiment, FIGS. 7 and 8 schematically represent circuits of the secure microcircuit, according to other embodiments, FIGS. steps performed by the microcircuit, and a processor or server in communication with the microcircuit, according to other embodiments, Figure 13 schematically shows a circuit of the microcircuit, according to one embodiment, Figure 14 shows steps performed by the secure microcircuit and a server in communication with the microcircuit, according to another embodiment. Figure 1 shows a portable device HD such as a mobile phone. The HD device comprises for example a main processor BBP, also called "baseband" processor ("Base-Band Processor"), a radio communication circuit RCT connected to the processor BBP, and a chip SE connected to the processor BBP. The chip SE can be UICC type ("Universal Integrated Circuit Card"), for example type 15 mini-SIM or micro-SIM, or type micro-SD ("Micro Secure Digital Card"). The portable device HD may be of the NFC near field type, equipped with a near field communication interface. Thus, the portable device may also comprise an NFC controller, referenced NFCC, which is connected to the processor BBP by a link B2, an antenna circuit AC1 connected to the controller NFCC. The chip SE can be connected to the controller NFCC by a link B3. The chip SE may be configured to perform NFC transactions with a transaction terminal (not shown) via the NFCC controller. The controller NFCC comprises a contactless communication interface CLF connected to the antenna circuit AC1. The controller NFCC can be in the form of an integrated circuit, such as MicroRead0 marketed by the Applicant. The HD device may also comprise another secure processor, for example integrated in a SIM card ("Subscriber Identity Module"), as well as a non-volatile memory card, such as a Micro-SD card. The chip SE which is for example integrated in a card, can be connected to the processor BBP by a link B1. Figure 2 shows circuits of the chip SE. The chip SE comprises a processor PRO, as well as memories MEM1, MEM2 and cryptographic calculation circuits CRYC, connected to the processor PRO. The memory MEM1 is for example ROM type ("Read-Only Memory") or one-time programmable type OTP ("One Time Programmable") and the memory MEM2 is volatile, for example RAM ("Random Access Memory" type) ). According to one embodiment, the microcircuit does not include non-volatile rewritable memory, but includes a physically non-reproducible IFC circuit connected to the PRO processor. The IFC circuit implements a deterministic, irreversible, physically non-reproducible function PUF ("Physically Unclonable Function"), whose operation is essentially unpredictable and not determinable if the microcircuit is not available. Such a function can therefore be used for microcircuit identification purposes. The PUF functions are generally performed by a circuit sensitive to the manufacturing conditions of the circuit, so that the respective PUF functions of two microcircuits have a very low probability of providing an identical result even if the two microcircuits come from the same chain of manufacturing. The PUF function can therefore be a one-way function equivalent to a hash function such as SHA1, the operation of which can not be reproduced. The PUF function can also always provide the same value. The IFC circuit is used to generate one or more secret values that can for example be used to generate encryption keys. FIG. 3 represents steps executed by a server SRV of a trusted authority, by the processor PRO of the secure microcircuit SE previously put in communication with the server SRV. The communication between the microcircuit SE and the server SRV can be secured. As a result of the powering up of the chip SE, the chip SE waits for a message. In a step S1, the server SRV sends an initialization message Inn. Upon receipt of this message, the microcircuit executes steps S6 to S8. In step S6, the chip SE receives the message sent by the server SRV. If it is an initialization message, the microcircuit SE executes steps S7, S8 and S10. In step S7, the chip SE generates a number a0 using a function of generating a random number RND1. The number a0 can also be provided by the SRV server. In this case, the use of the RND1 function is not necessary. The number a0 is applied as input to the function PUF which provides a number a to be kept secret by the microcircuit. Given the properties of the PUF function, knowledge of the number a0 does not make it possible to determine the secret number a. The number a is used to generate one or more encryption keys. Thus, the number a can for example be used to implement the Diffie-Hellman cryptography algorithm from numbers g and p, for example registered in the memory MEM1 during the manufacture of the microcircuit. For this purpose a number A is calculated by a modular exponentiation operation, raising the number g to the modulo power to p. In step S8, the microcircuit SE transmits to the server SRV in response to the initialization message, a request of a program to be loaded and executed, containing the numbers A and a0, and an identifier Id of the microcircuit SE. In step S10, the microcircuit SE waits for a response to the request sent in step S8. Upon receipt of this request, the SRV server performs steps S2, S4 and S5. In step S2, the server SRV generates a random number b using a random function RND2. The number b is used to calculate a number B, by a modular exponentiation operation modulo p raising a number g to the power the number b. The SRV server determines a secret key K by a modular exponentiation operation modulo p by raising to power the number b, the number A received in the program request. In step S4, the server SRV encrypts using the key K, an executable program Pgm to be transmitted to the chip SE. The encryption algorithm used here may be a symmetric cryptographic algorithm such as AES (Advanced Encryption Standard) or TDES (Triple Digital Encryption Standard). In step S5, the server SRV transmits to the microcircuit SE the number B, as well as the encrypted program block EC obtained in step S4. The server SRV can store in a DB database the identifier Id of the microcircuit SE and in association with this identifier, the data a0 and B and the key K or the data A and B for regenerating the key K (step S15). On receiving the encrypted program block EC, the microcircuit SE executes steps S12 to S14. In step S12, the microcircuit SE determines the secret key K by raising the number B received at power the number a modulo p. In this way, the microcircuit SE and the server SRV share the same secret key K. In step S13, the microcircuit SE decrypts the encrypted program block EC by means of the key K, and loads the program Pgm thus obtained in its memory MEM2. In step S14, the microcircuit SE executes the program Pgm thus loaded in the memory MEM2. The identifier Id of the circuit can be chosen equal to the result of the function PUF applied to a number Id0 which can be stored outside the microcircuit with the numbers a0 and B. The number Id ° can also be chosen equal to O. The key used to encrypt and decrypt the program Pgm may not be the key K which can be considered as a master key, but a derived key obtained by encrypting a random number for example, using the key K, the number random is transmitted by the SRV server to the chip SE for example in step S5. The steps of FIG. 3 can be executed once, for example before the delivery of the microcircuit SE to an end user. A new execution of these steps can be prevented by closing or permanently opening a contact (fuse) inside the chip SE. If the chip SE is turned off, then powered again, only certain steps shown in Figure 3 need to be executed, including to regenerate the key K. Thus, Figure 4 shows steps performed by the server SRV and by the microcircuit SE, at each power-up of the latter, once the server SRV has stored in a database DB the numbers a0 and B, and the key K, in association with the identifier Id of the microcircuit SE . As a result of the powering up of the chip SE, the chip SE waits for a message. At a step S16, the server SRV sends a transaction start message Trs. On receipt of this message, the microcircuit executes steps S17 and S18, then step S10 described above. In step S17, the chip SE receives the message sent by the server SRV. If it is a start of transaction message, the chip SE executes steps S18 and S10. In step S18, the microcircuit SE transmits a program and data request with its identifier Id. On receipt of this message, the server SRV executes the steps S19 and S4 and S5 '. In step S19, the server SRV receives the identifier Id and searches in its database DB the key K and the data a0 and B corresponding to the identifier Id. In the step S4, the server SRV encrypts the Pgm program to be executed by the chip SE with the aid of the key K. In step S5 ', the server SRV transmits to the microcircuit SE the encrypted program block EC obtained, as well as the numbers a0 and B. At the reception 5 of these data, the microcircuit SE executes the steps S11 to 514. In the step S11, the chip SE calculates the secret data a by applying the function PUF to the data item a0 received. The microcircuit SE can then execute the previously described steps S12 to S14 of generation of the key K, decryption of the encrypted program block EC by means of the key K, and execution of the program Pgm. In FIG. 4, the communications between the chip SE and the server SRV can be established via the processor BBP. In this case, step S14 may be followed by a step of saving the encrypted EC program using the key K, and data a0 and B, in a non-volatile memory such as a connected memory LM. to the BBP processor. On powering up of the chip SE, the processor BBP can transmit the encrypted program block EC and the numbers a0 and B to the chip SE, so that the latter can generate the key K, then decrypt and execute the program Pgm thus transmitted. When the microcircuit SE is remotely connected to the server SRV, it may be necessary to authenticate the chip SE in advance. For this purpose, the server SRV can execute steps S20 to S24 represented in FIG. 5, before transmitting the program Pgm to be executed to the microcircuit SE in step S4. Steps S20 to S24 may be executed for example following step S2 (Fig. 3) or S19 (Fig. 4). In step S20, the server SRV transmits to the microcircuit SE an authentication request containing a random number r. Upon receipt of this authentication request, the microcircuit SE executes steps S21 and S22. In step S21, the microcircuit SE encrypts the number r received and its identifier Id using the key K. In step S22, the chip SE transmits the result of the EIA encryption to the server SRV. In step S23, the server SRV receives the encrypted data EIA and decrypts it using the key K. If in step S24, the data resulting from decryption in step S23 do not correspond to the identifier Id of the secure microcircuit and the random number r generated for the identifier Id and transmitted in step S20, the server SRV considers that it is not in communication with the authentic secure microcircuit expected and ends the procedure, without sending the program Pgm to be executed by the chip SE (step S4). In the opposite case, the server SRV executes the steps S4, then S5 or S5 '.

Les figures 3 et 4 illustrent le cas où le microcircuit SE n'a pas besoin de mémoriser des données à chaque exécution d'un programme reçu du serveur SRV et dispose d'un accès au serveur. Les figures 3 et 4 illustrent également le cas où le microcircuit SE est toujours alimenté par exemple par une batterie du dispositif HD, les étapes de la figure 3 ou 4 étant exécutées exceptionnellement pour réinitialiser le microcircuit en cas de coupure de l'alimentation de ce dernier. Dans d'autres cas, il peut être nécessaire de mémoriser à la fois le programme Pgm et des données dans un mode hors ligne, à chaque exécution du programme. Ainsi, la figure 6 représente des étapes exécutées par le microcircuit SE et le processeur BBP du dispositif HD. A la fin ou durant l'exécution du programme Pgm à l'étape S14, le microcircuit SE exécute des étapes S25 et S26. A l'étape S25, le microcircuit SE chiffre le programme exécuté Pgm avec des données à sauvegarder Dt, en utilisant la clé K. A l'étape S26, le bloc de programme et données ED résultant de ce chiffrement est transmis au processeur BBP avec les données a0 et B. A une étape S27, le processeur BBP reçoit le bloc chiffré ED et les données a0 et B et les mémorise localement dans sa mémoire non volatile LM. Lorsque le microcircuit SE est remis sous tension et reçoit une requête de début de transaction à l'étape S28, il exécute les étapes S29 et S30. A l'étape S29, s'il s'agit d'un message de début de transaction, le microcircuit SE exécute l'étape S30. A l'étape S30, le microcircuit SE transmet une requête de programme et de données avec son identifiant Id. Le processeur BBP en mode hors ligne reçoit la requête de programme et exécute des étapes S31 et S32. A l'étape S31, le processeur BBP lit la mémoire LM pour y retrouver un dernier bloc de programme et de données chiffrés ED et les nombres a0 et B. A l'étape S32, le processeur BBP transmet au microcircuit SE le bloc ED lu, ainsi que les nombres a0 et B. A la réception du bloc ED et des nombres a0 et B, le microcircuit SE exécute les étapes S10 à S12, précédemment décrites, puis une étape S13' où il déchiffre le bloc ED et charge le programme Pgm et les données Dt déchiffrées dans sa mémoire MEM2 Le microcircuit SE exécute ensuite le programme Pgm à l'étape S14. Dans les étapes de la figure 6, si le programme et/ou les données ne sont pas confidentiels, seule une signature ou une somme de contrôle du programme et/ou des données peut être calculée à l'étape S25, et transmise à l'étape S26 avec le programme Pgm et/ou les données Dt non chiffrées. Dans ce cas, l'étape S13' comprend une vérification de la signature ou de la somme de contrôle transmise avec le programme Pgm et/ou les données Dt à l'étape S25. L'étape S14 est alors exécutée seulement si la signature ou la 10 somme de contrôle est correcte. Si l'intégrité et la confidentialité des programmes et/ou données doit être assurée, le programme Pgm et/ou les données Dt peuvent également être à la fois chiffrés et signés avant d'être transmis à l'extérieur du microcircuit SE. Dans certaines applications, il peut être nécessaire de protéger le 15 microcircuit SE contre ce que l'on appelle le "rejeu" d'un ancien bloc de programme et/ou de données ED qui est authentique mais n'est pas le dernier bloc sauvegardé par le microcircuit SE. Pour protéger le microcircuit SE contre une attaque par rejeu, le microcircuit peut être équipé d'une mémoire non volatile de faible capacité, par exemple de quelques dizaines 20 d'octets, ou bien une mémoire programmable une seule fois qui peut être fabriquée à moindre coût par comparaison avec une mémoire de type Flash ou EEPROM, ou encore une mémoire RAM de faible capacité, alimentée par une batterie miniaturisée lorsque le microcircuit n'est plus alimenté par une source de tension d'alimentation externe. Ici "faible capacité" signifie de 25 capacité insuffisante pour sauvegarder le programme Pgm et éventuellement les données Dt. Ainsi, la figure 7 représente un microcircuit SE1 qui diffère du microcircuit SE uniquement en ce qu'il comprend une telle mémoire MEM3 de faible capacité, non volatile et/ou programmable une seule fois, ou bien une mémoire volatile sauvegardée par une batterie 30 dédiée qui est rechargée lorsque le microcircuit est relié à une source de tension d'alimentation externe. Selon un mode de réalisation, la mémoire MEM3 est utilisée pour mémoriser des données devant être sauvegardées à chaque exécution du programme Pgm, et donc peut présenter une capacité juste suffisante pour 35 sauvegarder ces données. Seul le programme Pgm est sauvegardé à l'extérieur du microcircuit SE1 , aux étapes S25 à S27, et rechargé à l'étape S32. Cette disposition permet de contrer les attaques par rejeu, sachant que le programme Pgm n'est pas modifié à chaque exécution de celui-ci. La figure 8 représente un microcircuit SE2 selon un autre mode de réalisation. Le microcircuit SE2 comprend un compteur réalisé par un circuit en logique câblée CNC qui peut être alimenté par une batterie miniature dédiée BT. La batterie BT est rechargée lorsque le microcircuit est relié à une source de tension d'alimentation externe. La figure 9 représente des étapes exécutées par le microcircuit SE1 ou SE2 et le processeur BBP, permettant d'empêcher une attaque par rejeu. Les étapes de la figures 9 diffèrent de celles de la figure 6 en ce que l'étape S25 est remplacée par des étapes S40 et S41, et l'étape 513' est remplacée par des étapes S42 et S43. A l'étape S40, la valeur d'un compteur CNT mémorisée dans la mémoire MEM3 ou fournie par le circuit CNC est incrémentée avant d'être chiffrée avec le programme Pgm et les données Dt à l'étape S41. A cet effet, la valeur CNT peut être concaténée avec le programme Pgm et les données Dt. A l'étape S42, une valeur de compteur CNT' est déchiffrée avec le programme Pgm et les données Dt préalablement reçues à l'étape S10. A l'étape S43, le microcircuit SE1 , SE2 compare la valeur de compteur CNT' avec la valeur CNT mémorisée dans la mémoire MEM3 ou fournie par le circuit CNC. Le programme déchiffré et chargé dans la mémoire MEM2 est ensuite exécuté à l'étape S14 uniquement si les deux valeurs de compteur CNT et CNT' sont identiques. De cette manière, si le microcircuit SE1, SE2 reçoit à l'étape S10 un autre bloc que le dernier bloc de programme et de données chiffrés ED sauvegardé à l'étape S26, il n'exécute pas le programme déchiffré Pgm à l'étape S14. Il est à noter que les étapes S26 à S32 (figures 6 et 9) peuvent aussi être exécutées avec un serveur distant, tel que le serveur SRV, avec lequel le dispositif est en communication. La mémoire non volatile MEM3 ou le circuit CNC pour conserver la valeur d'un compteur, ne sont pas forcément nécessaires si le microcircuit a systématiquement accès au serveur SRV lors de l'exécution du programme Pgm. En effet, à chaque exécution du programme Pgm, le serveur SRV peut incrémenter la valeur du compteur CNT et transmettre la valeur de ce compteur pour comparaison avant ou pendant chaque exécution du programme Pgm. Ainsi, la figure 10 représente des étapes exécutées par le microcircuit SE et le processeur BBP. Les étapes de la figure 10 diffèrent de celles représentées sur la figure 9, en ce que l'étape S40 est remplacée par des étapes S35 et S36, et des étapes S37 et S38 sont insérées entre les étapes S42 et S43. A l'étape S35, le microcircuit SE émet un message de requête d'une nouvelle valeur de compteur géré par le serveur SRV en relation avec un identifiant Id du microcircuit SE. Ce message est relayé par le processeur BBP. A l'étape S36, le serveur SRV transmet au microcircuit 10 SE, par l'intermédiaire du processeur BBP, la valeur requise ONT, éventuellement chiffrée à l'aide de la clé K. La valeur ONT est chiffrée avec le programme Pgm et les données Dt à l'étape suivante S41. A l'étape S37 exécutée à la suite de l'étape S42, le microcircuit ST émet un message de requête de la valeur courante du compteur géré par le 15 serveur SRV en relation avec l'identifiant Id du microcircuit SE. Ce message est relayé par le processeur BBP. A l'étape S38, le serveur SRV transmet au microcircuit SE, par l'intermédiaire du processeur BBP, la valeur requise du compteur ONT, éventuellement chiffrée à l'aide de la clé K. A l'étape S43, le microcircuit SE reçoit la valeur ONT et la compare à la valeur du compteur 20 ONT' qu'il a obtenue à l'étape de déchiffrement S42. L'exécution du programme Pgm est lancée ou poursuivie à l'étape S14 uniquement si les valeurs de compteurs ONT et ONT' correspondent. L'utilisation d'un compteur permet de distinguer différents blocs de données stockés à l'extérieur du microcircuit, et de déterminer si un bloc de 25 données reçu par le microcircuit correspond au dernier bloc de données émis par le microcircuit. Il n'est donc pas nécessaire que les valeurs de compteur attribuées à des blocs successivement sauvegardés à l'extérieur du microcircuit soient consécutives ou croissantes, ou encore décroissantes. Il importe simplement qu'une valeur de compteur attribuée à un bloc de 30 données ne soit pas attribuée par le microcircuit à un autre bloc de donnée. La mémoire MEM3 du microcircuit SE1 peut être utilisée pour mémoriser une clé publique du serveur SRV, permettant d'authentifier le programme et les données transmises par le serveur SRV. Cette clé étant publique, la mémoire MEM3 n'a pas besoin d'être sécurisée. La clé publique 35 peut être utilisée par le microcircuit SE1 pour authentifier le serveur SRV lors de la génération d'une clé de chiffrement commune. La figure 11 représente des étapes d'authentification du serveur SRV, exécutées durant une phase d'initialisation du microcircuit. Ces étapes peuvent être précédées d'une séquence d'initialisation en usine comprenant les étapes S1 à S7 au cours desquelles, le microcircuit génère le nombre a0 et un identifiant Id, calcule les nombres a et A, et transmet l'identifiant Id et les nombres a0 et A à un serveur qui enregistre les données reçues dans la base de données DB. Les étapes de la figure 11 comprennent des étapes S51 à S65. A l'étape S51, le serveur SRV émet une requête d'identifiant du microcircuit. A l'étape S52, le microcircuit SE1 reçoit cette requête et émet en réponse son identifiant Id à l'étape S53. A l'étape S54, le serveur SRV reçoit l'identifiant Id et recherche dans la base de données DB, les nombres a0 et B, ainsi que la clé K, correspondant à l'identifiant Id. A l'étape S55 suivante, le serveur SRV génère un nombre aléatoire r et signe les nombres B et r, par exemple concaténés ensemble avec une clé privée SSK, pour obtenir une signature SSB. A l'étape S56 suivante, le serveur SRV transmet au microcircuit SE1 un message d'initialisation contenant les nombres a0, B et r et la signature SSB. Ce message d'initialisation est reçu par le microcircuit SE1 à l'étape S57. A l'étape S58 suivante, le microcircuit SE1 teste la signature SSB en utilisant les nombres B et r reçus et la clé publique SPK correspondant à la clé SSK, qu'il mémorise dans la mémoire MEM3. Le microcircuit SE1 exécute les étapes suivantes S59 à S652 seulement si la signature SSB est correcte. A l'étape S59, le microcircuit SE1 calcule le nombre a en appliquant la fonction PUF au nombre a0 reçu, et détermine la clé K en élevant le nombre B à la puissance le nombre a modulo le nombre p. A l'étape S60, le microcircuit SE1 détermine une clé Ks en chiffrant le nombre r à l'aide de la clé K. Aux étapes S61, S62, le microcircuit SE1 chiffre un identifiant Id du microcircuit à l'aide de la clé Ks, et envoie l'identifiant ainsi chiffré Eid au serveur SRV. A la réception de l'identifiant chiffré Eid, le serveur SRV exécute des étapes S63 à S66. A l'étape S63, le serveur SRV détermine la clé Ks à l'aide de la clé K et du nombre r. Cette étape peut être exécutée avant la réception de l'identifiant chiffré Eld. A l'étape S64, le serveur SRV reçoit l'identifiant chiffré Eld et le déchiffre à l'aide de la clé Ks. A l'étape S65, le serveur vérifie que l'identifiant Id' ainsi obtenu correspond à celui utilisé à l'étape S54. Si les identifiants Id et Id' correspondent, le serveur SRV exécute l'étape S66 où il mémorise les nombres a0, B, A et b en association avec l'identifiant Id dans la base de données DB de microcircuits mis en service. La clé K peut être mémorisée à la place des nombres A et b.Figures 3 and 4 illustrate the case where the chip SE does not need to store data every time a program is received from the SRV server and has access to the server. FIGS. 3 and 4 also illustrate the case where the microcircuit SE is always powered for example by a battery of the device HD, the steps of FIG. 3 or 4 being executed exceptionally to reset the microcircuit in the event of power failure of this device. latest. In other cases, it may be necessary to memorize both the Pgm program and data in an offline mode each time the program is run. Thus, FIG. 6 represents steps executed by the chip SE and the BBP processor of the device HD. At the end or during the execution of the program Pgm in step S14, the chip SE performs steps S25 and S26. In step S25, the microcircuit SE encrypts the executed program Pgm with data to be saved Dt, using the key K. In step S26, the program block and ED data resulting from this encryption is transmitted to the processor BBP with the data a0 and B. At a step S27, the processor BBP receives the encrypted block ED and the data a0 and B and saves them locally in its non-volatile memory LM. When the chip SE is powered back up and receives a start transaction request at step S28, it performs steps S29 and S30. In step S29, if it is a transaction start message, the chip SE executes step S30. In step S30, the microcircuit SE transmits a program and data request with its identifier Id. The processor BBP in offline mode receives the program request and executes steps S31 and S32. In step S31, the processor BBP reads the memory LM to find there a last block of program and encrypted data ED and the numbers a0 and B. In step S32, the processor BBP transmits to the microcircuit SE the read block ED , as well as the numbers a0 and B. Upon receipt of the ED block and the numbers a0 and B, the microcircuit SE executes the steps S10 to S12, previously described, then a step S13 'where it decrypts the block ED and loads the program Pgm and the data Dt decrypted in its memory MEM2 The microcircuit SE then executes the program Pgm in step S14. In the steps of FIG. 6, if the program and / or the data are not confidential, only a signature or checksum of the program and / or data can be calculated in step S25, and transmitted to the step S26 with the program Pgm and / or unencrypted data Dt. In this case, step S13 'comprises a verification of the signature or the checksum transmitted with the program Pgm and / or the data Dt in step S25. Step S14 is then executed only if the signature or checksum is correct. If the integrity and confidentiality of the programs and / or data must be ensured, the program Pgm and / or data Dt can also be both encrypted and signed before being transmitted outside the chip SE. In some applications it may be necessary to protect the chip SE against the so-called "replay" of an old program and / or ED data block which is authentic but is not the last saved block. by the chip SE. To protect the chip SE against a replay attack, the chip may be equipped with a non-volatile memory of small capacity, for example a few tens of bytes, or a programmable memory once which can be manufactured at a lower cost. cost by comparison with a flash type memory or EEPROM, or a low capacity RAM, powered by a miniaturized battery when the microcircuit is no longer powered by an external power supply source. Here "low capacity" means insufficient capacity to save the program Pgm and possibly the data Dt. Thus, FIG. 7 represents a chip SE1 which differs from the chip SE only in that it comprises such a memory MEM3 of small capacity, nonvolatile and / or programmable once, or a volatile memory backed up by a dedicated battery which is recharged when the microcircuit is connected to an external supply voltage source. According to one embodiment, the memory MEM3 is used to store data to be saved each time the program Pgm is run, and thus may have a capacity just sufficient to save this data. Only the program Pgm is saved outside the microcircuit SE1, in steps S25 to S27, and reloaded in step S32. This provision makes it possible to counter the replay attacks, knowing that the program Pgm is not modified with each execution of it. FIG. 8 represents a chip SE2 according to another embodiment. The chip SE2 comprises a counter made by a CNC wired logic circuit that can be powered by a dedicated miniature battery BT. The BT battery is recharged when the microcircuit is connected to an external supply voltage source. FIG. 9 represents steps executed by the chip SE1 or SE2 and the processor BBP, making it possible to prevent a replay attack. The steps of FIG. 9 differ from those of FIG. 6 in that step S25 is replaced by steps S40 and S41, and step 513 'is replaced by steps S42 and S43. In step S40, the value of a counter CNT stored in the memory MEM3 or supplied by the CNC circuit is incremented before being encrypted with the program Pgm and the data Dt in step S41. For this purpose, the value CNT can be concatenated with the program Pgm and the data Dt. In step S42, a counter value CNT 'is decrypted with the program Pgm and the data Dt previously received at step S10. In step S43, the microcircuit SE1, SE2 compares the counter value CNT 'with the value CNT stored in the memory MEM3 or supplied by the CNC circuit. The program decrypted and loaded into memory MEM2 is then executed in step S14 only if the two counter values CNT and CNT 'are identical. In this way, if the microcircuit SE1, SE2 receives in step S10 another block than the last block of program and encrypted data ED saved in step S26, it does not execute the decrypted program Pgm at step S14. It should be noted that steps S26 to S32 (FIGS. 6 and 9) can also be executed with a remote server, such as the SRV server, with which the device is in communication. The non-volatile memory MEM3 or the CNC circuit to keep the value of a counter, are not necessarily necessary if the microcircuit always accesses the SRV server during the execution of the program Pgm. Indeed, each time the program Pgm is run, the server SRV can increment the value of the counter CNT and transmit the value of this counter for comparison before or during each execution of the program Pgm. Thus, FIG. 10 represents steps executed by the chip SE and the processor BBP. The steps of Fig. 10 differ from those shown in Fig. 9, in that step S40 is replaced by steps S35 and S36, and steps S37 and S38 are inserted between steps S42 and S43. In step S35, the chip SE issues a request message for a new counter value managed by the server SRV in relation with an identifier Id of the microcircuit SE. This message is relayed by the BBP processor. In step S36, the server SRV transmits to the microcircuit 10 SE, via the processor BBP, the required value ONT, possibly encrypted using the key K. The value ONT is encrypted with the program Pgm and the data Dt to the next step S41. In step S37 executed following step S42, the microcircuit ST issues a request message of the current value of the counter managed by the server SRV in relation with the identifier Id of the microcircuit SE. This message is relayed by the BBP processor. In step S38, the server SRV transmits to the chip SE, via the processor BBP, the required value of the ONT counter, possibly encrypted using the key K. In step S43, the chip SE receives the value ONT and compares it to the value of the counter ONT 'obtained at the decryption step S42. The execution of the program Pgm is started or continued in step S14 only if the counter values ONT and ONT 'correspond. The use of a counter makes it possible to distinguish different blocks of data stored outside the microcircuit, and to determine if a block of data received by the microcircuit corresponds to the last block of data transmitted by the microcircuit. It is therefore not necessary that the counter values allocated to blocks successively saved outside the microcircuit are consecutive or increasing, or decreasing. It is simply important that a counter value assigned to a block of data is not allocated by the microcircuit to another block of data. The memory MEM3 of the chip SE1 can be used to store a public key of the server SRV, to authenticate the program and the data transmitted by the server SRV. Since this key is public, the memory MEM3 does not need to be secured. The public key 35 can be used by the chip SE1 to authenticate the SRV server during the generation of a common encryption key. FIG. 11 represents steps of authentication of the server SRV, executed during a phase of initialization of the microcircuit. These steps may be preceded by a factory initialization sequence comprising steps S1 to S7 in which, the microcircuit generates the number a0 and an identifier Id, calculates the numbers a and A, and transmits the identifier Id and the numbers a0 and A to a server that records the received data in the DB database. The steps of Figure 11 include steps S51 to S65. In step S51, the server SRV sends a request for identifier of the microcircuit. In step S52, the chip SE1 receives this request and in response sends its identifier Id to step S53. In step S54, the server SRV receives the identifier Id and searches in the database DB, the numbers a0 and B, as well as the key K, corresponding to the identifier Id. At the following step S55, the SRV server generates a random number r and signs the numbers B and r, for example concatenated together with a private key SSK, to obtain an SSB signature. In the following step S56, the server SRV transmits to the chip SE1 an initialization message containing the numbers a0, B and r and the signature SSB. This initialization message is received by the chip SE1 in step S57. In the following step S58, the microcircuit SE1 tests the SSB signature using the numbers B and r received and the public key SPK corresponding to the key SSK, which it stores in the memory MEM3. The microcircuit SE1 executes the following steps S59 to S652 only if the SSB signature is correct. In step S59, the microcircuit SE1 calculates the number a by applying the function PUF to the number a0 received, and determines the key K by raising the number B to the power the number a modulo the number p. In step S60, the microcircuit SE1 determines a key Ks by encrypting the number r with the aid of the key K. In steps S61, S62, the chip SE1 encrypts an identifier Id of the microcircuit by means of the key Ks , and sends the thus encrypted identifier Eid to the server SRV. Upon receipt of the encrypted identifier Eid, the server SRV executes steps S63 to S66. In step S63, the server SRV determines the key Ks using the key K and the number r. This step can be executed before receiving the encrypted identifier Eld. In step S64, the server SRV receives the encrypted identifier Eld and decrypts it using the key Ks. At step S65, the server verifies that the identifier Id 'thus obtained corresponds to that used at the time. step S54. If the identifiers Id and Id 'correspond, the server SRV executes the step S66 where it stores the numbers a0, B, A and b in association with the identifier Id in the microcircuit DB database put into service. The key K can be stored instead of the numbers A and b.

La clé publique SPK peut être également utilisée par le microcircuit SE1 pour authentifier le serveur SRV lors de la réception de programme et de données. Ainsi, la figure 12 représente des étapes 571 à S83 de transmission d'un programme et de données par le serveur SRV au microcircuit SE1. L'étape S71 est précédée des étapes S51 à S55 au cours io desquelles le serveur SRV demande l'identifiant Id du microcircuit SE1 et calcule la signature SSB. A l'étape S71, le serveur SRV transmet au microcircuit SE1 une requête de début de transaction contenant les nombres a0, B, r et la signature SSB. Cette requête est reçue par le microcircuit SE1 à l'étape S72. A l'étape S73, le microcircuit SE1 le microcircuit SE1 teste la 15 signature SSB en utilisant les nombres B et r reçus et la clé publique SPK correspondant à la clé SSK, qu'il mémorise dans la mémoire MEM3. Les étapes suivantes S74 à S82 sont exécutées seulement si la signature SSB est correcte. A l'étape S74, le microcircuit SE1 calcule le nombre a en appliquant la fonction PUF au nombre a0 reçu, et détermine la clé K en 20 élevant le nombre B à la puissance le nombre a modulo le nombre p. A l'étape S75, le microcircuit SE1 détermine une clé Ks en chiffrant le nombre r à l'aide de la clé K. A l'étape S76, le microcircuit transmet au serveur SRV une requête de programme et de données contenant l'identifiant Id qui peut être chiffré comme à l'étape S61. A la réception de l'identifiant Id, le serveur 25 SRV exécute des étapes S77 à S79. A l'étape S77, le serveur SRV détermine la clé Ks à l'aide de la clé K et du nombre r. Cette étape peut être exécutée avant la réception de l'identifiant Id. A l'étape S78, le serveur SRV chiffre le programme et les données à envoyer au microcircuit SE1 à l'aide de la clé Ks et signe le bloc chiffré obtenu ED, éventuellement concaténé 30 avec un nombre r choisi aléatoirement, en utilisant la clé secrète SSK. A l'étape S79, le serveur SRV transmet au microcircuit SE1 le bloc chiffré ED, la signature SSP obtenue à l'étape S78 et éventuellement le nombre r. Les données ED, SSP et r sont reçues à l'étape S80 par le microcircuit SE1 qui exécute alors l'étape S81. A l'étape S81, le microcircuit SE1 teste la 35 signature SSP en utilisant la clé publique SPK stockée dans la mémoire MEM3, le bloc ED et le nombre r. Les étapes suivantes S82 et S83 sont exécutées seulement si la signature SSP est correcte. A l'étape S82, le microcircuit SE1 déchiffre le bloc ED et charge le programme Pgm et les données Dt ainsi obtenus dans sa mémoire MEM2. A l'étape S83, le microcircuit SE1 exécute le programme Pgm. Bien entendu, les données chiffrées ED transmises à l'étape S79 et déchiffrées à l'étape S82 peuvent ne comprendre qu'un programme à exécuter par le microcircuit SE1 ou seulement des données Dt. Par ailleurs, le programme Pgm et les données Dt peuvent bien entendu être chiffrés 10 avec la clé K au lieu de la clé Ks. Par ailleurs, la clé utilisée à l'étape S21 ou S21' peut être une autre clé que la clé K utilisée dans les échanges avec le serveur SRV. Ainsi une clé K1 peut être générée par exemple à partir d'un nombre h mémorisé dans la mémoire MEM1, élevé à la puissance a modulo p. Le programme et les 15 données peuvent aussi être chiffrés séparément dans des blocs différents, éventuellement avec des clés différentes. Ainsi, le programme Pgm peut être chiffré à l'aide de la clé K ou K1, et une autre clé K2 peut être générée pour chiffrer les données Dt. La clé K2 peut être générée à partir d'un nombre secret c obtenu en appliquant la fonction PUF à un nombre aléatoire cO, et 20 en élevant le nombre g ou h à la puissance le nombre c modulo p. Le nombre c0 est alors sauvegardé avec le nombre a0 à l'extérieur du microcircuit SE avec les blocs de programme et de données chiffrés. Les clés K1, K2 peuvent aussi être générées à partir d'une fonction irréversible H appliquée à un premier nombre j, par exemple choisi aléatoirement, ou égal 25 à la clé K, concaténé avec un nombre i qui est changé à chaque génération de clé. Le nombre i peut par exemple être incrémenté à chaque génération de clé. La fonction irréversible peut être une fonction de hachage tel que SHA1, ou SHA256. Comme illustré sur la figure 13, le circuit IFC peut comprendre un 30 circuit PUC implémentant une fonction PUF, couplé à un circuit de correction d'erreur ECC recevant par ailleurs une information de correction d'erreur ECI. L'information ECI peut être déterminée durant une phase de mise en service du microcircuit SE, SEI, SE2. L'information ECI peut être mémorisée dans une mémoire inscriptible une seule fois, par exemple la mémoire MEM3, ou bien être déterminée à chaque mise sous tension du microcircuit SE, SE1 , SE2. Dans les figures 3 à 6, et 9 à 12, la clé K a été générée en appliquant l'algorithme de Diffie-Hellman. D'autres algorithmes de cryptographie peuvent bien entendu être mis en oeuvre. Ainsi, un algorithme de cryptographie asymétrique tel que RSA (Rivest, Shamir, Adleman) ou à base de courbe elliptique, peut également être mis en oeuvre. Pour mettre en oeuvre l'algorithme RSA, le microcircuit peut utiliser le nombre a résultant de la transformation du nombre a0 par la fonction PUF comme graine pour 10 générer deux grands nombres premiers p et q. La clé privée comprend les nombres p et q et un nombre d tel que e.d = 1 modulo phi, avec phi = lcm(p1), (q-1)), lcm représentant le plus petit multiple commun à (p-1) et (q-1), e étant un nombre choisi plus grand que 1 tel que gcd(e, phi) = 1, gcd représentant le plus grand diviseur commun des nombres e et phi. La clé 15 publique comprend les nombres n=pq et e, qui sont transmis au serveur SRV avec le nombre a0 qui permet au microcircuit SE, SE1 de regénérer les nombres p, q et d. Les nombres p et q peuvent aussi être mémorisés dans la mémoire MEM1. Dans ce cas, le nombre a peut être utilisé pour générer les nombres 20 e et d. Le chiffrement d'une donnée x à l'aide de la clé publique est effectué en élevant cette donnée x à la puissance e modulo n. Le déchiffrement d'une donnée y chiffrée à l'aide de la clé publique, est effectué en élevant cette donnée y à la puissance d modulo n, sachant que e.c1= 1 modulo phi. 25 La figure 14 représente des étapes S90 à S110 exécutées par le microcircuit SE (ou l'un des microcircuits SE1 et SE2), et par le serveur SRV, utilisant un algorithme cryptographique asymétrique tel que RSA ou à base de courbe elliptique. Les étapes S90 à S94 sont exécutées lors d'une phase de mise en service du microcircuit SE. A l'étape 390, le serveur SRV 30 transmet un message d'initialisation au microcircuit SE. A l'étape S91, le microcircuit SE reçoit ce message et exécute les étapes S92 et S93. A l'étape S92, le microcircuit génère aléatoirement des nombres a0 et cO, génère une clé K en appliquant la fonction PUF au nombre cO. A l'étape S93, le microcircuit SE transmet son identifiant Id, les nombres a0 et c0 et la 35 clé K. A l'étape S94, le serveur SRV reçoit ces données et les mémorise dans la base de donnée DB en association avec l'identifiant Id du microcircuit SE. Les étapes S95 à S110 sont exécutées lors d'une phase de démarrage du microcircuit SE. A l'étape S95, le serveur SRV émet une requête d'identifiant du microcircuit. A l'étape S96, le microcircuit SE reçoit cette requête et émet en réponse son identifiant Id à l'étape S97. A l'étape S98, le serveur SRV reçoit l'identifiant Id et recherche dans la base de données DB, les nombres a0 et cO, ainsi que la clé K, correspondant à l'identifiant Id. A l'étape S99, le serveur transmet au microcircuit SE un ordre 10 de démarrage associé aux nombres a0 et cO. Le microcircuit SE reçoit cet ordre à l'étape S100, et exécute les étapes S101 à S103. A l'étape S91, le microcircuit SE génère la clé K en appliquant la fonction PUF au nombre c0 reçu, calcule le nombre a en appliquant la fonction PUF au nombre a0 reçu et génère une paire de clés publique et privée RPK, SPK en utilisant comme 15 graine le nombre a. Les clés RPK, SPK peuvent être générées conformément au procédé de RSA décrit précédemment. Aux étapes S102 et S103, le microcircuit chiffre à l'aide de la clé K la clé publique RPK concaténée avec l'identifiant Id, et transmet au serveur une requête d'un programme à exécuter, cette requête contenant le résultat du chiffrement 20 RKF obtenu à l'étape S102. A l'étape S104, le serveur SRV reçoit cette requête et déchiffre les données chiffrées RKF reçues à l'aide de la clé K qui est mémorisée dans la base de données en association avec l'identifiant Id. A l'étape S105, le serveur SRV vérifie que l'identifiant obtenu correspond bien à la clé K utilisée pour effectuer le déchiffrement à l'étape S104, et 25 exécute les étapes S106 et S107 si l'identifiant obtenu est bien celui qui figure dans la base de données DB en association avec la clé K utilisée à l'étape S105. A l'étape S106, le serveur mémorise dans la base de données DB la clé publique RPK obtenue à l'étape S104, en association avec l'identifiant Id, et chiffre un programme Pgm et éventuellement des données, 30 à transmettre au microcircuit SE, à l'aide de la clé RPK, en utilisant un algorithme de chiffrement asymétrique REnc. A l'étape S107, le serveur SRV transmet au microcircuit SE, le programme chiffré ED obtenu à l'étape S106. Le microcircuit SE reçoit le programme chiffré ED à l'étape S108, déchiffre ce programme chiffré à l'aide de la clé RSK à l'étape S109, et exécute le 35 programme Pgm ainsi obtenu à l'étape 5110.The public key SPK can also be used by the chip SE1 to authenticate the SRV server when receiving program and data. Thus, FIG. 12 represents steps 571 to S83 of transmission of a program and data by the server SRV to the microcircuit SE1. Step S71 is preceded by steps S51 to S55 during which the SRV server requests the identifier ID of the microcircuit SE1 and calculates the signature SSB. In step S71, the server SRV sends the microcircuit SE1 a start transaction request containing the numbers a0, B, r and the signature SSB. This request is received by the chip SE1 in step S72. In step S73, the microcircuit SE1 the chip SE1 tests the SSB signature using the numbers B and r received and the public key SPK corresponding to the key SSK, which it stores in the memory MEM3. The following steps S74 to S82 are executed only if the SSB signature is correct. In step S74, the microcircuit SE1 calculates the number a by applying the function PUF to the number a0 received, and determines the key K by raising the number B to the power the number a modulo the number p. In step S75, the microcircuit SE1 determines a key Ks by encrypting the number r by means of the key K. In step S76, the microcircuit transmits to the server SRV a program and data request containing the identifier Id that can be encrypted as in step S61. On receipt of the identifier Id, the server SRV executes steps S77 to S79. In step S77, the server SRV determines the key Ks using the key K and the number r. This step can be executed before the reception of the identifier Id. In step S78, the server SRV encrypts the program and the data to be sent to the microcircuit SE1 by means of the key Ks and signs the encrypted block obtained ED, optionally concatenated with a random number r, using the secret key SSK. In step S79, the server SRV transmits to the chip SE1 the encrypted block ED, the signature SSP obtained in step S78 and possibly the number r. ED, SSP and r data are received in step S80 by the chip SE1 which then executes step S81. In step S81, the microcircuit SE1 tests the SSP signature using the public key SPK stored in the memory MEM3, the block ED and the number r. The following steps S82 and S83 are executed only if the SSP signature is correct. In step S82, the microcircuit SE1 decrypts the block ED and loads the program Pgm and the data Dt thus obtained in its memory MEM2. In step S83, the microcircuit SE1 executes the program Pgm. Of course, the encrypted data ED transmitted at step S79 and decrypted at step S82 may comprise only one program to be executed by the chip SE1 or only data Dt. Moreover, the program Pgm and the data Dt may of course be encrypted with the key K instead of the key Ks. Moreover, the key used in step S21 or S21 'may be another key than the key K used in exchanges with the server SRV. Thus a key K1 can be generated for example from a number h stored in the memory MEM1, raised to the modulo power p. The program and the data can also be separately encrypted in different blocks, possibly with different keys. Thus, the program Pgm can be encrypted using the key K or K1, and another key K2 can be generated to encrypt the data Dt. The key K2 can be generated from a secret number c obtained by applying the PUF function at a random number c 0, and by raising the number g or h to the power the number c modulo p. The number c0 is then saved with the number a0 outside the chip SE with the program blocks and encrypted data. The keys K1, K2 can also be generated from an irreversible function H applied to a first number j, for example chosen randomly, or equal to the key K, concatenated with a number i which is changed at each key generation. . The number i may for example be incremented with each key generation. The irreversible function can be a hash function such as SHA1, or SHA256. As illustrated in FIG. 13, the IFC circuit may comprise a PUC circuit implementing a PUF function, coupled to an ECC error correction circuit further receiving ECI error correction information. The ECI information can be determined during a commissioning phase of the chip SE, SEI, SE2. The ECI information may be stored in a writable memory once, for example the memory MEM3, or be determined at each power-up of the chip SE, SE1, SE2. In Figures 3 to 6, and 9 to 12, the key K has been generated by applying the Diffie-Hellman algorithm. Other cryptographic algorithms can of course be implemented. Thus, an asymmetric cryptographic algorithm such as RSA (Rivest, Shamir, Adleman) or based on elliptic curve, can also be implemented. To implement the RSA algorithm, the microcircuit can use the number a resulting from the transformation of the number a0 by the PUF function as a seed to generate two large prime numbers p and q. The private key includes the numbers p and q and a number d such that ed = 1 modulo phi, with phi = 1cm (p1), (q-1)), where lcm represents the smallest multiple common to (p-1) and (q-1), e being a chosen number greater than 1 such that gcd (e, phi) = 1, gcd representing the largest common divisor of the numbers e and phi. The public key comprises the numbers n = pq and e, which are transmitted to the server SRV with the number a0 which allows the chip SE, SE1 to regenerate the numbers p, q and d. The numbers p and q can also be stored in the memory MEM1. In this case, the number a can be used to generate the numbers e and d. The encryption of a data item x using the public key is performed by raising this data x to the power e modulo n. The decryption of a datum y encrypted using the public key, is performed by raising this data y to the power of modulo n, knowing that e.c1 = 1 modulo phi. FIG. 14 represents steps S90 to S110 executed by the chip SE (or one of the chips SE1 and SE2), and by the server SRV, using an asymmetric cryptographic algorithm such as RSA or based on an elliptic curve. Steps S90 to S94 are executed during a commissioning phase of the chip SE. In step 390, the SRV server 30 transmits an initialization message to the microcircuit SE. In step S91, the microcircuit SE receives this message and executes the steps S92 and S93. In step S92, the microcircuit randomly generates numbers a0 and cO, generates a key K by applying the function PUF to the number cO. In step S93, the microcircuit SE transmits its identifier Id, the numbers a0 and c0 and the key K. In step S94, the server SRV receives these data and stores them in the database DB in association with the program. id ID of the chip SE. Steps S95 to S110 are executed during a startup phase of the chip SE. In step S95, the server SRV sends a request for identifier of the microcircuit. At step S96, the chip SE receives this request and transmits in response its identifier Id at step S97. In step S98, the server SRV receives the identifier Id and searches in the database DB, the numbers a0 and cO, as well as the key K, corresponding to the identifier Id. At the step S99, the server transmits to the microcircuit SE a start command associated with the numbers a0 and c0. The microcircuit SE receives this command in step S100, and executes steps S101 to S103. In step S91, the microcircuit SE generates the key K by applying the function PUF to the number c0 received, calculates the number a by applying the function PUF to the number a0 received and generates a public and private key pair RPK, SPK using as seed the number a. The RPK, SPK keys can be generated in accordance with the RSA method described above. In steps S102 and S103, the microcircuit encrypts, using the key K, the public key RPK concatenated with the identifier Id, and transmits to the server a request for a program to be executed, this request containing the result of the encryption 20 RKF obtained in step S102. In step S104, the server SRV receives this request and decrypts the encrypted data RKF received using the key K which is stored in the database in association with the identifier Id. In step S105, the SRV server verifies that the identifier obtained corresponds to the key K used to perform the decryption in step S104, and 25 executes steps S106 and S107 if the identifier obtained is the one that appears in the database DB in association with the key K used in step S105. In step S106, the server stores in the database DB the public key RPK obtained in step S104, in association with the identifier Id, and encrypts a program Pgm and possibly data, to be transmitted to the microcircuit SE , using the RPK key, using an asymmetric encryption algorithm REnc. In step S107, the server SRV transmits to the microcircuit SE, the encrypted program ED obtained in step S106. The microcircuit SE receives the encrypted program ED in step S108, decrypts this encrypted program using the key RSK in step S109, and executes the program Pgm thus obtained in step 5110.

La fonction PUF peut ne pas comprendre d'entrée de donnée, et donc fournir toujours un même nombre. Dans ce cas, la fonction utilisée notamment pour générer le nombre a à partir du nombre a0 peut être de la forme f(x) = Enc(x,F), Enc une fonction de chiffrement qui peut être de type AES ou TDES, et F étant le nombre fourni par la fonction PUF, utilisé comme clé de chiffrement par la fonction Enc. La fonction PUF implémentée par le circuit IFC peut être remplacée par ou combinée avec une fonction de type MAC associant une fonction de hachage, une clé secrète et l'identifiant Id du microcircuit. La fonction MAC 10 peut être remplacée par une fonction de type AES ou TDES. La clé secrète peut être stockée dans la mémoire MEM1 ou MEM3. S'il n'est pas nécessaire d'empêcher qu'un bloc de programme et/ou de donnée puisse être chargé dans un autre microcircuit, la fonction PUF implémentée par le circuit IFC peut être remplacée simplement par une fonction de type MAC 15 combinant une fonction de hachage et la clé secrète, ou une fonction de type AES ou TDES et la clé secrète. Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de diverses variantes de réalisation et diverses applications. En particulier, il peut ne pas être nécessaire de sauvegarder les programmes 20 et/ou les données stockées dans la mémoire non volatile du microcircuit. En effet, il peut être prévu de ne jamais ou exceptionnellement couper l'alimentation du microcircuit. Si l'alimentation du microcircuit est coupée, il peut alors être prévu d'exécuter la procédure d'initialisation du microcircuit à partir d'un serveur distant.The PUF function may not include data entry, and therefore always provide the same number. In this case, the function used in particular for generating the number a from the number a0 may be of the form f (x) = Enc (x, F), Enc an encryption function which may be of the AES or TDES type, and F being the number provided by the PUF function, used as an encryption key by the Enc function. The PUF function implemented by the IFC circuit may be replaced by or combined with a MAC type function associating a hash function, a secret key and the id ID of the microcircuit. The MAC function 10 can be replaced by a function of AES or TDES type. The secret key can be stored in memory MEM1 or MEM3. If it is not necessary to prevent one program and / or data block from being loaded into another microcircuit, the PUF function implemented by the IFC circuit can be replaced simply by a MAC function combining a hash function and the secret key, or a function of type AES or TDES and the secret key. It will be apparent to those skilled in the art that the present invention is capable of various alternative embodiments and various applications. In particular, it may not be necessary to save the programs and / or the data stored in the nonvolatile memory of the microcircuit. Indeed, it can be expected to never or exceptionally cut the power of the microcircuit. If the supply of the microcircuit is cut off, it can then be expected to perform the microcircuit initialization procedure from a remote server.

25 Il peut également ne pas être nécessaire de conserver secret le programme Pgm chargé dans le microcircuit SE, mais simplement de garantir l'authenticité de ce programme. Les étapes de chiffrement de programme et/ou de données décrites précédemment peuvent donc consister à signer le programme et/ou les données à charger dans le 30 microcircuit SE, à l'aide de la clé K ou SSK. La signature obtenue est alors transmise avec le programme et les données non chiffrés au microcircuit SE. Le microcircuit SE se limite alors à vérifier la signature, et à charger et exécuter le programme reçu seulement si la signature est correcte. Le programme et les données sauvegardées en dehors du 35 microcircuit peuvent également être à la fois chiffrés et signés avant d'être transmis à l'extérieur du microcircuit. Dans une variante simplifiée, seule l'intégrité du programme transmis est vérifiée par le microcircuit SE. A cet effet, le serveur ou le microcircuit calcule une somme de contrôle du programme Pgm, telle qu'un code CRC (Cyclic redundancy check), ce code étant transmis au microcircuit SE pour vérification.It may also not be necessary to keep the Pgm program loaded in the SE microcircuit secret, but simply to guarantee the authenticity of this program. The program and / or data encryption steps described above may therefore consist of signing the program and / or the data to be loaded in the microcircuit SE, using the key K or SSK. The signature obtained is then transmitted with the program and the unencrypted data to the chip SE. The chip SE is then limited to verify the signature, and to load and execute the received program only if the signature is correct. The program and the data saved outside the microcircuit can also be both encrypted and signed before being transmitted to the outside of the microcircuit. In a simplified variant, only the integrity of the transmitted program is verified by the chip SE. For this purpose, the server or the microcircuit calculates a checksum of the program Pgm, such as a CRC (Cyclic redundancy check) code, this code being transmitted to the chip SE for verification.

Claims (16)

REVENDICATIONS1. Procédé de gestion d'une mémoire volatile d'un microcircuit sécurisé, comprenant une procédure de chargement de données comportant des étapes exécutées par le microcircuit consistant à: appliquer une fonction déterministe (PUF) spécifique du microcircuit à un premier nombre (a0) pour obtenir un second nombre (a), générer une clé secrète (K) en appliquant une fonction déterministe au second nombre, recevoir d'une mémoire externe (LM, DB) des premières données (EC, ED), et appliquer un premier algorithme de cryptographie aux premières données en utilisant la clé secrète, pour obtenir des secondes données (Pgm, Dt) dans une mémoire volatile (MEM2) du microcircuit.REVENDICATIONS1. A method of managing a volatile memory of a secure microcircuit, comprising a data loading procedure comprising steps performed by the microcircuit comprising: applying a specific deterministic function (PUF) of the microcircuit to a first number (a0) to obtain a second number (a), generating a secret key (K) by applying a deterministic function to the second number, receiving from an external memory (LM, DB) first data (EC, ED), and applying a first cryptography algorithm to the first data using the secret key, to obtain second data (Pgm, Dt) in a volatile memory (MEM2) of the microcircuit. 2. Procédé selon la revendication 1, comprenant une procédure de 15 sauvegarde de données, comprenant des étapes exécutées par le microcircuit consistant à : appliquer un second algorithme de cryptographie à des données à sauvegarder (Pgm, Dt), en utilisant la clé secrète, pour obtenir des troisièmes données (EC, ED), et 20 transmettre les troisièmes données avec le premier nombre (a0) à l'extérieur du microcircuit pour les stocker dans une mémoire (LM, DB) externe au microcircuit.The method of claim 1, including a data backup procedure, comprising steps performed by the microcircuit comprising: applying a second cryptographic algorithm to data to be backed up (Pgm, Dt), using the secret key, to obtain third data (EC, ED), and transmit the third data with the first number (a0) outside the microcircuit to store them in a memory (LM, DB) external to the microcircuit. 3. Procédé selon la revendication 1 ou 2, dans lequel le premier 25 nombre (a0) est généré par le microcircuit lors d'une procédure d'initialisation comprenant l'exécution de la procédure de chargement de données, et est transmis au microcircuit lors d'une procédure de sauvegarde de données. 30The method of claim 1 or 2, wherein the first number (a0) is generated by the microcircuit during an initialization procedure including the execution of the data loading procedure, and is transmitted to the microcircuit when a data backup procedure. 30 4. Procédé selon l'une des revendications 1 à 3, dans lequel la fonction déterministe (PUF) spécifique du microcircuit est réalisée par un circuit (IFC) du microcircuit, qui est sensible aux conditions de fabrication du microcircuit, de sorte que deux microcircuits issus d'une même chaine defabrication mettent en oeuvre des fonctions irréversibles respectives différentes.4. Method according to one of claims 1 to 3, wherein the specific deterministic function (PUF) of the microcircuit is performed by a circuit (IFC) of the microcircuit, which is sensitive to the manufacturing conditions of the microcircuit, so that two microcircuits from the same manufacturing chain implement different respective irreversible functions. 5. Procédé selon l'une des revendications 1 à 3, dans lequel l'application d'une fonction déterministe spécifique du microcircuit au premier nombre (a0) est réalisée en appliquant une fonction irréversible standard au premier nombre et à une donnée secrète spécifique du microcircuit.5. Method according to one of claims 1 to 3, wherein the application of a specific deterministic function of the microcircuit to the first number (a0) is performed by applying a standard irreversible function to the first number and to a specific secret data of microcircuit. 6. Procédé selon l'une des revendications 1 à 5, dans lequel les 10 premières ou troisièmes données comprennent un bloc de données chiffrées (EC, ED) résultant du chiffrement par un calcul de chiffrement du second calcul cryptographique, appliqué aux secondes données (Pgm, Dt), le premier calcul cryptographique comprenant un calcul de déchiffrement du bloc de données chiffré pour obtenir les secondes données, le procédé 15 comprenant une étape d'exploitation des secondes données résultant du calcul de déchiffrement.6. Method according to one of claims 1 to 5, wherein the first or third data comprise a block of encrypted data (EC, ED) resulting from the encryption by an encryption calculation of the second cryptographic calculation, applied to the second data ( Pgm, Dt), the first cryptographic calculation comprising a decryption calculation of the encrypted data block to obtain the second data, the method comprising a step of exploiting the second data resulting from the decryption calculation. 7. Procédé selon l'une des revendications 1 à 6, dans lequel les premières ou troisièmes données comprennent une première signature des 20 secondes données (Pgm, Dt) obtenue par un premier calcul de signature du premier calcul cryptographique, le premier calcul cryptographique comprenant un calcul de signature pour obtenir une seconde signature, le procédé comprenant des étapes de comparaison de la première signature avec la seconde signature, et l'exploitation des premières ou troisièmes 25 données reçues uniquement si la première signature correspond à la seconde signature.7. Method according to one of claims 1 to 6, wherein the first or third data comprises a first signature of the 20 second data (Pgm, Dt) obtained by a first signature calculation of the first cryptographic calculation, the first cryptographic calculation comprising a signature calculation to obtain a second signature, the method comprising steps of comparing the first signature with the second signature, and the exploitation of the first or third received data only if the first signature corresponds to the second signature. 8. Procédé selon l'une des revendications 1 à 7, dans lequel les secondes données sont du code (Pgm) exécutable par le microcircuit, des 30 données (Dt) utilisées par le code exécutable étant stockées dans une mémoire non volatile (MEM3) du microcircuit, utilisée pour mémoriser exclusivement des données ne comportant pas de code exécutable.8. Method according to one of claims 1 to 7, wherein the second data is code (Pgm) executable by the microcircuit, data (Dt) used by the executable code being stored in a non-volatile memory (MEM3). microcircuit, used to store only data that does not contain executable code. 9. Procédé selon l'une des revendications 1 à 7, dans lequel les secondes données comprennent du code (Pgm) exécutable par le microcircuit et des données (Dt).9. Method according to one of claims 1 to 7, wherein the second data comprises code (Pgm) executable by the microcircuit and data (Dt). 10. Procédé selon l'une des revendications 1 à 9, comprenant des étapes de : insertion dans les secondes données (Pgm, Dt) d'un identifiant de bloc (CNT) qui est mémorisé de manière non volatile par le microcircuit, avant application du second calcul cryptographique aux secondes données, 10 extraction de l'identifiant de bloc (CNT') dans les premières ou troisièmes données reçues (EC, ED), comparaison de l'identifiant de bloc extrait avec l'identifiant de bloc mémorisé, et si l'identifiant de bloc extrait correspond à l'identifiant de bloc 15 mémorisé, exploitation des premières ou troisièmes données et modification de l'identifiant de bloc mémorisé pour être inséré dans les secondes données avant une nouvelle application du premier calcul cryptographique aux secondes données. 2010. Method according to one of claims 1 to 9, comprising steps of: insertion in the second data (Pgm, Dt) of a block identifier (CNT) which is stored non-volatile by the microcircuit, before application from the second cryptographic computation to the second data, extraction of the block identifier (CNT ') in the first or third received data (EC, ED), comparison of the extracted block identifier with the stored block identifier, and if the extracted block identifier corresponds to the stored block identifier, exploiting the first or third data and modifying the stored block identifier to be inserted into the second data before a new application of the first cryptographic calculation to the second data . 20 11. Procédé selon la revendication 10, dans lequel l'identifiant de bloc (CNT) à insérer dans les secondes données (Pgm, Dt) et l'identifiant de bloc mémorisé sont fournis au microcircuit par un serveur distant (SRV).The method of claim 10, wherein the block identifier (CNT) to be inserted into the second data (Pgm, Dt) and the stored block identifier are provided to the microcircuit by a remote server (SRV). 12. Procédé selon la revendication 10, dans lequel l'identifiant de bloc 25 (CNT) à insérer dans les secondes données (Pgm, Dt) est généré par le microcircuit et mémorisé de manière non volatile dans un circuit (MEM3, CNC) interne au microcircuit.The method of claim 10, wherein the block identifier (CNT) to be inserted in the second data (Pgm, Dt) is generated by the microcircuit and stored non-volatile in an internal circuit (MEM3, CNC). to the microcircuit. 13. Procédé selon l'une des revendications 1 à 12, dans lequel la clé 30 secrète (K) est générée en appliquant une opération d'exponentiation modulaire à un nombre (B) reçu de l'extérieur à la puissance le second nombre (a).The method according to one of claims 1 to 12, wherein the secret key (K) is generated by applying a modular exponentiation operation to a number (B) received from outside the power the second number ( at). 14. Procédé selon l'une des revendications 1 à 13, comprenant des 35 étapes de génération d'une paire de clés publique et privée (RPK, RSK) àpartir du second nombre (a), et de transmission de la clé publique générée à l'extérieur du microcircuit (SE, SE1, SE2)14. Method according to one of claims 1 to 13, comprising 35 steps of generating a public and private key pair (RPK, RSK) from the second number (a), and transmission of the generated public key to the outside of the microcircuit (SE, SE1, SE2) 15. Microcircuit comprenant un processeur (PRC), une mémoire 5 programmable une seule fois (MEM1), une mémoire volatile (MEM2) et un circuit mettant en oeuvre une fonction irréversible (IFC), caractérisé en ce qu'il est configuré pour mettre en oeuvre le procédé selon l'une des revendications 1 à 14. 1015. Microcircuit comprising a processor (PRC), a memory 5 programmable once (MEM1), a volatile memory (MEM2) and a circuit implementing an irreversible function (IFC), characterized in that it is configured to the process according to one of claims 1 to 14. 16. Microcircuit selon la revendication 15, comprenant une mémoire non volatile, programmable une seule fois (MEM3), ou un compteur non volatil (CNC) mémorisant un identifiant du dernier bloc sauvegardé à l'extérieur du microcircuit (SE1, SE2). 1516. Microcircuit according to claim 15, comprising a non-volatile memory, programmable once (MEM3), or a non-volatile counter (CNC) storing an identifier of the last block saved outside the microcircuit (SE1, SE2). 15
FR1201678A 2012-06-12 2012-06-12 SECURE PROCESSOR WITHOUT NON-VOLATILE MEMORY Expired - Fee Related FR2991797B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1201678A FR2991797B1 (en) 2012-06-12 2012-06-12 SECURE PROCESSOR WITHOUT NON-VOLATILE MEMORY
PCT/FR2013/051334 WO2013186473A1 (en) 2012-06-12 2013-06-10 Secure processor with no non-volatile memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1201678 2012-06-12
FR1201678A FR2991797B1 (en) 2012-06-12 2012-06-12 SECURE PROCESSOR WITHOUT NON-VOLATILE MEMORY

Publications (2)

Publication Number Publication Date
FR2991797A1 true FR2991797A1 (en) 2013-12-13
FR2991797B1 FR2991797B1 (en) 2019-08-30

Family

ID=47351722

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1201678A Expired - Fee Related FR2991797B1 (en) 2012-06-12 2012-06-12 SECURE PROCESSOR WITHOUT NON-VOLATILE MEMORY

Country Status (2)

Country Link
FR (1) FR2991797B1 (en)
WO (1) WO2013186473A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017003539A1 (en) * 2015-06-12 2017-01-05 Qualcomm Incorporated Physically unclonable function assisted memory encryption device techniques

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008152547A1 (en) * 2007-06-12 2008-12-18 Nxp B.V. Secure storage
FR2964278A1 (en) * 2010-08-31 2012-03-02 St Microelectronics Rousset KEY EXTRACTION IN AN INTEGRATED CIRCUIT

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008152547A1 (en) * 2007-06-12 2008-12-18 Nxp B.V. Secure storage
FR2964278A1 (en) * 2010-08-31 2012-03-02 St Microelectronics Rousset KEY EXTRACTION IN AN INTEGRATED CIRCUIT

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EDWARD SUH G ET AL: "Aegis: A Single-Chip Secure Processor", IEEE DESIGN & TEST OF COMPUTERS, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 24, no. 6, 1 November 2007 (2007-11-01), pages 570 - 580, XP011198556, ISSN: 0740-7475, DOI: 10.1109/MDT.2007.179 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017003539A1 (en) * 2015-06-12 2017-01-05 Qualcomm Incorporated Physically unclonable function assisted memory encryption device techniques
US9875378B2 (en) 2015-06-12 2018-01-23 QUALCOMOM Incorporated Physically unclonable function assisted memory encryption device techniques

Also Published As

Publication number Publication date
WO2013186473A1 (en) 2013-12-19
FR2991797B1 (en) 2019-08-30

Similar Documents

Publication Publication Date Title
EP2053827B1 (en) Method for secure personalisation of an NFC chipset
CA2623621C (en) Secure method for loading service access data in an nfc chipset
EP2166728B1 (en) Verfahren zum Austausch von Daten, beispielsweise von kryptographischen Schlüsseln, zwischen einem Informationssystem und einer elektronischen Einheit, wie beispielsweise einer Mikrochip-Karte
EP3238474B1 (en) Method for securing contactless transactions
KR20080020621A (en) Implementation of an integrity-protected secure storage
EP3014849B1 (en) Method for changing an authentication key
US9143323B2 (en) Securing a link between two devices
FR3022053A1 (en) METHOD FOR AUTHENTICATING A FIRST ELECTRONIC ENTITY BY A SECOND ELECTRONIC ENTITY AND ELECTRONIC ENTITY USING SUCH A METHOD
EP2193626B1 (en) Secure communication between an electronic label and a reader
CN103262464A (en) Cryptographic method
CA2888662A1 (en) System and method for securing data exchange, portable user object and remote device for downloading data
FR2991797B1 (en) SECURE PROCESSOR WITHOUT NON-VOLATILE MEMORY
CA2539658C (en) Securing a link between devices
EP2859497B1 (en) Method for backing-up data outside of a secure microcircuit
EP3054393B1 (en) Method for authenticating an object by a device capable of a mutual wireless communication, and corresponding system and object
EP4096159B1 (en) Method for key provisioning in a network of connected objects
EP3113516A1 (en) Hearing device and method of updating security settings of a hearing device
EP3021515B1 (en) Enhancement of the authentic integrity of data using the last block encrypting said data in cbc mode
WO2023175253A1 (en) Method for the authentication of a slave device by a host device
EP1398983B1 (en) Method for remotely programming a mobile phone and implementation system
WO2023274577A1 (en) Authentication scheme for providing software updates to an update agent
EP3564841A1 (en) Authentication of an electronic circuit
WO2020049253A1 (en) Method for securing the use of an apparatus operating with an accessory or a consumable
EP2330772A1 (en) Public-key encryption method without certificate

Legal Events

Date Code Title Description
CA Change of address

Effective date: 20140220

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

CD Change of name or company name

Owner name: VERIMATRIX, FR

Effective date: 20191119

CA Change of address

Effective date: 20191209

TP Transmission of property

Owner name: RAMBUS INC., US

Effective date: 20200402

ST Notification of lapse

Effective date: 20210205