Einweg-Hashfunktionen


By admin - Posted on 18 April 2009

Hashfunktionen dienen allgemein dazu Daten variabler Länge (z.B. Zeichenketten)
auf Werte fester Länge (bsp. ganzzahlige Feldindexe) abzubilden.

Für die Kryptologie sind primär Einweg-Hashfunktionen relevant,
also jene, die sich zwar leicht berechnen, aber nur sehr schwer invertieren
lassen.

Ein durch eine solche Funktion bestimmter Hashwert wird auch als Message
Digest (MD)
bzw. Fingerabdruck (fingerprint) bezeichnet.

Eine Einweg-Hashfunktion H zeichnet sich durch folgende Eigenschaften
aus:

  • Der Hashwert H(x) einer Bitfolge x läßt
    sich relativ einfach, d.h. mit wenig Rechenaufwand bestimmen.

    Das Argument der Hashfunktion, also die Bitfolge x, wird auch
    als preimage bezeichnet.

  • Es ist rechnerisch nicht möglich, zu einem vorgegebenen Hashwert
    z eine Nachricht x zu generieren, so daß H(x) = z
    gilt. Anders ausgedrückt, es darf keinen (wesentlich) effektiveren
    Weg zur Ermittlung von x geben, als alle in Frage kommenden
    Bitfolgen durchzuprobieren, bis man eine findet, die den Hashwert
    z besitzt.

    Diese Eigenschaft wird auch als preimage resistance bezeichnet.

  • Es ist rechnerisch ebenfalls nicht möglich, zu einer vorgegebenen
    Nachricht eine zweite zu finden, die denselben Hashwert wie die erste
    hat.

    Hierfür findet man in der Literatur den Begriff second preimage
    resistance
    bzw. 2nd-preimage resistance.

Für bestimmte Zwecke wird zusätzlich die Kollisionsresistenz (collision resistance)
gefordert, die besagt, daß es rechnerisch unmöglich ist, eine
Kollision, d.h. zwei beliebige unterschiedliche Nachrichten zu finden,
die denselben Hashwert haben, obwohl natürlich klar ist, daß
es viele davon gibt, sobald deutlich mehr Nachrichten als Hashwerte existieren.

Verschiedene Verfahren :

  • MD2

    verarbeitet Nachrichten die aus beliebig vielen 8-Bit-Bytes bestehen.

    Erzeugt 128 Bit lange Hashwerte.
  • MD4

    verarbeitet Nachrichten die aus beliebig vielen Bits bestehen.

    Erzeugt 128 Bit lange Hashwerte.

    3 Runden
  • MD5 Message Digest Algorithm (R. Rivest)

    verarbeitet Nachrichten die aus beliebig vielen Bits bestehen.

    Erzeugt 128 Bit lange Hashwerte.

    Ist optimiert für 32-Bit Maschinen

    4 Runden
  • RIPEMD-160

    Erzeugt 160 Bit lange Hashwerte

    Relativ neu >> 1996

    Komplett offenes Design
  • SHA-1 (Secure Hash Algorithm) entworfen von NIST/NSA

    Verarbeitet Nachrichten die weniger als 264 Bit lang sind.

    Erzeugt 160 Bit lange Hashwerte.

    MD4 Familie
  • Tiger

    Erzeugt 192/160/128 Bit lange Hashwerte

    Relativ neu >> 1995

    Frei zu nutzen, keine MD4 Familie

Anwendungsgebiete :

  • Sichere Verdichtung (Kompression) von speziell langen Nachrichten
    die signiert werden sollen.
  • Authentifizierung, Passwortschutz. Es werden nur noch die Hashwerte
    der Passworte lokal gespeichert.
  • Integritätssicherung von Dateien (Fingerabdrücke) Bsp. Tripwire
  • Vergleich ob Dokumente gleich sind (Hashwertvergleich am Telefon)
  • Erstellung kryptografischer Prüfsummen (HMAC)
  • Pseudzufallsgeneratoren
  • Einmal-Passwortsystem (es wird nur der Hashwert verglichen)

Ein interessantes Beispiel ist HMAC.

Hier werden Hashfunktionen anstatt Verschlüsselungsverfahren benützt
um MAC's zu berechnen.

Gründe

  • Software-Realisierungen von Einweg-Hashfunktionen sind wesentlich
    schneller als entsprechende Implementierungen von Verschlüsselungsalgorithmen,
  • letztere sind z.T. patentiert (z.B. IDEA, RSA) und
  • unterliegen im Gegensatz zu Hashfunktionen oft staatlichen Restriktionen
    (z.B. einem Exportverbot).