Hans Dobbertin (1952-2006) war einer der bedeutendsten deutschen Kryptologen. Unter anderem knackte er die kryptografische Hashfunktion MD5 und entwickelte einen sichereren Nachfolger.

Die Frankfurter Allgemeine Sonntagszeitung nannte ihn den “Meister der Chiffren” und “Deutschlands besten Codeknacker”. Zurecht, denn Hans Dobbertin, Professor für Informationssicherheit an der Ruhr-Universität Bochum, war einer der ganz Großen seines Fachs. Sein Tod im Jahr 2006 löste große Bestürzung aus. Hans Dobbertin wurde nur 53 Jahre alt. Der Billy-Joel-Song “Only the Good Die Young” hatte sich damit einmal mehr bewahrheitet.

Der 1952 geborene Dobbertin hatte sein Talent bereits in früher Jugend gezeigt. 1971 gewann er die Mathematiksparte des Wettbewerbs Jugend forscht, später studierte er Mathematik und promovierte. 1991 ging er zum Bundesamt für Sicherheit in der Informationstechnik (BSI) und entdeckte dort die Kryptologie für sich. Zu seinem Schwerpunkt sollten kryptografische Hashfunktionen werden. Auf Klausis Krypto Kolumne habe ich Hans Dobbertin schon einmal in einem anderen Zusammenhang erwähnt: Er dechiffrierte eine Nachricht des Attentäters Franz Fuchs.

Kryptografische Hashfunktionen

Kryptografische Hashfunktionen spielen eine wichtige Rolle im Zusammenhang mit digitalen Signaturen. Digitale Signaturverfahren sind recht langsam und können daher nur kleine Datenmengen effektiv verarbeiten. Um dieses Problem zu lösen, haben sich Kryptologen in den achtziger Jahren kryptografische Hashfunktionen einfallen lassen. Eine solche ist ein Verfahren, das zu einer gegebenen Nachricht beliebiger Länge eine spezielle Prüfsumme (Hashwert) bildet. Anstatt ein längeres Dokument für das Signieren zu zerstückeln, so die Idee, wird lediglich ein Hashwert davon signiert.

————-

Dieser Artikel basiert auf einem Kapitel aus meinem Buch Codeknacker gegen Codemacher, das ich in der neuesten Ausgabe (Dezember 2014) aus Platzgründen streichen musste.

————-

Zu den Pionieren der kryptografischen Hashfunktionen gehörte RSA-Miterfinder Ron Rivest. Dieser entwickelte eine kryptografische Hashfunktion namens MD4, die er 1990 vorstellte. MD steht hierbei für “Message Digest”, was ein anderer Ausdruck für einen Hashwert ist. MD4 wurde zu einer Art Prototyp für zahlreiche andere kryptografische Hashfunktionen. Im Rahmen des EU-Forschungsprojekts RIPE entwickelten beispielsweise einige Kryptologen eine verstärkte MD4-Variante, die sie RIPE-MD nannten.

MD4-Erfinder Ron Rivest machte sich ebenfalls Gedanken über Verbesserungsmöglichkeiten, wodurch das Nachfolgeverfahren MD5 entstand. Nicht zuletzt nahm auch die NSA MD4 zum Vorbild und entwickelte daraus eine kryptografische Hashfunktion namens SHA-1. Die meisten heute in der Praxis eingesetzten kryptografischen Hashfunktionen sind somit MD4-Nachfolger. Sie unterscheiden sich vom Vorbild, das mit drei Runden und einem Hashwert von 128 Bit arbeitet, meist durch eine höhere Rundenzahl und einen längeren Hashwert.

Während die einen Kryptologen kryptografische Hashfunktionen entwickelten, machten sich andere daran, sie zu knacken. Als „geknackt“ gilt eine kryptografische Hashfunktion zunächst einmal dann, wenn es gelingt, zu einer gegebenen Nachricht eine zweite mit gleichem Hashwert zu finden (“zweites Urbild”). Darüber hinaus soll es generell nicht machbar sein, zwei Nachrichten mit gleichem Hashwert (“Kollision”) zu finden.

Auf Kollisionskurs

Über Kollisionen und zweite Urbilder machte sich Hans Dobbertin Gedanken, nachdem er seine Stelle beim BSI angetreten hatte. 1994 erhielt die Behörde einen Beratungsauftrag vom Zentralen Kreditausschuss (ZKA), der die bereits erwähnte kryptografische Hashfunktion RIPE-MD einsetzen wollte. Dem ZKA lag bereits ein positives Gutachten zu diesem Verfahren vor, doch vorsichtshalber sollte nun noch einmal das BSI eine Stellungnahme dazu abgeben.

