Vous êtes sur la page 1sur 63

1

Pierre-Louis CAYREL
www.cayrel.net

Protection de linformation - 61 exercices corrigs

1 / 63
2
Table des matires

1 noncs 7
1.1 Ordres de grandeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Mot de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Dnombrements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.3 Vider locan avec un d coudre . . . . . . . . . . . . . . . . . . . . . . 7
1.1.4 La force brute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.5 La loi de Moore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Vignre, Polybe et Hill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Csar/Vignre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Chiffrement de Vignre . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.3 Chiffrement de Polybe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.4 Chiffrement affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.5 Chiffrement de Hill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Chiffrement et modes de chiffrement . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.1 Cryptographie cl secrte . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.2 Amlioration dun systme de chiffrement . . . . . . . . . . . . . . . . . 11
1.3.3 Mode ECB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.4 Mode CBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.5 Mode CTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.6 Attaque par insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.7 Mallabilit des chiffrements flot . . . . . . . . . . . . . . . . . . . . . . 13
1.3.8 3DES et 2DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.9 Algorithme de Berlekamp-Massey . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Mthodes de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.1 Square and Multiply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.2 Calcul modulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.3 Thorme des restes chinois . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.4 Autour des nombres premiers . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.5 Test de primalit de Miller-Rabin . . . . . . . . . . . . . . . . . . . . . . 17
1.4.6 Algorithme p 1 de Pollard . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.7 Thorme de Wilson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 change de clefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5.1 Fonctionnement cl prive vs cl publique . . . . . . . . . . . . . . . . . 18
1.5.2 Cl prive vs cl publique . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5.3 Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5.4 Perte dune cl prive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5.5 Attaque par le milieu de Diffie-Hellman . . . . . . . . . . . . . . . . . . . 18
1.6 Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.6.1 Kid-RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3
4 TABLE DES MATIRES

1.6.2 Chiffrement/Dchiffrement RSA . . . . . . . . . . . . . . . . . . . . . . . 19


1.6.3 Exemples de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.6.4 Chiffrement RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.6.5 RSA-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.6.6 Chiffrement El Gamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.6.7 Changement de cls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7 Attaques sur RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.7.1 Attaque par module commun . . . . . . . . . . . . . . . . . . . . . . . . 22
1.7.2 De (n) la factorisation . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.7.3 RSA avec deux facteurs trop proches . . . . . . . . . . . . . . . . . . . . 22
1.7.4 Mallabilit de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.7.5 Le temps de factorisation des grands entiers . . . . . . . . . . . . . . . . 23
1.8 Signature et hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8.1 Signature RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8.2 Signature aveugle avec RSA . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8.3 Signature El Gamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.8.4 Signature El Gamal : utilisation de lala . . . . . . . . . . . . . . . . . . 24
1.8.5 Signature El Gamal sans vrification modulaire . . . . . . . . . . . . . . 25
1.8.6 Signature GHR (Gennaro-Halevi-Rabin) . . . . . . . . . . . . . . . . . . 25
1.9 Hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.9.1 Fonction de hachage faiblement sans collision . . . . . . . . . . . . . . . 26
1.9.2 Fonction de hachage et signature . . . . . . . . . . . . . . . . . . . . . . 26
1.9.3 Le buzz free mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.10 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.10.1 Authentification clef secrte . . . . . . . . . . . . . . . . . . . . . . . . 27
1.10.2 Authentification clef publique . . . . . . . . . . . . . . . . . . . . . . . 27
1.10.3 Schma de Schnorr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.11 PKI, Certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.11.1 PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.11.2 Certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.11.3 Distinguer les clefs utilises dans PGP . . . . . . . . . . . . . . . . . . . 29
1.11.4 Hachs de mots de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.11.5 Le protocole HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.11.6 La carte bleue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2 Corrections 31
2.1 Pour se familiariser avec les ordres de grandeur . . . . . . . . . . . . . . . . . . 31
2.1.1 Mot de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.2 Dnombrements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1.3 Vider locan avec un d coudre . . . . . . . . . . . . . . . . . . . . . . 31
2.1.4 La force brute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.1.5 La loi de Moore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2 Vignre, Polybe et Hill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.1 Csar/Vignre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.2 Chiffrement de Vignre . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.3 Chiffrement de Polybe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.4 Chiffrement affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.5 Chiffrement de Hill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3 Chiffrement et modes de chiffrement . . . . . . . . . . . . . . . . . . . . . . . . 36
TABLE DES MATIRES 5

2.3.1 Cryptographie cl secrte . . . . . . . . . . . . . . . . . . . . . . . . . . 36


2.3.2 Amlioration dun systme de chiffrement . . . . . . . . . . . . . . . . . 36
2.3.3 Mode ECB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.4 Mode CBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.5 Mode CTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.6 Attaque par insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.7 Mallabilit des chiffrements par flot . . . . . . . . . . . . . . . . . . . . 37
2.3.8 3DES et 2DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3.9 Algorithme de Berlekamp-Massey . . . . . . . . . . . . . . . . . . . . . . 39
2.4 Mthodes de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.1 Square and Multiply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.2 Calcul modulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.3 Thorme des restes chinois . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.4.4 Autour des nombres premiers . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4.5 Test de primalit de Miller-Rabin . . . . . . . . . . . . . . . . . . . . . . 42
2.4.6 Algorithme p 1 de Pollard . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.4.7 Thorme de Wilson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5 change de clefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.5.1 Fonctionnement cl prive vs cl publique . . . . . . . . . . . . . . . . . 44
2.5.2 Cl prive vs cl publique . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.5.3 Perte dune cl prive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.5.4 Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.5.5 Attaque par le milieu de Diffie-Hellman . . . . . . . . . . . . . . . . . . . 45
2.6 Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.6.1 Kid-RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.6.2 Chiffrement/Dchiffrement RSA . . . . . . . . . . . . . . . . . . . . . . . 46
2.6.3 Exemple de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.6.4 Chiffrement RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.6.5 RSA-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.6.6 Chiffrement El Gamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.6.7 Changement de cls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.7 Attaques sur RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.7.1 Attaque par module commun . . . . . . . . . . . . . . . . . . . . . . . . 52
2.7.2 De (n) la factorisation . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.7.3 RSA avec deux facteurs trop proches . . . . . . . . . . . . . . . . . . . . 52
2.7.4 Mallabilit de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.7.5 Le temps de factorisation des grands entiers . . . . . . . . . . . . . . . . 53
2.8 Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.8.1 Signature RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.8.2 Signature aveugle avec RSA . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.8.3 Signature El Gamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.8.4 Signature El Gamal : utilisation de lala . . . . . . . . . . . . . . . . . . 55
2.8.5 Signature El Gamal sans vrification modulaire . . . . . . . . . . . . . . 56
2.8.6 Signature GHR (Gennaro-Halevi-Rabin) . . . . . . . . . . . . . . . . . . 56
2.9 Hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.9.1 Fonction de hachage faiblement sans collision . . . . . . . . . . . . . . . 57
2.9.2 Fonction de hachage et signature . . . . . . . . . . . . . . . . . . . . . . 57
2.9.3 Le buzz free mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.10 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5 / 63
6 TABLE DES MATIRES

2.10.1 Authentification clef secrte . . . . . . . . . . . . . . . . . . . . . . . . 58


2.10.2 Authentification clef publique . . . . . . . . . . . . . . . . . . . . . . . 58
2.10.3 Schma de Schnorr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.11 PKI, certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.11.1 PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.11.2 Certificats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.11.3 Distinguer les clefs utilises dans PGP . . . . . . . . . . . . . . . . . . . 59
2.11.4 Hachs de mots de passe . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.11.5 Le protocole HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.11.6 La carte bleue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Ces exercices ont t inspirs par les supports de cours/TD de :

Didier Alqui Philippe Gaborit Nouha Oualha


Christine Bacchoc Arthur Hecker Emmanuel Thom
Florent Bernard Jean Leneutre Damien Vergnaud
Emmanuel Bresson Philippe Oechslin
Cline Chevalier Rodolphe Ortalo
Chapitre 1

noncs

Cryptographie clef secrte


1.1 Ordres de grandeur
1.1.1 Mot de passe
Un systme est protg par un mot de passe, aprs un essai infructueux le systme attend 1s
avant de redemander. Combien de temps faudra-t-il pour sidentifier dans les cas suivants :

1. le mot de passe est un prnom 1 ; 3. il est compos de 4 chiffres ;


2. cest un mot du dictionnaire 2 ; 4. il fait 8 caractres.

1.1.2 Dnombrements
Le nombre de cls disponibles dans un systme de chiffrement donne une borne maximale de
sa scurit (mesure de la complexit dune recherche exhaustive).
1. Quel est le nombre de cls possibles dans un chiffrement de Csar ?
2. Pour un chiffrement affine ? (C(x) = ax + b mod 26 pour chaque caractre x Z26 )
3. Pour un chiffrement par substitution (substitution arbitraire, caractre par caractre) ?
4. Pour un chiffrement de Vignre (avec une cl de longueur k) ?

1.1.3 Vider locan avec un d coudre


On considre quun d coudre est un cylindre de 1, 5 cm. de hauteur pour 1, 5 cm de diamtre.
Selon lInstitut Franais des Mers, les ocans couvrent 360 millions de km2 avec une profondeur
moyenne de 3800 m. Encadrer entre deux puissances de 2 conscutives le nombre de ds coudre
deau que contiennent les ocans.

1.1.4 La force brute


Le facteur de travail dun algorithme est le nombre dinstructions lmentaires ncessaire son
excution. La puissance dune machine est le nombre dinstructions quelle excute par unit
1. LINSEE publie la liste des 20 000 prnoms donns en France depuis 1946. En pratique, seul un millier de
prnoms suffit dsigner plus de la moiti de la population franaise.
2. Le franais compte environ 200 000 mots dont seulement 3000 sont utiliss couramment.

7
8 CHAPITRE 1. NONCS

de temps. La puissance dun PC actuel est denviron 2000 Mips. (millions dinstructions par
secondes).
Le facteur de travail dun algorithme optimis pour tester une cl de 128 bits de lalgorithme
AES est denviron 1200 instructions lmentaires.
On dispose dun couple clair/chiffr connu et on dsire retrouver la cl utilise par force brute,
cest- -dire en testant toutes les cls les unes aprs les autres. Une cl est constitue dun mot
de 128 symboles binaires. On suppose que toutes les cls sont quiprobables.
1. En combien de temps une machine de 2000 Mips teste-t-elle une cl ?
2. Combien y a-t-il de cls possibles ?
Quel est le nombre moyen de cls tester avant de trouver la bonne ?
3. quel temps moyen de calcul cela correspond-il si on suppose que le milliard de PC de
linternet sont mobiliss cette tche ?

1.1.5 La loi de Moore


Il est admis que, grce aux progrs technologiques permanents, la puissance des machines
double en moyenne tous les 18 mois (loi de Moore). On suppose maintenant que lon change les
machines tous les mois (30 jours) en commenant avec une machine dune puissance de 1000
Mips. Pour tout entier n, on note Wn le nombre dinstructions excutes par la machine du
mois n.
1. Quel est le facteur damlioration a de la puissance des machines dun mois lautre ?
2. Calculer W0 , puis Wn en fonction de W0 , de a et de n.
3. Quel est le temps moyen ncessaire pour trouver la cl (de lexercice prcdent) ?

1.2 Vignre, Polybe et Hill


1.2.1 Csar/Vignre
Le chiffrement de Csar prend un texte compos de lettres, et dcale chaque lettre dun nombre
constant de positions dans lalphabet. Ce nombre de positions est la cl. Pour dterminer la cl
partir dun message chiffr, on fait des suppositions statistiques sur le message dentre. Par
exemple, si on suppose que le message est en franais, la lettre la plus frquente est le e. Par
ordre dcroissant de frquence, on trouve : e, s, a, i, t, n, r, u.
1. Est-il plus facile de dchiffrer un texte long ou un texte court ?
2. Pouvez-vous dchiffrer le message suivant : pwpnetzyacpdtopyetpwwp
Le chiffrement de Vignre (en fait du Alberti au XVme sicle) est une sorte de Csar
amlior. La cl est constitue non pas dun, mais de plusieurs dcalages. Cette cl est
spcifie sous forme dun mot qui constitue la cl. Par exemple la cl bac, de longueur
trois, spcifie que pour chiffr un message, on dcale la premire lettre dune position
(lettre b), la deuxime de zro positions (lettre a), la troisime de deux positions (lettre
c), et ainsi de suite en reprenant la cl au dbut.
3. Si lattaquant obtient la connaissance dun couple message clair / message chiffr, peut-il
dchiffrer tous les messages chiffrs ensuite avec cette mme cl ?
4. On suppose que seulement un message chiffr est disposition de lattaquant.
Si un attaquant connat la longueur de la cl, comment faire pour dchiffrer ?
1.2. VIGNRE, POLYBE ET HILL 9

5. Dune manire gnrale, ce systme de chiffrement est-il difficile casser ?

1.2.2 Chiffrement de Vignre


1. Chiffrer laide de lalgorithme de Vignre le texte suivant : textesecretadecoder en
utilisant comme cl le mot crypto ;
2. Pour le mme texte clair on obtient le texte chiffr suivant brqksmzcspxiqxtcxzr. Quelle
est la cl ?
3. Mme question si le chiffr est aaabbbcccdddeeefffg. Que remarque-t-on ?

1.2.3 Chiffrement de Polybe


On considre lalphabet priv du W, soit 25 lettres. Polybe a propos le mcanisme suivant : on
range les lettres dans un tableau 5 5, en commenant par le mot cl (et en supprimant les
doublons), puis on continue avec les lettres restantes de lalphabet, dans lordre.
Par exemple, avec le mot-cl MYSTERE, on construit le tableau suivant :

1 2 3 4 5
1 M Y S T E
2 R A B C D
3 F G H I J
4 K L N O P
5 Q U V X Z

Le chiffrement seffectue alors en remplaant chqaue lettre par les deux chiffres : ligne colonne
qui indiquent sa position dans la grille . Par exemple, F est chiffr 31.
1. Expliquer comment on peut cryptanalyser un tel systme : par une attaque clair connu,
puis dans une attaque simple (seulement un chiffr).
Raoul envoie un message Anna pour lui fixer rendez-vous.
Le cryptogramme est le suivant :
123222 512215 424215 512242 242255 534352 111524 225254
322252 512211 515222 532251 142251 154352 21
2. Dcrypter ce message.
Quelle est la svrit de lattaque (distinguer le chiffr dun ala, cassage total,. . .) ?

1.2.4 Chiffrement affine


1. On reprsente lalphabet latin par les entiers entre 0 et 25 avec la convention A = 0, B =
1, C = 2, . . .
Un chiffrement affine x 7 ax+b mod 26 transforme le message CRYPTO en le cryptogramme
ROXEYZ. Trouver la cl (a, b)correspondante.
2. Le message clair CRYPTO a cette fois t chiffr deux fois de suite par un chiffre affine de
cl (a0 , b0 ) (cest--dire quon a chiffr le chiffr) pour donner en sortie NGBAMX.
(a) Montrer que NGBAMX est le chiffr de CRYPTO par un chiffre affine de cl (a00 , b00 ).
Trouver (a00 , b00 ).

9 / 63
10 CHAPITRE 1. NONCS

1.2.5 Chiffrement de Hill


Examen 2012-2013

Dans le chiffrement de Hill, chaque lettre de lalphabet est reprsente par un entier compris
entre 0 et 25. Lalgorithme est un chiffrement par blocs de m lettres, qui transforme un bloc
(x1 , x2 , . . . , xm ) en un bloc (y1 , y2 , . . . , ym ) dfini par la relation algbrique :

(y1 , y2 , . . . , ym ) = (x1 , x2 , . . . , xm ) A

o A est une matrice carre dordre m coefficients dans Z26 , tous les calculs sont effectus
modulo 26.  
5 1
Par exemple avec m = 2 et A = , le message (10, 21) est chiffr en :
12 3

