EP1344137A1 - Method and device for making secure data processing - Google Patents

Method and device for making secure data processing

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)
French (fr)
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/en
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; CALCULATING OR 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; 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/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; 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/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; CALCULATING OR 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; CALCULATING OR 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

The invention concerns a device for making secure electronic devices against attacks (for example lateral path attacks) during the processing of sensitive and/or confidential data by a central processing unit (CPU) to a volatile storage (for example the RAM) of an electronic device such as, for example, a smart card, a PDA or a cellular telephone. The method consists in storing confidential data to a storage site dynamically and randomly allocated, thereby making analysis more difficult and, consequently, attacks (for example lateral path attacks).

Description

PROCEDE ET DISPOSITIF DE SECURISATION D' UN TRAITEMENT DE DONNEESMETHOD AND DEVICE FOR SECURING A DATA PROCESSING
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.Field of the Invention The present invention relates to electronic devices. More particularly, the present invention relates to a method for securing an internal processing of electronic devices.
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'inventionThe 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
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.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.
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).As can be seen in Figure 1, which is entitled "Prior Art", 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).
Le dispositif électronique 10 inclut également une mémoire volatile sous la forme d'une Mémoire ViveThe electronic device 10 also includes a volatile memory in the form of a RAM
(RAM) 14, une Mémoire Morte (ROM) 16, une Mémoire Morte(RAM) 14, Read only memory (ROM) 16, Read only memory
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.Electrically Erasable (EEPROM) 18, and optionally, a Cache 15, which are all coupled to the CPU 12. To better understand the following description, the term "volatile memory" used below 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.
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.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. In fact, in many examples, sensitive information and / or confidential contained or treated in the device have an important value (financial or other) for their holder.
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 deIt was discovered that certain breaches remained gaping, in terms of data protection, against different attacks such as "lateral attacks" which include, for example "Analysis of
Puissance" et "l'Analyse Radiofréquence" .Power "and" Radiofrequency Analysis ".
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.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.
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.In fact, 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. In these cases, when the CPU processes confidential data, for example, when confidential data is transferred from the CPU to volatile memory, hackers may attempt to retrieve confidential data, using "side scan" attacks Or similar attack.
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. The conventional algorithms used to allocate memory in the device 10, such as Dynamic Memory Management (DMM), are not sufficient to effectively protect against confidential data processed therein. In fact the classic DMM algorithms are predictable, since they follow classic rules. Therefore, if a given method is executed twice and under the same conditions, the same memory allocation should be expected. FIG. 2 which is entitled "prior art" illustrates a dedicated area 19 in which the confidential data 21, of size k, are stored.
Résumé de l'inventionSummary of the 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.According to the present invention, there is provided a method for securing the storage of data in a volatile memory of an electronic device, this method 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.
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.According to another aspect of the present invention, there is provided 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.
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.According to yet another aspect of the present invention, there is also proposed 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.
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 dessinsOther objects, advantages and features of the present invention will become more apparent from the reading of the following, non-restrictive description of its preferred embodiments, given by way of examples only, with reference to the accompanying drawings. Brief description of the drawings
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éIn the accompanying drawings: 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", is a schematic illustration of a dedicated area, in volatile memory, as managed by conventional electronic devices of the 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; and 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
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 .Briefly, 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.
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.In this way, 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.
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.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. A first embodiment of the method of the present invention will now be described with reference to FIGS. 3 and 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.As can be seen in FIG. 3, 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. Note that since the confidential data 24 is usually of a known predetermined length, the length of the dedicated zone 22 can also be predetermined. In the example, given by way of illustration, in FIG. 3, the length of the dedicated area 22 has been selected as being twice the length of the confidential data 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.As can be seen in FIG. 3, 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.
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.Thus, during the processing of confidential data, the address to which confidential data is stored or transferred will be different at each execution, which makes the so-called lateral analysis more complex.
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.If we now briefly consider Figure 4 of the accompanying drawings, the memory allocation method according to the first embodiment of the present invention will be described.
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) .The first step 28 consists in defining a dedicated area 22 in a volatile memory 14 of the electronic device 10. One can refer to such a dedicated area 22 in a volatile memory 14 as being a RAM buffer. The dedicated area 22 has a predetermined length (in the present example, 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.In the second step 30, a random offset value 26 is defined for the address for storing the confidential data 24 inside the dedicated area 22. As described above, 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.
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.In the example of Figures 3 and 4, since the length of confidential data 24 is k, and the length of dedicated area 22 is 2k, the offset 26 must not be greater than the value k-1 (2k-kl) to prevent memory overflow.
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.In 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.
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.As will be readily understood by those skilled in the art, since the location of the confidential data 24 is known to the CPU, 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.
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.Consequently, each execution of the method transfers the confidential data 24 to a random memory location in the dedicated area 22, even if the method is repeated several times under the same conditions. Thus, a lateral analysis must take into account two unknown parameters: the value of confidential data 24 and their address. This kind of analysis becomes much more difficult to perform since it requires that we find two equations or relations which link the side channel signal and the parameters.
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.In other words, 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). As will be readily understood by those skilled in the art, depending on the length of the volatile memory 14 of the electronic device 10, 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.
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.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. In this case, the dedicated area 100 has the same length as the confidential data 102 which must be stored there.
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) .In fact, it has been discovered that, instead of providing a dedicated area larger than the data to be stored there, it is possible to provide a dedicated area of the same length and to loop confidential data 102, when the end of dedicated area 100 is reached. In this way, it is possible to provide the improved security of the present invention while optimizing the use of the limited amount of volatile memory provided, generally, in electronic devices (e.g., smart cards).
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.More specifically, as shown in FIG. 5, and for purposes of illustration, 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 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.In step 112, 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 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.In step 114, 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. In step 116, 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.
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.In step 118, the last part of the confidential data 102 is transferred to the start of the dedicated area 100.
En conséquence, l'avantage évident de ce second mode de réalisation est l'optimisation de la mémoire volatile 14.Consequently, the obvious advantage of this second embodiment is the optimization of the volatile memory 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.Again, since the location of the confidential data is known by the CPU 12, the confidential data 102 can be processed or can be accessed directly from their location in the dedicated area 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.It should be noted that, although the two embodiments of the method of the present invention described above have been presented as safe and independent methods against attacks (for example, sideways attacks) for card technology. chip, they can be advantageously combined with other conventional security features of smart cards.
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.It is also part of the present invention to combine the two embodiments into a method in which the dedicated area is longer than the confidential data which must be stored therein and in which the confidential data is looped at the start of the dedicated area if the end of the dedicated area was reached. This allows you to choose the offset randomly throughout the dedicated area. As will be readily understood by those skilled in the art, although the present invention has been described above as being advantageous when confidential data is transferred from the CPU to the volatile memory of a smart card, the term "transfer" should be interpreted as including the direct generation of confidential data in volatile memory by the CPU and not simply as being the transfer from it. Likewise, the present invention is also advantageous when confidential data is transferred from the non-volatile memory to the volatile memory of the electronic device.
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.Optionally, 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.
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. As will be apparent to those skilled in the art, the nature of the electronic device is not limited to smart cards as described above. In fact, 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. Although the present invention has been described below) above by means of its preferred embodiments, it can be modified without departing from the spirit and nature of the invention in question, as defined in the appended claims.

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.1. Method for securing the storage of data in a volatile memory of an electronic device, this method 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.
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.2. Method according to claim 1, in which the definition of a dedicated area comprises the selection of the length of the dedicated area greater than the length of the data which must be transferred there.
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. 3. Method according to claim 2, in which the definition, at random, of an offset comprises the prevention, for the transferred data, of going beyond the dedicated area.
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.4. The method as claimed in claim 3, in which the prevention, for the transferred data, of going beyond the dedicated area comprises the selection, as offset, of a number between zero and the difference between the length of the dedicated area and the length of confidential data minus one.
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.5. Method according to claim 1, in which the definition of a dedicated area comprises the selection of the length of the dedicated area equal to the length of the data which must be transferred there.
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.6. The method as claimed in claim 5, in which the transfer of the data comprises the transfer of a first part of the data into a memory location in the dedicated area defined by the offset and the transfer of a second part of the data into a location. memory corresponding to the start of the dedicated area; the length of said first part corresponding to the difference between the end of the dedicated area and the offset.
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.7. 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.
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.8. Device according to claim 7, in which the length of the dedicated area is greater than the length of the data which must be stored there.
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.9. Device according to claim 7, in which the means making it possible to define, in a random manner, an offset comprises means making it possible to prevent the transferred data from going beyond the dedicated area.
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.10. Device according to claim 9, in which the means making it possible to prevent the transferred data from going beyond the dedicated area comprises means making it possible to choose, as an offset, a number between zero and the difference between the length of the dedicated area and the length of confidential data minus one.
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 .11. Device according to claim 7, in which the means making it possible to define a dedicated area comprises means making it possible to choose the length of the dedicated area equal to the length of the data which must be stored there.
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.12. Device according to claim 11, in which the means making it possible to transfer the data comprises means making it possible to store a first part of the data in a memory location in the dedicated area defined by the offset and means making it possible to store a second part data in a memory location corresponding to the start of the dedicated area; the length of said first part corresponding to the difference between the end of the dedicated area and the offset.
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 Electriquement13. Secure electronic device for processing data received from an input / output device, this device comprising: an electrically erasable read only memory
(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(EEPROM) for receiving data from the input / output device; an input / output port for transferring data between the input / output device and
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.1 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.
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 .14. Device according to claim 13, in which said volatile memory is chosen from the group consisting of random access memory (RAM), internal register and cache memory.
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.15. Device according to claim 13, in which the electronic device is chosen from group consisting of a smart card, a Personal Digital Assistant (PDA), and a cell phone.
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. 16. Method for securing the storage of data in a volatile memory of an electronic device, this method comprising the following steps: definition, at random, of an offset from the start of the dedicated area; transferring data in volatile memory to a memory location determined by the offset; which allows the data to be transferred to a random location in the volatile memory.
EP01996790A 2000-11-16 2001-11-15 Method and device for making secure data processing Ceased EP1344137A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA2326036 2000-11-16
CA002326036A CA2326036A1 (en) 2000-11-16 2000-11-16 Method for securing electronic device data processing
PCT/FR2001/003582 WO2002041151A1 (en) 2000-11-16 2001-11-15 Method and device for making secure data processing

Publications (1)

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

Family

ID=4167673

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01996790A Ceased EP1344137A1 (en) 2000-11-16 2001-11-15 Method and device for making secure data processing

Country Status (6)

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

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 (en) * 2003-07-23 2007-01-03 凌阳科技股份有限公司 Processor unit and method for protecting data by data block confounding processing
EP1612639A1 (en) * 2004-06-30 2006-01-04 ST Incard S.r.l. Method for detecting and reacting against possible attack to security enforcing operation performed by a cryptographic token or card
EP1904929B1 (en) * 2005-06-24 2014-11-26 BlackBerry Limited System and method for managing memory in a mobile device
WO2007051770A1 (en) * 2005-11-04 2007-05-10 Gemplus Method for securely handling data during the running of cryptographic algorithms on embedded systems
KR20090043823A (en) * 2007-10-30 2009-05-07 삼성전자주식회사 Memory system for sensing external attack
US20110022852A1 (en) * 2008-03-25 2011-01-27 Mitsubishi Electric Corporation Cryptographic computation apparatus, cryptographic computation program, and storage medium
US9449197B2 (en) * 2013-06-13 2016-09-20 Global Foundries Inc. Pooling entropy to facilitate mobile device-based true random number generation
CN104766117B (en) * 2014-01-07 2019-04-26 国民技术股份有限公司 Smart card and its data processing method
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 (en) * 2023-05-05 2023-07-07 中国人民解放军国防科技大学 Training method of buffer region vulnerability recognition model, vulnerability detection method and device

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 (en) * 1990-04-25 1999-08-09 富士通株式会社 Nonvolatile semiconductor memory device
US5313582A (en) * 1991-04-30 1994-05-17 Standard Microsystems Corporation Method and apparatus for buffering data within stations of a communication network
WO1993023806A1 (en) 1992-05-12 1993-11-25 International Business Machines Corporation Method and apparatus for reducing memory wearout in a computer system
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
DE69905924T2 (en) 1998-10-30 2004-01-15 Christopher Paulet Mel Walters VALVE CONTROL DEVICE
FR2787216B1 (en) 1998-12-11 2001-07-27 Bull Cp8 METHOD FOR STORAGE AND OPERATION OF INFORMATION UNITS IN A SECURITY MODULE, AND ASSOCIATED SECURITY MODULE

Non-Patent Citations (1)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
EP0479655B1 (en) Integrated circuit for a microprocessor-card with multiple programms in programmable memory
FR2844613A1 (en) Rapid data transfer system to memory includes data compression and decompression engine controlling access to memory bank
EP1344137A1 (en) Method and device for making secure data processing
FR2943818A1 (en) METHOD AND DEVICE FOR AUTOMATICALLY SELECTING AN APPLICATION THAT CAN BE IMPLEMENTED BY THIS DEVICE
EP2038798B1 (en) Protection of a program interpreted by a virtual machine
FR2889005A1 (en) PERMANENT MATERIAL INTEGRITY OF DATA
FR2835628A1 (en) MANAGEMENT OF THE UPDATE OF INFORMATION ENCODED IN MEMORY
EP2901291B1 (en) Method for managing the memory resources of a security device, such as a smart card, and security device implementing said method
FR2808360A1 (en) METHOD OF AGAINST MEASUREMENT IN A MICROCIRCUIT USING THE METHOD AND CHIP CARD COMPRISING SAID MICROCIRCUIT
EP1512071B1 (en) Code verification method for limited resource microcircuits
EP1058917B1 (en) Loading block computer programmes
FR2923041A1 (en) METHOD OF OPENING SECURED TO THIRDS OF A MICROCIRCUIT CARD.
FR2854261A1 (en) Software application executing method for personal computer, involves detecting coupling of chip card with personal computer using software bootstrap program, and loading and executing client program in computer
EP1949292A1 (en) Method for securely handling data during the running of cryptographic algorithms on embedded systems
EP2889855B1 (en) Method for designing a reconfigurable architecture for processing a set of multi-level security operations
EP4075358A1 (en) Management of the memory in a device for processing transactions
FR3099272A1 (en) Securing method, and associated electronic device
EP4390738A1 (en) Protection of an electronic device
EP2115656B1 (en) Method for modifying secrets in a cryptographic module, particularly in a non-protected environment
EP4390739A1 (en) Protection of an electronic device
EP2196940A1 (en) Securing method for the fragmented use of a digital data item
FR2789774A1 (en) Security module for secure comparison of an authentication code with one stored in memory has additional auxiliary registers in which randomly chosen data words are placed for use in authenticating the code in the main registers
EP1760614B1 (en) Synchronised updating of data files
FR2856815A1 (en) Chip card data authentication process, involves comparing signature of data to be authenticated and signature of data stored in chip card memory and attesting authenticity of stored data in case of conformity of signatures
EP3179400A1 (en) Method for loading a computing resource into an electronic device, electronic module and corresponding computer program

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