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):

BuchstabeAnzahl der VorkommenBuchstabeAnzahl der Vorkommen
a134 675 829n83 104 322
b24 944 593o112 776 769
c42 120 335p43 747 863
d53 015 496q83 322
e153 141 622r61 750 942
f2 458 624s78 451 777
g3 087 128t75 633 324
h35 075 708u50 265 458
i93 903 002v55 510 103
j32 383 080w762 129
k49 549 907x504 334
l80 345 129y40 132 126
m50 636 489z46 383 740

Die folgende Tabelle zeigt dann die relative Häufigkeit der Buchstaben:

BuchstabeRelative HäufigkeitBuchstabeRelative Häufigkeit
a0.09589269n0.05917244
b0.0177612o0.08029999
c0.02999077p0.03114961
d0.03774841q0.00005933
e0.10904081r0.04396827
f0.0017506s0.0558597
g0.00219812t0.05385289
h0.02497482u0.03579031
i0.06686138v0.03952464
j0.02305759w0.00054266
k0.03528082x0.0003591
l0.05720782y0.02857512
m0.0360545z0.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:

BuchstabeAnzahl der BuchstabenRelative Häufigkeit
Erster TextZweiter TextErster TextZweiter TextTschechische Sprache
a120.023260.046510.09589
b0100.023260.01776
c220.046510.046510.02999
d300.0697700.03775
e560.116280.139530.10904
f300.0697700.00175
g00000.0022
h510.116280.023260.02497
i220.046510.046510.06686
j210.046510.023260.02306
k210.046510.023260.03528
l00000.05721
m0200.046510.03605
n0300.069770.05917
o0500.116280.0803
p330.069770.069770.03115
q200.0465100.00006
r150.023260.116280.04397
s220.046510.046510.05586
t0200.046510.05385
u620.139530.046510.03579
v00000.03952
w00000.00054
x100.0232600.00036
y200.0465100.02858
z130.023260.069770.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äufigkeitAbweichung
1. Text2. TextTschechische Sprache1. Text2. Text
a0.023260.046510.095890.00527610.0024385
b00.02325580.01776120.00031550.0000302
c0.04651160.04651160.02999080.00027290.0002729
d0.069767400.03774840.00102520.0014249
e0.11627910.13953490.10904080.00005240.0009299
f0.069767400.00175060.00462630.0000031
g000.00219810.00000480.0000048
h0.11627910.02325580.02497480.00833650.000003
i0.04651160.04651160.06686140.00041410.0004141
j0.04651160.02325580.02305760.00055010
k0.04651160.02325580.03528080.00012610.0001446
l000.05720780.00327270.0032727
m00.04651160.03605450.00129990.0001094
n00.06976740.05917240.00350140.0001123
o00.11627910.08030.00644810.0012945
p0.06976740.06976740.03114960.00149130.0014913
q0.046511600.00005930.00215780
r0.02325580.11627910.04396830.0004290.0052289
s0.04651160.04651160.05585970.00008740.0000874
t00.04651160.05385290.00290010.0000539
u0.13953490.04651160.03579030.01076290.0001149
v000.03952460.00156220.0015622
w000.00054273e-73e-7
x0.023255800.00035910.00052431e-7
y0.046511600.02857510.00032170.0008165
z0.02325580.06976740.03302640.00009550.0013499
0.05585460.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.

WortVorkommenWortVorkommenWortVorkommenWortVorkommen
Ich bin2 516 782Hier286 606inseriert203 656vielleicht163 296
als1 321 843gut273 130gefragt201 509Hände161 382
wenn1 237 411eine Zeit lang269 045mela199 285Auch161 174
seine974 131Alle268 277wenn197 778gesehen160 506
war689 849wenn262 429also193 357nach allem160 228
war657 760Prozent262 226Herr193 123prilis156 839
ad644 137nie260 096alle192 988Ort156 221
mehr608 371könnte259 919Alle185 965durch155 250
Wir sind549 840waren255 072dann183 655wieder154 924
Die522 587zwischen253 466überhaupt179 968ausreichend154 784
oder489 592um251 146seine178 390einige154 165
die483 800an243 646Schnell175 422Kopf153 777
vor460 548re235 604ein wenig174 553zu153 655
etwas448 947vielleicht235 161ständig174 451von151 450
hiervon446 667nur233 467mit mir173 820angefangen von151 309
geht zu412 128Muse227 622nur172 716Mann149 240
Sie sind394 867auch224 705die172 342gesucht148 978
sind376 431mehr221 056Menschen169 569gegen148 603
ihre331 235Gleiche218 216diese167 825war nicht147 829
nicht318 782wenn217 917Jemand165 736sehr145 921
Ich würde304 981mich211 148Erste164 858Türen141 094
weil302 978sie210 384deshalb164 817Dinge140 673
jeder301 623eine208 864Also164 637kannte140 656
Welche295 817waren206 830niemanden164 442denke139 935
ihr288 095über205 040Hallo163 638Es war einmal136 314