(10, 21) A = (10 5 + 21 12, 10 + 21 3) = (16, 21).

Sachant que le chiffrement du mot chiffrement avec la mme cl donne le chiffr jvfrtqealv.
Dcrypter (partiellement, les 4 premiers caractres suffiront) le texte suivant qui a t obtenu
en appliquant le chiffrement de Hill sur des blocs de taille 2 sur un mot de la langue franaise :
gzatzxjihvbreosu 4pts
Indications :  
a b
Posons : M = M4 (Z26 ) la matrice utiliser pour le dchiffrement.
c d
Le fait que M transforme
 le bigramme
  jven le bigramme ch et le bigramme fr en le bigramme
9 5 2 8
if, nous donne 3 : M. =
21 17 7 5

3. Si la matrice nest pas inversible, prenez le bigramme suivant.


1.3. CHIFFREMENT ET MODES DE CHIFFREMENT 11

1.3 Chiffrement et modes de chiffrement


1.3.1 Cryptographie cl secrte
Examen 2012-2013
1. Quel candidat a gagn le concours AES ? 0.5pt
2. Expliquer la diffrence entre dcoder, dchiffrer et dcrypter. 1.5pt
3. Que signifie confusion et diffusion ? 2pts
4. Quelles sont les grandes ides utilises en chiffrement par blocs ? 1.5pt
5. Citer 3 noms de cryptographes (clbres) 4 ayant travaill sur les schmas de chiffrement
par blocs. 0.5pt

1.3.2 Amlioration dun systme de chiffrement


Monsieur X utilise pour chiffrer ses donnes prives le cryptosystme DES, paramtr par une
cl secrte k de 56 bits connue de lui seul. Comme Monsieur X a entendu dire que 56 bits taient
bien peu de nos jours, il envisage de rendre plus sr le stockage de ses donnes en chiffrant une
seconde fois toutes ses donnes, avec la cl DES k 0 = k + 1 (pour chaque donne en clair m, la
donne chiffre est donc c = DESk+1 (DESk (m)), o k dsigne la cl).
1. Est-ce une bonne ide ?
2. Discuter les avantages et/ou les inconvnients.
3. Monsieur X pense une autre amlioration possible. Il va chiffrer une fois avec DES,
et une fois avec AES128. Comme AES128 a besoin de cls de 128 bits, il va paramtrer
son chiffrement DES par sa cl secrte k, et pour son chiffrement AES128 la meme cl
secrte k, mais avec des zros pour faire le remplissage. Est-ce mieux ?
4. Quelle erreur fondamentale Monsieur X commet-il, eu gard aux principes de Kerckhoffs ?

1.3.3 Mode ECB


Le mode de chiffrement ECB (Electronic Code Book ou Dictionnaire de code) est le mode
de chiffrement le plus simple que lon puisse imaginer : chaque bloc de donnes est chiffr
indpendamment par la fonction de chiffrement.
1. Ce mode de chiffrement nest pas sr, expliquer pourquoi.
2. Jack, qui gagne 105000 euros par an, a retrouv lentre chiffre qui lui correspond dans
la base de donnes des salaires de son entreprise :
Q92DFPVXC9IO
Sachant que la fonction de chiffrement utilis a des blocs de deux caractres et que le
service informatique de son entreprise ne comprend aucun expert en cryptographie (en-
tendre par l, utilise le mode ECB !), retrouver le salaire de Jane la patronne de Jack
parmi le reste de la base de donnes :

TOAV6RFPY5VXC9, YPFGFPDFDFIO, Q9AXFPC9IOIO, ACED4TFPVXIOIO, UTJSDGFPRTAVIO


3. Exemple 2. Imaginer quel point ce mode chiffrement est dplorable pour les photogra-
phies.
4. Cayrel nest pas (encore) une rponse acceptable

11 / 63
12 CHAPITRE 1. NONCS

1.3.4 Mode CBC


Le mode de chiffrement CBC (Cipher Block Chaining ou Enchanement des blocs) suit le shma
suivant :

1. Dessiner le schma de dchiffrement correspondant ce mode de chiffrement.


2. quoi sert le vecteur dinitialisation (IV) ? Doit-il rester secret ?
3. Que se passe-t-il lors du dchiffrement si lun des blocs chiffrs a t altr ?

1.3.5 Mode CTR


Le mode de chiffrement CTR (mode compteur) consiste chiffrer un compteur qui est incr-
ment chaque bloc, puis en calculer le ou exclusif avec le message. Le compteur est initialis
une valeur choisie au hasard appele la nonce.
1. Dessiner les schma de chiffrement et dchiffrement de ce mode opratoire.
2. Expliquer lintrt de la nonce.
3. Quel intrt voyez-vous ce mode de chiffrement quant son implmentation ?

1.3.6 Attaque par insertion


On considre un chiffrement par blocs utilisant un mode opratoire OFB ou CTR. Un atta-
quant parvient intercepter un chiffr C = (c0 , c1 , . . . ), correspondant un message M =
(m0 , m1 , . . . ). Lattaquant connat uniquement C, mais pas M, ni bien sr la cl K ou encore
la valeur IV (pour OFB) ou la nonce (pour CTR).
On suppose que lattaquant parvient forcer la personne qui chiffre re-chiffrer un message M 0
quasiment identique M, mais avec uniquement un bloc de zros insr parmi les autres blocs.
On suppose en outre que lattaquant parvient forcer ce deuxime chiffrement tre ralis
avec la mme IV (pour OFB) ou nonce (pour CTR). Lattaquant obtient donc un nouveau
chiffr C 0 .
1. Comment lattaquant peut-il dterminer le bloc partir duquel M et M 0 diffrent ?
2. Supposons que ce premier bloc diffrent ait pour indice i. Que vaut alors c0i ? Comment
lattaquant peut-il en dduire mi ?
3. Que doit-on en conclure comme prcaution sur lutilisation de OFB ou CTR ?
1.3. CHIFFREMENT ET MODES DE CHIFFREMENT 13

1.3.7 Mallabilit des chiffrements flot


1. Rappeler le fonctionnement du chiffrement flot.
2. Soit C le chiffr dun message M, comment pouvez vous produire le chiffr C 0 du mme
message que vous aurez altr.
3. Imaginer une utilisation pratique de cette attaque.

1.3.8 3DES et 2DES


1. Expliquer le fonctionnement de 3DES (T DES). Pourquoi ce schma de chiffrement est-il
utilis la place de DES ? Quel facteur de complexit ajoute-t-il ?
2. Comme lexcution de 3DES est coteuse, on propose dutiliser la place lalgorithme
2DES, qui consiste composer deux chiffrements DES classiques avec des clefs diffrentes.
Soit m un message et k1 et k2 des clefs DES, on obtient le chiffr c de la faon suivante :
c = 2DES(k2 |k1 ; m) = DES(k2 ; DES(k1 ; m))
(a) Quels sont les avantages de cette approche par rapport 3DES ? Quelle est la
premire estimation nave de la force cryptographique thorique de 2DES ?
(b) Analyse de scurit de 2DES :
i. Combien y a-t-il de clefs diffrentes possibles ? On d ?nit les collisions par lexis-
tence de messages clair m et chiffr c tels que c = 2DES(k; m) = 2DES(k 0 ; m)
avec k 6= k 0 . En considrant la taille des blocs de messages clairs chiffrer, com-
bien existe-t-il en moyenne de clefs qui pour un clair m donn, cre une collision
(i.e. fournissent le mme c) ?
ii. En exploitant la proprit suivante de DES : si c = DES(k2 ; DES(k1 ; m)), alors
il existe un chiffr c0 = DES(k1 ; m) = DES 1 (k2 ; c), construire une mthode
dattaque sur 2DES qui utilise 2 paires de messages clair/chiffr.
iii. partir du nombre moyen doprations ncessaires la cryptanalyse de DES,
estimer les efforts ncessaires pour cette attaque ainsi que la probabilit davoir
trouver la bonne clef grce elle. Quelle est ?nalement la force estime de 2DES ?

1.3.9 Algorithme de Berlekamp-Massey


Cet algorithme consiste construire pour les valeurs successives de N un LFSR de longueur
LN et de polynme de rtroaction fN qui gnre les N premiers bits de la suite s.
Pour N = 2L, lalgorithme retourne le polynme de rtroaction du LFSR de dpart.
Algorithme de Berlekamp-Massey
Entre : s0 , s1 , ..., sn1 une suite de longueur n.
Init : f (X) = 1, L = 0, m = 1, g(X) = 1
Pour N variant de 0 n 1
1. Calculer d = sN + Li=1 ci sN i mod 2.(f (X) = 1 + c1 X + c2 X 2 + ...)
P

2. Si d = 1 alors
t(X) = f (X) et f (X) = f (X) + g(X)X N m .
Si 2L 6 N alors L = N + 1 L, m = N, g(X) = t(X).
1. Appliquer lalgorithme de Berlekamp Massey la suite : 001101110 .
2. Puis concluez en vrifiant votre rponse.

13 / 63
14 CHAPITRE 1. NONCS

Cryptographie clef publique


Dans toute la suite, on pourra utiliser les rsultats numriques suivants :
319 = 11 29 ; 1011 = 263 (mod 319) ; 2632 = 216 319 + 265 ;
1333 = 12 (mod 319) ; 13325 = 133 (mod 319) ;
112 = 121 (mod 280) ; 114 = 81 (mod 280) ; 118 = 121 (mod 280) ; 1116 = 81 (mod 280) ;
95 = 64 + 31 ; 81.11 = 51 (mod 280) ; 81.121 = 1 (mod 280).
Identit de Bezout
Soient a et b deux entiers relatifs et d leur PGCD alors il existe deux entiers u et v tels que :

au + bv = d

Rsolution dune quation diophantienne


Soient a, b et c des entiers, et d le PGCD de a et b, alors lquation au + bv = c admet des
solutions entires si et seulement si c est un multiple de d.
Thorme de Bezout
Soient a et b deux entiers relatifs non nuls. a et b sont premiers entre eux si, et seulement si, il
existe deux entiers u et v tels que au + bv = 1.
Thorme de Gauss
Si un nombre a divise un produit de facteurs et si a est premier avec lun des deux facteurs
alors a divise le deuxime facteur.

Lalgorithme dEuclide permet de calculer le P.G.C.D. de deux entiers naturels a et b tels


que a > b . Il consiste ritrer les manipulations suivantes :
1. Effectuer la division euclidienne de a par b. Soit r le reste.
2. Remplacer a par b et b par r. On a b > r daprs la dfinition de la division euclidienne.
Le P.G.C.D. est le dernier reste non nul.

Exemple dapplication : calcul dinverse modulaire


Dterminez d tel que 7d = 1 mod 360. (revient calculer linverse de 7 mod 360).

360 = 51 7 + 3
7 = 23+1

puis "on remonte" :

1 = 7 2 3 mod 360
1 = 7 2 (360 51 7) mod 360
1 = 7 + 102 7 mod 360
1 = 7 (1 + 102) mod 360
1 = 7 103 mod 360

Do d = 103.

Entranez-vous en montrant que :

56 = 31 mod 170; 37 = 131 mod 143; 113 = 171 mod 120; 219 = 191 mod 520.

Dtailler le calcul de 3 inverses modulaires (diffrents de ceux proposs ci-dessus).


1.4. MTHODES DE CALCUL 15

1.4 Mthodes de calcul


1.4.1 Square and Multiply
En utilisant lalgorithme square and multiply, montrer que :

4137 mod 527 = 113; 57 mod 403 = 346; 12817 mod 407 = 50;

84113 mod 143 = 2; 207219 mod 583 = 192.


Dtailler le calcul de 3 exponentiations modulaires (diffrentes de celles dj proposes).

1.4.2 Calcul modulaire


Calculer (de tte si possible)
1.
2256 mod 128

2.
529436 mod 66

3.
10234096 mod 1024

4.
4562308 mod 234327

1.4.3 Thorme des restes chinois


Comment rsoudre le systme de congruences suivant :


x = r1 mod m1
x = r2 mod m2

?

...
x = rk mod mk

Cest le thorme des restes chinois qui nous fournit la rponse :


Soit k nombres entiers naturels m1 , m2 , ..., mk , premiers entre eux deux deux, et k entiers
r1 , r2 , ..., rk .
Le systme de congruences


x = r1 mod m1
x = r2 mod m2


...
x = rk mod mk

admet une unique solution modulo M = m1 m2 ...mk .

La mthode permettant de construire une solution de ce systme est fournit ci-dessous.


M
Posons Mi = m i
pour i = 1, 2, ..., k. On a donc pgcd(Mi , mi ) = 1 et on peut ainsi trouver
daprs lidentit de Bezout deux entiers ui et vi tel que Mi ui + mi vi = 1.

15 / 63
16 CHAPITRE 1. NONCS

On a alors :

u1 M1 r1 + u2 M2 r2 + ... + uk Mk rk = ri mod mi pour i = 1, 2, ..., k

Par consquent le nombre x = u1 M1 r1 + u2 M2 r2 + ... + uk Mk rk est solution du systme.


De plus si y est une autre solution de celui-ci, alors mi divise x y pour chaque i = 1, 2, ..., k.
Ainsi x y est divisible par M. Le systme admet donc une seule solution modulo M.

Autrement dit, les solutions du systme sont de la forme

x = u1 M1 r1 + u2 M2 r2 + ... + uk Mk rk + nM

avec n entier.

Application - 1
Une bande de 17 pirates sest empare dun butin compos de pices dor dgale valeur.
Ils dcident de se les partager galement et de donner le reste au cuisinier chinois. Celui-ci
recevrait trois pices. Mais les pirates se querellent et six dentre eux sont tus. Le cuisinier
recevrait alors 4 pices. Survient alors un naufrage et seuls 6 pirates, le cuisinier et le trsor
sont sauvs et le partage laisserait 5 pices dor ce dernier.

Quelle est alors la fortune minimale que peut esprer ce dernier sil dcide dempoisonner le
reste des pirates ?

Application - 2
Pour vous entraner, vous appliquerez le thorme des restes chinois deux des systmes de
congruences suivants (vrifiez votre rsultat) :

x = 0 mod 5 x = 0 mod 5
1. x = 4 mod 7 3. x = 6 mod 7
x = 4 mod 19 x = 1 mod 19


x = 2 mod 5 x = 5 mod 6
2. x = 5 mod 7 4. x = 4 mod 11
x = 10 mod 19 x = 3 mod 17

Application - 3
Choisissez, sans me le dire, un nombre entier entre 1 et 500.
Je vais seulement vous demander trois nombres construits laide de celui-ci et je retrouverais
sans trop de difficult le nombre que vous aviez choisi.
Pour cela, diviser votre nombre par 5 et donner moi le reste obtenu.
Faites de mme avec la division par 7 et celle par 19.
Ces trois restes suffisent pour retrouver votre nombre.

Raliser cette exprience avec votre voisin (avec trois nombres premiers entre eux de votre
choix).
Noter sur une feuille, que vous me rendrez, lensemble des rsultats.
1.4. MTHODES DE CALCUL 17

1.4.4 Autour des nombres premiers


1. Pour quelles valeurs du nombre entier n le nombre n2 8n + 15 est-il premier ?
Mme question pour n2 + 4n + 3.
2. Pour quelles valeurs de n et m (entiers) le nombre 2n2 + 5mn + 3m2 est-il premier ?
3. Trouver 1 000 entiers naturels conscutifs, tous composs.
4. Thorme : Soit n un entier naturel. Si n est un nombre premier, alors pour tout
entier a premier avec n, on a an1 = 1 mod n (cest--dire n divise an1 1).
Remarque : Le thorme de Fermat peut tre utilis pour montrer quun entier nest
pas premier : si il existe un entier a premier avec n tel que an1 6= 1 mod n alors n
nest pas premier.
Application : Lentier 37901 est-il premier ?

1.4.5 Test de primalit de Miller-Rabin


