EP3295605A1 - Method for optimizing the execution of a function which generates at least one key within an integrated circuit device - Google Patents
Method for optimizing the execution of a function which generates at least one key within an integrated circuit deviceInfo
- Publication number
- EP3295605A1 EP3295605A1 EP16722602.6A EP16722602A EP3295605A1 EP 3295605 A1 EP3295605 A1 EP 3295605A1 EP 16722602 A EP16722602 A EP 16722602A EP 3295605 A1 EP3295605 A1 EP 3295605A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- integrated circuit
- function
- key
- buffer
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Definitions
- the present invention relates to a method for optimizing the execution of a function, said function generating at least one key and being performed within an integrated circuit device, said integrated circuit device comprising a buffer.
- the invention also relates to an associated integrated circuit device.
- Such a method may be used in a non-limitative example in any integrated circuit device which is adapted to execute cryptographic processes.
- a cryptographic process For an integrated circuit device which uses low performance processor unit, it takes a long processing time to handle complex operations such as those found in a function generating at least one key, such as a cryptographic process.
- a cryptographic process is for example a public key algorithm which generates a pair of public and private keys.
- the pair of keys is generated on board, which means within the integrated circuit device itself.
- the public key algorithm comprises a first step which identifies two unique prime numbers. This first step is most time consuming. Depending of the performance of the processor unit, said time could range from 1 second to 60 seconds or more.
- a method for optimizing the execution of a function said function generating at least one key and being performed within an integrated circuit device, said integrated circuit device comprising a buffer, wherein said method comprising:
- the execution time of said function will decrease, enabling the integrated circuit device to answer to a terminal on time.
- the method in accordance with the invention further comprises the following characteristics.
- said method further comprises:
- said method further comprises: - when said function is called by a command received by said integrated circuit device:
- said buffer comprises said at least one data, retrieving said at least one data from said buffer;
- said command is a predetermined command.
- said method further comprises computing at least one data during the execution of said function if:
- - said buffer doesn't comprise any data needed for said key generation; or - said buffer doesn't comprise all the data needed for said key generation.
- said method further comprises upon reception of said command, verifying if the buffer is full. In a non-limitative embodiment, said method further comprises storing in said buffer at least one data which has been computed during a personalization phase of said integrated circuit device.
- said computation of at least one data comprises the computation of a pair of data from which a pair of keys will be generated.
- said pair of keys comprises a public key and a private key.
- said function is a public key algorithm.
- said public key algorithm is a RSA Key generation algorithm.
- said at least one data is a prime number.
- said computation of at least one prime number comprises:
- said integrated circuit device is a secure element.
- said integrated circuit device is an integrated circuit card and said command is an APDU command.
- an integrated circuit device for optimizing the execution of a function which generates at least one key, said integrated circuit device comprising a buffer and being adapted to:
- said integrated circuit device when said function is called by a command received by said integrated circuit device, said integrated circuit device is further adapted to:
- said buffer comprises said at least one data, retrieve said at least one data from said buffer;
- said integrated circuit device is further adapted to:
- said buffer doesn't comprise all the data needed for said function.
- said integrated circuit device is further adapted to:
- a computer program product comprising a set of instructions, which when loaded into an integrated circuit device causes the integrated circuit device to carry out the method according to any one of the previous characteristics.
- - Fig.1 is a first schematic diagram of the method according to a non- limitative embodiment of the invention.
- FIG. 1 is a second schematic diagram of the method of Fig. 1 , which comprises further steps according to a non-limitative embodiment
- FIG. 3 is a second schematic diagram of the method of Fig. 1 , which comprises further steps according to a non-limitative embodiment
- FIG. 4 illustrates schematically a non-limitative embodiment of an integrated circuit device which is adapted to carry out the method of Fig. 1 to Fig. 3.
- the present invention relates to a method for optimizing the execution of a function OP1 , said function OP1 generating at least one key k1 and being performed within an integrated circuit device IC, said integrated circuit device IC comprising a buffer BUFF and a processor unit PR.
- integrated circuit device IC or IC device will be used indifferently.
- Said method MTH is illustrated in Fig. 1 in a non-limitative embodiment.
- Said method MTH comprises:
- a processor unit PR comprises one or a plurality of processors.
- a function comprises one or a plurality of operations.
- a function OP1 which generates at least one key k1 comprises a plurality of operations.
- the function OP1 is a cryptographic process which is generating cryptographic data such as cryptographic key(s).
- said function OP1 is a public key algorithm PK.
- Said public key algorithm uses a pair of keys k1 , k2.
- said pair of keys k1 , k2 comprises a public key k1 and a private key k2 which are based on prime numbers p1 , p2.
- said function OP1 is a Diffie- Hellmann algorithm.
- said function OP1 is a RSA Key generation algorithm.
- said function OP1 is used by a RSA algorithm.
- a RSA algorithm is well-known by the man skilled in the art, it won't be described here.
- said function OP1 is used by an elliptic curve or a DSA ("Digital Signature Algorithm") algorithm.
- said command CMD is a predetermined command CMD as it is chosen among a list of commands which allow the IC device to send back a response RSP in a delay which permits the execution of said computation of said at least one data p1 . It is chosen by the developer who develops the function OP1 and the other different functions of the IC device. Therefore, in a non-limitative embodiment, this command (from which the computation of said at least one data p1 will be triggered) is selected before the personalization phase Ph of said IC device.
- Said command CMD is sent by a terminal T.
- a terminal T is any kind of device, computer or reader which is adapted to communicate with the integrated circuit device through commands CMD, either in contact or in contactless mode.
- the integrated circuit device IC is an integrated circuit card ICC.
- the command CMD is an APDU command APDU_C, which is an application protocol data unit used by the integrated circuit card ICC to communicate with a terminal.
- An APDU command APDU_C is sent by a terminal to said integrated circuit card ICC device which answers back with an APDU response APDU_R.
- the APDU command APDU_C is a STATUS command defined in a non-limitative example in the standard ETSI102221 . This command returns information concerning the current directory or current application in the IC device.
- the APDU command APDU_C is a SELECT MD/DF/EF command defined in a non-limitative example in the standard ETSI102221 . This command selects a file or an application in said integrated circuit card ICC.
- APDU commands APDU_C may be used, such as the STATUS and the SELECT commands.
- the STATUS command may be used for computing one data p1
- the SELECT command may be used for computing another data p2, both data p1 , p2 being used for the generation of at least one key k1 .
- the integrated circuit device IC is a hardware security module HSM.
- the command CMD is a PKCS1 1 command.
- PKSC1 1 commands are:
- - INIT-TOKEN command which initializes the hardware security module HSM
- - LOGIN command which identifies a user to the hardware security module HSM
- said buffer BUFF is a dedicated buffer to store said at least one data p1 .
- said buffer BUFF is in a volatile memory such as a RAM, or in a non-volatile memory such as in non-limitative example an EEPROM, a flash memory etc.
- the method MTH further comprises:
- both said at least one data p1 and key k1 are computed outside the function OP1 . It permits to avoid a function OP1 to handle also said computation of said key k1 .
- Said command CMD is also a predetermined command as it is chosen among a list of commands which allow the IC device to send back a response RSP in a delay which permits the execution of said computation of said at least one key k1 . As above, it is chosen by the developer who develops the function OP1 within said IC device and the other different functions of the IC device.
- the computation of the key k1 and the computation of said at least one data p1 may be performed during the reception of the same command CMD or during the reception of different commands CMD.
- the generation of the at least one key k1 during said function OP1 means: - the computation of said at least one key k1 ; or
- the method MTH further comprises retrieving the at least one key k1 from said buffer BUFF. Said retrieving is performed during the execution of the function OP1 .
- the method MTH further comprises:
- the method MTH further comprises:
- said buffer BUFF comprises at least one data p1 , retrieving said at least one data p1 from said buffer BUFF (step illustrated RETRV(IC, BUFF, p1 ) in Fig. 3);
- said execution comprising the generation of said at least one key k1 from said at least one data p1 (step illustrated EXEC(IC, OP1 (k1 )) in Fig. 2 and Fig. 3).
- said function OP1 comprises the computation of said at least one key k1 from said at least one data p1 .
- the method MTH further comprises computing at least one data p1 during the execution of said function OP1 (step illustrated COMP(IC, OP1 , p1 ) in Fig. 2 and Fig. 3):
- the computation of at least one data comprises the computation of a pair of data p1 , p2 from which a pair of keys k1 , k2 will be generated.
- said at least one data p1 is a prime number.
- the computation of a prime number is complex and time consuming. Therefore, it is interesting to pre-compute such prime number.
- p1 represents at least one prime number (either the first prime number p1 , or the second prime number p2, or both prime numbers p1 , p2).
- said method MTH further comprises storing in said buffer BUFF at least one data p1 which has been computed during a personalization phase Ph of said integrated circuit device IC.
- said buffer BUFF may comprise at least one data p1 which has been computed during a personalization phase Ph of said integrated circuit device IC.
- said prime number p1 may be either pre-computed on board during a command CMD or outside the IC device. In this latter case, said prime number p1 is loaded (not illustrated) during the production phase Ph, in a secure environment.
- these further non-limitative steps above- described are all performed by means of the processor unit PR of the integrated circuit device IC.
- Fig. 2 and Fig. 3 illustrate a schematic diagram comprising the further non-limitative steps above-mentioned.
- Fig. 2 illustrates the steps (1 to 6) after reception of said command CMD
- Fig. 3 illustrates the steps (7 to 1 1 ) after the request of the function OP1 to be executed, i.e. after the call of said function OP1 by a command.
- Fig. 2 illustrates the steps (1 to 6) after reception of said command CMD
- Fig. 3 illustrates the steps (7 to 1 1 ) after the request of the function OP1 to be executed, i.e. after the call of said function OP1 by a command.
- the integrated circuit device IC is an integrated circuit card ICC;
- a pair of prime numbers p1 , p2 is computed, and a pair of keys k1 , k2 is computed based on said pair of prime numbers p1 , p2;
- the command CMD received by the integrated circuit device IC is an APDU command, and said APDU command APDU_C is a STATUS command;
- the response RSP sent by the integrated circuit device IC is an APDU response APDU_R;
- the buffer doesn't comprise any prime numbers, when the IC device receives said STATUS command;
- step 2) Upon reception of a STATUS command by said IC device in step 1), in step 2), said IC device verifies if said buffer BUFF comprises all the prime numbers p1 , p2 for generating the pair of keys k1 , k2.
- said IC device will execute the function OP1 and during said function OP1 , retrieve the pre-computed prime number p1 , p2 from said buffer BUFF and compute both keys k1 , k2 from said prime number p1 , p2 (see step 8 below).
- step 3 said IC device verifies if said buffer BUFF is full. It is to be noted that this step 3) may be performed before the step 2).
- said IC device computes a first prime number p1 from which said keys k1 , k2 will be generated.
- the delay for the IC device to answer said STATUS command is long enough to execute said STATUS command and one computation of one prime number p1 , but not long enough to compute the two prime numbers p1 , p2.
- a prime number computation p1 comprises:
- step 5 said IC device stores said prime number p1 in said buffer BUFF. Hence, this pre-computed data p1 is stored in said buffer BUFF until the function OP1 which needs said data p1 is requested.
- step 6 said IC device executes said STATUS command.
- the IC device will send an APDU response APDU_R to the terminal which comprises its status.
- this STATUS command is frequently sent to the IC device by the terminal T.
- this STATUS command it is possible to frequently pre-compute the prime numbers p1 , p2 needed, so that this time consuming computation process will be partly or not at all executed by the function OP1 .
- the frequency of the reception of said STATUS command by said IC device is increased.
- the POLL INTERVAL proactive command defined in the standard ETSI102223 is used to configure the frequency of reception of said STATUS command by the IC device. In this way, the time needed to pre-compute the prime numbers p1 , p2 may be split into several STATUS commands.
- the different operations (of the random generation, of the primality test) needed to compute a prime number are executed within several STATUS commands.
- the at least one data computed from which said at least one key k1 will be generated
- step 8 said IC device verifies if said buffer BUFF comprises the two prime numbers p1 , p2 from which said keys k1 , k2 will be generated.
- said buffer BUFF doesn't comprise all the prime numbers needed for the generation of both keys k1 , k2, (as it only comprises the first prime number p1 ), said IC device computes the second prime number p2 during the execution of said function OP1 (see step 10'). It is to be noted that if said buffer BUFF doesn't comprise any of the two prime numbers p1 , p2, in the same manner, said IC device computes the first and second prime numbers p1 , p2 during the execution of said function OP1 .
- step 9 said IC device retrieves the prime number which is in said buffer BUFF, i.e. here, said first prime number p1 from said buffer BUFF.
- said IC device will retrieve both prime numbers from said buffer BUFF (step 10' illustrated in Fig. 3).
- step 10 said IC device executes said function OP1 which comprises the generation of said pair of keys k1 , k2.
- said IC device computes the second prime number p2 as described before (step 10'), and computes said pair of keys k1 , k2 from said retrieved prime number p1 and from said computed prime number p2 (step 10").
- the generation of the pair of keys k1 , k2 is therefore performed by the computation of said pair of keys k1 , k2 during said function OP1 .
- an integrated circuit device IC (illustrating in Fig. 4) comprising a processor unit PR and a buffer BUFF, said integrated circuit device IC being adapted to optimize the execution of a function OP1 which generates at least one key k1 .
- the buffer comprises only the first prime number p1 , as the second prime number p2 is computed during the function OP1 in the non-limitative described example.
- Said integrated circuit device IC is a secure element.
- a secure element is a secured component which comprises a secured chip and may perform cryptographic functions and is adapted to store secret information.
- said secure element is an integrated circuit card ICC, also called ICC card.
- the ICC card may be contact or contactless.
- the secure element is a smart device, a soldered element, a M2M module, an eSE (embedded secure element), a micro-SD etc.
- the ICC card is a banking card, such as an EMV card, an Electronic Identity Card, a health card, a driving license, a passport, a privacy card, a financial service card, an access card etc.
- said secure element is a hardware security module HSM.
- Said hardware security module is adapted to be connected to a terminal T.
- the ICC card may be used as an HSM.
- Said IC device is adapted to:
- said IC device is further adapted to:
- said IC device is further adapted to:
- said IC device is further adapted to store in said buffer BUFF at least one data p1 which has been computed during a personalization phase ph of said integrated circuit device IC (function illustrated STOR(IC, p1 , ph, BUFF) in Fig. 4).
- said IC device is further adapted to compute at least one data p1 during the execution of said function OP1 (function illustrated COMP(IC, OP1 , p1 ) in Fig. 4).
- said IC device is further adapted to:
- said IC device is further adapted to:
- the processor unit PR of said IC device is adapted to perform all those above-described functions. It is to be understood that the present invention is not limited to the aforementioned embodiments.
- One or a plurality of computer program products PG as illustrated in Fig. 4 can be contained in the IC device.
- a computer program product PG comprises a set of instructions.
- said set of instructions contained, for example, in an IC device memory, may cause the IC device to carry out the different steps of the method MTH.
- some embodiments of the invention may comprise one or a plurality of the following advantages:
- the duration to perform the function OP1 is greatly shorten to a consistent timing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Semiconductor Integrated Circuits (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP15305718.7A EP3094039A1 (en) | 2015-05-13 | 2015-05-13 | Method for optimizing the execution of a function which generates at least one key within an integrated circuit device |
| PCT/EP2016/060034 WO2016180710A1 (en) | 2015-05-13 | 2016-05-04 | Method for optimizing the execution of a function which generates at least one key within an integrated circuit device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP3295605A1 true EP3295605A1 (en) | 2018-03-21 |
Family
ID=53546183
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP15305718.7A Withdrawn EP3094039A1 (en) | 2015-05-13 | 2015-05-13 | Method for optimizing the execution of a function which generates at least one key within an integrated circuit device |
| EP16722602.6A Ceased EP3295605A1 (en) | 2015-05-13 | 2016-05-04 | Method for optimizing the execution of a function which generates at least one key within an integrated circuit device |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP15305718.7A Withdrawn EP3094039A1 (en) | 2015-05-13 | 2015-05-13 | Method for optimizing the execution of a function which generates at least one key within an integrated circuit device |
Country Status (3)
| Country | Link |
|---|---|
| EP (2) | EP3094039A1 (en) |
| RU (1) | RU2703347C2 (en) |
| WO (1) | WO2016180710A1 (en) |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6820105B2 (en) * | 2000-05-11 | 2004-11-16 | Cyberguard Corporation | Accelerated montgomery exponentiation using plural multipliers |
| JP2003316263A (en) * | 2002-04-19 | 2003-11-07 | Sony Corp | Arithmetic unit and arithmetic method |
| FR2879866B1 (en) * | 2004-12-22 | 2007-07-20 | Sagem | METHOD AND DEVICE FOR PERFORMING A CRYPTOGRAPHIC CALCULATION |
| JP4652842B2 (en) * | 2005-02-21 | 2011-03-16 | 株式会社エヌ・ティ・ティ・ドコモ | IC card |
| US9036599B2 (en) * | 2008-05-11 | 2015-05-19 | Qualcomm Incorporated | Systems and methods for multimode wireless communication handoff |
-
2015
- 2015-05-13 EP EP15305718.7A patent/EP3094039A1/en not_active Withdrawn
-
2016
- 2016-05-04 WO PCT/EP2016/060034 patent/WO2016180710A1/en not_active Ceased
- 2016-05-04 EP EP16722602.6A patent/EP3295605A1/en not_active Ceased
- 2016-05-04 RU RU2017143400A patent/RU2703347C2/en active
Also Published As
| Publication number | Publication date |
|---|---|
| RU2017143400A3 (en) | 2019-08-28 |
| RU2017143400A (en) | 2019-06-13 |
| EP3094039A1 (en) | 2016-11-16 |
| WO2016180710A1 (en) | 2016-11-17 |
| RU2703347C2 (en) | 2019-10-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10063381B2 (en) | Security token for certificate authentication and driving method therefor | |
| US9529734B2 (en) | Smart storage device | |
| KR20210017083A (en) | Electronic device and method for generating attestation certificate based on fused key | |
| US20160048460A1 (en) | Remote load and update card emulation support | |
| KR20210005871A (en) | Encryption card, electronic device and encryption service method | |
| AU2014283648B2 (en) | Display card with user interface | |
| KR20180017218A (en) | Disabling mobile payments for lost electronic devices | |
| CN107078761B (en) | A mobile device with short-range wireless communication function | |
| CN108140081A (en) | Biometric verification method and system | |
| KR20200131035A (en) | Electronic device and method for receiving push message stored in blockchain | |
| CN106355077B (en) | Display driver ICs for certified application processors and mobile devices | |
| US9338142B2 (en) | Method for verifying the security of a device that generates private and public cryptographic keys | |
| WO2016180710A1 (en) | Method for optimizing the execution of a function which generates at least one key within an integrated circuit device | |
| US20100250962A1 (en) | Electronic token comprising several microprocessors and method of managing command execution on several microprocessors | |
| CN104598805A (en) | Password authentication method, password authentication system and controller | |
| US10263772B2 (en) | Smart card chip for generating private key and public key pair, and generation method therefor | |
| US10489775B2 (en) | Integrated circuit card adapted to transfer first data from a first application for use by a second application | |
| EP2985724B1 (en) | Remote load and update card emulation support | |
| RU2633186C1 (en) | Personal device for authentication and data protection | |
| CN105873021B (en) | A method, device and terminal for providing a reliable time source for a SIM card | |
| CN113179163B (en) | Intelligent card information remote reading method and system | |
| CN113536280B (en) | Authentication device, method and system | |
| EP3244340A1 (en) | Method for securely running an application | |
| JP2014203248A (en) | Ic card, status word output method, and status word output processing program | |
| US20240160295A1 (en) | Method for controlling an apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| 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 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20171213 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: THALES DIS FRANCE SA |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20200117 |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: THALES DIS FRANCE SAS |
|
| 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: 20220304 |