Cryptographie 02 (analyse fréquentielle)

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