US8006058B2 - Method and securing electronic device data processing - Google Patents
Method and securing electronic device data processing Download PDFInfo
- Publication number
- US8006058B2 US8006058B2 US10/416,754 US41675403A US8006058B2 US 8006058 B2 US8006058 B2 US 8006058B2 US 41675403 A US41675403 A US 41675403A US 8006058 B2 US8006058 B2 US 8006058B2
- Authority
- US
- United States
- Prior art keywords
- data
- dedicated area
- offset
- length
- dedicated
- 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.)
- Expired - Fee Related, expires
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 title claims abstract description 17
- 230000015654 memory Effects 0.000 claims abstract description 73
- 230000001413 cellular effect Effects 0.000 claims abstract description 3
- 238000012546 transfer Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 abstract description 12
- 238000009877 rendering Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/105—Payment 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"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/0806—Details of the card
- G07F7/0813—Specific details related to card security
- G07F7/082—Features insuring the integrity of the data on or in the card
Definitions
- the present invention relates to electronic devices. More specifically, the present invention is concerned with a method for securing the internal process of electronic devices.
- Smart cards as a particular embodiment of electronic devices, were initially conceived to enhance the security of distributed systems.
- Applications of smart cards include, for example, calling cards, identification cards, medical cards, transaction cards (credit/debit bank, store, restaurant, etc.) and security cards. All of these applications require sensitive and confidential data to be processed within the smart card.
- an electronic device 10 conventionally includes a Central Processing Unit (CPU) 12 , which is the primary controller/processor of the electronic device 10 .
- the CPU 12 can optionally include a large number of internal registers 13 , as, for instance, in RISC (Reduced Instruction Set Computer) processors.
- RISC Reduced Instruction Set Computer
- the electronic device 10 also includes a volatile memory in the form of a Random Access Memory (RAM) 14 , Read Only Memory (ROM) 16 , Electrically-Erasable Programmable Read Only Memory (EEPROM) 18 and optionally Cache Memory 15 , all coupled to the CPU 12 .
- RAM Random Access Memory
- ROM Read Only Memory
- EEPROM Electrically-Erasable Programmable Read Only Memory
- Cache Memory 15 optionally Cache Memory 15 , all coupled to the CPU 12 .
- volatile memory used hereafter may include RAM, Internal Registers and/or Cache Memories.
- An Input/Output (I/O) device such as a terminal 20 , allows the smart card 10 to share data with a distributed system (not shown), by controlling Inputs/Outputs to and from the electronic device 10 , via the CPU 12 .
- the smart card 10 includes an I/O port (not shown) for transferring data to and from the Input/Output device 20 .
- the CPU 12 processes instructions to manage data stored in the electronic device and includes a program that ensures protection against access to the sensitive and/or confidential data contained and processed in the smart card 10 by non-authorized entities, such as, for example, hackers. Indeed, in many instances, the sensitive and/or confidential information contained or processed in the device is of significant value (financial or otherwise) to its owner.
- Power Analysis is based on measurement of power consumption during the processing of confidential binary coded information in a smart card.
- RF Analysis consists in intercepting and analyzing the radio frequency emitted during the transfer of confidential data. These two types of attacks use either the variation of energy consumption or the variation of emitted RF radiation during processing of the confidential data. Knowing one of these variations makes it mathematically possible to retrieve the confidential data.
- conventional secure programs used in electronic devices comprise a means to temporarily store confidential data in the volatile memory at a given predetermined memory location since, for performance purposes, it has been found to be preferable to work with fixed memory locations.
- confidential data might be changing in the storing and reading process since the memory location does not change.
- hackers may attempt to retrieve the confidential data using “side channel analysis” or another similar attack.
- FIG. 2 which is labelled as “prior art” illustrates a dedicated area 19 where confidential data 21 , having a size k, is stored.
- a method for securing data storage in a volatile memory of an electronic device comprising:
- the length of the dedicated area being at least equal to the length of the data to be stored
- a device for securing data storage in a volatile memory of an electronic device comprising:
- the means for defining a dedicated area in the volatile memory the length of the dedicated area being at least equal to the length of the data to be stored;
- a secure electronic device for processing data received from an input/output device comprising:
- EEPROM Electrically-Erasable Programmable Read-Only Memory
- the 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;
- a data processing CPU comprising a random offset determining means and a 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.
- FIG. 1 which is labeled “prior art”, is a schematic block diagram illustrating the major elements of an electronic device
- FIG. 2 which is labeled “prior art”, is a schematic illustration of a dedicated area in a volatile memory as managed by conventional electronic devices of the prior art.
- FIG. 3 is a schematic illustration of a dedicated area where confidential data has been stored according to a first embodiment of the present invention
- FIG. 4 is a flow chart of a method for randomly allocating a volatile memory area according to a first embodiment of the present invention
- FIG. 5 is a schematic illustration of a RAM buffer where confidential data has been stored according to a second embodiment of the present invention.
- FIG. 6 is a flow chart of a method for randomly allocating memory according to a second embodiment of the present invention.
- the present innovation consists of a method for securing electronic device data processing by using a random memory location for the storage of confidential data.
- the method according to the present invention hinders confidential data retrieval by means for instance of a side channel signal analysis during confidential data processing therein.
- the method of the invention also makes the side channel analysis more complex during secret processing by adding an unknown parameter, i.e., a random memory location, in a data area provided in the volatile memory of the electronic device.
- This method can be embodied within the electronic device 10 through, for example, a digital software.
- FIGS. 3 and 4 A first embodiment of the method of the present invention will now be described with reference to FIGS. 3 and 4 .
- the first embodiment of the method of the present invention involves a dedicated area in a volatile memory 22 having a length (2k) that is larger than the length (k) of the confidential data 24 to be stored therein.
- the length of the dedicated area 22 may also be predetermined. In the illustrative example of FIG. 3 , the length of the dedicated area 22 has been selected as being twice the length of the confidential data 24 .
- the confidential data 24 is not necessarily stored at the beginning of the dedicated area 22 , but starts at a random memory location within the dedicated area 22 that is determined by an offset value 26 .
- FIG. 4 of the appended drawings the method for allocating memory according to the first embodiment of the present invention will be described.
- the first step 28 consists of defining a dedicated area 22 in a volatile memory 14 of the electronic device 10 .
- Such dedicated area 22 in a volatile memory 14 may be referred to as a RAM buffer.
- the dedicated area 22 has a predetermined length (in this example 2k).
- a random offset value 26 is defined for the storing address of the confidential data 24 within the dedicated area 22 .
- confidential data 24 is stored in the volatile memory 14 at the storing address defined by the starting address 23 of the dedicated area 22 plus the offset 26 .
- the random offset 26 must be randomly chosen so as to prevent the confidential data 24 from exceeding the dedicated area 22 . This can be achieved by selecting a random number between zero and the difference between the length of the dedicated area 22 and the length of the confidential data 24 minus 1 .
- the offset 26 should not exceed the value k ⁇ 1 (2k ⁇ k ⁇ 1) to prevent memory overflow.
- step 32 the confidential data 24 is transferred from the non-volatile memory 18 at the address defined by the start address 23 of the dedicated area 22 in the volatile memory 14 plus the offset 26 .
- the expression transferred is intended here to include storing, accessing or any other operation performed on the confidential data 24 .
- the confidential data 24 may then be processed or accessed directly from its location in the dedicated area 22 in the volatile memory 14 .
- each execution of the process will transfer the confidential data 24 at a random memory location in the dedicated area 22 , even if the process is repeated many times in the same conditions.
- a side channel analysis will have to consider two unknown parameters: the confidential data value 24 and its address. This kind of analysis becomes much more difficult to perform since it requires finding two equations or relations between the side channel signal and the parameters.
- the data 24 is transferred to a randomly determined memory location in the dedicated data area 22 , thereby rendering more difficult the analysis and subsequently the attacks (e.g. side channel attacks).
- the dedicated area 22 defining step 28 may be omitted, for instance, in case of static memory management where a dedicated area is defined during program compilation/link.
- 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 dedicated area 100 has the same length as the confidential data 102 to be stored therein.
- each bit of the confidential data 102 has been illustrated separately with its position in a memory location 104 , 105 , 106 and 110 in the dedicated area 100 shown in bracket, i.e. CD[0] for the first bit of the confidential data 102 and CD[k ⁇ 1] for the last one.
- the confidential data 102 is stored in the dedicated area 100 starting at a memory location 105 determined by the beginning of the dedicated area 22 and by a random offset 108 . However, the confidential data 102 is looped to the beginning 106 of the dedicated area 100 once the end 110 of the dedicated area 100 is reached. Therefore, depending on the offset value 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 dedicated area length is advantageously the same as the confidential data length.
- a random offset 108 is defined for the storing address of the confidential data 102 .
- the value of the offset ranges from zero (0) to k ⁇ 1
- the first part of the confidential data 102 is transferred to the dedicated area 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 dedicated area and the offset 108 .
- step 118 the last part of the confidential data 102 is transferred at the beginning of the dedicated area 100 .
- the confidential data 102 can be processed or accessed directly from its location in the dedicated area 100 .
- the present invention has been described hereinabove as being advantageous when confidential data is transferred from the CPU to the volatile memory of a smart card, the term “transfer” should be construed as including the direct generation of confidential data in the volatile memory by the CPU and not merely the “transfer” therefrom. Similarly, the present invention is also advantageous when confidential data is transferred from the non-volatile memory to the volatile memory of the electronic device.
- the offset value may be chosen at random at the beginning of a session instead of being chosen at the beginning of each storage operation.
- the nature of the electronic device is not limited to smart cards as described hereinabove. Indeed, the method of the present invention could be advantageously implemented in other types of electronic devices such as, for example, Personal Digital Assistant (PDA) and cellular phones.
- PDA Personal Digital Assistant
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- Mathematical Physics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
- Read Only Memory (AREA)
Abstract
A method for securing electronic device processes against attacks (e.g. side channel attacks) during the processing of sensitive and/or confidential data by a Central Processing Unit (CPU) to the volatile memory (e.g. RAM) of an electronic device such as, for example, a smart card, a PDA or a cellular phone is described herein. The method involves the storage of the confidential data to a dynamically and randomly assigned memory location, thereby rendering more difficult the analysis and subsequently the attacks (e.g. side channel attacks).
Description
The present invention relates to electronic devices. More specifically, the present invention is concerned with a method for securing the internal process of electronic devices.
Smart cards, as a particular embodiment of electronic devices, were initially conceived to enhance the security of distributed systems. Applications of smart cards include, for example, calling cards, identification cards, medical cards, transaction cards (credit/debit bank, store, restaurant, etc.) and security cards. All of these applications require sensitive and confidential data to be processed within the smart card.
As can be seen from FIG. 1 , which is labelled as “Prior Art”, an electronic device 10 conventionally includes a Central Processing Unit (CPU) 12, which is the primary controller/processor of the electronic device 10. The CPU 12 can optionally include a large number of internal registers 13, as, for instance, in RISC (Reduced Instruction Set Computer) processors.
The electronic device 10 also includes a volatile memory in the form of a Random Access Memory (RAM) 14, Read Only Memory (ROM) 16, Electrically-Erasable Programmable Read Only Memory (EEPROM) 18 and optionally Cache Memory 15, all coupled to the CPU 12. For a better understanding of the following description, the term volatile memory used hereafter may include RAM, Internal Registers and/or Cache Memories.
An Input/Output (I/O) device, such as a terminal 20, allows the smart card 10 to share data with a distributed system (not shown), by controlling Inputs/Outputs to and from the electronic device 10, via the CPU 12. The smart card 10 includes an I/O port (not shown) for transferring data to and from the Input/Output device 20.
The CPU 12 processes instructions to manage data stored in the electronic device and includes a program that ensures protection against access to the sensitive and/or confidential data contained and processed in the smart card 10 by non-authorized entities, such as, for example, hackers. Indeed, in many instances, the sensitive and/or confidential information contained or processed in the device is of significant value (financial or otherwise) to its owner.
It has been found that some breaches were left, in protection of data, against various kinds of attacks such as the so-called “side channel attacks” that include, for example, “Power Analysis” and “Radio Frequency (RF) Analysis”.
Power Analysis is based on measurement of power consumption during the processing of confidential binary coded information in a smart card. RF Analysis consists in intercepting and analyzing the radio frequency emitted during the transfer of confidential data. These two types of attacks use either the variation of energy consumption or the variation of emitted RF radiation during processing of the confidential data. Knowing one of these variations makes it mathematically possible to retrieve the confidential data.
Indeed, conventional secure programs used in electronic devices comprise a means to temporarily store confidential data in the volatile memory at a given predetermined memory location since, for performance purposes, it has been found to be preferable to work with fixed memory locations. Hence, only the confidential data might be changing in the storing and reading process since the memory location does not change. In such cases, when the CPU is processing confidential data, for example when confidential data is transferred from the CPU to the volatile memory, hackers may attempt to retrieve the confidential data using “side channel analysis” or another similar attack.
Conventional algorithms used for allocating memory in device 10, such as Dynamic Memory Management (DMM), are not sufficient to properly protect against attacks the confidential data processed therein. Indeed, conventional DMM algorithms are predictable, since they follow conventional rules. Therefore, if a given process is executed twice and under the same conditions, the same memory allocation should be expected. FIG. 2 , which is labelled as “prior art” illustrates a dedicated area 19 where confidential data 21, having a size k, is stored.
In accordance with the present invention, there is provided a method for securing data storage in a volatile memory of an electronic device, the method comprising:
defining a dedicated area in the volatile memory; the length of the dedicated area being at least equal to the length of the data to be stored;
randomly defining an offset from the beginning of the dedicated area; and
transferring the data to the dedicated data area at a memory location determined by the offset;
whereby the data is transferred to a randomly determined memory location in the dedicated area.
According to another aspect of the present invention, there is providing a device for securing data storage in a volatile memory of an electronic device, comprising:
means for defining a dedicated area in the volatile memory; the length of the dedicated area being at least equal to the length of the data to be stored;
means for randomly defining an offset from the beginning of the dedicated area; and
means for transferring the data to the dedicated data area at a memory location determined by the offset;
whereby the data is transferred to a randomly determined memory location in the dedicated area.
According to yet another aspect of the present invention, there is also provided a secure electronic device for processing data received from an input/output device, the device comprising:
an Electrically-Erasable Programmable Read-Only Memory (EEPROM) for receiving the data from the input/output device;
an input/output port for transferring the data from the input/output device to the EEPROM;
a volatile memory for transferring the data during processing; the 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 a random offset determining means and a 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.
The above and other objects, advantages and features of the present invention will become more apparent upon reading the following non-restrictive description of preferred embodiments thereof, given by way of example only with reference to the accompanying drawings.
In the appended drawings:
In a nutshell, the present innovation consists of a method for securing electronic device data processing by using a random memory location for the storage of confidential data.
In this manner, the method according to the present invention hinders confidential data retrieval by means for instance of a side channel signal analysis during confidential data processing therein.
The method of the invention also makes the side channel analysis more complex during secret processing by adding an unknown parameter, i.e., a random memory location, in a data area provided in the volatile memory of the electronic device. This method can be embodied within the electronic device 10 through, for example, a digital software.
A first embodiment of the method of the present invention will now be described with reference to FIGS. 3 and 4 .
As it can be seen from 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) that is larger than the length (k) of the confidential data 24 to be stored therein. It is to be noted that since the confidential data 24 is usually of a predetermined and known length, the length of the dedicated area 22 may also be predetermined. In the illustrative example of FIG. 3 , the length of the dedicated area 22 has been selected as being twice the length of the confidential data 24.
As can be seen from FIG. 3 , the confidential data 24 is not necessarily stored at the beginning of the dedicated area 22, but starts at a random memory location within the dedicated area 22 that is determined by an offset value 26.
Thereby, during the confidential data processing, the address where the confidential data is stored or transferred will be different at each execution, making the so-called side channel analysis more complex.
Turning now briefly to FIG. 4 of the appended drawings, the method for allocating memory according to the first embodiment of the present invention will be described.
The first step 28 consists of defining a dedicated area 22 in a volatile memory 14 of the electronic device 10. Such dedicated area 22 in a volatile memory 14 may be referred to as a RAM buffer. The dedicated area 22 has a predetermined length (in this example 2k).
In the second step 30, a random offset value 26 is defined for the storing address of the confidential data 24 within the dedicated area 22. As described hereinabove, confidential data 24 is stored in the volatile memory 14 at the storing address defined by the starting address 23 of the dedicated area 22 plus the offset 26.
It is to be noted that since the entire confidential data 24 has to be stored in the dedicated area 22, the random offset 26 must be randomly chosen so as to prevent the confidential data 24 from exceeding the dedicated area 22. This can be achieved by selecting a random number between zero and the difference between the length of the dedicated area 22 and the length of the confidential data 24 minus 1.
In the example of FIGS. 3 and 4 , since the length of the confidential data 24 is k and the length of the dedicated area 22 is 2k, the offset 26 should not exceed the value k−1 (2k−k−1) to prevent memory overflow.
In step 32, the confidential data 24 is transferred from the non-volatile memory 18 at the address defined by the start address 23 of the dedicated area 22 in the volatile memory 14 plus the offset 26. The expression transferred is intended here to include storing, accessing or any other operation performed on the confidential data 24.
As can easily be understood by those of ordinary skill in the art, since the location of the confidential data 24 is known by the CPU, the confidential data 24 may then be processed or accessed directly from its location in the dedicated area 22 in the volatile memory 14.
Hence, each execution of the process will transfer the confidential data 24 at a random memory location in the dedicated area 22, even if the process is repeated many times in the same conditions. Thereby, a side channel analysis will have to consider two unknown parameters: the confidential data value 24 and its address. This kind of analysis becomes much more difficult to perform since it requires finding two equations or relations between the side channel signal and the parameters.
In other words, the data 24 is transferred to a randomly determined memory location in the dedicated data area 22, thereby rendering more difficult the analysis and subsequently the attacks (e.g. side channel attacks).
As will be easily understood by those of ordinary skill in the art, depending on the length of the volatile memory 14 of the electronic device 10, the dedicated area 22 defining step 28 may be omitted, for instance, in case of static memory management where a dedicated area is defined during program compilation/link.
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 embodiment resides in the approach used to store the confidential data in the dedicated area. In this case, the dedicated area 100 has the same length as the confidential data 102 to be stored therein.
Indeed, it has been found that instead of providing a dedicated area larger than the data to be stored therein, it is possible to provide a dedicated area having the same length and to loop the confidential data 102 when the end of the dedicated area 100 is reached. 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 typically provided in electronic devices (e.g. smart cards).
More specifically, as shown in FIG. 5 , and for illustration purposes, each bit of the confidential data 102 has been illustrated separately with its position in a memory location 104, 105, 106 and 110 in the dedicated area 100 shown in bracket, i.e. CD[0] for the first bit of the confidential data 102 and CD[k−1] for the last one.
The confidential data 102 is stored in the dedicated area 100 starting at a memory location 105 determined by the beginning of the dedicated area 22 and by a random offset 108. However, the confidential data 102 is looped to the beginning 106 of the dedicated area 100 once the end 110 of the dedicated area 100 is reached. Therefore, depending on the offset value 108, each bit of the confidential data 102 can take any memory location in the dedicated area 100.
In step 112, a dedicated area 100 (RAM buffer) is defined in the volatile memory 14. The dedicated area length is advantageously the same as the confidential data length.
In step 114, a random offset 108 is defined for the storing address of the confidential data 102. Again, the value of the offset ranges from zero (0) to k−1 In step 116, the first part of the confidential data 102 is transferred to the dedicated area 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 dedicated area and the offset 108.
In step 118, the last part of the confidential data 102 is transferred at the beginning of the dedicated area 100.
Consequently, the obvious advantage of this second embodiment is the optimization of the volatile memory 14.
Again, since the location of the confidential data is known by the CPU 12, the confidential data 102 can be processed or accessed directly from its location in the dedicated area 100.
It is to be noted that even though the two embodiments of the method of the present invention described hereinabove have been presented as independent secure processes against attacks (e.g. side channels) for the smart card technology, they can advantageously be combined with other conventional security features of smart cards.
It is also within the scope of the present invention to combine the two embodiments in a method where the dedicated area is made longer than the confidential data to be stored therein and where the confidential data would be looped to the beginning of the dedicated area should the end of the dedicated area be reached. This would allow the offset to be randomly chosen from the entire dedicated area.
As will easily be understood by one skilled in the art, even though the present invention has been described hereinabove as being advantageous when confidential data is transferred from the CPU to the volatile memory of a smart card, the term “transfer” should be construed as including the direct generation of confidential data in the volatile memory by the CPU and not merely the “transfer” therefrom. Similarly, the present invention is also advantageous when confidential data is transferred from the non-volatile memory to the volatile memory of the electronic device.
Optionally, the offset value may be chosen at random at the beginning of a session instead of being chosen at the beginning of each storage operation.
As will also be apparent to one skilled in the art, the nature of the electronic device is not limited to smart cards as described hereinabove. Indeed, the method of the present invention could be advantageously implemented in other types of electronic devices such as, for example, Personal Digital Assistant (PDA) and cellular phones.
Although the present invention has been described hereinabove by way of preferred embodiments thereof, it can be modified, without departing from the spirit and nature of the subject invention as defined in the appended claims.
Claims (7)
1. A method for securing data storage in a volatile memory of an electronic device, said method comprising:
defining a dedicated area in the volatile memory, the length of the dedicated area being equal to the length of the data to be stored;
randomly defining an offset from the beginning of the dedicated area;
transferring a first part of the data to the dedicated data area at a memory location determined by the offset, wherein the length of the first part corresponds to the difference between the end of the dedicated area and the offset; and
transferring a second part of said data to a memory location corresponding to the beginning of the dedicated area.
2. A device for securing data storage in a volatile memory of an electronic device, comprising:
means for defining a dedicated area in the volatile memory, the length of the dedicated area being equal to the length of the data to be stored;
means for randomly defining an offset from the beginning of the dedicated area; and
means for transferring an initial portion of the data to the dedicated data area at a memory location determined by the offset,
wherein said initial portion has a length corresponding to the difference between the end of the dedicated area and said offset, and thereafter transferring the remaining portion of said data to a memory location corresponding to the beginning of the dedicated area.
3. The device according to claim 2 , wherein the means for randomly defining an offset comprises means for preventing the transferred data from exceeding the dedicated area.
4. The device according to claim 3 , wherein the means for preventing the transferred data from exceeding the dedicated area comprises means for choosing as the offset a number located between zero and the difference between the length of the dedicated area and the length of the confidential data minus one.
5. A secure electronic device for processing data received from an input/output device, said device comprising:
an Electrically-Erasable Programmable Read-Only Memory (EEPROM) for receiving the data from the input/output device;
an input/output port for transferring the data from the input/output device to the EEPROM;
a volatile memory for transferring the data during processing, said 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 a random offset determining means and a data transfer means responsive to the random offset,
wherein the data transfer means is adapted to:
transfer a first part of the data to the dedicated data area at a memory location of the dedicated area determined by the offset, said length of the first part corresponding to the difference between the end of the dedicated area and the offset, and
transfer a second part of said data to a memory location corresponding to the beginning of the dedicated area.
6. A device according to claim 5 , wherein said volatile memory is selected from the group consisting of Random Access Memory (RAM), Internal Register and Cache Memory.
7. A device according to claim 5 , wherein the electronic device is selected from the group consisting of a smart card, a Personal Digital Assistant (PDA) and a cellular phone.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/214,501 US20110307650A1 (en) | 2000-11-16 | 2011-08-22 | Method for Securing Electronic Device Data Processing |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA2,326,036 | 2000-11-16 | ||
CA002326036A CA2326036A1 (en) | 2000-11-16 | 2000-11-16 | Method for securing electronic device data processing |
CA2326036 | 2000-11-16 | ||
PCT/FR2001/003582 WO2002041151A1 (en) | 2000-11-16 | 2001-11-15 | Method and device for making secure data processing |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/214,501 Continuation US20110307650A1 (en) | 2000-11-16 | 2011-08-22 | Method for Securing Electronic Device Data Processing |
Publications (2)
Publication Number | Publication Date |
---|---|
US20040093306A1 US20040093306A1 (en) | 2004-05-13 |
US8006058B2 true US8006058B2 (en) | 2011-08-23 |
Family
ID=4167673
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/416,754 Expired - Fee Related US8006058B2 (en) | 2000-11-16 | 2001-11-15 | Method and securing electronic device data processing |
US13/214,501 Abandoned US20110307650A1 (en) | 2000-11-16 | 2011-08-22 | Method for Securing Electronic Device Data Processing |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/214,501 Abandoned US20110307650A1 (en) | 2000-11-16 | 2011-08-22 | Method for Securing Electronic Device 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113546A1 (en) * | 2007-10-30 | 2009-04-30 | Samsung Electronics Co., Ltd. | Memory system for sensing attack |
US9418231B2 (en) | 2014-06-03 | 2016-08-16 | Empire Technology Development Llc | Perturbation of field programmable gate array code to prevent side channel attack |
Families Citing this family (9)
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 |
WO2006135999A1 (en) * | 2005-06-24 | 2006-12-28 | Research In Motion Limited | System and method for managing memory in a mobile device |
EP1949292A1 (en) * | 2005-11-04 | 2008-07-30 | Gemplus SA. | Method for securely handling data during the running of cryptographic algorithms on embedded systems |
CN101978648A (en) * | 2008-03-25 | 2011-02-16 | 三菱电机株式会社 | 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 |
CN116226673B (en) * | 2023-05-05 | 2023-07-07 | 中国人民解放军国防科技大学 | Training method of buffer region vulnerability recognition model, vulnerability detection method and device |
Citations (7)
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 |
WO1993023806A1 (en) | 1992-05-12 | 1993-11-25 | International Business Machines Corporation | Method and apparatus for reducing memory wearout in a computer system |
US5303197A (en) * | 1990-04-25 | 1994-04-12 | Fujitsu Limited | Non-volatile semiconductor memory device having EEPROM cell, dummy cell, and sense circuit for increasing reliability and enabling one-bit operation |
US5602995A (en) * | 1991-04-30 | 1997-02-11 | Standard Microsystems Corporation | Method and apparatus for buffering data within stations of a communication network with mapping of packet numbers to buffer's physical addresses |
US5969632A (en) * | 1996-11-22 | 1999-10-19 | Diamant; Erez | Information security method and apparatus |
WO2000036511A1 (en) | 1998-12-11 | 2000-06-22 | Bull Cp8 | Method for storing and operating data units in a security module and associated security module |
US6115760A (en) * | 1998-08-24 | 2000-09-05 | 3Com Corporation | Intelligent scaleable FIFO buffer circuit for interfacing between digital domains |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU6220899A (en) | 1998-10-30 | 2000-05-22 | Christopher Paulet Melmoth Walters | Valve control mechanism |
-
2000
- 2000-11-16 CA CA002326036A patent/CA2326036A1/en not_active Abandoned
-
2001
- 2001-11-15 EP EP01996790A patent/EP1344137A1/en not_active Ceased
- 2001-11-15 US US10/416,754 patent/US8006058B2/en not_active Expired - Fee Related
- 2001-11-15 WO PCT/FR2001/003582 patent/WO2002041151A1/en not_active Application Discontinuation
- 2001-11-15 CN CNA018217729A patent/CN1484791A/en active Pending
- 2001-11-15 AU AU2002220786A patent/AU2002220786A1/en not_active Abandoned
-
2011
- 2011-08-22 US US13/214,501 patent/US20110307650A1/en not_active Abandoned
Patent Citations (9)
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 |
US5303197A (en) * | 1990-04-25 | 1994-04-12 | Fujitsu Limited | Non-volatile semiconductor memory device having EEPROM cell, dummy cell, and sense circuit for increasing reliability and enabling one-bit operation |
US5602995A (en) * | 1991-04-30 | 1997-02-11 | Standard Microsystems Corporation | Method and apparatus for buffering data within stations of a communication network with mapping of packet numbers to buffer's physical addresses |
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 |
US6268789B1 (en) * | 1996-11-22 | 2001-07-31 | Voltaire Advanced Data Security Ltd. | 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 |
WO2000036511A1 (en) | 1998-12-11 | 2000-06-22 | Bull Cp8 | Method for storing and operating data units in a security module and associated security module |
US7003673B1 (en) * | 1998-12-11 | 2006-02-21 | Cp8 Technology | Method for storing and operating on data units in a security module and associated security module |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113546A1 (en) * | 2007-10-30 | 2009-04-30 | Samsung Electronics Co., Ltd. | Memory system for sensing attack |
US9418231B2 (en) | 2014-06-03 | 2016-08-16 | Empire Technology Development Llc | Perturbation of field programmable gate array code to prevent side channel attack |
Also Published As
Publication number | Publication date |
---|---|
WO2002041151A1 (en) | 2002-05-23 |
AU2002220786A1 (en) | 2002-05-27 |
CA2326036A1 (en) | 2002-05-16 |
US20040093306A1 (en) | 2004-05-13 |
EP1344137A1 (en) | 2003-09-17 |
US20110307650A1 (en) | 2011-12-15 |
CN1484791A (en) | 2004-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110307650A1 (en) | Method for Securing Electronic Device Data Processing | |
US8689338B2 (en) | Secure terminal, a routine and a method of protecting a secret key | |
US8935541B2 (en) | Method and apparatus for encrypting and processing data in flash translation layer | |
US6952822B2 (en) | Program installation method, program installation system, program executing apparatus, and storage medium | |
CN101055623A (en) | Method and device for implementing multiple operation software intelligent card chip | |
JP2004005679A (en) | Computer system, memory structure, and method of executing program | |
US7035965B2 (en) | Flash memory with data decompression | |
JP4203514B2 (en) | Program execution control circuit, computer system, and IC card | |
US7555617B2 (en) | Electronic data processing device with secured memory access | |
US7228400B2 (en) | Control of multiply mapped memory locations | |
US6925569B2 (en) | Secured microprocessor comprising a system for allocating rights to libraries | |
US6453415B1 (en) | Method of communicating securely between an application program and a secure kernel | |
US8468493B2 (en) | Information processing apparatus, information processing method, and program | |
US20150261663A1 (en) | Method for managing the memory resources of a security device, such as a chip card, and security device implementing said method | |
US20070130425A1 (en) | Semiconductor memory card | |
US9927995B2 (en) | Method and an integrated circuit for executing a trusted application within a trusted runtime environment | |
US20100199059A1 (en) | Mobile communication device and method for defragging mifare memory | |
JP4734838B2 (en) | Information recording medium, program, and command execution control method | |
US20100200650A1 (en) | Mobile communication device and method for recovering mifare memory | |
CN116108436A (en) | Lesovirus detection method and device based on information entropy characteristic waveform | |
CN116108468A (en) | Method, system and medium for encrypting and decrypting war and jar program package | |
KR100689223B1 (en) | Method for optimizing patch and for security patch of smart card operating system | |
CN115509464A (en) | Encryption method and device for RAM, readable medium and electronic equipment | |
CN110569205A (en) | Security system single chip and method of operation thereof | |
JP2006301692A (en) | Ic card and ic card program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GEMPLUS, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BENOIT, OLIVIER;REEL/FRAME:014795/0006 Effective date: 20031015 |
|
AS | Assignment |
Owner name: GEMALTO SA, FRANCE Free format text: MERGER;ASSIGNOR:GEMPLUS;REEL/FRAME:026578/0442 Effective date: 20081001 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20150823 |