Vous êtes sur la page 1sur 4

Niveau : 3LT A.U.

2022/2023

TD2 : Cryptographie & Protocoles

Exercice 1 :
Alice souhaite envoyer un message M à Bob.
1- Alice et Bob partagent une clé secrète K de même taille que M. Ils suivent le protocole
suivant :
a) Alice envoie C1 = M ⊕ K à Bob.
b) Bob calcule C2 = C1 ⊕ K.
Q1- Montrer que C2 correspond bien au message M.

C2 = C1 ⊕ K = (M ⊕ K) ⊕ K = M ⊕ (K ⊕ K) (propriété de l’associativité)

Or K ⊕ K = 0 donc on obtient C2 = M ⊕ 0 = M
2- Alice possède une clé secrète K et Bob une clé L. Ils suivent le protocole suivant :
a) Alice envoie C1 = M ⊕ K à Bob.
b) Bob envoie C2 = C1 ⊕ L à Alice.
c) Alice envoie C3 = C2 ⊕ K à Bob.
Q2- Montrer que Bob peut retrouver le message M.

Bob calcule C3 ⊕ L = C2 ⊕ L ⊕ K = C1 ⊕ L ⊕ L ⊕ K = C1 ⊕ K = M ⊕ K ⊕ K = M
Exercice 2 :
On considère le crypto-système défini par la figure suivante :

Les boites S1 et S2 sont données par :

1/4
Niveau : 3LT A.U. 2022/2023

X [0, 0] [1, 0] [0, 1] [1, 1]


S1(X) [1, 1] [1, 0] [0, 0] [0, 1]
S2(X) [1, 0] [0, 1] [1, 1] [0, 0]

Les clés de ronde se déduisent de la clé de chiffrement K = [k1, k2, k3, k4] par :
K1 = [k1 ⊕ k2, k2, k3 ⊕ k4, k3]
K2 = [k1 ⊕ k2 ⊕ k3, k2 ⊕ k3, k3 ⊕ k4, k4]
La permutation P est définie par :
P(1) = 3, P(4) = 2, P(2) = 1, P(3) = 4
P(1)= 3 c.à.d. 1 (bit) est remplacé par (bit) 3, etc.
Q1 – Quel est le type de ce crypto-système ?
Il s’agit d’un crypto-système à clé secrète utilisant le chiffrement par bloc de deux tours.
Q2- Chiffrer le message M = [0, 1, 1, 0] avec K = [1, 1, 1, 1].
K1 = [k1 ⊕ k2, k2, k3 ⊕ k4, k3] = [0,1,0,1]
K2 = [k1 ⊕ k2 ⊕ k3, k2 ⊕ k3, k3 ⊕ k4, k4] = [1, 0, 0, 1]
S1([0.1]) = [0,0]
S2([1,0]) = [0,1]
P([0,0,0,1]) = [0, 0,1, 0]
[0, 0,1, 0] ⊕ K1 = [0, 0,1, 0] ⊕ [0,1,0,1] = [0, 1, 1, 1]
S1([0,1]) = [0,0]
S2([1,1]) = [0,0]
P([0,0,0,0]) = [0,0,0,0]
[0,0,0,0] ⊕ K2 = [0, 0,0, 0] ⊕ [1,0,0,1] = [1, 0, 0, 1]
C = [1, 0, 0, 1]
Q2- Déchiffrer le message C = [0, 1, 0, 1] chiffré avec la même clé.
C ⊕ K2 = [0,1,0,1] ⊕ [1,0,0,1] = [1, 1, 0, 0]
P([1, 1, 0, 0]) = [0 ,1 ,0 , 1]
S1([0,1]) = [0,0]
S2([0,1]) = [1,1]
[0,0,1,1] ⊕ K1 = [0,0,1,1] ⊕ [0,1,0,1] = [0, 1, 1, 0]
P([0, 1, 1, 0]) = [1, 0 , 0, 1]

2/4
Niveau : 3LT A.U. 2022/2023

S1([1,,0]) = [1,0]
S2([0,1]) = [1,1]
M = [1, 0, 1, 1]

Exercice 3
On considère un chiffrement de Feistel à 2 rondes défini par :
• La longueur des blocs est 8 ;
• La clé 𝐾 = [𝑘1 , . . . , 𝑘8 ] est de longueur 8, les deux clés de ronde sont 𝐾1 = [𝑘1 , . . . , 𝑘4 ] et
𝐾2 = [𝑘5 , . . . , 𝑘8 ], les 𝑘𝑖 étant les bits de la clé 𝐾 ;
• La fonction 𝑉 = 𝐹(𝐾′, 𝑈) est définie par l’expression des bits 𝑣𝑖 de 𝑉 = [𝑣1 , . . . , 𝑣4 ] en
fonction de ceux de 𝑈 = [𝑢1 , . . . , 𝑢4 ] et 𝐾’ = [𝑘1′ , … , 𝑘4′ ] la clé de la ronde selon :

Q1- Représenter le schéma de ce crypto-système.

Q2- Soit la clé K = [1, 0, 1, 1, 0, 0, 1, 0] et le message M = [0, 1, 0, 0, 0, 1, 1, 1]. Calculer le


message chiffré correspondant à M.
Pour le 1er tour : R1 = L0 ⊕ F(K1, R0) et L1 = R0

3/4
Niveau : 3LT A.U. 2022/2023

Pour le 2eme tour : R2 = L1 ⊕ F(K2, R1) et L2 = R1


R2= R0 ⊕ F(K2, L0 ⊕ F(K1, R0))
L2 = L0 ⊕ F(K1, R0)
Or L0 = [0,1,0,0] ; R0 = [0,1,1,1] ; K1=[1,0,1,1] et K2=[0,0,1,0]
F(K1, R0) = [0,1,0,1] puisque :
v1= 0x1⊕ 1x1 ⊕ 1x1 = 0
v2= 0x0 ⊕ 1x1 = 1
v3= 0x1 ⊕ 0x1 = 0
v4= 1x1 ⊕ 0x1 = 1
 L2 = [0,1,0,0] ⊕ [0,1,0,1] = [0,0,0,1] = R1
 R2 = R0 ⊕ F(K2, R1) = [0,1,1,1] ⊕ [1,0,0,0] = [1,1,1,1] car
F(K2, R1) = [1 ,0 ,0 , 0] puisque
Pour R1= [0,0,0,1] et K2=[0,0,1,0]
v1= 0x0 ⊕ 0x1 ⊕ 1x1 = 1
v2= 0x0 ⊕ 0x0 = 0
v3=0x0 ⊕ 0x1 = 0
v4=0x1 ⊕ 0x0 = 0

Le message chiffré est donc C=[0,0,0,1,1,1,1,1]


Q3- Déchiffrer le message C = [0, 1, 1, 1, 0, 0, 1, 1] obtenu avec la même clé.
L2=[0,1,1,1] ; R2=[0,0,1,1] ; K1=[1,0,1,1] et K2=[0,0,1,0]
R1 = L2 ET L1 = R2 ⊕ F(K2,R1)
R0 = L1 ➔ R0 = R2 ⊕ F(K2,R1) = R2 ⊕ F(K2,L2) car R1=L2
L0 = R1 ⊕ F(K1,R0) = L2 ⊕ F(K1,R0)

Il suffit de calculer F(K2,L2) pour trouver R0 et F(K1,R0) pour trouver L0


M = [L0,R0]

4/4

Vous aimerez peut-être aussi