• Aucun résultat trouvé

Cryptographie appliquée

N/A
N/A
Protected

Academic year: 2022

Partager "Cryptographie appliquée"

Copied!
737
0
0

Texte intégral

(1)
(2)

Cryptographie appliquée

Deuxième édition Protocoles, algorithmes

et codes cource en C

Traduction de Laurent Viennot

(3)

Table des matières

P r é fa c e xiii

Comment lire ce livre ... xiv

R em erciem ents... xvii

À p r o p o s d e l’ a u teu r x ix 1 P r in cip e s d e ba se 1 1.1 Terminologie ... 1

1.2 Steganographie... 9

1.3 Substitution et transposition... 10

1.4 Ou exclusif s i m p l e ... 14

1.5 Masque j e t a b l e ... 15

1.6 Algorithmes inform atiques... 18

1.7 Grands nom bres... 18

1 Protocoles cryptographiques 21

2 B riq u es élém en ta ires 23 2.1 Introduction aux p r o t o c o le s ... 23

2.2 Communications à l’aide d ’un cryptosystème à clef s e c r è te ... 30

2.3 Fonctions à sens unique ... 31

2.4 Fonctions de hachage à sens u n iq u e... 32

2.5 Communications à l’aide d ’un cryptosystème à clef p u b liq u e... 33

2.6 Signatures n u m ériqu es... 37

2.7 Signatures numériques avec chiffrement... 44

2.8 Générateurs aléatoires et pseudo-aléatoires... 47

3 P r o t o c o le s élém en taires 51 3.1 Échange de clefs ... 51

3.2 Authentification... 56

3.3 Authentification et échange de c le fs ... 61

3.4 Analyse formelle des protocoles d ’authentification et d ’échange de clefs 70 3.5 Cryptographie à clef publique à clefs multiples... 74

3.6 Secret m orcelé... 75

3.7 Secret r é p a r t i... 77

(4)

3.8 Protection cryptographique de bases de données... 80

4 P r o t o c o le s in term édia ires 81 4.1 Services de datation ... 81

4.2 Canal su b lim in a l... 85

4.3 Signatures numériques incontestables... 87

4.4 Signatures numériques à vérificateur d é d ié ... 88

4.5 Signatures par procuration... 89

4.6 Signatures collectives... 90

4.7 Signatures numériques « Fail-Stop »... ... 91

4.8 Calcul avec données chiffrées... 92

4.9 Mise en gage ... 92

4.10 Jouer à pile ou f a c e ... 95

4.11 Poker à l’a v e u g le ... 99

4.12 Accumulateurs à sens unique ... 102

4.13 Divulgation tout ou rien de s e c r e t s ... 103

4.14 Dépôt de c l e f s ... 103

5 P r o t o c o le s avancés 109 5.1 Preuves à divulgation nulle ... 109

5.2 Identification par preuve à divulgation n u l le ... 117

5.3 Signatures en aveugle ... 120

5.4 Cryptographie à clef publique à base d ’identification . . . 123

5.5 Transfert in con scien t... 124

5.6 Signatures in con scien tes... 126

5.7 Signature simultanée de c o n tr a t... 127

5.8 Courrier électronique certifié... 131

5.9 Echange simultané de s e c r e t s ... 132

6 P r o t o c o le s éso té riq u e s 135 6.1 Elections sûres ... 135

6.2 Calcul réparti s û r ... 144

6.3 Diffusion de messages anonymes . 148 6.4 Argent électronique . . . . 150

II Techniques cryptographiques 161

7 L o n g u e u r des clefs 163 7.1 Longueur des clefs secrètes... ... 163

7.2 Longueur des clefs publiques... 170

7.3 Comparaison de la longueur des clefs secrètes et des clefs publiques . 178 7.4 Attaques des anniversaires contre une fonction de hachage à sens unique 178 7.5 Quelle doit être la longueur de clef? ... 179

7.6 Avertissem ent... 180

(5)

8 G e s tio n des clefs 181

8.1 Génération de c l e f s ... 182

8.2 Espaces des clefs non linéaires... 188

8.3 Transfert de c l e f s ... 188

8.4 Vérification de clefs ... 190

8.5 Utilisation des c le fs ... 192

8.6 Mise à jour des c l e f s ... 193

8 7 Stockage des c l e f s ... 193

8.8 Duplicata des c l e f s ... 194

8.9 Clefs c o m p r o m is e s ... 195

8.10 Longévité des c l e f s ... 196

8.11 Destruction des c l e f s ... 197

8.12 Gestion des clefs pour la cryptographie à clef p u b liq u e ... 198

9 T y p e s et m o d e s d ’a lg o rith m e s 201 9.1 Carnet de codage électronique... 202

9.2 Bloc rejoué ... 203

9.3 Mode de chiffrement avec chaînage de b l o c s ... 205

9.4 Algorithmes de chiffrement en c o n t i n u ... 209

9.5 Chiffrement autosynchrone en c o n t i n u ... 211

9.6 Chiffrement à rétroaction ... 212

9.7 Chiffrement synchrone en co n tin u ... 214

9.8 Mode de rétroaction de s o r t i e ... 216

9.9 Mode « compteur » ... 219

9.10 Autres m o d e s ... 220

9.11 Choix d’un mode opératoire de chiffrement... 222

9.12 Intercalation... 223

9.13 Chiffrement par blocs vs chiffrement en c o n tin u ... 225

10 U tilisa tio n des a lg o rith m e s 227 10.1 Choix d’un a lg o rith m e ... 228

10.2 La cryptographie à clef publique vs la cryptographie à clef secrète . . 230

10.3 Chiffrement des canaux de com m unication... 230

10.4 Chiffrement des données à des fins de stockage ... 235

10.5 Chiffrement matériel vs chiffrement logiciel ... 237

10.6 Compression, codage et chiffrem ent... 240

10.7 Détection du chiffrem ent... 241

10.8 Cacher du texte chiffré dans du texte c h iffr é ... 242

10.9 Destruction d’in fo rm a tio n ... 243

III Algorithmes cryptographiques 245

11 R u d im en ts m a th ém a tiq u es 247 11.1 Théorie de l’in fo rm a tio n ... 247

11.2 Théorie de la com p lex ité... 251

11.3 Théorie des n o m b r e s ... 256

11.4 Factorisation ... 271

(6)

11.5 Génération de nombres premiers ... 274

11.6 Logarithmes discrets dans un corps fini . . . 278

12 L e D E S 281 12.1 H istoriqu e... 281

12.2 Description du DES... 286

12.3 Niveau de sécurité du D E S • 296 12.4 Cryptanalyse différentielle et linéaire ... . . . 302

12.5 Les critères réels de conception . . . 311

12.6 Variantes du DES ... 312

12.7 A quel point le DES est-il sûr de nos j o u r s ? . . 318

13 A u tre s a lg o rith m e s d e ch iffrem en t pa r b lo c s 321 13.1 Lucifer . - 321 13.2 Ma d r y g a... ... 322

13.3 Ne wD E S ... 325

13.4 F E A L ... 325

13.5 R E D O C ... 331

13.6 L O K I ... 332

13.7 Khufu et Kh afre... 335

13.8 R C 2 ... 337

13.9 I D E A ... 338

13.10 M M B ... ... 345

13.11 C A - 1 . 1 ... 346

13.12 Sk i p j a c k... 347

14 E n co re d ’au tres a lg o rith m e s d e ch iffrem en t pa r b lo c s 351 14.1 G O S T ... 351

14.2 C A S T ... 354

