WO2003025739A1 - Secure method for using a cryptographic algorithm and corresponding component - Google Patents

Secure method for using a cryptographic algorithm and corresponding component Download PDF

Info

Publication number
WO2003025739A1
WO2003025739A1 PCT/FR2002/002963 FR0202963W WO03025739A1 WO 2003025739 A1 WO2003025739 A1 WO 2003025739A1 FR 0202963 W FR0202963 W FR 0202963W WO 03025739 A1 WO03025739 A1 WO 03025739A1
Authority
WO
WIPO (PCT)
Prior art keywords
algorithms
calculation
algorithm
exponentiation
bits
Prior art date
Application number
PCT/FR2002/002963
Other languages
French (fr)
Inventor
Marc Joye
Karine Villegas
Original Assignee
Gemplus
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 filed Critical Gemplus
Publication of WO2003025739A1 publication Critical patent/WO2003025739A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/556Indexing scheme relating to group G06F7/556
    • G06F2207/5561Exponentiation by multiplication, i.e. calculating Y**INT(X) by multiplying Y with itself or a power of itself, INT(X) being the integer part of X

Definitions

  • the present invention relates to a secure method of implementing, in an electronic component, a cryptography algorithm using the calculation of exponentiation to the power d of a number y.
  • the invention also relates to the corresponding electronic component.
  • Such components are used in applications where access to services or data is strictly controlled. They have an architecture 10 formed around a microprocessor and memories, including a program memory of type ROM ("Read Only Memory” in English) which contains the secret number (s) d.
  • ROM Read Only Memory
  • These components are used in computer systems, embedded or not; they are used in particular in smart cards, for certain applications thereof. These are, for example, applications for accessing certain databases, banking applications, electronic toll applications, for example for television, petrol distribution or even the passage of motorway tolls.
  • these cryptographic algorithms have in particular the function of encryption or digital signature of a message applied as input (to the card) by a host system (server, bank distributor, etc.) and many secrets contained in the card, and to provide this encrypted or signed message in return to the host system, which allows for example host system to authenticate the component or card, to exchange data, ....
  • ed 1 (modulo ⁇ (N)), ⁇ (.) being the function of Carmichael.
  • CRT mode Another mode of operation known as CRT mode because based on the theorem of Chinese remains ( "Chinese Remainder Theorem" (CRT in English) is four times faster than that of the classic RSA algorithm. According to this RSA CRT mode, we do not perform the modulo N calculations directly but we first perform the modulo p and modulo q calculations.
  • the countermeasure methods for warding off this type of attack consist in not directly handling the secret key d.
  • d p * d p + r. (p-1), r being a random number.
  • a third countermeasure consists in representing the exponent d by an addition chain.
  • a possible addition string of the number 10 is
  • the aim of the present invention is therefore to protect the secret number d from hidden channel attacks occurring when d is used in exponentiation calculations, without however being penalized in terms of calculation time, memory location or still limited in the choice of the cryptography algorithm.
  • the chain of n algorithms Ai i varying from 0 to n-1, is preferably established randomly.
  • the chain of n algorithms Ai i varying from 0 to n- 1, can be predetermined.
  • the cryptography algorithm is of the classic RSA type or in CRT mode.
  • the invention also relates to an electronic security component, comprising calculation means, a program memory and a working memory and data communication means, characterized in that it implements the method of countermeasure according to any one of the preceding claims, and in that it comprises a generator of random numbers and in that the program memory comprises several algorithms for calculating exponentiation.
  • the invention also relates to a smart card comprising an electronic component as described above.
  • FIG. 1 schematically represents the elements of a smart card capable of being implemented. the invention.
  • the smart card 1 comprises a microprocessor 2 coupled to a fixed memory (ROM) 3 and to a random access memory (RAM) 4, the whole forming an assembly allowing, inter alia, the execution of 'cryptographic algorithms.
  • the microprocessor 2 comprises the arithmetic calculation means necessary for the algorithm, as well as data transfer circuits with the memories 3 and 4.
  • the frozen memory 3 contains the executable program of the cryptographic algorithm in the form of code source, while RAM 4 includes registers which can be updated for the storage of calculation results.
  • the smart card 1 also includes a communication interface 5 connected to the microprocessor 2 to allow the exchange of data with the external environment.
  • the communication interface 5 can be of the "contact” type, being in this case formed by a set of contact pads intended to connect to a contactor of an external device, such as a card reader, and / or of the "contactless” type.
  • the communication interface 5 comprises an antenna and over-the-air communication circuits allowing data transfer by wireless link. This link can also allow a transfer of power supply to the circuits of card 1.
  • the method according to the invention consists in calculating y d by means of a chain of n exponentiation algorithms applied to n blocks of bits of d.
  • the expression exponentiation calculation algorithm is understood to mean a series of instructions allowing this calculation to be carried out; as we will see later in an example, there are several possible algorithms.
  • This chain of n exponentiation algorithms Ai (i varying from 0 to n-1) is established from several exponentiation algorithms that are stored before the first calculation of y d .
  • the algorithms A are not necessarily all different: some may be identical.
  • Di ri bits following those of blocks D 0 II ... II Di_ ⁇
  • Di blocks are contiguous.
  • the key d is read from left to. right; you can of course just as well read it from right to left. Similarly, you can read the bits of a block from left to right and those of another block from right to left.
  • the calculation of S 1 is carried out in particular from a function of the result Si_ ⁇ of the previous algorithm without using the entire chain S 0 , ..., Si_ 2 of the previous results ( or a function of the previous results), or from some of these results (or a function of these results).
  • the algorithm chain is preferably determined randomly for each calculation of y d ; however, it can be predetermined.
  • This method thus makes it possible to protect oneself in the case of the implementation of a cryptography algorithm based on an exponentiation calculation of the type y d .
  • the hidden channel attacks which are carried out after multiple measurements, consist initially, during a learning phase, of identifying the exponentiation algorithm used. To do this, the fraudster relaunches the algorithm by changing the key. Knowing this algorithm, he can then identify the bits of the real key d.
  • the calculation of y d is not carried out in the same way once on the other: the decomposition of d into blocks D is determined randomly once on the other because the number n of blocks and their size ri are random integers, the exponentiation calculation algorithms differ from each other (even if some are identical, there are at least two that differ) and possibly, the chain of algorithms Exponentiation also varies randomly from one calculation of y d to another.
  • the algorithm chosen for Ao is the "Square and Always Multiply” algorithm which " consists of squaring and multiplying in all cases. It is, for exponents of the same size, a constant time algorithm and with constant code, that is to say which always executes the same instructions, whatever the value of the manipulated exponent; it does not include test instructions which can give information on the value manipulated. constant time and constant code algorithm is very secure but it is costly in computation time because it sometimes performs unnecessary operations.
  • the algorithm chosen for Ai is the "Square and Multiply” algorithm which consists in squaring and This is not a constant-time algorithm, nor a constant-code algorithm, unless you artificially add an instruction as we will see below. It is therefore an algorithm that is less secure than the previous one but faster .
  • the invention is valid for cryptographic algorithms using exponentiation calculations such as for example the modular exponentiation calculation (y d modulo p) in the case of the RSA type algorithm or even the exponentiation calculation on a curve elliptical where it is customary to write the exponentiation additively.

Abstract

The invention concerns a method which consists in storing several exponentiation computation algorithms in the electronic component prior to the first computation of yd, and in carrying out the following steps at each computation of the value yd: a) breaking down the number d into n blocks D¿i? of ri bits, n and ri being random integers, and in considering among the stored exponentiation computation algorithms, a chain of n algorithms Ai, b) using an algorithm A0 and from the r0 first bits of d and of y, calculating (I) and storing the result S?0¿; c) using an algorithm A¿j? and from the following rj bits of d, a function of S0 and/or of Sj-1, and of y, calculating (II) and storing the result Sj, the result yd corresponding to the obtained value of Sn-1.

