Szenario für die Verschlüsselung durch binäres exklusives Oder

Im folgenden wird ein Szenario für die Verschlüsselung durch binäres exklusives Oder vorgestellt. Die Veranschaulichung durch viele Bildschirmfotos erleichtert das Nachvollziehen der mit CrypTool durchgeführten Schritte.

Anhand eines binären Dokuments wird die Verschlüsselung durch exklusives Oder und ein Ciphertext-only-Angriff auf dieses Verfahren veranschaulicht. Es wird gezeigt, dass es bei manchen verschlüsselten Dokumenten einfach ist, den Schlüssel und somit auch den Klartext zu ermitteln. Wird der Klartext jedoch vor der Verschlüsselung gepackt, so können der Schlüssel und der Klartext nicht ohne weiteres mit CrypTool ermittelt werden, da die Häufigkeiten der einzelnen Zeichen vor der Verschlüsselung (aber nach dem Packen) nicht bekannt sind. Von nicht gepackten Dokumenten – wie beispielsweise Bildern – hingegen sind gewisse Eigenschaften bekannt, die man sich für die Analyse zunutze machen kann.

Das hier gezeigte Szenario funktioniert in ähnlicher Weise mit einem Textdokument (im Gegensatz zu dem in diesem Beispiel genutzten binären Dokument). In einem Szenario für die Verschlüsselung durch binäre Addition werden ähnliche Schritte wie hier durchgeführt; jedoch mit einem Textdokument.

Wir starten mit einem Bildschirmfoto von CrypTool, welches sich in der Datei CrypTool.bmp befindet.

cryptool.gif

Dieses Dokument wird in CrypTool (über das Menü Datei \ Öffnen) geöffnet.

szenarioxor1.gif

Bevor das Dokument verschlüsselt wird, werfen wir einen Blick auf die Häufigkeitsverteilung der Zeichen, das Histogramm.

szenarioxor1a.gif

An dem Histogramm kann man sehen, dass das am häufigsten vorkommende Zeichen den Wert 255 hat. Das entspricht in hexadezimaler Schreibweise FF. Diese Information werden wir uns später beim Angriff zunutze machen.

Jetzt geschieht eine Verschlüsselung mittels exklusivem Oder (zu erreichen über das Menü Ver-/Entschlüsseln \ Klassisch \ XOR). Als Schlüssel wählen wir 12 34 56 78 und geben dies in den geöffneten Dialog ein.

szenarioxor2.gif

Daraufhin öffnet sich ein Fenster mit dem verschlüsselten Dokument.

szenarioxor3.gif

Als nächstes soll ein Ciphertext-only-Angriff durchgeführt werden. Dazu muss das im letzten Schritt verschlüsselte Dokument aktiviert sein. Über das Menü Analyse \ ciphertext only \ XOR wird zuerst die Autokorrelation berechnet und angezeigt.

szenarioxor4.gif

Nun wird ein Fenster Automatische Analyse geöffnet, in dem die ermittelte Schlüssellänge 4 ausgegeben wird. Wie wir am Anfang gesehen haben, ist das häufigste Zeichen FF. Dieses geben wir in das entsprechende Feld ein.

szenarioxor5.gif

Mit dieser Information war CrypTool in der Lage, den Schlüssel zu finden, wie in der nächsten Abbildung zu sehen ist.

szenarioxor6.gif

Nach Betätigung des OK-Knopfes erscheint ein neues Fenster mit dem Klartext.

szenarioxor7.gif

In diesem Fall war es also kein Problem für CrypTool, den Schlüssel und somit auch den Klartext eines verschlüsselten Dokuments zu ermitteln, da wir wussten, dass die Datei ein Bild enthält, bei dem das am häufigsten vorkommende Zeichen den hexadezimalen Wert FF hat. Bei gewissen Typen von Dokumenten treten einige Zeichen erfahrungsgemäß viel häufiger als andere auf. Bei einem Bild im Bitmap Format mit 16 Farben ist dies oft der Wert FF. Wenn wir also wissen, dass es sich bei dem Dokument um ein verschlüsseltes Bild im Bitmap Format mit 16 Farben handelt, so können wir annehmen, dass der am häufigsten vorkommende Wert FF ist.

Wenn das Bild vor der Verschlüsselung aber gepackt wird, so können wir nicht von der Häufigkeitsverteilung der Zeichen im Bild auf die Häufigkeitsverteilung des gepackten Bildes schließen, da durch den Vorgang des Packens neben der Verringerung der Größe die Häufigkeiten der einzelnen Zeichen nichts mehr mit der Häufigkeit der Zeichen im Format des Bildes zu tun haben. Damit kennen wir aber auch nicht das häufigste Zeichen und können CrypTool nicht bei der Analyse helfen.

Zum Packen des Dokuments muss es zuerst wieder aktiviert werden.

szenarioxor1.gif

Nun kann es über das Menü Komprimieren \ ZIP gepackt werden.

szenarioxor7a.gif

Nach der Anzeige des Kompressionsgrades (siehe Befehl Dokument Komprimieren (ZIP)) wird das gepackte Dokument angezeigt.

szenarioxor8.gif

Man erkennt sofort, dass sich das durch das Packen eine ganz andere Charakteristik des Histogrammes ergibt als im vorherigen Histogramm für das unkomprimierte Bild im Bitmap Format mit 16 Farben. Die Zeichen sind viel gleichmäßiger verteilt als bei dem unverschlüsselten Dokument.

szenarioxor9.gif

Nun ist es zwar möglich, die Analyse zu versuchen, aber da wir keine Kenntnis des häufigsten Zeichens in einem komprimierten Dokument haben, können wir CrypTool bei der Analyse nicht unterstützen und müssen später den Vorgabewert 00 übernehmen.

Zuerst verschlüsseln wir das Dokument, das vor dem Aufruf der Funktion zum Verschlüsseln erst wieder aktiviert werden muss, mit dem gleichen Schlüssel wie vorher: 12 34 56 78.

szenarioxor2.gif

Nach der Eingabe des Schlüssels und Betätigung des OK-Knopfes erscheint wie gewohnt das Fenster mit dem verschlüsselten Dokument.

szenarioxor10.gif

Nun rufen wir erneut die Analyse auf und sehen, dass mit der Autokorrelation die Länge des Schlüssels nicht – so wie mit dem nicht gepackten Dokument – bestimmt werden kann.

szenarioxor11.gif

CrypTool findet die falsche Schlüssellänge 12.

szenarioxor12.gif

Die falsche Schlüssellänge könnte jetzt zwar geändert werden, aber wir wissen – wie oben erwähnt – nicht, welches das am häufigsten vorkommende Zeichen ist, somit hat es keinen Sinn, mit der Analyse fortzufahren.

Wäre CrypTool in der Lage gewesen, den richtigen Schlüssel zu finden, so hätten wir nach der Analyse das entschlüsselte Dokument gehabt; dieses wäre noch gepackt gewesen, so dass ein Entpacken (Entkomprimieren) (über das Menü Komprimieren \ UNZIP) notwendig wäre, um das Dokument wieder in der ursprünglichen (entpackten und unverschlüsselten) Form zu haben.