14.3 Bl o w f is h... 355

14.4 S A F E R ... ... 359

14.5 3 - W A Y ... ... 361

14.6 C R A B ... 362

14.7 S X A L 8 et M B A L ... 364

14.8 R C 5 ... 364

14.9 Autres algorithmes de chiffrement par blocs . . 366

14.10 Théorie des algorithmes de chiffrement par blocs . 366 14.11 Utilisation de fonction de hachage à sens unique... 372

14.12 Choisir un algorithme de chiffrement par blocs . 375 15 C o m b in a iso n d ’ a lg o rith m e s d e ch iffrem en t pa r b lo c s 377 15.1 Surchiffrement double ... 377

15.2 Surchiffrement t r i p l e ... 379

15.3 Doublement de la longueur de b l o c ... 384

15.4 Autres schémas de surchiffrement . 384 15.5 Troncature de clef (dans C D M F ) . 387 15.6 Blanchim ent... 387

15.7 Mise en cascade de plusieurs algorithm es... 388

(7)

15.8 Combiner plusieurs algorithmes de chiffrement par b l o c s ... 389

16 G én éra teu rs de su ites a léa toires et ch iffrem en t en con tin u 391 16.1 Générateurs pseudo-aléatoires de su ites... 391

16.2 Registres à décalage à rétroaction lin é a ir e ... 395

16.3 Conception et analyse d’algorithmes de chiffrement en continu . . . . 402

16.4 Chiffrement en continu à base de R D R L ... 403

16.5 A 5 ... 412

16.6 Hugues X P D / K P D ... 413

16.7 Na n o t e q... 413

16.8 Ra m b u t a n... 414

16.9 Générateurs a d d i t i f s ... 414

16.10 Gifford ... 416

16.11 Algorith m e M ... 417

16.12 P K Z IP ... 417

17 A u tr e s a lg o rith m e s d e ch iffrem en t e n co n tin u e t g én éra teu rs d e su ites v ra im en t aléa toires 419 17.1 R C 4 ... 419

17.2 S E A L ... 420

17.3 W A K E ... 423

17.4 Registres à décalage à rétroaction avec r e t e n u e ... 424

17.5 Chiffrement en continu à base de R D R R ... 427

17.6 Registres à décalage à rétroaction non linéaire... 433

17.7 Autres algorithmes de chiffrement en c o n t i n u ... 435

17.8 Approche par la théorie des systèm es... 436

17.9 Approche par la théorie de la com plexité... 437

17.10 Autres approches à la conception d ’algorithmes de chiffrement en conti­ nu ... 439

17.11 Chiffrement en continu en cascade ... 441

17.12 Choisir un algorithme de chiffrement en co n tin u ... 442

17.13 Génération de plusieurs flux à partir d’un seul générateur pseudo­ aléatoire de su ites... 442

17.14 Générateurs de suites vraiment aléatoires ... 444

18 F o n ctio n s d e h ach age à sens u n iq u e 453 18.1 Introduction... 453

18.2 Snefru ... 455

18.3 N -Ha s h... 457

18.4 M D 4 ... 458

18.5 M D 5 ... 460

18.6 M D 2 ... 465

18.7 Algorithme sûr de hachage SHA ... 465

18.8 R I P E - M D ... 469

18.9 H A V A L ... 469

18.10 Autres fonctions de hachage à sens u n iq u e ... 470

18.11 Utilisation d ’algorithmes de chiffrement par b l o c s ... 471

18.12 Utilisation d ’algorithmes à clef p u b liq u e ... 479

(8)

18.13 Choix d’une fonction de hachage à sens u n i q u e ... 479

18.14 Codes d ’authentification de m essages... 479

19 A lg o rith m e s à c le f p u b liq u e 485 19.1 Introduction ... 485

19.2 Algorithmes à em pilem ent... 486

19.3 R S A ... 491

19.4 Pohlig- Hellman ... 499

19.5 Ra b i n... 500

19.6 ElGa m a l... 501

19.7 McEliece ... 504

19.8 Cryptosystèmes à courbes ellip tiq u es... 505

19.9 L U C ... 506

19.10 Automates f i n is ... 507

20 A lg o r ith m e s d e sign atu re n u m ériq u e à c le f p u b liq u e 509 20.1 Algorithme de signature numérique D SA ... 509

20.2 Variantes de D SA ... 520

20.3 Algorithme de signature numérique G O S T . 522

20.4 Schémas de signature numérique à base de logarithmes discrets . . 523

20.5 Ong Schnork Sh a m i r . . 525

20.6 E S I G N ... 526

20.7 Automates cellulaires... 527

20.8 Les autres algorithmes à clef publique ... 527

21 Schém as d ’ id e n tifica tio n 531 21.1 Feige- Fiat- Sham ir ... 531

21.2 Guillou- Qu i s q u a t e r... 536

21.3 Sc h n o r r... 538

21.4 Convertir un schéma d ’identification en un schéma de signature numé­ rique ... 540

22 A lg o rith m e s d ’éch a n ge d e clefs 541 22.1 Diffie- Hellman ... 541

22.2 Protocole point à p o in t ... 544

22.3 Protocole à trois passes de Sh a m i r... 544

22.4 C O M S E T ... 545

22.5 Échange de clefs chiffré... 546

22.6 Négociation de clef fortifiée ... 550

22.7 Distribution de clef de conférence et diffusion de s e c r e t ... 551

23 A lg o r ith m e s sp écia u x p o u r p r o t o c o le s 555 23.1 Cryptographie à clef publique à clefs multiples... 555

23.2 Algorithmes de partage de s e c r e t ... 556

23.3 Canal s u b lim in a l... 560

23.4 Signatures numériques incontestables... 565

23.5 Signatures numériques à vérificateur d é d ié ... 567

23.6 Calcul avec données chiffrées... 569

(9)

23.7 Pile ou face équitable... 570

23.8 Accumulateurs à sens unique ... 572

23.9 Divulgation tout ou rien de s e c r e t s ... 572

23.10 Cryptosystèmes équitables et à sûreté intégrée . . . . 575

23.11 Preuves à divulgation nulle ... 577

23.12 Signatures en aveugle... 579

23.13 Transfert in con scien t... 579

23.14 Calcul réparti s û r ... 580

23.15 Chiffrement p ro b a b iliste... 582

23.16 Cryptographie quantique... 584

IV Le monde réel 587

24 E x e m p le s d e réa lisa tion 589 24.1 Protocole IBM de gestion de clefs secrètes... 589

24.2 M I T R E N E T ... 590

24.3 RNIS ... 591

24.4 S T U - I I I ... 593

24.5 Ke r b e r o s... 594

24.6 Kr y p t oKn i g h t... 600

24.7 SESAME ... 600

24.8 Architecture cryptographique commune d’I B M ... 601

24.9 Environnement d’authentification I S O ... 602

24.10 « Privacy-Enhanced Mail » ( P E M ) ... 606

24.11 « Message Security Protocol » (M S P ) ... 612

24.12 « Pretty G ood Privacy » (P G P ) ... 613

24.13 Cartes à p u c e ... 615

24.14 « Public-Key Cryptography Stan­ dards » (P K C S ) ... 616

24.15 Système de paiement électronique u n iv e r s e l... 618

24.16 Cl i p p e r... 620

24.17 Ca p s t o n e... 622

24.18 Modèle 3600 du dispositif de sécurité du téléphone d ’A T & T . . . . 623

25 P o litiq u e 625 25.1 « National Security Agency » ( N S A ) ... 625

25.2 « National Computer Security Center » (N C SC )... ... 627