Description

PROCEDE SECURISE DE MISE EN OEUVRE D'UN ALGORITHME DE CRYPTOGRAPHIE ET COMPOSANT CORRESPONDANT P R O C EDE S CU RI S E OF IMPLEMENTING A CRYPTOGRAPHY ALGORITHM AND CORRESPONDING COMPONENT
La présente invention concerne un procédé sécurisé de mise en œuvre, dans un composant électronique, d'un algorithme de cryptographie utilisant le calcul d'exponentiation à la puissance d d'un nombre y. 5 L'invention se rapporte également au composant électronique correspondant.The present invention relates to a secure method of implementing, in an electronic component, a cryptography algorithm using the calculation of exponentiation to the power d of a number y. The invention also relates to the corresponding electronic component.
De tels composants sont utilisés dans des applications où l'accès à des services ou à des données est sévèrement contrôlé. Ils ont une architecture 10 formée autour d'un microprocesseur et de mémoires, dont une mémoire programme de type ROM ("Read Only Memory" en anglais) qui contient le (s) nombre (s) secret (s) d.Such components are used in applications where access to services or data is strictly controlled. They have an architecture 10 formed around a microprocessor and memories, including a program memory of type ROM ("Read Only Memory" in English) which contains the secret number (s) d.
Ces composants sont utilisés dans des systèmes informatiques, embarqués ou non ; ils sont notamment 15 utilisés dans les cartes à puce, pour certaines applications de celles-ci. Ce sont par exemple des applications d'accès à certaines banques de données, des applications bancaires, des applications de télépéage, par exemple pour la télévision, la distribution 20 d'essence ou encore le passage de péages d'autoroutes.These components are used in computer systems, embedded or not; they are used in particular in smart cards, for certain applications thereof. These are, for example, applications for accessing certain databases, banking applications, electronic toll applications, for example for television, petrol distribution or even the passage of motorway tolls.
Ces composants ou ces cartes mettent donc en œuvre un algorithme de cryptographie pour assurer le chiffrement de données émises et/ou le déchiffrement de données reçues lorsque celles-ci doivent demeurerThese components or these cards therefore implement a cryptography algorithm to ensure the encryption of transmitted data and / or the decryption of received data when these must remain
25 confidentielles.25 confidential.
De manière générale et succincte, ces algorithmes cryptographiques ont notamment pour fonction le chiffrement ou la signature numérique d'un message appliqué en entrée (à la carte) par un système hôte (serveur, distributeur bancaire...) et de nombreux secrets contenus dans la carte, et de fournir en retour au système hôte ce message chiffré ou signé, ce qui permet par exemple au système hôte d'authentifier le composant ou la carte, d'échanger des données, ....Generally and succinctly, these cryptographic algorithms have in particular the function of encryption or digital signature of a message applied as input (to the card) by a host system (server, bank distributor, etc.) and many secrets contained in the card, and to provide this encrypted or signed message in return to the host system, which allows for example host system to authenticate the component or card, to exchange data, ....
Les caractéristiques des algorithmes de cryptographie sont connues : calculs effectués, paramètres utilisés. La seule inconnue est le ou les nombres secrets contenus en mémoire programme. Toute la sécurité de ces algorithmes de cryptographie tient dans ce (s) nombre (s) secret (s) contenu (s) dans la carte et inconnu (s) du monde extérieur à cette carte. Ce nombre secret ne peut être déduit de la seule connaissance du message appliqué en entrée et du message chiffré fourni en retour.The characteristics of cryptography algorithms are known: calculations performed, parameters used. The only unknown is the secret number (s) contained in program memory. All the security of these cryptographic algorithms lies in this secret number (s) contained in the card and unknown to the world outside this card. This secret number cannot be deduced from the mere knowledge of the message applied as input and of the encrypted message supplied in return.
Or il est apparu que des attaques externes basées sur des grandeurs physiques mesurables à l'extérieur du dispositif de calcul lorsque celui-ci est en train de dérouler l'algorithme de cryptographie, permettent à des tiers mal intentionnés de trouver le (s) nombre (s) secret (s) contenu (s) dans cette carte. Ces attaques sont appelées attaques à canaux cachés ("Side channel attacks" en anglais) ; on distingue parmi ces attaques à canaux cachés, les attaques SPA acronyme anglo-saxon pour Single Power Attack et les attaques DPA, acronyme anglo-saxon pour Differential Power Analysis .However, it appeared that external attacks based on measurable physical quantities outside the computing device when the latter is in the process of rolling out the cryptography algorithm, allow malicious third parties to find the number (s) (s) secret (s) contained in this card. These attacks are called "side channel attacks"; we distinguish among these hidden channel attacks, SPA attacks acronym for Single Power Attack and DPA attacks, acronym for Differential Power Analysis.
Le principe de ces attaques à canaux cachés repose par exemple sur le fait que la consommation en courant du microprocesseur exécutant des instructions varie selon l'instruction ou la donnée manipulée. Notamment, quand une instruction exécutée par le microprocesseur nécessite une manipulation d'une donnée ou d'une instruction bit par bit, on a deux profils de courant différents selon que ce bit vaut "1" ou "0". Typiquement, si le microprocesseur manipule un "0", on a à cet instant d'exécution une première amplitude du courant consommé et si le microprocesseur manipule un "1", on a une deuxième amplitude du courant consommé, différente de la première. Ainsi les attaques à canaux cachés exploitent dans ce cas la différence du profil de consommation en courant dans la carte pendant l'exécution d'une instruction suivant la valeur du bit manipulé. Pour une description plus détaillée des attaques à canaux cachés, on se reportera à la publication de Paul Kocher "Advances in Cryptology-CRYPTO' 99", vol. 1666 of Lectures Notes in Computer Science, pp 388-397, Springer Verlag 1999.The principle of these hidden channel attacks is based, for example, on the fact that the current consumption of the microprocessor executing instructions varies according to the instruction or the data handled. In particular, when an instruction executed by the microprocessor requires manipulation of a data item or of a bit-by-bit instruction, there are two different current profiles depending on whether this bit is equal to "1" or "0". Typically, if the microprocessor handles a "0", at this instant of execution a first amplitude of the current consumed and if the microprocessor manipulates a "1", there is a second amplitude of the current consumed, different from the first. Thus, the hidden channel attacks exploit in this case the difference in the current consumption profile in the card during the execution of an instruction according to the value of the bit handled. For a more detailed description of hidden channel attacks, see Paul Kocher's publication "Advances in Cryptology-CRYPTO '99", vol. 1666 of Lectures Notes in Computer Science, pp 388-397, Springer Verlag 1999.
Ce type d'attaque est notamment envisageable avec l'algorithme RSA du nom de ses auteurs (Rivest, Shamir et Adleman) , sur lequel sont basés de nombreux algorithmes de cryptographie. La sécurité de l'algorithme RSA est basée sur la difficulté de factoriser de grands nombres. Ces algorithmes utilisent notamment des calculs d'exponentiation à la puissance d, d étant un nombre secret.This type of attack is notably possible with the RSA algorithm named after its authors (Rivest, Shamir and Adleman), on which many cryptographic algorithms are based. The security of the RSA algorithm is based on the difficulty of factoring large numbers. These algorithms notably use exponentiation calculations with the power d, d being a secret number.
On rappelle brièvement les principales étapes de l'algorithme RSA.We briefly recall the main steps of the RSA algorithm.
On établit un nombre N qui est le produit de deux nombres premiers p et q (N=p.q), ainsi qu'un exposant public ou clé publique e et un exposant privé ou clé privée ou secrète d, satisfaisant la relation : e.d = 1 (modulo λ(N)), λ(.) étant la fonction de Carmichael. Selon un premier mode de fonctionnement de l'algorithme RSA dit classique, les paramètres publics sont (N,e) et les paramètres privés sont (N,d). Etant donné x compris dans l'intervalle ]0,N[, l'opération publique sur x qui peut être par exemple le chiffrement du message x ou encore la vérification de la signature x, consiste à calculer : y = xe modulo N L'opération privée correspondante qui peut être par exemple le déchiffrement du message chiffré y ou la génération d'une signature x, est alors : x = yd modulo N Un autre mode de fonctionnement dit mode CRT car basé sur le théorème des restes chinois ("Chinese Remainder Theorem" ou CRT en anglais) est quatre fois plus rapide que celui de l'algorithme RSA classique. Selon ce RSA mode CRT, on n'effectue pas directement les calculs modulo N mais on effectue d'abord les calculs modulo p et modulo q.We establish a number N which is the product of two prime numbers p and q (N = pq), as well as an exponent public or public key e and a private exponent or private or secret key d, satisfying the relation: ed = 1 (modulo λ (N)), λ (.) being the function of Carmichael. According to a first mode of operation of the so-called classic RSA algorithm, the public parameters are (N, e) and the private parameters are (N, d). Given x included in the interval] 0, N [, the public operation on x which can be for example the encryption of the message x or even the verification of the signature x, consists in calculating: y = x e modulo N L 'corresponding private operation which can be for example the decryption of the encrypted message y or the generation of a signature x, is then: x = y d modulo N Another mode of operation known as CRT mode because based on the theorem of Chinese remains ( "Chinese Remainder Theorem" (CRT in English) is four times faster than that of the classic RSA algorithm. According to this RSA CRT mode, we do not perform the modulo N calculations directly but we first perform the modulo p and modulo q calculations.
Les paramètres publics sont (N,e) mais les paramètres privés sont (p,q,d) ou (p, q, dp, dq, iq) avec dp = d modulo (p-1), dq = d modulo (q-1) et iq= q-1 modulo p. L'opération publique s'effectue de la même façon que pour le mode de fonctionnement classique ; par contre pour l'opération privée, on calcule d'abord : x = y "rnodp et = y qmodq Ensuite, par application du théorème des restes chinois, oinn oobbttiieenntt xx == yyd mmoodd NN ppaarr x = xq+qtiq(Xp-xq) modulo p]The public parameters are (N, e) but the private parameters are (p, q, d) or (p, q, d p , d q , i q ) with dp = d modulo (p-1), d q = d modulo (q-1) and i q = q -1 modulo p. The public operation is carried out in the same way as for the classic operating mode; on the other hand, for the private operation, we first calculate: x = y "rnodp and = y q modq Then, by applying the Chinese remains theorem, oinn oobbttiieenntt xx == yy d mmoodd NN ppaarr x = x q + qti q (Xp-x q ) modulo p]
Ainsi en mesurant la consommation en courant de la carte par exemple, lors de ces calculs d'exponentiation à la puissance d, un fraudeur peut déduire la suite de bits composant la clé d à partir de multiples mesures.Thus by measuring the current consumption of the card for example, during these exponentiation calculations to the power of a fraudster can deduce the series of bits making up the key d from multiple measurements.
Les procédés de contre-mesure permettant de parer ce type d'attaque consistent à ne pas manipuler directement la clé secrète d.The countermeasure methods for warding off this type of attack consist in not directly handling the secret key d.
Selon une première contre-mesure, on décompose d sous la forme suivante d =(d+a)-a et l'on calcule alors y(d+a) puis y~a. Mais a et d étant de même ordre de grandeur, le temps de calcul est alors doublé.According to a first countermeasure, we decompose d into the following form d = (d + a) -a and we then calculate y (d + a) then y ~ a . But a and d being of the same order of magnitude, the computation time is then doubled.
Une autre contre-mesure seulement utilisable en mode CRT et décrite dans le brevet WO n° 9935782 consiste à exprimer l'exposant privé dp sous la forme aléatoire suivante : dp* = dp+r. (p-1), r étant un nombre aléatoire.Another countermeasure only usable in CRT mode and described in WO patent n ° 9935782 consists in expressing the private exponent d p in the following random form: d p * = d p + r. (p-1), r being a random number.
Mais cette contre-mesure ne peut s'appliquer au mode RSA classique.However, this countermeasure cannot be applied to the classic RSA mode.
Une troisième contre-mesure consiste à représenter l'exposant d par une chaîne d'addition. Par exemple, une chaîne d'addition possible du nombre 10 estA third countermeasure consists in representing the exponent d by an addition chain. For example, a possible addition string of the number 10 is
(1,2,3,5,8,10). Pour calculer y10, on calcule Rl=y.y=y2 puis R2=Rl.y=y2.y=y3 puis R3=R2.Rl=y3. y2=y5 puis(1,2,3,5,8,10). To calculate y 10 , we calculate Rl = yy = y 2 then R2 = Rl.y = y 2 .y = y 3 then R3 = R2.Rl = y 3 . y 2 = y 5 then
R4=R3.R2=y5.y3 et enfin R5=R4.Rl=y8. y2=y10. Bien sûr dans la réalité la clé secrète d est un nombre beaucoup plus grand, de 512 bits ou plus. Pour une description plus détaillée des représentations d'un nombre par chaînes d'addition, on peut se reporter à la publication de C. Clavier et deR4 = R3.R2 = y 5 .y 3 and finally R5 = R4.Rl = y 8 . y 2 = y 10 . Of course in reality the secret key d is a much larger number, 512 bits or more. For a more detailed description of the representations of a number by addition chains, see the publication by C. Clavier and
M. Joye CHESS'01 "Universal exponentiation algorithm : a first step to ard provable SPA résistance".M. Joye CHESS'01 "Universal exponentiation algorithm: a first step to ard provable SPA resistance".
Dans ce cas de contre-mesure, la taille des données à garder en mémoire en 1 ' occurrence la chaîne d'addition, est doublée.In this case of countermeasure, the size of the data to be kept in memory, in this case the addition chain, is doubled.
Le but de la présente invention est donc de protéger le nombre secret d contre les attaques à canaux cachés intervenant lorsque d est utilisé dans des calculs d'exponentiation, sans pour autant être pénalisé au niveau du temps de calcul, de l'emplacement mémoire ou encore limité dans le choix de l'algorithme de cryptographie.The aim of the present invention is therefore to protect the secret number d from hidden channel attacks occurring when d is used in exponentiation calculations, without however being penalized in terms of calculation time, memory location or still limited in the choice of the cryptography algorithm.
L'invention a pour objet un procédé sécurisé de mise en œuvre, dans un composant électronique, d'un algorithme de cryptographie utilisant des moyens de calcul destinés à effectuer des opérations d'exponentiation à la puissance d d'un nombre y (yd) , d étant un nombre entier de taille déterminée, caractérisé en ce qu'on mémorise plusieurs algorithmes de calcul d'exponentiation dans ledit composant électronique préalablement au premier calcul de la valeur yd, et en ce qu'il consiste à réaliser les étapes suivantes à chaque calcul de la valeur yd : a) on décompose le nombre d en n blocs Di de ri bits, i variant de 0 à n-1, n et les r± étant des entiers aléatoires, l<n<=taille de d, r0+...+rn-ι=taille de d et on considère parmi les algorithmes de calcul d'exponentiation mémorisés, une chaîne de n algorithmes Ai, b) on effectue au moyen d'un algorithme A0 et à partir des ro premiers bits de d et de y, le calculThe subject of the invention is a secure method of implementing, in an electronic component, a cryptography algorithm using calculation means intended to perform exponentiation operations with the power d of a number y (y d ), d being an integer of determined size, characterized in that several exponentiation calculation algorithms are stored in said electronic component prior to the first calculation of the value y d , and in that it consists in carrying out the steps following each calculation of the value y d : a) the number d is broken down into n blocks Di of ri bits, i varying from 0 to n-1, n and the r ± being random integers, l <n <= size of d, r 0 + ... + r n -ι = size of d and we consider among the calculation algorithms of stored exponentiation, a chain of n algorithms Ai, b) by means of an algorithm A 0 and from the first ro bits of d and y, the calculation
S0 = yD°S 0 = y D °
et on mémorise le résultat S0, c) on effectue au moyen d'un algorithme Aj et à partir des rj bits suivants de d, d'une fonction de So et/ou ... et/ou de Sj_ι, et de y, j variant de 1 à n-1, le calculand the result S 0 is memorized, c) it is carried out by means of an algorithm A j and from the following r j bits of d, a function of So and / or ... and / or of S j _ι , and from y, j varying from 1 to n-1, the calculation
S.=yD ^S. = y D ^
et on mémorise le résultat Sj, le résultat de yd correspondant à la valeur Sn-ι obtenue. Selon une caractéristique de l'invention, parmi la chaîne des n algorithmes Ai, certains desdits algorithmes sont identiques.and the result S j is stored, the result of y d corresponding to the value S n -ι obtained. According to a characteristic of the invention, among the chain of n algorithms Ai, some of said algorithms are identical.
La chaîne des n algorithmes Ai i variant de 0 à n- 1, est de préférence établie de manière aléatoire.The chain of n algorithms Ai i varying from 0 to n-1, is preferably established randomly.
La chaîne des n algorithmes Ai i variant de 0 à n- 1, peut être prédéterminée.The chain of n algorithms Ai i varying from 0 to n- 1, can be predetermined.
Selon un mode de réalisation de l'invention, l'algorithme de cryptographie est du type RSA classique ou en mode CRT .According to one embodiment of the invention, the cryptography algorithm is of the classic RSA type or in CRT mode.
L'invention a également pour objet un composant électronique de sécurité, comprenant des moyens de calcul, une mémoire de programme et une mémoire de travail et des moyens de communication de données, caractérisé en ce qu'il met en œuvre le procédé de contre-mesure selon l'une quelconque des revendications précédentes, et en ce qu'il comprend un générateur de nombres aléatoires et en ce que la mémoire de programme comporte plusieurs algorithmes de calcul d'exponentiation.The invention also relates to an electronic security component, comprising calculation means, a program memory and a working memory and data communication means, characterized in that it implements the method of countermeasure according to any one of the preceding claims, and in that it comprises a generator of random numbers and in that the program memory comprises several algorithms for calculating exponentiation.
L'invention concerne aussi une carte à puce comprenant un composant électronique tel que décrit précédemment .The invention also relates to a smart card comprising an electronic component as described above.
D'autres particularités et avantages de l'invention apparaîtront clairement à la lecture de la description faite à titre d'exemple non limitatif et en regard de la figure 1 annexée qui représente schématiquement les éléments d'une carte à puce apte à mettre en œuvre l'invention.Other features and advantages of the invention will appear clearly on reading the description given by way of nonlimiting example and with reference to the appended FIG. 1 which schematically represents the elements of a smart card capable of being implemented. the invention.
Les modes de réalisation sont décrits dans le cadre de cartes à puce, mais peuvent bien entendu s'appliquer à tout autre dispositif ou composant électronique de sécurité doté de moyens de calculs cryptographiques. Ainsi que le montre la figure 1, la carte à puce 1 comprend un microprocesseur 2 couplé à une mémoire figée (ROM) 3 et à une mémoire vive (RAM) 4, le tout formant un ensemble permettant, entre autres, l'exécution d'algorithmes cryptographiques. Plus précisément, le microprocesseur 2 comporte les moyens de calcul arithmétiques nécessaires à l'algorithme, ainsi que des circuits de transfert de données avec les mémoires 3 et 4. La mémoire figée 3 contient le programme exécutoire de 1 ' algorithme cryptographique sous forme de code source, alors que la mémoire vive 4 comporte des registres pouvant être mis à jour pour le stockage de résultats des calculs.The embodiments are described in the context of smart cards, but can of course be applied to any other electronic security device or component provided with cryptographic calculation means. As shown in FIG. 1, the smart card 1 comprises a microprocessor 2 coupled to a fixed memory (ROM) 3 and to a random access memory (RAM) 4, the whole forming an assembly allowing, inter alia, the execution of 'cryptographic algorithms. More precisely, the microprocessor 2 comprises the arithmetic calculation means necessary for the algorithm, as well as data transfer circuits with the memories 3 and 4. The frozen memory 3 contains the executable program of the cryptographic algorithm in the form of code source, while RAM 4 includes registers which can be updated for the storage of calculation results.
La carte à puce 1 comporte aussi une interface de communication 5 reliée au microprocesseur 2 pour permettre l'échange de données avec l'environnement extérieur. L'interface de communication 5 peut être du type "à contacts", étant dans ce cas formée d'un ensemble de plots de contacts destinés à se connecter à un contacteur d'un dispositif externe, tel qu'un lecteur de cartes, et/ou du type "sans contact". Dans ce dernier cas, l'interface de communication 5 comporte une antenne et des circuits de communication par voie hertzienne permettant un transfert de données par liaison sans fil. Cette liaison peut aussi permettre un transfert d'énergie d'alimentation des circuits de la carte 1.The smart card 1 also includes a communication interface 5 connected to the microprocessor 2 to allow the exchange of data with the external environment. The communication interface 5 can be of the "contact" type, being in this case formed by a set of contact pads intended to connect to a contactor of an external device, such as a card reader, and / or of the "contactless" type. In the latter case, the communication interface 5 comprises an antenna and over-the-air communication circuits allowing data transfer by wireless link. This link can also allow a transfer of power supply to the circuits of card 1.
Le procédé selon l'invention consiste à calculer yd au moyen d'une chaîne de n algorithmes d'exponentiation appliqués à n blocs de bits de d. On entend par algorithme de calcul d'exponentiation, une suite d'instructions permettant d'effectuer ce calcul ; comme on le verra par la suite dans un exemple, il y a plusieurs algorithmes possibles.The method according to the invention consists in calculating y d by means of a chain of n exponentiation algorithms applied to n blocks of bits of d. The expression exponentiation calculation algorithm is understood to mean a series of instructions allowing this calculation to be carried out; as we will see later in an example, there are several possible algorithms.
Cette chaîne de n algorithmes d'exponentiation Ai (i variant de 0 à n-1) est établie à partir de plusieurs algorithmes d'exponentiation que l'on met en mémoire préalablement au premier calcul de yd. Les algorithmes A ne sont pas nécessairement tous différents : certains peuvent être identiques. A chaque calcul de la valeur yd, par exemple à chaque fois que l'on effectue l'opération privée décrite précédemment pour l'algorithme RSA, on découpe comme représenté ci-dessous la clé d comportant K bits (la taille de d est K) , en n blocs O± (i varie de 0 à n- 1) de ri bits (0 ou 1) , n et r± étant des nombres entiers aléatoires, l<n<=K générés par exemple par la carte à puce au moyen d'un générateur 6 de nombres aléatoires représenté figure 1 :This chain of n exponentiation algorithms Ai (i varying from 0 to n-1) is established from several exponentiation algorithms that are stored before the first calculation of y d . The algorithms A are not necessarily all different: some may be identical. Each time the value y d is calculated, for example each time the private operation is carried out described above for the RSA algorithm, the key d comprising K bits (the size of d is K) is cut as shown below, into n blocks O ± (i varies from 0 to n- 1) of ri bits (0 or 1), n and r ± being random integers, l <n <= K generated for example by the smart card by means of a generator 6 of random numbers represented in FIG. 1:
d = dk dj do (représentation binaire de d)d = d k d j do (binary representation of d)
To ... r, ... rn_ι (nombre de bits de chaque bloc D)
Figure imgf000012_0001
avec D0=ro premiers bits de d, Dι=rχ bits suivant ceux du bloc D0,
To ... r, ... r n _ι (number of bits of each block D)
Figure imgf000012_0001
with D 0 = ro first bits of d, Dι = rχ bits following those of block D 0 ,
Di= ri bits suivant ceux des blocs D0I I ...I I Di_ι ,Di = ri bits following those of blocks D 0 II ... II Di_ι,
Dn_ι= rn_ι derniers bits de d, avec d= D0I I ...I I Dn_ι , le symbole II signifiant concaténé.D n _ι = r n _ι last bits of d, with d = D 0 II ... IID n _ι, the symbol II meaning concatenated.
Les blocs Di qui se suivent sont contigus. La clé d est lue de gauche à . droite ; on peut bien sûr tout aussi bien la lire de droite à gauche. De même on peut lire les bits d'un bloc de gauche à droite et ceux d'un autre bloc de droite à gauche.The following Di blocks are contiguous. The key d is read from left to. right; you can of course just as well read it from right to left. Similarly, you can read the bits of a block from left to right and those of another block from right to left.
On effectue ensuite le calcul d'exponentiation y au moyen de la chaîne de n algorithmes : - on calcule au moyen d'un algorithme o le calcul d'exponentiation de y à partir des r0 premiers bits de d et de y pour obtenir S0 que l'on mémorise :We then perform the exponentiation calculation y using the chain of n algorithms: - we calculate using an algorithm o the exponentiation calculation of y from the first r 0 bits of d and y to obtain S 0 that we memorize:
S0 = yD° on calcule au moyen d'un algorithme Ai le calcul d'exponentiation de y à partir des ri bits suivants de d, d'une fonction de So et de y pour obtenir Si que l'on mémorise :S 0 = y D ° we calculate by means of an algorithm Ai the computation of exponentiation of y from the following ri bits of d, of a function of So and of y to obtain Si which we memorize:
S1=yDo|Dl S 1 = y Do | Dl
- on calcule au moyen d'un algorithme Ai le calcul d'exponentiation de y à partir des ri bits suivants de d, d'une fonction de So et/ou de Si et/ou ..., et/ou de Si_ι, et de y pour obtenir Si que l'on mémorise :- the computation of exponentiation of y is calculated using an algorithm Ai from the following ri bits of d, of a function of So and / or of Si and / or ..., and / or of Si_ι, and from y to obtain If that one memorizes:
Figure imgf000013_0001
Figure imgf000013_0001
- on calcule au moyen d'un algorithme An-ι le calcul d'exponentiation de y à partir des rn_ι derniers bits de d, d'une fonction de S0 et/ou de Si et/ou ..., et/ou de Sn_2, et de y pour obtenir Sn-ι, le résultat recherché, que l'on mémorise :- the computation of exponentiation of y is calculated using an algorithm A n -ι from the r n _ι last bits of d, of a function of S 0 and / or of Si and / or ..., and / or of S n _ 2 , and of y to obtain S n -ι, the desired result, which is stored:
Figure imgf000013_0002
Figure imgf000013_0002
Selon l'algorithme A mis en œuvre, le calcul de S 1 s'effectue à partir notamment d'une fonction du résultat Si_ι de l'algorithme précédent sans utiliser toute la chaîne S0, ..., Si_2 des résultats précédents (ou d'une fonction des résultats précédents), ou encore à partir de quelques uns de ces résultats (ou d'une fonction de ces résultats) .According to the algorithm A implemented, the calculation of S 1 is carried out in particular from a function of the result Si_ι of the previous algorithm without using the entire chain S 0 , ..., Si_ 2 of the previous results ( or a function of the previous results), or from some of these results (or a function of these results).
Par ailleurs, la chaîne d'algorithme est de préférence déterminée de manière aléatoire pour chaque calcul de yd ; elle peut cependant être prédéterminée.Furthermore, the algorithm chain is preferably determined randomly for each calculation of y d ; however, it can be predetermined.
Ce procédé permet ainsi de se protéger dans le cas de la mise en œuvre d'un algorithme de cryptographie basé sur un calcul d'exponentiation du type yd.This method thus makes it possible to protect oneself in the case of the implementation of a cryptography algorithm based on an exponentiation calculation of the type y d .
En effet, les attaques à canaux cachés qui sont réalisées au terme de multiples mesures, consistent dans un premier temps, lors d'une phase d'apprentissage à identifier l'algorithme d'exponentiation utilisé. Pour ce faire, le fraudeur relance l'algorithme en changeant la clé. Connaissant cet algorithme, il peut alors identifier les bits de la véritable clé d.Indeed, the hidden channel attacks which are carried out after multiple measurements, consist initially, during a learning phase, of identifying the exponentiation algorithm used. To do this, the fraudster relaunches the algorithm by changing the key. Knowing this algorithm, he can then identify the bits of the real key d.
Selon l'invention, le calcul de yd n'est pas effectué de la même manière d'une fois sur l'autre : la décomposition de d en blocs D est déterminée de façon aléatoire d'une fois sur l'autre car le nombre n de blocs et leur taille ri sont des entiers aléatoires, les algorithmes de calcul d'exponentiation diffèrent les uns des autres (même si certains sont identiques, il y en a au moins deux qui diffèrent) et éventuellement, la chaîne d'algorithmes d'exponentiation varie également de façon aléatoire d'un calcul de yd à l'autre.According to the invention, the calculation of y d is not carried out in the same way once on the other: the decomposition of d into blocks D is determined randomly once on the other because the number n of blocks and their size ri are random integers, the exponentiation calculation algorithms differ from each other (even if some are identical, there are at least two that differ) and possibly, the chain of algorithms Exponentiation also varies randomly from one calculation of y d to another.
Il devient ainsi beaucoup plus difficile voire impossible d'identifier l'algorithme d'exponentiation utilisé et par conséquent de déterminer l'exposant secret. On va à présent illustrer le procédé précédemment décrit par l'exemple suivant qui consiste à réaliser le calcul d'exponentiation modulaire suivant : yd modulo p, d étant une clé de k bits et p étant un nombre premier.It thus becomes much more difficult if not impossible to identify the exponentiation algorithm used and therefore to determine the secret exponent. We will now illustrate the method previously described by the following example which consists in carrying out the following modular exponentiation calculation: y d modulo p, d being a key of k bits and p being a prime number.
On décompose la clé d en 2 blocs (n=2) , un bloc D0 de k-r bits et un bloc Di de r bits
Figure imgf000015_0001
Le calcul "yd modulo p" va donc s'effectuer au moyen de deux algorithmes A0 et i permettant d'obtenir respectivement S0 et Si avec Sι=yd modulo p.
We break the key d into 2 blocks (n = 2), a block D 0 of kr bits and a block Di of r bits
Figure imgf000015_0001
The calculation "y d modulo p" will therefore be carried out by means of two algorithms A 0 and i making it possible to obtain S 0 and Si respectively with Sι = y d modulo p.
L'algorithme choisi pour Ao est l'algorithme "Square and Always Multiply" qui " consiste à élever au carré et à multiplier dans tous les cas. Il s'agit, pour des exposants de même taille, d'un algorithme à temps constant et à code constant c'est-à-dire qui exécute toujours les mêmes instructions, quelle que soit la valeur de l'exposant manipulé ; il n'inclut pas d'instructions de test pouvant donner une information sur la valeur manipulée. Un tel algorithme à temps constant et à code constant est bien sécurisé mais il est coûteux en temps de calcul car il exécute parfois des opérations inutiles. L'algorithme choisi pour Ai est l'algorithme "Square and Multiply" qui consiste à élever au carré et à multiplier. Il ne s'agit pas d'un algorithme à temps constant, ni à code constant sauf si l'on rajoute artificiellement une instruction comme on le verra plus loin. C'est donc un algorithme moins sécurisé que le précédent mais plus rapide.The algorithm chosen for Ao is the "Square and Always Multiply" algorithm which " consists of squaring and multiplying in all cases. It is, for exponents of the same size, a constant time algorithm and with constant code, that is to say which always executes the same instructions, whatever the value of the manipulated exponent; it does not include test instructions which can give information on the value manipulated. constant time and constant code algorithm is very secure but it is costly in computation time because it sometimes performs unnecessary operations. The algorithm chosen for Ai is the "Square and Multiply" algorithm which consists in squaring and This is not a constant-time algorithm, nor a constant-code algorithm, unless you artificially add an instruction as we will see below. It is therefore an algorithm that is less secure than the previous one but faster .
On calcule donc d'abord So au moyen de Ao à partir de 1, y, des k-r premiers bits de d et de p selon la suite d'instructions suivante : RO≈lWe therefore first calculate So by means of Ao from 1, y, the first kr bits of d and p according to the following sequence of instructions: RO≈l
Pour i=k-l à r par pas de (-1) R1=R02 modulo p R0=Rl*y R0=R[complément de di]For i = kl to r in steps of (-1) R1 = R0 2 modulo p R0 = Rl * y R0 = R [complement of di]
FinPour S0=R0End For S 0 = R0
On rappelle que si di=0, le complément de di est 1 et R[complément de di]=Rl, et que si d=l, le complément de di est 0 et R [complément de di]=R0.Recall that if di = 0, the complement of di is 1 and R [complement of di] = Rl, and that if d = l, the complement of di is 0 and R [complement of di] = R0.
On enchaîne ensuite avec le calcul de Si (c'est-à- dire yd modulo p) au moyen de Ai à partir de So, y, des r bits suivants de d et de p selon la suite d'instructions suivante : R0=S0 We then continue with the calculation of Si (that is to say y d modulo p) by means of Ai from So, y, of the following r bits of d and of p according to the following sequence of instructions: R0 = S 0
Pour i=r-l à 0 par pas de (-1) R1=R02 si di=l alors R0=Rl*y modulo p sinon R0=R1 FinPour Sι=R0For i = rl to 0 in steps of (-1) R1 = R0 2 if di = l then R0 = Rl * y modulo p otherwise R0 = R1 End For Sι = R0
Pour que l'algorithme Al soit à code constant, il suffit de remplacer l'instruction R0=R1 par : R0=R1*1 modulo p.For the algorithm Al to be of constant code, it suffices to replace the instruction R0 = R1 by: R0 = R1 * 1 modulo p.
L'invention est valable pour les algorithmes cryptographiques utilisant des calculs d'exponentiation comme par exemple le calcul d'exponentiation modulaire (yd modulo p) dans le cas de l'algorithme de type RSA ou encore le calcul d'exponentiation sur une courbe elliptique où il est d'usage d'écrire l'exponentiation de façon additive. L'exponentiation se nomme alors multiplication scalaire : yb=y*...*y (b fois) devient b*y=y+...+y (b fois) . The invention is valid for cryptographic algorithms using exponentiation calculations such as for example the modular exponentiation calculation (y d modulo p) in the case of the RSA type algorithm or even the exponentiation calculation on a curve elliptical where it is customary to write the exponentiation additively. Exponentiation is then called scalar multiplication: y b = y * ... * y (b times) becomes b * y = y + ... + y (b times).

Claims

REVENDICATIONS
1. Procédé sécurisé ' de mise en œuvre, dans un composant électronique, " d'un algorithme de cryptographie utilisant des moyens de calcul destinés à effectuer des opérations d'exponentiation à la puissance d d'un nombre y (yd) , d étant un nombre entier de taille déterminée, caractérisé en ce qu'on mémorise plusieurs algorithmes de calcul d'exponentiation dans ledit composant électronique préalablement au premier calcul de la valeur yd, et en ce qu'il consiste à réaliser les étapes suivantes à chaque calcul de la valeur yd : a) on décompose le nombre d en n blocs Di de ri bits, i variant de 0 à n-1, n et les x± étant des entiers aléatoires, Kn<=taille de d, ro+...+rn_ι=taille de d et on considère parmi les algorithmes de calcul d'exponentiation mémorisés, une chaîne de n algorithmes i, b) on effectue au moyen d'un algorithme A0 et à partir des ro premiers bits de d et de y, le calcul1. Secure method of "implementing, in an electronic component, " a cryptography algorithm using calculation means intended to perform exponentiation operations with the power d of a number y (y d ), d being an integer of determined size, characterized in that several exponentiation calculation algorithms are stored in said electronic component prior to the first calculation of the value y d , and in that it consists in carrying out the following steps at each calculation of the value y d : a) the number d is broken down into n blocks Di of ri bits, i varying from 0 to n-1, n and the x ± being random integers, Kn <= size of d, ro +. .. + r n _ι = size of d and we consider among the stored exponentiation calculation algorithms, a chain of n algorithms i, b) we perform by means of an algorithm A 0 and from the first ro bits of d and y, the calculation
&o - y & o - y
et on mémorise le résultat So, c) on effectue au moyen d'un algorithme Aj et à partir des rj bits suivants de d, d'une fonction de S0 et/ou ... et/ou de Sj_ι, et de y, j variant de 1 à n-1, le calcul s, -yand the result So is memorized, c) is carried out by means of an algorithm Aj and from the following rj bits of d, a function of S 0 and / or ... and / or of S j _ι, and from y, j varying from 1 to n-1, the calculation s, -y
et on mémorise le résultat Sj, le résultat de yd correspondant à la valeur Sn_ι obtenue.and the result S j is stored, the result of y d corresponding to the value S n _ι obtained.
2. Procédé selon la revendication précédente, caractérisé en ce que parmi la chaîne des n algorithmes Ai, certains desdits algorithmes sont identiques.2. Method according to the preceding claim, characterized in that among the chain of n algorithms Ai, some of said algorithms are identical.
3. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la chaîne des n algorithmes i i variant de 0 à n-1, est établie de manière aléatoire.3. Method according to any one of the preceding claims, characterized in that the chain of n algorithms i i varying from 0 to n-1, is established randomly.
4. Procédé selon l'une quelconque des revendications 1 à 2, caractérisé en ce que la chaîne des n algorithmes i i variant de 0 à n-1, est prédéterminée .4. Method according to any one of claims 1 to 2, characterized in that the chain of n algorithms i i varying from 0 to n-1, is predetermined.
5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'algorithme de cryptographie est du type RSA.5. Method according to any one of the preceding claims, characterized in that the cryptography algorithm is of the RSA type.
6. Procédé selon la revendication précédente, caractérisé en ce que l'algorithme de type RSA est du type CRT.6. Method according to the preceding claim, characterized in that the RSA type algorithm is of the CRT type.
7. Composant électronique de sécurité, comprenant des moyens de calcul (2), une mémoire de programme (3) et une mémoire de travail (4) et des moyens de communication de données (5), caractérisé en ce qu'il met en œuvre le procédé de contre-mesure selon l'une quelconque des revendications précédentes, et en ce qu'il comprend un générateur (6) de nombres aléatoires et en ce que la mémoire de programme (3) comporte plusieurs algorithmes de calcul d'exponentiation.7. Electronic security component, comprising calculation means (2), a program memory (3) and a working memory (4) and means for data communication (5), characterized in that it implements the countermeasure method according to any one of the preceding claims, and in that it comprises a generator (6) of random numbers and in that the program memory (3) includes several algorithms for calculating exponentiation.
8. Carte à puce comprenant un composant électronique selon la revendication précédente. 8. Smart card comprising an electronic component according to the preceding claim.
PCT/FR2002/002963 2001-09-07 2002-08-29 Secure method for using a cryptographic algorithm and corresponding component WO2003025739A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0111602A FR2829646B1 (en) 2001-09-07 2001-09-07 SECURE METHOD FOR IMPLEMENTING A CRYPTOGRAPHIC ALGORITHM AND CORRESPONDING COMPONENT
FR01/11602 2001-09-07

