Vous êtes sur la page 1sur 7

TD ASR 1ème ASR à ENSIT

Correction du TD sécurité réseau : ASR

Correction Exercice 1: ECB


1) ci=E(mi)
2) bourrage avec un seul 0 pour avoir des blocs de taille n=4.
m = 1011 0001 0100 1010
m1 = 1011 ; m2= 0001 ; m3 = 0100 ; m4 = 1010

3) Les blocks sont chiffrés separemment. On obtient c1=E(m1)=0111 ; c2=E(m2)=0010 ;


c3=E(m3)= 1000 ; c4=E(m4)=0101

4) D’où le ciphertext final est :


C= 0111001010000101

5) D(0111 0010 1000 0101) = 1011 0001 0100 1010.

6) Oui la redondance sera propagé ds le ciphertext :


E(1010 1010 1010 1010) = 0101 0101 0101 0101

7) l’ordre des blocs dans ECB n’affecte pas le chiffrement/déhiffrement des blocs

8) ECB n’est pas securisé. Il est adéquat seulement pour le chiffrment des messages tres
courts comme les IV ou les clés dans d’autres modes.

Correction Exercice 2 : CBC


1)
Cryptage :
C0= IV ; cj=E(cj-1 ⊕ mj) pour 1 ≤ j ≤ t

Décryptage :
C0= IV ; mj= cj-1 ⊕ D(cj) pour 1 ≤ j ≤ t

2) c0=1010 ;
c1=E(c0 ⊕ m1)=E(0001) = 0010
c2=E(c1 ⊕ m2)=E(0011) = 0110
c3=E(c2 ⊕ m3)=E(0010) = 0100
c4=E(c3 ⊕ m4)=E(1110) = 1101

3) ciphertext final est :


c=0010 0110 0100 1101

4) Decryptage :
m1=c0 ⊕ D(c1) =1010 ⊕ D(0010)= 1010 ⊕ 0001 = 1011
m2=c1 ⊕ D(c2) =0010 ⊕ D(0110)= 0010 ⊕ 0011 = 0001

R. Rhouma 1
TD ASR 1ème ASR à ENSIT

m3=c2 ⊕ D(c3) =0110 ⊕ D(0100)= 0110 ⊕ 0010 = 0100


m4=c3 ⊕ D(c4) =0100 ⊕ D(1101)= 0100 ⊕ 1110 = 1010

5) m = 1011 0001 0100 1010

6) La redoandance ne sera pas propagée :


E(1011 1011 1011 1011) = 0010 0011 0001 0101

7) si l’odre de blocs de ciphertext change ou les blocs de ciphertext sont remplacés par
d’autres, alors le decryptage devient impossible. Ceci est un avantage de CBC par rapport
ECB

8) securité amelioré parceque plus de confusion !

9) la propagation d’erreur :
mj estcalculé par cj et cj-1. pour cela si cj a été reçu erroné, alors les plaintext mj et mj+1
peuvent être erronés. Mais les blocs mj+2 et mj+3, … ne seront pas influsencés, ils seront
corrects.

10) CBC peut être approprié pour le chiffrement de long messages.

Correction Exercice 3: CFB


1)
Pour 1 ≤ j ≤ u, alice fait le suivant
- Oj=E(Ij) ;
- Extraire tj qui est les r premiers bits de Oj ;
- cj=mj ⊕ tj
- Ij+1 = (2r Ij + cj ) mod 2n. donc Ij+1 est généré en supprimant les premiers r bits de Ij et
en ajoutant cj.
- Le ciphertext sera donc c= c1c2c3…cu

Le decryptage est similaire :

Pour 1 ≤ j ≤ u, bob fait le suivant


- Oj=E(Ij) ;
- Extraire tj qui est les r premiers bits de Oj ;
- mj = cj ⊕ tj
- Ij+1 = (2r Ij + cj ) mod 2n. donc Ij+1 est généré en supprimant les premiers r bits de Ij et
en ajoutant cj.
- Le plaintext sera donc m = m1m2m3…mu

2)
m1= 101 ; m2=100 ; m3= 010 ; m4= 100 ; m5=101

R. Rhouma 2
TD ASR 1ème ASR à ENSIT

3) il ya propagation d’erreur aussi dans CFB puisque la partie erroné du ciphertext se trouve
dans Ij. Il faut noter aussi que CFB ne peut être fonctionnel dans les cryptosystèmes à clé
publique comme RSA puisque le recepteur utilise la clé publique aussi dans l’operation E
comme l’emetteur.

1) Alice et Bob peuvent calculer tj+1 dès qu’ils connaissent le bloc cj. Pour cela le bloc t1
peut être calculé par Alice et Bob simultannément. Alice genere le ciphertext c1 = m1
⊕ t1 et l’envoye à Bob. Le calcul de c1 sera rapide puisque il est fait par un simple
XOR. Alors Alice et Bob peuvent simultannément calculer le bloc t2, etc. CFB est
donc approprié pour les longs messages mais il est plus rapide que CBC.

Correction Exercice 4: OFB


1)
Pour 1 ≤ j ≤ u, Alice fait le suivant
- Oj=E(Ij) ;
- Extraire tj qui est les r premiers bits de Oj ;
- cj=mj ⊕ tj
- Ij+1 = Oj.
- Le ciphertext sera donc c= c1c2c3…cu