25.3 « National Institute o f Standards and Technology » ( N I S T ) ... 628

25.4 R S A Data Se c u r it y, In c... 632

25.5 « Public Key Partners » ( P K P ) ... 632

25.6 « International Association for Cryptologie Research » (IACR) . . . 634

25.7 « R A C E Integrity Primitives Evaluation » (R IP E ) . . . . . 634

25.8 « Conditional Access for Europe » ( C A F E ) ... 635

25.9 « ISO /IE C 9979 » ... 636

25.10 Groupes industriels, de défense des libertés civiles, et professionnelles 637 25.11 Sc i.c r y p t... 638

25.12 Cy p h e r p u n k s... 638

(10)

25.13 B revets... 639

25.14 Réglementation américaine à l’ex p orta tion ... 639

25.15 Importation et exportation de cryptographie... 647

25.16 L é g a l it é ... 648

P o s tfa c e d e M a tt B la ze 651

V Code source 655

D E S ... 657

L O K I 9 1 ... 675

I D E A ... 685

G O S T ... N 701 Bl o w f i s h... 711

3-Wa y... 721

R C 5 ... 727

A 5 ... 729

S E A L ... 735

L e x iq u e anglais—français 741

B ib lio g ra p h ie 747

In d e x 827

(11)

Préface

Il existe deux types de cryptographie dans le monde: la cryptographie qui empêche votre petite sœur de lire vos fichiers, et la cryptographie qui empêche les principaux gouvernements de lire vos fichiers. Ce livre traite de la deuxième.

Je prends une lettre, l’enferme dans un coffre et cache ce coffre quelque part dans New York... si je vous demande ensuite de lire la lettre, il n’est pas question de sécurité:

c’est de l’obscurité. Autre exemple : je prends une lettre, l’enferme dans un coffre et vous donne le coffre avec ses spécifications de conception et une centaine d’autres coffres identiques avec leurs combinaisons, de telle manière que vous et les meilleurs perceurs de coffres-forts puissiez étudier le mécanisme de verrouillage... si vous ne pouvez toujours pas ouvrir le coffre contenant la lettre, il est alors question de sécurité.

Pendant de nombreuses années, ce type de cryptographie était le domaine exclusif des militaires. La « National Security Agency » américaine et ses contreparties en ex-Union soviétique, au Royaume-Uni, en France, en Israël, et partout ailleurs, ont dépensé des milliards de dollars au jeu très sérieux de la protection de leurs propres communications, tout en essayant de casser toutes celles des autres. Le particulier, avec nettement moins d ’expertise et de budget, était impuissant à protéger sa propre vie privée vis-à-vis de ces gouvernements.

Durant ces vingt dernières années, il y a eu une explosion de recherche académique publique en cryptographie. Alors que la cryptographie classique est utilisée depuis longtemps par des citoyens ordinaires, la cryptographie par ordinateur était le domaine réservé des militaires depuis la Seconde Guerre mondiale. De nos jours, la cryptographie à la pointe de l’art est pratiquée en dehors de la protection des murs des agences militaires. Le profane peut maintenant employer des techniques cryptographiques qui le protègent contre les adversaires les plus puissants — à un niveau de sécurité qui pourrait même le protéger des agences militaires pour plusieurs années à venir.

Est-ce que l’individu moyen a besoin de ce type de sécurité? Je l’affirme. Il peut prépa­

rer une campagne politique, il peut discuter de ses impôts, ou avoir une liaison illicite.

Il peut concevoir un nouveau produit, discuter d’une stratégie de commercialisation, ou préparer une prise de pouvoir commerciale agressive. Il peut vivre dans un pays qui ne respecte pas le droit à la vie privée de ses citoyens. Il peut faire quelque chose qu’il estime ne pas être illégal mais qui l’est. Peu importe les raisons, ses données et ses communications sont personnelles, privées et ce n’est l’affaire de personne d’autre à part lui.

Ce livre est publié en des temps troubles. L’administration Cl i n t o n a adopté le pro­

gramme « Escrowed Encryption Standard» (qui repose sur la puce CLlPPERet la carte Fo r t e z z a) et le projet de loi « Digital Telephony ». Ces deux initiatives tendent à

(12)

donner au gouvernement la possibilité de mener des surveillances électroniques.

Cela repose sur la dangeureuse hypothèse orwelienne que le gouvernement a le droit d ’écouter les communications privées, et qu’il y a anguille sous roche si un citoyen tente de dissimuler un secret au gouvernement. Les lois ont toujours permis de mener une éventuelle surveillance avec l’autorisation des tribunaux. Mais c ’est la première fois que chacun est contreint de participer activement pour rendre sa surveillance possible.

Ces initiatives ne sont pas seulement des propositions gouvernementales concernant un domaine obscur, elles sont une tentative préventive et unilatérale d’usurper des pouvoirs qui relevaient de chacun.

Cl ip p e r et la loi « Digital Telephony » ne protègent pas la vie privée : elles obligent les individus à avoir confiance inconditionnellement dans le Gouvernement quant au respect de leur vie privée. Elle émet l’hypothèse que le Gouvernement fait partie des bons et que tous les citoyens font partie des méchants. Les mêmes autorités légales qui ont placé des écoutes illégales sur les lignes téléphoniques de Martin Luther King Jr.

peuvent facilement espionner un téléphone protégé par une puce Cl i p p e r. Durant ces cinq dernières années, les autorités de police locales ont été poursuivies pénalement ou civilement dans de nombreuses juridictions — y compris le Maiyland, le Connecticut, le Vermont, la Géorgie, le Missouri et le Nevada — pour avoir placé des écoutes illégales.

C ’est une mauvaise idée de déployer une technologie qui pourrait un jour aider un état policier.

On peut en tirer la leçon qu’il est insuffisant de se protéger avec des lois, il faut se protéger avec les Mathématiques. Le chiffrement est trop important pour être laissé au gouvernement.

Ce livre vous donne les moyens de préserver votre vie privée ; les appareils de chiffrement peuvent être déclarés illégaux, mais l’information ne le sera jamais.

Comment lire ce livre

J’ai écrit Applied Cryptography comme un ouvrage de référence exhaustif sur la cryp­

tographie moderne. J’ai privilégié la lisibiüté du texte sans pour autant sacrifier l’exac­

titude et la précision. Ce livre ne se veut pas un traité mathématique. Bien que je n’aie pas donné délibérément de fausses informations, j ’ai été cavalier avec la théo­

rie. Pour ceux qui sont intéressés par le côté formel, il y a de nombreuses références bibliographiques de la littérature académique.

Le premier chapitre introduit la cryptographie, définit de nombreux termes et présente brièvement la cryptographie avant l’ère informatique.

Les chapitres 2 à 6 (première partie) présentent les protocoles cryptographiques. Les protocoles vont du plus simple (envoyer un message chiffré d ’une personne à l’autre) au plus complexe (jouer à pile ou face par téléphone) et à l’ésotérique (l’échange d ’argent électronique sûr et anonyme). Certains de ces protocoles sont évidents, d’autres sont presque ahurissants. La cryptographie permet de résoudre de nombreux problèmes que la plupart des gens n’ont jamais réalisé qu’il soit possible de les résoudre.

Les chapitres 7 à 10 (deuxième partie) présentent les techniques cryptographiques.

Les quatre chapitres de cette partie sont tous importants même pour l’utilisation la plus élémentaire de la cryptographie. Les chapitres 7 et 8 traitent des clefs : quelle doit être la longueur d’une clef pour qu’elle soit sûre, comment engendrer les clefs, comment stocker les clefs, comment détruire les clefs, etc. La gestion des clefs est la

