8-Bit Verschlüsselung
Artikelserie: "Von der bitweisen bis zur asymmetrischen Verschlüsselung"
Etwas mehr Sicherheit als die einfache bitweise Verschlüsselung bietet die 8-Bit Verschlüsselung.
Soll z.B. das Wort "Apfel" verschlüsselt werden, sucht man sich erst einmal für jeden einzelnen Buchstaben des Wortes "Apfel" den entsprechenden ASCII-Code heraus:
Teil 1: Die bitweise Verschlüsselung
Teil 2: 8-Bit Verschlüsselung
Teil 3: 16-Bit Verschlüsselung
Teil 4: Asymmetrische Verschlüsselung
- für den großen Buchstaben "A" wäre das 01000001
- für den kleinen Buchstaben "p" wäre das 01110000
- für den kleinen Buchstaben "f" wäre das 01100110
- für den kleinen Buchstaben "e" wäre das 01100101
- für den kleinen Buchstaben "l" wäre das 01101100
(Diese Zuordnung ist international festgelegt.)
Oder in einer Tabelle...
|
A |
p |
f |
e |
l |
"Apfel" im ASCII-Code: |
01000001 |
01110000 |
01100110 |
01100101 |
01101100 |
Um das Wort "Apfel" nun zu verschlüsseln...
(diesmal nicht die einfache bitweise Verschlüsselung, sondern die etwas bessere 8-Bit Verschlüsselung)
...denkt man sich irgendeine x-beliebige achtstellige Zahlenreihe aus Nullen und Einsen aus:
10101101 wäre z.B. so eine achtstellige Zahlenreihe aus Nullen und Einsen.
01110011 wäre eine andere achtstellige Zahlenreihe.
...oder man nimmt noch eine andere achtstellige Zahlenreihe, egal welche, eben irgendeine x-beliebige...
...und schreibt diese selbstausgedachte x-beliebige achtstellige Zahlenreihe aus Nullen und Einsen unter den ASCII-Code.
A 01000001 10101101 |
In diesem Beispiel (links) wird die selbstausgedachte achtstellige Zahlenreihe (in diesem Fall: 10101101) zunächst einmal nur unter den ASCII-Code des ersten Buchstaben des Wortes "Apfel" geschrieben... |
Diese selbst ausgedachte Zahlenreihe aus Nullen und Einsen bezeichnet man als "Schlüssel".
...hat man sich einmal für eine Zahlenreihe als Schlüssel entschieden (in diesem Fall: 10101101), dann muss der gleiche Schlüssel für alle folgenden Buchstaben immer wiederholt werden!
A 01000001 10101101 |
p 01110000 10101101 |
f 01100110 10101101 |
e 01100101 10101101 |
l 01101100 10101101 |
(Der ASCII-Code ist für jeden Buchstaben ein anderer,
der Schlüssel ist jedoch jedes Mal der gleiche!)
Im folgenden Beispiel wird ein anderer Schlüssel verwendet und zwar die Zahlenreihe 01110011...
A 01000001 01110011 |
p 01110000 01110011 |
f 01100110 01110011 |
e 01100101 01110011 |
l 01101100 01110011 |
Auch hier gilt: Hat man sich erst einmal für irgendeine x-beliebige Zahlenreihe als Schlüssel entschieden (in diesem Fall: 01110011), dann muss sie für alle folgenden Buchstaben immer wiederholt werden!
Im nächsten Schritt werden nun die "ASCII-Code"-Zahlenreihen und die "Schlüssel"-Zahlenreihen miteinander "verrechnet"...
A 01000001 01110011 -------- 00110010 |
Eine dieser "Verrechnungs-Methoden", "Verschlüsselungsmethoden", bzw. "Rechenverfahren" besteht darin, die untereinander stehenden Nullen und Einsen miteinander zu vergleichen: Immer wenn gleiche Zahlen untereinander stehen (zwei Nullen oder zwei Einsen), dann ist das Ergebnis Null. Immer wenn ungleiche Zahlen untereinander stehen (eine Null und eine Eins oder eine Eins und eine Null), dann ist das Ergebnis Eins. |
(hier wurde als Schlüssel die Zahlenreihe 01110011 verwendet. Das Ergebnis für den Buchstaben "A" ist dann: 00110010)
...und für alle Buchstaben des Wortes "Apfel"...
A 01000001 01110011 -------- 00110010 |
p 01110000 01110011 -------- 00000011 |
f 01100110 01110011 -------- 00010101 |
e 01100101 01110011 -------- 00010110 |
l 01101100 01110011 -------- 00011111 |
(unter zwei ungleichen Zahlen steht eine 1; unter zwei gleichen Zahlen steht eine 0)
... Das Ergebnis für das Wort "Apfel" ist dann:
00110010 00000011 00010101 00010110 00011111
(dies ist der verschlüsselte Text für das Wort "Apfel")
Das Entschlüsseln geschieht in umgekehrter Reihenfolge...
00110010 01110011 -------- 01000001 (A) |
Oben steht die verschlüsselte Zahlenreihe, darunter der Schlüssel. Immer wenn gleiche Zahlen untereinander stehen (zwei Nullen oder zwei Einsen), dann ist das Ergebnis Null. Immer wenn ungleiche Zahlen untereinander stehen (eine Null und eine Eins oder eine Eins und eine Null), dann ist das Ergebnis Eins. |
Das Ergebnis ist 01000001 und diese Zahlenreihe bedeutet im ASCII-Code: "A"
...und für den gesamten verschlüsselten Text...
00110010 01110011 -------- 01000001 (A) |
00000011 01110011 -------- 01110000 (p) |
00010101 01110011 -------- 01100110 (f) |
00010110 01110011 -------- 01100101 (e) |
00011111 01110011 -------- 01101100 (l) |
(unter zwei ungleichen Zahlen steht eine 1; unter zwei gleichen Zahlen steht eine 0)
Das Ergebnis, also die Zeile...
01000001 01110000 01100110 01100101 01101100
...ist der entschlüsselte Text, also der ursprüngliche Originaltext
(in diesem Beispiel das Wort "Apfel")
Sowohl das Verschlüsseln, als auch das Entschlüsseln kann automatisch von einer Software (Ver- und Entschlüsselungsprogramm) durchgeführt werden.
Der verschlüsselte Text, also in diesem Fall die Zahlenreihe...
00110010 00000011 00010101 00010110 00011111
...und der Schlüssel (01110011) inklusive dem "Rechenverfahren", die untereinander stehenden Nullen und Einsen miteinander zu vergleichen und unter zwei ungleichen Zahlen eine 1 und unter zwei gleichen Zahlen eine 0 zu setzen, dürfen nicht in der selben Email stehen, denn sonst könnte jede Person, die diese Email liest, auch wenn sie nicht dazu berechtigt ist, den "geheimen" Text ganz schnell wieder entschlüsseln. Den verschlüsselten Text und den Schlüssel inklusive Rechenverfahren zur "Entschlüsselung", müssen daher dem Empfänger in zwei getrennten Emails mitgeteilt werden.
Das "Rechenverfahren", die untereinander stehenden Nullen und Einsen miteinander zu vergleichen und unter zwei ungleichen Zahlen eine 1 und unter zwei gleichen Zahlen eine 0 zu setzen, heißt auch "XOR-Verknüpfung".
Auch bei dieser Art der Verschlüsselung gibt es noch ein Sicherheitsproblem, das gar nicht mal darin besteht, die verwendete Verschlüsselungsmethode zu erraten, z.B. die XOR-Verknüpfung, sondern vielmehr, dass es mit einer achtstelligen Zahlenreihe aus Nullen und Einsen nur 256 verschiedene Schlüssel (8-Bit-Schlüssel) gibt, die man nacheinander ausprobieren könnte, um den Text zu entschlüsseln.
Die Möglichkeiten wären die Zahlenreihen 00000000, 00000001, 00000010, 00000011, 00000100, 00000101, ... bis ... 11111111.
Das sind insgesamt 256 Möglichkeiten!