No description
- Python 100%
| aes_cbc.py | ||
| aes_ecb.py | ||
| pinguin.py | ||
| README.md | ||
| tux.bmp | ||
| tux_cbc.bmp | ||
| tux_ecb.bmp | ||
TD2 — AES en pratique
Exercices sur papier
Exercice 1 — Conversions
- Reponses sous-partie A (decimal → hex et hex → decimal) : Décimal -> Hex: 65 -> 41 200 -> C8 255 -> FF 16 -> 10 Hex -> Décimal: 4A -> 76 FF -> 255 1F -> 31 B0 -> 176
- Reponses sous-partie B (encodage ASCII de AES, Crypto, Hello!) : AES -> 41 45 53 Crypto -> 43 72 79 70 74 6F Hello! -> 48 65 6C 6C 6F 21
- Reponses sous-partie C (XOR octets) : FF XOR 0F -> F0 A5 XOR A5 -> 00 41 XOR 20 -> 61 42 XOR 0F -> 4D
Exercice 2 — Round AES
- Matrice d'etat initiale : Ligne 1: 42 4F 4C 41 Ligne 2: 4F 55 45 4D Ligne 3: 4E 52 53 49 Ligne 4: 4A 20 20 53
- Apres AddRoundKey : Ligne 1: 4D 40 43 4E Ligne 2: 40 5A 4A 42 Ligne 3: 41 5D 5C 46 Ligne 4: 45 2F 2F 5C
- Apres SubBytes : Ligne 1: E3 09 1A 2F Ligne 2: 09 BE D6 2C Ligne 3: 83 4C 4A 5A Ligne 4: 6E 15 15 4A
- Apres ShiftRows : Ligne 1: E3 09 1A 2F Ligne 2: BE D6 2C 09 Ligne 3: 4A 5A 83 4C Ligne 4: 4A 6E 15 15
- Reflexion sur les 10 rounds : La multiplication de matrice affecte plusieurs valeurs à la fois. Si un bit est changé, cette multiplication va changer le résultat pour au moins 4 bits avec un seul round. Après 10 rounds, ce changement de bit se manifeste sur toute la matrice (c'est une matrice complètement différente)
Exercice 3 — Padding PKCS7
- Tableau des paddings : TM : Taille du message TP : Taille du padding HX : Valeurs des bits de padding en hex
TM TP HX 13 3 03 5 11 0B 1 15 0E 16 16 0F 31 1 0A
- Messages originaux Q2: a) Hello b) Test!!!!!!!!
- Pourquoi padder un message multiple de 16 ? : Pour être sur qu'il y a un padding et que le message n'est pas transformé
Exercice 4 — ECB et salaire de Jane
- Salaire de Jane = candidat n°3
- Justification (proprietes ECB) : ECB chiffre de la même façon les strings qui sont identiques. On reconnait une partie du string du candidat 3 qui correspond au salaire de Jack, nous pouvons déduire que ces deux strings sont composées des mêmes caractères et donne un indice sur le salaire de Jane.
- Pourquoi ECB est deplorable pour les images : Les images sont parfois composés de blocs de pixels uniforme. Avec ECB, ces blocs sont chiffrés de la même façon, nous pouvons donc observer un pattern dans le message chiffré.
Exercice 5 — CBC a la main
- Chiffrement (C1 C2 C3 C4) : C7 75 EC 38
- Dechiffrement : A1 B2 C3 D4
- Reflexion IV : a) Elle produit deux chiffres différents. b) Le premier bloc sera donc chiffré de la même façon et peux révéler un pattern dans le chiffre. c) Chaque bloc dépend du bloc précédent, donc un bloc de bits uniforme ne génerera pas de pattern, contrairement à ECB.
Exercice 6 — Attaque XOR
- Cle Q1 : 20 -> " " (espace)
- Dechiffrement Q2 : WORLD
- Cle Q3 et message dechiffre : Clé : 41 42 43 -> ABC Message clair : Bonjour Alice
- Discussion XOR vs OTP : a) Si on connait une partie du message, on peux tout décoder car XOR est un chiffrement symétrique. b) L'OTP rend le message chiffrable seulement par force brute.
Exercices Python
Partie 7 — ECB et blocs identiques
- Les deux blocs chiffres sont-ils identiques ? Oui
- Qu'est-ce que cela implique pour la securite ? (2-3 phrases) On peut observer des patterns ce qui rend le moyen d'encryption vulnérable
Partie 8 — Effet pingouin
Je n'ai pas trouvé d'image type donc j'en ai trouvé un pour moi
- Decrire ce qu'on voit sur tux_ecb.bmp : On voit la structure générale de l'image, on peut toujours discerner le ciel de la montagne (cela montre un pattern)
- Decrire ce qu'on voit sur tux_cbc.bmp : On voit des pixels qui semblent aléatoires, aucun pattern peut être distingué.
- Expliquer pourquoi ECB revele des informations : Comme un même bloc est chiffré de la même façon, nous pouvons déduire des informations avec le message chiffré ce qui enfreint la notion de confidentialité.
- Expliquer pourquoi CBC ne le fait pas : Un même bloc n'est pas chiffré de la même façon, donc il est quasiment impossible de déduire des informations avec le message chiffré.
Partie 9 — CBC et blocs identiques
- Les deux blocs chiffres sont-ils identiques en CBC ? Non
- Comparaison avec ECB : Aucun pattern distingué, le mode CBC est bien plus robuste que ECB
Difficultes rencontrees
Je n'ai pas réussi à faire déchiffrer les blocs pour les deux modes ECB et CBC