(13)

partie la plus difficile de la cryptographie, et est souvent le tendon d’Achille de systèmes cryptographiques qui seraient sinon très sûrs. Le chapitre 9 présente différents moyens d’utiliser les algorithmes cryptographiques, et le chapitre 10 donne les tenants et les aboutissements des algorithmes : comment choisir, réaliser, et utiliser des algorithmes.

Les chapitres 11 à 23 (troisième partie) fournissent une liste d ’algorithmes, le livre dé­

crit finalement les algorithmes. Le chapitre 11 donne des fondements mathématiques.

Ce chapitre n’est obligatoire que si vous êtes intéressé par les algorithmes à clef pu­

blique. Si vous voulez seulement réaliser le DES (ou quelque chose de similaire), vous pouvez passer ce chapitre. Le chapitre 12 décrit le D E S : l’algorithme, son histoire, sa sécurité, et quelques variantes. Le chapitre 13, 14 et 15 décrivent d’autres algo­

rithmes à clef secrète. Si vous voulez quelque chose de plus sûr que le DES, lisez la section sur ID E A ou sur le DES triple. Si vous voulez prendre connaissance de plu­

sieurs algorithmes, dont certains pourraient être plus sûrs que le DES, lisez les trois chapitres. Les algorithmes 16 et 17 traitent des algorithmes de chiffrement en continu.

Le chapitre 18 concerne les fonctions de hachage à sens unique: M D 5 et SHA sont les plus communes bien que j ’en décrive beaucoup d ’autres. Le chapitres 19 décrit les algorithmes à clef publique, le chapitre 20 concerne les algorithmes de signature nu­

mérique à clef publique. Les algorithmes importants sont R SA , D SA , Fi a t- Sh a m i r

et Dif f ie He l l m a n respectivement. Le chapitre 23 contient des algorithmes à clef publique et des protocoles plus ésotériques ; les mathématiques peuvent se compliquer : attachez votre ceinture.

Les chapitres 24 et 25 (quatrième partie) se tournent vers le monde réel de la cryp­

tographie. Le chapitre 24 décrit quelques réalisations concrètes de ces algorithmes et de ces protocoles, tandis que chapitre 25 aborde le contexte politique qui entoure la cryptographie. Ceux-ci n’ont aucunement la prétention d’être exhaustifs.

Enfin, ce livre contient les codes sources de dix des algorithmes de la troisième partie.

Je n’ai pas pu inclure autant de codes que je l’aurait souhaité pour des raisons de limitation en place, et sans quoi les codes sources cryptographiques n’auraient pas pu être exportés. (Aussi surprenant que cela puisse paraître, le Département d’Etat amé­

ricain a autorisé l’exportation de la première édition ce livre avec les codes sources qu’il contenait, mais a refusé l’exportation d’une disquette de codes sources contenant exac­

tement les mêmes codes sources. Allez savoir.) Un jeu de disquettes inclus bien plus de codes sources que je ne pouvais en donner dans ce livre ; cela constitue probablement la plus grande bibliothèque de codes sources cryptographiques hors des institutions mili­

taires. Je ne peux envoyer des disquettes de codes sources qu’aux citoyens américains ou canadiens vivant aux Etats-Unis ou au Canada, mais cela devrait heureusement changer un jour.

S’il y avait une critique à faire de ce livre, c’est que sa nature encyclopédique le rend moins lisible. C ’est vrai, mais je voulais offrir une seule référence pour ceux qui pour­

raient rencontrer un algorithme dans la littérature académique ou dans un produit. À ceux qui s’intéressent plus à un cours d’introduction, je présente mes excuses. Beaucoup est fait dans ce domaine. C ’est la première fois que tant de choses ont été rassemblées sous un même chapeau. Même ainsi, il y a de nombreuses choses que le manque de place m ’a obligé à laisser de côté. J’ai essayé de couvrir les sujets que je trouvais soit importants, d ’intérêt pratique, ou intéressants. Quand je n’ai pu traiter un sujet en profondeur, j ’ai donné les références des publications qui le font.

J’ai fait la chasse aux erreurs du mieux que j ’ai pu, mais de l’avis général c ’est quasi

(14)

impossible de n’en laisser aucune. La seconde édition contient sûrement moins d’erreurs que la première. Je tiens à votre disposition une liste des errata qui est périodiquement postée au group USENET s c i . c r y p t . Si quelqu’un trouve une erreur, s’il vous plaît, avertissez-moi. Pour chaque erreur, la première personne qui me la signale recevra une copie gratuite de la disquette1.

1. N ote du traducteur : cette offre n ’est valable que p ou r l’édition am éricaine de l’ouvrage.

(15)

Remerciements

La liste des gens qui ont contribué à la réalisation de ce livre semble infinie mais ils méritent tous d ’être mentionnés. Je tiens à remercier Don Al v a r e z, Ross An d e r s s o n, Dave Ba l e n s o n, Karl Ba r r u s, Steve Be l l o v i n, Dan Be r n s t e i n, Eli Bi h a m, Joan Bo y a r, Karen Co o p e r, W hit Di f f i e, Joan Fe i g e n b a u m, Phil Ka r n, Neal Ko b l i t z, Xuejia La i, Tom Le r a n t h, Mike Ma r k o w i t z, Ralph Me r k l e, Bill Pa t t o n, Peter Pe a r s o n, Charles Pf l e e g e r, Ken Pi z z i n i, Bart Pr e n e e l, Mark Ri o r d a n, Joachim Sc h u r m a n, et Marc Sc h w a r t z pour avoir lu et corrigé tout ou partie du ma­

nuscrit de la première édition; Marc VÀUCLAIR pour avoir traduit la première édi­

tion en français ; Abe Ab r a h a m, Ross An d e r s o n, Dave Ba n i s a r, Steve Be l l o v i n, Edi Bi h a m, Matt Bis h o p, Matt Bl a z e, Gary Ca r t e r, Jan Co m e n i s c h, Claude Cr é p a u, Joan Da e m e n, Jorge Da v i l a, Ed Da w s o n, Whit Di f f i e, Cari El l i s o n, Joan Fe i g e n b a u m, Niels Fe r g u s o n, Matt Fr a n k l i n, Rosario Ge n n a r o, Dieter Go llm'a n n, Mark Go r e s k y, Richard Gr a v e m a n, Stuart Ha b e r, Jingman He, bob Ho g u e, Kenneth Iv e r s e n, Markus Ja k o b s s o n, Burt Ka l i s k i, Phil Ka r n, John Ke l s e y, John Ke n n e d y, Lars Kn u d s e n, Paul Ko c h e r, John La d w i g, Xuejia La i, Arjen Le n s t r a, Paul Le y l a n d, Mike Ma r k o w i t z, Jim Ma s s e y, Bruce McNa i r, William Hu g h Mu r r a y, Roger Ne e d h a m, Clif Ne u m a n, Kaisa Ny b e r g, Luke O ’ Co n n o r, Peter Pe a r s o n, René Pe r a l t a, Bart Pr e n e e l, Yisrael Ra d a i, Matt Ro b s h a w, Michael Ro e, Phil Ro g a w a y, Avi Ru b i n, Paul Ru b i n, Selwyn Ru s s e l l, Kazue Sa k o, Mahmoud Sa l m a s i z a d e h, Markus St a d l e r, Dmitry Ti t o v, Jimmy Up t o n, Marc Va u c l a i r, Serge Va u d e n a y, Gideon Yu v a l, Glen Zo r n, et plusieurs employé anonymes du gouvernement américain pour avoir lu et édité plusieurs parties de la seconde édition ; Lawrie Br o w n, Leisa Co n d i e, Joan Da e m e n, Peter Gu t m a n n, Alan In s l e y, Chris Jo h n s t o n, John Ke l s e y, Xuejia La i, Bill Le i n i n g e r, Mark Ma r k o w i t z, Richard Ou t e r b r i d g e, Peter Pe a r s o n, Ken Piz z i n i, Colin Pl u m b, Steph Ra v a n o n a, R S A Da t a Se c u r i t y, In c., Michael Ro e, Michael Wo o d, et Phil Zi m m e r m a n n pour m ’avoir fourni des codes sources ; Paul Ma cNe r l a n d pour avoir réalisé les figures de la première édition; Karen Co o p e r pour son travail de secrétaire de rédaction pour la seconde édition ; Beth Fr i e d m a n pour avoir revu et corrigé la seconde édition ; Carol Ke n n e d y pour avoir fait l’index de la seconde édi­