Hans Dobbertin machte sich an die Arbeit. Auf den ersten Blick erschien RIPE-MD eine hohe Sicherheit zu bieten. Das Verfahren arbeitet zwar wie das Vorbild MD4 in drei Runden, sieht jedoch zwei voneinander unabhängige Ablaufstränge vor – diese sollten für eine doppelte Absicherung sorgen. Doch Dobbertin machte diese Überlegung zunichte, indem er es schaffte, für eine Zwei-Runden-Version von RIPE-MD Kollisionen zu finden. Diese blieben zwar für das eigentliche Verfahren, das in drei Runden arbeitet, wirkungslos, doch schon diese theoretische Schwachstelle ließ erhebliche Zweifel an der Sicherheit von RIPE-MD aufkommen. Nebenbei hatte Hans Dobbertin mit seiner Entdeckung auch MD4 geknackt, das ähnlich, aber weniger sicher aufgebaut war. Dobbertins Ruf als bester deutscher Codeknacker nahm seinen Anfang.

Über den Wert der MD4-Kollisionen gab es jedoch geteilte Meinungen. Ein britischer Kryptologe meinte, man brauche sich keine großen Sorgen zu machen, da die mit Dobbertins Methode aufspürbaren Kollisionen keine Nachrichten mit sinnvollem Inhalt beträfen. Doch Hans Dobbertin bewies das Gegenteil: Er konstruierte zwei fiktive Kaufverträge, die sich nur durch die Kaufsumme unterschieden, und schickte sie in digitaler Form an seinen britischen Kollegen. Zu dessen Überraschung ergaben beide den gleichen Hashwert.

Der MD5-Angriff

Nach MD4 knöpfte sich Hans Dobbertin dessen Nachfolger MD5 vor – die damals meistverwendete kryptografische Hashfunktion. MD5 liefert einen Hashwert der Länge 128 Bit, wobei das Verfahren mit einem ebenfalls 128 Bit langen Wert initialisiert wird. Dieser Initialisierungswert ist in der Spezifikation des Verfahrens festgelegt, er lautet in Hexadezimalschreibweise 01234567 89ABCDEF FEDCBA98 76543210.

Hans Dobbertin fand Kollisionen bei einer MD5-Variante mit geändertem Initialisierungswert. Damit war MD5 zwar noch nicht wirklich geknackt, da Dobbertins Methode bei einem korrekten Initialisierungswert nicht funktionierte. In der Kryptologie ist es jedoch üblich, Verfahren nur dann zu akzeptieren, wenn sie einen komfortablen Sicherheitspuffer beinhalten, und dieser war mit Dobbertins Arbeit aufgebraucht. Außerdem hinterlässt es generell ein schlechtes Gefühl, wenn die Sicherheit eines Verfahrens in einem vorgegebenen Wert liegt – wer weiß schließlich, ob der Entwickler bei der Wahl dieses Werts nicht irgendwelche Hintergedanken hatte (siehe meinen Blog-Artikel über Leerer-Ärmel-Zahlen). Experten rieten daher nun von der weiteren Verwendung von MD5 ab.

Eine neue Hashfunktion entsteht

Die Schwächen von RIPE-MD, MD4 und MD5 hatte Hans Dobbertin nun eindrücklich bewiesen. Software-Entwickler und IT-Berater in aller Welt mussten sich nun Gedanken darüber machen, welche kryptografische Hashfunktion sie überhaupt noch empfehlen konnten. Das einzige zu diesem Zeitpunkt unbeschädigte Verfahren war SHA-1, doch dieser von der NSA entwickelten Methode trauten viele schon allein wegen ihrer Herkunft nicht über den Weg.

Hans Dobbertin erkannte diese Lücke und machte sich kurzerhand daran, sie zu schließen. Zusammen mit den beiden Belgiern Bart Preneel und Antoon Bosselaers entwickelte er eine verbesserte Version von RIPE-MD, die als RIPEMD-160 bezeichnet wird. Da sich RIPE-MD-160 bis heute gegenüber allen Versuchen, Kollisionen zu finden, behauptet hat, wurde das Verfahren zur zweitwichtigsten kryptografischen Hashfunktion neben SHA-1.

Die Entwicklung im Bereich der kryptografischen Hashfunktionen ging derweil weiter. Noch zu Lebzeiten Dobbertins entdeckte eine chinesische Kryptologin eine Methode, mit der sich auch für SHA-1 Kollisionen erzeugen ließen. Dobbertins Entwicklung RIPEMD-160, die gegenüber dieser Methode nicht anfällig ist, wurde dadurch weiter aufgewertet. Gut untersuchte krypotografische Hashfunktionen ohne bekannte Sicherheitslücken wurden derweil zur Mangelware. Die US-Standardisierungsbehörde NIST führte daraufhin einen Wettbewerb durch, das eine neue kryptografische Hashfunktion hervorbringen sollte. Der Sieger war ein neu entwickeltes Verfahren namens Keccak. Schade, dass Dobbertin bei diesem Wettbewerb nicht mehr mitmischen konnte.

Zum Weiterlesen: LCS35-Kryptogramm: Ein Verschlüsselungsrätsel, dessen Lösung 35 Jahre dauert