XOR Chiffre

Herkunft / Verwendung: XOR ist eine binäre Verknüpfungsart, das heißt, es ist eine Vorschrift, die angibt, wie zwei binäre Datenströme miteinander verknüpft werden.

Per XOR-Verfahren (XOR ist kurz für eXclusive OR) wird jedes Bit des Klartextes mit jedem Bit des Schlüssel exklusiv-oder verknüpft, um den Geheim-Binär-Strom zu erzeugen. Dabei gilt für die Bit-Verknüpfung: Ist entweder das eine oder das andere Eingangsbit gesetzt, dann wird das Ausgangsbit gesetzt:
0 XOR 0 ergibt 0 (keines der Bits gesetzt) 0 XOR 1 ergibt 1 (eines der Bits gesetzt) 1 XOR 0 ergibt 1 (eines der Bits gesetzt) 1 XOR 1 ergibt 0 (beide der Bits gesetzt)
Durch die XOR-Verknüpfung ergibt es sich, dass die Verschlüsselung in beide Richtungen funktioniert. Man kann also einen verschlüsselten Strom wieder entschlüsseln, indem man ihn nochmals mit dem Schlüssel verknüpft ("verschlüsselt").

Ist der Schlüssel rein zufällig, einmalig und so lang wie der Klartext, dann ist dieses Verschlüsselungsverfahren mathematisch beweisbar sicher (siehe dazu One-Time-Pad-Chiffre). XOR ist bidirektional, d. h. ein Chiffrat wird durch erneutes Verschlüsseln wieder zum Klartext.


In der Elektronik gibt es zum Aufbau von logischen Schaltungen auch ein XOR-Gatter, siehe dazu auch den Artikel Digitale Logik und Logikgatter einfach erklärt. Dort ist es zum Beispiel in dem IC 7486 verbaut. Es kann aber auch durch die Verwendung von 4 NAND-Gattern emuliert werden. NAND-Gatter sind besonders einfach und kostengünstig zu produzieren. Die XOR-Chiffre kann also leicht in Hardware abgebildet werden.

Auch in der mathematischen Logik ist die XOR-Verknüpfung von Bedeutung. Dort wird es durch folgendes Symbol bezeichnet:

Beschreibung des Algorithmus

Schlüssel und Chiffrat müssen zweistellig hexadezimal angegeben werden und repräsentieren so jeweils Zahlen mit Werten von 0 bis 255 (00 bis FF), die auch in 8 Bit (= 1 Byte) dargestellt werden können.

Möchten Sie normalen Text (ASCII) per XOR verschlüsseln, dann benutzen Sie vorher die Enkoder-Funktion Text ASCII -> Hex 00-FF. Das Ergebnis wird höchstwahrscheinlich binär sein und in hexadezimal ausgegeben.

Der Algorithmus kombiniert bitweise jeden Wert des Chiffrats per XOR (Exklusives Oder) mit dem Wert des Schlüssels im Werteraum 0 bis 255 (2stelliges Hex). Ist der Schlüssel verbraucht, wird bei Beginn des Schlüssels weiter gearbeitet, der Schlüssel wird also wiederholt.

Beispiel

Klartext:4b6c617274657874
Schlüssel:5363686c75737365
Chiffrat:180F091E01160B11
0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0 4b 6c 61 72 74 65 78 74 Klartext hex 01001011 01101100 01100001 ... bin 53 63 68 6c 75 73 73 65 Schlüssel hex 01010011 01100011 01101000 ... bin -------- -------- -------- 00011000 00001111 00001001 ... XOR Ergebnis bin 18 0F 09 1E 01 16 0B 11 hex

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (DeCoder / Encoder / Solver-Tool)