Vous êtes sur la page 1sur 6

Initiation `a la cryptographie

Correction TD de cryptographie n o 1

—ESIAL 2A TRS—

Introduction, concepts g´en´eraux

Ce TD va permettre de revenir sur les notions de recherche exhaustive et de s’habituer `a manipuler la cryptographie `a cl´e secr`ete et cl´e publique.

1 Se familiariser avec les ordres de grandeur

Exercice 1. Mot de passe

Un syst`eme est prot´eg´e par un mot de passe. Apr`es un essai infructueux le syst`eme attend 1s avant de redemander le mot de passe. Combien de temps faudra-t-il pour p´en´etrer le syst`eme dans les cas suivants :

1. le mot de passe est un pr´enom ;

2. c’est un mot du dictionnaire ;

3. il est compos´e de 4 chiffres ;

4. il fait 8 caract`eres.

Correction :

1. L’INSEE publie la liste des 20000 pr´enoms donn´es en France depuis 1946. En pratique, seul un millier de pr´enoms suffit `a d´esigner plus de la moiti´e de la population fran¸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¸cais compte environ 200000 mots dont seulement 3000 sont utilis´es couramment, soit donc 2 jours et 8 heures au maximum et vraisemblablement moins de 50 minutes.

3. Il y 10 4 = 10000 mots de passe diff´erents constitu´es de 4 chiffres, ce qui repr´esente 2h et 45 minutes pour tous les tester.

4. Si il s’agit de 8 lettres minuscules, il faut :

26 8 s 6600 ann´ees.

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

77 8 s

4 · 10 6 ann´ees.

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’ins- tructions 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 ?

`

A

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´es `a cette tˆache ?

Correction :

1. t = facteur de travail puissance

= 1200

2000

= 0, 6µs.

2. Nbre de cl´es possibles = 2 128 . 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 = 2 128 .

— 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 n . L’esp´erance du nombre d’essais est donc :

1

n1

i=0

(i + 1) 1

n

= n(n + 1)

2n

n

2 .

— Si on effectue un grand nombre de tirages al´eatoires parmi 2 128 , on a une loi binomiale. Chaque

n 1 = p. La probabilit´e qu’on trouve la cl´e au bout de i tirages

tirage a une probabilit´e de succ`es est :

(1 p) i1 p

. On a donc l’esp´erance du nombre de tirages n´ecessaires :

E =

i=1

i(1 p) i1 p = pf (1 p),

= p

1

1 .

(1 (1 p)) 2

= p

o`u f (x) =

1

1x .

3. On use et abuse des approximations 10 3 = 1000 2 1 0, 1jour = 2 16 s, 1an = 2 9 jour = 2 25 secondes, 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 × 2 20 × 2 9 × 2 16 2 45 instructions,

2 11+20+9+16 2 56 .

Le nombre d’instructions `a effectuer pour trouver la cl´e est : 1200 × 2 127 2 138 . Soit un temps de

2 13856 2 81 ann´ees (ou, en base 10 : 2 × (2 1 0) 8

Les un milliard (2 30 ) de PC d’Internet permettent de gagner un facteur 2 3 0, ou 10 9 . Soit quelque chose comme 2 × 10 15 ann´ees, soit un petit million de fois l’ˆage de l’univers.

2 × 10 24 ).

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 = a 18 · W n = 2W n . On en

d´eduit donc que a = 18 2.

2. L’hypoth`ese est que la machine a une fr´equence de 1000 Mips (2 30 par seconde), donc en un mois (2 5 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 n1 , soit :

S n =

W 0 (1 + a + · · · + a n1 ),

= 2 51 a n 1

a 1 .

Pour que S n d´epasse le nombre d’instructions `a effectuer, qui est (2 127 × 2 11 = 2 138 ), il faut une

`

estimation `a la louche de a 1. A la calculatrice on obtient a 1

a n 1 2 13851 × (a 1),

n

2 25 2 8 2,

log a

,

87

82 log 2

82 × 18 123 ann´ees.

25 1 . On vise donc :

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ˆaques, o`u `a la Saint-Glinglin. Pour amuser la galerie, le site live.free.fr contient un dessin de fus´ee, 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 in- terpr´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

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. Inverse- ment, ´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

Exercice 5. C´esar / 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).

Exercice 6. Am´elioration 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 = DES k+1 (DES k (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 2 56 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 k P , k S . 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 k S (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 tran- saction. 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 k S de la carte, et qu’il dispose du mat´eriel pour fabriquer une carte, que peut-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´e´ee). 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