Vous êtes sur la page 1sur 6

Initiation à la cryptographie

Correction TD de cryptographie no 1
—ESIAL 2A TRS—

Introduction, concepts généraux


Ce TD va permettre de revenir sur les notions de recherche exhaustive et de s’habituer
à manipuler la cryptographie à clé secrète et clé publique.

1 Se familiariser avec les ordres de grandeur

x Exercice 1. Mot de passe

Un système est protégé par un mot de passe. Après un essai infructueux le système attend 1s
avant de redemander le mot de passe. Combien de temps faudra-t-il pour pénétrer le système dans
les cas suivants :
1. le mot de passe est un prénom ;
2. c’est un mot du dictionnaire ;
3. il est composé de 4 chiffres ;
4. il fait 8 caractères.

!
Correction :
1. L’INSEE publie la liste des 20000 prénoms donnés en France depuis 1946. En pratique, seul un millier
de prénoms suffit à désigner plus de la moitié de la population française. 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. Le français compte environ 200000 mots dont seulement 3000 sont utilisés couramment, soit donc 2
jours et 8 heures au maximum et vraisemblablement moins de 50 minutes.
3. Il y 104 = 10000 mots de passe différents constitués de 4 chiffres, ce qui représente 2h et 45 minutes
pour tous les tester.
4. Si il s’agit de 8 lettres minuscules, il faut :

268 s ≈ 6600 années.

Cependant si l’on s’autorise les minuscules, les majuscules, les chiffres et quinze signes de ponctuations :

778 s ≈ 4 · 106 années.


!

1
x Exercice 2. La force brute

Le facteur de travail d’un algorithme est le nombre d’instructions élémentaires nécessaire à son
exécution. La puissance d’une machine est le nombre d’instructions qu’elle exécute par unité de
temps. Nous allons approximer la puissance d’un PC actuel à environ 2000 Mips (millions d’ins-
tructions par seconde).
Le facteur de travail d’un algorithme optimisé pour tester une clé de 128 bits de l’algorithme
AES est d’environ 1200 instructions élémentaires.
On dispose d’un couple clair/chiffré connu et on désire retrouver la clé utilisée par force brute,
c’est-à-dire en testant toutes les clés les unes après les autres. Une clé est constituée d’un mot de
128 bits. On suppose que toutes les clés sont équiprobables.
1. En combien de temps une machine de 2000 Mips teste-t-elle une clé ?
2. Combien y a-t-il de clés possibles ? Quel est le nombre moyen de clés à tester avant de trouver
la bonne ?
3. À quel temps moyen de calcul cela correspond-il si on suppose qu’un seul PC effectue la
recherche ? Si les 1 milliard de PC de l’Internet sont mobilisés à cette tâche ?

!
Correction :
facteur de travail 1200
1. t = puissance = 2000 = 0, 6µs.
2. Nbre de clés possibles = 2128 . On considère les clés possible comme étant les entiers de 0 à 2128 − 1, et
la clé secrète est notée k. On a deux scenarios d’attaque par force brute possible. On note n = 2128 .
— Si on essaie tous les entiers les uns après les autres. La probabilité, pour un entier i donné, d’avoir
k = i (et donc d’avoir exactement i+1 tirages à effectuer si on part de 0), est égale à n1 . L’espérance
du nombre d’essais est donc :
n−1
X 1 n(n + 1) n
(i + 1) = ≈ .
i=0
n 2n 2

— Si on effectue un grand nombre de tirages aléatoires parmi 2128 , on a une loi binomiale. Chaque
tirage a une probabilité de succès n1 = p. La probabilité qu’on trouve la clé au bout de i tirages
est :
(1 − p)i−1 p
. On a donc l’espérance du nombre de tirages nécessaires :

X
E= i(1 − p)i−1 p = pf 0 (1 − p), où f (x) = 1
1−x .
i=1
1 1
=p 2
= .
(1 − (1 − p)) p
3. On use et abuse des approximations 103 = 1000 ≈ 21 0, 1jour = 216 s, 1an = 29 jour = 225 secondes, etc.
On calcule d’abord le nombre d’instructions calculées en un an à la fréquence de 2000 Mips.

2000 Mips.années ≈ 2000 × 220 × 29 × 216 ≈ 245 instructions,


≈ 211+20+9+16 ≈ 256 .

Le nombre d’instructions à effectuer pour trouver la clé est : 1200 × 2127 ≈ 2138 . Soit un temps de
≈ 2138−56 ≈ 281 années (ou, en base 10 : 2 × (21 0)8 ≈ 2 × 1024 ).
Les un milliard (≈ 230 ) de PC d’Internet permettent de gagner un facteur 23 0, ou 109 . Soit quelque
chose comme 2 × 1015 années, soit un petit million de fois l’âge de l’univers.
!

