Skip to content

Grundlagen der Kryptographie, Teil 2: Angriffe auf die Substitution

Für den Angriff auf die Substitution werden statistische Verfahren verwendet. Dabei wird ausgenutzt, dass bei der Substitution eine 1-zu-1-Ersetzung erfolgt, sich Besonderheiten des Klartextes also im Geheimtext wiederfinden. Dies trifft insbesondere auf die Häufigkeit von Buchstaben und Buchstabenpaaren zu.

Als Beispiel dient im Folgenden der Text aus der ersten Folge. Unter Auslassung von Zahlen, Leer- und Satzzeichen und Umwandlung von ä, ö, ü und ß in ae, oe, ue und ss ergeben sich folgende Werte:

Buchstabe Anzahl Häufigkeit (%)      Buchstabe Anzahl Häufigkeit (%)
e 667 16,55      o 117 2,90
s 323 8,02      g 103 2,56
i 310 7,69      b 83 2,06
t 306 7,59      z 62 1,54
n 299 7,42      k 61 1,51
r 254 6,30      w 53 1,32
a 230 5,71      p 46 1,14
d 210 5,21      f 43 1,07
h 187 4,64      v 42 1,04
l 154 3,82      y 34 0,84
u 152 3,77      x 30 0,74
c 138 3,43      j 6 0,15
m 119 2,95      q 0 0,00

Die zehn häufigsten Buchstabenpaare sind:

Buchstabenpaar Anzahl
en 131
er 124
ch 122
te 87
de 80
ei 79
es 65
nd 65
ie 62
st 61

Weitere Tabellen mit Buchstabenhäufigkeiten findet man in Internet, zum Beispiel hier. Auch Online-Tools zum Zählen von Einzelbuchstaben und Buchstabenpaaren gibt es online.

So funktioniert die Entschlüsselung

Die Entschlüsselung lässt sich am besten an einem Beispiel erklären. Dazu soll der folgende Geheimtext entschlüsselt werden:

ZVGQRZFPUYHRFFRYREUNRYGZNAHROEVTRAFQNFNYFEBGORXNAA
GRIRESNUERAQNFMOVZHFRARGRVAHANOFVPUGYVPURFYRFRAIBA
GRKGGRVYRAIREUVAQREGQVRJHEQRQNORVTRJNRUYGJRVYRVARR
EARHGRIREFPUYHRFFRYHATQRFTRURVZGRKGRFJVRQREQRAXYNE
GRKGRETVOGEBGEBGXYNEGRKGXYNEGRKG

Der Einfachheit gehen wir davon aus, dass wir bereits wissen, dass die Verschlüsselung durch eine Substitution erfolgte und der Klartext in Deutsch geschrieben wurde. Sonst müsste man das erst herausfinden, zum Beispiel durch Raten oder Ausprobieren.

Bei der Analyse wird zuerst das häufigste Zeichen im Geheimtext gesucht. In diesem Fall ist dies das 'R'. Vermutlich entspricht dies dem im Deutschen häufigsten Buchstaben 'e'. Zur besseren Unterscheidung verwende ich ab jetzt für Geheimtextzeichen große, für Klartextzeichen kleine Buchstaben.

Wenn 'R' dem 'e' entspricht, müssten viele Muster aus 'R' und einem weiteren Zeichen, entsprechend 'en', und 'R' und einem anderen Zeichen, entsprechend 'er', im Geheimtext vorkommen. RE kommt 8-mal vor, RA 6-mal.

Wenn die Annahmen stimmen, sind jetzt drei Zeichen bekannt. Ob RE wahrscheinlicher 'en' oder 'er' entspricht, kann man aufgrund des relativ kurzen Geheimtextes nicht entscheiden, also muss geraten werden.

Versuchen wir es mal mit

  R = e
  A = n
  E = r

Die gefundenen Zeichen können nun im Geheimtext ersetzt werden (im folgenden rot markiert):

ZVGQeZFPUYHeFFeYerUNeYGZNnHeOrVTenFQNFNYFrBGOeXNnn
GeIerSNUrenQNFMOVZHFeneGeVnHnNOFVPUGYVPUeFYeFenIBn
GeKGGeVYenIerUVnQerGQVeJHrQeQNOeVTeJNeUYGJeVYeVnee
rneHGeIerFPUYHeFFeYHnTQeFTeUeVZGeKGeFJVeQerQenXYNr
GeKGerTVOGrBGrBGXYNrGeKGXYNrGeKG

Als Nächstes kann zum Beispiel nach weiteren häufigen Buchstabenpaaren gesucht werden. Das sind im Deutschen 'ei' und 'ie'. Wenn 'e' wirklich ein 'R' ist, müssen sich entsprechende Paare auch im Geheimtext finden lassen. Ein entsprechender Kandidat wäre 'RV' (6 mal) bzw. 'VR' (2 mal). Das 'V' könnte also das 'i' sein.