Soit p un nombre premier impair que lon crit sous la forme p = 2s d+1. Soit a {1, . . . , p1}.
i
On dfinit une suite rcurrente (bi ) en posant : bi = ad2 .
1. Montrer que dans Z/pZ, lquation x2 = 1 entraine x = 1 ou x = 1.
2. Montrer que bs 1 mod p.
3. On suppose que b0 nest pas congru 1 modulo p.
Montrer lexistence de i {0, . . . , s 1} tel que bi 1 mod p.
4. En dduire un test de non-primalit dun entier.

1.4.6 Algorithme p 1 de Pollard


Le but est de trouver un fecteur non trivial de n = 19 048 567. On prend B = 19 et a = 3.
1. Vrifier que gcd(a, n) = 1.
2. Dterminer, pour chaque nombre premier 6 19, sa plus grande puissance qui soit 6 n.
Soit Q le ppcm de toutes ces puissances, et p un hypothtique fecteur premier de n tel
que p 1 soit 19-friable 5 .
3. Montrer que p 1 divise Q.
4. En dduire que p divise aQ 1 (on pourra utiliser le petit thorme de Fermat).
5. En dduire que gcd(aQ 1, n)(= gcd((aQ 1) mod n, n)) est diffrent de 1.
6. On admet le calcul intermdiaire aQ mod n = 554 56. En dduire numriquement un
facteur non-trivial de n.

1.4.7 Thorme de Wilson


Le but de cet exercice est de dmontrer le thorme de Wilson : un entier n > 2 est premier si
et seulement si (n 1)! 1 mod n.
1. Soit p premier. Combien de solutions lquation x2 = 1 admet-elle dans Z/pZ ?
2. Soit p premier. Montrer que (p 1)! = 1 mod p.
3. Soit n > 2 un entier tel que n divise (n 1)! + 1.
Montrer que pour tout a {1, . . . , n 1}, a est inversible dans (Z/nZ, ).
En dduire que n est premier.
5. Cest--dire que tous les facteurs premiers sont infrieurs 19.

17 / 63
18 CHAPITRE 1. NONCS

1.5 change de clefs


1.5.1 Fonctionnement cl prive vs cl publique
Expliquez les principes de fonctionnement de la cryptographie symtrique et de la cryptographie
asymtrique, en mettant en vidence les diffrences entre ces deux catgories, leurs avantages
et leurs inconvnients respectifs. Vous pourrez illustrer votre rponse par un exemple de chaque
catgorie, dcrit aussi prcisment que possible. Rponse limite une page.

1.5.2 Cl prive vs cl publique


Dix-sept personnes veulent pouvoir schanger des messages deux deux. Si elles choisissent
un systme cl secrte, combien de cls faut-il en tout ? Mme question pour un systme
cl publique. Quels sont les avantages de chaque systme ? Lequel conseillez-vous ?

1.5.3 Diffie-Hellman
Dterminer la cl commune dAlice et Bob dans le cas o p = 23 et g = 3 et Alice choisit un
nombre secret a = 6 et Bob choisit b = 15.

1.5.4 Perte dune cl prive


Un utilisateur, qui utilise souvent la messagerie scurise de son entreprise, vient de perdre sa
cl prive, mais dispose encore de la cl publique correspondante.
1. Peut-il encore envoyer des courriers lectroniques chiffrs ? En recevoir ?
2. Peut-il encore signer les courriers lectroniques quil envoie ? Vrifier les signatures des
courriers lectroniques quil reoit ?
3. quoi peut encore servir la cl publique de notre utilisateur ?
4. Que doit-il faire pour tre nouveau capable deffectuer toutes les oprations mentionnes
ci-dessus ?

1.5.5 Attaque par le milieu de Diffie-Hellman


Dcrire une attaque dans le protocole de Diffie-Hellman dans laquelle un attaquant actif (i.e.
qui peut modifier les donnes pendant le protocole Diffie-Hellman) peut ensuite intercepter,
dchiffrer et modifier toutes les communications quAlice ou Bob chiffrerait avec sa cl.
1.6. CHIFFREMENT 19

1.6 Chiffrement
1.6.1 Kid-RSA
Cet exemple indiqu des fin pdagogiques par Neil Koblitz donne une ide de ce que peut
tre la cryptographie cl publique. Evidemment il nest pas raliste dans la mesure o il est
lmentairement cassable. Les lettres A, B, . . . , Z sont reprsentes par les nombres 0, 1, . . . , 25.
Alice choisit 4 entiers > 3 nots a, b, a0 , b0 et calcule successivement :
M = ab 1 e = a0 M + a
ed 1
d = b0 M + b n=
M
Alice rend public (dans un annuaire par exemple) le couple (n; e) (sa cl publique) et maintient
d secret (sa cl prive). Lutilisation du systme se fait de la faon suivante : si Bob dsire
envoyer un message Alice, il chiffre successivement toutes les lettres de ce message en faisant
correspondre tout nombre m compris entre 0 et 25 le nombre c = em mod n.
1. Montrer que n > 25. Pourquoi est-il souhaitable quil en soit ainsi ? Montrer que e et n
sont premiers entre eux.
2. Comment Alice peut elle rcuprer simplement m lorsquelle a reu c ?
3. Charlie coute la ligne de communication entre Alice et Bob et disposent donc de c.
Comment peut-il attaquer le systme et dcouvrir m ?
4. Utiliser ce systme pour signer un message.

1.6.2 Chiffrement/Dchiffrement RSA


On considre la clef publique RSA (11, 319), cest--dire pour n = 319 et e = 11.
1. Quel est le chiffrement avec cette cl du message M = 100 ?
2. Calculer d la cl prive correspondant la cl publique e.
3. Dchiffrer le message C = 133.
4. Le message chiffr 625 peut-il rsulter dun chiffrement avec la cl publique ?

1.6.3 Exemples de RSA


Considrer le systme RSA avec p = 19 et q = 23.
1. Calculer n et (n).
2. Calculer lexposant d associ e = 9, puis e = 14.
3. Calculer lexposant d associ e = 17.
n e C
143 17 84
247 5 115
Dans le tableau ci-contre n et e sont publics :
319 11 133
n = pq avec p et q deux nombres premiers secrets.
323 25 19
e a pour inverse d : ed = 1 mod (p 1)(q 1) qui est tenu secret.
403 7 346
On donne un chiffr C = m mod n.
407 17 50
vous de retrouver p, q et m.
583 19 207
Dtaillez votre mthode et vrifiez votre rsultat.
4717 21 2804
Donner un autre triplet (n, e, C) (non prsent dans le tableau ci-dessus) votre voisin.
lui de dterminer p, q et m.

19 / 63
20 CHAPITRE 1. NONCS

1.6.4 Chiffrement RSA


Examen 2012-2013

On utilise les notations habituelles du chiffrement RSA : N est un entier et p et q sont deux
entiers premiers tels que N = pq. On note lindicatrice dEuler = (N ) = (p 1)(q 1) et
e et d sont deux lments de Z/N Z tels que ed = 1 mod .
1. On souhaite utiliser lalgorithme de chiffrement RSA.
Comment chiffre-t-on un message m ? 0.5pt
Et comment dchiffre-t-on un message c ? 0.5pt
Parmi les entiers N, p, q, , e et d quels sont ceux qui doivent rester secrets ? 0.5pt
Montrer que la divulgation de lune quelconque des valeurs secrtes permet de retrouver
toutes les autres valeurs prives. 2pts

2. On pose N = 1003 et e = 3.
Calculer p, q et . 1pt
Que vaut alors lentier d associ e ? 1pt
Que vaut le message chiffr c associ au message clair m = 4 ? 0.5pt
Dans ce cas particulier, est-il possible de retrouver m partir de c sans connatre d ?
1pt
3. On pose dsormais N = 65.
Donner tous les couples (e, d) possibles. 1pt
Chiffrer le message m = 4 en utilisant e = 5. 0.5pt
Vrifier le rsultat obtenu en le dchiffrant laide de la clef prive correspondante.
1.5pt

1.6.5 RSA-3
Dans tout cet exercice, on se donne trois entiers premiers impairs p, q et r differents deux
deux. Soit n lentier gal au produit pqr. On sintresse ici un cryptosystme identique RSA.
1. Montrer que lon peut dfinir, de la mme manire que pour RSA, une fonction de chiffre-
ment et de dchiffrement ainsi quun cryptosystme cl publique en utilisant lentier N.
Vous exhiberez les cls publiques et prives et dfinirez lensemble des messages possibles.
On notera ce cryptosystme RSA-3 dans toute la suite de lexercice.
2. Rappeler quels sont les messages qui sont dangereux lors de lutilisation de RSA.
Quels seront ceux qui seront dangereux pour RSA-3 ? (Vous argumenterez votre rponse.)
3. Montrer quil est possible dutiliser le thorme des restes chinois lors du dchiffrement
dun message.
4. Donner le chiffrement de x = 13 et le dchiffrement de y = 11 en utilisant le thorme
des restes chinois avec p = 3, q = 5, et r = 7 et e (lexposant de chiffrement) gal 19.

Raliser un protocole de chiffrement la RSA-3 avec votre voisin.


Noter sur une feuille, que vous me rendrez, lensemble des rsultats.
1.6. CHIFFREMENT 21

1.6.6 Chiffrement El Gamal


Alice choisit p = 97 et g = 13.
(a) Elle choisit alatoirement un nombre a, disons 45, dans lintervalle [1, ..., 95].
(b) Elle calcule = (1345 mod 97) = 20.
(c) Elle publie sa cl (97, 13, 20) et garde secrte sa cl 45.
Bob veut envoyer le message RAS Alice.
(a) En utilisant le code ASCII, son message est 118 101 119.
(b) Il le dcoupe en nombres entre 0 et 97 : 11 81 01 11 09.
(c) Il choisit alatoirement un nombre b, disons 35, dans lintervalle [1, .., 95].
(d) Il calcule = 1335 mod 97 = 71 mod 97.
1. Vrifier que le chiffr de son message est (71, 21 40 46 21 26).
2. Comment Alice dchiffre-t-elle le message de Bob ? Dchiffrer-le.

Raliser un protocole de chiffrement la El Gamal avec votre voisin.


Noter sur une feuille, que vous me rendrez, lensemble des rsultats.

1.6.7 Changement de cls


Alice change sa cl RSA tous les 25 jours. Bob lui change sa cl tous les 31 jours. Sachant
quAlice change sa cl aujourdhui et que Bob a chang sa cl il y a trois jours, dterminer
quand sera la prochaine fois quAlice et Bob changeront leur cl le mme jour.

21 / 63
22 CHAPITRE 1. NONCS

1.7 Attaques sur RSA


1.7.1 Attaque par module commun
Une implantation de RSA donne deux personnes (Alice et Bob) le mme nombre n (produit
de deux nombres premiers) mais des clefs (eA , dA ) et (eB , dB ) diffrentes.
On suppose de plus que eA et eB sont premiers entre eux (ce qui est le plus gnral).
Supposons alors que Alice et Bob chiffrent un mme message m et que Oscar intercepte les
deux messages cA = meA mod n et cB = meB mod n quil sait tre deux chiffrements du mme
message m.
Montrer quOscar peut alors trs facilement dcouvrir le message m.
Vous illustrerez cette attaque par un exemple de votre choix.

1.7.2 De (n) la factorisation


On considre un module RSA n = pq, o p et q sont les inconnues.
Montrer simplement comment la connaissance de (n) = (p 1)(q 1) (la fonction dEuler)
permet de remonter la factorisation de n.
On rappelle que si on connat pq et p + q alors p et q sont racines dun polynme de degr 2
dterminer.

1.7.3 RSA avec deux facteurs trop proches


Supposons que n soit un entier produit de deux nombres premiers p et q proches (on peut
toujours supposer que p > q). On pose t = p+q
2
et s = pq
2
.
Montrer que :
1. n = t2 s2 ,
2. t est lgrement suprieur la racine carre de n.
On peut utiliser ces informations pour factoriser n.

Lalgorithme sappelle lalgorithme de Fermat, le voici :


1. A d ne ( N)
2. x = A2 n ( N)
3. Tant que x nest pas carr parfait
(a) A A + 1
(b) x A2 n

4. Retourner p = A + x et q = A x

1. Appliquer cet algorithme pour factoriser 24960007, puis 3649574023.


2. Dterminer la complexit de cet algorithme, en fonction de p et de n.
On sait que lorsque A vaudra p+q
2
= alors x = t2 n = s2 sera un carr.

3. Dterminer
le nombre ditrations de lalgorithme lorsque p diffre de n de moins de
4
4n.
1.7. ATTAQUES SUR RSA 23

1.7.4 Mallabilit de RSA


Nous allons montrer comment les proprits multiplicatives de RSA rendent une utilisation
nave de ce cryptosystme compltement illusoire.
1. Proposer un procd de signature naf dun message m Z/nZ par Alice avec sa cl
prive RSA.
2. ve a russi se procurer les signatures du message m1 et du message m2 .
Montrer quels autres messages elle peut signer au nom dAlice, et comment.
3. Nous allons montrer une sorte de gnralisation de ce procd.
On suppose quve sest procur un ensemble de signatures de messages : elle connat
un grand nombre de couples (mi ; S(mi )). De plus, les mi sont petits et ve a pu les
factoriser : Y
i, mi = j i,j .
j

On appelle falsifier une signature le fait den crer une de toutes pices.
Quelles signatures ve est-elle capable de falsifier dans ces conditions ?
4. On suppose quve souhaite falsifier la signature dun message cible not mt quelle a
aussi russi factoriser en fonction des j :
Y
mt = j j .
j

Montrer comment ve doit sy prendre pour falsifier la signature de mt .

1.7.5 Le temps de factorisation des grands entiers


Le meilleur algorithme connu ce jour pour factoriser les grands entiers est le GNFS (General
Number Field Sieve). SOn facteur de travail, pour factoriser un entier N est donn par la
formule :
W (N ) = k exp c(log2 N )1/3 (log2 log2 N )2/3


avec : p
c = 3 64/9.
k est une constante qui dpend de la qualit du programme.
1. Calculer k sachant quen 1999, un entier de 512 bits a t factoris par une quipe inter-
nationale avec un facteur de travail de 8000 Mips-annes ;
2. Avec cette valeur, quel est le facteur de travail ncessaire pour factoriser un entier de 768
bits ? et 1024 bits ?

23 / 63
24 CHAPITRE 1. NONCS

1.8 Signature et hachage


1.8.1 Signature RSA
1. Calculer le module n et lentier (n) associs aux nombres premiers p = 17 et q = 23.
2. Quels sont les exposants secrets de signature associs aux exposants publics e = 11 et
e = 13 ?
3. Quelle est la signature de m = 100 ?
4. Vrifier que la vrification fonctionne.

Raliser un protocole de signature RSA avec votre voisin.


Noter sur une feuille, que vous me rendrez, lensemble des rsultats.

1.8.2 Signature aveugle avec RSA


Trouver un algorithme partir de la signature R.S.A qui permet de faire un algorithme de
signature aveugle. On a un message m quon souhaite faire signer sans que le signataire sache
ce quil signe, et un couple de cls publique/prive.

1.8.3 Signature El Gamal


On considre la mthode de signature dEl Gamal, avec p = 467, g = 2, x = 65
1. Justifier la validit du choix de p et g.
2. Calculer la cl publique y = g x mod p.
3. Calculer la signature du message m = 100 en utilisant les valeurs alatoires k = 64 et
k = 213.
4. Vrifier que la vrification fonctionne.

Raliser un protocole de signature la El Gamal avec votre voisin.


Noter sur une feuille, que vous me rendrez, lensemble des rsultats.

1.8.4 Signature El Gamal : utilisation de lala


Le schma de signature El Gamal utilise un gnrateur g de Zp et une clef publique y = g x mod p,
o x est la cl prive.
1. Dans quel ensemble choisir x ?
Pour signer un message m, le signataire tire un ala k et calcule

