MD5 je 128-bitový hašovací algoritmus, ktorý vytvoril vedec Ronald L. Rivest na začiatku 90. rokov. Skratka MD5 znamená Message Digest Version 5.
Šifrovanie MD5 je založené na hašovaní, ktoré zahŕňa vytváranie „odtlačkov prstov“ alebo „súčtov“ na ďalšie overenie ich pravosti. Pomocou tejto metódy môžete overiť integritu informácií, ako aj ukladanie hash hesiel.
História MD5
História algoritmu Message Digest Algorithm (MD5) sa začína v roku 1991, keď profesor MIT Ronald L. Rivest informoval o vytvorení nového algoritmu, ktorý nahradil zastaraný MD4. Čo sa týka MD4, skutočne sa v ňom našlo množstvo nedostatkov, ako neskôr napísal nemecký kryptológ Hans Dobbertin.
Rivest opísal nový algoritmus MD5 v RFC 1321.
V práci na algoritme pokračovali výskumníci Bert den Boer a Anton Bosselars, ktorí v roku 1993 dokázali možnosť pseudokolízií v MD5, keď sa rôzne inicializačné vektory môžu zhodovať s rovnakými súhrnmi správ.
V roku 1996 Hans Dobbertin tvrdil, že našiel kolíziu v MD5. V tom čase sa stali známymi preferovanejšie hašovacie algoritmy, ako sú kryptografické hašovacie funkcie RIPEMD-160 – vyvinuté Hansom Dobbertinom, Antonom Bosselarsom a Bartom Prenelom, Whirlpool – vyvinutý Vincentom Raymenom a Paulom Barretom a kryptografický hašovací algoritmus SHA-1.
Vzhľadom na relatívne malú veľkosť hashu (128 bitov) v MD5 sa hovorí o možnosti narodeninových útokov. Projekt MD5CRK, ktorý spustil Jean-Luc Cook v roku 2004, sa zameral na štúdium zraniteľnosti algoritmu pomocou narodeninových útokov. Ale po piatich mesiacoch, 17. augusta 2004, bol projekt obmedzený, pretože skupina čínskych kryptografov pod vedením Lai Xuejia objavila zraniteľnosť v algoritme.
V marci 2005 matematici a kryptografi Benne de Weger, Arjen Lenstra a Wang Xiaoyun vytvorili dva dokumenty X.509 s rovnakým hashom a rôznymi verejnými kľúčmi.
O rok neskôr, v marci 2006, bol publikovaný algoritmus českého kryptografa Vlastimila Klímy, ktorý umožňuje určiť kolízie na jednoduchom počítači za jednu minútu. Tento algoritmus sa stal známym ako metóda „tunelovania“.
Na základe analýzy výsledkov práce v roku 2008 oddelenie Národnej správy kybernetickej bezpečnosti Ministerstva vnútornej bezpečnosti USA (US-CERT) odporučilo, aby každý, kto sa podieľal na vývoji softvér, webové stránky, ako aj používatelia siete prestanú používať algoritmus MD5 bez ohľadu na účel jeho aplikácie. Dôvodom takéhoto odporúčania bola nespoľahlivosť, ktorú preukázal v procese jeho štúdia.
V decembri 2010 čínski kryptológovia Tao Xie a Feng Denguo objavili kolíziu správ 512 bitov (jeden blok). Predtým boli kolízie nájdené iba v správach, ktoré boli dlhé dva alebo viac blokov. Neskôr Mark Stevens dosiahol podobné výsledky publikovaním blokov s rovnakým hashom MD5. Vyvinul tiež algoritmus na získanie kolízií tohto typu.
Záverečným dokumentom, ktorý ukončil históriu vývoja algoritmu MD5, bola žiadosť o pripomienky – RFC 6151 (RFC je oficiálny dokument vyvinutý Radou internetového inžinierstva (IETF), ktorý popisuje špecifikácie pre konkrétne technológia), ktorá v skutočnosti rozpoznala MD5 ako nezabezpečený hašovací algoritmus. Dokument odporúča opustiť ho a ako alternatívu zvoliť rodinu kryptografických algoritmov SHA-2.
Preberaný algoritmus MD5 sa považuje za jeden z prvých štandardov algoritmov používaných na kontrolu integrity súborov a ukladanie hesiel v databázach webových aplikácií.
V skutočnosti však relatívne jednoduchá funkčnosť, krátka výstupná dĺžka a jednoduchosť vykonávaných operácií, ktoré sú výhodami algoritmu, určujú aj jeho nevýhody - MD5 označuje algoritmy, ktoré sú náchylné na hackovanie a majú nízky stupeň ochrana pred narodeninovými útokmi.