Moderne Symmetrische Verschlüsselung
Nachdem wir klassische Verschlüsselungsverfahren wie Caesar und Vigenère kennengelernt haben, schauen wir uns an, wie Computer heute Nachrichten verschlüsseln. Der Grundgedanke bleibt gleich: Sender und Empfänger teilen sich einen geheimen Schlüssel. Deshalb heißt diese Art der Verschlüsselung symmetrisch - beide Seiten verwenden den gleichen Schlüssel.
Von Text zu Binärzahlen
Computer arbeiten nicht mit Buchstaben, sondern mit Binärzahlen (Nullen und Einsen). Bevor wir einen Text verschlüsseln können, müssen wir ihn also erst in Binär umwandeln.
ASCII-Codierung
Jeder Buchstabe, jede Ziffer und jedes Sonderzeichen hat einen numerischen Code im ASCII-System (American Standard Code for Information Interchange). Dieser Code kann dann als Binärzahl dargestellt werden.
Beispiele:
| Zeichen | ASCII-Wert | Binär (8-Bit) |
|---|---|---|
| A | 65 | 01000001 |
| B | 66 | 01000010 |
| H | 72 | 01001000 |
| a | 97 | 01100001 |
| 0 | 48 | 00110000 |
Das Wort "Hallo" wird also zu:
H a l l o
01001000 01100001 01101100 01101100 01101111Interaktiv: Text ↔ Binär Konverter
Probiere selbst aus, wie Text in Binär umgewandelt wird:
Text ↔ Binär Konverter
Bilder verschlüsseln
Text ist nicht das Einzige, was in Binär umgewandelt werden kann - jede digitale Datei lässt sich auf diese Weise verschlüsseln! Ein Bild besteht aus Pixeln, und jedes Pixel hat eine Farbe, die als Zahl gespeichert wird.
So funktioniert's:
- Bild wird rasterisiert - auf eine feste Größe (z.B. 50×50 Pixel) skaliert
- Farben werden reduziert - jeder RGB-Kanal (Rot, Grün, Blau) wird auf 2 Bit reduziert (4 Stufen pro Farbe)
- Jedes Pixel wird in Binär umgewandelt - 6 Bit Farbe + 2 Bit Padding = 8 Bit pro Pixel
- Das Ergebnis: 50×50 Pixel = 2500 Pixel × 8 Bit = 20.000 Bits
Warum 8 Bit? Damit die Daten perfekt in 8-Bit Blöcke passen und mit den Standard-Verschlüsselungstools kompatibel sind!
Diese Binärdaten können dann genauso verschlüsselt werden wie Text!
Interaktiv: Bild-Verschlüsselung
Probiere es selbst aus: Lade ein Bild hoch, kopiere die Binärdaten, verschlüssele sie mit dem XOR-Tool weiter oben, und füge das verschlüsselte Ergebnis wieder ein:
Bild-Verschlüsselung
Bilder können genauso wie Text in Binär umgewandelt und verschlüsselt werden!
1. Bild hochladen
3. Verschlüsseltes Bild einfügen
XOR-Verschlüsselung
Jetzt, wo wir Text in Binär umwandeln können, brauchen wir eine Methode zur Verschlüsselung. Eine der einfachsten und gleichzeitig mächtigsten Operationen in der Kryptographie ist XOR (exklusives ODER).
Was ist XOR?
XOR ist eine logische Operation, die zwei Bits vergleicht:
| Bit 1 | Bit 2 | XOR-Ergebnis |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Regel: Das Ergebnis ist 1, wenn die beiden Bits unterschiedlich sind.
Verschlüsselung mit XOR
Um einen Text zu verschlüsseln, führen wir XOR zwischen jedem Bit des Textes und jedem Bit des Schlüssels durch:
Beispiel:
Klartext (H): 01001000
Schlüssel (K): 01001011
⊕ (XOR)
Geheimtext: 00000011Schlüsselwiederholung
Was passiert, wenn der Schlüssel kürzer ist als der Text? Wir wiederholen den Schlüssel einfach:
Beispiel:
Text: 01001000 01100001 01101100 (Hal)
Schlüssel: 10101010 10101010 10101010 (Wiederholt)
⊕ XOR
Geheimtext: 11100010 11001011 11000110Besondere Eigenschaft von XOR
XOR hat eine fantastische Eigenschaft: Wenn man das Ergebnis nochmal mit dem gleichen Schlüssel XOR-verknüpft, erhält man den ursprünglichen Text zurück!
Geheimtext ⊕ Schlüssel = KlartextDas bedeutet: Ver- und Entschlüsselung sind identisch!
Interaktiv: XOR-Verschlüsselung
Probiere selbst aus, wie XOR-Verschlüsselung funktioniert:
XOR Verschlüsselung
Der Schlüssel wird wiederholt, wenn er kürzer als der Text ist.
Schwäche der einfachen XOR-Verschlüsselung
Die einfache XOR-Verschlüsselung mit Schlüsselwiederholung hat ein Problem: Wenn ein Angreifer Teile des Klartexts kennt oder erraten kann, kann er Informationen über den Schlüssel gewinnen. Noch schlimmer: Wenn der gleiche Schlüssel für mehrere Nachrichten verwendet wird, entstehen Muster, die erkennbar sind.
Block-Verkettung (CBC-Modus)
Um die Sicherheit zu erhöhen, verwenden moderne Verschlüsselungssysteme einen Trick: Sie verketten die Blöcke miteinander. Diese Methode heißt CBC (Cipher Block Chaining).
Wie funktioniert CBC?
Die Idee ist genial einfach: Bevor ein Block verschlüsselt wird, wird er mit dem vorherigen Geheimtext-Block XOR-verknüpft.
Der Prozess:
Block 1:
- Klartext-Block ⊕ IV (Initialisierungsvektor)
- Ergebnis ⊕ Schlüssel = Geheimtext-Block 1
Block 2:
- Klartext-Block ⊕ Geheimtext-Block 1
- Ergebnis ⊕ Schlüssel = Geheimtext-Block 2
Block 3:
- Klartext-Block ⊕ Geheimtext-Block 2
- Ergebnis ⊕ Schlüssel = Geheimtext-Block 3
... und so weiter!
Der Initialisierungsvektor (IV)
Für den ersten Block gibt es noch keinen vorherigen Geheimtext. Deshalb verwenden wir einen Initialisierungsvektor (IV) - eine zufällige Bitfolge, die nur für diese eine Nachricht verwendet wird.
Wichtig: Der IV muss nicht geheim sein! Er wird zusammen mit dem Geheimtext übertragen. Seine Aufgabe ist es nur, dafür zu sorgen, dass die gleiche Nachricht mit dem gleichen Schlüssel jedes Mal anders aussieht.
Vorteile von CBC
- Keine Muster: Selbst wenn zwei Blöcke den gleichen Klartext haben, sehen die Geheimtext-Blöcke unterschiedlich aus
- Fehlerausbreitung: Jeder Block hängt von allen vorherigen ab
- Sicherheit: Viel schwieriger anzugreifen als einfache XOR-Verschlüsselung
Interaktiv: CBC-Modus
Schau dir an, wie die Blöcke miteinander verkettet werden:
CBC-Modus (Cipher Block Chaining)
Jeder Block wird mit dem vorherigen Geheimtext-Block XOR-verknüpft. Der erste Block verwendet einen Initialisierungsvektor (IV).
Moderne Verschlüsselungsalgorithmen
In der Praxis verwenden wir nicht einfach XOR, sondern komplexere Algorithmen wie AES (Advanced Encryption Standard). Diese verwenden:
- Mehrere Verschlüsselungsrunden (AES-128 verwendet 10 Runden)
- Verschiedene Operationen (Substitution, Permutation, XOR)
- Modi wie CBC, um Blöcke zu verketten
- Schlüssel mit 128, 192 oder 256 Bit Länge
Aber das Grundprinzip bleibt gleich: Binäre Daten werden mit einem Schlüssel durch mathematische Operationen verschlüsselt.
Kerckhoffs'sches Prinzip
Der niederländische Kryptologe Auguste Kerckhoffs formulierte 1883 einen wichtigen Grundsatz:
Die Sicherheit eines Verschlüsselungssystems darf nicht von der Geheimhaltung des Algorithmus abhängen, sondern nur von der Geheimhaltung des Schlüssels.
Was bedeutet das?
- Der Algorithmus (z.B. AES, CBC-Modus) darf öffentlich bekannt sein
- Nur der Schlüssel muss geheim bleiben
- Ein guter Algorithmus bleibt sicher, selbst wenn jeder weiß, wie er funktioniert
Warum ist das wichtig?
- Transparenz: Öffentliche Algorithmen können von Experten überprüft werden
- Vertrauen: Keine "Security by Obscurity" (Sicherheit durch Verschleierung)
- Standards: Ermöglicht die Entwicklung von Standards wie AES
Deshalb sind moderne Verschlüsselungsalgorithmen wie AES öffentlich dokumentiert und trotzdem sicher - solange der Schlüssel geheim bleibt!
Zusammenfassung
Moderne symmetrische Verschlüsselung funktioniert in mehreren Schritten:
- Text wird in Binär umgewandelt (z.B. mit ASCII)
- Verschlüsselung erfolgt mit XOR und anderen Operationen
- Blöcke werden verkettet (z.B. mit CBC-Modus)
- Der Algorithmus ist öffentlich, nur der Schlüssel ist geheim (Kerckhoffs-Prinzip)
Diese Methoden bilden die Grundlage für die sichere Kommunikation, die wir heute täglich verwenden - von HTTPS-Verbindungen bis zu verschlüsselten Messengern!
Das Schlüsselproblem
Symmetrische Verschlüsselung ist schnell und sicher - aber sie hat ein fundamentales Problem: Wie tauscht man den Schlüssel aus?
Das Dilemma
Stell dir vor, Alice möchte Bob eine verschlüsselte Nachricht schicken:
- Alice und Bob brauchen den gleichen Schlüssel
- Der Schlüssel muss geheim bleiben
- Aber wie bekommt Bob den Schlüssel, ohne dass ein Angreifer ihn abfängt?
Das Problem: Wenn Alice den Schlüssel über einen unsicheren Kanal schickt (z.B. Internet), kann ein Angreifer ihn abfangen!
Alice ----[Schlüssel]----> Eve (Angreifer) ----[Schlüssel]----> BobMögliche Angriffe
Wenn ein Angreifer den Schlüssel kennt oder abfängt, kann er:
- Abhören (Eavesdropping): Alle Nachrichten mitlesen
- Nachrichten ersetzen: Eigene verschlüsselte Nachrichten einschleusen
- Nachrichten blockieren: Kommunikation verhindern
- Man-in-the-Middle: Sich zwischen Alice und Bob schalten, beiden vortäuschen, der andere zu sein
Klassische Lösungen (unsicher)
- Persönliche Übergabe: Schlüssel physisch übergeben (unpraktisch!)
- Kurier: Vertrauensperson schicken (teuer, langsam)
- Vorab vereinbaren: Schlüssel im Voraus austauschen (unflexibel)
Das Grundproblem bleibt: Bei symmetrischer Verschlüsselung müssen sich beide Seiten vor der sicheren Kommunikation auf einen geheimen Schlüssel einigen.
Die Frage
Gibt es einen Weg, sicher zu kommunizieren, ohne vorher einen Schlüssel auszutauschen?
Die Antwort: Asymmetrische Verschlüsselung - mehr dazu im nächsten Kapitel!