MD5 is een 128-bits hash-algoritme dat begin jaren negentig is ontwikkeld door wetenschapper Ronald L. Rivest. De afkorting MD5 staat voor Message Digest Version 5.
MD5-codering is gebaseerd op hashing, waarbij "vingerafdrukken" of "sommen" worden gevormd om hun authenticiteit verder te verifiëren. Met deze methode kunt u de integriteit van de informatie verifiëren, evenals de opslag van wachtwoord-hashes.
MD5-geschiedenis
De geschiedenis van het Message Digest Algorithm (MD5) begint in 1991, toen MIT-professor Ronald L. Rivest rapporteerde over de creatie van een nieuw algoritme dat de verouderde MD4 verving. Wat MD4 betreft, daarin werden inderdaad een aantal tekortkomingen gevonden, zoals de Duitse cryptoloog Hans Dobbertin later schreef.
Rivest beschreef het nieuwe MD5-algoritme in RFC 1321.
Het werk aan het algoritme werd voortgezet door onderzoekers Bert den Boer en Anton Bosselars, die in 1993 de mogelijkheid van pseudo-botsingen in MD5 bewezen, wanneer verschillende initialisatievectoren kunnen matchen met dezelfde berichtsamenvattingen.
Verder beweerde Hans Dobbertin in 1996 een botsing te hebben gevonden in de MD5. In die tijd werden meer geprefereerde hash-algoritmen bekend, zoals de RIPEMD-160 cryptografische hash-functies - ontwikkeld door Hans Dobbertin, Anton Bosselars en Bart Prenel, Whirlpool - ontwikkeld door Vincent Raymen en Paulo Barreto en het SHA-1 cryptografische hash-algoritme.
Vanwege de relatief kleine hash-grootte (128 bits) in MD5 is er gesproken over de mogelijkheid van verjaardagsaanvallen. Het MD5CRK-project, gelanceerd door Jean-Luc Cook in 2004, had tot doel de kwetsbaarheid van het algoritme te bestuderen met behulp van verjaardagsaanvallen. Maar na vijf maanden, op 17 augustus 2004, werd het project stopgezet vanwege de ontdekking van een kwetsbaarheid in het algoritme door een groep Chinese cryptografen onder leiding van Lai Xuejia.
In maart 2005 creëerden wiskundigen en cryptografen Benne de Weger, Arjen Lenstra en Wang Xiaoyun twee X.509-documenten met dezelfde hash en verschillende openbare sleutels.
Een jaar later, in maart 2006, werd door de Tsjechische cryptograaf Vlastimil Klima een algoritme gepubliceerd waarmee je op een simpele computer in slechts één minuut botsingen kunt vaststellen. Dit algoritme werd bekend als de "tunneling"-methode.
Als resultaat van de analyse van de resultaten van het werk, adviseerde de afdeling van de National Cyber Security Administration van het Amerikaanse Department of Homeland Security (US-CERT) in 2008 dat iedereen die betrokken was bij de ontwikkeling van software, websites en netwerkgebruikers stoppen met het gebruik van het MD5-algoritme, ongeacht het doel van de toepassing. De reden voor een dergelijke aanbeveling was de onbetrouwbaarheid die hij aantoonde tijdens het bestuderen ervan.
In december 2010 ontdekten de Chinese cryptologen Tao Xie en Feng Denguo een berichtbotsing van 512 bits (één blok). Voorheen werden botsingen alleen gevonden in berichten die twee of meer blokken lang waren. Later behaalde Mark Stevens vergelijkbare resultaten door blokken met dezelfde MD5-hash te publiceren. Hij ontwikkelde ook een algoritme om dergelijke botsingen te verkrijgen.
Het laatste document dat een einde maakte aan de geschiedenis van de ontwikkeling van het MD5-algoritme was een verzoek om commentaar - RFC 6151 (RFC is een officieel document ontwikkeld door de Internet Engineering Council (IETF), dat specificaties beschrijft voor een specifieke technologie), die MD5 daadwerkelijk herkende als een onveilig hashing-algoritme. Het document beveelt aan om het op te geven en als alternatief de SHA-2-familie van cryptografische algoritmen te kiezen.
Het besproken MD5-algoritme wordt beschouwd als een van de eerste algoritmestandaarden die worden gebruikt om de integriteit van bestanden te controleren en wachtwoorden op te slaan in databases van webtoepassingen.
Maar in feite bepalen de relatief eenvoudige functionaliteit, korte uitvoerlengte en eenvoud van de uitgevoerde bewerkingen, zijnde de voordelen van het algoritme, ook de nadelen - MD5 verwijst naar algoritmen die vatbaar zijn voor hacking en een lage mate van bescherming tegen verjaardagsaanvallen.