Verschlüsselung: Von Caesar bis Diffie-Hellman

lock
Bevorstehend

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.

Ziele dieses Moduls
  • 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

SymmetrischAsymmetrisch
GeschwindigkeitSehr schnellLangsam (~1000x langsamer)
Schlüssel1 geheimer SchlüsselSchlüsselpaar (Public + Private)
BeispielAESDiffie-Hellman, RSA
VorteilSchnell, einfachKein Schlüsselaustausch-Problem
NachteilSchlüsselaustausch ist unsicherLangsam, 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?

Antwort wird geladen...
Lokal gespeichert — Login, um Antworten dauerhaft zu sichern.

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.

  1. Sie einigen sich öffentlich auf eine gemeinsame Farbe (z.B. Gelb)
  2. Alice wählt eine geheime Farbe (Rot) und mischt: Gelb + Rot = Orange
  3. Bob wählt eine geheime Farbe (Blau) und mischt: Gelb + Blau = Grün
  4. Sie tauschen die Mischungen (Orange und Grün) – öffentlich!
  5. 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

Lokal gespeichert — Login, um Antworten dauerhaft zu sichern.

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)

  1. Authentifizierung (asymmetrisch): Der Server beweist mit einem Zertifikat, dass er wirklich der richtige Server ist (z.B. echt google.com)
  2. Schlüsselaustausch (Diffie-Hellman): Client und Server berechnen unabhängig voneinander denselben Session Key – ohne ihn je zu übertragen
  3. 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.