Publications (1)

Publication Number Publication Date
WO2003025739A1 true WO2003025739A1 (en) 2003-03-27

Family

ID=8867069

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2002/002963 WO2003025739A1 (en) 2001-09-07 2002-08-29 Secure method for using a cryptographic algorithm and corresponding component

Country Status (2)

Country Link
FR (1) FR2829646B1 (en)
WO (1) WO2003025739A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2864390B1 (en) * 2003-12-19 2006-03-31 Gemplus Card Int CRYPTOGRAPHIC METHOD OF MODULAR EXPONENTIATION PROTECTED AGAINST DPA ATTACKS.

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064740A (en) * 1997-11-12 2000-05-16 Curiger; Andreas Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
WO2000067410A1 (en) * 1999-04-29 2000-11-09 Motorola Inc. Method of preventing power analysis attacks on microelectronic assemblies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064740A (en) * 1997-11-12 2000-05-16 Curiger; Andreas Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
WO2000067410A1 (en) * 1999-04-29 2000-11-09 Motorola Inc. Method of preventing power analysis attacks on microelectronic assemblies

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MENEZES ALFRED J ET AL: "Handbook of Cryptography", HANDBOOK OF APPLIED CRYPTOGRAPHY, CRC PRESS SERIES ON DISCRETE MATHEMATICES AND ITS APPLICATIONS, BOCA RATON, FL, CRC PRESS, US, 1997, pages 613 - 629, XP002188328, ISBN: 0-8493-8523-7 *

