Im Kontext der Informatik und Kryptografie ist eine Hashfunktion ein mathematischer Algorithmus, der eine Eingabe (die „Nachricht“) entgegennimmt und eine Zeichenkette fester Größe erzeugt, die in der Regel einen Hashwert oder Digest darstellt. Der Hauptzweck einer Hashfunktion besteht darin, die Integrität von Daten zu gewährleisten und eine eindeutige Repräsentation der Eingabedaten bereitzustellen.
Ein Angriff auf eine Hashfunktion bezieht sich auf jeden Versuch, Schwächen oder Verwundbarkeiten im Algorithmus auszunutzen, um ein bestimmtes Ziel zu erreichen. Die Ziele solcher Angriffe können je nach Kontext und den Zielen des Angreifers variieren. Hier sind einige gängige Arten von Angriffen und Verwundbarkeiten im Zusammenhang mit Hashfunktionen:
Length Extention Attack: Einige Hashfunktionen, insbesondere solche, die auf der Merkle-Damgård-Konstruktion basieren, sind anfällig für eine Length Extension Attack. Bei dieser Art von Angriff nimmt der Angreifer einen vorhandenen Hash und einen bekannten Teil der Originalnachricht, um die Ausgabe der Hashfunktion zu erweitern, ohne die vollständige Nachricht zu kennen. Diese Verwundbarkeit kann zur Erstellung von bösartig manipulierten Nachrichten führen, die für das System legitim erscheinen.
Collision Attack: Eine Kollision tritt auf, wenn zwei verschiedene Eingaben denselben Hashwert erzeugen. Bei einem Kollisionsangriff versucht der Angreifer, zwei Eingaben zu finden, die einen identischen Hashwert erzeugen. Das Ziel kann sein, die Integrität der Hashfunktion zu untergraben, digitale Signaturen zu brechen oder andere kryptografische Systeme zu gefährden, die auf Hashfunktionen angewiesen sind.
PreImage-Attack: Bei einem Preimage-Angriff versucht der Angreifer, eine Nachricht zu finden, die zu einem bestimmten Hashwert passt. Das Ziel besteht darin, die ursprüngliche Eingabe von ihrem Hash-Wert rückgängig zu machen. Ein erfolgreicher Preimage-Angriff ermöglicht es einem Angreifer, die Einweg-Eigenschaft einer Hashfunktion zu verletzen und somit möglicherweise die Vertraulichkeit von Daten oder Authentifizierungsmechanismen zu gefährden.
Birthday Attack: Das Geburtstagsparadoxon besagt, dass in einer Gruppe von nur 23 Personen die Wahrscheinlichkeit, dass zwei Personen den gleichen Geburtstag haben, über 50% liegt. Ebenso nutzt ein Geburtstagsangriff dasselbe Prinzip, um Kollisionen in einer Hashfunktion effizienter zu finden als bei einem direkten Kollisionsangriff. Indem Angreifer die Wahrscheinlichkeit von Kollisionen in einer Hashfunktion ausnutzen, können sie die Zeit und den Rechenaufwand zur Suche nach Kollisionen reduzieren.