2
x Exercice 3. La loi de Moore

Il est admis que, grâce aux progrès technologiques permanents, la puissance des machines double
en moyenne tous les 18 mois (loi empirique de Moore). On suppose maintenant que l’on change
les machines tous les mois en commençant avec une machine d’une puissance de 1000 Mips. Pour
tout entier n, on note Wn le nombre d’instructions exécutées par la machine du mois n.
1. Quel est le facteur d’amélioration a de la puissance des machines d’un mois à l’autre ?
2. Calculer W0 , puis Wn en fonction de W0 , de a et de n.
3. Quel est le temps moyen nécessaire pour trouver la clé de l’exercice précédent avec une machine
changée tous les mois ?

!
Correction :
1. On a d’un part Wn+1 √= aWn et la loi de Moore nous indique que Wn+18 = a18 · Wn = 2Wn . On en
déduit donc que a = 18 2.
2. L’hypothèse est que la machine a une fréquence 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 d’instructions Sn effectué est W0 + · · · + Wn−1 , soit :

Sn = W0 (1 + a + · · · + an−1 ),
an − 1
= 251 .
a−1
Pour que Sn dépasse le nombre d’instructions à effectuer, qui est (2127 × 211 = 2138 ), il faut une
1
estimation à la louche de a − 1. À la calculatrice on obtient a − 1 ≈ 25 . On vise donc :

an − 1 ≈ 2138−51 × (a − 1),
287
≈ ≈ 28 2,
25
82 log 2
n≈ ,
log a
≈ 82 × 18 ≈ 123 années.

Ce qui est très très loin du temps calculé à l’exercice précédent. Il faut penser à rajouter qu’on a donc
besoin de changer 1476 fois d’ordinateurs.
!

2 Fonctions de hachage

x Exercice 4. Le buzz free mobile

Aujourd’hui 6 janvier 2012, les geeks s’agitent pour savoir si les forfaits de la marque
Free Mobile seront lancés aujourd’hui, demain, à Pâques, où à la Saint-Glinglin. Pour
amuser la galerie, le site live.free.fr contient un dessin de fusée, avec les symboles :
efb7929e6a5b7dcc6ebb79aa3c45af13. Cette valeur est ce que renvoie la fonction de hachage md5
sur la donnée jesaispas. Des petits malins y voient aussi un second message caché en in-
terprétant la chaı̂ne efb7929e6a5b7dcc6ebb79aa3c45af13 dans le codage ascii. On y lirait NIEL
JOIN RACE >>START :

3
1. Est-il plausible de parvenir à fabriquer un message intelligible (si tant est que celui-ci le soit !)
dans le haché d’un message intelligible qu’on passe à une fonction de hachage ?

!
Correction :
1. Non pas du tout. Il n’est pas possible de faire sortir ce qu’on décide à la fonction de hachage. Inverse-
ment, étant donné une écriture, si cryptique soit-elle, d’un message caché qu’on voudrait mettre dans
la valeur de hachage, il est impossible de trouver un antécédent.
!

3 Clé secrète

x Exercice 5. César / Vigénère

Le chiffrement de César prend un texte composé de lettres, et décale chaque lettre d’un nombre
constant de positions dans l’alphabet. Ce nombre de positions est la clé.
Pour déterminer la clé à partir d’un message chiffré, on fait des suppositions statistiques sur
le message d’entrée. Par exemple, si on suppose que le message est en français, la lettre la plus
fréquente est le e. Par ordre décroissant de fréquence, on trouve : e, s, a, i, t,
n, r, u.

1. Est-il plus facile de déchiffrer un texte long ou un texte court ?


2. Pouvez-vous déchiffrer le message suivant : pwpnetzyacpdtopyetpwwp
Le chiffrement de Vigénère (en fait du à Alberti au xvème siècle) est une sorte de César amélioré.
La clé est constituée non pas d’un, mais de plusieurs décalages. Cette clé est spécifiée sous forme
d’un mot qui constitue la clé. Par exemple la clé bac, de longueur trois, spécifie que pour chiffré
un message, on décale la première lettre d’une position (lettre b), la deuxième de zéro positions
(lettre a), la troisième de deux positions (lettre c), et ainsi de suite en reprenant la clé au
début.
3. Si l’attaquant obtient la connaissance d’un couple message clair / message chiffré, peut-il
déchiffrer tous les messages chiffrés ensuite avec cette même clé ?
4. On suppose que seulement un message chiffré est à disposition de l’attaquant. Si un attaquant
connaı̂t la longueur de la clé, comment faire pour déchiffrer ?
5. D’une manière générale, ce système de chiffrement est-il difficile à casser ?

4
!
Correction :
1. Un texte long car les fréquences sont alors plus proche des fréquences moyennes de la langue (on a
moins de variations).
2. décalage a →p.
 

