TD-Sécurité Réseaux (AU 2017-2018) 1 (Corrigé du TD) Partie-1 : Cryptologie cla

TD-Sécurité Réseaux (AU 2017-2018) 1 (Corrigé du TD) Partie-1 : Cryptologie classique Exercice-1 : Attaques sur le cryptosystème de Cesar On suppose l’association suivante : Scénario KPA: Ciphrtext = gozih on connait la paire (plaintext,ciphertext)= (P,D) Quel est la clé ? Scénario CPA: Tu peux choisir le plaintext que tu veux et obtenir le ciphertext correspondant. Donner un exemple. Quel est ton choix ? Et quel est donc la clé Scénario CCA: Tu peux choisir le ciphertext que tu veux et obtenir le plaintext correspondant. Donner un exemple. Quel est ton choix ? Et quel est donc la clé ? KPA : k= (D – P) mod 26 = 3 – 15 mod 26= -12 mod 26 = 14 CPA : on choisit le plaintext « A » comme entrée à la machine de cryptage, on obtient comme ciphertext « D » -> donc la clé est (D-A) mod 26= D=3 CCA : on choisit comme ciphertext « A », comme entrée à la machine de décryptage, on obtient S. donc k=(A-S) mod 26 = -S mod 26 = 8 Exercice-2: Playfair Utiliser la lettre spéciale Z pour séparer deux lettres égales. Et ajouter Z s’il reste une lettre individuelle à la fin. On vous demande de Déchiffrer le ciphertext : EJ DJ DJ EJ GA VO IE JY NK YV TI VO ZU TH IS IS TH E W HE AT ST ON E C IP HE R Sécurité TD-1: Cryptographie et Cryptanalyse Proposé par : Mr. Houcemeddine HERMASSI TD-Sécurité Réseaux (AU 2017-2018) 2 Partie-2 : Cryptologie moderne Exercice-1 : ECB On considère un cryptosystème de bloc qui applique une permutation à des vecteurs binaires de taille 4 en mode ECB. La fonction de permutation π est définie comme suit : b4 b3 b2 b1 → bπ(1) bπ(2) bπ(3) bπ(4) On donne l’opération de permutation : Soit le plaintext m : m = 101100010100101 1- Décrire mathématiquement ou avec un pseudo-code le fonctionnement de ECB 1) ci=E(mi) 2- Décomposer le plaintext en bloc de taille approprié. Faire du bourrage avec des zéros pour avoir des bloc de même taille 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- Appliquer le mode ECB lors du chiffrement des blocs du plaintext 3) Les blocks sont chiffrés séparément. On obtient c1=E(m1)=0111 ; c2=E(m2)=0010 ; c3=E(m3)= 1000 ; c4=E(m4)=0101 4- Donner le ciphertext final TD-Sécurité Réseaux (AU 2017-2018) 3 4) D’où le ciphertext final est : C= 0111001010000101 5- Appliquer le déchiffrement et vérifier avec le message original 5) D(0111 0010 1000 0101) = 1011 0001 0100 1010. 6- Considérer un plaintext formé par les mêmes blocs 1010, cette redondance est-elle propagé dans le ciphertext ? 6) Oui la redondance sera propagé ds le ciphertext : E(1010 1010 1010 1010) = 0101 0101 0101 0101 7- Si l’ordre des blocs des ciphertexts est modifié ? le décryptage de chaque bloc est-il possible ? 7) l’ordre des blocs dans ECB n’affecte pas le chiffrement/déchiffrement des blocs 8- Que pensez-vous de la sécurité de ECB et dans quel application est-il approprié ? 8) ECB n’est pas sécurisé. Il est adéquat seulement pour le chiffrement des messages très courts comme les IV ou les clés dans d’autres modes. Exercice-2 : CBC On utilise ma même clé, le même plaintext, la même opération mais en mode CBC. On donne IV=1010 1- Décrire mathématiquement ou avec un pseudo-code le fonctionnement de 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- Décomposer le plaintext en bloc de taille approprié. Faire du bourrage avec des zéros pour avoir des blocs de même taille 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- Appliquer le mode ECB lors du chiffrement des blocs du plaintext TD-Sécurité Réseaux (AU 2017-2018) 4 3) 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 4- Donner le ciphertext final 4) ciphertext final est : c=0010 0110 0100 1101 5- Appliquer le déchiffrement et vérifier avec le message original 5) Décryptage : m1=c0 ⊕ D(c1) =1010 ⊕ D(0010)= 1010 ⊕ 0001 = 1011 m2=c1 ⊕ D(c2) =0010 ⊕ D(0110)= 0010 ⊕ 0011 = 0001 m3=c2 ⊕ D(c3) =0110 ⊕ D(0100)= 0110 ⊕ 0010 = 0100 m4=c3 ⊕ D(c4) =0100 ⊕ D(1101)= 0100 ⊕ 1110 = 1010 m = 1011 0001 0100 1010 6- Considérer un plaintext formé par les mêmes blocs 1011, cette redondance est-elle propagé dans le ciphertext ? 6) La redondance ne sera pas propagée : E(1011 1011 1011 1011) = 0010 0011 0001 0101 7- Si l’ordre des blocs des ciphertexts est modifié ? Le décryptage de chaque bloc est-il possible ? 7)si l’odre de blocs de ciphertext change ou les blocs de ciphertext sont remplacés par d’autres, alors le décryptage devient impossible. Ceci est un avantage de CBC par rapport ECB 8- Que pensez-vous de la sécurité de CBC et dans quelle application est-il approprié ? 8) sécurité améliorée parce que plus de confusion ! 9- Si une erreur se passe dans le premier bloc du ciphertext. Etudier la propagation d’erreur sur le décryptage (dire quels sont les blocs affectés et les blocs intacts du plaintext). 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- Dire quelle application CBC est approprié 10) CBC peut être approprié pour le chiffrement de long messages. Exercice-3 : CFB Dans CFB, on a besoin d’un IV et aussi un entier r avec 1 ≤ r ≤ n. le plaintext sera décomposé en blocs de r. Et Initialisation d’I1= IV TD-Sécurité Réseaux (AU 2017-2018) 5 Refaire l’exercice avec la même opération de permutation E, même plaintext et même IV, on donne aussi r =3. 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 décryptage 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 TD-Sécurité Réseaux (AU 2017-2018) 6 9) 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 récepteur utilise la clé publique aussi dans l’opération E comme l’émetteur. 10) 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 simultanément. Alice genere le ciphertext c1 = m1 ⊕ t1 et l’envoie à Bob. Le calcul de c1 sera rapide puisque il est fait par un simple XOR. Alors Alice et Bob peuvent simultanément calculer le bloc t2, etc. CFB est donc approprié pour les longs messages mais il est plus rapide que CBC. Exercice-4 : OFB OFB est très similaire à CFB Refaire l’exercice avec les mêmes Plaintext, clé, IV, r que CFB. Analyser la propagation d’erreur, la sécurité de OFB et sa rapidité. 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 décryptage est le même, seulement la troisième étape est remplacé par mj=cj ⊕ tj 2) Si un bit du ciphertext est reçu erroné alors le plaintext sera erroné exactement dans la même position. Donc il n ya pas de propagation d’erreur. 3) le bloc tj dépend seulement du vecteur d’initialisation 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 problème est que le chiffrement d’un bloc de plaintext dans OFB ne depend pas des blocs précédents mais seulement par sa position (ordre). Pour cela la manipulation du uploads/Ingenierie_Lourd/ corrige-travaux-diriges1-securite 1 .pdf

  • 18
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager