Hash-Funktion

aus SecuPedia, der Plattform für Sicherheits-Informationen

Anzeige
Wechseln zu: Navigation, Suche

Hash-Funktionen sind Komprimierungsfunktionen, die eine Nachricht beliebiger Länge auf eine Nachricht fester Länge (z.B. 128 oder 164 Bits) - den Hashwert - verdichten. Im Rahmen der Anwendung Digitale Signatur sind Einweg-Hash-Funktionen (Einweg-Funktion) von Bedeutung. Hash-Funktionen sind öffentlich, das Verfahren ist nicht geheim. Die Sicherheit der Einweg-Hash-Funktion liegt in ihrer Einweg-Eigenschaft. Das Ergebnis ist auf nicht umkehrbare Weise abhängig von der Eingabe. Beispiele sind die veralteten MD-4 und MD-5 (Message Digest Algorithm) sowie SHA (Secure Hash Algorithm - z.B. der ebenfalls veraltete SHA-1, SHA-2 - mit der Variante SHA-256 - sowie SHA-3).

Sicherheitseigenschaften

Hans-Joachim Knobloch (Secorvo Security Consulting, Karlsruhe) beschreibt die Sicherheitseingenschaften einer Krypto-Hashfunktion in dem Artikel „Schwamm drüber – Funktionsweise von SHA-3 (Keccak)“ in kes – Die Zeitschrift für Informationssicherheit“ 1/2013, S. 10 ff wie folgt:


Eine Hashfunktion h bildet eine (in weiten Grenzen) beliebig lange Nachricht m auf ihren Hashwert x=h(m) fester Länge ab. Um für kryptografische Zwecke tauglich zu sein, muss h die nachfolgenden, aufeinander aufbauenden Sicherheitseigenschaften aufweisen:


Einwegeigenschaft

Es darf praktisch nicht möglich sein, zu einem gegebenen Hashwert x0 eine Nachricht m0 zu finden, deren Hashwert x0 ist, das heißt für die h(m0) = x0 gilt.

„Praktisch nicht möglich“ wird dabei in der Regel so verstanden, dass bei realistisch annehmbarem Aufwand nur eine verschwindend geringe Erfolgswahrscheinlichkeit bleibt – hätte man beliebig viel Zeit beziehungsweise Rechenleistung, könnte man durch schlichtes Ausprobieren irgendwann einmal eine passende Nachricht finden

Diese Einwegeigenschaft allein ist bereits für verschiedene Anwendungen von Krypto-Hashfunktionen ausreichend, beispielsweise für die Einwegverschlüsselung von Passwörtern.

Schwache Kollisionsresistenz

Es darf praktisch nicht möglich sein, zu einer gegebenen Nachricht m0 eine zweite Nachricht m1 zu finden, für die h(m0) = h(m1) gilt. Diese Sicherheitseigenschaft verlangt mehr als die Einwegeigenschaft allein, denn wäre letztere verletzt, könnte man Kollisionen einfach finden, indem man vom Hashwert x0= h(m0) der gegebenen Nachricht aus zurückrechnet und hätte damit auch zugleich die schwache Kollisionsresistenz gebrochen.


Starke Kollisionsresistenz

Es darf praktisch nicht möglich sein, zwei Nachrichten m1 und m2 zu finden, für die h(m1) = h(m2) gilt. Die starke Kollisionsresistenz scheint sich auf den ersten Blick nicht so sehr von der schwachen zu unterscheiden. Und natürlich könnte man, wäre die schwache Kollisionsresistenz verletzt, einfach eine Nachricht m2 als gegeben wählen und dazu eine kollidierende Nachricht m1 bestimmen.

Es gibt jedoch auch Wege, kollidierende Nachrichten zu finden, ohne dass eine davon von vornherein festliegt. Eine davon ist die Anwendung des sogenannten „Geburtstagsparadoxons“. Dessen Name rührt daher, dass es auf den ersten Blick verblüffend erscheint, dass in einer Schulklasse mit 23 Kindern mit mehr als 50 Prozent Wahrscheinlichkeit zwei davon am selben Tag des Jahres ihren Geburtstag feiern.

Das scheinbare Paradoxon erklärt sich dadurch, dass nicht festgelegt ist, welcher Tag des Jahres der gemeinsame Geburtstag sein soll. Nach dem selben Prinzip lässt sich bei Hashfunktionen eine Kollision finden, indem man so lange Nachrichten m1, m2, m3, ... hasht, bis sich ein mi findet, dessen Hashwert identisch mit dem irgendeiner der vorangegangen i–1 Nachrichten ist. Bei einer Hashfunktion, deren Ausgaben n Bit lang sind, ist die Wahrscheinlichkeit, einen solchen Treffer zu finden, ab circa 2n/2-Versuchen nicht mehr zu vernachlässigen. Daher ist die Ausgabelänge einer Hashfunktion doppelt so lang zu wählen, wie die Schlüssellänge bei der symmetrischen Verschlüsselung auf einem vergleichbaren Sicherheitsniveau. In diesem Sinne „passt“ beispielsweise SHA-256 zu AES-128 und SHA-512 zu AES-256.

Die starke Kollisionsresistenz wird vor allem für Signaturanwendungen benötigt. Ansonsten könnte ein Angreifer den Signierenden eine harmlos erscheinende Nachricht unterschieben, und ihn damit unwissentlich zugleich deren „bösen Zwilling“ unterschreiben lassen. So geschehen in praktischen Angriffen, bei denen Trustcentern Anträge für ein „harmloses“ Anwenderzertifikat eingereicht wurden, dessen Signatur dann zugleich für ein sicherheitskritisches Zertifikat – beispielsweise für eine unautorisierte Unterzertifizierungsstelle – galt, das der Antragsteller regulär nie erhalten hätte.


Siehe übergeordnete Stichworte


Siehe auch




Diese Seite wurde zuletzt am 14. Dezember 2017 um 09:20 Uhr von Lea Toms geändert. Basierend auf der Arbeit von Oliver Wege, Peter Hohl, Admin, Dietrich Cerny und Hartmut Pohl.

Anzeigen