• Aucun résultat trouvé

Cryptographie à clé publique : Constructions et preuves de sécurité

N/A
N/A
Protected

Academic year: 2022

Partager "Cryptographie à clé publique : Constructions et preuves de sécurité"

Copied!
194
0
0

Texte intégral

(1)

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

(2)
(3)

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

(4)

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.

(5)

— `A ceux que j’aime.

(6)
(7)

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

(8)
(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)
(17)

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

Zn 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

Φpksk Une permutation `a sens unique `a trappe Φpk, dont l’inverse estψsk

(18)

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

(19)

Premi` ere partie

Introduction g´ en´ erale

(20)
(21)

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 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

(22)

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

(23)

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

(24)

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.

(25)

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

(26)

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.

(27)

Chapitre 2

S´ ecurit´ e prouv´ ee et cryptologie

Sommaire

2.1 eduction de s´ecurit´e et s´ecurit´e prouv´ee . . . . 9 2.1.1 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.

(28)

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.

(29)

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-pathologiqueprouv´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 de fa¸con artificielle pour montrer une faiblesse du mod`ele de l’oracle al´eatoire.

(30)

D´efinition 4 (Racine e-i`eme – RSA). Soient n un module RSA, y ∈Zn, et e>3 un entier premier avecφ(n). Le probl`eme de la racinee-i`eme est de trouverx∈Zn, 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∈Zn, le probl`eme FlexibleRSAest de trouver un x∈Zn 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.

(31)

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 deZp 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 deZn, 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 ∈ Zn 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.

(32)

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.

(33)

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.

(34)

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.

(35)

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 pucesdisparaˆı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.

Références

Documents relatifs

∪ Z n est un voisinage de y et φ induit des morphismes ´etales de la forme Spf(B hf −1 i) → SpfA comme ci-dessus (d’apr`es la preuve de [Ber2] 1.3.3, cela d´ecoule de la

10 Rappelons qu'une signature est le condensé d'un message (dans le cas présent, le message est CertB) chiffré à l'aide de la clé privée de l'émetteur (il s'agit ici de la

a) Montrer qu’un A-module M est artinien si et seulement si toute famille non vide de sous-A- modules de M admet un ´ el´ ement minimal.. b) On suppose que A est

Montrer que tout sous-sch´ ema ouvert de Spec(A) est affine (on pourra se ramener au cas du compl´ ementaire d’un point ferm´ e dans Spec(A) et utiliser le fait qu’un anneau

[r]

[r]

Dans cet exercice, on appelle k-vari´ et´ e un sch´ ema de type fini sur Spec(k). ferm´ ee) est-elle finie (resp. Montrer l’´ equivalence des propositions.. suivantes : i) f

[r]