Vote utilisateur: 5 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles actives
 

L'analyse fréquentielle
ou analyse de fréquences, est une méthode de cryptanalyse qui consiste à examiner la fréquence des lettres employées dans un message chiffré par une méthode de substitution mono alphabétique (i.e. une lettre correspond à une seule autre).

Cette méthode est fréquemment utilisée pour décoder des messages chiffrés par substitution, dont un exemple très simple est le chiffre de César.

Histoire de l'analyse fréquentielle


Au 9ème siècle de notre ère, le philosophe et scientifique arabe Al-Kindi (801 à Kufa - 873, Irak) fait la plus ancienne description de l'analyse fréquentielle.

Cette méthode de cryptanalyse fut probablement utilisée pour décrypter les documents administratifs et économiques de la dynastie abbasside mais aussi pour reconstituer la chronologie des révélations du Coran.

Il expose les fondements de cette méthode dans son traité "Manuscrit sur le déchiffrement des messages cryptographiques".

Ce fabuleux document n'est retrouvé qu'en 1987 dans les archives ottomanes d'İstanbul. Il présente la technique d'analyse fréquentielle des lettres du texte chiffré et expose la méthode de décryptage par analyse fréquentielle.

La Méthode d'analyse fréquentielle


La méthode d'analyse fréquentielle consiste

  1. À relever les occurrences d'apparition des lettres dans le message.

  2. Ensuite il suffit de procéder par correspondance,
    si la lettre la plus fréquente dans le texte chiffré est le W, on va associer cette lettre à celle la plus fréquente dans la langue du texte codée.
    Par exemple à la lettre E, qui est la plus fréquente en français, anglais, allemand, italien et espagnol.

Pour être efficace il faut donc : 

  • Que le message à décoder soit suffisamment long,
  • Il faut aussi connaître :
    • le style utilisé (un message militaire ou une poésie sont de nature différente).
    • Le niveau de langue de l'auteur.
    • La langue utilisée car les fréquences diffèrent selon les idiomes.
       

Tableaux des Fréquences


Les tableaux de données sont sujets à de nombreuses critiques mais, intuitivement, plus le texte utilisé pour mesurer les fréquences est long, mieux c'est.
Tout le problème est donc de choisir le bon corpus pour établir le tableau de fréquences.
Notons qu'analyser les mots présents dans un dictionnaire ne suffit pas. La fréquence des lettres dans un texte diffère de celle de la liste des mots d'un dictionnaire.
En effet, très peu de mots apparaissent au pluriel dans un dictionnaire, et donc la lettre S y est moins fréquente que dans un texte.
De plus, les lettres accentuées à et ù sont d'usage fréquent (à, où), ce qui contribue à en modifier la fréquence relative de ces lettres.

Le corpus de textes littéraires disponible sur le Net (par exemple sur le site de l'Association des bibliophiles universels (ABU)) permet  de se calculer rapidement les fréquences des lettres chez l'auteur de son choix.

Les données varient donc selon les corpus utilisé mais en général, l'ordre des lettres (c'est ce qui importe) est sensiblement le même.

Voici un tableau synoptique.

Lettre Français Anglais Allemand Espagnol Portugais Italien
a 7.636% 8.167%  6.51% 12.53% 14.63% 11.74%
b 0.901% 1.492%  1.89% 1.42% 1.04% 0.92%
c 3.260% 2.782% 3.06% 4.68% 3.88% 4.5%
d 3.669%  4.253% 5.08% 5.86% 4.99% 3.73%
e 14.715%  12.702% 17.40% 13.68% 12.57% 11.79%
f 1.066% 2.228%  1.66% 0.69% 1.02% 0.95%
g 0.866% 2.015%  3.01% 1.01% 1.30% 1.64%
h 0.737% 6.094%  4.76% 0.70% 1.28% 1.54%
i 7.529% 6.966%  7.55% 6.25% 6.18% 11.28%
j 0.545% 0.153%  0.27% 0.44% 0.40% 0.00%
k 0.049% 0.772%  1.21% 0.01% 0.02% 0.00%
l 5.456% 4.025%  3.44% 4.97% 2.78% 6.51%
m 2.968% 2.406%  2.53% 3.15% 4.74% 2.51%
n 7.095% 6.749%  9.78% 6.71% 5.05% 6.88%
o 5.378%  7.507% 2.51% 8.68% 10.73% 9.83%
p 3.021% 1.929%  0.79% 2.51% 2.52% 3.05%
q 1.362%  0.095% 0.02% 0.88% 1.20% 0.51%
r 6.553% 5.987%  7.00% 6.87% 6.53% 6.37%
s 7.948% 6.327%  7.27% 7.98% 7.81% 4.98%
t 7.244%  9.056% 6.15% 4.63% 4.74% 5.62%
u 6.311%  2.758% 4.35% 3.93% 4.63% 3.01%
v 1.628% 0.978%  0.67% 0.90% 1.67% 2.10%
w 0.114% 2.360%  1.89% 0.02% 0.01% 0.00%
x 0.387% 0.150%  0.03% 0.22% 0.21% 0.00%
y 0.308% 1.974%  0.04% 0.90% 0.01% 0.00%
z 0.136% 0.074%  1.13% 0.52% 0.47% 0.49%
à 0.486%  0 0 0 see a see a
œ 0.018%  0 0 0 0 0
ç 0.085%  0 0 0 see c 0
è 0.271%  0 0 0 0 see e
é 1.904%  0 0 0 see e see e
ê 0.225%  0 0 0 see e 0
ë 0.001%  0 0 0 0 0
î 0.045%  0 0 0 0 0
ï 0.005%  0 0 0 0 0
ñ 0  0 0 0.31% 0 0
ß 0  0 0.31% 0 0 0
ù 0.058%  0 0 0 0 see u

