Stefan Franke

Fundamentale Ideen der Informatik

Verschlüsselung

Bildbeschreibung

🧭 Übersicht

  • 📌 Forderungen an sichere Systeme
  • 🔐 Symmetrische Verschlüsselungsverfahren
    • Substitutionschiffren
    • One-Time-Padding
  • 🔓 Asymmetrische Verschlüsselung
    • Der RSA-Algorithmus
    • PGP – Pretty Good Privacy
  • ✍️ Digitale Unterschriften

🕵️‍♀️ Können Sie den Geheimcode knacken?

Geheimcode Einstieg

🎯 Motivation

Informationen sollen zuverlässig und vertraulich über unsichere Nachrichtenkanäle geschickt werden können.

Sichere Kommunikation über unsichere Kanäle

📚 Kryptographie

  • 🔎 Kryptographie:
    • Die Wissenschaft von der Datenverschlüsselung
    • Ein Klartext wird mithilfe eines Schlüssels in einen Geheimtext umgewandelt
Klartext zu Geheimtext

🌐 Anwendungsgebiete

  • 📧 E-Mail
  • 🏦 Online-Banking
  • 🛒 Bestellung und Bezahlung von Waren und Dienstleistungen im Internet (E-Commerce)
  • 📺 Pay-TV
  • 💬 Ende-zu-Ende-Verschlüsselung bei Messengern (z. B. WhatsApp, Signal)
  • 🖥️ SSH-Verbindungen zu Servern
  • ...

🔐 Vier Forderungen an ein sicheres Kommunikationssystem

  • Vertraulichkeit (Confidentiality):
    – Einem Unbefugten soll es nicht möglich sein, ausgetauschte Nachrichten zu entschlüsseln und mitzulesen.
  • Integrität (Integrity):
    – Einem Unbefugten soll es nicht möglich sein, abgefangene Nachrichten zu verändern (zumindest nicht so, dass es unerkannt bleibt).
  • Authentizität (Authenticity):
    – Sender und Empfänger wollen die Gewissheit über die Identität des Kommunikationspartners haben.
  • Schlüsselverwaltung (Key Management):
    – Die Art und Weise wie Schlüssel erzeugt, verwahrt, weitergegeben und wieder gelöscht werden, muss sicher sein.

🔐 Symmetrische Verschlüsselung

  • Nachricht wird mit einem geheimen Schlüssel verschlüsselt
  • Zum Verschlüsseln und Entschlüsseln wird derselbe Schlüssel verwendet
  • Geheimer Schlüssel muss über einen sicheren Kanal ausgetauscht werden.
Symmetrische Verschlüsselung

🔓 Asymmetrische Verschlüsselung

  • Verschlüsselung erfolgt mit einem öffentlichen Schlüssel (Public Key)
  • Zur Entschlüsselung wird ein privater Schlüssel verwendet (Private Key)
  • Kein Schlüsselaustausch erforderlich
Asymmetrische Verschlüsselung

🧪 SYMMETRISCHE VERSCHLÜSSELUNG (Beispiele und Problematiken)

🔁 Verschiebe-Chiffren

Der i-te Buchstabe aus dem Alphabet wird durch den (i + d)-ten Buchstaben aus dem Alphabet ersetzt. d ist eine feste Zahl.

Es gilt folgende Vorschrift:

xi → x(i+d) mod n

Das Alphabet umfasst n Buchstaben.

🧾 Beispiel: Cäsar-Code

Beispiel: Cäsar-Code

🧠 Kryptanalyse

  • Kryptanalyse: Methoden zur Entschlüsselung abgefangener Nachrichten ohne Kenntnis des Schlüssels.
  • Typische Angriffe auf einfache Chiffren:
    1. Häufigkeitsanalyse: Auswertung der Buchstabenverteilung im Text
    2. Brute-Force: Durchprobieren aller Schlüsselvarianten
    3. Known-Plaintext: Bekannte Textteile helfen beim Rückschluss auf den Schlüssel

🔐 Vigenère-Codes & Vernam-Chiffre

  • Vigenère-Code: Schlüssel aus mehreren Buchstaben wird wiederholt und mit dem Text kombiniert.
  • Wenn der Schlüssel genauso lang und rein zufällig ist → spricht man vom Vernam-Chiffre.
  • 🔁 Sehr sicher – aber Schlüsselverteilung bleibt ein praktisches Problem.

🧾 Beispiel: Vigenère-Code

Beispiel Vigenère-Code
  • Schlüssel „ABC“ wird wiederholt unter dem Text gesetzt
  • Jeder Buchstabe wird um den Wert des Schlüssels verschoben

🎲 One-Time-Pad (OTP)

  • Verwendung eines einmaligen, zufällig erzeugten Schlüssels mit gleicher Länge wie die Nachricht
  • Die Verschlüsselung erfolgt über eine bitweise XOR-Verknüpfung
  • ✅ Theoretisch absolut sicher, solange:
    • der Schlüssel wirklich zufällig ist
    • er nie ein zweites Mal verwendet wird
  • ⚠️ In der Praxis schwierig umzusetzen wegen sicherem Schlüsselaustausch und -speicherung

🛡️ Moderne symmetrische Verfahren

  • DES: 64-Bit-Schlüssel, entwickelt 1976 – heute unsicher (kann in Stunden geknackt werden)
  • AES: Standard seit 2001, unterstützt 128, 192 oder 256 Bit – sicher und effizient
  • 🔐 Wird verwendet in:
    • SSH (sicherer Fernzugriff)
    • TLS/IPSec (Webverschlüsselung)
    • WPA2 (WLAN-Sicherheit)

