Beispiel: Angriffe gegen mehrfach verwendete Schlüssel
Für mehrfach verwendete Schlüssel könnte ein Angriff so aussehen:
Wir haben zwei Geheimtexte abfangen können (OOKLIOSIAMGBHV und DBVUTDDVXJVSHM) und wollen diese entschlüsseln. Wenn wir Grund zu der Annahme haben, dass der Gegner etwa bei beiden Geheimtexten den gleichen Schlüssel verwendet hat, können wir das als Angriffsstrategie für unseren Entschlüsselungsversuch verwenden:
Schlüssel: | ||||||||||||||
Klartext1: | ||||||||||||||
Geheimtext1: | ||||||||||||||
Klartext2: | ||||||||||||||
Geheimtext2: |
Vermuten wir nun wieder, dass einer der Klartexte, etwa der erste, das Wort die enthält. Setzen wir es einfach einmal mehrmals hintereinander ein:
Schlüssel: | ||||||||||||||
Klartext1: | ||||||||||||||
Geheimtext1: | ||||||||||||||
Klartext2: | ||||||||||||||
Geheimtext2: |
Dann erhalten wir aus der Beziehung Schlüsselbuchstabe + Klartext1buchstabe = Geheimtext1buchstabe den entsprechenden Schlüsselbuchstaben:
Schlüssel: | ||||||||||||||
Klartext1: | ||||||||||||||
Geheimtext1: | ||||||||||||||
Klartext2: | ||||||||||||||
Geheimtext2: |
Und da derselbe Schlüssel ebenfalls für den zweiten Text verwendet wurde, erhalten wir den Klartext2 über die betreffende Beziehung Schlüsselbuchstabe + Klartext2buchstabe = Geheimtext2buchstabe:
Schlüssel: | ||||||||||||||
Klartext1: | ||||||||||||||
Geheimtext1: | ||||||||||||||
Klartext2: | ||||||||||||||
Geheimtext2: |
Da wir diesmal von einem in der Tat rein zufälligen Schlüssel ausgehen, können wir diesen in unsere Betrachtung nicht näher einbeziehen. Allerdings werden sich für den zweiten Klartext sinnvollere Zeichenfolgen ergeben, wenn wir das die an der betreffenden Stelle im ersten Klartext richtig geraten haben.
Wenn wir uns den erhaltenen 2. Klartext betrachten sehen wir nur eine Stelle, die aus unserer Sprache stammen könnte straft. An den anderen Stellen können wir unsere Vermutung, dass dort die im ersten Klartext steht, zunächst wieder verwerfen:
Schlüssel: | ||||||||||||||
Klartext1: | ||||||||||||||
Geheimtext1: | ||||||||||||||
Klartext2: | ||||||||||||||
Geheimtext2: |
Da wir mit dem straft in 2. Klartext einen Anhaltspunkt haben, können wir versuchen, diesen Fetzen sinnvoll zu ergänzen und hoffen, dass sich dabei der erste Klartext an den entsprechenden Stellen ebenfalls sinnvolle Züge annimmt.
Schlüssel: | ||||||||||||||
Klartext1: | ||||||||||||||
Geheimtext1: | ||||||||||||||
Klartext2: | ||||||||||||||
Geheimtext2: |
Leider hilft uns das sich dadurch für den ersten Klartext ergebende ST auf Anhieb nicht weiter, also lassen wir die Vermutung erst einmal bestehen und betrachten wir einmal die Lücke am Ende.
Wen mit 3 Buchstaben könnte der Sender denn bestrafen wollen? Versuchen wir einmal ein allgemeines ihn einzusetzen:
Schlüssel: | ||||||||||||||
Klartext1: | ||||||||||||||
Geheimtext1: | ||||||||||||||
Klartext2: | ||||||||||||||
Geheimtext2: |
Dadurch ergibt sich allerdings keine sinnvolle Ergänzung für den ersten Klartext. Also verwerfen wir das ihn wieder und probieren dasselbe mit sie:
Schlüssel: | ||||||||||||||
Klartext1: | ||||||||||||||
Geheimtext1: | ||||||||||||||
Klartext2: | ||||||||||||||
Geheimtext2: |
Dieses Ergebnis sieht dann schon besser aus. also handelt es sich um die diebin und in der zweiten Botschaft steht bestraft sie. Allerdings fehlen uns noch drei Buchstaben am Anfang. Da uns immer noch keine sinnvollen 3 Buchstaben einfallen, die mit dem ST in der ersten Botschaft ein vielversprechendes Wort bilden würden, suchen wir lieber ein dreibuchstabiges Wort das in der zweiten Botschaft vor dem bestraft stehen könnte. Vielleicht hat der Sender ja noch etwas vergessen und dies in der zweiten Botschaft noch schnell hinterhergeschickt. Dann könnte das Wort einfach und lauten:
Schlüssel: | ||||||||||||||
Klartext1: | ||||||||||||||
Geheimtext1: | ||||||||||||||
Klartext2: | ||||||||||||||
Geheimtext2: |
Damit ergibt sich auch das fünfbuchstabige Wort fasst der ersten Botschaft und wir haben die Verschlüsselung geknackt, da der Sender denselben Schlüssel mehrfach verwendete!
Eine weitere Angriffsmöglichkeit wäre folgende:
Wir fangen wiederum zwei Botschaften ab: PKYSQ und PKZKK
Schlüssel: | |||||
Erster Klartext: | |||||
Erster Geheimtext: |
Schlüssel: | |||||
Erster Klartext: | |||||
Erster Geheimtext: |
Für die Verschlüsselung des ersten Buchstabens der ersten Botschaft gilt:
S1 + A1 = 'P'
Entsprechend für denselben Buchstaben der zweiten Botschaft gilt:
S1 + B1 = 'P'
Nun können wir diese beiden Gleichungen voneinander subtrahieren, wobei der Schlüsselbuchstabe S1 herausfällt:
B1 - A1 = 0 bzw. A1 = B1
Was sagt uns dieser Ergebnis? Die Zahlenwerte der beiden ersten Klartextbuchstaben sind identisch -> Die beiden ersten Buchstaben in beiden Nachrichten stimmen überein!
Mit derselben Rechnung erhalten wir für die anderen Stellen:
B2 = A2
B3 = A3 + 1
B4 = A4 - 8
B5 = A5 - 6
Nun könnte man einfach einen Rechner damit beschäftigen, für den ersten Klartext der Reihe nach alle 5-Buchstabigen Wörter einer Wörterliste einzusetzen.
Dann ergibt sich für jedes zu testende Wort über die eben errechneten Beziehungen das entsprechend zweite Klartextwort. Wenn der Rechner dieses in seiner Wörterliste ebenfalls finden kann, so ist es wahrscheinlich, dass diese Kombination von Klartext1 und Klartext2 korrekt ist. Ergibt sich ein sinnloser zweiter Klartext, so ist diese Kombination mit großer Wahrscheinlichkeit falsch.
Wenn man in diesem Beispiel Simon als ersten Klartext wählt, erhält man als zweiten Klartext Singh - und somit den Autor des Buches Geheime Botschaften.