FR2800478A1 - Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique - Google Patents
Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique Download PDFInfo
- Publication number
- FR2800478A1 FR2800478A1 FR9913507A FR9913507A FR2800478A1 FR 2800478 A1 FR2800478 A1 FR 2800478A1 FR 9913507 A FR9913507 A FR 9913507A FR 9913507 A FR9913507 A FR 9913507A FR 2800478 A1 FR2800478 A1 FR 2800478A1
- Authority
- FR
- France
- Prior art keywords
- values
- securing
- modular exponentiation
- secret
- algorithm
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000004458 analytical method Methods 0.000 title description 9
- 238000004364 calculation method Methods 0.000 claims abstract description 30
- 238000004422 calculation algorithm Methods 0.000 claims description 30
- 230000010365 information processing Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 8
- 230000015654 memory Effects 0.000 description 6
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000005670 electromagnetic radiation Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- VBMOHECZZWVLFJ-GXTUVTBFSA-N (2s)-2-[[(2s)-6-amino-2-[[(2s)-6-amino-2-[[(2s,3r)-2-[[(2s,3r)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-2-[[(2s)-2,6-diaminohexanoyl]amino]-5-(diaminomethylideneamino)pentanoyl]amino]propanoyl]amino]hexanoyl]amino]propanoyl]amino]hexan Chemical compound NC(N)=NCCC[C@@H](C(O)=O)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCCN)NC(=O)[C@H]([C@@H](C)O)NC(=O)[C@H]([C@H](O)C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCN=C(N)N)NC(=O)[C@@H](N)CCCCN VBMOHECZZWVLFJ-GXTUVTBFSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 108010068904 lysyl-arginyl-alanyl-lysyl-alanyl-lysyl-threonyl-threonyl-lysyl-lysyl-arginine Proteins 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/723—Modular exponentiation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7242—Exponent masking, i.e. key masking, e.g. A**(e+r) mod n; (k+r).P
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé de sécurisation d'un ensemble électronique mettant en oeuvre un processus de calcul cryptographique faisant intervenir une exponentiation modulaire d'une grandeur (x), ladite exponentiation modulaire utilisant un exposant secret (d), caractérisé en ce que l'on décompose ledit exposant secret en une pluralité de k valeurs imprévisibles (d1 , d2 , dk ) dont la somme est égale audit exposant secret.
Description
<Desc/Clms Page number 1>
PROCEDE DE SECURISATION D'UN ENSEMBLE ELECTRONIQUE DE CRYPTOGRAPHIE A BASE D'EXPONENTIATION MODULAIRE CONTRE LES ATTAQUES PAR ANALYSE PHYSIQUE La présente invention concerne un procédé de sécurisation d'un ensemble électronique mettant en #uvre un algorithme faisant intervenir une exponentiation modulaire, dans laquelle l'exposant est secret. Plus précisément, le procédé vise à réaliser une version d'un tel algorithme qui ne soit pas vulnérable face à un certain type d'attaques physiques - dites analyse d'énergie électrique différentielle ou analyse d'énergie électrique différentielle de haut niveau (Differential Power Analysis ou High-Order Differential Power Analysis, en langage anglo-saxon, en abrégé DPA ou HO-DPA) qui cherchent à obtenir des informations sur la clé secrète à partir de l'étude de la consommation électrique de l'ensemble électronique au cours de l'exécution du calcul.
Les algorithmes cryptographiques considérés ici utilisent une clé secrète pour calculer une information de sortie en fonction d'une information d'entrée ; il peut s'agir d'une opération de chiffrement, de déchiffrement ou de signature ou de vérification de signature, ou d'authentification ou de non-répudiation ou d'échange de clé. Ils sont construits de manière à ce qu'un attaquant, connaissant les entrées et les sorties, ne puisse en pratique déduire aucune information sur la clé secrète elle-même.
On s'intéresse donc à une classe plus large que celle traditionnellement désignée par l'expression algorithmes à clé secrète ou algorithmes symétriques. En particulier, tout ce qui est décrit dans la présente demande de brevet s'applique également aux algorithmes dits à clé publique ou algorithmes asymétriques, qui comportent en fait deux clés : l'une publique, et l'autre, privée, non divulguée, cette dernière étant celle visée par les attaques décrites ci-dessous.
Les attaques de type Analyse de Puissance Electrique, développées par Paul Kocher et Cryptographie Research (Confer document Introduction to Differential Power Analysis and related Attacks by Paul Kocher, Joshua Jaffe, and Benjamin Jun,
<Desc/Clms Page number 2>
Cryptography Research, 870 Market St., Suite 1008, San Francisco, CA 94102, édition du document HTML à l'adresse URL : http://www.cryptography.com/dpa/technical/index.html) partent de la constatation qu'en réalité l'attaquant peut acquérir des informations, autres que la simple donnée des entrées et des sorties, lors de l'exécution du calcul, comme par exemple la consommation électrique du microcontrôleur ou le rayonnement électromagnétique émis par le circuit.
L'analyse d'énergie électrique différentielle est une attaque permettant d'obtenir des informations sur la clé secrète contenue dans l'ensemble électronique, en effectuant une analyse statistique des enregistrements de consommation électrique effectués sur un grand nombre de calculs avec cette même clé.
@ Cette attaque ne nécessite aucune connaissance sur la consommation électrique individuelle de chaque instruction, ni sur la position dans le temps de chacune de ces instructions. Elle s'applique de la même manière si on suppose que l'attaquant connaît des sorties de l'algorithme et les courbes de consommation correspondantes. Elle repose uniquement sur l'hypothèse fondamentale selon laquelle : Hypothèse fondamentale : Il existe une variable intermédiaire, apparaissant dans le cours du calcul de l'algorithme, telle que la connaissance de quelques bits de clé, en pratique moins de 32 bits, permet de décider si deux entrées, respectivement deux sorties, donnent ou non la même valeurpour cette variable.
Les attaques dites par analyse d'énergie électrique de haut niveau sont une généralisation de l'attaque DPA décrite précédemment. Elles peuvent utiliser plusieurs sources d'information différentes : outre la consommation, elles peuvent mettre en jeu les mesures de rayonnement électromagnétique, de température, etc. et mettre en #uvre des traitements statistiques plus sophistiqués que la simple notion de moyenne, des variables intermédiaires moins élémentaires qu'un simple bit ou un simple octet.
<Desc/Clms Page number 3>
Néanmoins, elles reposent exactement sur la même hypothèse fondamentale que la DPA.
Le procédé, objet de la présente invention, a pour objet la suppression des risques d'attaques DPA ou HO-DPA d'ensembles ou systèmes électroniques de cryptographie à clé secrète ou privée, faisant intervenir une exponentiation modulaire, dans laquelle l'exposant est secret.
Un autre objet de la présente invention est en conséquence une modification du processus de calcul cryptographique mis en #uvre par les systèmes électroniques de cryptographie protégés de manière que l'hypothèse fondamentale précitée ne soit plus vérifiée, à savoir qu'aucune variable intermédiaire ne dépend de la consommation d'un sous-ensemble aisément accessible de la clé secrète ou privée, les attaques de type DPA ou HO-DPA étant ainsi rendues inopérantes.
Premier exemple: l'algorithme RSA Le RSA est le plus célèbre des algorithmes cryptographiques asymétriques. Il a été développé par Rivest, Shamir et Adleman en 1978. Pour une description plus détaillée de cet algorithme, on pourra utilement se reporter au document ci-après : # R.L. Rivest, A. Shamir, L.M. Adleman, A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, 21, n 2, 1978, pp. 120- 126, ou aux documents suivants : # ISO/IEC 9594-8/ITU-T X.509, Information Technology - Open Systems Interconnection - The Directory: Authentication Framework; # ANSI X9.31-1, American National Standard, Public-Key Cryptography Using Reversible Algorithms for the Financial Services Industry, 1993; # PKCS #1, RSA Encryption Standard, version 2,1998, disponible à l'adresse suivante : ftp://ftp.rsa.com/pub/pkcs/doc/pkcs-lv2.doc.
<Desc/Clms Page number 4>
L'algorithme RSA utilise un nombre entier n qui est le produit de deux grands nombres
premiers p et q, et un nombre entier e, premier avec ppem(p-1, q-1), et tel que e ,e :1: 1 mod ppcm(p-1,q-1). Les entiers n et e constituent la clé publique. Le calcul en clé publique fait appel à la fonction g de Z/nZ dans Z/nZ définie par g(x)=xe mod n. Le
calcul en clé secrète fait appel à la fonction g7'(y) =. )jd mod n, où d est l'exposant secret (appelé aussi clé secrète, ou privée) défini par ed -= 1 mod ppcm(p-l,q-1). Les attaques de type DPA ou HO-DPA font peser une menace sur les mises en #uvre classiques de l'algorithme RSA. En effet , celles-ci utilisent très souvent le principe dit de square and multiply en langage anglo-saxon pour effectuer le calcul de xd mod n.
premiers p et q, et un nombre entier e, premier avec ppem(p-1, q-1), et tel que e ,e :1: 1 mod ppcm(p-1,q-1). Les entiers n et e constituent la clé publique. Le calcul en clé publique fait appel à la fonction g de Z/nZ dans Z/nZ définie par g(x)=xe mod n. Le
calcul en clé secrète fait appel à la fonction g7'(y) =. )jd mod n, où d est l'exposant secret (appelé aussi clé secrète, ou privée) défini par ed -= 1 mod ppcm(p-l,q-1). Les attaques de type DPA ou HO-DPA font peser une menace sur les mises en #uvre classiques de l'algorithme RSA. En effet , celles-ci utilisent très souvent le principe dit de square and multiply en langage anglo-saxon pour effectuer le calcul de xd mod n.
Ce principe consiste à écrire la décomposition
d = b"r, 2m~' + b,"~2.2"'-2 + ... + b, 2' + bo-2 de l'exposant secret d en base 2, puis d'effectuer le calcul de la manière suivante : 1. z # 1 ; pour i allant de m-1 jusqu'à 0 faire : 2. z # z2 mod n ;
3 . si b, = 1 alors z - z x x mod n. Dans ce calcul, on constate que parmi les valeurs successives prises par la variable z, les premières ne dépendent que de quelques bits de la clé secrète d L'hypothèse fondamentale permettant l'attaque DPA est donc réalisée. On peut ainsi deviner par exemple les 10 bits de poids fort de d en s'intéressant aux mesures de consommation sur la partie de l'algorithme correspondant à i allant de m-1 à m-10. On peut ensuite continuer l'attaque en utilisant les mesures de consommation sur la partie de l'algorithme correspondant à i allant de m-11 à m-20, ce qui permet de trouver les 10 bits suivants de d, et ainsi de suite. On trouve finalement tous les bits de l'exposant secret d.
d = b"r, 2m~' + b,"~2.2"'-2 + ... + b, 2' + bo-2 de l'exposant secret d en base 2, puis d'effectuer le calcul de la manière suivante : 1. z # 1 ; pour i allant de m-1 jusqu'à 0 faire : 2. z # z2 mod n ;
3 . si b, = 1 alors z - z x x mod n. Dans ce calcul, on constate que parmi les valeurs successives prises par la variable z, les premières ne dépendent que de quelques bits de la clé secrète d L'hypothèse fondamentale permettant l'attaque DPA est donc réalisée. On peut ainsi deviner par exemple les 10 bits de poids fort de d en s'intéressant aux mesures de consommation sur la partie de l'algorithme correspondant à i allant de m-1 à m-10. On peut ensuite continuer l'attaque en utilisant les mesures de consommation sur la partie de l'algorithme correspondant à i allant de m-11 à m-20, ce qui permet de trouver les 10 bits suivants de d, et ainsi de suite. On trouve finalement tous les bits de l'exposant secret d.
<Desc/Clms Page number 5>
Une première méthode de sécurisation, et ses inconvénients Une méthode classique (proposée par Ronald Rivest en 1995) pour protéger l'algorithme RSA contre les attaques de type DPA consiste à utiliser un principe de " blinding " (camouflage). On utilise le fait que :
xd mod n = (x x rel x r-1 mod rt Ainsi le calcul de y = xd mod n se décompose en quatre étapes : # On utilise un générateur aléatoire pour obtenir une valeur r ; # On calcule u = x x re mod n ;
#On calcule v = ud mod n ; #On calcule : y v x r-1 mod n. L'inconvénient de cette méthode est qu'elle oblige, pour chaque calcul, à calculer l'inverse modulaire r-1 de la valeur aléatoire r, cette opération étant en général coûteuse en temps (la durée d'un tel calcul est du même ordre que celle d'une exponentiation modulaire telle que ud mod n). Par conséquent, cette nouvelle implémentation (protégée contre les attaques DPA) du calcul de xd mod n est environ deux fois plus lente que l'implémentation initiale (non protégée contre les attaques DPA). En d'autres termes, cette protection du RSA contre les attaques DPA accroît le temps de calcul de 100% environ (en supposant que l'exposant public e est très petit, par exemple e=3 ; si l'exposant e est plus grand, ce temps de calcul est encore plus grand).
xd mod n = (x x rel x r-1 mod rt Ainsi le calcul de y = xd mod n se décompose en quatre étapes : # On utilise un générateur aléatoire pour obtenir une valeur r ; # On calcule u = x x re mod n ;
#On calcule v = ud mod n ; #On calcule : y v x r-1 mod n. L'inconvénient de cette méthode est qu'elle oblige, pour chaque calcul, à calculer l'inverse modulaire r-1 de la valeur aléatoire r, cette opération étant en général coûteuse en temps (la durée d'un tel calcul est du même ordre que celle d'une exponentiation modulaire telle que ud mod n). Par conséquent, cette nouvelle implémentation (protégée contre les attaques DPA) du calcul de xd mod n est environ deux fois plus lente que l'implémentation initiale (non protégée contre les attaques DPA). En d'autres termes, cette protection du RSA contre les attaques DPA accroît le temps de calcul de 100% environ (en supposant que l'exposant public e est très petit, par exemple e=3 ; si l'exposant e est plus grand, ce temps de calcul est encore plus grand).
Une deuxième méthode : le procédé de la présente invention Selon l'invention, un procédé de sécurisation d'un ensemble électronique mettant en #uvre un processus de calcul cryptographique faisant intervenir une exponentiation modulaire d'une grandeur (x), ladite exponentiation modulaire utilisant un exposant secret (d), est caractérisé en ce que l'on décompose ledit exposant secret en une
<Desc/Clms Page number 6>
pluralité de k valeurs imprévisibles (d1 ,d2 ,dk) dont la somme est égale audit exposant secret.
Avantageusement, lesdites valeurs (di ,d2 ,...... ,dk ) sont obtenues de la manière suivante : a) (k-1) valeurs sont obtenues au moyen d'un générateur aléatoire ; b) la dernière valeur est obtenue par différence entre l'exposant secret et les (k-1) valeurs.
Avantageusement, lesdites valeurs (di ,d2 ,...... ,dk ) sont obtenues de la manière suivante : a) (k-1) valeurs sont obtenues au moyen d'un générateur aléatoire ; b) la dernière valeur est obtenue par différence entre l'exposant secret et les (k-1) valeurs.
Avantageusement, le calcul de l'exponentiation modulaire est effectué de la manière suivante : a) pour chacune desdites k valeurs, on élève la grandeur (x) à un exposant comprenant ladite valeur pour obtenir un résultat, un ensemble de résultats étant ainsi obtenus ; b) on calcule un produit des résultats obtenus à l'étape a).
Avantageusement, au moins l'une desdites (k-1) valeurs obtenues au moyen d'un générateur aléatoire a une longueur supérieure ou égale à 64 bits.
Des détails et avantages de la présente invention apparaîtront au cours de la description suivante de quelques modes d'exécution préférés mais non limitatifs, en regard de la figure unique annexée, représentant une carte à puce.
Selon l'invention, on utilise le fait que :
si d = dl + d2, alors xd mod n = xd' x xd2 mod n Ainsi le calcul de y = xd mod n se décompose en cinq étapes : # On utilise un générateur aléatoire pour obtenir une valeur d1 ; # On calcule : d2=d-d1; # On calcule :u xd1 mod n ;
si d = dl + d2, alors xd mod n = xd' x xd2 mod n Ainsi le calcul de y = xd mod n se décompose en cinq étapes : # On utilise un générateur aléatoire pour obtenir une valeur d1 ; # On calcule : d2=d-d1; # On calcule :u xd1 mod n ;
<Desc/Clms Page number 7>
# On calcule : v = xd2 mod n ; # On calcule : y u x v mod n.
L'avantage est que, de cette manière, il n'y a pas d'inverse modulaire à calculer. En général, le temps de calcul d'une' exponentiation modulaire est proportionnel à la taille de l'exposant. Ainsi si on note a le rapport entre la taille de dl et la taille de d2, on se rend compte que le temps total du calcul dans cette nouvelle implémentation (protégée contre les attaques DPA) est environ (I+a) fois le temps de calcul dans l'implémentation initiale (non protégée contre les attaques DPA).
Notons que, pour obtenir une valeur di non prédictible, il est nécessaire que sa taille soit au moins de 64 bits.
Le procédé ainsi décrit rend inopérantes les attaques de type DPA ou HO-DPA décrites précédemment. En effet, pour décider si deux entrées (respectivement deux sorties) de l'algorithme donnent ou non la même valeur pour une variable intermédiaire apparaissant au cours du calcul, il ne suffit plus de connaître les bits de clé mis en jeu. Il faut également connaître la décomposition de la clé secrète d en k valeurs d1, d2, ..., dk telles que d=dl+d2+...+dk. Si on suppose que cette décomposition est secrète, et qu'au moins une des k valeurs a une taille d'au moins 64 bits, l'attaquant ne peut pas prévoir les valeurs de d1, ..., dk, et donc l'hypothèse fondamentale, qui permettait de mettre en oeuvre une attaque de type DPA ou HO-DPA, n'est plus vérifiée.
Exemples : 1. Si n a une longueur de 512 bits, en choisissant de prendre une valeur aléatoire d1 de 64 bits, on obtient [alpha]=1/8, ce qui fait que cette protection du RSA contre les attaques DPA accroît le temps de calcul de 12. 5 % environ.
2. Si n a une longueur de 1024 bits, en choisissant de prendre une valeur aléatoire d1 de 64 bits, on obtient a=1116, ce qui fait que cette protection du RSA contre les attaques DPA accroît le temps de calcul de 6.25% environ.
<Desc/Clms Page number 8>
Deuxième exemple : l'algorithme de Rabin Nous considérons ici l'algorithme cryptographique asymétrique développé par Rabin en 1979. Pour une description plus détaillée de cet algorithme, on pourra utilement se reporter au document suivant : # M. O. Rabin, Digitized Signatures and Public-Key Functions as Intractable as Factorization, Technical Report LCS/TR-212, M.I.T. Laboratory for Computer Science, 1979.
L'algorithme de Rabin utilise un nombre entier n qui est le produit de deux grands nombres premiers/? et q, vérifiant en outre les deux conditions suivantes : # p est congru à 3 modulo 8 ; # q est congru à 7 modulo 8.
Le calcul en clé publique fait appel à la fonction g de ZlnZ dans Z/nZ définie par g(x)=x2 mod n. Le calcul en clé secrète fait appel à la fonction g'(y)=yd mod n, où d est
l'exposant secret (appelé aussi clé secrète, ou privée) défini par d=((p-I)(q-1)l4+I)l2.
l'exposant secret (appelé aussi clé secrète, ou privée) défini par d=((p-I)(q-1)l4+I)l2.
La fonction mise en jeu par le calcul en clé secrète étant exactement la même que celle utilisée par l'algorithme RSA, les mêmes attaques DPA ou HO-DPA sont applicables et font peser les mêmes menaces sur l'algorithme de Rabin.
Sécurisation de l'algorithme Comme la fonction est exactement la même que celle du RSA, le procédé de sécurisation décrit dans le cadre du RSA s'applique de la même manière au cas de l'algorithme de Rabin. L'accroissement du temps de calcul provoqué par l'application de ce procédé est également le même que dans le cas de l'algorithme RSA.
L'invention peut être mise en oeuvre dans tout ensemble électronique effectuant un calcul cryptographique faisant intervenir une exponentiation modulaire, notamment une carte à puce 8 selon la figure unique. La puce inclut des moyens de traitement de
<Desc/Clms Page number 9>
l'information 9, reliés d'un côté à une mémoire non volatile 10 et à une mémoire volatile de travail RAM 11, et reliés d'un autre côté à des moyens 12 pour coopérer avec un dispositif de traitement de l'information. La mémoire non volatile 10 peut comprendre une partie non modifiable ROM et une partie modifiable EPROM, EEPROM, ou constituée de mémoire RAM du type "flash" ou FRAM (cette dernière étant une mémoire RAM ferromagnétique), c'est-à-dire présentant les caractéristiques d'une mémoire EEPROM avec en outre des temps d'accès identiques à ceux d'une RAM classique.
En tant que puce, on pourra notamment utiliser un microprocesseur autoprogrammable à mémoire non volatile, tel que décrit dans le brevet américain n 4. 382.279 au nom de la Demanderesse. Dans une variante, le microprocesseur de la puce est remplacé - ou tout du moins complété - par des circuits logiques implantés dans une puce à semi-conducteurs. En effet, de tels circuits sont aptes à effectuer des calculs, notamment d'authentification et de signature, grâce à de l'électronique câblée, et non microprogrammée. Ils peuvent notamment être de type ASIC (de l'anglais Application Specific Integrated Circuit ). Avantageusement, la puce sera conçue sous forme monolithique.
Claims (7)
- REVENDICATIONS 1. Procédé de sécurisation d'un ensemble électronique mettant en #uvre un processus de calcul cryptographique faisant intervenir une exponentiation modulaire d'une grandeur (x), ladite exponentiation modulaire utilisant un exposant secret (d), caractérisé en ce que l'on décompose ledit exposant secret en une pluralité de k valeurs imprévisibles (d1 ,d2 ,...... ,dk) dont la somme est égale audit exposant secret.
- 2. Procédé selon la revendication 1, caractérisé en ce que lesdites valeurs (d1 ,d2 dk) sont obtenues de la manière suivante : a) (k-1) valeurs sont obtenues au moyen d'un générateur aléatoire ; b) la dernière valeur est obtenue par différence entre l'exposant secret et les (k-1) valeurs.
- 3. Procédé selon la revendication 1, caractérisé en ce que le calcul de l'exponentiation modulaire est effectué de la manière suivante : a) pour chacune desdites k valeurs, on élève la grandeur (x) à un exposant comprenant ladite valeur pour obtenir un résultat, un ensemble de résultats étant ainsi obtenus ; b) on calcule un produit des résultats obtenus à l'étape a).
- 4. Procédé selon la revendication 1, caractérisé en ce qu'au moins l'une desdites (k-1) valeurs obtenues au moyen d'un générateur aléatoire a une longueur supérieure ou égale à 64 bits.
- 5. Utilisation du procédé selon la revendication 1 dans une carte à puce comportant des moyens de traitement de l'information.
- 6. Utilisation du procédé selon la revendication 1 pour la sécurisation d'un processus de calcul cryptographique utilisant l'algorithme RSA.<Desc/Clms Page number 11>
- 7. Utilisation du procédé selon la revendication 1 pour la sécurisation d'un processus de calcul cryptographique utilisant l'algorithme de Rabin.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9913507A FR2800478B1 (fr) | 1999-10-28 | 1999-10-28 | Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique |
US09/869,435 US6973190B1 (en) | 1999-10-28 | 2000-10-26 | Method for protecting an electronic system with modular exponentiation-based cryptography against attacks by physical analysis |
PCT/FR2000/002978 WO2001031436A1 (fr) | 1999-10-28 | 2000-10-26 | Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique |
EP00971508A EP1639447A1 (fr) | 1999-10-28 | 2000-10-26 | Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique |
JP2001533507A JP2003513491A (ja) | 1999-10-28 | 2000-10-26 | 物理的分析によるハッキングに対する母数指数化に基づく電子暗号ユニットの安全保護方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9913507A FR2800478B1 (fr) | 1999-10-28 | 1999-10-28 | Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2800478A1 true FR2800478A1 (fr) | 2001-05-04 |
FR2800478B1 FR2800478B1 (fr) | 2001-11-30 |
Family
ID=9551481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9913507A Expired - Fee Related FR2800478B1 (fr) | 1999-10-28 | 1999-10-28 | Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique |
Country Status (5)
Country | Link |
---|---|
US (1) | US6973190B1 (fr) |
EP (1) | EP1639447A1 (fr) |
JP (1) | JP2003513491A (fr) |
FR (1) | FR2800478B1 (fr) |
WO (1) | WO2001031436A1 (fr) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3926532B2 (ja) * | 2000-03-16 | 2007-06-06 | 株式会社日立製作所 | 情報処理装置、情報処理方法、及びカード部材 |
FR2810139B1 (fr) * | 2000-06-08 | 2002-08-23 | Bull Cp8 | Procede de securisation de la phase de pre-initialisation d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede |
FR2818772A1 (fr) * | 2000-12-21 | 2002-06-28 | Bull Cp8 | Procede de securisation d'un operateur logique ou mathematique implante dans un module electronique a microprocesseur, ainsi que le module electronique et le systeme embarque associes |
FR2820576B1 (fr) * | 2001-02-08 | 2003-06-20 | St Microelectronics Sa | Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage |
FR2823327B1 (fr) * | 2001-04-09 | 2003-08-08 | Gemplus Card Int | Dispositif destine a realiser des calculs d'exponentiation securisee et utilisation d'un tel dispositif |
GB0126317D0 (en) * | 2001-11-02 | 2002-01-02 | Comodo Res Lab Ltd | Improvements in and relating to cryptographic methods and apparatus in which an exponentiation is used |
DE10222212A1 (de) * | 2002-05-16 | 2003-12-04 | Giesecke & Devrient Gmbh | Ausspähungsgeschützte modulare Inversion |
EP1398690A1 (fr) * | 2002-09-13 | 2004-03-17 | Schlumberger Systemes SA | Procédé et système de génération de signature |
DE10304451B3 (de) * | 2003-02-04 | 2004-09-02 | Infineon Technologies Ag | Modulare Exponentiation mit randomisiertem Exponenten |
FR2864390B1 (fr) * | 2003-12-19 | 2006-03-31 | Gemplus Card Int | Procede cryptographique d'exponentiation modulaire protege contre les attaques de type dpa. |
FR2887351A1 (fr) * | 2005-06-16 | 2006-12-22 | St Microelectronics Sa | Protection d'un calcul d'exponentiation modulaire effectue par un circuit integre |
JP5179358B2 (ja) | 2005-06-29 | 2013-04-10 | イルデト アイントホーフェン ベー フェー | 攻撃又は解析に対してデータ処理装置を保護するための装置及び方法 |
JP4970279B2 (ja) * | 2005-10-31 | 2012-07-04 | パナソニック株式会社 | セキュア処理装置、セキュア処理方法、難読化秘密情報埋め込み方法、プログラム、記憶媒体および集積回路 |
EP1949292A1 (fr) * | 2005-11-04 | 2008-07-30 | Gemplus SA. | Procede securise de manipulations de donnees lors de l'execution d'algorithmes cryptographiques sur systemes embarques |
EP2669789A3 (fr) | 2008-05-07 | 2014-06-25 | Irdeto Corporate B.V. | Obscurcissement d'exposant |
JP5407352B2 (ja) * | 2009-01-19 | 2014-02-05 | 富士通株式会社 | 復号処理装置、復号処理プログラム、復号処理方法 |
US8635467B2 (en) | 2011-10-27 | 2014-01-21 | Certicom Corp. | Integrated circuit with logic circuitry and multiple concealing circuits |
US8334705B1 (en) | 2011-10-27 | 2012-12-18 | Certicom Corp. | Analog circuitry to conceal activity of logic circuitry |
CN102521544B (zh) * | 2011-12-26 | 2014-09-10 | 飞天诚信科技股份有限公司 | 一种在cpu中抗能量攻击的模幂运算的实现方法 |
US10181944B2 (en) | 2015-06-16 | 2019-01-15 | The Athena Group, Inc. | Minimizing information leakage during modular exponentiation and elliptic curve point multiplication |
FR3094522B1 (fr) * | 2019-03-29 | 2021-11-19 | St Microelectronics Rousset | Protection d’un calcul itératif |
US11249726B2 (en) | 2019-09-10 | 2022-02-15 | Intel Corporation | Integrated circuits with modular multiplication circuitry |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998052319A1 (fr) * | 1997-05-12 | 1998-11-19 | Yeda Research And Development Co. Ltd. | Procede et dispositif ameliores permettant de proteger les logiques de cles publiques contre les attaques basees sur la sequence des operations et les fautes |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978482A (en) * | 1995-08-21 | 1999-11-02 | International Business Machines Corporation | Method and system for protection of digital information |
US6748410B1 (en) * | 1997-05-04 | 2004-06-08 | M-Systems Flash Disk Pioneers, Ltd. | Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication |
US6108425A (en) * | 1997-06-30 | 2000-08-22 | International Business Machines Corporation | Method and apparatus for controlling the configuration of a cryptographic processor |
US6304658B1 (en) * | 1998-01-02 | 2001-10-16 | Cryptography Research, Inc. | Leak-resistant cryptographic method and apparatus |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6285761B1 (en) * | 1998-03-04 | 2001-09-04 | Lucent Technologies, Inc. | Method for generating pseudo-random numbers |
US6307938B1 (en) * | 1998-07-10 | 2001-10-23 | International Business Machines Corporation | Method, system and apparatus for generating self-validating prime numbers |
US6490357B1 (en) * | 1998-08-28 | 2002-12-03 | Qualcomm Incorporated | Method and apparatus for generating encryption stream ciphers |
-
1999
- 1999-10-28 FR FR9913507A patent/FR2800478B1/fr not_active Expired - Fee Related
-
2000
- 2000-10-26 JP JP2001533507A patent/JP2003513491A/ja active Pending
- 2000-10-26 WO PCT/FR2000/002978 patent/WO2001031436A1/fr active Application Filing
- 2000-10-26 EP EP00971508A patent/EP1639447A1/fr not_active Withdrawn
- 2000-10-26 US US09/869,435 patent/US6973190B1/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998052319A1 (fr) * | 1997-05-12 | 1998-11-19 | Yeda Research And Development Co. Ltd. | Procede et dispositif ameliores permettant de proteger les logiques de cles publiques contre les attaques basees sur la sequence des operations et les fautes |
Non-Patent Citations (3)
Title |
---|
BRICKELL E F ET AL: "FAST EXPONENTIATION WITH PRECOMPUTATION (EXTENDED ABSTRACT)", ADVANCES IN CRYPTOLOGY- EUROCRYPT. INTERNATIONAL CONFERENCE ON THE THEORY AND APPLICATION OF CRYPTOGRAPHIC TECHNIQUES,DE,SPRINGER VERLAG, 24 May 1992 (1992-05-24), pages 200 - 207, XP000577415 * |
DIMITROV V ET AL: "TWO ALGORITHMS FOR MODULAR EXPONENTIATION USING NONSTANDARD ARITHMETICS", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES,JP,INSTITUTE OF ELECTRONICS INFORMATION AND COMM. ENG. TOKYO, vol. E78-A, no. 1, 1 January 1995 (1995-01-01), pages 82 - 87, XP000495124, ISSN: 0916-8508 * |
KOCHER P C: "TIMING ATTACKS ON IMPLEMENTATIONS OF DIFFIE-HELLMAN, RSA, DSS, AND OTHER SYSTEMS", PROCEEDINGS OF THE ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE (CRYPTO),DE,BERLIN, SPRINGER, vol. CONF. 16, 1996, pages 104 - 113, XP000626590, ISBN: 3-540-61512-1 * |
Also Published As
Publication number | Publication date |
---|---|
FR2800478B1 (fr) | 2001-11-30 |
EP1639447A1 (fr) | 2006-03-29 |
WO2001031436A1 (fr) | 2001-05-03 |
JP2003513491A (ja) | 2003-04-08 |
US6973190B1 (en) | 2005-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2800478A1 (fr) | Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique | |
EP1068695B1 (fr) | Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique | |
EP1166494B1 (fr) | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique | |
EP1441313B1 (fr) | Procédé cryptographique à clé publique pour la protection d' une puce électronique contre la fraude | |
EP1745366B1 (fr) | Procede de protection d"un ensemble cryptographique par masquage homographique | |
CN1415147A (zh) | 具有通过密钥再分进行存取保护的便携式数据存储介质 | |
EP2296086B1 (fr) | Protection d'une génération de nombres premiers contre des attaques par canaux cachés | |
FR3015080A1 (fr) | Verification d'integrite de paire de cles cryptographiques | |
EP0795241B1 (fr) | Procede de cryptographie a cle publique base sur le logarithme discret | |
EP1904921A1 (fr) | Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe | |
EP1224765B1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa | |
KR100737667B1 (ko) | 암호 체계의 개인 키 저장 및 복원 방법과 장치 | |
EP1086547B1 (fr) | Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un algorithme crytographique avec cle secrete, et l'ensemble electronique | |
WO2003014916A1 (fr) | Procede securise de realisation d'une operation d'exponentiation modulaire | |
EP1520370B1 (fr) | Procédé et dispositifs cryptographiques permettant d'alleger les calculs au cours de transactions | |
FR2818846A1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie | |
WO1998051038A1 (fr) | Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d'aleas | |
FR3010562A1 (fr) | Procede de traitement de donnees et dispositif associe | |
FR3076013A1 (fr) | Procede de traitement cryptographique, programme d’ordinateur et dispositif associes | |
FR2818473A1 (fr) | Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa | |
FR2952774A1 (fr) | Procede et dispositif permettant d'optimiser le dechiffrement et la signature rsa pour mieux securiser les cartes bancaires et les telephones portables | |
WO2003013053A1 (fr) | Procede de determination de la taille d'un alea pour un schema de signature electronique | |
EP1398690A1 (fr) | Procédé et système de génération de signature |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CA | Change of address | ||
TP | Transmission of property | ||
ST | Notification of lapse |
Effective date: 20090630 |