Universit´e Paris VII – Denis Diderot Ecole Normale Sup´´ erieure, Paris
UFR Algorithmique Equipe de cryptographie´
Cryptographie ` a cl´ e publique :
Constructions et preuves de s´ ecurit´ e
TH` ESE
pr´esent´ee et soutenue publiquement le 16 Novembre 2006, `a l’ ´Ecole normale sup´erieure, Paris pour l’obtention du
Doctorat de l’Universit´ e Paris VII – Denis Diderot
(Sp´ecialit´e informatique)
par
Benoˆıt Chevallier-Mames
Composition du jury:
Directeur : Dr. David Pointcheval ( ´Ecole normale sup´erieure & CNRS) Rapporteurs : Dr. Marc Girault (France T´el´ecom R&D)
Prof. David Naccache (Universit´e de Paris II — Panth´eon - Assas) Examinateurs : Prof. Arnaud Durand (Universit´e de Paris VII — Denis Diderot)
Dr. Marc Joye (Thomson R&D)
Prof. Adi Shamir (Weizmann Institute of Science, Isra¨el) Prof. Jacques Stern ( ´Ecole normale sup´erieure)
Th`ese effectu´ee au sein du Security Technology Department, Gemplus/Gemalto, La Ciotat
Remerciements
Trois ans. Cela fait bientˆot trois ans que j’ai commenc´e cette th`ese, et pratiquement depuis le d´ebut, j’ai eu envie d’en ´ecrire la partieRemerciements. Pas seulement parce que c’est la partie finale, la derni`ere touche que quelqu’un apporte `a une th`ese, mais plutˆot pour remercier comme il se doit les gens qui m’ont aid´e, soutenu et encourag´e durant tout ce temps, et sans qui je ne serais pas l`a aujourd’hui. Voila enfin venu le temps de pouvoir leur dire publiquement merci.
Durant cette th`ese, je consid`ere que j’ai eu la chance d’avoir trois Pygmalion : mon directeur de th`ese, David Pointcheval; mon “correspondant scientifique”, c’est-`a-dire mon encadrant `a Gemplus/Gemalto,Marc Joye; et enfin, mon coll`egue Pascal Paillier. En plus d’ˆetre deve- nus, je le crois, des amis,David,MarcetPascalont toujours ´et´e pour moi d’intarissables sources d’id´ees et des exemples `a suivre. Ils m’ont donn´e des directions de recherche et appris `a r´ediger les articles. Enfin, tˆache ˆo combien importante et difficile, ils ont relu, annot´e et corrig´e cette th`ese. Bref, ils ont particip´e `a faire de moi le chercheur que je suis aujourd’hui. Ici, je leur dis encore une foismerci pour tout.
J’ai eu la chance d’effectuer ma th`ese dans le laboratoire de l’ ´Ecole normale sup´erieure, tout en travaillant `a Gemplus/Gemalto. Merci David d’avoir accept´e d’ˆetre mon directeur de th`ese dans ces conditions, en me laissant une grande libert´e dans mon organisation et dans mes travaux. Je voudrais ´egalement remercier ici tous les membres de l’´equipe Cryptographie de l’ ´Ecole normale sup´erieure de m’avoir si bien accueilli.
Je voudrais aussi remercier chaleureusement toutes les personnes de Gemplus/Gemalto qui m’ont permis de faire cette th`ese. Ceci s’adresse particuli`erement `a ceux qui ont ´et´e mes chefs d’´equipe durant ces ann´ees : Nathalie Feyt, Jean-Fran¸cois Dhem, Mathieu Ciet,Philippe Proust et David Naccache. J’adresse des remerciements sp´eciaux `a ce dernier, pour avoir en- courag´e durant sa carri`ere `a Gemplus, la recherche dans l’entreprise, et le d´emarrage de th`eses d’un grand nombre de personnes de son groupe, dont moi-mˆeme.
J’adresse ´egalement mes remerciements aux membres pass´es et pr´esents de l’´equipe S´ecurit´e de Gemplus/Gemalto avec qui j’ai eu le plaisir de travailler. Je ne pourrais tous les citer, mais toutes les personnes de ce groupe m’ont apport´e quelque chose, et je les en remercie. Merci enfin `a l’entreprise Gemplus/Gemalto, qui m’a permis d’aller durant mes ann´ees de th`ese `a de nombreuses conf´erences (Ches ’03, Ct-rsa ’04, Crypto ’05, Eurocrypt ’05, Acns ’05, Pkc ’06etEurocrypt ’06).
Je voudrais ´egalement remercier Arnaud Durand, Marc Girault, Marc Joye, David Nac- cache, Adi Shamir et Jacques Stern pour m’avoir fait l’honneur d’ˆetre membres du jury.
C’est un privil`ege d’avoir de telles personnalit´es comme examinateurs. Un remerciement tout particulier va vers mes rapporteurs, Marc Girault etDavid Naccache, qui ont eu la patience de relire cette th`ese et de la corriger.
Un des plaisirs de la recherche est de travailler `a plusieurs. J’ai eu moi-mˆeme la chance de co-´ecrire certains papiers. Je remercie ici mes co-auteurs pour ce qu’ils m’ont apport´e et appris, et pour avoir accept´e ces collaborations :Nuttapong Attrapadung,´Eric Brier,Mathieu Ciet,Christophe Clavier,Jun Furukawa,Takeshi Gomi,Goichiro Hanaoka,Hideki Imai, Marc Joye,David Naccache,Pascal Paillier,Duong Hieu Phan,David PointchevaletRui Zhang.
Durant ma th`ese, j’ai ´egalement eu la chance d’ˆetre membre du comit´e de programme de grandes conf´erences : merci `a Marc Joye de m’avoir permis d’ˆetre membre du comit´e de
Ish ’05 et enfin merci `a David Pointcheval qui m’a donn´e l’opportunit´e d’ˆetre membre du comit´e deCt-rsa ’06. ˆEtre membre de ces comit´es m’a permis d’avoir une autre vision de la re- cherche, et m’a beaucoup apport´e. J’en profite d’ailleurs pour remercier les nombreux relecteurs qui m’ont aid´e dans ces tˆaches.
Durant ma th`ese, j’ai pu particip´e `a certains projets europ´eens ou fran¸cais. Ils m’ont permis de rencontrer d’autres chercheurs et de financer certains d´eplacements. Je remercie donc le r´eseau europ´een d’excellence Ecrypt, le projet fran¸cais Crypto++ et le projet fran¸cais Saphir.
Enfin, je r´eserve ici une place pour ceux que je n’ai pu mettre dans une autre cat´egorie : merci
`
a Denis Roegel pour sa classe LATEX ; merci `aDamien Vergnaud de m’avoir invit´e `a faire une pr´esentation au s´eminaire de Cryptographie de l’Universit´e de Caen ; merci `a Jean-S´ebastien Coron pour les conseils et l’aide qu’il m’a apport´es ; merci `a l’ ´Ecole des Mines de Gardanne de m’avoir permis de donner des cours de Cryptographie ; merci aux membres de Dream Theater pour la musique qu’ils font et que j’adore.
Je ne saurais finir cette partie sans remercier ´egalement mes amis et ma famille. Merci `a ma sœurGa¨elle, mon fr`ere Thibault, merci `a mes parentsFran¸cois etChristinede m’avoir permis de faire des ´etudes et encourag´e `a travailler `a l’´ecole. Toutes mes pens´ees `a ceux et celles qui ont jalonn´e ma vie, aux ´el`eves du Lyc´ee Victor Hugo, de la pr´epa Camille Gu´erin, `a mes amis de promotion de Sup´elec, et notamment au fabuleux d3.
Enfin, je voudrais terminer cette partie par un remerciement g´en´eral `a tous ceux qui ont ´et´e mes professeurs depuis mon plus jeune ˆage, et ont ainsi ´et´e participants de la th`ese que je vais pr´esenter ici.
— `A ceux que j’aime.
Sganarelle : Mais encore faut-il croire quelque chose dans le monde : qu’est ce donc que vous croyez ?
Dom Juan: Ce que je crois ? Sganarelle : Oui.
Dom Juan : Je crois que deux et deux font quatre, Sganarelle, et que quatre et quatre font huit.
— Dom Juan ou le festin de pierre, Moli`ere
Table des mati` eres
Notations xv
Partie I. Introduction g´en´erale
Chapitre 1.
Introduction `a la cryptologie
1.1 La cryptologie en quelques mots . . . 3
1.1.1 Science du secret. . . 3
1.1.2 Cryptographie, cryptanalyse . . . 4
1.1.3 Cryptographie sym´etrique et cryptographie asym´etrique. . . 4
1.2 Buts de la cryptologie . . . 4
1.2.1 Confidentialit´e . . . 4
1.2.2 Int´egrit´e . . . 4
1.2.3 Identification . . . 5
1.2.4 Authentification . . . 5
1.3 Fonctions de base en cryptologie . . . 5
1.3.1 Fonction `a sens unique . . . 5
1.3.2 Fonction de hachage . . . 5
1.3.3 Fonction pseudo-al´eatoire . . . 5
1.3.4 Permutation `a sens unique . . . 6
1.3.5 Fonction bilin´eaire admissible . . . 6
1.3.6 Famille de fonctions . . . 6
1.3.7 Fonction de padding . . . 6
1.4 Notions de complexit´e . . . 7
1.4.1 Algorithme . . . 7
1.4.2 Algorithme polynomial ou sous-exponentiel . . . 7
1.4.3 Complexit´e d’un algorithme . . . 7
1.4.4 R´eduction d’un probl`eme `a un autre. . . 7
1.5 Conclusion . . . 8
Chapitre 2. S´ecurit´e prouv´ee et cryptologie 2.1 R´eduction de s´ecurit´e et s´ecurit´e prouv´ee . . . 9
2.1.1 R´eduction de s´ecurit´e et s´ecurit´e prouv´ee . . . 9
2.1.2 Finesses des r´eductions de s´ecurit´e . . . 10
2.1.3 Mod`ele de s´ecurit´e . . . 10
2.1.4 Mod`ele standard, mod`ele de l’oracle al´eatoire . . . 10
2.2 Probl`emes cryptographiques difficiles . . . 11
2.2.1 Probl`emes cryptographiques difficiles bas´es sur la factorisation . . . . 11
2.2.2 Probl`emes cryptographiques difficiles bas´es sur le logarithme discret . 12 2.2.3 Probl`emes cryptographiques difficiles avec fonction bilin´eaire . . . 13
2.3 Conclusion . . . 14
Chapitre 3. R´esum´e de nos travaux Partie II. Sch´ema de signature `a s´ecurit´e prouv´ee Chapitre 4. Introduction aux sch´emas de signature 4.1 Introduction . . . 25
4.1.1 Sch´emas de signature . . . 26
4.1.2 Protocole d’identification `a divulgation nulle de connaissance . . . 27
4.2 Σ-protocole. . . 28
4.2.1 Heuristique de Fiat-Shamir . . . 29
4.2.2 Signatures `a coupons . . . 30
4.3 S´ecurit´e des sch´emas de signature . . . 30
4.3.1 Notions de s´ecurit´e pour les sch´emas de signature . . . 30
4.3.2 Σ-protocoles et lemme de bifurcation . . . 32
4.3.3 Exemple de la s´ecurit´e de la primitiveRSA . . . 32
4.4 Sch´emas de signature classiques avec oracles al´eatoires. . . 33
4.4.1 Signature RSA . . . 33
4.4.2 Signature Schnorr . . . 34
4.4.3 Signature GQ. . . 35
4.4.4 Signature GPS . . . 35
4.4.5 Signature PS . . . 36
4.5 Preuves classiques de sch´emas de signature . . . 37
4.5.1 Preuve de RSA-FDHdans le mod`ele de l’oracle al´eatoire. . . 37
4.5.2 Preuve de Schnorrdans le mod`ele de l’oracle al´eatoire . . . 38
4.6 Nos travaux sur les sch´emas de signature . . . 40
Chapitre 5. Une heuristique pour d´eriver des sch´emas de signature `a r´eduction fine 5.1 M´ethode g´en´erique propos´ee . . . 42
5.1.1 Notre construction. . . 42
5.1.2 S´ecurit´e de cette construction . . . 44
5.2 Un exemple concret d’application de notre heuristique . . . 46
5.2.1 Un sch´ema de signature `a coupon, bas´e sur leRSAet `a r´eduction fine 46 5.2.2 S´ecurit´e de notre exemple. . . 46
5.2.3 Comparaison de notre sch´ema avecRSA-PSS . . . 48
5.2.4 Extensions `a d’autres probl`emes cryptographiques . . . 50
5.3 Conclusion . . . 50
Chapitre 6. Un sch´ema de signature efficace bas´e sur le CDH 6.1 Le sch´ema de signatureEDL . . . 52
6.1.1 Pr´esentation du sch´ema . . . 52
6.1.2 S´ecurit´e du sch´emaEDL . . . 52
6.1.3 Caract´eristiques du sch´ema de signatureEDL . . . 54
6.2 Les sch´emas de signature de Katz-Wang . . . 54
6.2.1 Pr´esentation du sch´ema KW-CDH . . . 55
6.2.2 S´ecurit´e du sch´emaKW-CDH . . . 55
6.2.3 Pr´esentation du sch´ema KW-DDH . . . 57
6.2.4 S´ecurit´e du sch´emaKW-DDH . . . 58
6.3 Un nouveau sch´ema de signature . . . 59
6.3.1 Une ´etape de notre construction . . . 60
6.3.2 Description de notre sch´ema . . . 61
6.3.3 Preuve de s´ecurit´e de notre sch´ema . . . 61
6.3.4 Utilisation de coupons dans notre sch´ema . . . 63
6.3.5 Taille des param`etres . . . 64
6.3.6 Comparaison de notre sch´ema avecEDL,KW-CDH et autres sch´emas 65
6.3.7 Derniers raffinements . . . 66
6.3.8 A propos du test d’appartenance de` z `a G . . . 66
6.4 Conclusion . . . 67
Chapitre 7. Un sch´ema de signature dans le mod`ele standard 7.1 Sch´ema de signature dans le mod`ele standard . . . 70
7.1.1 Introduction . . . 70
7.1.2 S´ecurit´e prouv´ee et mod`ele standard. . . 70
7.2 Survol des sch´emas de signature bas´es sur FlexibleRSA . . . 71
7.2.1 Sch´ema de signature Gennaro-Halevi-Rabin. . . 71
7.2.2 Sch´ema des signatures jumelles GHR. . . 72
7.2.3 Sch´ema de signature Cramer-Shoup . . . 73
7.2.4 Sch´ema de signature Camenisch-Lysyanskaya . . . 73
7.2.5 Sch´ema de signature Fischlin . . . 74
7.3 Un nouveau sch´ema de signature dans le mod`ele standard . . . 74
7.3.1 Description . . . 74
7.3.2 Analyse de s´ecurit´e . . . 75
7.3.3 Comparaison avec les autres sch´emas . . . 77
7.3.4 Version en-ligne/hors-ligne . . . 79
7.4 Conclusion . . . 81
Partie III. Sch´ema de chiffrement `a s´ecurit´e prouv´ee Chapitre 8. Introduction aux sch´emas de chiffrement 8.1 Chiffrement `a cl´e publique . . . 85
8.1.1 D´efinition. . . 85
8.1.2 Notions de s´ecurit´e pour le chiffrement `a cl´e publique . . . 86
8.2 Quelques cryptosyst`emes classiques . . . 88
8.2.1 Cryptosyst`emeRSA . . . 88
8.2.2 Cryptosyst`emeElGamal . . . 89
8.2.3 Cryptosyst`emePaillier . . . 89
8.3 Chiffrement bas´e sur l’identit´e . . . 90
8.3.1 D´efinition. . . 90
8.3.2 Notions de s´ecurit´e pour le chiffrement bas´e sur l’identit´e . . . 91
8.3.3 Cryptosyst`eme Boneh-Franklin . . . 91
8.4 Nos travaux sur les sch´emas de chiffrement . . . 92
Chapitre 9. Chiffrement ElGamal sans encodage dans le mod`ele standard 9.1 Le cryptosyst`eme ElGamal. . . 94
9.1.1 Description du cryptosyst`eme ElGamal . . . 94
9.1.2 Le cryptosyst`emeElGamal avec fonction de hachage . . . 95
9.2 ChiffrementElGamalsans encodage dans le mod`ele standard . . . 95
9.2.1 La fonction Classe . . . 96
9.2.2 Probl`emes de classe Diffie-Hellman. . . 97
9.2.3 Chiffrement additif sans encodage . . . 99
9.2.4 Chiffrement multiplicatif sans encodage . . . 99
9.2.5 Propri´et´es de nos sch´emas de chiffrement . . . 100
9.3 Preuve de s´ecurit´e de nos sch´emas . . . 100
9.4 G´en´eralisation `a Zpk . . . 102
9.5 Conclusion et probl`emes ouverts . . . 102
Chapitre 10. Cryptographie bas´ee sur l’identit´e avec r´eduction fine 10.1 Deux sch´emas classiques de chiffrement bas´es sur l’identit´e . . . 105
10.1.1 Sch´ema de Boneh-Franklin . . . 106
10.1.2 Sch´ema de Katz-Wang . . . 106
10.2 Preuve fine pour un sch´ema bas´e sur l’identit´e . . . 108
10.2.1 Description du sch´ema . . . 108
10.2.2 ´Etude de la s´ecurit´e de ce sch´ema . . . 109
10.2.3 R´eduction aux probl`emes classiquesDBDH etGBDH . . . 113
10.3 Comparaison des sch´emas . . . 114
10.4 Conclusion . . . 114
Chapitre 11. Padding universel optimal 11.1 Notions pr´eliminaires . . . 118
11.1.1 Redondance et entropie . . . 118
11.1.2 Fonction de padding universel . . . 118
11.1.3 Signature et chiffrement. . . 119
11.1.4 Permutations sans griffe. . . 119
11.2 Fonction de padding bas´ee sur une permutation : OPbP . . . 119
11.2.1 Description . . . 119
11.2.2 Analyse de s´ecurit´e . . . 120
11.2.3 Taille des param`etres et optimalit´e. . . 121
11.3 Construction bas´ee surOAEP3 . . . 122
11.3.1 Description . . . 122
11.3.2 Analyse de s´ecurit´e . . . 122
11.3.3 Taille des param`etres . . . 123
11.4 Conclusion . . . 124
Partie IV. R´esistance aux attaques `a canaux cach´es Chapitre 12. L’atomicit´e : une solution g´en´erique et peu coˆuteuse contre la SPA 12.1 Introduction . . . 129
12.2 Atomicit´e face aux attaques `a canaux cach´es . . . 130
12.2.1 Blocs atomiques . . . 130
12.2.2 Illustration . . . 130
12.2.3 M´ethodologie g´en´erale. . . 132
12.3 Atomicit´e et exponentiations . . . 133
12.3.1 Hypoth`eses de nos constructions . . . 133
12.3.2 Algorithmes g´en´eriques d’exponentiation `a fenˆetre glissante . . . 133
12.3.3 Algorithmes simplifi´es . . . 134
12.4 Atomicit´e et courbes elliptiques . . . 135
12.4.1 Courbes elliptiques d´efinies sur un corps premier . . . 135
12.4.2 Courbes elliptiques d´efinies sur un corps binaire . . . 136
12.5 Version atomique de l’exponentiation MIST . . . 138
12.6 Conclusion . . . 139
Chapitre 13. Exponentiation intrins`equement prot´eg´ee contre la DPA 13.1 Exponentiation intrins`equement al´eatoire . . . 143
13.1.1 Algorithmes classiques d’exponentiation . . . 143
13.1.2 Principe g´en´eral . . . 143
13.2 Algorithmes basiques . . . 144
13.2.1 Premier algorithme . . . 144
13.2.2 Second algorithme . . . 146
13.3 Algorithmes avanc´es . . . 147
13.3.1 Atomicit´e face aux attaques simples `a canaux cach´es . . . 147
13.3.2 R´eversibilit´e . . . 148
13.3.3 Optimisations suppl´ementaires . . . 150
13.3.4 Temps moyen . . . 151
13.4 Conclusion . . . 151
Conclusion g´en´erale
Bibliographie 157
Index 169
Notations
p,q Des nombres premiers
n Un nombre composite (et typiquement un module RSA)
N∗ L’ensemble des entiers strictement positifs QRn L’ensemble des r´esidus quadratiques modulon
G,Gp Des groupes
hgi Le groupe engendr´e parg
Fp Un corps premier
Zn L’anneau des entiers modulon
Z∗n Le groupe multiplicatif de l’anneau des entiers modulon kGk Le nombre d’´el´ements d’un ensemble finiG
LF,LG,LH Des listes
x←RX L’´el´ementx est tir´e al´eatoirement dans l’ensemble X
S Un sch´ema de signature
Z Un protocole d’identification
E Un sch´ema de chiffrement
IBE Un sch´ema de chiffrement bas´e sur l’identit´e
Sch´ema Le nom d’un sch´ema, le plus souvent d’apr`es le nom de ses inventeurs
sk Une cl´e priv´ee
pk Une cl´e publique
params Des param`etres d’un syst`eme
ID Une identit´e
O f(x) =O(g(x)) si∃(k, x0),∀x > x0,f(x)6k g(x) e:G1×G2 →GT Une fonction bilin´eaire admissible
F,G,H Des fonctions de hachage
Ψ,ς Une fonction pseudo-al´eatoireΨ utilisant une cl´e ς [[·]], [[·]]k Des fonctions Classe
DLg(y) Le logarithme de y en baseg
⊕ L’op´erateur ou-exclusif
hx, yi Le nombre retrouv´e par la combinaison par th´eor`eme des restes chinois de x ety
φ La fonction indicatrice d’Euler
λ La fonction de Carmichael
Φpk,ψsk Une permutation `a sens unique `a trappe Φpk, dont l’inverse estψsk
Succ Le succ`es d’un attaquant, d’une r´eduction Adv L’avantage d’un attaquant, d’une r´eduction
UBK,UF,EUF,sEUF Des notions de s´ecurit´e pour les sch´emas de signature KOA,KMA,CMA Des ressources pour les attaquants des sch´emas de signature UBK,OW,IND,NM Des notions de s´ecurit´e pour les sch´emas de chiffrement CPA,CCA Des ressources pour les attaquants des sch´emas de chiffrement qs Le nombre de requˆetes autoris´ees `a un oracle de signature qh,qF,qG,qH Le nombre de requˆetes autoris´ees `a un oracle de hachage qd Le nombre de requˆetes autoris´ees `a un oracle de d´echiffrement qe Le nombre de requˆetes autoris´ees `a un oracle d’extraction de cl´e P1⇐P2 P1 se r´eduit `a P2, c’est-`a-dire que r´esoudreP2 permet de r´esoudreP1
P1⇔P2 P1 etP2 sont ´equivalents
poly(`) Un polynˆome en `
DL Le probl`eme du logarithme discret
DLx Le probl`eme du logarithme discret dans un groupe d’ordre secret DLn Le probl`eme du logarithme discret modulo un module RSAn CDH Le probl`eme calculatoire Diffie-Hellman
DDH Le probl`eme d´ecisionnel Diffie-Hellman
CCDH Le probl`eme calculatoire de la Classe Diffie-Hellman DCDH Le probl`eme d´ecisionnel de la Classe Diffie-Hellman CBDH,BDH Le probl`eme calculatoire Diffie-Hellman bilin´eaire GBDH Le probl`eme ´echelon Diffie-Hellman bilin´eaire DBDH Le probl`eme d´ecisionnel Diffie-Hellman bilin´eaire
LBDH Le probl`eme calculatoire Diffie-Hellman bilin´eaire par liste RSA Le probl`eme de la racine e-i`eme
FlexibleRSA Le probl`eme souple de la racine e-i`eme
FACT Le probl`eme de la factorisation de moduleRSA
Div Le probl`eme de casser l’indivisibilit´e d’une fonction de hachage Personne Le nom d’une personne
SPA Une attaque simple par canaux cach´es
DPA Une attaque diff´erentielle par canaux cach´es
Premi` ere partie
Introduction g´ en´ erale
Chapitre 1
Introduction ` a la cryptologie
Sommaire
1.1 La cryptologie en quelques mots. . . . 3
1.1.1 Science du secret . . . . 3
1.1.2 Cryptographie, cryptanalyse . . . . 4
1.1.3 Cryptographie sym´etrique et cryptographie asym´etrique . . . . 4
1.2 Buts de la cryptologie . . . . 4
1.2.1 Confidentialit´e . . . . 4
1.2.2 Int´egrit´e . . . . 4
1.2.3 Identification . . . . 5
1.2.4 Authentification. . . . 5
1.3 Fonctions de base en cryptologie . . . . 5
1.3.1 Fonction `a sens unique . . . . 5
1.3.2 Fonction de hachage . . . . 5
1.3.3 Fonction pseudo-al´eatoire . . . . 5
1.3.4 Permutation `a sens unique . . . . 6
1.3.5 Fonction bilin´eaire admissible . . . . 6
1.3.6 Famille de fonctions . . . . 6
1.3.7 Fonction de padding . . . . 6
1.4 Notions de complexit´e . . . . 7
1.4.1 Algorithme . . . . 7
1.4.2 Algorithme polynomial ou sous-exponentiel . . . . 7
1.4.3 Complexit´e d’un algorithme . . . . 7
1.4.4 R´eduction d’un probl`eme `a un autre . . . . 7
1.5 Conclusion . . . . 8
Ce chapitre constitue une tr`es courte introduction `a la cryptologie. Il n’est pas un cours sur le sujet, mais doit plutˆot ˆetre vu comme un rapide survol de la cryptologie, et comme le moyen de poser certaines notations utilis´ees dans le reste de cette th`ese.
1.1 La cryptologie en quelques mots
1.1.1 Science du secret
La cryptologie est ´etymologiquement lascience du secret. Ceci regroupe en fait de nombreuses notions. Historiquement, la cryptologie a servi `a s´ecuriser certaines transmissions militaires, c’est-`a-dire `a chiffrer des messages. Plus r´ecemment, et notamment depuis l’av`enement de l’`ere
num´erique, la cryptologie a connu d’autres usages, comme celui de la signature num´erique ou de l’identification des personnes.
De fa¸con la plus simplifi´ee possible, la cryptologie consiste en la manipulation de donn´ees variables, lesmessages et lesidentit´es, par des donn´ees constantes — secr`etes ou publiques —, les cl´es, au travers d’algorithmes, lessch´emas cryptographiques.
1.1.2 Cryptographie, cryptanalyse
La cryptologie regroupe deux sciences duales et ´etroitement li´ees : la cryptographie, qui est la science de la construction de sch´emas cryptographiques, et lacryptanalyse, qui est la science de l’´etude des attaques sur ces sch´emas. Comme nous pouvons l’imaginer, ces deux sciences ne vont pas l’une sans l’autre, et parfois, la fronti`ere entre elles est t´enue. Ainsi, par exemple, concevoir un sch´ema r´esistant `a tel ou tel type d’attaque, est-ce faire de la cryptographie ou de la cryptanalyse ?
1.1.3 Cryptographie sym´etrique et cryptographie asym´etrique
Les sch´emas cryptographiques sont de nos jours de deux types. Le premier type est celui qui existe depuis le d´ebut de la cryptographie, d`es les temps antiques. Dans cette famille de sch´emas, deux entit´es partagent une mˆeme cl´e, secr`ete pour les autres utilisateurs, et peuvent ainsi op´erer des op´erations sym´etriques chacune de leur cot´e, d’o`u le nom decryptographie `a cl´e secr`ete ou cryptographie sym´etrique.
Le second type de sch´emas cryptographiques est tr`es r´ecent, et a inaugur´e ce qui est parfois appel´e l’`ere moderne de la cryptographie. Cette forme de cryptographie a ´et´e introduite par Whitfield DiffieetMartin Hellman, dans le c´el`ebre “New directions in cryptography” [DH76].
Dans cette famille de sch´emas, deux cl´es coexistent, l’une priv´ee, c’est-`a-dire r´eserv´ee `a un utilisateur, et l’autre publique, c’est-`a-dire connue de tous. Ce type de sch´ema est tel que, pour certaines op´erations, comme le chiffrement, seule la cl´e publique est n´ecessaire, et que pour certaines autres op´erations, comme le d´echiffrement, la cl´e priv´ee est indispensable. Ceci explique le nom decryptographie `a cl´e publique ou decryptographie asym´etrique.
1.2 Buts de la cryptologie
Dans cette section, nous listons quelques-uns des principaux buts de la cryptologie, c’est-`a- dire les services que la cryptologie d´elivre. Nous donnons ´egalement la ou les primitives usuel- lement utilis´ees pour atteindre chacun des buts cit´es.
1.2.1 Confidentialit´e
Comme ´evoqu´e dans la section pr´ec´edente, le but premier de la cryptologie a ´et´e la confi- dentialit´e, c’est-`a-dire l’´echange entre entit´es de messages chiffr´es, qui, sans cl´e de d´echiffrement, sont inintelligibles. La confidentialit´e est obtenue principalement au travers desch´emas de chif- frement, qu’ils soient `a cl´e secr`ete ou `a cl´e publique.
1.2.2 Int´egrit´e
Un autre but de la cryptologie est l’int´egrit´e. Ceci d´esigne le fait qu’une personne veuille s’assurer que le message re¸cu n’a pas ´et´e modifi´e par une tierce personne. L’int´egrit´e est g´er´ee
1.3. Fonctions de base en cryptologie au travers defonctions de hachage `a cl´e secr`ete (en anglais,message authentication code, MAC), ou `a l’aide desch´emas de signature `a cl´e publique.
1.2.3 Identification
L’identification est la partie de la cryptologie permettant de reconnaˆıtre une personne, au travers d’un secret qu’elle seule poss`ede. Pour cela, la primitive cryptographique principale est le protocole d’identification. Un sous-type, appel´e protocole d’identification `a divulgation nulle de connaissance, est d’un int´erˆet plus particulier : dans ce type de protocole, le prouveur montre qu’il connaˆıt un secret associ´e `a une donn´ee publique, sans rien d´evoiler de plus sur ce secret.
1.2.4 Authentification
Un dernier but de la cryptologie est l’authentification. Il s’agit l`a pour une personne de prou- ver qu’un message a bien ´et´e envoy´e par elle. Cette notion est tr`es proche de l’identification, dans laquelle, en plus, un message interviendrait. L’authentification se g`ere en cryptographie principalement au travers desch´emas de signature `a cl´e publique. L’usage de sch´emas de signa- ture `a cl´e publique plutˆot que de fonctions de hachage `a cl´e secr`ete permet lanon-r´epudiation, c’est-`a-dire qu’une signature valide d’un message donn´e ne puisse ˆetre contest´ee par le signataire.
1.3 Fonctions de base en cryptologie
Dans cette section, nous allons donner une d´efinition informelle des fonctions les plus impor- tantes en cryptographie.
1.3.1 Fonction `a sens unique
Une fonction f est `a sens unique s’il est facile de calculer f(x) `a partir de x, mais s’il est difficile, ´etant donn´e g =f(x) pour un ´el´ement x al´eatoire, de trouver un x tel que f(x) = g.
Les fonctions `a sens unique sont la base de nombreuses primitives, aussi bien en cryptographie
`
a cl´e secr`ete qu’en cryptographie `a cl´e publique.
Une fonction `a sens uniquef est dite`a trappe si, `a l’aide d’un secret, appel´ee latrappe, il est possible de calculer ais´ement un ant´ec´edent (appel´e pr´e-image) de tout ´el´ement dans l’image de f.
1.3.2 Fonction de hachage
Une fonction de hachage est une fonction cr´eant une empreinte — appel´ee le hach´e — de taille fixe (typiquement, 128, 160 ou 256 bits) d’un message de taille arbitraire. Intuitivement, les fonctions de hachage doivent r´esister aux collisions, c’est-`a-dire qu’il doit ˆetre difficile pour un algorithme de cr´eer deux messages diff´erents ayant le mˆeme hach´e. De mˆeme, les fonctions de hachage doivent ˆetre `a sens unique, c’est-`a-dire qu’´etant donn´e un hach´e, il doit ˆetre difficile d’en trouver une pr´e-image.
1.3.3 Fonction pseudo-al´eatoire
Une fonction est ditepseudo-al´eatoire s’il est difficile de distinguer une sortie de cette fonction d’une valeur al´eatoire. Plus pr´ecis´ement, si un adversaire a acc`es `a un oracle lui retournant soit
un al´ea, soit le r´esultat de la fonction pseudo-al´eatoire, son avantage `a deviner la nature de l’oracle doit ˆetre n´egligeable.
1.3.4 Permutation `a sens unique
Une fonction `a sens unique f est une permutation `a sens unique si elle est bijective d’un ensemble fini sur lui-mˆeme.
Une permutation `a sens unique est dite`a trappesi la fonctionf−1 est efficacement calculable avec un secret, ladite trappe. C’est notamment le cas de la fonctionRSA(voir Section4.4.1).
1.3.5 Fonction bilin´eaire admissible
Unefonction bilin´eaire admissible‡ est une applicatione:G1×G2→GT, o`uG1,G2 etGT
sont trois groupes d’ordreq (not´es multiplicativement), telle que la fonctionesoit : 1. bilin´eaire : pour tout (u, v)∈G1×G2 et pour touta, b∈Zq,e(ua, vb) =e(u, v)ab; 2. non-d´eg´en´er´ee : il existe un (u, v)∈G1×G2, tel quee(u, v)6= 1 ;
3. calculable : il existe un algorithme efficace pour calculere(u, v) pour tous (u, v)∈G1×G2. Souvent, dans les constructions cryptographiques, les groupes G1 et G2 sont ´egaux. Notons enfin que les fonctions bilin´eaires sont aussi appel´ees descouplages.
1.3.6 Famille de fonctions
En cryptographie, comme l’usage de cl´es est primordial, des familles de fonctions sont uti- lis´ees, plutˆot que des fonctions fixes. L’indice de la fonction choisie dans cette famille constitue alors la cl´e. Ainsi apparaissent les familles de fonctions de hachage, les familles de fonctions pseudo-al´eatoires, les familles de permutations `a sens unique `a trappe, etc.
1.3.7 Fonction de padding
Pour certaines constructions, comme nous le verrons dans la suite, il est parfois n´ecessaire d’utiliser des fonctions de padding ††. Ces fonctions assurent, comme les fonctions de hachage, une r´esistance `a la mall´eabilit´e, mais sont, contrairement `a ces derni`eres, inversibles.
De fa¸con g´en´erique, soient un ensemble de messages M, un ensemble d’al´eas R, et un en- semble d’arriv´eeT. Une fonction de padding est une fonction injective µ :M × R → T, telle qu’il existe une fonction µ−1 :T → M ∪ {⊥}qui soit publiquement calculable et qui retourne µ−1(t) =m si t=µ(m, r) et ⊥si aucun ant´ec´edent n’existe.
Une fonction de padding est dited´eterministesi l’ensemble des al´easRest vide ou r´eduit `a un
´
el´ement. Elle est dite probabiliste dans le cas contraire. Les fonctions de paddings probabilistes classiques µ sont souvent telles qu’il existe une fonction inverse compl`ete µ−1, telle que µ−1 : T →(M × R)∪ {⊥}soit publiquement calculable et qui retourneµ−1(t) = (m, r) si t=µ(m, r) et⊥si aucun ant´ec´edent n’existe
‡La mention “admissible” sera sous-entendue dans le reste de ce document.
††Exceptionnellement, nous pr´ef´ererons dans cette th`ese la d´enomination anglaise plutˆot que sa terminologie fran¸caise : fonction de bourrage voire fonction de remplissage.
1.4. Notions de complexit´e
1.4 Notions de complexit´ e
Enfin, cette derni`ere partie contient certaines notions primordiales de la th´eorie de la com- plexit´e.
1.4.1 Algorithme
Unalgorithme est un ensemble d’instructions qui permettent le calcul d’une valeur de sortie, pour des donn´ees d’entr´ee dans un certain ensemble. C’est une notion tr`es g´en´erique, et pour s’en donner une autre id´ee, il est possible de consid´erer qu’un algorithme est une sorte deprogramme informatique, permettant l’ex´ecution d’une tˆache — le calcul d’une certaine valeur de sortie — d´efinie par des param`etres d’entr´ee.
Chaque algorithme est caract´eris´e par untemps d’ex´ecution, calcul´e comme le nombre d’´eta- pes ´el´ementaires dont il a besoin pour calculer la sortie. Comme ce temps peut d´ependre des donn´ees d’entr´ee et d’al´eas internes, le temps d’ex´ecutionmoyenet le temps d’ex´ecutionmaximal sont distingu´es.
Certains algorithmes retournent, pour une mˆeme entr´ee, toujours la mˆeme sortie : ils sont ditsd´eterministes. Au contraire, un algorithme ne retournant pas toujours la mˆeme valeur, pour une entr´ee inchang´ee, est ditprobabiliste.
1.4.2 Algorithme polynomial ou sous-exponentiel
Un algorithme est dit polynomial si son temps d’ex´ecution τ(`), pour des entr´ees de taille
`, est major´e par un polynˆomeP en `, c’est-`a-dire τ(`)6P(`). Ceci est not´e τ =poly(`). Les algorithmes polynomiaux sont les algorithmes qui sont consid´er´es efficaces, que ce soit en cryp- tologie ou en math´ematique en g´en´eral. Deux algorithmes polynomiaux peuvent ˆetre compar´es, et l’un dit plus efficace que l’autre, en comparant les degr´es et les coefficients des polynˆomes.
Un algorithme non-polynomial est dit sous-exponentiel si, pour des entr´ees de taille `, son temps d’ex´ecutionτ(`) peut ˆetre major´e par exp(f(`)), o`uf(`) est une fonction telle quef(`) = o(`).
1.4.3 Complexit´e d’un algorithme
Certains algorithmes ne retournent pas toujours la/une valeur valide. Nous d´efinissons alors la probabilit´e de succ`es. Par extension, un algorithme retournant toujours une valeur correcte est dit avoir une probabilit´e de succ`es de 1.
Ainsi, pour mesurer l’efficacit´e d’un algorithme probabiliste, il faut envisager `a la fois son temps d’ex´ecution et sa probabilit´e de succ`es. La notion decomplexit´eest alors utilis´ee : exprim´ee en bits, elle correspond au logarithme, en base 2, du temps d’ex´ecution moyen divis´e par la probabilit´e de succ`es. La complexit´e correspond au temps moyen n´ecessaire pour obtenir une r´eponse valide.
Par cons´equent, pour un niveau de s´ecurit´e d´esir´e κ, il est dit qu’un sch´ema est κ-sˆur s’il n’existe pas d’algorithme de complexit´e inf´erieure ou ´egale `aκqui attaque une de ses propri´et´es de s´ecurit´e.
1.4.4 R´eduction d’un probl`eme `a un autre
En th´eorie de la complexit´e, il est dit qu’un probl`emeP1 ser´eduit `a un probl`eme P2, s’il est possible de r´esoudre, en temps polynomial, P1 `a l’aide d’un oracle r´esolvant P2. Ceci est not´e
P1 ⇐P2.
De mˆeme, il est dit que deux probl`emesP1 et P2 sont´equivalents si P1 se r´eduit `a P2 etP2 se r´eduit `a P1. Ceci est not´e P1 ⇔P2.
1.5 Conclusion
Nous terminons ce chapitre en rappelant que, dans celui-ci, seules certaines notions ´el´emen- taires ont ´et´e abord´ees. Nous encourageons le lecteur `a se tourner vers des ouvrages g´en´eraux de cryptologie pour plus d’informations sur les bases de la cryptographie [MOV97, Sti95], et passons, chapitre suivant, `a la notion des´ecurit´e prouv´ee, avant d’entrer dans les Parties II,III ou IVdans le d´etail de nos recherches.
Chapitre 2
S´ ecurit´ e prouv´ ee et cryptologie
Sommaire
2.1 R´eduction de s´ecurit´e et s´ecurit´e prouv´ee . . . . 9 2.1.1 R´eduction de s´ecurit´e et s´ecurit´e prouv´ee. . . . 9 2.1.2 Finesses des r´eductions de s´ecurit´e . . . . 10 2.1.3 Mod`ele de s´ecurit´e . . . . 10 2.1.4 Mod`ele standard, mod`ele de l’oracle al´eatoire . . . . 10 2.2 Probl`emes cryptographiques difficiles. . . . 11 2.2.1 Probl`emes cryptographiques difficiles bas´es sur la factorisation. . . . 11 2.2.2 Probl`emes cryptographiques difficiles bas´es sur le logarithme discret . . . 12 2.2.3 Probl`emes cryptographiques difficiles avec fonction bilin´eaire. . . . 13 2.3 Conclusion . . . . 14
Dans ce chapitre, nous introduisons les bases de la s´ecurit´e prouv´ee appliqu´ee `a la cryptologie.
Nous ne serons pas exhaustifs sur ce sujet, et renvoyons ainsi le lecteur `a des ouvrages plus complets pour une vue plus d´etaill´ee de ce large sujet.
2.1 R´ eduction de s´ ecurit´ e et s´ ecurit´ e prouv´ ee
2.1.1 R´eduction de s´ecurit´e et s´ecurit´e prouv´ee
De fa¸con informelle, la s´ecurit´e des sch´emas cryptographiques est prouv´ee en montrant que si un adversaire peut violer une propri´et´e de s´ecurit´e, alors il peut ˆetre utilis´e pour r´esoudre un probl`eme algorithmique difficile — la nature mˆeme de ces probl`emes ´etant d´etaill´ee dans la Section2.2. Pour cela, un algorithme (la r´eduction) est construit ; il simule l’environnement de l’attaquant, et `a l’aide d’un ou plusieurs appels `a l’attaquant, retrouve la solution au probl`eme.
Comme les probl`emes sont choisis difficiles (ou plus pr´ecis´ement sont suppos´es difficiles, dans l’´etat actuel des connaissances), il est possible d’en d´eduire par contrapos´ee qu’un tel adversaire n’existe pas.
Cette m´ethodologie pour s’assurer de la s´ecurit´e d’un sch´ema est appel´ee las´ecurit´e prouv´ee.
Certains, commeNeal Koblitz et Alfred Menezes dans [KM04], pr´ef`erent parler de s´ecurit´e par r´eduction, pour bien mettre en avant que la s´ecurit´e n’est pas absolue, mais n’est valide que si l’hypoth`ese de difficult´e du probl`eme sous-jacent est v´erifi´ee.
2.1.2 Finesses des r´eductions de s´ecurit´e
La “qualit´e” d’une r´eduction de s´ecurit´e est mesur´ee en comparant la complexit´e de la r´educ- tion et la complexit´e de l’attaque contre le sch´ema cryptographique prouv´e par la r´eduction. Une r´eduction de s´ecurit´e est ainsi ditefine (en anglais,tight) quand le rapport entre ces complexit´es est proche de 1. Au contraire, la r´eduction est ditelˆache (en anglais,loose) lorsque la complexit´e de la r´eduction est bien sup´erieure `a la complexit´e de l’attaque. La finesse d’une r´eduction est souvent relative : nous parlons alors de r´eduction plus fine qu’une autre.
Cette notion de finesse permet de distinguer la s´ecurit´e asymptotique et la s´ecurit´e exacte : la premi`ere permettant de dire qu’un sch´ema est sˆur “pour des cl´es assez grandes”, alors que la seconde permet de donner des tailles de cl´es effectives pour lesquelles le sch´ema estκ-sˆur, pour un niveau de s´ecurit´eκ fix´e.
2.1.3 Mod`ele de s´ecurit´e
Comme d´efini dans la section pr´ec´edente, une r´eduction doit utiliser un adversaire violant une propri´et´e de s´ecurit´e du sch´ema consid´er´e. Une r´eduction est donc d´ependante des attaquants consid´er´es. Aussi, une partie de la s´ecurit´e prouv´ee consiste `a d´efinir un mod`ele de s´ecurit´e (encore appel´esc´enario d’attaque) : ce mod`ele comprend tout d’abord la d´efinition des propri´et´es de s´ecurit´e d´esir´ees du sch´ema — et ainsi, des buts d’un ´eventuel attaquant contre ces propri´et´es ; ensuite, le mod`ele comprend la d´efinition de l’environnement de l’attaquant, c’est-`a-dire les ressources auxquelles ce dernier aura droit.
Ces mod`eles d´ependent du type de sch´ema consid´er´e (sch´ema de signature ou de chiffrement par exemple), et seront donc d´etaill´es dans les parties sp´ecifiques II et III, pour les primitives de signature et de chiffrement, respectivement.
2.1.4 Mod`ele standard, mod`ele de l’oracle al´eatoire
Une ´etape importante dans l’avanc´ee de la s´ecurit´e prouv´ee en cryptographie est due `aMihir Bellare et Phillip Rogaway [BR93], avec la formalisation du mod`ele de l’oracle al´eatoire.
Notons que les pr´emices de ce mod`ele ´etaient apparus dans la publication [FS86] d’Amos Fiat et d’Adi Shamir.
Dans le mod`ele de l’oracle al´eatoire, les fonctions de hachage sont suppos´es parfaites, c’est-`a- dire qu’il est consid´er´e que l’attaquant ne peut faire des calculs de hach´es qu’`a travers des appels
`
a un oracle de hachage. Tout l’int´erˆet de ce mod`ele consiste alors `a profiter de ces oracles dans la construction de la r´eduction. En les d´efinissant d’une certaine fa¸con (qui doit malgr´e tout rester indistinguable d’une fonction parfaitement al´eatoire), la r´eduction peut plus ais´ement soit simuler l’environnement de l’attaquant, soit d´eduire de l’attaque de l’adversaire la solution `a son probl`eme.
Nous ne rentrerons pas plus dans les d´etails de la d´efinition du mod`ele de l’oracle al´eatoire, mais renvoyons le lecteur `a certaines parties (par exemple la Section4.5ou les Chapitres5,6,10 ou 11) de cette th`ese pour en voir tout l’int´erˆet.
Le mod`ele de l’oracle al´eatoire est si puissant qu’il fut longtemps la seule fa¸con de prouver la s´ecurit´e de sch´emas efficaces‡. Pourtant, assez r´ecemment (voir Chapitre7pour les sch´emas de signature, ou le sch´ema de chiffrement [CS98]), de nouveaux sch´emas ont ´et´e propos´es, avec une preuve ne n´ecessitant pas l’id´ealisation des fonctions de hachage. Dans ce cas, l’appellation de mod`ele standard est utilis´ee, bien que le qualificatif “sans oracles al´eatoires” soit parfois pr´ef´er´e.
‡Nous pr´ecisons ici que des sch´emas bas´es sur les arbres furent prouv´es sˆurs sans ce mod`ele d`es 1988 [GMR88, DN94,CD96,CG05]. Malheureusement, ils souffrent d’une certaine inefficacit´e.
2.2. Probl`emes cryptographiques difficiles Lors de la comparaison de sch´emas `a s´ecurit´e prouv´ee, il faut bien avoir `a l’esprit que le mod`ele de l’oracle al´eatoire est un mod`ele id´ealis´e, dans lequel les fonctions de hachage sont parfaites. Avoir une preuve sans oracles al´eatoires est un meilleur gage de s´ecurit´e, mˆeme si aucun sch´ema non-pathologique‡prouv´e dans le mod`ele de l’oracle al´eatoire n’a ´et´e cass´e jusqu’ici. Un avantage n´eanmoins du mod`ele de l’oracle al´eatoire est qu’il permet des preuves relativement simples (et donc ais´ement v´erifiables) de sch´emas tr`es pratiques, alors que la s´ecurit´e de sch´emas dans le mod`ele standard est ´etablie parfois au d´epens de la simplicit´e.
2.2 Probl` emes cryptographiques difficiles
Comme nous l’avons pr´ec´edemment ´evoqu´e, la cryptographie `a cl´e publique est bas´ee sur la notion de probl`eme suppos´e difficile.
Par d´efinition, un probl`eme sera dit difficile s’il n’existe pas d’algorithme connu polynomial pour le r´esoudre. Ainsi, comme nous pouvons le voir, un probl`eme est dit difficile ou non sui- vant les connaissances scientifiques, `a un moment donn´e. Autrement dit, l’´evolution des savoirs pourrait ´eventuellement changer la nature de certains probl`emes.
Dans cette section, nous rappelons quelques-uns des principaux probl`emes difficiles utilis´es en cryptographie et que nous appelleronsprobl`emes cryptographiques.
2.2.1 Probl`emes cryptographiques difficiles bas´es sur la factorisation
La premi`ere famille de probl`emes cryptographiques est celle des probl`emes bas´es sur la facto- risation des entiers. Factoriser un nombre consiste `a l’´ecrire sous forme d’un produit de nombres premiers. C’est un des probl`emes calculatoires qui ont ´et´e ´etudi´es depuis le plus longtemps, mais,
`
a ce jour, aucun algorithme polynomial pour le r´esoudre n’est connu.
Cette famille a ´et´e utilis´ee de fa¸con r´evolutionnaire dans [RSA78] par Ronald Rivest,Adi Shamir et Leonard Adleman pour donner naissance aux premiers sch´emas de signature et de chiffrement `a cl´e publique (voir Sections 4.4.1 et 8.2.1). D´efinissons tout d’abord ce qu’est un module RSA, ainsi qu’un sous-type de ces modules, les modules RSA forts (en anglais, safe modulus).
D´efinition 1 (Module RSA). Un module RSA de taille `n est un entier n = pq de `n bits, pour deux premiers distinctsp et q.
Avant de d´efinir ce qu’est un moduleRSAfort, rappelons qu’un premier pest fort si p−12 est
´egalement premier.
D´efinition 2 (Module RSA fort). Un module RSA fort de taille `n est un entier n=pq de
`n bits, pour deux premiers forts distinctsp et q.
Nous consid´erons maintenant le probl`eme de la factorisation appliqu´e aux modules RSA.
D´efinition 3 (Factorisation – FACT). Soient n un module RSA. Le probl`eme de la factori- sation (sous-entendu, des modules RSA) est de d´ecomposer n en un produit de deux facteurs premiers.
Le probl`emeRSA, sur lequel sont bas´es de nombreux sch´emas de chiffrement ou de signature, se d´efinit alors comme suit [RSA78].
‡C’est-`a-dire qui n’a pas ´et´e cr´e´e de fa¸con artificielle pour montrer une faiblesse du mod`ele de l’oracle al´eatoire.
D´efinition 4 (Racine e-i`eme – RSA). Soient n un module RSA, y ∈Z∗n, et e>3 un entier premier avecφ(n). Le probl`eme de la racinee-i`eme est de trouverx∈Z∗n, tel que y=xe modn.
Enfin, un troisi`eme probl`eme de cette famille a ´et´e introduit [BP97,FO97].
D´efinition 5 (Probl`eme souple RSA – FlexibleRSA). Etant donn´´ e un module RSA fort net un ´el´ement y∈Z∗n, le probl`eme FlexibleRSAest de trouver un x∈Z∗n et un entier e >1tels que y=xemodn.
De fa¸con claire, nous avons de simples r´eductions entre ces probl`emes : FlexibleRSA⇐RSA⇐FACT .
Chacun de ces probl`emes est suppos´e difficile, pour des modules´equilibr´es, c’est-`a-dire pour lesquels les tailles de p et deq sont `a peu pr`es ´equivalentes. Plus pr´ecis´ement, il est conjectur´e qu’il n’existe pas d’attaquant qui puisse r´esoudre un de ces probl`emes avec une probabilit´e non n´egligeable, en un temps polynomial. Ces hypoth`eses sont appel´ees respectivement l’hypoth`ese de difficult´e de la factorisation, l’hypoth`ese RSAet l’hypoth`ese RSAforte‡.
2.2.2 Probl`emes cryptographiques difficiles bas´es sur le logarithme discret La seconde famille de probl`emes cryptographiques est celle des probl`emes bas´es sur le loga- rithme discret. C’est la famille qui a servi aux premi`eres constructions cryptographiques `a cl´e publique, puisque c’est sur cette base queWhitfield Diffie etMartin Hellmanont construit l’´echange de cl´e Diffie-Hellman[DH76].
Dans cette section, les groupes sont consid´er´es cycliques et leur loi est not´ee multiplicative- ment.
D´efinition 6 (Logarithme discret - DL). Soient g un g´en´erateur d’un groupe G d’ordre q, et y un ´el´ement du groupe G. Le probl`eme du logarithme discret dans G est de trouver x ∈Zq, tel que gx=y.
La valeurxainsi obtenue est appel´ee lelogarithme discret deyen baseget est not´eeDLg(y).
Un sous-probl`eme fut introduit plus tard, grˆace `a l’invention par Taher ElGamal [ElG85] du premier cryptosyst`eme bas´e sur le logarithme discret (voir Section8.2.2).
D´efinition 7 (Probl`eme calculatoire Diffie-Hellman - CDH). Soit g un g´en´erateur d’un groupe Gd’ordre q. Le probl`eme calculatoire Diffie-Hellman dans G est de calculer gab `a partir de (g, ga, gb), pour des al´easa et b tir´es dansZq.
La version d´ecisionnelle de ce probl`eme est d´efinie ci-dessous.
D´efinition 8 (Probl`eme d´ecisionnel Diffie-Hellman - DDH). Soit g un g´en´erateur d’un groupe Gd’ordre q. Le probl`eme d´ecisionnel Diffie-Hellman dansG est de distinguer les distri- butions (g, ga, gb, gab) et (g, ga, gb, gc), pour des al´eas a, b et c tir´es dans Zq.
‡L’hypoth`eseRSAforte stipule que le probl`emeFlexibleRSA est difficile. Cette d´enomination sera pr´ef´er´ee `a
“hypoth`eseFlexibleRSA”, pour bien pr´eciser que ce qui est conjectur´e est plus fort.
2.2. Probl`emes cryptographiques difficiles
Nous avons de simples r´eductions entre ces probl`emes : DDH⇐CDH⇐DL .
Chacun de ces probl`emes est suppos´e difficile, pour des groupes Gbien choisis, tels que les sous-groupes deZ∗p d’ordreq, pour un grand premier p et un grand premier q divisant (p−1), ou encore les points d’une courbe elliptique [Mil85,Kob87]. Il est ainsi conjectur´e qu’il n’existe pas d’attaquant qui puisse r´esoudre un de ces probl`emes avec une probabilit´e non n´egligeable, en un temps polynomial. Ces hypoth`eses sont appel´ees respectivement l’hypoth`ese de difficult´e du logarithme discret, l’hypoth`ese Diffie-Hellman et l’hypoth`ese d´ecisionnelle Diffie-Hellman.
Un dernier probl`eme, `a la fronti`ere entre les probl`emes bas´es sur le logarithme discret et les probl`emes bas´es sur la factorisation, est apparu, depuis son utilisation par Marc Girault dans [Gir90].
D´efinition 9 (Logarithme discret dans un groupe d’ordre secret - DLx). Soient g un g´en´erateur d’un groupe d’ordre secretGety un ´el´ement deG. Le probl`eme du logarithme discret dans le groupe d’ordre secretG est de trouverx, tel quegx=y.
Tout particuli`erement, les groupes d’ordre secret peuvent ˆetre les sous-groupes deZ∗n, pour un moduleRSAn. Nous notons le probl`eme correspondantDLn. Nous avons alors une r´eduction suppl´ementaire :
FACT⇐DLn .
En effet, si un algorithmeApeut r´esoudreDLnpour un modulen, il est possible de l’utiliser pour factoriser un module RSA n de `n bits. Pour cela, il suffit de prendre g ∈ Z∗n et r ∈ {0,1}`n+80, puis de calculery=gr modn. En donnant (g, y, n) `a l’algorithmeA, celui-ci retourne r0 tel quey=gr0 modn. Or, dansy, seule l’informationrmodulo l’ordre degpeut ˆetre accessible
`
a l’attaquant, et donc, sauf une probabilit´e plus petite que 2−80,r0 6=r. Dans ce cas,r−r0 est un multiple non-nul de l’ordre deg. En renouvelant cette proc´edure plusieurs fois, et en utilisant l’algorithme deGarry Miller [Mil76], la factorisation de nest alors d´eduite.
2.2.3 Probl`emes cryptographiques difficiles avec fonction bilin´eaire
La troisi`eme et derni`ere famille de probl`emes cryptographiques dont nous parlerons dans cette th`ese est celle des probl`emes bas´es sur l’utilisation de fonctions bilin´eaires (voir Section 1.3.5).
C’est la famille de probl`emes qui a permis l’invention des premiers cryptosyst`emes bas´es sur l’identit´e [BF01,BF03] parDan Boneh etMatthew Franklin(voir Section 8.3.3).
Dans cette section encore, les groupes sont consid´er´es cycliques et leur loi est not´ee multipli- cativement. Les probl`emes les plus imm´ediats, lorsque les fonctions bilin´eaires sont consid´er´ees, sont les suivants [Jou00,BF01].
D´efinition 10 (Probl`eme calculatoire Diffie-Hellman bilin´eaire - CBDH). SoientG1 et GT deux groupes d’ordre q, une application bilin´eaire e : G1×G1 → GT et un g´en´erateur g de G1. Le probl`eme calculatoire Diffie-Hellman bilin´eaire est de calculer e(g, g)abc `a partir de (g, ga, gb, gc), pour des al´easa, b etc tir´es dansZq.
La version d´ecisionnelle de ce probl`eme est d´efinie ci-dessous.
D´efinition 11 (Probl`eme d´ecisionnel Diffie-Hellman bilin´eaire - DBDH). Soient G1 et GT deux groupes d’ordre q, une application bilin´eaire e : G1 ×G1 → GT et un g´en´erateur g de G1. Le probl`eme d´ecisionnel Diffie-Hellman bilin´eaire est de distinguer les distributions (g, ga, gb, gc, e(g, g)abc) et (g, ga, gb, gc, e(g, g)d), pour des al´easa, b, c etd tir´es dans Zq.
Il existe ´egalement un probl`eme ´echelon entre les versions d´ecisionnelles et calculatoires (en anglais, un probl`eme gap [OP01b]).
D´efinition 12 (Probl`eme ´echelon Diffie-Hellman bilin´eaire - GBDH). Soient G1 et GT
deux groupes d’ordre q, une application bilin´eaire e:G1×G1 →GT et un g´en´erateur g de G1. Le probl`eme ´echelon Diffie-Hellman bilin´eaire est de calculer e(g, g)abc, `a partir de(g, ga, gb, gc) et d’un acc`es `a un oracle r´esolvant le probl`eme DBDH, pour des al´easa, b etc tir´es dansZq.
Nous avons de simples r´eductions entre ces probl`emes :
DBDH⇐CBDH⇐DLG1 et GBDH⇐CBDH⇐DLG1 .
Enfin, nous d´efinissons ci-dessous un probl`eme qui simplifiera certaines de nos preuves dans la suite de cette th`ese.
D´efinition 13 (Probl`eme calculatoire Diffie-Hellman bilin´eaire par liste - LBDH).
Soient G1 et GT deux groupes d’ordre q, une application bilin´eaire e : G1 ×G1 → GT et un g´en´erateur g de G1. Le probl`eme calculatoire Diffie-Hellman bilin´eaire par liste de taille ` est de calculer, `a partir de (g, ga, gb, gc), une liste L, telle qu’un des ´el´ements de cette liste soit e(g, g)abc, pour des al´easa, b et ctir´es dansZq.
Ce dernier probl`eme est ´equivalent aux probl`emesDBDHetGBDH, comme nous le montre- rons Section 10.2.3.
2.3 Conclusion
Dans cette partie, nous avons rappel´e certaines notions de base de la s´ecurit´e prouv´ee. Nous avons insist´e notamment sur les notions de r´eduction, de mod`ele de s´ecurit´e, de mod`ele de l’oracle al´eatoire et de mod`ele standard. Nous avons ´egalement list´e quelques-uns des probl`emes cryptographiques les plus importants.
Chapitre 3
R´ esum´ e de nos travaux
Dans ce chapitre, nous ´enum´erons l’ensemble de nos travaux de th`ese, dans l’ordre chrono- logique de leur publication. Nous d´etaillons d’avantage les publications que nous n’avons pas incluses dans ce m´emoire, par souci d’unit´e de sujet.
Multiplication double-taille `a base de multiplieurs Euclidiens
Les dispositifs cryptographiques (comme les cartes `a puce) poss`edent parfois, pour acc´el´erer les algorithmes `a cl´e publique, des coprocesseurs cryptographiques. Ceux-ci permettent — entre autres — d’effectuer des op´erations modulaires sur des nombres denbits. Malheureusement, la taille des cl´es utilis´ees augmente souvent plus vite que la taille de ces coprocesseurshardware.
Aussi, le d´eveloppeur se retrouve face au probl`eme d’´emuler une multiplication modulaire de 2n-bits, `a l’aide de multiplications modulaires n-bits. Ce probl`eme s’appelle le doublement de taille (en anglais,size-doubling).
Une nouvelle technique de doublement de taille fut introduite `aChes ’02par Wieland Fi- scheret Jean-Pierre Seifert. Leur technique utilise ce qui est appel´e un multiplieur Eucli- dien, qui calcule le quotient et le reste d’une multiplication modulaire, c’est-`a-dire qui retourne, pour une entr´ee (x, y, z), `a la fois bxy/zc et xymodz. Pour ˆetre le plus g´en´erique possible, Wieland FischeretJean-Pierre Seifert montrent comment simuler une multiplication Eu- clidienne `a l’aide de deux multiplications modulaires simples.
Dans une publication deChes ’03[CJP03], avecMarc JoyeetPascal Paillier, nous am´e- liorons les algorithmes deWieland Fischer et Jean-Pierre Seifert, en proposant des stra- t´egies plus avanc´ees qui minimisent le nombre d’appels aux op´erations ´el´ementaires, offrant ainsi un gain en vitesse pouvant aller jusqu’`a 57%. De plus, dans le cas o`u les multiplications Euclidiennes sont elles-mˆemes ´emul´ees au moyen de multiplications modulaires simples, nous proposons de nouveaux algorithmes qui am´eliorent les solutions originales deWieland Fischer etJean-Pierre Seifertd’un facteur pouvant atteindre 71%.
Exponentiation intrins`equement prot´eg´ee contre la DPA — Chapitre 13 En 1999,Paul Kocher,Joshua JaffeetBenjamin Jun ont introduit les attaques diff´eren- tielles par analyse de signaux cach´es (comme la consommation de courant ou les rayonnements
´electromagn´etiques), attaques not´eesDPApour l’acronyme anglaisDifferential Power Analysis.
Heureusement, il est possible de se prot´eger de ce type d’attaque, grˆace `a la construction de hardware s´ecuris´e ou grˆace `a la s´ecurisation software des algorithmes cryptographiques. Bien souvent, c’est l’utilisation conjointe de ces deux m´ethodes qui est la plus efficace.
Une r`egle g´en´erale pour pr´evenir les attaques diff´erentielles est de rendre les valeurs internes de l’algorithme le plus al´eatoire possible.
Dans le cas du sch´ema RSA, il y a ainsi deux fa¸cons de rendre al´eatoire le calcul de y = xdmodn. Il est possible :
1. de rendre al´eatoires les entr´ees avant l’algorithme d’exponentiation ; par exemple, en uti- lisant
(a) ˆx←x+r1n pour un al´ear1 de k bits (b) ˆd←d+r2φ(n) pour un al´ea r2 de kbits
et en ´evaluant alorsy comme y= ˆymodn, avec ˆy= ˆxdˆmod 2kn; 2. de rendre al´eatoire l’algorithme d’exponentiation lui-mˆeme.
La premi`ere approche pr´esente l’avantage d’ˆetre ind´ependante de la m´ethode d’exponentia- tion. Malheureusement, un tel masquage de l’exposant dest limit´e aux mises en œuvre duRSA bas´ees sur le th´eor`eme des restes chinois (CRT), comme l’ordre du groupeφ(n) est habituellement inconnu lors d’une exponentiation priv´ee en mode standard (c’est-`a-dire sansCRT).
Le meilleur exemple de la seconde approche est sans doute l’algorithme MIST, propos´e par Colin Walter.MIST a ´et´e con¸cu pour g´en´erer al´eatoirement une chaˆıne de division correspon- dant `a l’exposant d, de fa¸con `a calculer xdmodn de fa¸con al´eatoire. Un autre exemple est une version am´elior´ee de l’algorithme `a fenˆetre glissante due `a Kouichi Itoh, Jun Yajima,Masa- hiko Takenaka etNaoya Torii. La seconde approche permet de rendre al´eatoire l’algorithme d’exponentiation sans la connaissance deφ(n), mais n´ecessite, pour nos exemples, un algorithme de division sˆur contre les attaques `a canaux cach´es ou un algorithme d’exponentiation plus complexe.
Dans une publication de Ct-rsa ’04 [Che04] nous introduisons une nouvelle m´ethode pour rendre al´eatoire une exponentiation, dans le but de se pr´emunir des attaques diff´erentielles, com- binant les avantages des deux approches. Comme dans la premi`ere approche, notre m´ethode ne requiert pas une m´ethode d’exponentiation particuli`ere. Comme dans la seconde approche, c’est l’algorithme lui-mˆeme qui est la source de l’ex´ecution al´eatoire (en particulier, notre m´ethode ne n´ecessite pas la connaissance pr´ealable de l’ordre du groupe φ(n)).
L’atomicit´e : une solution g´en´erique et peu coˆuteuse contre laSPA— Cha- pitre 12
En 1996, Paul Kocher d´ecrivit les attaques par mesure de temps et leur g´en´eralisation, les attaques simples par analyse de signaux cach´es (comme la consommation de courant ou les rayonnements ´electromagn´etiques), not´eesSPApour l’acronyme anglaisSimple Power Analysis.
Une fa¸con de se prot´eger de ce type d’attaques a fait l’objet d’une publication dans le journal IEEE Transactions on Computers, 53 [CCJ04], co-´ecrite avecMathieu CietetMarc Joye.
Dans ce papier, nous introduisons de nouvelles m´ethodes, efficaces et simples, pour transformer un algorithme cryptographique en un algorithme ´equivalent r´esistant aux attaques simples par canaux cach´es. Contrairement aux solutions pr´ec´edemment connues, la technique propos´ee ne se fait pas au d´etriment du temps d’ex´ecution. De plus, notre technique est g´en´erique, et peut ainsi s’appliquer `a toutes sortes d’algorithmes.
En guise d’application, nous proposons plusieurs nouvelles routines d’exponentiation : un algorithme binaire d’exponentiation gauche-droite, son ´equivalent droite-gauche, et plusieurs algorithmes `a fenˆetre glissante. Nous illustrons ´egalement notre m´ethodologie dans le cadre de la multiplication scalaire de points sur les courbes elliptiques. Tous les algorithmes pr´esent´es ont en commun d’avoir une complexit´e approximativement ´egale `a leur mise en œuvre non s´ecuris´ee.
Comment externaliser un programme ?
Dans une publication de Ches ’04 [CNPP04], avec David Naccache, Pascal Paillier et David Pointcheval, nous pr´esentons un nouveau type d’objet s´ecuris´e, appel´e le micropro- cesseur externalis´e (XµP). Le XµP se diff´erencie des cartes `a puces ou des autres dispositifs cryptographiques en ne contenant aucune m´emoire ROM (en anglais,read-only memory). Ainsi, le code que leXµPex´ecute lui est donn´e par l’ext´erieur (un ordinateur appel´e leterminal), qui, potentiellement, est malveillant ou corrompu.
Bien qu’exporter tout le code ex´ecutable d’un objet s´ecuris´e dans un terminal pose de vastes probl`emes de s´ecurit´e, les avantages d’un produit sans ROM sont nombreux : le temps de mas- quage des puces‡disparaˆıt, la correction des erreurssoftware(lesbugs) est ramen´ee `a une simple modification des codes stock´es dans les terminaux, et ne n´ecessite donc plus de coˆuteux retraits de produits sur le terrain. Encore mieux, la taille de code cesse d’ˆetre un facteur limitant. Ceci est particuli`erement significatif, ´etant donn´e la tendance actuelle des syst`emes d’exploitation `a se complexifier.
Nous introduisons une architecture pour leXµP, bas´ee sur un syst`eme `a cl´e publique de type RSA. Le surplus de communication — entre le terminal et la carte — dˆu `a la s´ecurisation du protocole est assez faible. Nous proposons deux protocoles permettant l’ex´ecution et l’authen- tification dynamique des programmes, exposons un mod`ele de s´ecurit´e pour ces protocoles et prouvons leur s´ecurit´e sous des hypoth`eses appropri´ees.
Une heuristique pour d´eriver des sch´emas de signature `a r´eduction fine
— Chapitre 5
Les sch´emas bas´es sur le logarithme discret sont tr`es appr´eci´es, notamment car ils permettent l’utilisation de coupons. Il est possible de prouver la s´ecurit´e de la plupart d’entre eux, dans le mod`ele de l’oracle al´eatoire, en utilisant le lemme de bifurcation de David Pointcheval et Jacques Stern. Malheureusement, la r´eduction de s´ecurit´e est alors lˆache. Au contraire, des sch´emas bas´es sur la factorisation, tels que RSA-PSS, permettent une r´eduction de s´ecurit´e fine, toujours dans le mod`ele de l’oracle al´eatoire. Cependant, dans ces sch´emas, il n’existe pas de moyen d’utiliser des coupons.
Dans une publication `a la conf´erence Acns ’05 [Che05b], nous proposons une heuristique utilisant un protocole d’identification `a trois passes `a divulgation nulle de connaissance et un sch´ema de signature v´erifiant certaines propri´et´es de s´ecurit´e. Avec ces composantes, notre trans- formation permet d’obtenir un sch´ema de signature `a coupons, avec une r´eduction de s´ecurit´e fine, dans le mod`ele de l’oracle al´eatoire. Plus pr´ecis´ement, si ses deux composantes sont sˆures, notre sch´ema de signature l’est aussi.
En application, nous proposons un sch´ema de signature `a coupons avec une r´eduction fine au probl`emeRSA. Notre sch´ema se compare tr`es bien `aRSA-PSS, comme il poss`ede une r´eduction aussi fine tout en apportant en plus l’usage de coupons pour de meilleures performances en-ligne.
Padding universel optimal — Chapitre 11
Lorsque la s´ecurit´e des sch´emas de chiffrement est consid´er´ee, l’indistinguabilit´e lors d’at- taques `a chiffr´es choisis est la notion requise. De mˆeme, pour la s´ecurit´e des sch´emas de signature, la r´esistance aux falsifications existentielles sous attaques `a messages choisis est indispensable.
Pourtant, la s´ecurit´e n’est pas la seule notion importante pour les sch´emas cryptographiques : toute bonne primitive se devrait d’ˆetre rapide, avec une bande passante efficace, compacte en code et simple d’utilisation.
‡Le masquage est une ´etape assez longue et assez coˆuteuse de la fabrication des cartes `a puces.