Nadat we eerder deze week al berichtten over onveiligheden in het SHA-0-algoritme, blijkt nu hetzelfde probleem te bestaan met MD5. Een groep Chinese wiskundigen heeft op de Crypto 2004 conferentie onthuld dat ze een fout in het MD5 algoritme hebben gevonden waardoor het mogelijk is om een collision te berekenen. Hun ontdekking maakt het mogelijk om op een IBM P690-server in ongeveer een uur voor een gegeven hoeveelheid 'brondata' die een bepaalde MD5-hash oplevert, alternatieve data te berekenen die dezelfde hash genereert. Op een standaard pc zou dan zoiets mogelijk zijn binnen enkele uren, aldus C|Net.
Ook heeft een groep een dergelijke fout gevonden in een vereenvoudige versie van SHA-1. SHA-1 gebruikt volgens de specificaties 80 'rounds' om een hash te genereren, de vereenvoudigde (gekraakte) versie gebruikt 40 'rounds'. SHA-1 is nu dus nog veilig genoeg om te worden gebruikt als hashalgoritme voor digitale handtekeningen, maar dat zou zeer goed op termijn kunnen veranderen. SHA-1 wordt onder andere gebruikt door PGP een SSL, en een eventuele fout in dit algoritme zou relatief grote gevolgen kunnen hebben voor de betrouwbaarheid van deze twee standaarden.
De ontdekkingen die nu zijn gedaan zijn niet een logisch gevolg van de toenemende rekencapaciteit van computers. Het probleem ligt in nieuwe algoritmes die zijn ontdekt die een zwakheid van het hashalgoritme gebruikt om 'terug te rekenen'. Er werd verondersteld dat dit niet mogelijk zou zijn met (in ieder geval) SHA-1, en dat hashes die met dit algoritme worden gegenereerd alleen zijn te kraken door middel van de brute-force techniek, wat zelfs met de allersnelste computers onpraktisch lang zou duren. Nu het wellicht mogelijk is om met beschikbare computersystemen deze algoritmes te kraken is er een relatief groot probleem ontstaan.
Volgens experts is er nog geen reden om als gemiddelde computergebruiker zorgen te gaan maken, maar het is wel zo dat het MD5-algoritme niet meer als 100% betrouwbaar en onkraakbaar kan worden beschouwd. MD5 wordt onder andere gebruikt voor het versleutelen van passworden in diverse systemen. Voor dit doel is het algoritme in principe nog geschikt. Het wordt echter ook gebruikt voor het genereren van zogenaamde fingerprints van bestanden zodat de integriteit van bijvoorbeeld broncode kan worden gewaarborgd. Voor dit doel is het algoritme nu in principe niet meer geschikt. Onder andere het Apache-project en Sun Microsystems gebruiken MD5 voor dit doel. Veel andere (open-source) projecten gebruiken echter ook een variant van PGP voor dit doel die dus gebruik maakt van SHA-1.