Asymmetrische Verschlüsselung
Hinweis
Die Bilder im folgenden Kapitel wurden von den Unterrichtsmaterialien der Kolleg:innen am Gymnasium Kirchenfeld übernommen und stehen unter der Lizenz CC BY-NC-SA 4.0.
Im letzten Kapitel haben wir gesehen, wie moderne symmetrische Verschlüsselung funktioniert - aber auch ihr fundamentales Problem kennengelernt: Wie tauscht man den Schlüssel sicher aus?
Das Schlüsselaustausch-Problem
Zur Erinnerung: Bei symmetrischer Verschlüsselung verwenden Alice und Bob den gleichen Schlüssel zum Ver- und Entschlüsseln. Das bedeutet:
Alice ----[Schlüssel???]----> BobDas Dilemma:
- Alice und Bob müssen sich auf einen Schlüssel einigen
- Der Schlüssel muss geheim bleiben
- Aber wie bekommt Bob den Schlüssel, ohne dass ein Angreifer ihn abfängt?
Wenn Alice den Schlüssel über das Internet schickt, kann ein Angreifer ihn einfach mitlesen und alle zukünftigen Nachrichten entschlüsseln!
Die Revolution: Asymmetrische Verschlüsselung
1976 hatten Whitfield Diffie und Martin Hellman eine revolutionäre Idee: Was wäre, wenn es zwei verschiedene Schlüssel gäbe?
Das Konzept
Jede Person hat nun zwei Schlüssel:
Öffentlicher Schlüssel (Public Key):
- Darf jeder kennen
- Wird zum Verschlüsseln verwendet
- Kann frei verteilt werden
Privater Schlüssel (Private Key):
- Muss geheim bleiben
- Wird zum Entschlüsseln verwendet
- Verlässt niemals deinen Computer
Wie funktioniert das?
Die magische Eigenschaft:
- Was mit dem öffentlichen Schlüssel verschlüsselt wird, kann nur mit dem zugehörigen privaten Schlüssel entschlüsselt werden
- Selbst wenn jeder den öffentlichen Schlüssel kennt, kann niemand damit entschlüsseln!
Alice verschlüsselt mit Bobs öffentlichem Schlüssel
↓
Nur Bob kann mit seinem privaten Schlüssel entschlüsselnDas Briefkasten-Analogie
Stell dir vor, Bob hat einen öffentlichen Briefkasten:
- Jeder kann einen Brief einwerfen (verschlüsseln mit Public Key)
- Aber nur Bob hat den Schlüssel zum Öffnen (Private Key)
- Selbst die Person, die den Brief eingeworfen hat, kann ihn nicht mehr herausholen!
RSA-Verschlüsselung
Der bekannteste asymmetrische Algorithmus heißt RSA (nach den Erfindern Rivest, Shamir und Adleman, 1977). RSA basiert auf einer einfachen mathematischen Tatsache:
Zwei große Primzahlen zu multiplizieren ist einfach - aber das Ergebnis wieder in die ursprünglichen Primzahlen zu zerlegen ist extrem schwer!
Schlüsselerzeugung - Schritt für Schritt
Schauen wir uns an, wie RSA-Schlüssel erzeugt werden. Wir verwenden kleine Zahlen, damit du das Prinzip verstehst. In der Praxis verwendet man Primzahlen mit hunderten von Stellen!
Schritt 1: Zwei Primzahlen wählen
Wir wählen zwei Primzahlen:
- p = 11
- q = 13
Schritt 2: n berechnen
Wir multiplizieren die beiden Primzahlen:
- n = p × q = 11 × 13 = 143
Diese Zahl n ist Teil des öffentlichen Schlüssels. Ein Angreifer könnte versuchen, n wieder in die Primfaktoren zu zerlegen - aber bei sehr großen Zahlen würde das Millionen Jahre dauern!
Schritt 3: φ(n) berechnen
Wir berechnen: φ(n) = (p-1) × (q-1) = 10 × 12 = 120
Diese Zahl brauchen wir für die Schlüsselberechnung.
Schritt 4: Öffentlichen Exponenten e wählen
Wir wählen eine Zahl e, die mit φ(n) teilerfremd ist (keine gemeinsamen Teiler außer 1).
- e = 7
Schritt 5: Privaten Exponenten d berechnen
Wir berechnen d, sodass: (e × d) mod φ(n) = 1
- d = 103
Das Ergebnis
Öffentlicher Schlüssel: (e=7, n=143) → Darf jeder kennen Privater Schlüssel: (d=103, n=143) → Muss geheim bleiben
Die Primzahlen p und q werden sofort gelöscht - niemand darf sie kennen!
Interaktiv: RSA Schlüssel-Generator
Probiere selbst aus, wie RSA-Schlüssel aus Primzahlen erzeugt werden:
RSA Schlüssel-Generator
Wähle zwei Primzahlen und beobachte, wie öffentliche und private Schlüssel erzeugt werden.
Verschlüsselung und Entschlüsselung
Jetzt kommt der spannende Teil: Wie verschlüsseln wir mit diesen Schlüsseln?
Nachricht vorbereiten
Zuerst wandeln wir unsere Nachricht in Zahlen um (z.B. mit ASCII). Nehmen wir an, wir wollen die Zahl 42 verschlüsseln.
Verschlüsseln (mit Public Key)
Alice verwendet Bobs öffentlichen Schlüssel (e=7, n=143):
Geheimtext = 42^7 mod 143 = 100Alice schickt die Zahl 100 an Bob.
Entschlüsseln (mit Private Key)
Bob verwendet seinen privaten Schlüssel (d=103, n=143):
Klartext = 100^103 mod 143 = 42Bob erhält die ursprüngliche Nachricht 42 zurück!
Die Magie dahinter
Das Faszinierende: Auch wenn ein Angreifer:
- Die verschlüsselte Nachricht (100) kennt
- Den öffentlichen Schlüssel (e=7, n=143) kennt
- Weiß, wie RSA funktioniert
...kann er die Nachricht trotzdem nicht entschlüsseln, weil er d (den privaten Schlüssel) nicht kennt. Und um d zu berechnen, müsste er n in seine Primfaktoren zerlegen - was bei großen Zahlen praktisch unmöglich ist!
Interaktiv: RSA Ver- und Entschlüsselung
Probiere selbst aus, wie RSA-Verschlüsselung funktioniert:
RSA Ver- und Entschlüsselung
Probiere aus, wie Zahlen mit RSA verschlüsselt und entschlüsselt werden.
Schlüssel eingeben:
Warum ist das sicher?
Die Sicherheit von RSA basiert auf einem mathematischen Problem, das extrem schwer zu lösen ist:
Primfaktorzerlegung: Gegeben eine große Zahl n (z.B. mit 617 Stellen), finde die beiden Primzahlen p und q, deren Produkt n ergibt.
Beispiel:
- Einfach: 143 = 11 × 13 (kann man noch ausrechnen)
- Schwer: Eine 617-stellige Zahl faktorisieren würde selbst mit den schnellsten Supercomputern länger dauern als das Alter des Universums!
Solange niemand einen schnellen Algorithmus für die Primfaktorzerlegung findet, bleibt RSA sicher.
Das Problem mit Asymmetrischer Verschlüsselung
Asymmetrische Verschlüsselung löst das Schlüsselaustausch-Problem - aber sie hat einen großen Nachteil:
Sie ist extrem langsam! 🐌
Die mathematischen Operationen (Potenzieren mit großen Zahlen) sind 100-1000 mal langsamer als symmetrische Verschlüsselung!
Vergleich:
- AES (symmetrisch): Verschlüsselt Gigabytes pro Sekunde
- RSA (asymmetrisch): Verschlüsselt Kilobytes pro Sekunde
Stell dir vor, du willst ein HD-Video verschlüsselt übertragen - mit RSA würde das Stunden dauern statt Sekunden!
Die Lösung: Hybride Verschlüsselung
In der Praxis kombinieren wir das Beste aus beiden Welten:
So funktioniert's
Symmetrischen Schlüssel generieren
- Alice erzeugt einen zufälligen AES-Schlüssel (z.B. 256 Bit)
- Dieser Schlüssel wird nur für diese eine Verbindung verwendet
Schlüssel asymmetrisch verschlüsseln
- Alice verschlüsselt den AES-Schlüssel mit Bobs öffentlichem RSA-Schlüssel
- Nur wenige Bytes müssen mit RSA verschlüsselt werden - das geht schnell!
Daten symmetrisch verschlüsseln
- Alice verschlüsselt die eigentliche Nachricht mit dem AES-Schlüssel
- Das ist super schnell, auch bei großen Datenmengen!
Beides senden
- Alice schickt: verschlüsselter AES-Schlüssel + verschlüsselte Nachricht
- Bob entschlüsselt zuerst den AES-Schlüssel mit seinem privaten RSA-Schlüssel
- Dann entschlüsselt er die Nachricht mit dem AES-Schlüssel
┌─────────────────────────────────────────┐
│ Alice │
├─────────────────────────────────────────┤
│ 1. Generiere AES-Schlüssel │
│ 2. Verschlüssele AES-Key mit Bobs │
│ Public Key (RSA) │
│ 3. Verschlüssele Nachricht mit AES │
└────────────┬────────────────────────────┘
│
├──> Verschlüsselter AES-Key (klein)
├──> Verschlüsselte Nachricht (groß)
│
▼
┌─────────────────────────────────────────┐
│ Bob │
├─────────────────────────────────────────┤
│ 1. Entschlüssele AES-Key mit Private │
│ Key (RSA) │
│ 2. Entschlüssele Nachricht mit AES │
└─────────────────────────────────────────┘Vorteile der hybriden Verschlüsselung
- ✅ Kein Schlüsselaustausch-Problem - Der AES-Schlüssel wird sicher übertragen
- ✅ Schnell - Nur der kleine Schlüssel wird mit RSA verschlüsselt
- ✅ Sicher - Kombiniert die Stärken beider Verfahren
- ✅ Praktisch - Wird überall verwendet (HTTPS, VPN, SSH, etc.)
Interaktiv: Hybride Verschlüsselung
Schau dir an, wie symmetrische und asymmetrische Verschlüsselung kombiniert werden:
Hybride Verschlüsselung
Beobachte, wie RSA und AES zusammenarbeiten: RSA für den Schlüssel, AES für die Daten.
Symmetrischen Schlüssel generieren
Alice erzeugt einen zufälligen AES-Schlüssel für diese Sitzung.
Schlüssel mit RSA verschlüsseln
Alice verschlüsselt den AES-Schlüssel mit Bobs öffentlichem RSA-Schlüssel.
Nachricht mit AES verschlüsseln
Alice verschlüsselt die Nachricht mit dem schnellen AES-Algorithmus.
Übertragung
Alice sendet beides an Bob: verschlüsselter AES-Schlüssel + verschlüsselte Nachricht.
Bob entschlüsselt
Bob verwendet seinen privaten RSA-Schlüssel für den AES-Schlüssel, dann AES für die Nachricht.
Wo wird das verwendet?
Hybride Verschlüsselung begegnet dir jeden Tag:
HTTPS (Sichere Webseiten)
Wenn du eine Website mit https:// besuchst:
- Dein Browser holt sich den öffentlichen Schlüssel des Servers
- Browser und Server einigen sich auf einen AES-Schlüssel (verschlüsselt mit RSA)
- Alle weiteren Daten werden mit AES verschlüsselt
WhatsApp, Signal, Telegram
Messenger verwenden hybride Verschlüsselung:
- Jedes Gerät hat ein RSA-Schlüsselpaar
- Für jede Nachricht wird ein neuer AES-Schlüssel erzeugt
- Nur Sender und Empfänger können die Nachricht lesen
E-Mail-Verschlüsselung (PGP)
- Öffentliche Schlüssel werden ausgetauscht
- E-Mails werden hybrid verschlüsselt
- Nur der Empfänger kann sie lesen
VPN & SSH
Sichere Verbindungen zu Servern verwenden hybride Verschlüsselung für schnelle und sichere Datenübertragung.