Ce n'est pas un tool, mais un technique
Bien, tout le monde connait l'analyse fréquentielle en crypto, qui consiste à chercher des occurrences dans un code crypté afin d'en déduire le message caché. Je pense que, même si vous n'êtes pas un familier de la crypto, vous avez déjà entendu parler de cette technique ! Si ce n'est pas le cas, cette brève présentation est faite pour vous.
En effet, chaque langue comporte des redondances de lettres plus ou moins prononcées. Par exemple, en français, nous savons que la lettre "e" est la plus utilisée. Il vous suffit pour cela de compter le nombre de "e" présents dans ce début de présentation.
Total ? 82 (sur un total d'environ ~550 caractères) soit 15% (je n'ai même pas cherché à mettre le plus de "e" possible pour vérifier cette théorie, je vous rassure^^).
Ainsi donc, chaque langue comporte des lettres qui reviennent plus souvent que d'autres. On sait qu'en français, le "z" revient moins souvent que le "a", par exemple. Et c'est sur ce principe que l'on peut tenter de deviner de quelle langue il s'agit, si tant est que l'algo est basé sur les lettre elles-mêmes ; ce qui est de plus en plus rare, pour ne pas dire mort... Cependant, beaucoup de monde ne passe pas forcément par des algo de crypto basés sur des modèles mathématiques complexes. Je vous ai déjà présenté le chiffre de Vigenère, le carré de Polybe (me semble-t-il.. et j'en passe).
En effet, imaginez-vous face à un message crypté tel que celui-ci :
jiehcaeyacqeletaeler
amlakdmpreuleslmilue
Bon, c'est un exemple bidon, mais vous avez saisi le concept. J'alterne une lettre sur deux sur deux lignes.
soit : jaimelhackademyparcequelleestlameilleure
Bon, y'avait pas besoin de vous filer la réponse, vous aviez compris ! Mais là c'est pour l'exemple bidon je vous rassure
Mais, même avec un exemple plus complexe, on peut, grâce à ce procédé extrêmement connu, tenter de deviner la langue usitée (surtout si l'échantillon est grand). Ce qui est primordial. Eh oui, figurez-vous que tout le monde n'écrit pas en français^^ Et, de surcroit, on peut donc "démasquer" via ces occurrences les lettres principales et donc tenter de comprendre l'algo de cryptage.
C'est (je pense) la première chose à connaître en crypto. Pour bon nombre d'entre-vous, cela peut paraître futile du fait que ce procédé soit connu, mais, encore une fois, il en faut pour tous les niveaux (si vous êtes très forts, résolvez mes challenges ).
Bien, rentrons dans le vif du sujet : quel est le %age de "e", de "a", de "i", etc, en français ? Et en anglais ? Et en d'autres langues !
J'y viens mon fils, patience
Français :
e = 17,26%
a = 8,40%
s = 8,08%
i = 7,34%
n = 7,13%
t = 7,07%
[etc]
Vous voyez que le "e" est très largement prépondérant. Ainsi, si en analysant des symboles on voit qu'un symbole revient à une occurrence d'environ 15-20%, le français se cache peut-être dessous ! Après, c'est un peu comme à je ne sais plus quel jeu télé où on trouve des lettres et le reste du message est [blank]. Faut activer vos méninges, jusqu'à comprendre l'algo (souvent "basique" lorsque cette technique fonctionne ; cependant, je peux vous filer des casses-tête chinois rien qu'en vous filant des phrases en français "cryptées" avec des symboles équivalents à des lettres^^ Vous allez moins rigoler déjà^^).
Donc, voici pour les plus connues en français. Ensuite, nous avons :
r, l, u, o
puis
d
et enfin
c, p, m
Les autres (telles que v, g, f ou b) sont plus rares. Et y, z ou x encore plus, évidemment.
Mais il n'y a pas que le français les gars !
Eh oui, on a pas le monopole de la langue^^
Passons à l'anglais (the Englissshhhhh ^^)
Anglais :
e = 12,56%
t = 9,15%
a = 8,08%
o = 7,47%
n = 7,38%
i = 7,24%
Là on constate que c'est un peu plus congestionné, mais on relève tout de même que le "e" reste en avant, mais bien moins qu'en français. On constate que le "t" est à 9,15% contre 7,07% en français, etc.
En allemand ?
(respectons le CCC messieurs^^)
Allemand :
e = 16,92%
n = 10,20%
r = 7,44%
i = 7,42%
Là encore, le "e" est bien devant ! Mais le "n" est à 10,2% contre 7,38% en anglais et 7,13% en français ! Ce qui fait une bonne différence.
En espagnol ?
Espagnol :
e = 13,69%
a = 12,30%
o = 8,68%
i = 7,78%
n = 7,41%
Là encore, le "e" est bien devant, mais il est beaucoup moins prononcé qu'en français (13,69% contre 17,26%) ou qu'en allemand (16,92%).
Bon, allez, un petit dernier ?
Hmm... au hasard, ... le russe
Russe :
o = 10,90%
e = 8,72%
a et i = 7,51% (i = И en russe, mais j'ai mis "i" pour que vous compreniez)
Là on constate direct que le fameux "e" revient bien moins souvent, et que le "o" revient bien plus souvent qu'en français par exemple (10,9% contre 5,26% !).
Bref, je pense que vous avez saisi le concept, pour ceux qui ignoraient cela, il est temps pour vous de vous mettre un peu à la crypto car c'est un peu la "base" de la crypto des temps... anciens
Note : qui dit ancien ne veut pas forcément dire improbable ! En effet, imaginez que vous souhaitez crypter quelques mots à un camarade. Vous n'allez pas utiliser de l'AES^^ Vous allez vous diriger vers ? Vers quelque-chose qui sera traduisible via votre cerveau et non pas via un ordinateur. donc c'est loin de ne plus être d'actualité.
Exemple, je passe le message suivant (au modérateur de TH (The Hackademy) qui se reconnaîtra : silence^^) :
agKo§mZS
ibF&$7vAu
vJsXLM#€N
G£jRpQr%
Avis à ce modo : exclue toi de balancer la réponse, pour toi c'est facile^^
Mais pour vous ??!! Vous qui lisez ces lignes ? L'est-ce ?!!
Je ne pense pas. Même si vous êtes un afficionado de la crypto, vous ne mettrez pas 5mn à comprendre cela Surtout vu la petite taille de l'échantillon. Mais pour "le" modo en question, c'est easy (parce-qu'il le connait, tout comme moi).
Ahhhh, on fait moins l'malin là hein ! Môôôssieur crypto !
Et pourtant... via ce procédé d'analyse fréquentielle et après quelques heures de casse-tête, vous devriez trouver ! (enfin... j'exagère un peu^^ y'a trop peu de lettres pour faire une vraie analyse fréquentielle. S'il y avait eu 1000 mots, oui. 10000, encore mieux. Là..^^ c'est juste pour embêter ceux qui connaissaient déjà l'analyse fréquentielle et qui se disent "oui bon.. j'connais.."
Voilà pour cette brève présentation de l'analyse fréquentielle !
En espérant que ceci fut utile a certains qui ne la connaissaient pas encore (mécréants !)
Commentaire