Vous êtes sur la page 1sur 4

Examen

Crytologie
durée 1h30
aucun document autorisé

Exercice 1 chiffrement de Polybe


(d'après un exercice d'E. Bresson, univ. P12)
On considère l'alphabet privé du W. Cela nous fait 25 lettres.Polybe (200-125 av. J.C.) a proposé le
mécanisme suivant : on range les lettres dans un tableau 5x5 en commençant par le mot clef puis
par l'alphabet. Bien évidemment, une lettre déjà apparue n'est pas ajoutée au tableau. Exemple: avec
le mot clef MYSTERE, cela donne :
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 s'effectue alors en remplaçant chaque lettre du message par sa position sur le
tableau. L sera remplacé par 42.
Question 1: chiffrez le texte suivant : salut les tepos
Question 2: déchiffrez le texte suivant : 42 22 24 21 12 45 14 44 24 15 13 14 24 44 42
Question3: que pensez-vous de la solidité de ce système :
● face à un attaquant qui a un texte clair et chiffré avec une clef donnée
● de façon générale face à un attaquant qui a simplement le texte chiffré

Exercice 2 chiffrement mixte


Question 1: Après avoir défini ce que l'on appelle une méthode de chiffrement à clef secrète, vous
citerez les avantages et inconvénients des algorithmes classiques de chiffrement à clef secrète.
Question 2: Après avoir défini ce que l'on appelle une méthode de chiffrement asymétrique (aussi
appelées méthode à clef publique), vous citerez les avantages et inconvénients des algorithmes
classiques de chiffrement à clef publique.
Question 3: Dans la vraie vie, pour chiffrer des données ou des communications, on utilise
simultanément les deux types de méthodes. Vous expliquerez comment et pourquoi on procède
ainsi.
Exercice 3 chiffrement par bloc

question 1
Décrivez les méthodes de chiffrement par bloc ECB et CBC (schéma de chiffrement et schéma de
déchiffrement)

question 2
Décrivez les points forts et les points faibles de la méthode ECB en matière de sécurité et de
performances. Comparez là sur ces deux critères à la méthode CBC.

question 3

m1 m2 m3 mi
Ek Ek Ek Ek

c1 c2 c3 ci-1 ci
Le Schéma ci-dessus représente une méthode de chiffrement par bloc qu'on appellera BR. On a
ci=ci-1⊕ E(k, mi).
Donnez le schéma et la formule de déchiffrement.

question 4
Que note-t-on si m2=m3 ?
Après avoir mis en évidence les problèmes de sécurité de base posés par cette méthode, proposez
des solutions pour l'améliorer (soyez suffisamment précis pour qu'on puisse facilement trouver les
formules de chiffrement et de déchiffrement de votre méthode à partir du schéma ou donnez les
formules vous-même).

Exercice 4 Blowfish
Blowfish est un algorithme de chiffrement par blocs. Il utilise des clefs de taile comprise entre 32
et 448 bits et chiffre des blocs de 64 bits. Il utilise le schéma de Feistel modifié suivant :
L0 R0

P1

L1 R1

question 1
Que pensez-vous de la taille des blocs et des clefs de Blowfish : comparés à DES et dans l'absolu du
point de vue sécurité ?

question 2 chiffrement
Exprimez L1 et R1 en fonction de L0 et R0.

question 3 déchiffrement
Exprimez L0 et R0 en fonction de R1 et de L1.

Exercice 5
Dans cet exercice nous étudions des fonctions de hachage à sens unique. Pour simplifier la
présentation, ainsi que les essais qui sont demandés, nous allons les décrire comme retournant une
empreinte sur 8 bits. Il est clair que cela est insuffisant pour des questions de sécurité mais toutes
les descriptions qui suivent peuvent être étendues pour générer des empreintes de longueur
quelconques.
Si le message M à hacher n'a pas une longueur qui est un multiple de 8 bits, la fonction de hachage
commence par le compléter avec un bit 1 suivi d'autant de bits 0 que nécessaire pour que le message
ainsi complété contienne un multiple de 8 bits. Notons M' le message ainsi complété après cette
étape. M' est alors découpé en blocs de 8 bits consécutifs. Notons B_1,B_2,...,B_q ces q blocs,
q⩽1. On peut alors décrire les deux fonctions de hachage étudiées dans cet exercice.
h_1(M) = B_1 ⨁ B_2 ... B_l
avec ⨁ désignant le XOR bit à bit (Rappel~: 0 ⨁ 0= 1 ⨁ 1 =0 et 0⨁ 1 = 1 ⨁ 0 = 1).
Pour décrire h_2, notons A = a_1a_2... a_8 = B_1 ⨁ B_2 ⨁ ... ⨁ B_l (où a_i ∊ {0,1 }). Avec
ces notations, on a~: h_2(M) = c_1... c_8 avec c_i = a_i ⨁ a_{i+1}, pour i=1,..., 7 et c_8 = a_8 ⨁
0.
● Question de cours : quelles sont les propriétés que doivent vérifier les fonctions de hachage
à sens uniques pour pouvoir être utilisées dans le cadre d'applications cryptographiques ?
● Donnez des exemples d'applications utilisant les fonctions de hachage à sens unique dans
lesquelles il est important que ces propriétés soient vérifiées.
● Répondez aux questions suivantes en justifiant clairement vos calculs. :
● Soit M=001011100001, calculez h_1(M) et h_2(M).
● Construisez un message M tel que h_1(M) = 01011001.
● Construisez un message M tel que h_2(M)=11001011
● Construisez un message M tel que h_2(M)=00000000
● Construisez un message M tel que h_2(M)=11111111
● Comment l'espion peut il attaquer h_1 et h_2 ? Que peut il faire ?
● Dans votre réponse à la question précédente vous avez peut être utilisé le fait que les
empreintes calculées ne sont que sur 8 bits. Qu'en est il de la sécurité de h_1 et h_2 si on
les généralise naturellement pour produire des empreintes de 160 bits?

Vous aimerez peut-être aussi