tion; les lecteurs de s c i . c r y p t et de la liste de courrier électronique Cypherpunks pour avoir commenté des idées, avoir répondu à des questions et avoir corrigé des er­

reurs dans la première édition ; Randy Se u s spour avoir fourni un accès à l’iNTERNET ; Jeff Du n t e m a n n et Jon Er i c k s o n pour m ’avoir aidé à commencer ; la famille In s l e y

pour avoir donné l’impulsion, les encouragements, le soutien, les conversations, l’amitié et les dîners ; et A T & T Be l l La b s pour m ’avoir licencié et pour avoir rendu tout cela possible. Ces personnes m ’ont aidé à créer un livre bien meilleur que ce que j ’aurais pu faire tout seul.

Bruce Sc h n e i e r

Oak Park, 111.

schneier@couterpane. coin

(16)

A propos de l’auteur

Bruce Sc h n e i e r est le président de Co u n t e r p a n e Sy s t e m s, une entreprise de conseil en cryptographie et sécurité en informatique, située à Oak Park dans l’Illinois aux États-Unis. Bruce Sc h n e i e r est aussi l’auteur de E-Mail Security (Jo h n W i l e y &

Fi l s, 1995) et Protect Your Macintosh ( Pe a c h p i t Pr e s s, 1994) ; et a écrit des dou­

zaines douzaines d ’articles dans les principales revues. Il est l’un des éditeurs associé de Dr. Dobb’s Journal où il gère la colonne « Algorithms Alley », il est aussi éditeur associé de Computer and Communication Security Reviews. Bruce Sc h n e i e r officie dans le conseil de direction de VInternational Association for Cryptologie Research, il est membre du conseil consultatif du Electronic Privacy Information Center, et il fait parti du comité de programme du New Security Paradigms Workshop. En plus de tout cela, il trouve du temps pour donner de fréquents exposés sur la cryptographie, la sécurité en informatique, et la confidentialité.

(17)

Chapitre 1

Principes de base

1.1 Terminologie

Expéditeur et destinataire

Supposons qu’un expéditeur veut envoyer un message à un destinataire. Cet expéditeur veut envoyer le message de manière sûre: il veut s’assurer qu’aucune oreille indiscrète ne puisse s’informer du message.

Messages et chiffrement

Un message est appelé te x te en clair. Le processus de transformation d ’un message de telle manière à le rendre incompréhensible est appelé ch iffrem en t (ou e n cry p tio n ).

Le résultat de ce processus de chiffrement est appelé te x te chiffré (ou encore c r y p t o ­ g ra m m e). Le processus de reconstruction du texte en clair à partir du texte chiffré est appelé déch iffrem en t (ou d é c r y p ta g e ). Ces différents processus sont illustrés par la figure 1.1.

FlG. 1.1 — Chiffrement et déchiffrement

L’art et la science de garder le secret de messages est appelé cry p to g ra p h ie pratiquée par des cry p to g ra p h e s. Les cry p ta n a ly ste s pratiquent la cry p ta n a ly se qui est l’art de décrypter des messages chiffrés. La branche des mathématiques qui traite de la cryp­

tographie et de la cryptanalyse s’appelle la c r y p to lo g ie et ses pratiquants sont appelés cry p to lo g u e s. De nos jours, presque tous les cryptologues sont des mathématiciens théoriciens par la force des choses.

Le texte en clair est noté A L Ce peut être une suite de bits, un fichier de texte, un enregistrement de voix numérisé, ou une image vidéo numérique. Du point de vue de

(18)

l’ordinateur, A i n’est rien d’autre que de l’information binaire1. Le texte en clair peut être transmis ou stocké. Dans tous les cas, A i est le message à chiffrer.

Le texte chiffré est noté C. C ’est aussi de l’information binaire, parfois de la même taille que A i, parfois plus grand2. La fonction de chiffrement, notée E , transforme A i en C. Ce qui en notation mathématique s’écrit :

E ( M ) = C.

La fonction inverse, notée D, de déchiffrement transforme C en A i : D{C) = A i.

Comme le but de toutes ces opérations n’est rien d’autre que de retrouver le message en clair à partir de la version chiffrée de ce même message, l’identité suivante doit être vérifiée :

D ( E ( M ) ) = A i.

Authentification, intégrité, non désaveu

En plus de la confidentialité, on attend souvent de la cryptographie d’accomplir d ’autres tâches:

1. A u th e n tifica tio n . Le destinataire d ’un message doit pouvoir s’assurer de son origine. Un intrus ne doit pas être capable de se faire passer pour quelqu’un d ’autre.

2. In tég rité. Le destinataire d ’un message doit pouvoir vérifier que celui-ci n’a pas été modifié en chemin. Un intrus doit être incapable de faire passer un faux message pour un légitime.

3. N o n désaveu. Un expéditeur ne doit pas pouvoir, par la suite, nier à tort avoir envoyé un message.

Ce sont des exigences vitales en matière d ’interactions sociales par ordinateur; elles sont l’analogue des rencontres face à face. Quelqu’un est-il celui qu’il prétend être? La pièce d’identité, le permis de conduire, le diplôme de médecin, ou le passeport d’une personne sont-ils valides? Ce sont les questions auxquelles l’authentification, l’intégrité, et le non désaveu répondent.

Algorithmes cryptographiques

Un a lg o rith m e cry p to g ra p h iq u e est une fonction mathématique utilisée pour le chiffrement et le déchiffrement3.

1. A partir du chapitre suivant, ce livre ne traite que de cryptographie appliquée à de l ’inform ation binaire.

2. En com binant com pression et chiffrement, C peut être plus petit que A 4 . Toutefois, en général, le chiffrement à lui seul ne fait pas l’opération de com pression.

3. Généralement, un algorithm e cryptographiqu e com pren d deux fonctions: une pour chiffrer et l’autre pou r déchiffrer.

(19)

Si la sécurité d’un algorithme est basée sur le fait que celui-ci est tenu secret, on parlera alors d ’algorithme restrein t. De tels algorithmes ne présentent plus qu’un intérêt historique car de nos jours ils sont inadéquats pour les besoins actuels de sécurité.

