Frequenzanalyse
Kapitoly: Kryptographie, Frequenzanalyse
Die Frequenzanalyse ist ein allgemeines Verfahren, das beim Knacken verschiedener Arten von Chiffren verwendet werden kann. Bei der Häufigkeitsanalyse gehen wir in der Regel den verschlüsselten Text durch und versuchen, Ähnlichkeiten mit der Sprache zu finden, in der die Nachricht verfasst ist.
Die Häufigkeit der Buchstaben im Chiffriertext
Eines der grundlegenden Instrumente der Häufigkeitsanalyse ist die Häufigkeit der Buchstaben in einer bestimmten Sprache. Wenn wir genügend tschechische Texte analysieren, können wir verschiedene statistische Informationen berechnen, darunter auch, wie oft welche Buchstaben in diesen Texten vorkommen.
Da ich neulich etwa fünftausend Bücher in tschechischer Sprache gekauft habe, habe ich eine solche Analyse durchgeführt. In diesen fünftausend Büchern gab es insgesamt 1.404.443.151 Buchstaben. Die folgende Tabelle zeigt die Verteilung der Buchstaben (nach Abzug der diakritischen Zeichen):
Buchstabe | Anzahl der Vorkommen | Buchstabe | Anzahl der Vorkommen |
---|---|---|---|
a | 134 675 829 | n | 83 104 322 |
b | 24 944 593 | o | 112 776 769 |
c | 42 120 335 | p | 43 747 863 |
d | 53 015 496 | q | 83 322 |
e | 153 141 622 | r | 61 750 942 |
f | 2 458 624 | s | 78 451 777 |
g | 3 087 128 | t | 75 633 324 |
h | 35 075 708 | u | 50 265 458 |
i | 93 903 002 | v | 55 510 103 |
j | 32 383 080 | w | 762 129 |
k | 49 549 907 | x | 504 334 |
l | 80 345 129 | y | 40 132 126 |
m | 50 636 489 | z | 46 383 740 |
Die folgende Tabelle zeigt dann die relative Häufigkeit der Buchstaben:
Buchstabe | Relative Häufigkeit | Buchstabe | Relative Häufigkeit |
---|---|---|---|
a | 0.09589269 | n | 0.05917244 |
b | 0.0177612 | o | 0.08029999 |
c | 0.02999077 | p | 0.03114961 |
d | 0.03774841 | q | 0.00005933 |
e | 0.10904081 | r | 0.04396827 |
f | 0.0017506 | s | 0.0558597 |
g | 0.00219812 | t | 0.05385289 |
h | 0.02497482 | u | 0.03579031 |
i | 0.06686138 | v | 0.03952464 |
j | 0.02305759 | w | 0.00054266 |
k | 0.03528082 | x | 0.0003591 |
l | 0.05720782 | y | 0.02857512 |
m | 0.0360545 | z | 0.03302643 |
Aus der Tabelle geht hervor, dass etwa 9,58 % der Buchstaben in allen Büchern der Buchstabe "a" waren. Daraus können wir ableiten, dass etwa 9,58 % der Buchstaben in einem normalen tschechischen Text "a" sind.
Jede dieser Statistiken wird leicht abweichende Werte zeigen, aber das ist in Ordnung - es geht nicht so sehr um exakte Werte, die kann man sowieso nicht herausfinden, sondern nur um Näherungswerte.
Die Abweichung der Häufigkeit der Buchstaben von der Häufigkeit der Buchstaben in der Sprache
Wenn wir die erwarteten relativen Häufigkeiten der einzelnen Buchstaben in einer bestimmten Sprache kennen, können wir die Abweichung eines Textes von den erwarteten Werten berechnen. Nehmen wir als Beispiel zwei Texte: "fhes dudy fqhup ijhecuc fhejepu eriqxkzu ahkpdysu" und "proc neni parez tree because it contains crucifixes". Auf den ersten Blick sehen wir, dass der erste Text ein Kauderwelsch ist, während der zweite Satz der tschechische Text ist. Berechnen wir die Abweichung - es sollte sich herausstellen, dass die Abweichung des ersten Textes wesentlich höher sein wird als die des zweiten.
Berechnen wir zunächst die Häufigkeit der Buchstaben in jedem Text:
Buchstabe | Anzahl der Buchstaben | Relative Häufigkeit | |||
---|---|---|---|---|---|
Erster Text | Zweiter Text | Erster Text | Zweiter Text | Tschechische Sprache | |
a | 1 | 2 | 0.02326 | 0.04651 | 0.09589 |
b | 0 | 1 | 0 | 0.02326 | 0.01776 |
c | 2 | 2 | 0.04651 | 0.04651 | 0.02999 |
d | 3 | 0 | 0.06977 | 0 | 0.03775 |
e | 5 | 6 | 0.11628 | 0.13953 | 0.10904 |
f | 3 | 0 | 0.06977 | 0 | 0.00175 |
g | 0 | 0 | 0 | 0 | 0.0022 |
h | 5 | 1 | 0.11628 | 0.02326 | 0.02497 |
i | 2 | 2 | 0.04651 | 0.04651 | 0.06686 |
j | 2 | 1 | 0.04651 | 0.02326 | 0.02306 |
k | 2 | 1 | 0.04651 | 0.02326 | 0.03528 |
l | 0 | 0 | 0 | 0 | 0.05721 |
m | 0 | 2 | 0 | 0.04651 | 0.03605 |
n | 0 | 3 | 0 | 0.06977 | 0.05917 |
o | 0 | 5 | 0 | 0.11628 | 0.0803 |
p | 3 | 3 | 0.06977 | 0.06977 | 0.03115 |
q | 2 | 0 | 0.04651 | 0 | 0.00006 |
r | 1 | 5 | 0.02326 | 0.11628 | 0.04397 |
s | 2 | 2 | 0.04651 | 0.04651 | 0.05586 |
t | 0 | 2 | 0 | 0.04651 | 0.05385 |
u | 6 | 2 | 0.13953 | 0.04651 | 0.03579 |
v | 0 | 0 | 0 | 0 | 0.03952 |
w | 0 | 0 | 0 | 0 | 0.00054 |
x | 1 | 0 | 0.02326 | 0 | 0.00036 |
y | 2 | 0 | 0.04651 | 0 | 0.02858 |
z | 1 | 3 | 0.02326 | 0.06977 | 0.03303 |
Nun berechnen wir die Abweichungen. Wir berechnen diese, indem wir die relative Häufigkeit eines Buchstabens in der Sprache von der relativen Häufigkeit im ersten Text abziehen und quadrieren. Das heißt, für den Buchstaben "a" und den ersten Text erhalten wir die Abweichung als
$$ (0.0232558 - 0.0958927)^2=0.0052761 $$
und in ähnlicher Weise für alle anderen Buchstaben. Wenn Sie den Mauszeiger über die Zelle mit dem Ergebnis bewegen, wird auch der Ausdruck angezeigt, der zur Ermittlung des Ergebnisses verwendet wurde.
Relative Häufigkeit | Abweichung | ||||
---|---|---|---|---|---|
1. Text | 2. Text | Tschechische Sprache | 1. Text | 2. Text | |
a | 0.02326 | 0.04651 | 0.09589 | 0.0052761 | 0.0024385 |
b | 0 | 0.0232558 | 0.0177612 | 0.0003155 | 0.0000302 |
c | 0.0465116 | 0.0465116 | 0.0299908 | 0.0002729 | 0.0002729 |
d | 0.0697674 | 0 | 0.0377484 | 0.0010252 | 0.0014249 |
e | 0.1162791 | 0.1395349 | 0.1090408 | 0.0000524 | 0.0009299 |
f | 0.0697674 | 0 | 0.0017506 | 0.0046263 | 0.0000031 |
g | 0 | 0 | 0.0021981 | 0.0000048 | 0.0000048 |
h | 0.1162791 | 0.0232558 | 0.0249748 | 0.0083365 | 0.000003 |
i | 0.0465116 | 0.0465116 | 0.0668614 | 0.0004141 | 0.0004141 |
j | 0.0465116 | 0.0232558 | 0.0230576 | 0.0005501 | 0 |
k | 0.0465116 | 0.0232558 | 0.0352808 | 0.0001261 | 0.0001446 |
l | 0 | 0 | 0.0572078 | 0.0032727 | 0.0032727 |
m | 0 | 0.0465116 | 0.0360545 | 0.0012999 | 0.0001094 |
n | 0 | 0.0697674 | 0.0591724 | 0.0035014 | 0.0001123 |
o | 0 | 0.1162791 | 0.0803 | 0.0064481 | 0.0012945 |
p | 0.0697674 | 0.0697674 | 0.0311496 | 0.0014913 | 0.0014913 |
q | 0.0465116 | 0 | 0.0000593 | 0.0021578 | 0 |
r | 0.0232558 | 0.1162791 | 0.0439683 | 0.000429 | 0.0052289 |
s | 0.0465116 | 0.0465116 | 0.0558597 | 0.0000874 | 0.0000874 |
t | 0 | 0.0465116 | 0.0538529 | 0.0029001 | 0.0000539 |
u | 0.1395349 | 0.0465116 | 0.0357903 | 0.0107629 | 0.0001149 |
v | 0 | 0 | 0.0395246 | 0.0015622 | 0.0015622 |
w | 0 | 0 | 0.0005427 | 3e-7 | 3e-7 |
x | 0.0232558 | 0 | 0.0003591 | 0.0005243 | 1e-7 |
y | 0.0465116 | 0 | 0.0285751 | 0.0003217 | 0.0008165 |
z | 0.0232558 | 0.0697674 | 0.0330264 | 0.0000955 | 0.0013499 |
0.0558546 | 0.0211603 |
Schließlich haben wir alle Abweichungen addiert. Korrekterweise müssten wir diesen Wert noch durch die Anzahl der Buchstaben dividieren und dann subtrahieren, um die tatsächliche Abweichung zu erhalten. Aber diese Operationen ändern nichts an der Tatsache, dass der zweite Text eine deutlich geringere Abweichung aufweist, so dass es viel wahrscheinlicher ist, dass es sich um einen tschechischen Text handelt.
Die gebräuchlichsten Wörter der Sprache
Manchmal kann eine Liste mit den häufigsten Wörtern einer Sprache nützlich sein.
Wort | Vorkommen | Wort | Vorkommen | Wort | Vorkommen | Wort | Vorkommen |
---|---|---|---|---|---|---|---|
Ich bin | 2 516 782 | Hier | 286 606 | inseriert | 203 656 | vielleicht | 163 296 |
als | 1 321 843 | gut | 273 130 | gefragt | 201 509 | Hände | 161 382 |
wenn | 1 237 411 | eine Zeit lang | 269 045 | mela | 199 285 | Auch | 161 174 |
seine | 974 131 | Alle | 268 277 | wenn | 197 778 | gesehen | 160 506 |
war | 689 849 | wenn | 262 429 | also | 193 357 | nach allem | 160 228 |
war | 657 760 | Prozent | 262 226 | Herr | 193 123 | prilis | 156 839 |
ad | 644 137 | nie | 260 096 | alle | 192 988 | Ort | 156 221 |
mehr | 608 371 | könnte | 259 919 | Alle | 185 965 | durch | 155 250 |
Wir sind | 549 840 | waren | 255 072 | dann | 183 655 | wieder | 154 924 |
Die | 522 587 | zwischen | 253 466 | überhaupt | 179 968 | ausreichend | 154 784 |
oder | 489 592 | um | 251 146 | seine | 178 390 | einige | 154 165 |
die | 483 800 | an | 243 646 | Schnell | 175 422 | Kopf | 153 777 |
vor | 460 548 | re | 235 604 | ein wenig | 174 553 | zu | 153 655 |
etwas | 448 947 | vielleicht | 235 161 | ständig | 174 451 | von | 151 450 |
hiervon | 446 667 | nur | 233 467 | mit mir | 173 820 | angefangen von | 151 309 |
geht zu | 412 128 | Muse | 227 622 | nur | 172 716 | Mann | 149 240 |
Sie sind | 394 867 | auch | 224 705 | die | 172 342 | gesucht | 148 978 |
sind | 376 431 | mehr | 221 056 | Menschen | 169 569 | gegen | 148 603 |
ihre | 331 235 | Gleiche | 218 216 | diese | 167 825 | war nicht | 147 829 |
nicht | 318 782 | wenn | 217 917 | Jemand | 165 736 | sehr | 145 921 |
Ich würde | 304 981 | mich | 211 148 | Erste | 164 858 | Türen | 141 094 |
weil | 302 978 | sie | 210 384 | deshalb | 164 817 | Dinge | 140 673 |
jeder | 301 623 | eine | 208 864 | Also | 164 637 | kannte | 140 656 |
Welche | 295 817 | waren | 206 830 | niemanden | 164 442 | denke | 139 935 |
ihr | 288 095 | über | 205 040 | Hallo | 163 638 | Es war einmal | 136 314 |