Voici quelques textes de la litérature Française ou anglaise qui ont été chiffrés dans l'archive ci-jointe (SHA1 : 0ce164a06e163f382d48eeec43c6bbedd132fd44).
A vous d'écrire les programmes informatiques permettant de les déchiffrer, de trouver le titre ainsi que l'auteur...
Pour simplifier le codage, les textes originaux ont été transformés de la façon suivante :
Tous les caractères sont en MAJUSCULE, sans ponctuation ni espace.
La phrase :
"La cryptanalyse est la science qui consiste à tenter de déchiffrer un message ayant été chiffré, sans posséder la clé de chiffrement."
Se transforme alors en :
LACRYPTANALYSEESTLASCIENCEQUICONSISTEATENTERDEDECHIFFRERUNMESSAGE AYANTETECHIFFRESANSPOSSEDERLACLEDECHIFFREMENT
Il y a 4 méthodes de chiffrement à "casser" :
Pour le chiffre à décalage :
Trouver le décalage.
Pour le chiffre de Vigenère :
Trouver la clé.
Pour le chiffre à substitution monoalphabétique :
Trouver les valeurs de a et b. En codant le A par 0, le B par 1, ..., le Z par 25 La formule de chiffrement est la suivante : c = a.x + b (mod 26) Par exemple si a=3 et b=2 : Le texte AEIOUY devient COASKW : A : x=0 => c=3.0+2=2 -> C E : x=4 => c=3.4+2=14 -> O I : x=8 => c=3.8+2=26=0 -> A O : x=14 => c=3.14+2=44=18 -> S U : x=20 => c=3.20+2=62=10 -> K Y : x=24 => c=3.24+2=74=22 -> W Pour déchiffrer, la formule est d = a-1*(c-b) (mod 26) Sachant que 3.9=27=1 (mod 26), a-1 est égal à 9 pour notre exemple donc : C : c=2 => d=9.(2-2)=0 -> A O: c=14 => d=9.(14-2)=108=4 -> E A : c=0 => d=9.(0-2)=-18=8 -> I S : c=18 => d=9.(18-2)=144=14 -> O K : c=10 => d=9.(10-2)=72=20 -> U W : c=22 => d=9.(22-2)=180=24 -> Y
Pour le chiffre à substitution polyalphabétique :
Trouver le décalage. Le chiffrement est un chiffrement à décalage qui tient compte de la position de la lettre dans la phrase. La formule de chiffrement est la suivante : c = x + n + i (mod 26) n est le décalage et i la position de la lettre. Avec un décalage de 3, le texte ABCABC devient DFHGIK A : x=0 => c=0+3+0=3 -> D B : x=1 => c=1+3+1=5 -> F C : x=2 => c=2+3+2=7 -> H A : x=0 => c=0+3+3=6 -> G B : x=1 => c=1+3+4=8 -> I C : x=2 => c=2+3+5=10 -> K Pour déchiffrer, la formule est d = c - n - i (mod 26) D : c=3 => d=3-3-0=0 -> A F : c=5 => d=5-3-1=1 -> B H : c=7 => d=7-3-2=2 -> C G : c=6 => d=6-3-3=0 -> A I : c=8 => d=8-3-4=1 -> B K : c=10 => d=10-3-5=2 -> C