Eingesetzt ergibt das

ZiGQeZFPUYHeFFeYerUNeYGZNnHeOriTenFQNFNYFrBGOeXNnn
GeIerSNUrenQNFMOiZHFeneGeinHnNOFiPUGYiPUeFYeFenIBn
GeKGGeiYenIerUinQerGQieJHrQeQNOeiTeJNeUYGJeiYeinee
rneHGeIerFPUYHeFFeYHnTQeFTeUeiZGeKGeFJieQerQenXYNr
GeKGerTiOGrBGrBGXYNrGeKGXYNrGeKG

Betrachten wir jetzt den zweithäufigsten Buchstaben im Klartext, das 's'. 's' kommt häufig als 'es' vor. Gesucht ist also eine weitere häufige Kombination von 'R' und einem weiteren Zeichen, das bisher nicht erkannt wurde. 'RF' kommt 6 mal vor. Könnte 'F' dem 's' entsprechen?

Probieren wir es mal aus:

ZiGQeZsPUYHesseYerUNeYGZNnHeOriTensQNsNYsrBGOeXNnn
GeIerSNUrenQNsMOiZHseneGeinHnNOsiPUGYiPUesYesenIBn
GeKGGeiYenIerUinQerGQieJHrQeQNOeiTeJNeUYGJeiYeinee
rneHGeIersPUYHesseYHnTQesTeUeiZGeKGesJieQerQenXYNr
GeKGerTiOGrBGrBGXYNrGeKGXYNrGeKG

Jetzt kann wieder geraten werden: Im teilweise entschlüsselten Geheimtext kommt 'Yesen' vor, oben blau markiert. Das könnte 'lesen' heißen, das 'Y' also dem 'l' entsprechen.

ZiGQeZsPUlHesselerUNelGZNnHeOriTensQNsNlsrBGOeXNnn
GeIerSNUrenQNsMOiZHseneGeinHnNOsiPUGliPUeslesenIBn
GeKGGeilenIerUinQerGQieJHrQeQNOeiTeJNeUlGJeileinee
rneHGeIersPUlHesselHnTQesTeUeiZGeKGesJieQerQenXlNr
GeKGerTiOGrBGrBGXlNrGeKGXlNrGeKG

Das zwei mal vorkommende 'sPUlHessel' (wieder blau markiert) könnte 'schluessel' sein, entsprechend wäre 'P' = 'c', 'U' = 'h', 'H' = 'U'. Versuch macht klug, also einfach mal probieren:

ZiGQeZschluesselerhNelGZNnueOriTensQNsNlsrBGOeXNnn
GeIerSNhrenQNsMOiZuseneGeinunNOsichGlicheslesenIBn
GeKGGeilenIerhinQerGQieJurQeQNOeiTeJNehlGJeileinee
rneuGeIerschluesselunTQesTeheiZGeKGesJieQerQenXlNr
GeKGerTiOGrBGrBGXlNrGeKGXlNrGeKG

'IerschluesselunT' (wie immer blau markiert) sieht aus wie 'verschluesselung', also ist 'I' ein 'v' und 'T' ein 'g':

ZiGQeZschluesselerhNelGZNnueOrigensQNsNlsrBGOeXNnn
GeverSNhrenQNsMOiZuseneGeinunNOsichGlicheslesenvBn
GeKGGeilenverhinQerGQieJurQeQNOeigeJNehlGJeileinee
rneuGeverschluesselungQesgeheiZGeKGesJieQerQenXlNr
GeKGergiOGrBGrBGXlNrGeKGXlNrGeKG

Das blau markierte 'verhinQerG' könnte 'verhindert' heißen, also ist das 'Q' ein 'd' und das 'G' ein 't':

ZitdeZschluesselerhNeltZNnueOrigensdNsNlsrBtOeXNnn
teverSNhrendNsMOiZuseneteinunNOsichtlicheslesenvBn
teKtteilenverhindertdieJurdedNOeigeJNehltJeileinee
rneuteverschluesselungdesgeheiZteKtesJiederdenXlNr
teKtergiOtrBtrBtXlNrteKtXlNrteKt

Markieren wir mal die bereits lesbaren Worte:

ZitdeZ schluessel erhNeltZNnueOrigensdNsNlsrBtOeXNnn
teverSNhrendNsMOiZ usenet ein unNOsichtliches lesen vBn
teKt teilen verhindert die JurdedNOeigeJNehltJeil eine e
rneute verschluesselung des geheiZteKtesJieder den XlNr
teKtergiOtrBtrBtXlNrteKtXlNrteKt

Aus dem Zusammenhang ergibt sich, das 'geheiZteKtes' 'geheimtextes' sein muss: 'Z' = 'm', 'K' = 'x', und gleich wieder die erkannten Worte markieren:

