XOR Chiffre
Kategorisierung: | Modern und binär-basiert | ||
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) 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.
|
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