3. Oui puisqu’il 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 César.
5. Non, puisqu’il est aisé de commencer par un pari sur la longueur de la clé (une hypothèse raisonnable
étant que la clé fait moins de vingt caractères).
!

x Exercice 6. Amélioration d’un système de chiffrement

Monsieur X utilise pour chiffrer ses données privées le cryptosystème DES, paramétré par une
clé secrète 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 sûr le stockage de ses données en chiffrant une
seconde fois toutes ses données, avec la clé DES k 0 = k + 1 (pour chaque donnée en clair m, la
donnée chiffrée est donc c = DESk+1 (DESk (m)), où k désigne la clé).
1. Est-ce une bonne idée ?
2. Discuter les avantages et/ou les inconvénients.
3. Monsieur X pense à une autre amélioration possible. Il va chiffrer une fois avec DES, et une fois
avec AES128. Comme AES128 a besoin de clés de 128 bits, il va paramétrer son chiffrement
DES par sa clé secrète k, et pour son chiffrement AES128 la même clé secrète k, mais avec
des zéros pour faire le remplissage. Est-ce mieux.
4. Quelle erreur fondamentale Monsieur X commet-il, eu égard aux principes de Kerckhoffs ?

!
Correction : Monsieur X n’a rien compris aux principes de Kerchoffs. Sa clé reste k. Son hypothèse doit
être que son attaquant sait tout ce qu’il fait hormis la clé. Or, ici, on n’a toujours que 256 valeurs de k à
tester.
!

4 Clé publique

x Exercice 7. Qu’y a-t-il dans une carte bleue ?

Une carte bancaire (à puce) possède un couple clé publique/clé privée kP , kS . Dans la perspective
d’une transaction, elle accomplit plusieurs choses.
En premier lieu, elle apporte une preuve qu’elle est une vraie carte, car :
— Elle produit une signature valide σ = AkS (m) avec sa clé privée d’un message aléatoire qu’on
lui fournit.
— Elle peut exhiber une preuve que sa clé publique kP qu’elle fournit, et qui est nécessaire pour
vérifier σ, est bien une clé que la banque reconnaı̂t comme appartenant à un de ses clients.
1. Quelle forme peut prendre la preuve précédemment citée ? Quelle connaissance doit avoir le
distributeur pour vérifier cette preuve ?

5
2. Logistiquement parlant, est-il pratique de s’assurer que tous les distributeurs sur la planète
ont cette connaissance ? Quel rôle 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 s’est authentifiée auprès
de lui).
Lors d’une transaction, la carte a pour vocation de dire  ok  ou pas à un montant de tran-
saction. Elle peut éventuellement aussi dire  il faut demander à la banque . Pour dire  ok , la
carte renvoie un  code d’autorisation  qui est une signature du montant de la transaction et du
numéro de carte.
3. Si un attaquant parvient à trouver la clé secrète kS de la carte, et qu’il dispose du matériel
pour fabriquer une carte, que peut-il faire ? Même question s’il parvient à trouver la clé secrète
de la banque.

!
Correction :
1. Une signature de la clé publique, ou même d’un message contenant la clé publique kP et d’autres infos
comme le nom du détenteur, le numéro de la carte, sa date d’expiration etc, le tout signé avec une clé
privée de la banque. Cette signature (“certificat”) peut être vérifiée par qui dispose de la clé publique
de la banque.
2. Il faudrait que tous les distributeurs connaissent les clés publiques de toutes les banques. C’est facile
en terme de stockage, ou du moins pas trop dur, mais logistiquement irréalisable (on ne peut pas
mettre à jour tous les distributeurs de la planète chaque fois qu’une nouvelle banque est créée). Visa
et Mastercard, eux, permettent de résoudre ce problème. Ils donnent aux banques un certificat où leur
clé publique est signée par la clé privée de Visa (par exemple). Alors il suffit pour vérifier que les
distributeurs connaissent les clés publiques d’une poignée d’organismes centraux : Visa, Mastercard,
GIE Cartes bancaires, . . .
3. Avec la clé secrète de la carte, un attaquant peut fabriquer une fausse carte qui semble valide, puisqu’elle
présente le bon certificat signé par la banque, et (puisque la clé secrète est découverte par l’attaquant)
qu’elle peut s’authentifier. D’autre part, cette carte peut répondre toujours “oui” à toutes les questions
(oui c’est le bon code, oui j’approuve la transaction, etc). On appelle cela une yes-card. S’il découvre
la clé secrète de la banque, l’attaquant peut produire des nouveaux certificats. Il peut donc créer des
yes-cards associées à d’autres identités, avec d’autres numéros, d’autres dates d’expiration, etc.
!

Vous aimerez peut-être aussi