🔑 Problem: Schlüsselaustausch

  • Bei symmetrischer Verschlüsselung müssen Sender und Empfänger denselben geheimen Schlüssel verwenden
  • Dieser Schlüssel muss vorher sicher übermittelt werden – was in unsicheren Netzen ein Problem darstellt
  • ⚠️ Übertragung über Boten, E-Mail oder Funk ist oft nicht sicher genug
  • 💡 Lösung: asymmetrische Verfahren wie Diffie-Hellman, bei denen kein geheimer Schlüssel übertragen werden muss

⚠️ Weitere Probleme

  • 🔢 Große Anzahl von Schlüsseln erforderlich:
    • – Wenn von n Personen jede Person mit jeder anderen kommunizieren möchte, so sind
      (n über 2) = n(n – 1)/2 Schlüssel erforderlich
  • 🔐 Authentizität einer Nachricht ist nicht gewährleistet
    • – Theoretisch könnte sich Alice selbst eine Nachricht schicken und behaupten, sie käme von Bob.

🧪 ASYMMETRISCHE VERSCHLÜSSELUNG (Beispiele und Problematiken)

🔓 Grundidee: Kein Austausch von Schlüsseln!

Grundidee: Kein Austausch von Schlüsseln

Der öffentliche Schlüssel von Bob wird zur Verschlüsselung verwendet – nur Bob kann mit seinem privaten Schlüssel entschlüsseln.

🔄 Ablauf der Verschlüsselung (Public-Key)

  • Alice will Nachricht M an Bob senden:
    • Öffentlichen Schlüssel P suchen
    • Verschlüsseln: C = P(M)
    • C an Bob senden
  • Bob entschlüsselt mit privatem Schlüssel S:
    M = S(C) = S(P(M))

🔑 Anforderungen an ein Public-Key-System

  • S(P(M)) = M für jede Nachricht M
  • Alle Paare (S, P) sind verschieden
  • Privater Schlüssel S darf aus P nicht berechnet werden können
  • 🛡️ Entschlüsselung ohne S ist praktisch unmöglich
  • Schlüssel müssen effizient erzeugbar sein

🔐 Der RSA-Algorithmus

  • 1978 von Rivest, Shamir und Adleman beschrieben
  • Jeder besitzt:
    • Öffentlichen Schlüssel (zum Verschlüsseln)
    • Privaten Schlüssel (zum Entschlüsseln)
  • 🧮 Sicherheit beruht auf schwerer Faktorisierung großer Zahlen

🛠️ Verwendung von RSA

  • Genutzt in:
    • SSH, TLS, IPSec (für Schlüsselaustausch)
  • Datenübertragung erfolgt mit symmetrischen Verfahren (z. B. AES)
  • RSA ≈ 1000× langsamer als AES
  • 📧 Wird auch bei PGP verwendet

📧 PGP – Pretty Good Privacy

  • E-Mail wird mit symmetrischem Schlüssel verschlüsselt
  • Dieser Schlüssel wird asymmetrisch (z. B. mit RSA) verschlüsselt
  • Empfänger:
    • → entschlüsselt Schlüssel
    • → entschlüsselt Nachricht
  • ✔️ Optionale digitale Signatur und Web of Trust

⚠️ Gefahr: Man-in-the-Middle-Angriff

  • Zentrale Schwachstelle: Key-Server
  • Angreifer (z. B. Cleo) kann:
    • sich in Key-Server einnisten
    • Bob falschen Schlüssel senden
    • Nachricht abfangen, lesen, verändern
    • neu verschlüsseln und weiterleiten
  • 🕵️‍♂️ Alice bemerkt nicht, dass Nachricht nicht von Bob stammt

⚠️ Man-in-the-Middle-Angriff

  • 🕵️‍♂️ Evil sendet Dhillon seinen eigenen öffentlichen Schlüssel
  • 🗨️ Evil kann Dhillons Nachricht lesen und manipulieren
  • 📤 Evil verschlüsselt neu mit Belindas öffentlichem Schlüssel
Man-in-the-Middle Angriff Beispiel

Quelle: securityaffairs.co

🌐 Abhilfe: Web of Trust

  • Vertrauensnetz statt zentraler Verwaltung
  • Öffentliche Schlüssel auf dezentralen Key-Servern
  • 🔏 Schlüssel werden durch private Personen beglaubigt

✍️ Abhilfe: Digitale Unterschriften

  • ✅ Authentizität prüfen: Kommt Nachricht wirklich vom Absender?
  • Ablauf:
    • Private Signatur → öffentliche Prüfung
    • Kombination mit Verschlüsselung möglich

🏛️ Public Key Infrastructure (PKI)

  • Digitale Zertifikate verknüpfen Schlüssel mit Identität
  • Vertrauenswürdig durch Certification Authorities (CAs)
  • 🔐 Webbrowser erkennen CA-Zertifikate automatisch

📌 Zusammenfassung

  • Ziel: Vertrauliche & sichere Kommunikation
  • Vier Anforderungen: 🔒 Vertraulichkeit, ✅ Authentizität, 🧩 Integrität, 🔑 Schlüsselmanagement
  • Unterscheidung:
    • Symmetrisch: gleicher Schlüssel
    • Asymmetrisch: öffentlich/privat
  • ✍️ Digitale Signaturen garantieren Absender-Identität

🧪 Aufgaben (in moopaed)

  1. Caesar - Verschlüsselung
  2. One-Time-Pad
  3. SSH
  4. Let's Encrypt