Verschlüsselung: Von Caesar bis Diffie-Hellman
Lerne die Grundlagen der Verschlüsselung: Caesar-Chiffre und XOR in Python implementieren, symmetrisch vs. asymmetrisch, Diffie-Hellman-Schlüsselaustausch, hybride Verschlüsselung und Hash-Funktionen verstehen.
- Sie können den Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung erklären und je ein Anwendungsbeispiel nennen.Verstehen
- Sie können erklären, wie symmetrische und asymmetrische Verschlüsselung kombiniert werden (hybride Verschlüsselung, z.B. HTTPS).Verstehen
- Sie können einfache Verschlüsselungsalgorithmen in Python implementieren und anwenden.Anwenden
In diesem Modul lernst du die Grundlagen der Verschlüsselung kennen. Du implementierst die Caesar-Chiffre in Python, lernst den Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung mit ihren Vor- und Nachteilen. Du verstehst, wie der Diffie-Hellman-Schlüsselaustausch funktioniert (Farben-Analogie), wie symmetrische und asymmetrische Verfahren kombiniert werden (HTTPS) und was Hash-Funktionen sind.
Was ist Verschlüsselung?
Verschlüsselung verwandelt lesbare Daten (Klartext) in eine unlesbare Form (Chiffretext), sodass nur autorisierte Personen die Daten wieder lesen können.
Stell dir vor, du schreibst eine Nachricht an eine Freundin. Wenn jemand die Nachricht abfängt, soll er sie nicht lesen können. Verschlüsselung löst genau dieses Problem.
Zwei Hauptarten
- Symmetrische Verschlüsselung: Derselbe Schlüssel wird zum Ver- und Entschlüsseln verwendet (wie ein Haustürschlüssel)
- Asymmetrische Verschlüsselung: Es gibt zwei Schlüssel – einen öffentlichen (Public Key) und einen privaten (Private Key)
Symmetrisch vs. Asymmetrisch
Symmetrische Verschlüsselung
Sender und Empfänger verwenden denselben geheimen Schlüssel. Das ist schnell und effizient, aber es gibt ein Problem: Wie tauscht man den Schlüssel sicher aus?
Beispiele: AES (Advanced Encryption Standard), Caesar-Chiffre, XOR
Asymmetrische Verschlüsselung
Es gibt ein Schlüsselpaar:
- Public Key (öffentlich) – damit verschlüsselt man Nachrichten an dich
- Private Key (geheim) – nur du kannst damit die Nachrichten entschlüsseln
Wie ein Briefkasten: Jeder kann etwas hineinwerfen (Public Key), aber nur du hast den Schlüssel zum Öffnen (Private Key).
Beispiele: Diffie-Hellman (Schlüsselaustausch), RSA (Verschlüsselung + Signaturen)
Vorteile und Nachteile
| Symmetrisch | Asymmetrisch | |
|---|---|---|
| Geschwindigkeit | Sehr schnell | Langsam (~1000x langsamer) |
| Schlüssel | 1 geheimer Schlüssel | Schlüsselpaar (Public + Private) |
| Beispiel | AES | Diffie-Hellman, RSA |
| Vorteil | Schnell, einfach | Kein Schlüsselaustausch-Problem |
| Nachteil | Schlüsselaustausch ist unsicher | Langsam, rechenintensiv |
Das Schlüsselaustausch-Problem: Bei symmetrischer Verschlüsselung müssen beide Seiten denselben Schlüssel haben. Wenn man den Schlüssel über das Internet verschickt, kann er abgefangen werden. Die Lösung: Asymmetrische Verfahren wie Diffie-Hellman.
Die Caesar-Chiffre in Python
Die Caesar-Chiffre ist eine der ältesten Verschlüsselungsmethoden. Julius Caesar hat sie verwendet, um geheime Nachrichten zu senden. Dabei wird jeder Buchstabe im Alphabet um eine bestimmte Anzahl verschoben.
Beispiel mit Verschiebung 3: A→D, B→E, C→F, ..., Z→C
Aus HALLO wird KDOOR.
Implementierung in Python
def caesar_encrypt(text, shift):
result = ""
for char in text:
if char.isalpha():
base = ord('A') if char.isupper() else ord('a')
result += chr((ord(char) - base + shift) % 26 + base)
else:
result += char
return result
def caesar_decrypt(text, shift):
return caesar_encrypt(text, -shift)
# Test
nachricht = "HALLO WELT"
verschluesselt = caesar_encrypt(nachricht, 3)
print(f"Original: {nachricht}")
print(f"Verschlüsselt: {verschluesselt}")
print(f"Entschlüsselt: {caesar_decrypt(verschluesselt, 3)}")Probiere es aus! Was passiert bei verschiedenen Verschiebungen?
Verschlüssele den Text INFORMATIK mit der Caesar-Chiffre und Verschiebung 5. Was ist das Ergebnis?
Hash-Funktionen
Hash-Funktionen sind Einweg-Verschlüsselung: Aus einem Input wird ein fester Hash-Wert berechnet, aber man kann den Input nicht aus dem Hash zurückgewinnen.
Eigenschaften:
- Kleine Änderung im Input → völlig anderer Hash
- Immer gleiche Länge (z.B. SHA-256: 64 Zeichen)
- Nicht umkehrbar
Python Beispiel
import hashlib
text = "Hallo Welt"
hash_wert = hashlib.sha256(text.encode()).hexdigest()
print(f"Text: {text}")
print(f"SHA-256: {hash_wert}")
# Kleine Änderung → völlig anderer Hash
text2 = "Hallo welt" # nur 'w' klein
text2_hash = hashlib.sha256(text2.encode()).hexdigest()
print(f"\nText: {text2}")
print(f"SHA-256: {text2_hash}")Hash-Funktionen werden verwendet für:
- Passwort-Speicherung (nächste Lektion!)
- Datei-Integrität prüfen (Download unverfälscht?)
- Digitale Signaturen
Der Schlüsselaustausch: Diffie-Hellman
Das grösste Problem der symmetrischen Verschlüsselung: Wie kommen zwei Personen sicher auf denselben Schlüssel, ohne dass jemand ihn abfangen kann?
1976 fanden Whitfield Diffie und Martin Hellman eine geniale Lösung – das Diffie-Hellman-Schlüsselaustauschverfahren. Die Idee lässt sich am besten mit Farben erklären.
Die Farben-Analogie
Stell dir vor: Alice und Bob möchten sich auf eine geheime Farbe einigen, ohne sie jemals über das Netz zu schicken.
- Sie einigen sich öffentlich auf eine gemeinsame Farbe (z.B. Gelb)
- Alice wählt eine geheime Farbe (Rot) und mischt: Gelb + Rot = Orange
- Bob wählt eine geheime Farbe (Blau) und mischt: Gelb + Blau = Grün
- Sie tauschen die Mischungen (Orange und Grün) – öffentlich!
- Jeder fügt die eigene geheime Farbe zur Mischung des anderen hinzu:
- Alice: Grün + Rot = Braun
- Bob: Orange + Blau = Braun
Das Ergebnis ist dieselbe Farbe! Ein Zuhörer sieht nur Gelb, Orange und Grün – kann aber nicht auf Braun schliessen, weil «Farben entmischen» unmöglich ist.
Interaktives Experiment: Farben-Analogie auf mygymer.ch ausprobieren
Was ist der wesentliche Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung?
Wähle eine Antwort
Asymmetrische Verschlüsselung
Es gibt ein Schlüsselpaar:
- Public Key (öffentlich) – damit verschlüsselt man Nachrichten an dich
- Private Key (geheim) – nur du kannst damit die Nachrichten entschlüsseln
Wie ein Briefkasten: Jeder kann etwas hineinwerfen (Public Key), aber nur du hast den Schlüssel zum Öffnen (Private Key).
Reflection
Hybride Verschlüsselung: Das Beste aus beiden Welten
In der Praxis kombiniert man symmetrische und asymmetrische Verschlüsselung – das nennt man hybride Verschlüsselung.
Wie funktioniert HTTPS? (vereinfacht)
- Authentifizierung (asymmetrisch): Der Server beweist mit einem Zertifikat, dass er wirklich der richtige Server ist (z.B. echt google.com)
- Schlüsselaustausch (Diffie-Hellman): Client und Server berechnen unabhängig voneinander denselben Session Key – ohne ihn je zu übertragen
- Datenübertragung (symmetrisch, AES): Alle weiteren Daten werden mit dem gemeinsamen Session Key verschlüsselt
Warum diese Kombination?
- Diffie-Hellman löst das Schlüsselaustausch-Problem → sicherer Schlüssel ohne Übertragung
- AES ist schnell → grosse Datenmengen effizient verschlüsseln
- Zusammen: Sicher UND schnell
Weiterführend: RSA
RSA ist ein weiteres wichtiges asymmetrisches Verfahren, das auf Primfaktorzerlegung basiert. Es wird hauptsächlich für digitale Signaturen und Zertifikate eingesetzt. Wer mehr darüber erfahren möchte, kann das optionale Vertiefungsmodul «Vertiefung: Das RSA-Verfahren» durcharbeiten.