Fiche d`exercices 1

Transcription

Fiche d`exercices 1
Université Joseph Fourier, Grenoble I • UFR IM2 AG, Master 1 maths/info • Année 2014/2015, 1er semestre
Fiche d’exercices 1
Cédric Lauradoux
Conseils: Essayez dans un premier temps de de faire tous les exercices sans le cours afin
d’identifier les parties du cours qui vous posent le plus de problème. Reprenez ensuite les exercices un par un avec le cours.
1. Analyse de systèmes de chiffrement (Théorie de l’information)
1.1. Théorie de l’information. On considère le système de chiffrement suivant:
c = m + k mod 3,
avec k une clef, m le texte clair et c le texte chiffré. On
associées respectivement a la clef k, au texte clair m et au
textes clairs ont les propriétés suivantes
K Probabilité
3
0
5
1
1
5
1
2
5
dénote K, M, C les variables aléatoires
texte chiffré c. L’espace des clefs et des
M Probabilité
3
0
7
2
1
7
2
?
(a) Calculer P (M = 2) et P (C = i) pour i ∈ {0, 1, 2}.
(b) Est ce que ce système garanti une sécurité parfaite ?
1.2. Chiffrement affine. On a vu en cours le chiffrement additif (one-time-pad) et le chiffrement multiplicatif en travaux dirigés. On considère maintenant un système de chiffrement affine
(P, C, K, E, D) tel que:
c = a · m + b mod n,
avec c un caractère du texte chiffré, m un caractère du texte clair, a, b et n les paramètres de
chiffrement. En pratique, on considérera que a et b sont choisis en fonction de la clef k. On
considère que les clefs k et les textes m sont choisis uniformément.
(a) Existe-t-il des clefs faibles ?
(b) Construire tous les chiffrés possible pour n = 5, a = 4 et b = 3.
(c) Par la suite, on continuera avec les paramètres de la question précédente. Calculer: H(C),
H(M |C), H(C|K) et I(C; K, M ).
M, C, K sont les variables aléatoires associées respectivement à m, c, k.
(d) Construire le diagramme de Venn de ce système de chiffrement.
(e) Serait il une grande idée de faire dépendre n de la clef k ?
(f) Que pensez vous du chiffrement affine ?
1.3. Chiffrement composé. On considère deux systèmes de chiffrement (P, L, K1 , E1 , D1 ) et
(L, C, K2 , E2 , D2 ) tel que pour X ∈ P et Y ∈ L:
E1 (X) = a1 X + b1 mod n,
E2 (Y ) = a2 Y + b2 mod n,
avec a1 , b1 , a2 , b2 , n des entiers non-nuls. On considère l’opération de double chiffrement C =
E2 (E1 (M )).
(a) Montrez que ce double chiffrement est équivalent à un système de chiffrement (P, C, K, E, D)
tel que: E(M ) = aM + b mod n, avec a et b deux entiers à déterminer.
1
(b) Quelle est la fonction D de déchiffrement correspondante ? Quelle condition doivent satisfaire
a1 , b1 , a2 , b2 ? Quel est le cardinal de C ? Que peut on dire de ce système de chiffrement si |P| ≥ |C|
(| · | dénote le cardinal d’un ensemble).
2. Générateurs pseudo-aléatoires
2.1. Période. On propose d’étudier la période est les cycles de plusieurs générateurs.
st+3
st+2
st+1
st
Figure 1. Premier générateur pseudo-aléatoire.
L’état du générateur de la Figure 1 au temps t est s = (st , st+1 , st+2 , st+3 ) avec st+i ∈ {0, 1}.
st+4 = st ,
st+1 = st .
(a) Caractériser (nombre de cycles, longueur et période) le générateur pseudo-aléatoire.
L’état interne du générateur de la Figure 2 au temps t est s = (st , st+1 , st+2 , st+3 ) avec st+i ∈
{0, 1}. La fonction de rétroaction est (le symbole ∨ est le “ou-inclusif”):
st+4 = st ∨ st+3 ,
st+1 = st .
st+3
st+2
st+1
st
Figure 2. Deuxieme générateur pseudo-aléatoire.
(b) Caractériser (nombre de cycles, longueur et période) ce générateur pseudo-aléatoire.
2.2. Générateur de Fibonacci. Le générateur de Fibonacci est définit par:
xt = xt−1 + xt−2 mod m,
avec x0 et x1 comme graine. On veut utiliser ce générateur de Fibonacci dans un système de
chiffrement par flot. On obtient le texte chiffré ct à partir du texte clair mt de la manière suivante:
ct = xt+2 ⊕ mt , avec t ≥ 0.
On considère pour des raison pratiques que mt ∈ Z/mZ tout comme xt (par définition) et ct . Par
la suite, prendra m = 232 et on dispose d’une clef k de 64 bit telle que k = k1 , k2 avec k1 et k2 sur
32 bits. L’initialisation du générateur avec clef est simple:
x0 = k0
x1 = k1 .
(a) Existe-t-il des clefs telle que c0 = m0 ? Si oui combien y en a-t-il ?
(b) A la suite de deux attaques à texte clair connu, on a obtenu x5 = 570 et x7 = 1503. Est il
possible de retrouver la clef à partir de ces deux valeurs ? Si oui donner x0 et x1 .
(c) On propose de faire tourner a vide le générateur 1000 fois avant de commencer à utiliser la
suite chiffrante. On a donc ct = xt+1002 + mt . Que pensez vous de cette méthode ?
(c) Que pensez vous de l’utilisation du générateur de Fibonacci en cryptographie ?