2a. Kryptographische Basistechniken

XOR


Beschreibung

XOR ist eine Verschiebechiffre auf dem Raum (als Alphabet interpretiert) der l-Bit-Blöcke. Als Schlüssel dient ein fester Block k.

Die Schlüssellänge ist also l, ebenso die effektive Schlüssellänge.
Jeder Block a des Klartextes wird mit k bitweise per XOR verknüpft [gegebenenfalls periodisch wiederholt].

Mathematische Beschreibung: Die Blöcke der Länge l bilden den l-dimensionalen Vektorraum F2l über dem Körper F2 aus zwei Elementen. Die Operation XOR ist einfach die Addition von Vektoren in diesem Raum (weil das XOR von Bits gerade die Addition in dem Körper F2 ist).

Historisch: in den Zwanzigerjahren des 20. Jahrhunderts erstmals auf nennenswert breiter Basis zur Verschlüsselung von Fernschreiber-Nachrichten, also für den 32-elementigen Vektorraum F25. [l wurde hier in der Regel sehr groß gewählt.]


Beispiel 1

l = 8, k = 10010110.

Erste Zeile: Klartext, zweite Zeile: Hexadezimaldarstellung der Zeichen im ASCII-Zeichensatz, dritte Zeile: Binärdarstellung der Zeichen, vierte Zeile: der Schlüssel k genügend oft wiederholt, fünfte Zeile: der Geheimtext binär, sechste Zeile: der Geheimtext hexadezimal.

   D    |   u    |        |   b    |   i    |   s    |   t    |        |   d    |   o    |   o    |   f    
   44   |   75   |   20   |   62   |   69   |   73   |   74   |   20   |   64   |   6F   |   6F   |   66   
01000100|01110101|00100000|01100010|01101001|01110011|01110100|00100000|01100100|01101111|01101111|01100110
10010110|10010110|10010110|10010110|10010110|10010110|10010110|10010110|10010110|10010110|10010110|10010110
-------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- --------
11010010|11100011|10110110|11110100|11111111|11100101|11100010|10110110|11110010|11111001|11111001|11110000
   D2       E3       B6       F4       FF       E5       E2       B6       F2       F9       F9       F0   

Zurückgewandelt in lesbare Zeichen (je nach Browser-Einstellung im ISO-9960-1-Zeichensatz oder ähnlich) ergibt das den Geheimtext

Ò ã ¶ ô œ å â ¶ ò ù ù ð

der Laien beeindruckt. Einem Fachmann fällt sofort auf, dass alle Zeichen in der oberen Hälfte der möglichen 256 Bytes liegen. Das legt die Vermutung nahe, dass ein ASCII-Text mit einem Schlüssel behandelt wurde, dessen Leitbit eine 1 ist. Versucht er, das auffällig wiederholte Zeichen ¶ = 10110110 als Leerzeichen 00100000 zu deuten, kann er sofort den Schlüssel als Differenz 10010110 bestimmen und hat die Verschlüsselung gebrochen - sogar ohne vollständige Schlüsselsuche.


Beispiel 2

Eine Word-Datei enthält viele Null-Bytes, d. h., der Schlüssel »schimmert durch«.

Insbesondere bei periodischem Schlüssel (viele »Sicherheitsprodukte« verwenden dies - Cave: Snake-Oil!) ist eine solche schwache Verschlüsselung in Sekunden geknackt.

Warnung: Die XOR-Chiffre mit einem periodischen Schlüssel ist unbrauchbar!


Fazit

Die Größe #K des Schlüsselraums K ist eine grobe obere Schranke für die Stärke einer Chiffre. Sie wird meistens ausgedrückt durch die Schlüssellänge 2log(#K).

Das Beispiel »periodisches XOR« zeigt, dass auch Verfahren mit sehr großer Schlüssellänge unsicher sein können.

Versuch zur Begriffsbildung: Eine Chiffre heißt stark, wenn es keinen Angriff gibt, der »wesentlich« effizienter als die Exhaustion ist. Dann ist die (effektive) Schlüssellänge tatsächlich ein Maß für die Sicherheit.


Vorlesung Datenschutz und Datensicherheit
Autor: Klaus Pommerening, 29. September 1999; letzte Änderung: 15. Mai 2007.
E-Mail an
Pommerening »AT« imbei.uni-mainz.de.