Kryptographische Grundbegriffe

Das Thema der Kryptographie ist die Informationssicherheit, z. B. bei

Die wichtigsten Teilaspekte der Kryptographie

Geheimhaltung (Confidentiality)

Die Nachricht des Senders (z. B. email) wird in eine verschlüsselte Form tranformiert.

Zum Entschlüsseln" der ursprünglichen Nachricht wird eine geheime Information, genannt Schlüssel benötigt.

Integrität (Integrity)

Eine Nachricht (z. B. heruntergeladenes Programm) soll nicht (zufällig oder von Unberechtigten bewußt) verändert oder ausgetauscht werden können.

Authentikation (Authentication)

Teilnehmerauthentikation

Man weist seine Identität nach, d. h. daß man wirklich der ist, der man zu sein vorgibt (durch ein charakteristisches und schwer zu immitierendes Merkmal oder ein Geheimnis).

Beispiele:

Fingerabdruck, Sprache, Passwort, PIN.

Beim Verifizierer muß das Geheimnis direkt, oder in einer abgeleiteten Form vorhanden sein.

Nachrichtenauthentikation

Die Authentizität (Echtheit, Herkunft) eines Dokuments wird dadurch garantiert, daß das Dokument mit einem charakteristischen und schwer zu immitierenden Merkmal oder einem Geheimnis verknüpft wird.

Beispiele:

Unterschrift, Wasserzeichen

Wird dieses Geheimnis bei der Verifikation nicht benötigt, spricht man von einem Signaturverfahren.

Anonymität

Sender, Empfänger oder die Tatsache der Kommunikation sollen geheim bleiben.

Beispiele:

Chiffreanzeige, Bezahlvorgänge, Downloads

Protokolle

Standardisierte Regeln, um kryptographische Verfahren in Anwendungen verwenden zu können.

Beispiel:

SSL (Secure Socket Layer)

Verschlüsselung

Aufgabe

Eine Nachricht wird "weggesperrt", so daß nur Berechtigte Lesezugang dazu haben (vgl. Tresor).

Wegsperren ist hier nicht im physikalischen Sinne zu verstehen.

Der allgemeine Lesezugriff wird durch Umwandlung des Klartexts in einen Geheimtext verhindert.

Prinzip

einfache Beispiele

Verschieben aller Zeichen der Nachricht um einen festen Wert (Beispiel für Stromchiffre)

Schlüssel?

Binäre Daten portionsweise mit einem gegebenen Schlüssel per XOR bitweise verknüpfen (Beispiel für Blockchiffre)

Kerckhoffsches Prinzip

Die Verfahren zum Ver- und Entschlüsseln sind nicht geheim, nur der Schlüssel.

Mögliche Angriffe auf Verschlüsselungsverfahren

Ciphertext-Only-Attacke

Angreifer kennt eine begrenzte Zahl von Geheimtexten und möchte daraus die Klartexte oder auch den Schlüssel bestimmen.

Known-Plaintext-Attacke

Angreifer kennt eine begrenzte Zahl von Geheimtexten und die zugehörigen Klartexte und möchte daraus für weitere Geheimtexte den Klartext oder auch den Schlüssel bestimmen.

Chosen-Plaintext-Attacke

Angreifer kann für bestimmte von ihm ausgewählte Klartexte die zugehörigen Geheimtexte bestimmen (z. B. bei Vorliegen des Verschlüsselungsautomaten mit integriertem Schlüssel) und möchte daraus für beliebige Geheimtexte den Klartext oder auch den Schlüssel bestimmen.

Chosen-Ciphertext-Attacke

Angreifer kann bestimmte von ihm ausgewählte Geheimtexte entschlüsseln (z. B. bei vorliegendem Entschlüsselungsautomaten mit integriertem Schlüssel) und möchte weitere Geheimtexte entschlüsseln oder auch den Schlüssel bestimmen.

One-time-pad, ein perfektes Verfahren

Zu einer gegebenen binären Nachricht wird ein gleichlanger Schlüssel generiert, indem die zugehörigen Bitwerte durch einen Zufallsgenerator erzeugt werden.

Der Schlüssel wird nur einmal verwendet.

symmetrische Verfahren

Ein Verfahren heißt symmetrisch, wenn zum Ver- und Entschlüsseln der gleiche Algorithmus und Schlüssel verwendet werden.

Standards:

DES (Data Encryption Standard)

IDEA (International Data Encryption Algorithm)

Beide verwenden Blockgrößen von 64 bit, Schlüssellänge bei DES: 56, bei IDEA: 128

asymmetrische Verfahren

Man hat ein Schlüsselpaar bestehend aus: einen öffenlichen Schlüssel e, der zur Verschlüsselung dient (encryption) und einen geheimen Schlüssel d, der zum Entschlüsseln dient (decryption).

wichtige Forderung:

Aus der Kenntnis des öffentlichen Schlüssels darf sich nicht der private Schlüssel ableiten lassen!

RSA: ein asymmetrisches Verfahren

Rivest, Shamir, Adleman 1978

Die verwendeten Gesetzmäßigkeiten aus der Algebra:

  1. Lemma von Bezout:

    Für gegebene natürliche Zahlen a und b gilt: mit zwei ganzen Zahlen s und t.

    Diese Darstellung liefert der erweiterte Euklidsche Algorithmus.

  2. Eulersche Funktion:

    sei die Anzahl der natürlichen Zahlen zwischen 1 und n, die teilerfremd zu n sind.

    Dann gilt: für jede Primzahl p.

    für zwei beliebige Primzahlen p und q.

  3. Satz von Euler-Fermat:

    Für alle natürlichen Zahlen n und a prim zu n gilt:

Die Schlüsselgenerierung

Encoding und Decoding

öffentlicher Schlüssel: Die Zahlen e und n

privater Schlüssel: Die Zahl d

Die Encoding-Funktion:

Die Decoding-Funktion:

Man beachte:

Die Zahlen p, q und müssen ebenso wie der private Schlüssel geheim gehalten werden.

Sie können sogar nach der Schlüsselgenerierung weggeworfen" werden.

Schlüssellängen:

mind. 512 Bit

Kryptographische Einweg-Hashfunktionen

Eine solche dient zum Erzeugen eines Fingerabdrucks" (finger-print) einer festen Länge (typisch 128 Bit) für ein beliebig langes Dokument.

Sie muß unumkehrbar sein und kollisionsfrei, d. h. es ist praktisch unmöglich zwei Dokumente mit demselben Hash-Wert zu finden.

Anwendungsbereiche:

Passwort-Tabelle

Nicht die Passwörter selbst sondern nur ihre Hashwerte werden gespeichert.

Unversehrtheit eines Dokuments gewährleisten

Vorgehensweise:

Der Empfänger der Nachricht berechnet für die empfangene Nachricht mit derselben Funktion den Hashwert und vergleicht ihn mit dem vom Sender berechneten Hashwert.

Voraussetzung:

Der Fingerabdruck ist geschützt, d. h. kann nicht manipuliert werden.

Standardverfahren:

MD5 und SHA

MACs

Message Authentication Codes

Schützen des Fingerabdrucks durch Anwenden eines privaten Keys.

Digitale Signaturen

Der RSA-Algorithmus als Signaturverfahren

Signierung:

Der Sender wendet seinen privaten Schlüssel e auf den Klartext m der Nachricht an:

Signaturfunktion:

Gesandt werden sowohl der Klartext m als auch die signierte Nachricht c.

Verifikation:

Der Empfänger wendet den öffentlichen Schlüssel des Senders auf die signierte Nachricht c an und vergleicht das Ergebnis mit dem Klartext der Nachricht.

verbesserte Variante:

Signiere nur einen Hashwert der Nachricht und nicht die komplette Nachricht.

Frage:

Wie kann ein Dokument sicher und geheim von einem Sender zu einem Empfänger übertragen werden?

Zertifikate

Problemstellung:

Wer stellt sicher, daß ein öffentlicher Schlüssel e wirklich dem "angeblichen" Besitzer A gehört?

physikalische Lösung:

direkte oder indirekte Schlüsselübergabe

digitale Zertifikate

Die persönlichen Daten des Besitzers und sein öffentlicher Schlüssel werden in ein Dokument gepackt und mit dem privaten Schlüssel einer zuverlässigen" Instanz signiert (trusted third party).

Ausgehend von einer Zertifizierungsbehörde" können Zertifizierungsketten aufgebaut werden.

Standard: C.C.I.T.T. X.509

SSL: Secure Socket Layer

eine Ebene zwischen TCP/IP und der Anwendungsschicht zur sicheren Übertragung (vgl. https)

wichtige Aspekte:

Das Protokoll für den Verbindungsaufbau in vereinfachter Form

  1. Der Client meldet sich beim Server und teilt ihm mit, welche Krypto-Verfahren er unterstützt.
  2. Server wählt Verfahren aus und schickt gleichzeitig ein Zertifikat an den Client.
  3. Client prüft an Hand des empfangenen Zertifikats die Identität des Servers.
  4. Client generiert einen (geheimen) Session Key (bzw. Daten zu dessen Generierung) und schickt diese(n )(per public key des empfangenen Zertifikats) verschlüsselt an den Server.
  5. An Hand einiger zu beantwortender Testanfragen prüft der Client, ob der Server den Session Key entschlüsseln konnte, also wirklich der ist, als der er sich per Zertifikat ausgegeben hat (Authentifizierung!).
  6. Optional kann auch der Server auf ähnliche Weise die Identität des Clients prüfen.

    Dazu muß der Client ein Zertifikat vorweisen.