r = g k mod p et s = k 1 (h(m) xr)

o h(.) est une fonction de hachage. Le couple (r, s) est la signature du message m.
2. Dcrire une attaque contre ce schma de signature si le mme ala k est utilis pour signer
deux messages diffrents. De quel type dattaque sagit-il ?
1.8. SIGNATURE ET HACHAGE 25

1.8.5 Signature El Gamal sans vrification modulaire


On suppose que le schma de signature El Gamal est utilis sans vrifier si 0 < r < p. On
suppose que lataquant connat la signature (r, s) dun message m.
Soit m0 un message arbitraire et s0 = s avec = h(m0 )h(m)1 mod p 1.
1. Trouver deux quations vrifies par r0 (lune modulo p et mautre modulo p 1) telles
que (r0 , s0 ) soit une signature de m0 .
2. Comment peut-on rsoudre ces quations ?
3. De quel type dattaque sagit-il ?

1.8.6 Signature GHR (Gennaro-Halevi-Rabin)


Ce schma de signature propos en 99 fonctionne de la manire suivante.
On considre un module RSA de la forme N = pq o p = 2p0 + 1 et q = 2q 0 + 1, avec p, p0 , q, q 0
0 0
tous premiers. On prend au hasard u ZN tel que u soit dordre 2p0 q 0 (u2p q mod N = 1). La
cl publique est (N, u). La cl prive est constitue de la factorisation de N.
1. Montrer que p0 suffit retrouver la factorisation de N.
2. Montrer que la valeur p0 q 0 suffit galement retrouver la factorisation.
3. Quelle est la valeur de (N ) ?
Soit h(.) une fonction de hachage qui produit des hachs de taille N. Pour signer un message
1 0 0
M, on calcule m = H(M ), puis s = um mod 2p q mod N : la valeur de la signature est s.
4. Pourquoi linverse de m est-il calcul modulo 2p0 q 0 ?
5. Retrouver quelle est la procdure de vrification dun couple message/signature (M, s).
La scurit de ce schma est lie au problme algorithmique suivant, qui est une variante du
problme RSA (on lappelle flexible RSA) : tant donne (N, v) o N est un module RSA et v
un lment de ZN trouver un couple (x, e) tel que e > 1 et x = v mod N.
6. Rappeler la diffrence avec le problme RSA classique.
7. Expliquer pourquoi on impose e > 1.
8. Montrer que si le problme RSA classique est facile, alors le problme flexible RSA pr-
sent ci-dessus est galement facile.

25 / 63
26 CHAPITRE 1. NONCS

1.9 Hachage
1.9.1 Fonction de hachage faiblement sans collision
Dfinition : Soit h : X Y une fonction de hachage.
h est dite sens unique si, pour presque tout y de Y, il est calculatoirement infaisable de
trouver x tel que y = h(x).
h dite faiblement sans collision si, pour x donn, il est calculatoirement infaisable de
trouver x0 tel que h(x0 ) = h(x).
h est dite sans collision sil est calculatoirement infaisable de trouver x et x0 tels que
h(x) = h(x0 ).
1. Montrer que sans collision implique faiblement sans collision et que sens unique im-
plique faiblement sans collision.
2. Montrer quune fonction peut tre sans collision mais pas sens unique.

1.9.2 Fonction de hachage et signature


Soit h une fonction de hachage valeur dans Fn2 .
On considre le cas dun attaquant qui pour abuser une signature souhaite construire deux
messages (presque identiques) ayant le mme hach.
1. Donner une attaque en O(2n/2 ) pour la fonction de hachage h qui permet de construire
deux messages (presque identiques) mais avec le mme hachs.
2. Montrer comment lattaque prcdente peut tre utilise avec la signature RSA pour
abuser un vrificateur de signature.

1.9.3 Le buzz free mobile


Le 6 janvier 2012, les geeks sagitent pour savoir quand les forfaits de la marque Free Mobile
seront lancs. Le site live.free.fr contient un dessin de fuse, avec les symboles :
efb7929e6a5b7dcc6ebb79aa3c45af13
Cette valeur est ce que renvoie la fonction de hachage md5 sur la donne jesaispas.
Des petits malins y voient aussi un second message cach en interprtant la chane prcdente
dans le codage ascii. On y lirait NIEL JOIN RACE >>START

Est-il plausible dobtenir fabriquer un message intelligible qui donne un hach intelligible ?
1.10. AUTHENTIFICATION 27

1.10 Authentification
1.10.1 Authentification clef secrte
Il existe des protocoles permettant dauthentifier une entit A auprs dune entit B. Cela
prsuppose donc que A sache effectivement que lentit vrificatrice est bien B, et pas un
attaquant C qui se fait passer pour B. Or lors de la plupart des connexions, rien ne len
assure. Il faudrait alors que B sauthentifie galement auprs de A. Cest ce quon appelle
lauthentification mutuelle.
Lide gnrale est alors de reprendre les protocoles qui existent pour lauthentification dune
entit et de lappliquer de manire symtrique pour authentifier B auprs de A. Nous allons
voir sur deux exemples quil est tout de mme ncessaire de prvoir quelques ajustements.
1. Expliquer pourquoi il nest pas possible de faire de lauthentification mutuelle par mot de
passe.
2. Suggrer alors une attaque qui permet de rcuprer un mot de passe Unix. Enumrez
dautres situations dans lesquelles une interception de mot de passe est possible en lab-
sence dauthentification du serveur.
On cherche maintenant utiliser une authentification de type dfi-rponse utilisant un
systme cl secrte. Considrons le protocole suivant qui utilise un chiffrement cl
secrte. A et B partagent au pralable une cl secrte K.
(i) A tire une valeur alatoire rA et lenvoie B;
(ii) B tire une valeur alatoire rB et calcule = EK (rA , rB ). B envoie A;
(iii) A calcule DK (). Sil ny a pas eu dattaque, il retrouve rA : B sest authentifi. Il
prend connaissance de rB . Il envoie rB B : A sest authentifi.
3. Trouver une attaque de ce protocole par rejeu. On donne les lments de dpart de
lapproche. Le participant A est honnte, et lattaquant C (malhonnte) se fait passer
pour B.C va, paralllement la tentative dauthentification mutuelle manant de A (vers
B, pense-t-il) appele session 1, initier une session dauthentification vers A (en faisant
croire quelle mane de B), quon appellera session 2. Les messages de ces deux sessions
sentrelacent.
Les premires tapes sont (exactement dans cet ordre) :
session 1 : A envoie rA C.
session 2 : C envoie rA A.
Complter, et expliquer do provient le problme.
4. Suggrer une amlioration.

1.10.2 Authentification clef publique


Proposer un schma bas sur le chiffrement ou sur la signature pour faire de lauthentification
cl publique.

27 / 63
28 CHAPITRE 1. NONCS

1.10.3 Schma de Schnorr


Dans un protocole didentification, un vrificateur V veut vrifier lidentit dun prouveur P.
Pour cela, P doit convaincre V quil est en possession dun certain secret s. Les deux objectifs
essentiels dun tel protocole sont dune part quun usurpateur U ne connaissant pas s ne puisse
pas convaincre V, et dautre part que P puisse convaincre V quil possde s sans lui rvler la
valeur de s (sinon V pourrait devenir son tour un usurpateur de lidentit de P ).
Nous dcrivons maintenant le protocole didentification de Schnorr :
p et q sont des nombres premiers tels que q divise p 1 et est un lment dordre q du groupe
multiplicatif (Z/pZ) . Un nombre s mod q est le secret de P, tandis que les valeurs de p, q, ,
et v := s mod p sont publiques.
Le protocole didentification se droule en quatre tapes :
1. Engagement : P choisit alatoirement un entier r mod q et transmet x = r mod p V.
2. Challenge : V envoie un challenge e [0; q 1[ P.
3. Rponse : P envoie y = r + es mod q V.
4. Vrification : V vrifie que x = y v e mod p.
P a russit son identification auprs de V si la vrification est positive.
1. Montrer que P russit toujours son identification auprs de V.
2. U tente de sidentifier auprs de V. Pour cela il rpond un y alatoire ltape 3. Quelles
sont ses chances de succs ?
3. Supposons que le protocole prcdent soit mal excut, et que lordre des tapes 1 et 2
soit invers. Montrez que U peut alors russir son identification auprs de V.
4. Montrez que, si pour un mme engagement r, U est capable de rpondre correctement
deux questions e et e0 distinctes poses par V, alors il connait s.
1.11. PKI, CERTIFICATS 29

1.11 PKI, Certificats


1.11.1 PKI
Proposer une mthode base de certificat pour vrifier une signature reue par un individu,
sans avoir consulter un annuaire ou une base de donnes.

1.11.2 Certificats
Discuter les trois scnarios suivants en termes de scurit :
1. Deux certificats diffrents sont signs par la mme clef prive.
2. Deux certificats diffrents contiennent la mme clef publique.
3. Deux certificats diffrents ont la mme signature.

1.11.3 Distinguer les clefs utilises dans PGP


PGP utilise 4 clefs quand un utilisateur A souhaite signer et chiffrer un courrier lectronique
pour un utilisateur B :

la clef utilise pour signer le contenu du courrier,


la clef utilise pour dchiffrer la clef utilise dans la premire tape,
la clef utilise pour chiffrer le contenu du courrier,
la clef utilise pour chiffrer la clef utilise dans la troisime tape.

1. Lesquelles de ces clefs sont dites symtriques ?


2. Quelles longueurs (exprimes en bits) semblent adquates pour des clefs symtriques ?
Mme question pour des clefs asymtriques.
3. Expliquer quel moment les 4 clefs considres sont gnres.

1.11.4 Hachs de mots de passe


Les systmes dauthentification usuels vrifient les mots de passe laide de leur hach stock
dans des fichiers protgs.
1. Quelle est lutilit de stocker les hachs des mots de passe plutt que les mots de passe
eux-mmes ?
2. Pourquoi doit-on protger laccs aux hachs des mots de passe ?
3. Sous quelle condition cette prcaution ne serait-elle pas ncessaire ?

29 / 63
30 CHAPITRE 1. NONCS

1.11.5 Le protocole HTTPS


Le protocole HTTPS (HTTP sur SSL/TLS) est couramment utilis pour scuriser les com-
munications entre un serveur web et un navigateur. Pour cela, une session HTTPS sappuie
sur un certificat diffus par le serveur permettant deffectuer une session dauthentification ini-
tiale et ensuite un chiffrement du canal de communication dans lequel transite lchange HTTP.
1. Lors de lauthentification, le protocole utilise une clef publique contenu dans un certi-
ficat que le serveur dtient et diffuse au client ltablissement de la connexion.
Quelles sont les protections offertes par cette utilisation dun certificat serveur ?
2. Comment lutilisateur du navigateur peut-il tre assur que cette clef publique corres-
pond bien lorganisme auquel il souhaite accder ?
3. Pourquoi de nombreux services web, utilisant pourtant HTTPS, demandent-ils en plus
lutilisateur de fournir un nom de compte et un mot de passe pour complter louver-
ture de session ?
4. Il est possible dutiliser un certificat client stock sur le navigateur pour lchange HTTPS.
Quel est leffet de lutilisation dun certificat client sur la protection de lensemble du ser-
vice ?
5. Avec un certificat client, lutilisateur doit quand mme parfois fournir une passphrase :
de quel mot de passe sagit-il ?
6. Pensez-vous quil y ait une passphase utilisateur sur la partie prive du certificat ser-
veur ? Pourquoi ?

1.11.6 La carte bleue


Une carte bancaire ( puce) possde un couple cl publique/cl prive kP , kS . Dans la perspective
dune transaction, elle accomplit plusieurs choses. En premier lieu, elle apporte une preuve
quelle est une vraie carte, car :
Elle produit une signature valide = AkS (m) avec sa cl prive dun message alatoire quon
lui fournit.
Elle peut exhiber une preuve que sa cl publique kP quelle fournit, et qui est ncessaire pour
vrifier , est bien une cl que la banque reconnat comme appartenant un de ses clients.
1. Quelle forme peut prendre la preuve prcdemment cite ?
Quelle connaissance doit avoir le distributeur pour vrifier cette preuve ?
2. Logistiquement parlant, est-il pratique de sassurer que tous les distributeurs sur la plante
ont cette connaissance ? Quel rle peuvent jouer alors des organismes plus mondiaux
comme Visa, Mastercard ? En second lieu, la carte dit oui ou non une proposition de
valeur pour le code PIN que lui relaie le distributeur (celui-ci ne relaie le code PIN que si
la carte sest authentifie auprs de lui). Lors dune transaction, la carte a pour vocation
de dire ok ou pas un montant de transaction. Elle peut ventuellement aussi dire il faut
demander la banque. Pour dire ok, la carte renvoie un code dautorisation qui est une
signature du montant de la transaction et du numro de carte.
3. Si un attaquant parvient trouver la cl secrte kS de la carte, et quil dispose du matriel
pour fabriquer une carte, que peut-il faire ?
Mme question sil parvient trouver la cl secrte de la banque.
Chapitre 2

Corrections

2.1 Pour se familiariser avec les ordres de grandeur


2.1.1 Mot de passe
1. Il faudrait ainsi, en moyenne moins de 17 minutes et dans le pire des cas moins de 5
heures et 30 minutes pour retrouver le mot de passe.
2. Soit donc 2 jours et 8 heures au maximum et vraisemblablement moins de 50 minutes.
3. Il y 104 = 10000 mots de passe diffrents constitus de 4 chiffres, ce qui reprsente 2h et
45 minutes pour tous les tester.
4. Si il sagit de 8 lettres minuscules, il faut :

268 s 6600 annes.

Cependant si lon sautorise les minuscules, les majuscules, les chiffres et quinze signes de
ponctuations :
778 s 4 106 annes.

2.1.2 Dnombrements
1. 26, trivialement [environ 4,7 bits].
2. On a 26 choix pour b, mais a doit tre inversible modulo 26, sinon on ne peut pas dchiffrer !
Donc il y a (26) = (13 1)(2 1) = 12 choix pour a.
Au total : 26 12 = 312 cls [environ 8,29 bits].
3. On a droit toutes les permutations des valeurs [0,26] : chaque lettre est transforme en
lune des 26 autres, mais de faon bijective. Donc 26 ! cls possibles [88,4 bits ... mais cest
sans compter lexploitation des redondances linguistiques].
4. Il y a 26 choix possibles pour chacun des k caractres donc 26k cls possibles [4,7 bit par
caractre de cl].

2.1.3 Vider locan avec un d coudre


2
Volume dun d coudre : Vde = 1,54 1, 5 2, 6507cm3
Volume de locan : Vdocean = 360 106 3, 8 = 13, 68 108 km3 = 13, 68 1023 cm3
Il y a donc r = Vocean
Vde
0, 516 1024 ds coudre dans locan. On a log2 (r) 78, 77.

31
32 CHAPITRE 2. CORRECTIONS

2.1.4 La force brute


1. Le temps pour tester une cl est
facteur de travail 1200
t= = 0, 6 106 s
puissance 2000 106

2. Il y a n = 2128 0, 34 1039 cls tester.


On considre les cls possible comme tant les entiers de 0 2128 1, et la cl secrte est
note k. On a deux scenarios dattaque par force brute possible. On note n = 2128 .
Si on essaie tous les entiers les uns aprs les autres.
La probabilit, pour un entier i donn, davoir k = i (et donc davoir exactement
i+1 tirages effectuer si on part de 0), est gale n1 .
Lesprance du nombre dessais est donc :
n1
X 1 n(n + 1) n
(i + 1) = .
i=0
n 2n 2

3. On use et abuse des approximations :


103 = 1000 210 , 1jour = 216 s, 1an = 29 jour = 225 secondes, etc.
On calcule le nombre dinstructions calcules en un an la frquence de 2000 Mips :

2000 Mips.annes 2000 220 29 216 211+20+9+16 256 instructions.

Le nombre dinstructions effectuer pour trouver la cl est : 1200 2127 2138 .


Soit un temps de 213856 281 annes (ou en base 10 : 2 (210 )8 2 1024 ).
Le milliard ( 230 ) de PC dInternet permettent de gagner un facteur 230 , ou 109 .
Soit quelque chose comme 2 1015 annes, soit un petit million de fois lge de lunivers.

2.1.5 La loi de Moore


1. On a dun part Wn+1 = aWn et la loi de Moore nous indique que Wn+18 = a18 Wn = 2Wn .
18
On en dduit donc que a = 2.
2. Lhypothse est que la machine a une frquence de 1000 Mips (230 par seconde), donc
en un mois (25 jours de 216 secondes, en gros), a fait 251 instructions. En outre on a :
Wn = an W0 .
3. Au bout de n mois, le nombre dinstructions Sn effectu est W0 + . . . Wn1 , soit :

Sn = W0 (1 + a + + an1 ),
an 1
= 251 .
a1
Pour que Sn dpasse le nombre dinstructions effectuer, qui est (2127 211 = 2138 ), il
1
faut une estimation la louche de a 1. la calculatrice on obtient a 1 25 . On vise
donc :

287
an 1 213851 (a 1), 282 ,
25
2.1. POUR SE FAMILIARISER AVEC LES ORDRES DE GRANDEUR 33

82 log2 2
n 82 18 123 annes.
log2 a
Ce qui est trs trs loin du temps calcul lexercice prcdent.
Il faut penser rajouter quon a donc besoin de changer 1476 fois dordinateurs.

33 / 63
34 CHAPITRE 2. CORRECTIONS

2.2 Vignre, Polybe et Hill


2.2.1 Csar/Vignre
1. Un texte long car les frquences sont alors plus proche des frquences moyennes de la
langue (on a moins de variations).
2. Dcalage ap.
3. Oui puisquil retrouve trivialement la cl.
4. Il saucissonne le message en morceaux correspondants aux classes de congruence modulo
la longueur de la cl, et il se retrouve avec une cryptanalyse de type Csar.
5. Non, puisquil est ais de commencer par un pari sur la longueur de la cl (une hypothse
raisonnable tant que la cl fait moins de vingt caractres).

2.2.2 Chiffrement de Vignre


1. On additionne chaque lettre du clair avec la lettre correspondante de la cl rpte suffi-
samment de fois. On obtient le chiffr suivant : VVVIXGGTPTMOFVADWST
La rponse WWWJYHHUQUNPGWBEXTU est galement acceptable mais elle corres-
pond au cas A=1 (et non A=0).
2. On fait cette fois une soustraction du clair au chiffr.
On obtient la cl suivante : INTROUVABLEINTROUVA
Si on prend A=1 (mais alors on est forc de prendre Z=0), la cl est HMSQNTUZAKD.
3. Mme technique que prcdemment et on trouve : HWDIXJYALZKDBACRCBP.
Il ny a pas de priodicit dans la cl : cest un masque jetable (scurit infinie).

2.2.3 Chiffrement de Polybe


1. Une attaque clair connu dvoile une lettre de la cl pour chaque nouvelle lettre du
message clair. Compte tenu du fait que les dernires lettres du tableau sont ranges dans
lordre alphabtique, la reconstruction est trs rapide. Pour une attaque simple, il faut
se baser sur la frquence dapparition des lettres, le chiffrement tant une substitution
mono-alphabtique.
2. CHERE ANNA RENDEZ VOUS A DEUX HEURES RUE VERTE RAOUL
Le secret tant SCYTALE. La prsence du 55 (supposment le Z) et la frquence dap-
parition du 22 (le E) constituent le point de dpart. Les mots RAOUL et ANNA (mot
symtrique facilement reconnaissable) est galement prvisible.

2.2.4 Chiffrement affine


1. CRYPTO et ROXEYZ sont respectivement reprsents par les suites dentiers : [2, 17, 24, 15, 19, 14]
et [17, 14, 23, 4, 24, 25]. Il sagit de rsoudre le sytme :

2a + b = 17

17a + b = 14
qui a comme solution (a, b) = (5, 7).
2.2. VIGNRE, POLYBE ET HILL 35

2. Si on chiffre deux fois par un chiffre affine de cl (a0 , b0 ) on obtient une fonction qui
x Z/26Z associe :
a0 (a0 x + b0 ) + b0 = a02 x + (a0 b0 + b0 ).
On obtient donc un chiffre affine de cl (a00 , b00 ) avec :

a00 = a02

b00 = a0 b0 + b0
NGBAMX est reprsent par la suite dentiers : [13, 6, 1, 0, 12, 23].
La rsolution du systme :
2a00 + b00 = 13
17a00 + b00 = 6
donne cette fois : (a00 , b00 ) = (3, 7).

2.2.5 Chiffrement de Hill


Examen 2012-2013

La matrice multiplie M nest pas inversible dans M4 (Z26 ) (son dterminant est pair et donc
non inversible dans Z26 ), nous considrons donc le bigramme suivant : tq qui doit tre dchiffr
en fr et nous obtenons la nouvelle quation :
   
9 19 2 5
M. =
21 16 7 17

Soit :    1
2 5 9 19
M= .
7 17 21 16
     
2 5 16 19 1 17
= (51 mod 26) . =
7 17 21 9 3 4
Le dchiffrement du bigramme gz donne alors :
     
1 17 6 15
. =
3 4 25 14

soit le bigramme po et le dchiffrement complet de gzatzxjihvbreosu nous donne le texte


clair : polyalphabetique.

35 / 63
36 CHAPITRE 2. CORRECTIONS

2.3 Chiffrement et modes de chiffrement


2.3.1 Cryptographie cl secrte
Examen 2012-2013
1. Rijndael 0.5pt
2. dcoder = convertir des donnes encodes en donnes claires (aucune clef nest en jeu,
ni aucun chiffrement),
dchiffrer = dterminer le message clair partir du texte chiffr en utilisant la clef,
dcrypter = retrouver le texte clair sans connatre la clef de chiffrement.
1.5pt
3. La confusion correspond une volont de rendre la relation entre la cl de chiffrement et
le texte chiffr la plus complexe possible. La diffusion signifie que la moindre modification
du message clair entrane une grande modification du message chiffr. 2pts
4. Le message clair est dcoup en paquets qui vont subir des transformations simples (per-
mutation, dcalage, botes S, schma de Feistel, etc...). 1.5pt
5. Feistel, Biham, Shamir, Anderson, etc... 0.5pt

2.3.2 Amlioration dun systme de chiffrement


Monsieur X na rien compris aux principes de Kerchoffs. Sa cl reste k. Son hypothse doit tre
que son attaquant sait tout ce quil fait hormis la cl. Or, ici, on na toujours que 256 valeurs
de k tester.

2.3.3 Mode ECB


1. Deux blocs identiques auront le mme chiffr, ainsi de linformation peut fuir.
2. On peut supposer que lentre de Jack donne la correspondance suivante :

Ja|ck|??|10|50|00 Q9|2D|FP|VX|C9|IO

FP doit correspondre au sparateur de champ. Jane a aussi un prnom de 4 lettres qui


commence par Ja donc son entre chiffre commence par Q9??FP, cest Q9AXFPC9IOIO.
Son salaire est ainsi C9IOIO, soit 500000 euros par an.
3. Cela correspond remplacer les couleurs si la taille du bloc correspond un pixel, ou
des blocs dimage par dautre, on reconnaitra la forme de limage : par ex les pixels noir
deviendront tous rouges.

2.3.4 Mode CBC


1. Le voil :

2. Si il ny avait pas dIV deux blocs identiques aux mmes positions de deux fichiers alors
leurs chiffrs seraient identiques et on le saurait. Si lon pense aux exemples prcdents,
on pourrait dire par exemple : 4 personnes ont le mme salaire ou le centre des deux
images est identiques.
3. Seulement deux blocs sont altrs.
2.3. CHIFFREMENT ET MODES DE CHIFFREMENT 37

2.3.5 Mode CTR


1. Pas besoin de fonction de dchiffrement ! Cest avantageux dans certain cas : pour AES
le dchiffrement est plus cher que le chiffrement.
2. Cest un IV, sinon toujours le mme stream.
3. Facilement paralllisable.

2.3.6 Attaque par insertion


1. Si linsertion est au bloc i (les blocs tant numrots partir de 0), alors les blocs de 0
i 1 des chiffrs sont identiques.
2. Le bloc c0i vaut alors 0 Pi , o Pi est soit EK (nonce + i) pour le mode compteur, ou bien
pour OFB Pi = EK (Pi1 ) et P0 = EK (IV ). Du coup, comme ci = mi Pi ,, on rcupre
mi= ci c0i .
3. Il ne faut jamais rutiliser la mme IV.

2.3.7 Mallabilit des chiffrements par flot


1. Dune cl k et dun vecteur dinitialisation IV, on dduit une chane de bits pseudo-
alatoire S(k, IV ). Ceci permet de dfinir le chiffr :

C = Ek,IV (M ) = M S(k, IV )

2. Si on pose C 0 = C M 0 , on a alors :

C 0 = (M S(k, IV )) M 0 = (M M 0 ) S(k, IV ) = Ek,IV (M M 0 )

3. Si on connat le format des messages changs, il est alors facile den transformer le sens :
transformer
TRANSFER $0000100.00 TO ACCOUNT #199 en
TRANSFER $0100000.00 TO ACCOUNT #227
ne demande pas beaucoup dinformation supplmentaire.

37 / 63
38 CHAPITRE 2. CORRECTIONS

2.3.8 3DES et 2DES


1. Avec la technologie actuelle, il est recommand dutiliser un algorithme de chiffrement
symtrique avec une cl de taille minimale de 64 bits. Puisque DES utilise une cl secrte
dont 56 bits sont effectifs, il nest pas recommand de chiffrer avec une seule application
de DES. En pratique, on utilise 3DES (not aussi T DES) avec 2 ou 3 cls diffrentes :

3DES = DESk1 DESk2 DESk3

Il a t prouv que 3DES augmente la complexit de cryptanalyse par rapport DES


dun facteur de 2 (c..d. 3DES est quivalent DES avec une cl de 112 bits).

2. 2DES = DESk1 DESk2

(a) 2DES est plus rapide que 3DES mais plus lent que DES et a priori il est plus
robuste que DES. Navement, on peut estimer la force cryptographique ajoute
par 2DES un facteur de 2 puisque on applique deux fois DES avec deux cls
diffrentes.

(b) Analyse de scurit de 2DES :

i. Avec DES, on chiffre un bloc de 64 bits avec une cl de 56 bits. Avec 2DES,
on chiffre un bloc de 64 bits avec une cl de 112 bits (56 + 56 bits). Si on
considre un message m de 64 bits, le message chiffr c avec 2DES correspondant
(c = 2DES(k; m)) est aussi de 64 bits. Pour un message m donn, il y a 264
valeurs possibles pour le message chiffr c.
Puisquil y a 2112 valeurs possibles pour la cl, en moyenne il y a donc 2112 /264 =
248 valeurs de cls possibles qui donnent le mme message c.

ii. Meet in the middle attack : attaque permettant de faire un compromis entre
le temps de calcul et lespace de stockage utilis pour la cryptanalyse (Dif-
fie et Hellman 1977). Lattaquant construit deux listes L1 et L2 telles que :
L1 = {DES(k; m); k} et L2 = {DES 1 (k; c); k}. Il retrouve ainsi deux
listes de textes chiffrs intermdiaires. Parmi ces textes intermdiaires, il y a
en moyenne 248 chiffrs que lon retrouve dans les deux listes. Lattaquant re-
trouve ainsi en moyenne 248 cls possibles (meet in the middle). Si lattaquant
connat une deuxime paire de texte clair/chiffr, il peut refaire les mmes op-
rations en utilisant cette fois les cls obtenues partir de la premire paire et
ainsi augmenter la probabilit de retrouver la cl secrte.

iii. Le nombre de cls possibles en moyenne se rduit 248 /264 = 216 . La probabilit
que lattaquant retrouve la cl secrte est donc gale 1 216 Il faut savoir
que la cryptanalyse de DES requiert un effort de lordre de 255 oprations du
fait de la proprit de complmentarit de DES. Donc, lattaquant de 2DES
effectue en tout 255 oprations de chiffrement et 255 oprations de dchiffrement
pour la premire paire de textes clair/chiffr et 248 oprations de chiffrement et
248 oprations de dchiffrement pour la deuxime paire : un effort de lordre de
2 (255 + 248 ) < 257 oprations. La cryptanalyse de 2DES ncessite donc un
effort de lordre dune attaque de recherche exhaustive dune cl de 57 bits.
2.3. CHIFFREMENT ET MODES DE CHIFFREMENT 39

2.3.9 Algorithme de Berlekamp-Massey


N sN d L f (X) m g(X)
0 1 -1 1
0 0 0 0 1 -1 1
1 0 0 0 1 -1 1
3
2 1 1 3 X +1 2 1
3
3 1 1 3 X +X +1 2 1
4 0 1 3 X + X2 + X + 1
3
2 1
5 1 1 3 X2 + X + 1 2 1
6 1 0 3 X2 + X + 1 2 1
7 1 1 5 X5 + X2 + X + 1 7 2
X +X +1
8 0 1 5 X5 + X3 + 1 7 X2 + X + 1

Conclusion :
Le LFSR de longueur 5 ayant pour polynme de rtroaction X 5 + X 3 + 1 gnre donc la suite
donne.
Attention ! Le polynme que lon trouve via Berlekamp-Massey correspondant aux bits que
lon considre pour la rtroaction (X tant le bit le plus GAUCHE dans le registre).
Le polynme se lit donc dans lautre sens ...

39 / 63
40 CHAPITRE 2. CORRECTIONS

2.4 Mthodes de calcul


2.4.1 Square and Multiply
Pas de correction

2.4.2 Calcul modulaire


1.
2256 = 27 2249 = 128 2249 = 0 mod 128
2.
529 mod 66 = 1 donc 529436 mod 66 = 1
3.
1023 mod 1024 = 1 donc 10234096 mod 1024 = 1
4. 4
2308 = 4 (1 + 64 (1 + 8)) donc 4562308 = 456 (456 (4568 ))64
SQ : 4562 = 207936 SQ : 4564 = 65037
SQ : 4658 = 209019 MUL : 4569 = 175902
SQ : 45618 = 39216 SQ : 45636 = 6555
SQ : 46572 = 86184 MUL : 456144 = 318937
SQ : 456288 = 181830 SQ : 456576 = 15162
MUL : 465577 = 118389 MUL : 4561154 = 154470
SQ : 4562308 = 165471
do
4562308 = 165471

2.4.3 Thorme des restes chinois


Application - 1
Il sagit de trouver x positif et minimal vrifiant le systme :

x = 3 mod 17
x = 4 mod 11
x = 5 mod 6

Daprs le thorme des restes chinois (puisque 17, 11 et 6 sont premiers entre eux deux deux),
les solutions sont de la forme :

x = u1 11 6 3 + u2 17 6 4 + u3 17 11 5 + n 17 11 6

ou encore
x = 198u1 + 408u2 + 935u3 + 1122n
avec n entier.
Il reste trouver les ui .
On a x mod 17 = u1 11 6 3 mod 17 = 3 mod 17 donc u1 est linverse de 11 6 mod 17.
On a par division euclidienne :

66 = 3 17 + 15 17 = 1 15 + 2 15 = 7 2 + 1
2.4. MTHODES DE CALCUL 41

On en dduit que 1 = 15 7 2 et puisque 2 = 17 1 15, on a 1 = 15 7(17 1 15)


cest--dire 1 = 8 15 7 17.
Mais 15 = 66 3 17 do 1 = 8(66 3 17) 7 17.
On obtient pour finir 1 = 8 66 31 17 et u1 = 8.
De la mme manire, on trouve u2 = 4 et u3 = 1.
Donc x = 198 8 + 408 4 + 935 + 1122n = 4151 + 1122n.
4151 est donc une solution possible pour notre cuisinier, mais ce nest pas la plus petite.
Il suffit deffectuer la division de 4151 par 1122 pour trouver comme reste 785 qui est le nombre
minimal de pices que peut obtenir le cuisinier.

Application - 2

1. 270 3. 20
2. 257 4. 785

Application - 3
Pas de correction

2.4.4 Autour des nombres premiers


1.
n2 8n + 15 = (n 3)(n 5)
Pour que n n2 8n + 15 soit premier il faut que n 3 = 3 ou n 5 = 1 n = 2, 4
ou 6; n2 8n + 15 vaut alors 3, 1 ou 3, seul 3 est premier, les solutions sont donc : 2
et 6.

n2 + 4n + 3 = (n + 1)(n + 3)
Pour que n2 + 4n + 3 soit premier il faut que n + 1 = 1 ou n + 3 = 1 n = 4, 2
ou 0, il vaut alors 3, 1 ou 3, seul 3 est premier ; les solutions sont donc : 4 et 0.
2. Valeurs des nombres entiers naturels n et m pour que le nombre 2n2 + 5mn + 3m2 soit
premier.
On a la factorisation suivante :

2n2 + 5mn + 3m2 = (n + m)(2n + 3m)

Pour que 2n2 + 5mn + 3m2 soit premier, il est ncessaire que n + m = 1 ou que
2n + 3m = 1.
Or n et m sont des entiers naturels donc

n + m = 1 n + m = 1 (n = 0 et m = 1) ou (n = 1 et m = 0)

et 2n + 3m = 1 est impossible ; Examinons maintenant les deux cas restants :


n = 0 et m = 1 : 2n2 + 5mn + 3m2 = 3 premier,
n = 1 et m = 0 : 2n2 + 5mn + 3m2 = 2 premier ;
Au final, 2 solutions : (n; m) = (0; 1) ou (1; 0).

41 / 63
42 CHAPITRE 2. CORRECTIONS

3. Les 1 000 entiers conscutifs 1001! + 2, 1001! + 3, ..., 1001! + 1001 sont respectivement
divisibles par 2, 3, ... , 1 001 et sont donc tous composs ;
Par exemple,
1001! + 2 = 1 2 3 1001 + 2 = 2(3 1001 + 1)
donc 2|1001! + 2 (et 1 < 2 < 1001! + 2);
Ils forment donc 1 000 entiers naturels conscutifs, tous composs. Ainsi, les nombres
premiers sont infinis mais on peut trouver des "plages" aussi grandes quon veut sans
nombres premiers !
4. On calcule 237900 mod 379001 en utilisant lexponentiation rapide.
On a 37900 = 32768 + 4096 + 1024 + 8 + 4 donc
237900 = 17168 455 22213 256 16 = 12802 mod 37901
donc 37901 nest pas premier. Malheureusement, le thorme de Fermat ne permet pas
de montrer directement quun entier est premier.

2.4.5 Test de primalit de Miller-Rabin


Indication
1. Factoriser x2 1 et utiliser que Z/pZ est intgre.
2. Appliquer le petit thorme de Fermat.
3. Poser i = sup{j > 0; bj nest pas congru 1} modulo p.
4.
Corrig
1. On factorise x2 1 en (x 1)(x + 1). Par intgrit de Z/pZ, lquation (x 1)(x + 1) = 0
entraine x = 1 ou x = 1.
s
2. On a bs = ad2 = ap1 . Le rsultat est donc une consquence immdiate du petit thorme
de Fermat.
3. Posons = sup{j > 0; bj nest pas congru 1} modulo p. Un tel nombre existe car b0 nest
pas congru 1 modulo p (lensemble que lon considre est non vide), et pour tout j > s,
bj 1 [p] (lensemble est major par s, et mme par s 1). Ainsi, on a i {0, . . . , s 1}.
Dautre part, b2i = bi+1 1 [p]. Daprs le rsultat de la premire question, bi 1 [p] ou
bi 1 [p]. La premire possibilit est exclue par dfinition de i. Donc bi 1 [p].
4. Soit p un entier impair dont on souhaite tester sil est premier. On le factorise sous la
forme p = d 2s + 1. Pour diffrentes valeurs de a, on calcule la suite bi donne par
lnonc. Si b0 6= 1 et pour tout i {1, . . . , s 1}, bi nest pas congru 1 modulo p,
alors on est sr que p nest pas premier. Cest le test de (non-)primalit de Miller-Rabin.

2.4.6 Algorithme p 1 de Pollard


1. 19 048 567 nest pas un multiple de 3, do le rsultat.
2. Les puissances demandes sont 224 , 315 , 510 , 78 , 116 , 136 , 175 , 195 .
3. p 1 est suppos 19-friable, donc scrit 2e2 3e3 . . . 19e19 .
Par ailleurs, p 1 6 p|n donc 2e2 < n ce qui implique que e2 6 24.
De mme e3 6 15, . . . , e19 6 5, et au bilan p 1 = 2e2 3e3 . . . 19e19 divise
Q = 224 315 510 78 116 136 175 195 .
2.4. MTHODES DE CALCUL 43

4. Daprs le petit thorme de Fermat, on a ap1 = 1 mod p.


Comme p 1 divise Q, on en dduit aQ = 1 mod p, cest--dire ce qui est demand.
5. p divise n par hypothse et p divise aQ 1 daprs la question prcdente.
Donc gcd(aQ 1, n) est divisible par p, en particulier il est 6= 1.
cette tape, on a peut-tre pas encore un facteur non trivial de n : en effet le gcd est
certes 6= 1 mais peut tre trs bien gal n. Aller plus loin et trouver un facteur de n
ncessite donc davoir la chance que le pgcd soit < n. Ne pas avoir cette chance signifie
que lhypothse p 1 est 19-friable tait fausse. Il faut alors recommencer lalgorithme
avec une borne de friabilit plus grande (cest--dire moins contraignante).
6. On calcule gcd(554 505, 19 048 567) = 5 281.
Ce dernier est un facteur non trivial de 19 048 567.

2.4.7 Thorme de Wilson


Indication
1. Factoriser x2 1.
2. On pourra regrouper chaque lment de {1, . . . , p 1} avec son inverse dans Z/pZ.
3. Appliquer le thorme de Bezout.
Corrig
1. Lquation x2 = 1 est quivalente (x1)(x+1) = 0, ce qui est quivalent dire, puisque
Z/pZ est un corps, x = 1 ou x = 1.
2. Travaillons dans Z/pZ. Tout lment de {1, . . . , p 1} est inversible et son inverse est

diffrent de lui-mme, sauf pour 1 et 1 daprs la question prcdente. Dans le produit
2 p 2, on peut donc regrouper chaque lment avec son inverse, et on trouve que

1 p 1 = 1 p 1 = 1

ce qui est le resultat attendu.


3. Soit a {1, . . . , n 1}. Alors a est un facteur de (n 1)! et donc il existe k tel que
(n 1)! = ak. On en dduit a (k) 1 [n], et donc a est inversible dans Z/nZ. Par le
thorme de Bzout, ceci signifie que a est premier avec n, et ceci est vrai pour tout a de
{1, . . . , n 1}. Autrement dit, n est premier.

43 / 63
44 CHAPITRE 2. CORRECTIONS

2.5 change de clefs


2.5.1 Fonctionnement cl prive vs cl publique
En cryptographie symtrique, une mme cl K est utilise pour le chiffrement et pour le dchif-
frement, alors quen cryptographie asymtrique, une cl publique Kpub est utilise pour chiffrer
et une cl prive Kpriv est utilise pour dchiffrer. Rappelons que les cls paramtrisent les
algorithmes de chiffrement et de dchiffrement, mais que ces algorithmes sont supposs connus
de tous. Pour assurer la confidentialit en symtrique, il faut que les protagonistes de lchange,
Alice et Bob, possdent tous les deux la cl K, mais pas lattaquant Oscar. Le problme majeur
est donc celui de lchange initial de cette cl. En contrepartie, les algorithmes symtriques sont
trs rapides et utilisent des cls courtes (ex : 128 bits pour AES).
En asymtrique, seul le destinataire doit possder Kpriv , laquelle ne doit pas tre en possession
de lattaquant Oscar. Par contre la cl publique Kpub peut tre connue de tous donc il ny a
pas de problme dchange de cl. Bien sr, on ne doit pas pouvoir calculer Kpriv partir de
Kpub . Ces algorithmes sont plus lents et les cls sont plus grandes (ex : 1024 bits pour RSA).
Un exemple simple dalgorithme symtrique peut tre pris parmi les chiffrements anciens ( d-
tailler dans la rdaction) ; ces chiffrements sont abandonns depuis bien longtemps. Un exemple
dalgorithme symtrique moderne et sr est lalgorithme Rijndael, actuel standard du chif-
frement symtrique (AES). Pour le chiffrement asymtrique, RSA est lexemple standard (
dtailler dans la rdaction).

2.5.2 Cl prive vs cl publique


Pour un systme cl secrte, il faut autant de cls quil y a de couples de personnes soit
n,2 n(n1) 16
= 2
. Ici cela vaut 17 8 = 136 et non 17 , ni 17!. Ce nest pas non plus n(n 1)
(nombre darrangements), car les cls sont symtriques.
Pour un systme cl publique, il faut 17 cls (autant que de participants).

2.5.3 Perte dune cl prive


1. Il peut envoyer des courriers chiffrs en utilisant les cls publiques de ces interlocuteurs,
il ne peut plus dchiffrer de messages reus.
2. Il ne peut plus signer de courriers. Par contre, il peut vrifier les signatures des courriers
quil reoit laide des cls publiques de ces interlocuteurs.
3. rien, car on ne peut absolument pas retrouver la cl prive partir dune cl publique.
4. Il na pas dautre choix que de rgnrer une nouvelle cl prive et de distribuer la cl
publique correspondante ses interlocuteurs.

2.5.4 Diffie-Hellman
Elle envoie Bob la valeur g a mod p = 36 mod 23 = 16.
Bob envoie Alice la valeur g b mod p = 315 mod 23 = 12.
Alice peut maintenant calculer la cl secrte :
(g b mod p)a mod p = 126 mod 23 = 9
Bob fait de mme et obtient la mme cl quAlice :
(g a mod p)b mod p = 1615 mod 23 = 9.
2.5. CHANGE DE CLEFS 45

2.5.5 Attaque par le milieu de Diffie-Hellman


Dans le protocole de Diffie-Helmman, il suffit de supposer que lattaquant actif ralise les
oprations suivantes :
1. Lorsqu Alice envoie la valeur Ka Bob, Eve bloque la communication puis tire uni-
formment alatoirement un entier a a G et envoie la valeur
Zq , calcule g a = K
Bob ;
2. Lorsque Bob envoie la valeur Kb Alice, Eve bloque la communication puis tire uni-

formment alatoirement un entier b Zq , calcule g b = K
b G et envoie la valeur
Alice ;
b , Alice calcule K
3. rception de K a ;
b
a , Alice calcule K
4. rception de K b ;
a
5. Contrairement au protocole ralis entre utilisateurs honntes, lgalit K a = K ab nest
b
plus vrifie. Cependant, si Alice envoie par la suite un message chiffr de faon symtrique
avec la cl K a , Eve peut dchiffrer grce sa connaissance de b (puisque K a = K b ),
b b a
prendre connaissance du ,message et ventuellement le rechiffrer avec la cl K b = K a
a b
(que Bob croit partager avec Alice) pour que la communication ait lapparence dune
communication normale.

45 / 63
46 CHAPITRE 2. CORRECTIONS

2.6 Chiffrement
2.6.1 Kid-RSA
1. ed 1 = (a0 M + a)(b0 M + b) = a0 b0 M 2 + M (a0 b + ab0 ) + ab 1 = M (a0 b0 M + a0 b + ab0 + 1).
Donc n = a0 b0 M + a0 b + ab0 + 1. Par suite si les nombres a, a0 , b, b0 sont > 3 alors M > 8
et n > 91.
Il est important que n soit > 25 car comme on travaille modulo n si on veut avoir une
chance que deux messages m et m0 distincts (0 6 (m, m0 ) 6 25) soient toujours chiffrs
diffremment il est ncessaire que cette condition soit ralise.
Remarquons que nM ed = 1 et donc que tout nombre qui divise n et e divise 1. Donc
e et n sont premiers entre eux.
2. Alice calcule
cd mod n = edm mod n = m mod n = m.
3. Il suffit Charlie de trouver un nombre d1 tel que

ed1 = 1 + kn

Comme e est premier avec n ceci revient la rsolution dun problme de Bzout.
4. Pour signer un message m Alice utilise sa cl prive pour calculer s = md mod n et joint
la signature s au message m. Celui qui reoit le message m sign avec s na plus qu
utiliser la cl publique dAlice pour calculer se mod n et vrifier quil obtient bien m.

2.6.2 Chiffrement/Dchiffrement RSA


1. M 0 = 10011 (mod 319) = 265
2. On doit rsoudre 11 d = 1 (mod 280). On trouve d = 51
soit en utilisant lalgorithme dEuclide ;
soit en essayant la main car 51 = (280/11) 2 donc il suffit de deux essais pour
trouver ;
soit en utilisant Euler, d = 111 (mod 280) do d = 11(280)1 (mod 280) = 11(7.5.8)1
(mod 280) = 11(6.4.4)1 (mod 280) = 1195 (mod 280) = 1164+16+8+4+2+1 (mod 280)
= 81.81.121.81.121.11 = 81.11 = (mod 280) = 51 (mod 280).
3. On doit calculer 13351 (mod 319). Dans les notes on donne 13325 = 133 (mod 319).
Le rsultat est donc 133 133 133 (mod 319) = 12.
4. videmment non car les messages chiffrer/dchiffrer doivent appartenir Zn , cest
dire Z319 dans ce cas.
2.6. CHIFFREMENT 47

2.6.3 Exemple de RSA


1. n = 437 et (n) = (p 1)(q 1) = 396
2. gcd(e, (n)) 6= 1 dans les deux cas donc le d correspondant nexiste pas.
3. On a via Euclide d = 163 = 233 mod 396

n e C p q m
143 17 84 11 13 2
247 5 115 13 19 20
319 11 133 11 29 12
323 25 19 17 19 19
403 7 346 13 31 5
407 17 50 11 37 128
583 19 207 11 53 192
4717 21 2804 53 89 2

47 / 63
48 CHAPITRE 2. CORRECTIONS

2.6.4 Chiffrement RSA


Examen 2012-2013
1. Chiffrement : on convertit le message en un entier m [[1; N ]] et on calcule le chiffr
c me mod N. 0.5pt
Dchiffrement : on calcule m cd mod N. 0.5pt
p, q, et d doivent rester secrets. 0.5pt
Rvler p permet dobtenir q = N/p, puis et donc d, de mme avec q.
Rvler permet dobtenir d partir de e.
Il reste voir comment d permet dobtenir le reste. Supposons donc e et d connus. Il
existe un entier k tel que ed = 1 + k, donc k est une approximation de ed/n (puisque
est de lordre de n). On sait que (ed 1)/k = = (p 1)(q 1), ce qui scrit
(ed 1) = k 1 = N p q. On obtient donc le systme

p + q = N (ed 1)/k + 1
pq = N
Finalement, il suffit dessayer de rsoudre ce systme pour des valeurs proches de k,
par exemple celles de lintervalle [[ed/n 5; ed/n + 5]]. Quand on obtient une solution
(p; q), on a trouv k.
2pts
2. La factorisation de N donne p = 59 et q = 17 (ou linverse).
Lentier vaut alors 58 16 = 928 1pt
En utilisant lalgorithme dEuclide, nous obtenons : 928 = 3 309 + 1.
Donc 1 = 928 + 3 (309) et linverse de e = 3 mod est 619 (= 928 309). 1pt
Le chiffr c vaut 43 = 64. 0.5pt
Il est facile connaissant cette valeur de retrouver m = 641/3 .
En effet, il ny a pas de rduction modulaire puisque m < N 1/e . 1pt
? Pour viter ce problme, on utilise une technique de remplissage, appele padding,
cest--dire quon ajoute au texte clair avant de le chiffrer une valeur structure et
alatoire.
3. On a 65 = 513, donc p = 5, q = 13 (ou linverse) et = (p1)(q 1) = 412 = 48.
Il faut choisir un couple de clefs publique/prive (e; d) tel que e soit premier avec
(donc e nest divisible ni par 2 ni par 3) et ed 1 mod 48. En ignorant les couples
symtriques, on obtient la table suivante :
e 5 7 11 13 17 19 23 25 31 41 47
d 29 7 35 37 17 43 23 25 31 41 47
Il faut liminer tous les cas triviaux o e = d dans lesquels le dchiffrement est vident,
pour conserver les couples (5; 29), (11; 35), (13; 37) et (19; 43) (et leurs symtriques). 1pt
Le chiffr de m = 4 est c 45 mod 65. Or, 43 64 1 mod 65, donc c 16
49 mod 65. 0.5pt
La clef prive associe e = 5 est d = 29. Pour faciliter le calcul, effectuons une
exponentiation modulaire en remarquant que 29 = 24 + 23 + 22 + 1 :
492 (16)2 256 4 mod 65
494 (4)2 16 mod 65
8 2
49 16 4 mod 65
4916 (4)2 16 mod 65
On en dduit que : 1.5pt
c29 4916 498 494 49 = 4 16 16 (16) (64) 4 4 mod 65
2.6. CHIFFREMENT 49

2.6.5 RSA-3
1. Il ny a rien a changer, on choisit un couple dentiers (e; d) tel que ed = 1 mod (n),
on chiffre le message clair x par y = xe mod n et on dchiffre le message chiffr y par
x = y d mod n.
La clef publique est (e; n), la clef prive (d; p; q; r) et lensemble des messages possibles
est Z/nZ car pour tout message m Z/nZ nous pouvons montrer comme pour RSA que
m = DRSA3 (ERSA3 (m)). On a

x = y d mod n = (xe )d mod n = xed mod n.

Si x est premier avec n, alors dapres le petit thorme de Fermat,

x(n) = 1 mod n

donc xed = x1+`(n) = x mod n pour un certain `.

Cas plus compliqu (un peu au-del de notre programme) :


Si x nest pas premier avec n, alors x est un multiple de p premier avec qr ou un multiple
de q premier avec pr ou un multiple de r premier avec pq.
Par exemple pour un multiple de p premier avec qr, la reprsentation de x Z/nZ dans
Z/pZ Z/qrZ est :
(0e = 0; xqr = x mod qr)
qui est chiffr par ERSA en :
(0; xeqr mod qr = yqr ),
lui-mme dchiffr par DRSA en :

(0d = 0; yqr
d
= (xeqr )d mod (qr) = xed
qr mod (qr)).

Or si ed = 1 mod (n), il existe k tel que ed = 1 + k(p 1)(q 1)(r 1) donc

ed = 1 mod (q 1)(r 1) = 1 mod (qr).

xqr = x mod (qr) est premier avec qr (parce que x est un multiple de p premier avec qr)
(qr)
donc daprs le petit thorme de Fermat, xqr = 1 mod (qr) et xed qr = xqr mod (qr).

d
Dans Z/nZ, le couple (0; yqr mod (qr) = xqr ) de Z/pZ Z/qrZ redonne videmment par
le thorme des restes chinois x.
2. Les messages dangereux pour RSA sont ceux qui ne sont pas premiers avec n, puisqualors
on trouve un facteur commun au message et n donc un des deux facteurs premiers de n,
on en dduit lautre puis (n), on obtient alors d linverse modulaire de e modulo (n),
cest-a-dire toute la clef secrte.
Il en va de mme ici : les messages dangereux pour RSA-3 sont ceux qui ne sont pas
premiers avec n, puisqualors on trouve un facteur commun au message et n, cest--
dire soit un facteur, disons p, soit le produit de deux facteurs pq et on dduit le facteur
n
r = pq , dans tous les cas on dduit un des trois facteurs de n et le produit des deux autres.
En soi un seul message nest pas dangereux, il faudra avoir la chance den trouver un
second qui nous apporte la connaissance dun autre facteur de n pour connatre alors la
factorisation de n, do (n) et d linverse modulaire de e modulo (n), cest-a-dire toute
la clef secrte.

49 / 63
50 CHAPITRE 2. CORRECTIONS

3. Algorithme
On reoit y et on doit calculer x = y d mod n. On calcule

dp = d mod (p 1); dq = d mod (q 1); dr = d mod (r 1);

puis
xp = y dp mod p; xq = y dq mod q; xr = y dr mod r

On a x = xp mod p, x = xq mod q et x = xr mod r.


On utilise une premire fois le thorme chinois pour dduire x modulo le produit pq.
La relation de Bzout pour p et q est up + vq = 1, on a x = xpq mod (pq) avec xpq =
vqxp + upxq . On utilise une seconde fois le thorme chinois pour dduire x modulo n. La
relation de Bzout pour pq et r est u0 pq + v 0 r = 1, on a finalement

x = v 0 rxpq + u0 pqxr mod n.

4.

e = 19, N = pqr = 105, (N ) = (p 1)(q 1)(r 1) = 48, d = e1 mod 48 = 5 = 43

car
5 19 = 95 = 2 48 1.
Le chiffre de x = 13 est xe mod N = 1319 mod 105.
On a
132 = 169 = 105 + 64 = 64 mod 105

et
642 = 4096 = 39 105 + 1 = 1 mod 105
donc
xe mod N = 1319 mod 105 = 649 13 = 14 64 13

= 64 13 = 832 = 8 105 8 = 8 = 97 mod 105.

Le dchiffr de y = 11 est y d mod N = 1143 mod 105.


On a
112 = 121 = 105 + 16 = 16 mod 105,

16 16 = 256 = 2 105 + 46 = 46 mod 105,

462 = 2110 = 20 105 + 16 = 16 mod 105


et
16 46 = 736 = 7 105 + 1 = 1 mod 105,
donc

y d mod N = 1143 mod 105 = 1621 11 = 4610 16 11 = 165 16 11 = 166 11

= 463 11 = 16 46 11 = 1 11 = 11.
2.6. CHIFFREMENT 51

2.6.6 Chiffrement El Gamal


1. Il chiffre alors son message nombre par nombre :
11 est chiffr en
2035 11 mod 97 = 46 11 mod 97 = 21
81 est chiffr en
2035 81 mod 97 = 46 81 mod 97 = 40
01 est chiffr en
2035 1 mod 97 = 46 1 mod 97 = 46
09 est chiffr en
2035 9 mod 97 = 46 9 mod 97 = 26
Il transmet enfin Alice le couple (71, 21 40 46 21 26).

2. Pour dchiffrer le message de Bob, Alice dtermine le nombre x = 97 1 45 = 51.


Pour chaque partie m0 du message, elle calcule 7151 m0 mod 97 :

7151 21 mod 97 = 19 21 mod 97 = 11

7151 40 mod 97 = 19 40 mod 97 = 81

7151 46 mod 97 = 19 46 mod 97 = 1

7151 21 mod 97 = 19 21 mod 97 = 11

7151 26 mod 97 = 19 26 mod 97 = 9.


Elle retrouve le message 118 101 119 aprs concatnation.

2.6.7 Changement de cls


Notons d le nombre de jours jusqu ce que Alice et Bob changent leur cl le mme jour. Puisque
Alice change sa cl tous les 25 jours et quelle a chang sa cl aujourdhui, d doit tre divisible
par 25. Puisque Bob change sa cl tous les 31 jours et quil a chang sa cl il y a trois jours,
d + 3 doit tre divisible par 31. Ainsi d doit vri ?er le systme de congruences :

d = 0 mod 25

d = 3 mod 31
Par le thorme des restes chinois, ce systme quivaut la congruence d = 400 mod 775, et
donc Alice et Bob changeront leurs cls le mme jour dans 400 jours.

51 / 63
52 CHAPITRE 2. CORRECTIONS

2.7 Attaques sur RSA


2.7.1 Attaque par module commun
Oscar connat (eA , eB , n) et (cA , cB ). Par lalgorithme dEuclide tendu, il calcule facilement
(en temps -presque- linaire du nombre de bits de n) les coefficients de Bezout r et s tels que
reA + seB = 1.
Oscar peut alors calculer (par exponentiation rapide)

crA .csB mod n = mr.eA +s.eB mod n = m

Moralit : ne jamais utiliser le mme n pour un groupe dutilisateurs.

2.7.2 De (n) la factorisation


n = pq et (n) = (p 1)(q 1) = n p q + 1 donc p + q = n (n) + 1.
Nous avons la somme et le produit de p et q.
Nous en dduisons alors que p et q sont les deux racines de lquation du second degr :

X 2 (n (n) + 1)X + n = 0

Vrification :

p2 (n n + p + q 1 + 1)p + n = p2 pn + pn p2 pq + p p + n = 0.

2.7.3 RSA avec deux facteurs trop proches


1.
1 1 1
t2 s2 = ((p + q)2 (p q)2 ) = (p2 + 2pq + q 2 p2 + 2pq q 2 ) = (4pq) = pq = n.
4 4 4
2.
t2 = n + s2 > n

donc t > n, de plus s est petit ds que p et q sont proches.
1. Avec n = 24960007, on trouve t = 4996 et s2 = 9 en une seule itration.
Donc n = 4993 4999.
Avec n = 3649574023, on dmarre t = 60412, on trouve s2 = 35721 = 1892 , donc une
seule itration suffit et n = 60601 60223.
2. Complxit de lalgorithme :

A varie dans le pire des cas de d ne p+q 2
= t.
Le nombre ditrations de la boucle est major par (valeur darrive - valeur de dpart) :

p+q2 pq

( p q)2
t n = p+q 2
n = 2
= 2
(p pq)2 ( np)2
= 2p
= 2p
4
3. Donc si p diffre de n de moins de 4n, le nombre ditrations est major par

4n n
= 6 1.
2p p
Donc le nombre ditrations est gal 1.
2.7. ATTAQUES SUR RSA 53

2.7.4 Mallabilit de RSA


1. Rappelons le principe de la signature dite RSA naf cest--dire la primitive qui ne prend
pas en compte les renforcements rendus ncessaires par les attaques.
Paramtre public : ` : la taille de la cl RSA, i.e. la taille en nombre de bits du module n
Initialisation :
Tirer alatoirement deux nombres premiers p et q de taille 2` bits
Calculer n = pq
Tirer une valeur e alatoire telle que gcd(e, (p 1)(q 1)) = 1
Calculer d = e1 mod (p 1)(q 1)
Message : un lment x {1, . . . , n}
Cl publique : KP = (e; n)
Cl prive : KS = (d; n)
Signature : S(x) = s = xd mod n
Vrification : x = se mod n
2. ve a russi se procurer s1 = md1 mod n et s2 = md2 mod n. Dans ce cas, elle est capable
de signer le message m11 m22 mod n, o i {1, 1} puisque la signature vaut alors :

(m11 m22 )d mod n = m11 d mod n m22 d mod n = s11 s22 mod n

3. Pour tous les couples (mi , S(mi )) connus dve, on a


Y d
S(mi ) = j i,j mod n
j

Eve est donc capable de calculer toutes les signatures de la forme :


Y Y Y d Y d P i i,j
S(mi )i mod n = j i i,j mod n = j i mod n
i i j j

o i {1, 1}.
4. Compte tenu du rsultat de la question prcdente, il faut quve ait en sa possession des
messages tels quil soit possible de trouver un ensemble dindices I pour lesquels
X
j, i i,j = j .
iI

Si elle ne trouve pas un tel ensemble dindices, elle doit trouver un moyen de faire si-
gner Alice un message dapparence anodine de la forme ci-dessus tel quil complte
lensemble dindices recherch. Lensemble dindices recherch peut tre vu comme un
vecteur solution dun systme linaire.

2.7.5 Le temps de factorisation des grands entiers


1. On a W = 8000 pour log2 N = 512 et log2 512 = 9 soit :

W = k exp (64/9)1/3 5121/3 (log2 512)2/3





= k exp (64 9 512)1/3 = k exp( 294912) k exp(66.563)
3


Do k 9.89 1026 Mips-year.

53 / 63
54 CHAPITRE 2. CORRECTIONS

2. Pour log2 N = 768, on obtient :

W = 9.89 1026 exp((64 768 9.582 /9)1/3 )

= 9.89 1026 exp(79.46) 3200 millions de Mips-year.


Pour log2 N = 1024, on obtient :

W = 9.89 1026 exp((64 1024 100/9)1/3 )

= 9.89 1026 exp(89.97) 117 millions de millions de Mips-year.

2.8 Signature
2.8.1 Signature RSA
1. Avec p = 17 et q = 23, on a n = p q = 391 et (n) = (p 1)(q 1) = 352.
2. e = 11 nest pas un exposant de vrification correct car il nest pas premier avec (n).
En effet on a pgcd(11, 352) = 11. e = 13 en revanche convient et on peut calculer lexpo-
sant de signature correspondant par lalgorithme dEuclide tendu :

352 = 13 27 + 1
13 = 1 13 + 0
On a donc : 1 352 + (27) 13 = 1
Donc modulo (n) on a 13 (27) = 1. Do d = 27 = 325 mod 352
3. SIGN (100, 325) = 100325 mod 391. On a 325 = 256 + 64 + 4 + 1 donc on calcule :
100325 = 100 (100 (100 1004 )16 )4 mod 391
= 100 (100 (100 186)16 )4 mod 391
= 100 (100 22316 )4 mod 391
= 100 (100 52)4 mod 391
= 100 (117)4 mod 391
= 100 16 mod 391
= 36 mod 391
4. On calcule 3613 mod 391. On a 13 = 8 + 4 + 1 donc on calcule :
3613 = 36 (36 362 )4 mod 391
= 36 (46656)4 mod 391
= 36 (127)4 mod 391
= 36 220 mod 391
= 100 mod 391

2.8.2 Signature aveugle avec RSA


Soit m le message signer on cherche obtenir md mod n. On envoie xe m pour signature,
on reoit donc en retour (xe m)d = xmd mod n comme x est alatoire le signataire na aucun
moyen de savoir quel message est sign.
2.8. SIGNATURE 55

2.8.3 Signature El Gamal


1. p = 467 est un nombre premier (il suffit de tenter une division par 2, 3, 5, 7, 11, 16, 17 ou
p1
19 pour sen apercevoir) et on a g 2 6= 1 : g est donc dordre p 1 (gnrateur).
2. y = g x = 265 mod p. Comme 65 = 64 + 1, a va trs vite :

265 = 2 (216 )4 = 2 655364 = 2 1564 = 2 369 = 271 mod 467.

3. k = 64 est un mauvais choix de nombre alatoire, car on ne pourrait peut-tre pas


trouver b tel que m = xa + kb mod (p 1).
On peut vrifier que pour tous les b allant de 1 466, 100 6= 65 (264 mod 467) + 64 b.
Mais il y a dautres valeurs de m qui donnerait une galit.
Ainsi a = 369 = 264 mod 467, b = 42 et m = 111 vrifient lgalit :

111 = 65 369 + 64 42 mod 466.

k = 213 est un bon choix car gcd(213, 466) = 1, donc on pourra diviser par k :
Via Euclide on a :
16 466 + (35) 213 = 1 mod 466.
Linverse de 213 est donc 35 qui vaut 431 mod 466.
La signature est
a = g k = 2213 mod 467 = 29
et
b = (m xa) k 1 = (100 65 29) 431 mod 466 = 31.
4. On calcule les deux valeurs suivantes :
4
gm = 2100 = (2 (26 )4 ) = (2 644 )4
= (2 241)4 = 189 mod 467
y a ab = 27129 2931 = 322 295 = 189 mod 467.

2.8.4 Signature El Gamal : utilisation de lala


1. Lexposant x est choisi dans [1, (p)] = [1, p 1].
2. Soient m et m0 les deux messages et (r, s) et (r, s0 ) les deux signatures (les composantes
r de la signature sont ncessairement identiques si le mme ala est utilis). On a alors :

s = k 1 (h(m) xr) mod p 1 et s0 = k 1 (h(m0 ) xr) mod p 1

do par soustraction :

s s0 = k 1 (h(m) h(m0 )) mod p 1.

On en tire k = (h(m) h(m0 ))(s s0 )1 mod p 1, puis on peut calculer

x = (h(m) ks)r1 mod p 1.

Il sagit donc dun cassage total (rcupration de la cl secrte) dans une attaque deux
messages connus.

55 / 63
56 CHAPITRE 2. CORRECTIONS

2.8.5 Signature El Gamal sans vrification modulaire


1. De s0 = s on dduit :

s0 = k 1 (h(m) xr) = k 1 (h(m0 ) xr) mod p 1

Do lide de poser r0 = r mod p 1 pour que s0 ait la bonne forme.


Mais il faut aussique le rsidu modulo p soit correct, donc on doit avoir r = r0 mod p car
cest le mme ala k sous-jacent.
2. On a deux quations qui dfinissent r0 modulo p et r0 modulo p 1 : comme p et p 1
sont premiers entre eux, il existe une solution r0 ces deux quations et elle est unique
modulo p(p 1) (daprs le thorme des restes chinois).
3. Le type dattaque est une attaque messages connus (avec un seul message), produisant
une falsification universelle (cpacit signer nimporte quel message).

2.8.6 Signature GHR (Gennaro-Halevi-Rabin)


1. Connaissant p0 , on a p = 2p0 + 1, un diviseur de N.
2. On peut crire N en fonction du produit p0 q 0 comme suit :

N = (2p0 + 1)(2q 0 + 1) = 4p0 q 0 + (2p0 + 2q 0 ) + 1.

Si on connait la valeur de p0 q 0 , on peut donc connatre aussi la valeur de p0 + q 0 . Avec la


somme et le produit, on en dduit une quation du second degr dont p0 et q 0 sont les
racines.
3. On a (N ) = (p 1)(q 1) = 4p0 q 0 .
4. Puisque u est dordre 2p0 q 0 , les exposants dans une exponentiation en base u peuvent tre
0 0
calculs modulo 2p0 q 0 . En effet u2p q = 1 mod N par hypothse donc ajouter un multiple
de 2p0 q 0 un exposant revient multiplier le rsultat par une puissance de 1.
1
5. On a s = um mod N et celui qui vrifie la signature connat M (et donc m) et s, en
plus des paramtres publics. Il lui suffit donc de vrifier que sm = u mod N.
6. Dans le problme RSA, tant donn (N, e, v), il faut trouver x tel que xe = v mod N. Ici,
tant donn (N, v), il faut trouver (x, e) satisfaisant la mme relation : la diffrence, cest
que lattaquant a le choix de e.
7. Si on autorise e = 1, le problme est trivial : (x = v, e = 1) serait toujours une solution.
8. Supposons que lon sait rsoudre un problme RSA : partir de (N, e, v), trouver x. Il
est alors trivial de rsoudre le flexible RSA : tant donn (N, v), on prend nimporte quel
e, et par hypothse on sait trouver le x correspondant.
2.9. HACHAGE 57

2.9 Hachage
2.9.1 Fonction de hachage faiblement sans collision
1. Si pour x0 donn on peut trouver x tel que h(x) = h(x0 ) alors on peut utiliser ce mme
couple pour montrer que h nest pas sans collision. Donc non faiblement sans collision
implique non sans collision : par contrapose, on obtient le rsultat.
Si une fonction nest pas faiblement sans collision alors, pour x donn, on peut trouver
x0 tel que h(x0 ) = h(x). Comme on est capable de trouver un antcdent y = h(x), la
fonction nest pas sens unique.
2. On prend, pour n fix, la fonction de Fn2 Fn2 qui x associe x. Cette fonction est bien
sans collision, mais elle nest pas sens unique puisque lon peut facilement trouver des
antcdents.

2.9.2 Fonction de hachage et signature


1. Supposons que lon ait un message de n/2 mots avec une signification donne. On prend
le mme message mais en ajoutant soit un nouveau caractre blanc entre les mots soit
pas. Cela donne 2n/2 messages qui ont le mme sens, mais il peut y avoir un lger dcalage
entre les mots auquel on ne fait pas forcment attention.
Par paradoxe des anniversaires on peut donc trouver une collision pour un hach de
longueur n avec ces 2n/2 possibilits.
2. La vrification de la signature se fait uniquement partir du hach dun message donc
deux messages avec le mme hach auront la mme signature.

2.9.3 Le buzz free mobile


Non pas du tout. Il nest pas possible de faire sortir ce quon dcide la fonction de hachage.
Inversement, tant donn une criture, si cryptique soit-elle, dun message cach quon voudrait
mettre dans la valeur de hachage, il est impossible de trouver un antcdent.

57 / 63
58 CHAPITRE 2. CORRECTIONS

2.10 Authentification
2.10.1 Authentification clef secrte
1. Il nest pas possible de faire de lauthentification mutuelle par mot de passe tout simple-
ment parce quon ne peut donner un mot de passe qu une entit de confiance (on doit
tre sr de qui elle est) ce qui nest videmment pas le cas si on a besoin dauthentification
mutuelle
2. Le faux cran de login (par exemple). Il est possible si un serveur DNS est compromis
quun nom renvoie une adresse IP diffrente. Un utilisateur non averti peut donc penser
communiquer avec le vritable serveur.
3. Il suffit que lattaquant C lance en parallle une autre session dauthentification mutuelle
vers A en rejouant immdiatement les alas envoys et en entrelaant correctement les
envois de manire faire calculer A les valeurs des rponses. Cela donne :

1 A tire une valeur alatoire rA et lenvoie


C qui se fait passer pour B;
1bis C rejoue immdiatement la valeur en
lanant en parallle une autre session
dauthentification ;
0
2bis A tire une valeur alatoire rA et calcule
0
= EK (rA , rA ). A envoie C;
2 C renvoie alors (quil ne peut pas d-
chiffrer) A;
3 A calcule DK (). Il retrouve rA : C
sest authentifi. Il prend connaissance
0 0
de rA . Il envoie rA C;
0
3bis C renvoie rA A.
4. Le problme provient du fait que les messages ne sont pas personnaliss et que les procds
sont symtriques. Afin dintroduire de la dissymtrie dans un procd cl secrte, il faut
utiliser des MAC. On amnage alors le protocole prcdent en concatnant les identits
aux valeurs alatoires tires par chaque partie avant de calculer le MAC.

2.10.2 Authentification clef publique


On fait un protocole de dfi-rponse. Par exemple pour du chiffrement cl publique. On veut
authentifier la personne qui connait la cl secrte associe une cl publique. On choisit un
message alatoire quon chiffre avec la cl publique. Le dfi est de dchiffrer le message chiffr.
Si la personne est capable de renvoyer le message dchiffr cest quil connait le secret. Pour la
signature le dfi est de signer un message alatoire quon vrifie avec la cl publique.

2.10.3 Schma de Schnorr


1. Comme P connait s, il calcule y = r + es mod q et le transmet V. Alors

y v e = r+es es = r = x mod p

donc la vrification est positive.


2.11. PKI, CERTIFICATS 59

2. U russit son identification si x = y v e mod p, soit si y = xv e mod p, rse mod p, ce


qui est quivalent y = r se mod q. Donc U a une chance sur q de succs.
3. U peut procder de la faon suivante : il choisit dabord y alatoirement, puis calcule
x = y v e mod p. Notons quil na pas besoin de connaitre s pour cela, et que le calcul de
x est rapide. Il envoie ensuite x, puis y.
4. En effet, U a trouv y tel que y = r + es mod q et y 0 tel que y 0 = r + e0 s mod q. Alors
y y 0 = (e e0 )s et, comme (e e0 ) 6= 0 mod q, (e e0 ) est inversible modulo q. Il peut
donc calculer s par la formule :

s = (e e0 )1 (y y 0 ) mod q.

Notons que pour cela il a seulement besoin dinverser un entier modulo q et de multiplier
deux entiers modulo q, toutes oprations rapides.

2.11 PKI, certificats


2.11.1 PKI
On suppose que tout le monde a la cl publique dune autorit. Pour signer un message on
envoie, message sign avec sa cl publique plus le certificat de la cl sign par lautorit. En
recevant le message on commence par vrifier la validit du certificat avec la cl publique
de lautorit, puis si cest bon la cl publique du signataire est valide et on peut vrifier la
signature. De faon il suffit simplement davoir la cl publique dune autorit et pas besoin de
passer par un annuaire. La vrification se fait donc sans connexion ncessaire.

2.11.2 Certificats
1. Le fait que deux certificats soient signs par la mme clef ne pose aucun problme. Cest
tout simplement le cas quand une autorit de certification signe des certificats suivant
la norme X.509 ou lorsque quune personne signe des certificats PGP de plusieurs autres
personnes.
2. Cest ici une situation trs problmatique puisque deux personnes diffrentes possdent
des clefs publiques identiques : dune part chacune dentre elles peut lire les messages
chiffrs destins lautre personne ; dautre part il sera impossible de diffrencier les
signatures des deux personnes.
3. Si deux certificats diffrents ont la mme signature, cela signifie que la fonction de hachage
utilise pour la signature a cr une collision. La signature de lun des deux certificats
peut avoir t faite par un pirate qui a constat une collision sur la fonction de hachage.

2.11.3 Distinguer les clefs utilises dans PGP


On note respectivement k1 , k2 , k3 et k4 les clefs introduites dans lnonc de cet exercice.
1. k2 et k3 sont symtriques, k1 est la clef prive de A et k4 est la clef publique de B.
2. On considre gnralement quune clef symtrique devrait possder entre 128 et 256 bits
(128 bits est le cas le plus courant en pratique). La taille dune clef asymtrique devrait
tre entre 1024 et 4096 (1024 est le cas le plus courant en pratique).

59 / 63
60 CHAPITRE 2. CORRECTIONS

3. La clef k1 (resp. k4 ) est typiquement gnre quand A (resp. B) configure son environne-
ment PGP pour la premire fois. Cette clef ne devrait tre gnre quune seule fois, sauf
si elle a expir ou a t rvoque. La clef k2 est galement gnre quand A configure son
environnement PGP, ou quand A change son mot de passe. En effet, la clef k2 est drive
directement du mot de passe de A. Elle est utilise pour protger k1 sur le disque. La clef
k3 est une clef de session qui nest utilise quun seule fois et une nouvelle est gnre
chaque fois quun courrier est chiffr.

2.11.4 Hachs de mots de passe


1. tant donn que la fonction de hachage utilise dans le mcanisme dauthentification est
irrversible, le vol du fichier des hachs ne divulgue pas les mots de passe.
2. Il est prfrable de protger laccs aux hachs des mots de passe car, bien que la fonction
de hachage soit irrversible, les mots de passe peuvent souvent tre retrouvs en utilisant
soit une attaque par dictionnaire.
3. Cette protection ne serait pas ncessaire si les utilisateurs choisissaient des mots de passe
suffisamment complexes.

2.11.5 Le protocole HTTPS


1. Le protocole SSL avec un certificat serveur offre dabord une authentification du par-
tenaire accd par une vrification que ce serveur dtient bien la clef prive correspon-
dant la clef publique diffuse. Ensuite, la communication est chiffre, on a donc des ga-
ranties sur la confidentialit des changes ainsi que sur lintgrit de la communication pen-
dant toute sa dure.
2. Le certificat ninclut pas seulement la clef publique, mais galement une signature de cette
clef publique par un autre certificat. (Celui-ci pouvant galement tre un certificat inter-
mdiaire.)
La racine de cette chane de certification doit tre un certificat pr-install sur le naviga-
teur (ou obtenu indpendamment en pralable la communication).
Lutilisateur peut alors tre sr que le certificat diffus par le serveur appartient bien lor-
ganisme indiqu sil vrifie la chaine de certification, sil a confiance dans le certifi-
cat racine et sil a confiance dans les organismes dtenteurs des certificats interm-
diaires pour avoir fait les vrifications ncessaires avant de signer les certificats dri-
vs. (Il sagit alors de tiers de confiance ou dautorits de certification.)
3. Le certificat serveur noffre quune authentification du serveur. Si le service accd gre
une base de comptes utilisateurs, ceux-ci doivent donc galement en plus sauthenti-
fier. Cette authentification du client peut ventuellement seffectuer via un nom dutili-
sateur et un mot de passe. Cette mthode est moins forte quune technique faisant ap-
pel des algorithmes de cryptographie asymtriques, mais elle est bnficie nan-
moins via HTTPS de la protection offerte par le canal chiffr et sign de SSL.
4. Dans ce cas, lauthentification du client, appuye sur un certificat et une authentifica-
tion clef prive/clef publique offre des garanties bien plus importantes en terme de s-
curit. Par contre, il faut alors grer une procdure de dlivrance de ces certificats clients
(incluant leur signature par un tiers de confiance, aprs vrification de lidentit du de-
mandeur par exemple).
2.11. PKI, CERTIFICATS 61

5. La clef prive associe un certificat ne doit tre que trs rarement stocke en clair (no-
tamment sur disque). Elle est protge par un chiffrement symtrique dont la passphrase
constitue la clef. Cest donc un mot de passe permettant de dverrouiller lusage du certi-
ficat et de protger la clef prive de lutilisateur en cas de vol (par exemple afin de lui lais-
ser le temps de dtecter le vol et de rvoquer son certificat).
6. Si une passphrase est aussi utilise sur le serveur, chaque lancement du service web,
il sera ncessaire de la fournir au programme afin quil puisse accder la clef pri-
ve du certificat serveur. Il est peu probable que ceci soit effectu de manire inter-
active ( chaque redmarrage...). Il est plus probable quen pratique, soit la clef pri-
ve est effectivement stocke en clair sur le serveur, soit la passphrase en question est sto-
cke dans les paramtres de configuration du serveur (ce qui nest pas mieux).
Ce faisant, les administrateurs web/systme drogent vis vis du certificat serveur aux rgles
de protection quils recommandent leurs utilisateurs pour les certificats clients.

2.11.6 La carte bleue


1. Une signature de la cl publique, ou mme dun message contenant la cl publique kP et
dautres infos comme le nom du dtenteur, le numro de la carte, sa date dexpiration
etc, le tout sign avec une cl prive de la banque. Cette signature (certificat) peut tre
vrifie par qui dispose de la cl publique de la banque.
2. Il faudrait que tous les distributeurs connaissent les cls publiques de toutes les banques.
Cest facile en terme de stockage, ou du moins pas trop dur, mais logistiquement irrali-
sable (on ne peut pas mettre jour tous les distributeurs de la plante chaque fois quune
nouvelle banque est cre). Visa et Mastercard, eux, permettent de rsoudre ce problme.
Ils donnent aux banques un certificat o leur cl publique est signe par la cl prive de
Visa (par exemple). Alors il suffit pour vrifier que les distributeurs connaissent les cls
publiques dune poigne dorganismes centraux : Visa, Mastercard, GIE Cartes bancaires,
...
3. Avec la cl secrte de la carte, un attaquant peut fabriquer une fausse carte qui semble
valide, puisquelle prsente le bon certificat sign par la banque, et (puisque la cl se-
crte est dcouverte par lattaquant) quelle peut sauthentifier. Dautre part, cette carte
peut rpondre toujours oui toutes les questions (oui cest le bon code, oui japprouve la
transaction, etc). On appelle cela une yes-card. Sil dcouvre la cl secrte de la banque,
lattaquant peut produire des nouveaux certificats. Il peut donc crer des yes-cards asso-
cies dautres identits, avec dautres numros, dautres dates dexpiration, etc.

61 / 63

Vous aimerez peut-être aussi