EP1344137A1 - Procede et dispositif de securisation d'un traitement de donnees - Google Patents

Procede et dispositif de securisation d'un traitement de donnees

Info

Publication number
EP1344137A1
EP1344137A1 EP01996790A EP01996790A EP1344137A1 EP 1344137 A1 EP1344137 A1 EP 1344137A1 EP 01996790 A EP01996790 A EP 01996790A EP 01996790 A EP01996790 A EP 01996790A EP 1344137 A1 EP1344137 A1 EP 1344137A1
Authority
EP
European Patent Office
Prior art keywords
data
dedicated area
length
offset
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP01996790A
Other languages
German (de)
English (en)
Inventor
Olivier Benoit
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.)
Thales DIS France SA
Original Assignee
Gemplus Card International SA
Gemplus 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 Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of EP1344137A1 publication Critical patent/EP1344137A1/fr
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/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/75Protecting 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 inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting 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 inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/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/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/105Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems involving programming of a portable memory device, e.g. IC cards, "electronic purses"
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card

Definitions

  • the present invention relates to electronic devices. More particularly, the present invention relates to a method for securing an internal processing of electronic devices.
  • the present invention relates to electronic devices. More particularly, the present invention relates to a method for securing an internal processing of electronic devices. Technological background of the invention
  • Chip cards as a particular embodiment of electronic devices, were originally designed to improve the security of distributed systems.
  • Smart card applications include, for example, phone cards, identification cards, medical cards, transaction cards (debit / credit bank cards, department store or restaurant loyalty cards, etc.) and security cards. All of these applications require that certain sensitive and confidential data be processed inside the smart card.
  • an electronic device 10 traditionally includes a Central Processing Unit (CPU) 12, which is the main processor / controller of the electronic device 10.
  • the CPU 12 can optionally include a large number of internal registers 13, such as, for example, in reduced instruction set computers (RISC).
  • RISC reduced instruction set computers
  • the electronic device 10 also includes a volatile memory in the form of a RAM
  • RAM Random Access Memory
  • ROM Read only memory
  • EEPROM Electrically Erasable
  • Cache a Cache 15 which are all coupled to the CPU 12.
  • volatile memory can include RAM, Internal Registers and / or the Cache.
  • An input / output (I / O) device such as a terminal 20, allows a smart card 10 to share data with a distributed system (not shown), by controlling the inputs / outputs to and from the electronic device 10 , via the CPU 12.
  • the smart card 10 includes an I / O port (not shown) making it possible to transfer the data to and from the I / O device 20.
  • the CPU 12 processes instructions for managing the data stored in the electronic device and includes a program which provides protection against access to sensitive and / or confidential data contained and processed in the smart card 10 by unauthorized entities, such as , for example, hackers.
  • sensitive information and / or confidential contained or treated in the device have an important value (financial or other) for their holder.
  • the power analysis is based on the measurement of the power consumption during the processing of confidential information encoded in binary in a smart card.
  • RF analysis consists of intercepting and analyzing the radio frequency emitted during the transfer of confidential data. These two types of attack use either the variation in energy consumption or the variation in RF radiation emitted during the processing of confidential data. Knowing one of these variations allows mathematically to recover confidential data.
  • conventional secure programs used in electronic devices include means for temporarily storing confidential data in volatile memory, in a given, predetermined location in memory, since it has been found to be preferable to for execution, to work with fixed memory locations. Therefore, only confidential data can change in the storage and reading process since the memory location do not change.
  • hackers may attempt to retrieve confidential data, using "side scan” attacks Or similar attack.
  • FIG. 2 which is entitled “prior art” illustrates a dedicated area 19 in which the confidential data 21, of size k, are stored.
  • a method for securing the storage of data in a volatile memory of an electronic device comprising the following steps: definition of a dedicated area in the volatile memory; the length of the dedicated area being at least equal to the length of the data which must be stored; definition, at random, of an offset from the start of the dedicated area; and transferring the data to the area dedicated to the data at a location in the memory determined by the offset; which allows the data to be transferred to a random location in the memory in the dedicated area.
  • a device for securing the storage of data in a volatile memory of an electronic device comprising: means making it possible to define a dedicated area in the volatile memory; the length of the dedicated area being at least equal to the length of the data which must be stored; means making it possible to define, at random, an offset from the start of the dedicated area; and means for transferring the data to the dedicated area for the data, in a memory location determined by the offset; which allows the data to be transferred to a randomly determined memory location in the dedicated area.
  • a secure electronic device making it possible to process data received from an input / output device, this device comprising: an Electrically Erasable Read Only Memory (EEPROM) making it possible to receive the data from the input / output device; an input / output port for transferring data between the input / output device and the EEPROM; a volatile memory making it possible to transfer the data during the processing; volatile memory including a dedicated area; the length of the dedicated area being at least equal to the length of the data to be transferred; and a data processing CPU comprising means for determining a random offset and data transfer means responsive to the random offset and interposed between the data and a memory location of the dedicated area determined by the offset.
  • EEPROM Electrically Erasable Read Only Memory
  • FIG. 1 which is entitled “prior art”, is a block diagram illustrating the main elements of an electronic device
  • Figure 2 which is entitled “prior art”
  • Figure 3 is a schematic illustration of a dedicated area in which confidential data has been stored, according to a first embodiment of the present invention
  • Figure 4 is a flow chart of a method for randomly allocating a volatile memory area according to a first embodiment of the present invention
  • Figure 5 is a schematic illustration of a RAM buffer, in which confidential data has been stored, according to a second embodiment of the present invention
  • Figure 6 is a flowchart of a method for randomly allocating memory according to a second embodiment of the present invention. Description of the preferred embodiment
  • the present innovation consists of a method for securing the processing of data from an electronic device using a random memory location for the storage of confidential data.
  • the method according to the present invention prevents the recovery of confidential data by means, for example, of a side channel signal analysis during the processing of confidential data therein.
  • the method of the invention also makes the lateral analysis during the secret processing more complex by adding an unknown parameter, that is to say, a random memory location, in a data area provided in the memory. volatile electronic device.
  • This process can be carried out inside an electronic device 10, using, for example, digital software.
  • the first embodiment of the method of the present invention involves a dedicated area in a volatile memory 22 having a length (2k) which is greater than the length (k) of the confidential data 24 which should be stored in it.
  • the length of the dedicated zone 22 can also be predetermined.
  • the length of the dedicated area 22 has been selected as being twice the length of the confidential data 24.
  • the confidential data 24 are not necessarily stored at the start of the dedicated area 22, but start at a random memory location inside the dedicated area 22 which is determined by a offset value 26.
  • the first step 28 consists in defining a dedicated area 22 in a volatile memory 14 of the electronic device 10.
  • a dedicated area 22 in a volatile memory 14 is a RAM buffer.
  • the dedicated area 22 has a predetermined length (in the present example, 2k).
  • a random offset value 26 is defined for the address for storing the confidential data 24 inside the dedicated area 22.
  • the data confidential 24 are stored in volatile memory 14 at the storage address defined by the starting address 23 of the dedicated area 22 plus the offset 26. It should be noted that, since all of the confidential data 24 must be stored in the dedicated area 22, the random offset 26 must be chosen randomly so as to prevent confidential data 24 from going beyond the dedicated area 22. This can be obtained by selecting a random number between zero and the difference between the length of the dedicated area 22 and the length of confidential data 24 minus 1.
  • step 32 the confidential data 24 are transferred from the non-volatile memory 18 to the address defined by the starting address 23 of the dedicated area 22 in the volatile memory 14 plus the offset 26.
  • the expression transferred aims, in this case, to include storage, access or any other operation carried out on confidential data 24.
  • the confidential data 24 can then be processed or can access it directly from their location in the dedicated zone 22 in the volatile memory 14.
  • the data 24 is transferred to a randomly determined memory location, in the dedicated data area 22, which makes analysis, and consequently attacks, more difficult (for example, lateral attacks).
  • the dedicated area 22 defining step 28 can be omitted, for example, in the case of the management of the static memory when 'A dedicated area is defined during the compilation / linking of the program.
  • FIGS. 5 and 6 A second embodiment of the method of the present invention will now be described with reference to FIGS. 5 and 6.
  • the main distinction between the first and second embodiments lies in the approach used to store confidential data in the dedicated area.
  • the dedicated area 100 has the same length as the confidential data 102 which must be stored there.
  • each confidential data bit 102 has been illustrated separately, with its position in a memory location 104, 105, 106 and 110 in the dedicated area 100 represented in square brackets for example CD [0] for the first bit of confidential data 102 and CD [k-1] for the last.
  • Confidential data 102 is stored in dedicated area 100 starting at a memory location 105 determined by the start of dedicated area 22 and by random shift 108. However, confidential data 102 is looped until the start 106 of the dedicated area 100 once the end 110 of the dedicated zone 100 has been reached. Consequently, depending on the value of the offset 108, each bit of the confidential data 102 can take any memory location in the dedicated area 100.
  • FIG. 6 summarizes the method according to this second embodiment.
  • a dedicated area 100 (RAM buffer) is defined in the volatile memory 14.
  • the length of the dedicated area is advantageously the same as the length of the confidential data.
  • a random offset 108 is defined for the address for storing the confidential data 102. Again, the value of the offset is between zero (0) and k-1.
  • the first part of the confidential data 102 is transferred to the dedicated zone 100 at the address defined by the offset 108. The length of the first part of the confidential data 102 corresponds to the difference between the length of the zone dedicated and the offset 108.
  • step 118 the last part of the confidential data 102 is transferred to the start of the dedicated area 100.
  • the confidential data 102 can be processed or can be accessed directly from their location in the dedicated area 100.
  • the offset value can be chosen, at random, at the start of a session instead of being chosen at the start of each storage operation.
  • the nature of the electronic device is not limited to smart cards as described above.
  • the method of the present invention could be advantageously implemented in other types of electronic devices such as, for example, Personal Digital Assistants (PDAs and cell phones.
  • PDAs Personal Digital Assistants
  • cell phones Cell phones

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Strategic Management (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)

Abstract

Un procédé de sécurisation de dispositifs électroniques contre les attaques (par exemple les attaques par voie latérale) au cours du traitement de données sensibles et/ou confidentielles par une Unité de Traitement Centrale (CPU) vers la mémoire volatile (par exemple la RAM) d'un dispositif électronique tel que, par exemple, une carte ô puce, un PDA ou un téléphone cellulaire est décrit dans le présent document. Le procédé implique le stockage de données confidentielles vers un emplacement de mémoire attribué de manière dynamique et aléatoire, ce qui rend plus difficile l'analyse et, par voie de conséquence, les attaques (par exemple les attaques par voie latérale).

Description

PROCEDE ET DISPOSITIF DE SECURISATION D' UN TRAITEMENT DE DONNEES
Domaine de l'invention La présente invention concerne des dispositifs électroniques. Plus particulièrement, la présente invention se rapporte à un procédé de sécurisation d'un traitement interne des dispositifs électroniques.
La présente invention concerne des dispositifs électroniques. Plus particulièrement, la présente invention se rapporte à un procédé de sécurisation d'un traitement interne des dispositifs électroniques. Arrière-Plan technologique de l'invention
Les cartes à puce, en tant que mode de réalisation particulier de dispositifs électroniques, ont, à l'origine, été conçues pour améliorer la sécurité des systèmes répartis. Les applications de cartes à puce incluent, par exemple, les cartes téléphoniques, les cartes d'identification, les cartes médicales, les cartes de transaction (cartes bancaires de débit/crédit, carte de fidélité de grands magasins ou de restaurants, etc.) et cartes de sécurité. Toutes ces applications exigent que certaines données sensibles et confidentielles soient traitées à l'intérieur de la carte à puce.
Comme on peut le voir sur la figure 1, qui est intitulée "Technique antérieure", un dispositif électronique 10 inclut traditionnellement une Unité Centrale de Traitement (CPU) 12, qui est le processeur/contrôleur principal du dispositif électronique 10. La CPU 12 peut, de façon optionnelle, inclure un grand nombre de registres internes 13, tels que, par exemple, dans les ordinateurs à jeu d'instructions réduit (RISC).
Le dispositif électronique 10 inclut également une mémoire volatile sous la forme d'une Mémoire Vive
(RAM) 14, une Mémoire Morte (ROM) 16, une Mémoire Morte
Effaçable Electriquement (EEPROM) 18, et de façon optionnelle, une Antémémoire 15, qui sont toutes couplées à la CPU 12. Pour mieux comprendre la description suivante, le terme "mémoire volatile" utilisé ci-dessous peut inclure la RAM, les Registres Internes et/ou l'Antémémoire. Un dispositif Entrée/Sortie (E/S) , tel un terminal 20, permet à une carte à puce 10 de partager des données avec un système réparti (non représenté) , en contrôlant les Entrées/Sorties vers, et depuis le dispositif électronique 10, par l'intermédiaire de la CPU 12. La carte à puce 10 inclut un port E/S (non représenté) permettant de transférer les données vers et depuis le dispositif Entrée/Sortie 20.
La CPU 12 traite des instructions pour gérer les données stockées dans le dispositif électronique et inclut un programme qui assure la protection contre l'accès aux données sensibles et/ou confidentielles contenues et traitées dans la carte à puce 10 par des entités non autorisées, comme, par exemple, les pirates informatiques (hackers) . En fait, dans de nombreux exemples, les informations sensibles et/ou confidentielles contenues ou traitées dans le dispositif ont une valeur importante (financière ou autre) pour leur détenteur.
On a découvert que certaines brèches restaient béantes, en matière de protection des données, contre les différentes attaques comme les "attaques par voie latérale" qui incluent, par exemple "l'Analyse de
Puissance" et "l'Analyse Radiofréquence" .
L'analyse de puissance est basée sur la mesure de la consommation de puissance pendant le traitement d'informations confidentielles codées en binaire dans une carte à puce. L'analyse RF consiste à intercepter et analyser la fréquence radio émise pendant le transfert de données confidentielles. Ces deux types d'attaques utilisent soit la variation de la consommation d'énergie soit la variation de rayonnements RF émis pendant le traitement des données confidentielles. La connaissance d'une de ces variations permet mathématiquement de récupérer les données confidentielles.
En fait, les programmes sécurisés classiques utilisés dans les dispositifs électroniques comprennent un moyen permettant de stocker temporairement des données confidentielles dans la mémoire volatile, dans un emplacement donné, prédéterminé, de la mémoire, puisqu'on a découvert qu'il était préférable, aux fins d'exécution, de travailler avec des emplacements de mémoire fixes. Par conséquent, seules les données confidentielles peuvent changer dans le procédé de stockage et de lecture puisque l'emplacement de mémoire ne change pas. Dans ces cas, lorsque la CPU traite des données confidentielles, par exemple, lorsque des données confidentielles sont transférées de la CPU vers la mémoire volatile, les pirates risquent de tenter de récupérer les données confidentielles, en utilisant des attaques par « analyse par voie latérale » ou autre attaque similaire.
Les algorithmes classiques utilisés pour attribuer de la mémoire dans le dispositif 10, comme la Gestion de Mémoire Dynamique (DMM) , ne suffisent pas pour protéger efficacement contre les attaques les données confidentielles traitées dans celle-ci. En fait les algorithmes DMM classiques sont prévisibles, puisqu'ils suivent des règles classiques. Par conséquent, si un procédé donné est exécuté deux fois et dans les mêmes conditions, la même attribution de mémoire doit être attendue. La figure 2 qui est intitulée "technique antérieure", illustre une zone dédiée 19 dans laquelle les données confidentielles 21, de taille k, sont stockées.
Résumé de l'invention
Selon la présente invention, il est proposé un procédé de sécurisation du stockage de données dans une mémoire volatile d'un dispositif électronique, ce procédé comprenant les étapes suivantes : définition d'une zone dédiée dans la mémoire volatile ; la longueur de la zone dédiée étant au moins égale à la longueur des données qui doivent être stockées ; définition, de manière aléatoire, d'un décalage à partir du début de la zone dédiée ; et transfert des données vers la zone dédiée aux données en un emplacement de la mémoire déterminé par le décalage ; ce qui permet que les données soient transférées vers un emplacement de la mémoire déterminé de manière aléatoire dans la zone dédiée.
Selon un autre aspect de la présente invention, il est proposé un dispositif de sécurisation du stockage de données dans une mémoire volatile d'un dispositif électronique, comprenant : des moyens permettant de définir une zone dédiée dans la mémoire volatile ; la longueur de la zone dédiée étant au moins égale à la longueur des données qui doivent être stockées ; des moyens permettant de définir, de manière aléatoire, un décalage à partir du début de la zone dédiée ; et des moyens permettant de transférer les données vers la zone dédiée pour les données, en un emplacement de mémoire déterminé par le décalage ; ce qui permet que les données soient transférées vers un emplacement de mémoire déterminé de manière aléatoire dans la zone dédiée.
Selon encore un autre aspect de la présente invention, il est également proposé un dispositif électronique sécurisé permettant de traiter des données reçues depuis un dispositif entrée/sortie, ce dispositif comprenant : une Mémoire Morte Effaçable Electriquement (EEPROM) permettant de recevoir les données depuis le dispositif entrée/sortie ; un port entrée/sortie permettant de transférer les données entre le dispositif entrée/sortie et 1' EEPROM ; une mémoire volatile permettant de transférer les données au cours du traitement ; la mémoire volatile incluant une zone dédiée ; la longueur de la zone dédiée étant au moins égale à la longueur des données qui doivent être transférées ; et une CPU de traitement de données comprenant un moyen de détermination d'un décalage aléatoire et un moyen de transfert de données répondant au décalage aléatoire et intercalé entre les données et un emplacement de mémoire de la zone dédiée déterminé par le décalage.
D'autres objets, avantages et caractéristiques de la présente invention deviendront plus apparents à la lecture de la description suivante, non restrictive, de ses modes de réalisation préférés, donnés en guise d'exemples uniquement, en référence aux dessins d' accompagnement . Brève description des dessins
Sur les dessins en annexe : la figure 1, qui est intitulée "technique antérieure", est un schéma fonctionnel illustrant les principaux éléments d'un dispositif électronique ; la figure 2, qui est intitulée "technique antérieure", est une illustration schématique d'une zone dédiée, dans une mémoire volatile, telle que gérée par les dispositifs électroniques classiques de la technique antérieure ; la figure 3 est une illustration schématique d'une zone dédiée dans laquelle des données confidentielles ont été stockées, selon un premier mode de réalisation de la présente invention ; la figure 4 est un ordinogramme d'un procédé permettant d'attribuer, de manière aléatoire, une zone de mémoire volatile selon un premier mode de réalisation de la présente invention ; la figure 5 est une illustration schématique d'un tampon de RAM, dans lequel des données confidentielles ont été stockées, selon un second mode de réalisation de la présente invention ; et la figure 6 est un ordinogramme d'un procédé permettant d'attribuer, de manière aléatoire, de la mémoire, selon un second mode de réalisation de la présente invention. Description du mode de réalisation préféré
Brièvement, la présente innovation consiste en un procédé de sécurisation du traitement des données d'un dispositif électronique utilisant un emplacement de mémoire aléatoire pour le stockage de données confidentielles .
De cette manière, le procédé selon la présente invention, empêche la récupération de données confidentielles au moyen, par exemple, d'une analyse de signal de voie latérale au cours du traitement de données confidentielles, dans celui-ci.
Le procédé de l'invention rend également plus complexe l'analyse par voie latérale au cours du traitement secret en ajoutant un paramètre inconnu, c'est-à-dire, un emplacement de mémoire aléatoire, dans une zone de données fournie dans la mémoire volatile du dispositif électronique. Ce procédé peut être réalisé à l'intérieur d'un dispositif électronique 10, grâce à, par exemple, un logiciel numérique. Un premier mode de réalisation du procédé de la présente invention va maintenant être décrit en faisant référence aux figures 3 et 4.
Comme on peut le voir sur la figure 3, le premier mode de réalisation du procédé de la présente invention implique une zone dédiée dans une mémoire volatile 22 ayant une longueur (2k) qui est supérieure à la longueur (k) des données confidentielles 24 qui doivent être stockées dans celle-ci. Il faut remarquer que, puisque les données confidentielles 24 sont habituellement d'une longueur prédéterminée connue, la longueur de la zone dédiée 22 peut également être prédéterminée. Dans l'exemple, donné à titre d'illustration, de la figure 3, la longueur de la zone dédiée 22 a été sélectionnée comme étant égale à deux fois la longueur des données confidentielles 24.
Comme on peut le voir sur la figure 3 , les données confidentielles 24 ne sont pas nécessairement stockées au début de la zone dédiée 22, mais commencent en un emplacement de la mémoire aléatoire à l'intérieur de la zone dédiée 22 qui est déterminé par une valeur du décalage 26.
Ainsi, au cours du traitement des données confidentielles, l'adresse à laquelle les données confidentielles sont stockées ou transférées sera différente à chaque exécution, ce qui rend l'analyse dite par voie latérale plus complexe.
Si l'on considère maintenant brièvement la figure 4 des dessins en annexe, le procédé d'attribution de la mémoire, selon le premier mode de réalisation de la présente invention, va être décrit.
La première étape 28 consiste à définir une zone dédiée 22 dans une mémoire volatile 14 du dispositif électronique 10. On peut faire référence à une telle zone dédiée 22 dans une mémoire volatile 14 comme étant un tampon de RAM. La zone dédiée 22 a une longueur prédéterminée (dans le présent exemple, 2k) .
A la seconde étape 30, une valeur de décalage aléatoire 26 est définie pour l'adresse de stockage des données confidentielles 24 à l'intérieur de la zone dédiée 22. Comme décrit ci-dessus, les données confidentielles 24 sont stockées dans la mémoire volatile 14 à l'adresse de stockage définie par l'adresse de départ 23 de la zone dédiée 22 plus le décalage 26. II faut remarquer que, puisque la totalité des données confidentielles 24 doit être stockée dans la zone dédiée 22, le décalage aléatoire 26 doit être choisi de manière aléatoire de façon à empêcher que les données confidentielles 24 dépassent la zone dédiée 22. Ceci peut être obtenu en sélectionnant un nombre aléatoire entre zéro et la différence entre la longueur de la zone dédiée 22 et la longueur des données confidentielles 24 moins 1.
Dans l'exemple des figures 3 et 4, puisque la longueur des données confidentielles 24 est k, et la longueur de la zone dédiée 22 est 2k, le décalage 26 ne doit pas être supérieur à la valeur k-1 (2k-k-l) afin d'empêcher le dépassement de capacité de la mémoire.
A l'étape 32, les données confidentielles 24 sont transférées depuis la mémoire non-volatile 18 à l'adresse définie par l'adresse de départ 23 de la zone dédiée 22 dans la mémoire volatile 14 plus le décalage 26. L'expression transférée a pour but, dans ce cas, d'inclure le stockage, l'accès ou toute autre opération effectuée sur les données confidentielles 24.
Comme le comprendront aisément les spécialistes de la technique, puisque l'emplacement des données confidentielles 24 est connu de la CPU, les données confidentielles 24 peuvent alors être traitées ou on peut y avoir accès directement depuis leur emplacement dans la zone dédiée 22 dans la mémoire volatile 14.
En conséquence, chaque exécution du procédé transfère les données confidentielles 24 à un emplacement de mémoire aléatoire dans la zone dédiée 22, même si le procédé est répété plusieurs fois dans les mêmes conditions. Ainsi, une analyse par voie latérale doit prendre en considération deux paramètres inconnus : la valeur des données confidentielles 24 et leur adresse. Ce genre d'analyse devient beaucoup plus difficile à effectuer puisqu'elle exige que l'on trouve deux équations ou relations qui lient le signal de voie latérale et les paramètres.
En d'autres termes, les données 24 sont transférées vers un emplacement de mémoire déterminé de manière aléatoire, dans la zone de données dédiée 22, ce qui rend plus difficile l'analyse, et par voie de conséquence, les attaques (par exemple, les attaques par voie latérale) . Comme le comprendront aisément les spécialistes de la technique, selon la longueur de la mémoire volatile 14 du dispositif électronique 10, la zone dédiée 22 définissant l'étape 28 peut être omise, par exemple, dans le cas de la gestion de la mémoire statique lorsqu'une zone dédiée est définie au cours de la compilation/liaison du programme.
Un second mode de réalisation du procédé de la présente invention va maintenant être décrit en faisant référence aux figures 5 et 6. La principale distinction entre le premier et le second modes de réalisation réside dans l'approche utilisée pour stocker les données confidentielles dans la zone dédiée. Dans ce cas, la zone dédiée 100 a la même longueur que les données confidentielles 102 qui doivent y être stockées.
En fait, on a découvert que, au lieu de fournir une zone dédiée plus grande que les données qui doivent y être stockées, il est possible de fournir une zone dédiée ayant la même longueur et de mettre en boucle les données confidentielles 102, lorsque la fin de la zone dédiée 100 est atteinte. De cette manière, il est possible de fournir la sécurité améliorée de la présente invention tout en optimisant l'utilisation de la quantité limitée de la mémoire volatile fournie, de manière générale, dans les dispositifs électroniques (par exemple, les cartes à puce) .
De manière plus spécifique, comme le montre la figure 5, et aux fins d'illustration, chaque bit de données confidentielles 102 a été illustré séparément, avec sa position dans un emplacement de mémoire 104, 105, 106 et 110 dans la zone dédiée 100 représentée entre crochets par exemple CD[0] pour le premier bit de données confidentielles 102 et CD [k-1] pour le dernier. Les données confidentielles 102 sont stockées dans la zone dédiée 100 en commençant à un emplacement de mémoire 105 déterminé par le début de la zone dédiée 22 et par le décalage aléatoire 108. Cependant, les données confidentielles 102 sont mises en boucle jusqu'au début 106 de la zone dédiée 100 une fois que la fin 110 de la zone dédiée 100 a été atteinte. Par conséquent, selon la valeur du décalage 108, chaque bit des données confidentielles 102 peut prendre n'importe quel emplacement de mémoire dans la zone dédiée 100. La figure 6 résume le procédé selon ce second mode de réalisation.
A l'étape 112, une zone dédiée 100 (tampon de RAM) est définie dans la mémoire volatile 14. La longueur de la zone dédiée est, de manière avantageuse, la même que la longueur des données confidentielles.
A l'étape 114, un décalage aléatoire 108 est défini pour l'adresse de stockage des données confidentielles 102. A nouveau, la valeur du décalage est comprise entre zéro (0) et k-1. A l'étape 116, la première partie des données confidentielles 102 est transférée vers la zone dédiée 100 à l'adresse définie par le décalage 108. La longueur de la première partie des données confidentielles 102 correspond à la différence entre la longueur de la zone dédiée et le décalage 108.
A l'étape 118, la dernière partie des données confidentielles 102 est transférée au début de la zone dédiée 100.
En conséquence, l'avantage évident de ce second mode de réalisation est l'optimisation de la mémoire volatile 14.
A nouveau, étant donné que l'emplacement des données confidentielles est connu grâce à la CPU 12, les données confidentielles 102 peuvent être traitées ou on peut y avoir directement accès à partir de leur emplacement dans la zone dédiée 100.
Il faut remarquer que, même si les deux modes de réalisation du procédé de la présente invention décrits ci-dessus ont été présentés comme des procédé sûrs et indépendants contre les attaques (par exemple, les attaques par voie latérale) pour la technologie des cartes à puce, ils peuvent être avantageusement combinés avec d'autres caractéristiques classiques de sécurité des cartes à puce.
Il entre également dans le cadre de la présente invention de combiner les deux modes de réalisation en un procédé dans lequel la zone dédiée est plus longue que les données confidentielles qui doivent y être stockées et dans lequel les données confidentielles sont mises en boucle au début de la zone dédiée si la fin de la zone dédiée était atteinte. Ceci permet de choisir le décalage de manière aléatoire dans la totalité de la zone dédiée. Comme le comprendront aisément les spécialistes de la technique, même si la présente invention a été décrite ci-dessus comme étant avantageuse lorsque des données confidentielles sont transférées de la CPU à la mémoire volatile d'une carte à puce, le terme « transfert » doit être interprété comme incluant la génération directe des données confidentielles dans la mémoire volatile par la CPU et pas simplement comme étant le transfert depuis celle-ci. De même, la présente invention est également avantageuse lorsque des données confidentielles sont transférées depuis la mémoire non-volatile vers la mémoire volatile du dispositif électronique.
Eventuellement, la valeur du décalage peut être choisie, de manière aléatoire, au début d'une session au lieu d'être choisie au début de chaque opération de stockage.
Comme il apparaîtra évident aux spécialistes de la technique, la nature du dispositif électronique n'est pas limitée aux cartes à puce comme décrit ci- dessus. En fait, le procédé de la présente invention pourrait être avantageusement mis en œuvre dans d'autres types de dispositifs électroniques tels que, par exemple, les Assistants Numériques Personnels (PDA et les téléphones cellulaires. Bien que la présente invention ait été décrite ci-dessus par l'intermédiaire de ses modes de réalisation préférés, elle peut être modifiée sans qu'on s'éloigne de l'esprit et de la nature de l'invention en question, telle qu'elle est définie dans les revendications jointes.

Claims

REVENDICATIONS
1. Procédé de sécurisation du stockage de données dans une mémoire volatile d'un dispositif électronique, ce procédé comprenant les étapes suivantes : définition d'une zone dédiée dans la mémoire volatile ; la longueur de la zone dédiée étant au moins égale à la longueur des données qui doivent être stockées ; définition, de manière aléatoire, d'un décalage à partir du début de la zone dédiée ; et transfert des données vers la zone dédiée aux données en un emplacement de la mémoire déterminé par le décalage ; ce qui permet que les données soient transférées vers un emplacement de la mémoire déterminé de manière aléatoire dans la zone dédiée.
2. Procédé selon la revendication 1, dans lequel la définition d'une zone dédiée comprend la sélection de la longueur de la zone dédiée supérieure à la longueur des données qui doivent y être transférées.
3. Procédé selon la revendication 2, dans lequel la définition, de manière aléatoire, d'un décalage comprend l'empêchement, pour les données transférées, de dépasser la zone dédiée.
4. Procédé selon la revendication 3, dans lequel l'empêchement, pour les données transférées, de dépasser la zone dédiée comprend la sélection, comme décalage, d'un nombre compris entre zéro et la différence entre la longueur de la zone dédiée et la longueur des données confidentielles moins un.
5. Procédé selon la revendication 1, dans lequel la définition d'une zone dédiée comprend la sélection de la longueur de la zone dédiée égale à la longueur des données qui doivent y être transférées.
6. Procédé selon la revendication 5, dans lequel le transfert des données comprend le transfert d'une première partie des données dans un emplacement de mémoire de la zone dédiée définie par le décalage et le transfert d'une seconde partie des données dans un emplacement de mémoire correspondant au début de la zone dédiée ; la longueur de ladite première partie correspondant à la différence entre la fin de la zone dédiée et le décalage.
7. Dispositif de sécurisation du stockage de données dans une mémoire volatile d'un dispositif électronique, comprenant : des moyens permettant de définir une zone dédiée dans la mémoire volatile ; la longueur de la zone dédiée étant au moins égale à la longueur des données qui doivent être stockées ; des moyens permettant de définir, de manière aléatoire, un décalage à partir du début de la zone dédiée ; et des moyens permettant de transférer les données vers la zone dédiée pour les données, en un emplacement de mémoire déterminé par le décalage ; ce qui permet que les données soient transférées vers un emplacement de mémoire déterminé de manière aléatoire dans la zone dédiée.
8. Dispositif selon la revendication 7, dans lequel la longueur de la zone dédiée est supérieure à la longueur des données qui doivent y être stockées.
9. Dispositif selon la revendication 7, dans lequel le moyen permettant de définir, de manière aléatoire, un décalage comprend un moyen permettant d'empêcher que les données transférées dépassent la zone dédiée.
10. Dispositif selon la revendication 9, dans lequel le moyen permettant d'empêcher que les données transférées dépassent la zone dédiée comprend un moyen permettant de choisir, comme décalage, un nombre compris entre zéro et la différence entre la longueur de la zone dédiée et la longueur des données confidentielles moins un.
11. Dispositif selon la revendication 7, dans lequel le moyen permettant de définir une zone dédiée comprend un moyen permettant de choisir la longueur de la zone dédiée égale à la longueur des données qui doivent y être stockées .
12. Dispositif selon la revendication 11, dans lequel le moyen permettant de transférer les données comprend un moyen permettant de stocker une première partie des données en un emplacement de mémoire de la zone dédiée définie par le décalage et un moyen permettant de stocker une seconde partie des données en un emplacement de mémoire correspondant au début de la zone dédiée ; la longueur de ladite première partie correspondant à la différence entre la fin de la zone dédiée et le décalage.
13. Dispositif électronique sécurisé permettant de traiter des données reçues depuis un dispositif entrée/sortie, ce dispositif comprenant : une Mémoire Morte Effaçable Electriquement
(EEPROM) permettant de recevoir les données depuis le dispositif entrée/sortie ; un port entrée/sortie permettant de transférer les données entre le dispositif entrée/sortie et
1' EEPROM ; une mémoire volatile permettant de transférer les données au cours du traitement ; la mémoire volatile incluant une zone dédiée ; la longueur de la zone dédiée étant au moins égale à la longueur des données qui doivent être transférées ; et une CPU de traitement de données comprenant un moyen de détermination d'un décalage aléatoire et un moyen de transfert de données répondant au décalage aléatoire et intercalé entre les données et un emplacement de mémoire de la zone dédiée déterminé par le décalage.
14. Dispositif selon la revendication 13, dans lequel ladite mémoire volatile est choisie parmi le groupe consistant en Mémoire Vive (RAM) , Registre Interne et Antémémoire .
15. Dispositif selon la revendication 13, dans lequel le dispositif électronique est choisi parmi le groupe consistant en une carte à puce, un Assistant Numérique Personnel (PDA), et un téléphone cellulaire.
16. Procédé de sécurisation du stockage de données dans une mémoire volatile d'un dispositif électronique, ce procédé comprenant les étapes suivantes : définition, de manière aléatoire, d'un décalage à partir du début de la zone dédiée ; transfert des données dans la mémoire volatile vers un emplacement de la mémoire déterminé par le décalage ; ce qui permet que les données soient transférées vers un emplacement de la mémoire déterminé de manière aléatoire dans la mémoire volatile.
EP01996790A 2000-11-16 2001-11-15 Procede et dispositif de securisation d'un traitement de donnees Ceased EP1344137A1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA2326036 2000-11-16
CA002326036A CA2326036A1 (fr) 2000-11-16 2000-11-16 Methode de protection du traitement de donnees au moyen d'un dispositif electronique
PCT/FR2001/003582 WO2002041151A1 (fr) 2000-11-16 2001-11-15 Procede et dispositif de securisation d'un traitement de donnees

Publications (1)

Publication Number Publication Date
EP1344137A1 true EP1344137A1 (fr) 2003-09-17

Family

ID=4167673

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01996790A Ceased EP1344137A1 (fr) 2000-11-16 2001-11-15 Procede et dispositif de securisation d'un traitement de donnees

Country Status (6)

Country Link
US (2) US8006058B2 (fr)
EP (1) EP1344137A1 (fr)
CN (1) CN1484791A (fr)
AU (1) AU2002220786A1 (fr)
CA (1) CA2326036A1 (fr)
WO (1) WO2002041151A1 (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW554268B (en) * 2001-12-28 2003-09-21 Via Tech Inc Data storage security method
CN1293485C (zh) * 2003-07-23 2007-01-03 凌阳科技股份有限公司 以资料区块混淆处理来保护资料的处理器装置及方法
EP1612639A1 (fr) * 2004-06-30 2006-01-04 ST Incard S.r.l. Méthode de détection et de réaction contre une attaque potentielle d'une opération exécutée par un jeton ou une carte cryptographique et visant à faire respecter la sécurité.
SG162825A1 (en) * 2005-06-24 2010-07-29 Research In Motion Ltd System and method for managing memory in a mobile device
EP1949292A1 (fr) * 2005-11-04 2008-07-30 Gemplus SA. Procede securise de manipulations de donnees lors de l'execution d'algorithmes cryptographiques sur systemes embarques
KR20090043823A (ko) * 2007-10-30 2009-05-07 삼성전자주식회사 외부 공격을 감지할 수 있는 메모리 시스템
JPWO2009118829A1 (ja) * 2008-03-25 2011-07-21 三菱電機株式会社 暗号演算装置及び暗号演算プログラム及び記録媒体
US9449197B2 (en) * 2013-06-13 2016-09-20 Global Foundries Inc. Pooling entropy to facilitate mobile device-based true random number generation
CN104766117B (zh) * 2014-01-07 2019-04-26 国民技术股份有限公司 智能卡及其数据处理方法
US9418231B2 (en) * 2014-06-03 2016-08-16 Empire Technology Development Llc Perturbation of field programmable gate array code to prevent side channel attack
CN116226673B (zh) * 2023-05-05 2023-07-07 中国人民解放军国防科技大学 缓冲区漏洞识别模型的训练方法、漏洞检测方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5081675A (en) 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
JP2933090B2 (ja) * 1990-04-25 1999-08-09 富士通株式会社 不揮発性半導体記憶装置
US5313582A (en) * 1991-04-30 1994-05-17 Standard Microsystems Corporation Method and apparatus for buffering data within stations of a communication network
WO1993023806A1 (fr) 1992-05-12 1993-11-25 International Business Machines Corporation Dispositif et procede permettant de reduire la deterioration des memoires d'ordinateur
US5969632A (en) * 1996-11-22 1999-10-19 Diamant; Erez Information security method and apparatus
US6115760A (en) * 1998-08-24 2000-09-05 3Com Corporation Intelligent scaleable FIFO buffer circuit for interfacing between digital domains
JP2002529635A (ja) 1998-10-30 2002-09-10 ポーレット メルモス ウォルターズ,クリストファー バルブ制御機構
FR2787216B1 (fr) * 1998-12-11 2001-07-27 Bull Cp8 Procede de stockage et d'exploitation d'unites d'information dans un module de securite, et module de securite associe

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0241151A1 *

Also Published As

Publication number Publication date
US20110307650A1 (en) 2011-12-15
US8006058B2 (en) 2011-08-23
AU2002220786A1 (en) 2002-05-27
WO2002041151A1 (fr) 2002-05-23
CN1484791A (zh) 2004-03-24
US20040093306A1 (en) 2004-05-13
CA2326036A1 (fr) 2002-05-16

Similar Documents

Publication Publication Date Title
FR2844613A1 (fr) Systeme pour le transfert rapide des donnees
WO2001095274A1 (fr) Procede de securisation de la phase de pre-initialisation d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede
EP1344137A1 (fr) Procede et dispositif de securisation d'un traitement de donnees
FR2943818A1 (fr) Procede et dispositif permettant de selectionner automatiquement une application pouvant etre mise en oeuvre par ce dispositif
EP2038798B1 (fr) Protection d'un programme interprete par une machine virtuelle
FR2835628A1 (fr) Gestion de la mise a jour d'informations encodees en memoire
FR2808360A1 (fr) Procede de contre mesure dans un microcircuit mettant en oeuvre le procede et carte a puce comportant ledit microcircuit
FR2854261A1 (fr) Procede d'execution d'une application logicielle par l'intermediaire d'un programme d'amorce logicielle et architecture informatique pour la mise en oeuvre du procede
EP4390738A1 (fr) Protection d'un dispositif électronique
EP2901291B1 (fr) Procédé de gestion des ressources mémoire d'un dispositif de sécurité, tel qu'une carte à puce, et dispositif de sécurité mettant en oeuvre ledit procédé.
EP1058917B1 (fr) Chargement de programmes informatiques en blocs
FR3144338A1 (fr) Protection d'un dispositif électronique
FR2923041A1 (fr) Procede d'ouverture securisee a des tiers d'une carte a microcircuit.
EP3993325B1 (fr) Elément sécurisé procédé de communication entre un dispositif électronique et un élément sécurisé
FR2889005A1 (fr) Integrite materielle permanente des donnees
EP4441954B1 (fr) Procédé de traitement de preuve numérique, système et programme correspondant
WO2024188822A1 (fr) Procédé et dispositif de paiement confidentiel sur chaîne de blocs
EP3179400B1 (fr) Procédé de chargement d'une ressource informatique au sein d'un dispositif électronique, module électronique et programme d'ordinateur correspondant
EP4075358A1 (fr) Gestion de la mémoire dans un dispositif de traitement de transactions
FR3165090A1 (fr) Procédé de comparaison sécurisée à zéro, dispositif électronique et programme d’ordinateur associés.
EP2115656B1 (fr) Procede de modification de secrets compris dans un module cryptographique, notamment en milieu non protege
EP2196940A1 (fr) Procédé de sécurisation de l'utilisation parcellaire d'une donnée numérique
FR2789774A1 (fr) Procede de comparaison securise de deux registres memoire, et module de securite mettant en oeuvre ce procede
WO2003102883A1 (fr) Procede securise de deploiement d'un programme informatique sur des supports d'informations distincts
FR2890211A1 (fr) Mise a jour synchronisee de fichiers de donnees

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20030616

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: GEMALTO SA

17Q First examination report despatched

Effective date: 20110406

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20120228