Un groupe d ’utilisateurs important ou variable ne peut utiliser de tels algorithmes car chaque fois qu’un membre quitte le groupe, tous les autres doivent se mettre à utiliser un autre algorithme. Si quelqu’un révèle accidentellement le secret, tout le mende doit changer d’algorithme. Encore plus accablant, les algorithmes restreints ne permettent aucun contrôle de qualité et aucune standardisation. Chaque groupe d’utilisateurs doit avoir son propre algorithme. Un tel groupe ne peut pas utiliser de produits tout faits, matériels ou logiciels, vendus dans le commerce; un espion peut acheter le même produit et apprendre l’algorithme. Ils leur faut écrire leur propres algorithmes et les programmer eux même. S’il n’y a pas de bon cryptographe dans le groupe, ils ne sauront pas s’ils ont un algorithme sûr.

Malgré cela, les algorithmes restreints sont très populaires pour les applications à bas niveau de sécurité. Les utilisateurs ne réalisent pas, ou bien ne se soucient pas des problèmes de sécurité inhérents à leur système.

La cryptographie moderne résoud ce problème avec une clef, notée k. Cette clef peut prendre une des valeurs parmi un grand nombre de valeurs possibles. L ’ensemble des valeurs possibles d ’une clef est appelé esp a ce d e s clefs. Les opérations de chiffrement et de déchiffrement utilisent toutes les deux cette clef (i.e., elles dépendent de la clef et ceci est dénoté par l’indice k), aussi les fonctions s’écrivent de la manière suivante:

E k{ M ) = C D k(C) = M .

Ces fonctions vérifient la propriété suivante (voir la figure 1.2): : D k( Ek( M ) ) = M .

FlG. 1.2 - Chiffrement et déchiffrement avec une clef

Certains algorithme utilisent des clefs différentes pour le chiffrement et le déchiffre- ment(voir la figure 1.3). Dans ce cas, la clef de chiffrement, notée ki, est différente de la clef de déchiffrement, notée k,2- Les relations suivantes décrivent un tel cryptosys­

tème:

E kl( M ) = C D k2(C) - M D k2(Ekl( M ) ) = M .

Avec ces algorihtmes, toute la sécurité réside dans la (ou les) clef(s), et non dans les détails de l’algorithme. Ceci implique que l’algorithme peut être publié et anlysé.

(20)

Clef de Clef de

chiffrement déchiffrement

Texte en clair 1 Texte chiffré

Texte en clair original

Chiffrement Déchiffrement.

F ig. 1.3 - Chiffrement et déchiffrement avec deux clefs

On peut fabriquer en masse un produit utilisant cet algorithme. Peu importe qu’une espionne connaisse votre algorihtme; si elle ignore votre clef, elle ne pourra pas lire vos messages.

Un cryptosystème est composé d ’un algorithme, et de tous les textes en clairs, textes chiffrés, et clefs possibles.

Algorithmes à clef secrète

Il y a deux types principaux d ’algorithmes à base de clefs : à clef secrète ou à clef pu­

blique. Les a lg o rith m e s à c le f se crè te sont des algorithmes où la clef de chiffrement peut être calculée à partir de la clef de déchiffrement ou vice versa. Dans la plupart des cas, la clef de chiffrement et la clef de déchiffrement sont identiques. Pour de tels algorithmes, l’émetteur et le destinataire doivent se mettre d ’accord sur une clef à utiliser avant d’échanger des messages. Cette clef doit être gardée secrète. La sécurité d ’un algorithme à clef secrète repose sur la clef : si celle-ci est dévoilée, alors n’importe qui peut chiffrer ou déchiffrer des messages dans ce cryptosystème.

Le chiffrement et le déchiffrement dans un algorithme à clef secrète sont notés : E k{ M ) = C

D k(C) = M .

Les algorithmes à clef secrète peuvent être classés en deux catégories. Certains opèrent sur le message en clair un bit à la fois. Ceux-ci sont appelés a lg o rith m e s de chif­

frem en t en con tin u. D ’autres opèrent sur le message en clair par groupes de bits.

Ces groupes de bits sont appelés b lo c s , et les algorithmes correspondants sont appelés a lgorith m es d e ch iffrem en t pa r b lo cs. Pour des algorithmes réalisés sur ordina­

teur, la taille typique des blocs est de 64 bits — ce qui est assez grand pour interdire l’analyse et assez petit pour être pratique4.

Algorithmes à clef publique

Les a lg o rith m e s à c le f p u b liq u e sont différents. Ils sont conçus de telle manière que la clef de chiffrement soit différente de la clef de déchiffrement. De plus, la clef de déchiffrement ne peut pas être calculée (du moins en un temps raisonnable) à partir de la clef de chiffrement. De tels algorithmes sont appelés « à clef publique » parce que la clef de chiffrement peut être rendue publique : n ’importe qui peut utiliser la clef de

4. Autrefois, avant l’utilisation de l’ou til inform atique, les algorithm es manipulaient généralement le texte en clair caractère par caractère. V ous pou vez considérer de tels algorithm es com m e un chiffrement en continu d ’ un caractère à la fois.

(21)

chiffrement pour chiffrer un message mais seul celui qui possède la clef de déchiffrement peut déchiffrer le message chiffré résultant. Dans de tels systèmes, la clef de chiffrement est appelée c le f p u b liq u e et la clef de déchiffrement est appelée c le f p rivée. La clef privée est aussi parfois appelée c le f se crè te mais pour éviter toute confusion avec les algorithmes à clef secrète, ce terme ne sera pas utilisé ici.

Le chiffrement en utilisant la clef publique k est noté : E k( M ) = C .

Bien que les clefs publique et privée soient différentes, le déchiffrement avec la clef privée correspondante est noté :

D k(C) = M .

Parfois, les messages seront chiffrés avec la clef privée et déchiffrés avec la clef publique ; une telle technique est utilisée pour les signatures numériques (voir § 2.6). Malgré le risque de confusion possible, ces opérations seront notées :

E k{ M ) = C D k(C) = M .

Cryptanalyse

Le but principal de la cryptographie est de préserver le texte en clair de l’indiscré­

tion des espions (aussi appelés adversaires, attaquants, intercepteurs, intrus, oppo­

sants, oreilles indiscrètes, cryptanalystes, décrypteurs, ou tout simplement ennemis).

On suppose que les espions ont plein accès aux communications entre l’expéditeur et le destinataire.

La cryptanalyse est la science de la reconstitution du texte en clair sans connaître la clef. Une cryptanalyse réussie peut fournir soit le texte en clair, soit la clef. La cryptanalyse peut également mettre en évidence les faiblesses d’un cryptosystème qui peuvent éventuellement faciliter les attaques contre celui-ci5.

Une tentative de cryptanalyse est appelée a tta q u e. Un des axiomes fondamentaux de la cryptographie, énnoncé pour la première fois par l’hollandais A. Kerckhoffs au dixneuvième siècle, est que l’ennemi possède tous les détails de l’algorithme et qu’il ne lui manque que la clef spécifique utilisée pour le chiffrement [795]6. Bien que cela ne soit pas toujours le cas dans le monde réel de la cryptanalyse, c ’est toujours vrai dans le monde académique de la cryptanalyse, et c ’est de toute façon une bonne assertion dans le monde réel de la cryptanalyse. Si l’on ne sait pas casser un algorithme même en sachant comment il fonctionne, on ne sait certainement pas le casser sans cette connaissance.

Il y a quatre types génériques d’attaques cryptanalytiques. Il va de soi que chacune d’entre elles repose sur l’hypothèse que le cryptanalyste dispose de la connaissance complète de l’algorithme de chiffrement :

1. L ’a tta q u e à te x te ch iffré seu lem en t. Le cryptanalyste dispose du texte chif­

fré de plusieurs messages, tous ayant été chiffrés avec le même algorithme. La

5. La perte d ’ une clef par des m oyens autres que la cryptanalyse est appelée com p rom ission . 6. Bien sûr, on peut supposer que la C IA n ’ a pas l’habitude de com m uniquer au M ossad quoique ce soit au sujet de ses algorithm es. B ien que le M ossad le découvre de tou te façon...

(22)

tâche du cryptanalyste est de retrouver le texte en clair du plus grand nombre de messages possible ou mieux encore de trouver la ou les clefs qui ont été utili­

sées pour chiffrer les messages ce qui permettrait de déchiffrer d’autres messages chiffrés avec ces mêmes clefs.

Données: Ci = E k ( M i ) , C 2 = E k ( M 2),...,C i = E k ( M t ).

Requis: Soit A i i , M 2, - . , M i , soit k, soit un algorithme permettant de déduire M i +1 à partir de Ci+i = E k { M i +1).

2. L ’a tta q u e à te x te en cla ir con n u . Le cryptanalyste a non seulement accès aux textes chiffrés de plusieurs messages mais aussi aux textes en clair correspondants.

La tâche est de retrouver la ou les clef(s) utilisées pour chiffrer ces messages ou un algorithme qui permet de déchiffrer n’importe quel nouveau message chiffré avec la même clef.

D o n n é e s : M k,C i = E k { M i ) , M 2,C2 = E k ( M 2) , . . . , M t ,Ct — E k { M r).

R e q u is : Soit k, soit un algorithme permettant de déduire A f,+ i à partir de C i+ i = Ek{M.r+1).

3. L ’a tta q u e à te x te en cla ir c h o is i7. Non seulement le cryptanalyste a accès aux textes chiffrés et aux textes en clair mais de plus il peut choisir les textes en clair à chiffrer. Cette attaque est plus efficace que l’attaque à texte en clair connu car le cryptanalyste peut choisir des textes en clair spécifiques qui donneront plus d ’informations sur la clef. La tâche consiste à retrouver la ou les clefs utilisées pour chiffrer ces messages ou un algorithme qiii permette de déchiffrer n’importe quel nouveau message chiffré avec la même clef.

D o n n é e s : M i , C i = E k ( M \ ) , M 2,C2 = E k ( M 2) , . . . , M i , C t = E k ( M %), où le cryptanalyste choisit A 4 i , A 4 2,...,A 4 i.

R e q u is : Soit k, soit un algorithme permettant de déduire JAt+i à partir de f'ï+ l --

4. L ’a tta q u e à te x te en cla ir ch oisi a d a p ta tiv e 8. C ’est un cas particulier de l’attaque à texte en clair choisi. Non seulement le cryptanalyste peut choisir les textes en clair mais il peut également adapter ses choix en fonction des textes chiffrés précédents. Dans une attaque à texte en clair choisi, le cryptanalyste est juste autorisé à choisir un grand bloc de texte en clair au départ tandis que dans une attaque à texte en clair adaptative, il choisit un bloc initial plus petit et ensuite il peut choisir un autre bloc en fonction du résultat pour le premier et ainsi de suite.

Il y a au moins trois autres types d’attaques cryptanalytiques.

1. L ’ a tta q u e à te x te ch iffré ch oisi. Le cryptanalyste peut choisir différents textes chiffrés à déchiffrer. Les textes déchiffrés lui sont alors fournis. Par exemple, le cryptanalyste a un dispositif qui ne peut être désassemblé et qui fait du déchif­

frement automatique, sa tâche est de retrouver la clef.

7. Parfois appelée « attaque à texte en clair choisi statique » par op p osition à la m éthode décrite au point suivant.

8. Parfois appelée « attaque à texte en clair choisi dynamique ».

(23)

D o n n é e s : C i,A li = £>a..(Ci),C2,A12 = D k (C 2) , —, C i , M t = D k (C i).

R e q u is : k.

Ce type d’ attaque est principalement applicable aux cryptosystèmes à clef pu­

blique et sera illustrée dans le paragraphe 19.3. Une attaque à texte chiffré choisi fonctionne parfois pour les cryptosystèmes à clef secrète9.

2. L ’a tta q u e à c le f ch oisie. Cela n’est pas une attaque où le cryptanalyste peut choisir la clef; il est seulement au courant de quelques relations entre différentes clefs. C ’est étrange et obscur. Ce n’est pas très pratique. Nous y reviendrons au paragraphe 12.4.

Les attaques à texte en clair connu et les attaques à texte en clair choisi sont plus courantes que vous ne pourriez l’imaginer. Il arrive qu’un cryptanalyste dispose du texte en clair d ’un message ou qu’il soudoie quelqu’un pour chiffrer un message choisi.

Parfois, vous n’avez même pas besoin de soudoyer quelqu’un : si vous donnez un mes­

sage à un ambassadeur, il y a de fortes chances pour que ce message soit chiffré et envoyé à son pays d ’origine pour évaluation. Beaucoup de messages ont des en-têtes et des conclusions qui peuvent être connues ou devinées par le cryptanalyste. Le code source chiffré est particulièrement vulnérable à cause de l’apparition fréquente des mots clefs: # d e fin e , s t r u c t , e ls e , retu rn . Le code exécutable chiffré souffre de la même vulnérabilité : dans ce cas ce sont les fonctions, les structures de boucles, etc. qui sont en cause. Il est connu que des attaques à texte en clair connu (et même à texte en clair choisi) ont été menées avec succès durant la Seconde Guerre mondiale. Le livre de David Ka h n [468, 469, 470] donne quelques exemples historiques de ce type d’attaques.

Et n’oubliez pas l’axiome de Kerckhoffs: ne comptez pas sur un cryptosystème dont la résistence réside dans le fait que l’ennemi ne sait pas comment fonctionne votre algorithme. Vous vous trompez si vous croyez qu’il vaut mieux garder secret les détails de votre algorithme plutôt que de laisser la communauté scientifique l’analyser. De plus, il serait naïf de penser que personne ne désassemblera votre code exécutable pour reconstruire votre algorithme10. Les meilleurs algorithmes dont nous disposions sont ceux qui ont étés rendus publics et attaqués par les meilleurs cryptographes au monde, et qui ne sont toujours pas cassés11.

Les cryptanalystes n’ont pas toujours accès à l’algorithme — c ’était le cas quand les Etats-Unis ont cassé le code diplomatique japonais, P U R P L E , pendant la Seconde Guerre mondiale [795] mais la plupart du temps ils y ont accès. Si l’algorithme est utilisé dans un programme commercial de sécurité, c ’est seulement une question de temps et d ’argent pour désassembler le programme et retrouver l’algorithme. Si l’ algorithme est utilisé dans un système militaire de communication, c’est aussi une question de temps et d ’argent pour acheter (ou voler) l’équipement et reconstruire l’algorithme. Il y a beaucoup de cas historiques où les cryptanalystes ne connaissaient pas l’algorithme ; parfois ils l’ont cassé, parfois ils ont échoué. Dans tous les cas il est irréaliste de compter sur la confidentialité de l’algorithme.

9. Une attaque â texte en clair choisi m enée de front avec une attaque â texte chiffré choisi est parfois appelée a tta q u e à te x te choisi.

10. C eci est arrivé en 1994 avec l ’algorithm e R C 4 voir la section 17.1

11. La « N ational Security A gen cy » garde ses algorithm es secrets, mais les meilleurs cryptographes travaillent dans ses murs. D e plus, ils s’échangent leurs algorithm es les uns les autres, s’ appuyant sur leurs pairs pour déceler tou te faiblesse dans leurs travaux.