Also Published As

Publication number Publication date
FR2829646A1 (en) 2003-03-14
FR2829646B1 (en) 2004-01-16

Similar Documents

Publication Publication Date Title
EP0766894A1 (en) Process for generating electronic signatures, in particular for smart cards
EP1807967B1 (en) Method for secure delegation of calculation of a bilinear application
EP1652336B1 (en) Method for the secure application of a cryptographic algorithm of the rsa type and corresponding component
EP1166496A1 (en) Authentication and signature method for messages using reduced size of binary units of information content and corresponding systems
EP1159797B1 (en) Countermeasure method in an electronic component using a secret key cryptographic algorithm
CA2732444A1 (en) Integrated circuit protected against a horizontal auxiliary channel analysis
WO2007006810A1 (en) Cryptographic method for securely implementing an exponentiation and related component
WO2011144554A1 (en) Method of obtaining encryption keys, corresponding terminal, server, and computer program products.
EP1224765B1 (en) Countermeasure method in an electronic component which uses an rsa-type public key cryptographic algorithm
EP1086547B1 (en) Method for making secure one or several electronic installations using a cryptographic secret key algorithm, and electronic installation
EP1994465A1 (en) Method of securing a calculation of an exponentiation or a multiplication by a scalar in an electronic device
WO2003014916A1 (en) Secure method for performing a modular exponentiation operation
EP1433282B1 (en) Method for implementing in an electronic component a cryptographic algorithm for finding the public exponent
WO2003025739A1 (en) Secure method for using a cryptographic algorithm and corresponding component
EP1436792B1 (en) Authentication protocol with memory integrity verification
WO2001084491A2 (en) Countermeasure method in a microcircuit and smart card comprising said microcircuit
EP1254408A2 (en) Modular exponential algorithm in an electronic component using a public key encryption algorithm
EP1352494B1 (en) Device and method for executing a cryptographic algorithm
FR2818846A1 (en) Method for protecting electronic component executing cryptographic algorithm against current measurement attack, comprises factorization of exponential in algorithm and permutation of the factors
EP1442556B1 (en) Method for secure operation of a functional module in an electronic component and corresponding component
WO1998051038A1 (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
WO2007051770A1 (en) Method for securely handling data during the running of cryptographic algorithms on embedded systems
WO2002050658A1 (en) Countermeasure methods in an electronic component using an rsa-type public key encryption algorithm
EP1792435A1 (en) Method for securing cryptographic processing by means of decoys
FR2733378A1 (en) Electronic Signature Method for Smart Cards

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BY BZ CA CH CN CO CR CU CZ DE DM DZ EC EE ES FI GB GD GE GH HR HU ID IL IN IS JP KE KG KP KR LC LK LR LS LT LU LV MA MD MG MN MW MX MZ NO NZ OM PH PL PT RU SD SE SG SI SK SL TJ TM TN TR TZ UA UG US UZ VC VN YU ZA ZM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZM ZW AM AZ BY KG KZ RU TJ TM AT BE BG CH CY CZ DK EE ES FI FR GB GR IE IT LU MC PT SE SK TR BF BJ CF CG CI GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP