Abschnittsübersicht

    • Wir haben eine Schlüsselproblem! Unabhängig vom ausgewählten kryptografischen Verfahren müssen wir unserem Kommunikationspartner den gemeinsamen geheimen Schlüssel übermitteln.

      Gibt es eine Möglichkeit einen geheimen Schlüssel so zu übermitteln, dass wir keine geheimen Schlüssel vorher austauschen müssen?

      Versuchen wir es anschaulich: Unsere Kommunikationsteilnehmer Alice und Bob haben je ein Schloss mit Schlüssel. Alice möchte Bob ein Geheimnis in einer Kiste sicher übermitteln. Bob hat keinen Zugriff auf den Schlüssel von Alice und soll diesen auch niemals haben. Wie kann Alice agieren?

    • Asymmetrische Verschlüsselung
    • Bei der asymmetrischen Verschlüsselung (Public-Key-Verfahren) besitzt jeder Kommunikationsteilnehmer zwei Schlüssel: einen öffentlichen Schlüssel, der allen Nutzern zur Verfügung gestellt wird und einen privaten Schlüssel, den nur der Nutzer besitzt. Zum Versenden einer Nachricht wird der Klartext mithilfe des öffentlichen Schlüssels dem Empfängers verschlüsselt. Der Empfänger kann dann mithilfe seines privaten Schlüssels die Nachricht entschlüsseln.

      Beide Schlüssel werden so berechnet, dass aus dem einen Teil der andere Teil nicht ermittelt werden kann. Die Regeln zur Schlüsselbestimmung und Anwendung sind komplexe mathematische Verfahren unter Benutzung zahlentheoretischer Sätze und großer Primzahlen. 

      Damit es keine komplizierte Mathematik gibt, nutzen wir den ASYM-Coder (in der Online-Version) aus dem Buch "Abenteuer Informatik" von Jens Gallenbacher und werden uns erst später mit etwas Mathematik beschäftigen.

    • Schlüsselberechnung und Einwegfunktion

      Die beiden Schlüssel werden mithilfe mathematischer Berechnungen aus großen natürlichen Zahlen erzeugt. Für das RSA-Verfahren, benannt nach den Entwicklern Ron Rivest, Adi Shamir und Leonard Adleman, lässt sich dies mit der Demo im Tool CrypTool1 anschaulich zeigen. Das genaue Verfahren ist für uns hier nicht relevant.

      RSA-Demo (nur für Freaks!)

      Aber warum kann man aus dem öffentlichen Schlüssel und beispielsweise dem Geheimtext nicht auf den privaten Schlüssel schließen? Das Geheimnis sind sog. Einwegfunktionen, also mathematische Funktionen, die in die man in eine Richtung sehr leicht/schnell ausrechnen kann, aber deren Umkehrfunktion de facto unmöglich zu bestimmen ist.

      Beispiele:

      • leicht: Ausdrücken der Zahnpastatube
        schwer: Hineinpressen der Zahnpasta in die Tube (insbesondere wenn es eine zweifarbige Zahnpasta war!)
      • leicht: Backen eines Kuchens
        schwer: das Zerlegen des Kuchens in seine Bestandteile (oder sogar das Bestimmen der Bestandteile)
      • leicht: Einwerfen eines Briefes in einen Postkasten
        schwer: Herausholen des Briefes (es sei denn, man hat den geheimen Schlüssel)
      • leicht: Mischen einer Farbe aus den Grundfarben eines Farbkastens
        schwer: Zerlegen einer Farbe in die Grundfarben eines Farbkastens
      • leicht: Rutschen von einer Rutsche
        schwer: Hinaufkletten auf der Rustche
      • leicht: Multiplizieren zweier natürlicher Zahlen
        schwer: Zerlegen eines Produkts in zwei Faktoren
    • Digitales Signieren – Hashfunktion
    • Eine digitale Signatur (Unterschrift) sichert Verbindlichkeit und Authentizität des Absenders. Beide Ziele lassen sich durch asymmetrische Verschlüsselung erreichen.

      Zum Signieren einer Nachricht verschlüsselt der Erzeuger diese mit seinem geheimen Schlüssel. Er veröffentlicht Klartext und die erzeugte Signatur. Jeder Nutzer kann nun mithilfe den öffentlichen Schlüssels des Erzeugers zum Entschlüsseln der Signatur nutzen. Erhält er eine identische Kopie der Nachricht, dann war die Signatur echt.

      In der Realität ist es jedoch sehr ungünstig, das Klartextdokument und ein ebenso großes Dokument, welches die Unterschrift darstellt zu erzeugen und zu übermitteln. Daher signiert man nicht den Klartext, sondern die gehashter Form des Klartextes. 

      Das Anwenden einer Hash-Funktion auf einen Dokument erzeugt einen Hashwert, der folgende Eigenschaften besitzt:

      • Kompression: Nachrichten beliebiger Länge werden auf Nachrichten einer festen Länge komprimiert.
      • Einwegfunktion: Aus dem Komprimat kann man nicht auf die Nachricht schlussfolgern.
      • Kollisionsresistenz: Es ist praktisch unmöglich, zwei verschiedene Nachrichten mit dem gleichen Hashwert zu finden.

      Da eine Hash-Funktion beliebigen Text jeweils in einen Hash-Wert fester Größe umwandelt, muss es Texte mit gleichem Hash-Wert geben! Kollisionsresistenz bedeutet, dass es praktisch unmöglich ist, solche Kollisionen zu erzeugen.

      Für Freaks: Beispiel für MD5-Kollisionen (Tipp: beide Dateien in Cryptool hashen)

    • Zertifikate und Trust Center

    • Das bisherige asymmetrische Verfahren hat einen großen Nachteil: die Übermittlung des öffentlichen Schlüssels kann manipuliert werden.

      Mithilfe von Zertifizierungsstellen, sog. Trust Center lässt sich dieses Problem lösen. Der öffentlichen Schlüssel des Trust Centers wird als Zertifikat im digitalen Endgerät gespeichert und beispielweise vom Betriebssystem regelmäßig überprüft. Trust Center verwalten ggf. auch die öffentlichen Schlüssel anderer Teilnehmer, die sich dafür persönlich im Trust Center vorstellen und authentifizieren müssen.

    • Diffie-Hellman-Schlüsseltausch
    • Für Freaks: Rechnet man mit Resten ist auch die diskrete Exponentialfunktion f(x) = sx mod p mit x ∈ ℕ relativ leicht ausführbar, während die diskrete Logarithmusfunktion aktuell praktisch unmöglich ist. 

      Beispiele (nach Beth, Thomas: "Sichere offene Datennetze". Im Dossier Kryptographie. Spektrum der Wissenschaft, 2001):

      1. Diskrete lineare Funktion f(x) = x + 42 mod 127
      2. Diskrete lineare Funktion f(x) = 7x + 63 mod 127
      3. Diskrete quadratische Funktion f(x) = (x - 63)2 + 42 mod 127
      4. Diskrete Exponentialfunktion f(x) = 3x + 63 mod 127

      Die diskrete Exponentialfunktion kann man nun nutzen, um beispielsweise für ein symmetrisches Verschlüsselungsverfahren einen gemeinsamen Schlüssel in aller Öffentlichkeit zu generieren. Entwickelt haben diesen Algorithmus 1976 die beiden Wissenschaftler Whitfield Diffie und Martin Hellman.

    • Mit dem Diffie-Hellmann-Schlüsseltausch wird die Brücke zur symmetrischen Verschlüsselung gebaut und ein sicherer Schlüsselaustausch möglich.

      • Moderne symmetrische Verschlüsselungsverfahren (AES, TwoFish, Tripple-DES, RC5) arbeiten sehr effizient. Das Problem ist der Austausch des geheimen Schlüssels.
      • Asymmetrische Verschlüsselungsverfahren sind langsam und aufwendig. Die Sicherheit steckt in der Verwendung von getrennten Schlüssel (privat/öffentlich), da kein Schlüsseltausch notwendig ist.

      Hybride Verfahren führen beide Vorteile zusammen: Um eine sichere Kommunikation zwischen zwei Partnern zu realisieren (beispielsweise via TCP), könnte zunächst der Diffie-Hellmann-Schlüsseltausch zum Erzeugen eines zufälligen langen geheimen Schlüssels auf beiden Seiten genutzt werden. Anschließend wird mithilfe des erzeugten Schlüssels die Nachricht symmetrisch verschlüsselt, übertragen und entschlüsselt. Wird eine neue Verbindung aufgebaut, erfolgt ein neuer Schlüsseltausch. Dadurch werden stets neue Schlüssel erzeugt und ein Einbruch in die digitale Kommunikation erschwert. 

      Ein Darstellung der hybriden HTTPS-Verschlüsselung findet sich unter inf-schule.de.