Source : http://en.wikipedia.org/wiki/Letter_frequency.

Liste des 5 premières lettres en fréquence. 
Si le message est écrit en majuscule, l'ordre change car on va réunir par exemple les fréquences du a et du à.

Français e (14,7%) s (7,9%) a (7,6%) i (7,5%) t (7,2%)
Anglais e (12,7%) t (9%) a (8,2%) o (7,5%) i (7%)
Espagnol e a o s r
Allemand e n i s r
Italien e a i o n
Portugais a e i s r

 

Compléments.


  1. Exemple d'analyse fréquentielle au 19ème siècle : EMILE ZOLA (1840 - 1902) GERMINAL (1885).

  2. Le site de Brian Kelk (http://www.bckelk.ukfsn.org/words/etaoin.html) présente des résultats pour de nombreux langages en précisant le corpus utilisé.

On obtient :

  • En Anglais
      • David Copperfield etaoinhsrdlmuwycfgpbvkxjqz
      • Pride and Prejudice etaoinhsrdlumcywfgbpvkzjxq
      • Wuthering Heights etaonihsrdlumcyfwgpbvkxjqz
      • Vanity Fair etaonhsirdlumcwfgypbvkjqxz
      • Gulliver's Travels etoainshrdlmucfwygpbvkxjqz
      • Alice in Wonderland etaoihnsrdluwgcymfpbkvqxjz

    • Inaugural speeches : 
      • Reagan etonarishdlumwcfgpybvkjxzq
      • Obama etoanrsihdlucwfmgypbvkjqxz
      • British National Corpus etaoinsrhldcumfpgwybvkxjqz (90 million words of UK English)
      • Brown corpus etaoinsrhldcumfpgwybvkxjqz (one million words of US English)
      • Linotype keyboard

e s c v x
t h m b z
a r f g fi
o d w k fl
i l y q ff
n u p j ffi

  • French :
      • esaitnrulodmcpv e' qfgbhj a' x e' y e^ z c, o^

        u' a^ u^ i^ oe k w i" e" u" ae n~
        (novels, 500000 words; Engwall 1984)

      • esaitnrulodcmp e' vqfbghj a' x e' y e^ z a^ c, i^ u' o^ u^ i" k e" w
        (TLF, 70 million words; Brunet 1981) 
  • Modern Greek :
    aoietsnEurpkmlOdg ch th ph v x z ps
    (Hellenic National Corpus, 33 million words)

  • Norwegian : erntsilakodgmvfupbh o/ j y aa ae c w z x (q)
    (newspapers, one million words; Heggstad 1982)

  • Swedish : eantrsildomkgv a" fhup aa o" bcyjxwz e' q ...
    (newspapers, one million words; Allen 1970)

  • Icelandic : anriestu dh lgmkfhvo a' th i' d j o' b y ae u'
    o" p e' y' c x w z q
    (500000 words; Magnusson, Briem 1991)

  • Hungarian : eatlnskomzrig a' e' ydbvhj o: f u p o" o' c u:i' u' u" x w (q)
    (fiction, 500000 words; Furedi, Kelemen 1989)

  • Slovak : aoesnitrvlkdmcupzyhjgfb (qwx)
    (disregarding diacritics; 200000 words; Mistrik 1985)

  • Also, but sometimes from limited samples:
    Spanish : aeosrnlidtucmpbhy i' gvq o' jfz e' a' n~ x u' k (w)  (novel, 44000 words)
    aeosrnlidutcpmvgbfyhq o' j i' a' z n~ e' x u' k w (news, 1700 words)

  • Polish : iaeoznscrwymtdpk l/ ujlg e, b a, h z. s' o' c' n' f z' vqx (novel, 80000 words)
    aieonzwscrytkdpmjul l/ g b h a, e, o' z. s' c' n' f z' x v (q) (news, 11000 words)

  • Finnish : aintesl a" koumhrvpjyd o" gfbcx (qwz) (novel, 31000 words)
    enatrsildokgmvf aa uph a" cb o" jyxzw (q) (news, 1300 words)

  • Portuguese : aeosrinmdutlcphvqgfb a~ z c, j a' e' x o' o~ e^ o^a' y i' e' u' o' (kw) (novel, 27000 words)
    aeosridntmucplvgfbhq a~ c, a' e' i' z j o' e^ x  a' o~ y u' k a^ o^ w (news, 4500 words)

  • Dutch : enairtodsglhkmvjzwupbcf e' y o' x c, e" i" q u" e' o^ o" (novel, 42000 words)
    enatriodslghvkmwubpjczfyx e" e' o' (q) (news, 2900 words)

  • Esperanto : iaeonslrtkmjudpvgfb g^ c^ u~ c s^ h z j^ w y x (q) (Robinsono Kruso, 21000 words)
    aieonslrtkjudmpvgfb s^ g^ c u~ c^ z h j^ (qwxy) (5600 words)

  • Czech : eonatvs i' ilmdhcujrkzp a' y e^ b s^ z^ e' r^ y' c^u. n^ u' g t' f o' x d' (qw) (14000 words)
    oeantivlsrdkup i' m c h a' z y j b r^ e^ e' c^z^ y' s^ u~ g f u' n^ w d' o' x t' (q) (news, 2500 words)

  • Danish : enadtrslgiohmkvufbp o/ ae jyc e' xqw e' z u" a' o' e^ c, aa e" a" (novel, 52000 words)
    erntdasilgomkvfhubp aa ae j o/ y c w z... x ... q (14000 words)

  • Hawaiian : a i k o ' e n u h l m a^ p o^ w e^ u^ i^ (bcdfgjqrstvxyz) (12000 words)

  • Maori : aiketonuhrmwgp (bcdfjlqsvxyz) (2000 words)

  • Class. Greek : aeiontsu e^ kprml o^ d th g ch ph x b z ps (Thucydides, 23000 words)
    aeoitnsurpkl e^ o^ mdg th ch ph b x z ps (Xenophon, 10000 words)

  • Russian : oeanitslvrkdmup ya soft y g b ch z zh j sh kh yu e shch ts f hard yo (Anna Karenina, 280000 words)
    oeaintsvlrkdmpuy soft ya g b z ch j kh zh sh yu ts shch e f hard (yo) (Solzhenitsyn, 86000 words)
    oeaintsrvlkmdpuy ya soft g z b ch j zh kh yu sh ts shch e f hard yo (news, 25000 words)

  • Turkish : aeinrlIkdtmsyuob u" s, zgvhc g~ c, p o" f j w x q (news, 73000 words)
    aeinlrIdktsymuob u" s, zgvhp c, g~ c o" f j w q x (news, 17000 words)

  • Latin : eituasrnomcpldqbgvfhxyk (z) (jw) (Caesar, 52000 words)
    ietuasnmorcdlpqvbgfhxyz (k) (jw) (Seneca, 18000 words)
    eiuatsrnmocldpqbgfvxhyz (k) (jw) (Livy, 17000 words)

  • Italian : aeiolnrtscdupmvgfbzhq o' a' u' i' e' e' o'y k w x j o^ (37000 words)

  • German : enirsahtduclgmobwfkzv u" p a" ss j o" y q x ...(Effi Briest, 32000 words)
    enisrthdaulcgmowbfzkv u" p a" o" j y x q (Nietzsche, 72000 words)
    enirtsadhlucmgobfwkpzv a" u" o" ss j y x q (science, 4600 words)

  • Welsh : ayndreiloghwtfuscmbp a^ o^ y^ w^ j i" e^ a' q v i^ (kxz) (government document, 13000 words)

  • Irish : aihnretscoldgumb a' f i' e' u' o' pvjwykqz (x) (news, 5400 words)
    ainhrtesocldgmub i' a' f e' p u' o' yvkwjq (xz) (news, 3400 words)

  • Gaelic : aihndercsgloutmb a' f p o' u' e' i' e' o' (jkqvwxyz) (1400 words)