GeburtstagsangriffDer Geburtstagsangriff beruht auf dem statistischen Phänomen, dass bereits in einer sehr kleinen Gruppe wenigstens zwei Personen mit fünfzigprozentiger Wahrscheinlichkeit am gleichen Tag Geburtstag haben.
Soll zu einem gegebenen Hashwert ein anderer Text mit gleichem Hashwert gefunden werden, so ist der Aufwand proportional zur Länge des Hashwerts. Sollen jedoch nur zwei gleiche Hashwerte gefunden werden, so ist der Aufwand in der Regel nur ca. die Quadratwurzel aus der ersten Anzahl. Der Geburtstagsangriff arbeitet jetzt folgendermaßen: Um ein gefälschtes Dokument zu signieren, lassen sich zwei Dokumente D und F erzeugen, von denen eines einen harmlosen, das andere einen entsprechend veränderten Text enthält. Beide Dokumente werden durch unwesentliche Änderungen (Leerzeichen, Backspaces, Tabs usw.) variiert, und deren Hashwerte verglichen. Sobald zwei Dokumente mit gleichen Fingerabdrücken gefunden werden, kann man das eine Dokument vorlegen, den Hashwert signieren lassen und später das andere vorlegen und auf dessen Erfüllung pochen. Natürlich kann der Geschäftspartner gleichermaßen das erste Dokument vorlegen und argumentieren, dass es wesentlich schwieriger ist, zu einem gegebenen Hashwert ein passendes Dokument zu finden als zwei Dokumente mit gleichem Hashwert vorzulegen, und vermutlich würde ein Gericht ihm auch eher glauben. Dennoch stellt dieser Angriff einen Schwachpunkt des Hashverfahrens dar. Man sollte auf jeden Fall bei der Ermittlung eines Hashwerts darauf achten, dass die Anzahl der Stellen mindestens doppelt so groß ist wie eigentlich aus rechentechnischen Gründen notwendig. Außerdem ist es sinnvoll, den Text vor dem Hashen von redundanten Zeichen zu befreien, insbesondere nur ASCII-Texte zu verwenden, keine Leerzeichen als die notwendigen, keine Backspaces, Tabs usw. zu benutzen. Dieses wird in den Standards auch entsprechend gefordert. Darüber hinaus sollte der Text zunächst von beiden Parteien redigiert werden können, ehe er gehasht wird.
|