Le decryptage est le meme, seulement la troisieme etape est remplacé par mj=cj ⊕ tj

2) Si un bit du ciphertext est reçu erroné alors le plaintext sera erroné exactement dans la
meme position. Donc il n ya pas de propagation d’erreur.

3) le bloc tj depend seulement du vecteur dinitialisation I1 et de la clé k. il peut donc être


calculé par Alice et bob simultanément. Ceci est plus rapide que CFB. Mais le probleme est
que le chiffrement d’un bloc de plaintext dans OFB ne depend pas des blocs precedents mais
seulement par sa position (ordre). Pour cela la manipulation du ciphertext par un intrus est
beaucoup plus facile en OFB qu’en CFB.

m1= 101 ; m2=100 ; m3= 010 ; m4= 100 ; m5=101

R. Rhouma 3
TD ASR 1ème ASR à ENSIT

- Si la meme clé est reutilisé pour le chiffrement de deux plaintexts, alors l’IV doit
changer. Sinon, la meme sequence tj est regenerée et à partir de deux ciphertexts cj=mj
⊕ tj et c’j=m’j ⊕ tj , l’intrus peut constater que cj ⊕ c’j =mj ⊕ m’j. Et donc il peut
determiner m’j s’il connaît mj.

Correction Exercice 5 : une ronde DES


Le codage binaire de P=0123456789ABCDEF

Apres IP on obtient

Donc

R. Rhouma 4
TD ASR 1ème ASR à ENSIT

L’ecriture binaire de la clé K= 133457799BBCDFF1

On calcule la première clé intermediaire :

Et donc

En utilisant cette clé on a

Et finalement

Correction Exercice 6 : RSA


1)
n = p*q= 253
Phi(n) = (p – 1)(q – 1 ) = 10 * 22 = 220
e=3 (e =2 a rejeter puique gcd(2,220) =2 ; e=1 n’est clairement pas un bon choix )
cherher d tel que d =e-1 mod phi(n) = 3-1 mod 220
pour cela on applique l’alg d’euclide etendu :
220 = 3 * 73 + 1

R. Rhouma 5
TD ASR 1ème ASR à ENSIT

1 = 220 – 3 *73
-73 = 3-1 mod 220 = 147 mod 220
Donc d =147

ln 253
2) on a n=253, la taille de bloc du plaintext k = E[log4 253] = = 3.
ln 4
3) la taile maximale d’un bloc du ciphertext sera donc k +1 = 4
4) le message abb correspond à 122 d’apres le tableau. 122 correspond au nombre :
1* 42 + 2 * 41 + 2*40 = 26
Donc P =26. le chiffrement de P est donné par C = Pe mod n = 263 mod 253 = 119
Le nombre 119 correspond à :
119 = 1 * 43 + 3 * 42 + 1* 41 + 3*40
Donc le nombre decimal 119 correspond au nombre dans la base 4 : 1313 qui correspond au
message «acac ».

5) le dechiffrement se fait comme suit :


le ciphertext acac correspond à 1313 ds la base 4 qui correspond au nombre :
1 * 43 + 3 * 42 + 1* 41 + 3*40 = 119

M = Cd mod n = 119147 mod 253 = ?


Exponentiation rapide, on a 147 = 128 + 16 + 2 +1 = (10010011)2

I 7 6 5 4 3 2 1 0
bi 1 0 0 1 0 0 1 1
Exp 1 2 4 9 18 36 73 147
Res 119 246 49 82 146 64 146 26

Donc le plaintext en decimal c’est 26 qui s’ecrit en base 4 sous la forme :


26 = 1* 42 + 2* 41 + 2 *40
Donc 26 = (122)4 qui correspond d’apres le tableau au plaintext « abb »

Correction Exercice 7 : Diffie Hellman


- Alice calcule A = ga mod p = 37 mod 17 = 11 et envoye A à Bob
- Bob calcule B = gb mod p = 34 mod 17 = 13 et envoye B à Alice
- Alice calcule la clé secrete par K = Ba mod p = 137 mod 17 = 4
- Bob calcule la clé secrete K par K = Ab mod p = 114 mod 17 = 4

Correction Exercice 8 : Elgamal


1) Alice calcule A=ga mod p = 76 mod 23 = 4. la clé publique est donc
(p=23, g=7, A=4)
2) bob choisit k=3 et calcule
K= Ak mod p = 43 mod 23 = 18
C1=gk mod p = 73 mod 23 = 21
et C2= K*m mod p = 18 * 7 mod 23 = 11
le ciphertext est donc C= (C1, C2)=(21, 11)

3) Alice utilise sa clé privée pour dechiffrer en calculant


K=C1a mod p = 216 mod 23 = 18

R. Rhouma 6
TD ASR 1ème ASR à ENSIT

m= C2* K-1 mod p = 11 * 9 mod 23 = 7

Correction Exercice 9 : Hash


1) H(01101) = 1
2) H(msg de 1 pair) = 0 et H(msg 1 impaire) = 1
3) 111 et 100
4) H est une fonction à sens unique. Les autres proprétés ne sont pas verifiés ( strong and
weak collision)

R. Rhouma 7