Crypto 02 : Analyse fréquentielle #
Pour réaliser ce TP, vous devez connaître les méthodes de chiffrement suivantes :
- Chiffre de César
- Chiffre de Vigénère
- Transposition : on prend 1 caractère tous les k caractères et on cycle…
Écrivez une fonction qui lit un fichier et stocke son contenu dans une chaîne de caractères.
Écrivez une fonction qui calcule la fréquence d’apparition des caractères dans une chaîne. Testez et affichez la fréquence de chaque lettre pour un fichier d’exemple que vous aurez confectionné.
Vous trouverez les fréquences d’apparition des lettres en français sur Wikipedia : analyse fréquentielle
Toujours sur Wikipedia, vous trouverez des informations sur l’indice de coïncidence
Complétez votre programme de manière à ouvrir un fichier et réaliser le calcul de l’indice de coïncidence ainsi que l’analyse fréquentielle.
Pour la suite, il vous sera probablement nécessaire de réaliser l’analyse fréquentielle en ne prenant qu’un caractère sur k, la valeur de k étant paramétrable. Réfléchissez à la manière de rajouter simplement ces opérations (de manière à avoir un programme général et à ne pas modifier quelque chose qui marche). Demandez son avis à l’encadrant avant de coder.
Utilisez votre programme pour déchiffrer les cryptogrammes suivants :
QFSZN YXJUF XXFFZ RNQNJ ZINSV ZNJYZ IJXVZ NFZWF NJSYJ YJRTW
YJQQJ XUTZW IJXFR JXRTN SXJSJ WLNVZ JXUZN XQJOT ZWWJU FWZYJ
YFAJH QJOTZ WQTZW FLFSR FWVZF ZSJYJ SIFSH JFXJR TIJWJ WIJXQ
JIJGZ YIJHJ YYJOT ZWSJJ IZANS LYVZF YWJRF WXNQD JZYVZ JQVZJ
XXDRU YTRJX IFUFN XJRJS YFQFZ GJQJX SZFLJ XUQZX AJXNH ZQFNW
JXJYF NJSYW JRTSY JXIFS XQJXM FZYJZ WXIZH NJQJS VZJQV ZJXMJ
ZWJXQ FYWTR GJXJA FXFJY XJWTR UNYQJ AJSYI JQJYF YITZW FLFSU
FXXFF ZLWFS IKWFN XHJXY FINWJ VZJQF ANYJX XJIJY WFSXQ FYNTS
IJXHT ZHMJX FYRTX UMJWN VZJXI NRNSZ FIJRT NYNJH JYFNY JSHTW
JHJVZ JQJXR FWNSX FUUJQ QJSYZ SJGWN XJFYW TNXWN XRFNX QFRJQ
NTWFY NTSIF SXQJY WTZGQ JIJXJ QJRJS YXSJS KZYUF XRTNS XHTSX
NIJWF GQJ
MFASN TYIRV YIVRF ISCHR EKGIS GEMTL AIFFE XECBY
PVRXP RFWAJ BMGER YSVZI NKRRR VIYEC RWPIR QIVEI
SGNKE JQYLZ IVERH ZEIFS DVYES VPSNU RGECY IDLSE
UOGMT IRMLU RGOLI VIKHR EJBVT VQIMR PYLVD YIWNM
SRVXA CBIIC YIFWR XDLAI TRPLE URRCI RGEGR RDRAX
EELVE XNVDR AXDVC VEJBR DZFXI ETYAZ GUUVY UUVFG
AINGT VEISR QIMZR JFRPI SDBRO EPPET BQPIV XQLRP
AVGEI KYIPF VRTZA XEIRW SRAXI CFECY NVNRQ SNTFY
RCNQA THPEV GWAXE SSJRP OLCIA ZQENK VPFZA MTGNV
RVPSN ENMTI RPEJF MGERW QLRZO ZPMCR EECKR VEJEY
NZDYE JDYIC YYTJN RSYRW IKRV
Défi #
En utilisant vos divers programmes, analysez le cryptogramme suivant, contenant 144 symbole: Que pouvez-vous déduire ? Qui a été injustement condamné ?
TVMQVAWIBVBMCMMVMOTQQAILABDA
BZBIKMYBMLMMBDULVWVCLTQCZLQQ
MCUBQMIIZQWVTCQUTMAAULBVOPFB
QMAAAICIKBCRLAKKWIVDJXAQICLW
WTABWTIQBVDIVZLAATMAFKDQVDBI
QMLI