Initiation Initiation a` la cryptographie
Correction TD de cryptographie n o 1 —ESIAL 2A TRS—
Intro Intr o ductio duc tion, n, conce concepts pts g´ en´ en´ eraux eraux Ce TD va permettre de revenir sur les notions de recherche exhaustive et de s’habituer a` manipuler la cryptographie `a cl´ cl´e secr` se cr`ete et e et cl´e publ pu bliq ique ue..
1
Se fami famili liar aris iser er av avec les les ordre ordress de grand grandeu eur r
Exercice 1. Mot
de passe
Un syst`eme eme est prot´eg´ eg´e par un mot de passe. Apr`es es un essai infructueux infruc tueux le syst`eme eme attend 1 s avant de redemander redema nder le mot de passe. Combien de temps t emps faudra-t-il faudr a-t-il pour pou r p´en´ en´etrer etrer le syst`eme eme dans les cas suivants : 1. le mot de passe est un pr´enom enom ; 2. c’est c’est un mot du dictionn dictionnaire aire;; 3. il est compos´ comp os´e de 4 chiffres ; 4. il fait fa it 8 caract` carac t`eres. eres. Correction Correction :
1. L’INSEE publie la liste des 20000 pr´ enoms enoms donn´es es en France depuis 1946. En pratique, seul un millier de pr´enoms enom s suffit a` d´esigner esigner plus de la moiti´e de la population popu lation fran¸caise. caise. 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¸ fran¸cais cais compte environ 200000 mots dont seulement seulement 3000 sont sont utilis´ utilis´es es courammen couramment, t, soit donc 2 jours et 8 heures au maximum et vraisemblablement vraisemblablement moins de 50 minutes. 3. Il y 104 = 10000 10000 mots de passe diff´erents erents constitu´ consti tu´es es de 4 chiffres, ce qui repr´esente esente 2h et 45 minutes pour tous les tester. 4. Si il s’agit de 8 lettres lettres minuscules, minuscules, il faut : 268 s
≈ 6600 6600 ann´ an n´ees ee s.
Cependant si l’on s’autorise les minuscules, les majuscules, les chiffres et quinze signes de ponctuations : 778 s
6
≈ 4 · 10
ann´ an n´ees. es .
1
Exercice 2. La
force brute
Le facteur de travail d’un algorithme est le nombre d’instructions ´el´ementaires n´ecessaire `a son ex´ ecution. La puissance d’une machine est le nombre d’instructions qu’elle ex´ecute par unit´e de temps. Nous allons approximer la puissance d’un PC actuel `a environ 2000 Mips (millions d’instructions par seconde). Le facteur de travail d’un algorithme optimis´e pour tester une cl´e de 128 bits de l’algorithme AES est d’environ 1200 instructions ´el´ementaires. On dispose d’un couple clair/chiffr´e connu et on d´esire retrouver la cl´e utilis´ee par force brute, c’est-`a-dire en testant toutes les cl´es les unes apr`es les autres. Une cl´e est constitu´ee d’un mot de 128 bits. On suppose que toutes les cl´es sont ´equiprobables. 1. En combien de temps une machine de 2000 Mips teste-t-elle une cl´ e? 2. Combien y a-t-il de cl´ es possibles ? Quel est le nombre moyen de cl´es `a tester avant de trouver la bonne? ` quel temps moyen de calcul cela correspond-il si on suppose qu’un seul PC effectue la 3. A recherche ? Si les 1 milliard de PC de l’Internet sont mobilis´es `a cette tˆa che? Correction : de travail 1. t = facteur = 1200 = 0, 6µs. 2000 puissance
2. Nbre de cl´es possibles = 2128. On consid`ere les cl´es possible comme ´etant les entiers de 0 `a 2 128 − 1, et la cl´e secr`ete est not´ee k . On a deux scenarios d’attaque par force brute possible. On note n = 2128. — Si on essaie tous les entiers les uns apr` es les autres. La probabilit´ e, pour un entier i donn´e, d’avoir k = i (et donc d’avoir exactement i +1 tirages ` a effectuer si on part de 0), est ´egale `a n1 . L’esp´erance du nombre d’essais est donc : n−1 n(n + 1) n 1 . (i + 1) = ≈ n 2n 2 i=0
— Si on effectue un grand nombre de tirages al´ eatoires parmi 2128, on a une loi binomiale. Chaque 1 tirage a une probabilit´e de succ`es n = p. La probabilit´ e qu’on trouve la cl´ e au bout de i tirages est : (1 − p)i−1 p . On a donc l’esp´erance du nombre de tirages n´ecessaires :
∞
E=
i=1
= p
i(1 − p)i−1 p = pf (1 − p), o` u f (x) =
1 1−x
.
1 1 . = (1 − (1 − p))2 p
3. On use et abuse des approximations 10 3 = 1000 ≈ 210, 1jour = 216 s, 1an = 29 jour = 225secondes, etc. On calcule d’abord le nombre d’instructions calcul´ees en un an `a la fr´equence de 2000 Mips. 2000 Mips.ann´ees ≈ 2000 × 220 × 29 × 216
≈2
11+20+9+16
≈2
56
.
≈2
45
instructions ,
Le nombre d’instructions `a effectuer pour trouver la cl´ e est : 1200 × 2127 ≈ 2138. Soit un temps de ≈ 2138−56 ≈ 281 ann´ees (ou, en base 10 : 2 × (210)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´ ees, soit un petit million de fois l’ˆ age de l’univers.
2
Exercice 3. La
loi de Moore
Il est admis que, grˆace aux progr`es 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¸cant avec une machine d’une puissance de 1000 Mips. Pour tout entier n , on note W n le nombre d’instructions ex´ecut´ees par la machine du mois n. 1. Quel est le facteur d’am´ elioration a de la puissance des machines d’un mois `a l’autre? 2. Calculer W 0 , puis W n en fonction de W 0 , de a et de n. 3. Quel est le temps moyen n´ecessaire pour trouver la cl´e de l’exercice pr´ec´edent avec une machine chang´ee tous les mois ? Correction :
1. On a d’un part W n+1 √ = aW n et la loi de Moore nous indique que W n+18 = a18 · W n = 2W n . On en d´eduit donc que a = 2. 18
2. L’hypoth`ese est que la machine a une fr´equence de 1000 Mips ( 230 par seconde), donc en un mois ( 25 jours de 2 16 secondes, en gros), ¸ca fait 2 51 instructions. En outre on a : W n = a n W 0. 3. Au bout de n mois, le nombre d’instructions S n effectu´e est W 0 + · · · + W n−1 , soit : S n = W 0 (1 + a + · · · + an−1 ),
= 251
an − 1 . a−1
Pour que S n d´epasse le nombre d’instructions `a effectuer, qui est ( 2127 × 211 = 2138), il faut une ` la calculatrice on obtient a − 1 ≈ 1 . On vise donc : estimation a` la louche de a − 1. A 25 an − 1 ≈ 2138−51 × (a − 1), 87
≈ 225 ≈ 2
8
2,
82log2 , log a ≈ 82 × 18 ≈ 123 ann´ees .
n≈
Ce qui est tr`es tr`es loin du temps calcul´e `a l’exercice pr´ec´edent. Il faut penser `a rajouter qu’on a donc besoin de changer 1476 fois d’ordinateurs.
2
Fonctions de hachage
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´es aujourd’hui, demain, `a Pˆ a ques, o` u `a la Saint-Glinglin. Pour amuser la galerie, le site live.free.fr contient un dessin de fus´ e e, avec les symboles : efb7929e6a5b7dcc6ebb79aa3c45af13 . Cette valeur est ce que renvoie la fonction de hachage md5 sur la donn´ee jesaispas . Des petits malins y voient aussi un second message cach´ e en interpr´etant la chaˆıne efb7929e6a5b7dcc6ebb79aa3c45af13 dans le codage ascii. On y lirait NIEL JOIN RACE >> START :
3
1. Est-il plausible de parvenir `a fabriquer un message intelligible (si tant est que celui-ci le soit !) dans le hach´ e d’un message intelligible qu’on passe `a une fonction de hachage ? Correction :
1. Non pas du tout. Il n’est pas possible de faire sortir ce qu’on d´ecide a` la fonction de hachage. Inversement, ´etant donn´e une ´ecriture, si cryptique soit-elle, d’un message cach´e qu’on voudrait mettre dans la valeur de hachage, il est impossible de trouver un ant´ec´edent.
3
Cl´ e secr` ete
esar Exercice 5. C´
/ Vig´en`ere
Le chiffrement de C´esar prend un texte compos´e de lettres, et d´ecale chaque lettre d’un nombre constant de positions dans l’alphabet. Ce nombre de positions est la cl´e. Pour d´eterminer la cl´e a` partir d’un message chiffr´ e, on fait des suppositions statistiques sur le message d’entr´ ee. Par exemple, si on suppose que le message est en fran¸cais, la lettre la plus fr´equente est le e. Par ordre d´ecroissant de fr´equence, on trouve : e, s, a, i, t, n, r, u. 1. Est-il plus facile de d´ echiffrer un texte long ou un texte court ? 2. Pouvez-vous d´echiffrer le message suivant : pwpnetzyacpdtopyetpwwp Le chiffrement de Vig´en`ere (en fait du `a Alberti au xv `eme si`ecle) est une sorte de C´esar am´elior´e. La cl´e est constitu´ee non pas d’un, mais de plusieurs d´ecalages. Cette cl´e est sp´ecifi´ee sous forme d’un mot qui constitue la cl´e. Par exemple la cl´e bac, de longueur trois, sp´ecifie que pour chiffr´e un message, on d´ecale la premi`ere lettre d’une position (lettre b), la deuxi`eme de z´ero positions (lettre a), la troisi`eme de deux positions (lettre c), et ainsi de suite en reprenant la cl´ e au d´ebut. 3. Si l’attaquant obtient la connaissance d’un couple message clair / message chiffr´ e, peut-il d´echiffrer tous les messages chiffr´es ensuite avec cette mˆeme cl´e ? 4. On suppose que seulement un message chiffr´e est `a disposition de l’attaquant. Si un attaquant connaˆıt la longueur de la cl´e, comment faire pour d´echiffrer ? 5. D’une mani`ere g´en´erale, ce syst`eme de chiffrement est-il difficile `a casser ?
4
Correction :
1. Un texte long car les fr´ equences sont alors plus proche des fr´ equences moyennes de la langue (on a moins de variations). 2. d´ecalage a
→
p .
3. Oui puisqu’il retrouve trivialement la cl´ e. 4. Il saucissonne le message en morceaux correspondants aux classes de congruence modulo la longueur de la cl´e, et il se retrouve avec une cryptanalyse de type C´esar. 5. Non, puisqu’il est ais´e de commencer par un pari sur la longueur de la cl´e (une hypoth`ese raisonnable ´etant que la cl´e fait moins de vingt caract`eres).
elioration Exercice 6. Am´
d’un syst`eme de chiffrement
Monsieur X utilise pour chiffrer ses donn´ees priv´ees le cryptosyst`eme DES, param´etr´e par une cl´e secr`ete k de 56 bits connue de lui seul. Comme Monsieur X a entendu dire que 56 bits ´etaient bien peu de nos jours, il envisage de rendre plus sˆur le stockage de ses donn´ees en chiffrant une seconde fois toutes ses donn´ees, avec la cl´e DES k = k + 1 (pour chaque donn´ee en clair m, la donn´ee chiffr´ee est donc c = DESk+1(DESk (m)), o` u k d´esigne la cl´e).
1. Est-ce une bonne id´ee ? 2. Discuter les avantages et/ou les inconv´ enients. 3. Monsieur X pense a` une autre am´elioration possible. Il va chiffrer une fois avec DES, et une fois avec AES128. Comme AES128 a besoin de cl´es de 128 bits, il va param´etrer son chiffrement DES par sa cl´e secr`ete k, et pour son chiffrement AES128 la mˆeme cl´e secr`ete k , mais avec des z´eros pour faire le remplissage. Est-ce mieux. 4. Quelle erreur fondamentale Monsieur X commet-il, eu ´egard aux principes de Kerckhoffs ?
Monsieur X n’a rien compris aux principes de Kerchoffs. Sa cl´e reste k . Son hypoth`ese doit ˆetre que son attaquant sait tout ce qu’il fait hormis la cl´ e. Or, ici, on n’a toujours que 256 valeurs de k a` tester. Correction :
4
Cl´ e publique
Exercice 7. Qu’y
a-t-il dans une carte bleue ?
Une carte bancaire (`a puce) poss`ede un couple cl´e publique/cl´e priv´ee 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 σ = A kS (m) avec sa cl´e priv´ee d’un message al´eatoire qu’on lui fournit. — Elle peut exhiber une preuve que sa cl´e publique k P qu’elle fournit, et qui est n´ecessaire pour v´erifier σ , est bien une cl´e que la banque reconnaˆıt comme appartenant `a un de ses clients. 1. Quelle forme peut prendre la preuve pr´ec´edemment cit´ee ? Quelle connaissance doit avoir le distributeur pour v´erifier cette preuve ?
5
2. Logistiquement parlant, est-il pratique de s’assurer que tous les distributeurs sur la plan`ete ont cette connaissance ? Quel rˆole peuvent jouer alors des organismes plus mondiaux comme Visa, Mastercard ? En second lieu, la carte dit oui ou non `a 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´ ee aupr`es de lui). Lors d’une transaction, la carte a pour vocation de dire ok ou pas `a un montant de transaction. Elle peut ´eventuellement aussi dire il faut demander `a la banque . Pour dire ok , la carte renvoie un code d’autorisation qui est une signature du montant de la transaction et du num´ero de carte. 3. Si un attaquant parvient a` trouver la cl´e secr`ete kS de la carte, et qu’il dispose du mat´eriel pour fabriquer une carte, que p eut-il faire ? Mˆeme question s’il parvient `a trouver la cl´e secr`ete de la banque. Correction :
1. Une signature de la cl´e publique, ou mˆeme d’un message contenant la cl´e publique k P et d’autres infos comme le nom du d´etenteur, le num´ero de la carte, sa date d’expiration etc, le tout sign´e avec une cl´e priv´ ee de la banque. Cette signature (“certificat”) peut ˆetre v´erifi´ee par qui dispose de la cl´e publique de la banque. 2. Il faudrait que tous les distributeurs connaissent les cl´ es publiques de toutes les banques. C’est facile en terme de stockage, ou du moins pas trop dur, mais logistiquement irr´ealisable (on ne peut pas mettre a` jour tous les distributeurs de la plan` ete chaque fois qu’une nouvelle banque est cr´ ee´e). Visa et Mastercard, eux, permettent de r´esoudre ce probl`eme. Ils donnent aux banques un certificat o`u leur cl´ e publique est sign´ ee par la cl´e priv´ ee de Visa (par exemple). Alors il suffit pour v´erifier que les distributeurs connaissent les cl´ es publiques d’une poign´ee d’organismes centraux : Visa, Mastercard, GIE Cartes bancaires, . . . 3. Avec la cl´e secr`ete de la carte, un attaquant peut fabriquer une fausse carte qui semble valide, puisqu’elle pr´ esente le bon certificat sign´ e par la banque, et (puisque la cl´e secr` ete est d´ecouverte par l’attaquant) qu’elle peut s’authentifier. D’autre part, cette carte peut r´epondre toujours “oui” `a toutes les questions (oui c’est le bon code, oui j’approuve la transaction, etc). On appelle cela une yes-card. S’il d´ecouvre la cl´e secr` ete de la banque, l’attaquant peut produire des nouveaux certificats. Il peut donc cr´ eer des yes-cards associ´ees `a d’autres identit´es, avec d’autres num´eros, d’autres dates d’expiration, etc.
6