(24)

Ceux qui clament avoir un système inviolable seulement parce qu’ils ne peuvent pas eux-mêmes le casser sont soit des génies, soit des fous. Malheureusement, il y en a plus de la seconde espèce de par le monde. Attention à ceux qui vantent les vertus de leur algorithme mais qui refusent de le rendre public : avoir confiance en leur algorithme est comme faire confiance à un remède de charlatan.

Pour différencier les bons algorithmes des mauvais, les bons cryptographes acceptent le regard critique de leurs pairs.

Sécurité des cryptosystèmes

Les différents algorithmes ont des niveaux de sécurité divers, plus ou moins difficiles à casser. Si le coût nécessaire pour casser un algorithme dépasse la valeur de l’information chiffrée, alors cet algorithme est probablement sûr. Si le temps nécessaire pour casser un algorithme est plus long que le temps durant lequel l’information chifrée doit rester secrète, alors cet algorithme est probablement sûr. S’il faut plus d’information pour casser l’algorithme qu’il n’en a été chiffré avec la même clef, alors votre algorithme est probablement sûr.

Je dis « probablement » car il est toujours possible qu’une nouvelle avancée soit faite en cryptanlyse. D ’un autre côté, une information perd de sa valeur avec le temps. Il est important que la valeur d’une information reste toujours inférieure au coût nécessaire pour briser la protection qui l’entoure.

Lars Knudsen a classé ces différentes manières de casser un algorithme. Les voici par ordre décroissant de sévérité:

1. C assage c o m p le t. Un cryptanalyste trouve la clef k telle que Dk(C) = Ai.

2. O b te n tio n g lo b a le . Un cryptanalyste trouve un algorithme de remplacement A équivalent à Dy.(C) sans connaître k.

3. O b te n tio n loca le. Un cryptanalyste trouve le texte en clair d ’un message chiffré qu’il a intercepté.

4. O b te n tio n d ’ in fo rm a tio n Un cryptanalyste glane quelque information à pro­

pos du texte en clair ou de la clef. Cette information pourrait être certains bits de la clef, un renseignement sur la forme du texte en clair, et ainsi de suite.

Un algorithme est in co n d itio n n e lle m e n t sûr si — peu importe la quantité de texte chiffré dont le cryptanalyste dispose — il n’y a pas d ’information suffisante pour re­

trouver le texte en clair. De fait, seul le masque jetable (voir § 1.5) est invulnérable étant donné des ressources infinies. Tous les autres cryptosystèmes sont vulnérables à une attaque à texte chiffré seulement, simplement en essayant toutes les clefs possible une par une et en regardant si le texte en clair résultant a un sens. Ceci s’appelle une attaque ex h a u stive (voir la section 7.1).

La cryptographie se préoccupe plus particulièrement de cryptosystèmes invulnérables par calcul. Un algorithme est considéré in vu ln éra b le par ca lcu l (ou parfois qualifié de fort), s’il ne peut pas être cassé avec les ressources disponibles actuellement et dans le futur. Ce qui constitue ces « ressources disponibles » est ouvert à l’interprétation.

(25)

On peut mesurer la compiexité(voir la section 7.1) d ’une attaque de l’une ou l’autre des manières suivantes:

1. C o m p le x it é en in fo rm a tio n . La quantité d’information nécessaire en entrée pour l’algorithme.

2. C o m p le x it é en tem p s. Le temps nécessaire pour achever l’attaque. Ceci est aussi appellé effort.

3. C o m p le x ité en e sp a ce. La quantité de mémoire nécessaire à l’attaque.

Comme règle de base, la complexité d ’une attaque est prise comme le minimum de ces trois facteurs. Pour certaines attaques, il faut jongler entre les trois complexités: une attaque peut être plus rapide au prix de besoins en mémoire plus importants.

Les complexités sont exprimées en un ordre de grandeur. Si un algorithme a, par exemple, un effort de 2128, alors il faut 2128 opérations pour le casser12.

Peu importe, si vous faites l’hypothèse que vous aurez suffisamment de puissance de calcul pour faire un million d ’opérations par seconde et que vous mettiez un million de processeurs en parallèle à la tâche, cela prendra encore 1019 années pour retrouver la clef pour l’exemple donné plus haut. Cela correspond à un milliard de fois l’âge de l’univers.

Tandis que la complexité d’une attaque est constante (c’est-à-dire, jusqu’à ce qu’un cryptanalyste trouve une meilleure attaque), la puissance de calcul est tout sauf constante. Durant ce dernier demi-siècle, il y a eu des progrès phénoménaux en puis­

sance de calcul et il n’y pas de raison de penser que cela s’arrêtera si tôt. Nombre d ’attaques cryptanalytiques sont très bien adaptées aux machines parallèles : la tâche peut être morcelée en milliards de petites tâches et aucun des processeurs ne doit in- teragir avec les autres. Annoncer qu’un algorithme est sûr simplement parce qu’on ne peut pas le casser avec la technologie d’aujourd’hui est hasardeux. Les bons cryptosys­

tèmes sont conçus pour être invulnérables même avec les puissances de calcul prévues d ’ici à de nombreuses années dans le futur.

Terminologie historique

Historiquement, on appelle c o d e un cryptosystème qui sert au niveau des unités linguis­

tiques : mots, locutions, phrases, etc. Par exemple, le mot « SOEUR » peut être le texte chiffré pour la phrase entière : « TOURNER À GAUCHE DE 90 DEGRÉS » ; le mot

« NONNES » peut être le texte chiffré de « TOURNER À DROITE DE 90 DEGRÉS * ; et les mots « T R A LA LA » peuvent être le texte chiffré pour « OBUSIER » . Les codes de ce type ne sont pas décrits dans ce livre, ils sont présentés dans [795, 796]. Les codes sont utiles dans certaines circonstances seulement. Les chiffres sont utiles en toute cir­

constance. S’il n’y a pas d ’entrée pour le mot « TR O PPO » dans le carnet de codage, il ne peut pas être « codé ». On peut tout chiffrer à l’aide d’un chiffre.

1.2 Steganographie

La steg a n og ra p h ie sert à cacher des messages secrets dans d’autres messages, de sorte que l’existence même du secret est dissimulée. Généralement, l’expéditeur écrit

12. Ces opérations peuvent être com plexes et coûteuses en tem ps de calcul.

Références

Documents relatifs

• Lorsque le chiffrement est symétrique – Génération de la clef partagée sur un partenaire – Distribution sûre de la clef vers l'autre partenaire. • Lorsque le chiffrement

NB : Moyens pouvant être exemptés de contrôle quelle que soit la longueur de clé sous certaines conditions (D. n ° 99-200 du 17 mars 1999) : Cartes à puce

• Niveau de sécurité équivalent à la substitution monoalphabétique. Extension à la

Yao said that by a proper adjustment of the inverter frequency, a constant optimum value of the motor efficiency is ensured, while the maximum power of the PV generator is

En guise de réponse à ce questionnement, Moreau (2002, cité par Haddad, 2012) soutient que l’intérêt du recours à l’effet direct paraît nul dès lors

 Tout système d’informations est vulnérable : il existe donc un besoin de protéger des informations digitales dans un environnement distribué, souvent accessible et

Pour les besoins du présent document, un schéma de signature avec appendice consiste en une opération de génération de signature et une vérification de signature, où l’opération

Un mécanisme connu de tous sera testé, attaqué, étudié, et utilisé s’il est robuste. Cryptographie Le principe de Kerckhoffs 1