mit dem schluessel erhNeltmNnueOrigensdNsNlsrBtOeXNnn
teverSNhrendNsMOim usenet ein unNOsichtliches lesen vBn
textteilen verhindert die JurdedNOeigeJNehltJeil eine e
rneute verschluesselung des geheimtextes Jieder den XlNr
text ergiOtrBtrBtXlNr text XlNr text

'unNOsichtliches' könnte 'unabsichtliches' sein, also ist 'N' ein 'a und 'O' ein 'b':

mit dem schluessel erhaelt man uebrigens das als rBtbeXann
teverSahren das Mb im usenet ein unabsichtliches lesen vBn
textteilen verhindert die Jurde dabei geJaehltJeil eine e
rneute verschluesselung des geheimtextes Jieder den Xlar
text ergibt rBtrBtXlar text Xlar text 

'Xlartext' müsste 'klartext' sein, 'beXannte' sieht nach 'bekannte' aus, 'X' ist also ein 'k'.
'verSahren' soll vermutlich 'verfahren' sein, daher ist 'S' ein 'f'. Eingesetzt ergibt das

mit dem schluessel erhaelt man uebrigens das als rBt bekann
te verfahren das Mb im usenet ein unabsichtliches lesen vBn
textteilen verhindert die Jurde dabei geJaehltJeil eine e
rneute verschluesselung des geheimtextes Jieder den klar
text ergibt rBtrBt klartext klartext 

'Jieder' heißt bestimmt 'wieder', das passt auch zu 'geJaehlt' (= 'gewaehlt') und 'Jeil' (= 'weil'). 'J' entspricht also den 'w':

mit dem schluessel erhaelt man uebrigens das als rBt bekann
te verfahren das Mb im usenet ein unabsichtliches lesen vBn
textteilen verhindert die wurde dabei gewaehlt weil eine e
rneute verschluesselung des geheimtextes wieder den klar
text ergibt rBtrBt klartext klartext

'vBn' und 'rBt' lassen darauf schließen, das das 'B' ein 'o' ist:

mit dem schluessel erhaelt man uebrigens das als rot bekann
te verfahren das Mb im usenet ein unabsichtliches lesen von
textteilen verhindert die wurde dabei gewaehlt weil eine e
rneute verschluesselung des geheimtextes wieder den klar
text ergibt rot rot klartext klartext

Es bleibt noch das 'M', das sich aus dem Zusammenhang als 'z' ergibt:

mit dem schluessel erhaelt man uebrigens das als rot bekann
te verfahren das zb im usenet ein unabsichtliches lesen von
textteilen verhindert die wurde dabei gewaehlt weil eine e
rneute verschluesselung des geheimtextes wieder den klar
text ergibt rot rot klartext klartext

Fertig. :-)

Der Text wurde übrigens mit ROT13 'verschlüsselt', was einigen von Ihnen vielleicht bereits aufgefallen ist. Ich gebe es zu: Ich hatte keine Lust, eine andere Substitution aufzuschreiben. Das Prinzip wird jedoch auch mit diesem Beispiel deutlich, so das eine aufwändigere Substitution gar nicht nötig war.

Eine Cäsar-Chiffre lässt sich auch ganz einfach durch ausprobieren aller möglichen Vertauschungen brechen. Die dafür nötige Rechenleistung besitzt bereis seit vielen Jahren jeder programmierbare Taschenrechner.

Homophone Substitution

Eine Verbesserung der Substitution ist die homophone Substitution. Dabei werden den Klartextzeichen mehrere Geheimtextzeichen zugeordnet, sodass das Geheimtextalphabet aus deutlich mehr Zeichen als das Klartextalphabet besteht. Insbesondere häufigen Zeichen werden mehrere Geheimtextzeichen zugeordnet, sodass im Idealfall im Geheimtext alle Zeichen des Geheimtextalphabets mit der gleichen Häufigkeit vorkommen.

Auch dieses Verfahren ist relativ leicht zu brechen. Zum einen ist es sehr anfällig für Klartextangriffe, zum anderen werden die inneren Gesetzmäßigkeiten der Sprache nur mangelhaft verdeckt. Ein weiterer Schwachpunkt ist die Auswahl des Geheimtextzeichens, wenn für ein Klartextzeichen mehrere zur Verfügung stehen. Erfolgt dies nach einer bestimmten Gesetzmäßigkeit, zum Beispiel "immer der Reihe nach", ergeben sich im Geheimtext wieder Regelmäßigkeiten, die die Analyse vereinfachen.

In der nächsten Folge wird ein weiteres klassisches Verfahren vorgestellt: Die Transposition.

Carsten Eilers

Trackbacks

Dipl.-Inform. Carsten Eilers am : Kryptographie - Ein Überblick

Vorschau anzeigen
Die Kryptographie ist ein ein sehr umfangreiches Themengebiet, und obwohl ich mich jetzt seit 30 Artikeln damit befasst habe sind längst nicht alle Themen vorgestellt worden. Aber zumindest die wichtigsten habe ich beschrieben, und damit soll e