No description
- Python 100%
| .vscode | ||
| messages | ||
| cesar.py | ||
| force_brute.py | ||
| freq.py | ||
| README.md | ||
| vigenere.py | ||
TD1 — Cryptographie classique
Exercices sur papier
Exercice 1 — Cesar
-
- Message chiffre (K=5) : QF WJSHTSYWJ JXY UWJAZJ F QF HFKJYJWNF
-
- Message dechiffre (RGNEIDVGPEWXTRAPHHXFJT) : CRYPTOGRAPHIECLASSIQUE, cle = 15
-
- Cle trouvee : 16, debut du message clair : L ISEN EST UNE SUPER ECOLE D INGENIEUR
Exercice 2 — Substitution
-
- Message chiffre : BX CHSYFSMCH HVM LCHEUH X BX YXPHMHCZX
-
- YHVMQUVMH dechiffre : CESTJUSTE. Peut-on le casser sans la cle ? Pas de facon certaine sur un message si court car l'analyse frequentielle n'est pas statistiquement representative.
Exercice 3 — Vigenere (papier)
-
- Message chiffre (cle POULE) : AO LPRRCHEVT SME TGSPFI P ZU NEUSNPVXO
-
- BAUNBEKLZLQSKQKEBGCJYHVSKR dechiffre (cle TNCY) : INSPIRINGYOURDIGITALFUTURE
Exercice 4 — Chiffrement affine
-
- Verification S -> J : 3 * 18 + 7 = 61. 61 mod 26 = 9, ce qui correspond a la lettre J (index 9).
-
- SECRET code : JTNGTM
-
- Demonstration : L'inverse de 3 modulo 26 est 9 car 3 * 9 = 27 = 1 mod 26.
-
- KGHSX dechiffre : BRAVO
Exercice 5 — Chiffrement affine (generalisation)
-
- Demonstration (a premier avec 26) : Si a n'est pas premier avec 26, plusieurs lettres auront le meme chiffre (collision), rendant le dechiffrement impossible.
- 2a. Existence de u : au = 1 mod 26 (theoreme de Bezout).
- 2b. Fonction de decodage : x = u(y - b) mod 26
- 2c. ZSPS decode (cle 15;2) : FINI
Exercice 6 — Hill
- Partie A : INDICE chiffre = DVUBYO, DVUBYO dechiffre = INDICE, YOWPEE dechiffre = CERISE
- Partie B : INDICE chiffre = HTPQMK, produit MA = 17I, explication cle B = B n'est pas l'inverse directe car le produit donne 17I au lieu de I, verification C = 23M : HTPQMK -> INDICE
Exercice 7 — ADFGVX
-
- ATTAQUE chiffre : DDFADDDADXFDAG
-
- ADFFGFFGFFAFDXAXGGDGFGADVA dechiffre : CYBERSECURITE
-
- Pourquoi A, D, F, G, V, X ? Ce sont des lettres dont les signaux Morse sont tres differents les uns des autres, limitant les erreurs de transmission radio.
-
- Interet de la double etape : La substitution masque les symboles initiaux et la transposition casse les regularites de structure du texte original.
Exercices Python
Force brute
- Message francais : cle = 7, message clair : EN REALITE JULES CESAR FUT ASSASSINE LE 15 MARS...
- Message anglais : cle = 12, message clair : THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Analyse frequentielle
- Message francais : cle devinee = 7, correcte ? Oui
- Message anglais : cle devinee = 12, correcte ? Oui
- Observations : L'analyse a fonctionne car les textes etaient suffisamment longs. Sur un texte court, si le E n'est pas la lettre la plus frequente, l'analyse automatique echoue.
Vigenere
- Cle trouvee : PYTHON
- Methode utilisee : Decoupage du texte selon la longueur de la cle, puis application de l'analyse frequentielle de Cesar sur chaque sous-groupe.
Difficultes rencontrees
Ma difficulté principale rencontré est la partie programmation car je n'ai jamais fait de python. Je devais donc a la fois comprendre les concepts de la cryptographie et ceux de python en meme temps.
Sur la partie theorique, les calculs modulaires (notamment pour trouver l inverse de a dans le chiffrement affine) et la manipulation des matrices pour le chiffre de Hill m'ont été difficile a cause des erreurs de calculs.