MD5 hashovací algoritmus je jednosměrný šifrovací funkci, která přijímá zprávu libovolné délky jako vstup a vrátí jako výstup pevné délky digest hodnoty, která bude použita pro ověření pravosti původní zprávu.
hašovací funkce MD5 byla původně navržena pro použití jako Bezpečný kryptografický hašovací algoritmus pro ověřování digitálních podpisů. MD5 byl zastaralý pro jiné použití než jako nekyptografický kontrolní součet k ověření integrity dat a detekci neúmyslného poškození dat.
i když původně navržený jako cryptographic message authentication code algoritmus pro použití na internetu, MD5 hash je již považován za spolehlivý pro použití jako kryptografický kontrolní součet, protože vědci prokázali techniky schopné snadno generovat MD5 kolize na komerční off-the-police počítače.
Ronald Rivest, zakladatel RSA Data Security a profesor institutu na MIT, navrhl MD5 jako zlepšení algoritmu předchozího message digest, MD4. Popisuje to V Internet Engineering Task Force RFC 1321, „algoritmus MD5 Message-Digest,“ napsal:
algoritmus bere jako vstup zprávu libovolné délky a vytváří jako výstup 128bitový „otisk prstu“ nebo „Přehled zpráv“ vstupu. To je se domníval, že je výpočetně neproveditelné k výrobě dvou zpráv, které mají stejný message digest nebo vyrábět všechny zprávy mají vzhledem k předem stanovené cílové message digest. Algoritmus MD5 je určen pro aplikace digitálního podpisu, kde velký soubor musí být „komprimován“ bezpečným způsobem, než bude šifrován soukromým (tajným) klíčem v kryptosystému veřejného klíče, jako je RSA.
IETF naznačuje, MD5 hash, může ještě být použity pro ochranu integrity, a upozorňuje, „Kde MD5 kontrolní součet se používá inline s protokolem výhradně k ochraně proti chybám, MD5 kontrolní součet je stále přijatelné použít.“Dodala však, že „každá aplikace a protokol, který používá MD5 pro jakýkoli účel, musí jasně uvést očekávané bezpečnostní služby z jejich používání MD5.“
Message digest algoritmus, vlastnosti
hašovacích funkcí, také známý jako hashovací funkce jsou jednosměrné funkce; přijímají zprávu o libovolné velikosti jako vstup, a vyrábět jako výstup pevné délky message digest.
MD5 je třetí message digest algoritmus vytvořený Rivest. Všechny tři (ostatní jsou MD2 a MD4) mají podobné struktury, ale MD2 byl optimalizován pro 8bitové stroje ve srovnání se dvěma pozdějšími vzorci, které jsou optimalizovány pro 32bitové stroje. Algoritmus MD5 je rozšířením MD4, které kritická recenze shledala jako rychlé, ale možná ne zcela bezpečné. Pro srovnání, MD5 není tak rychlý jako algoritmus MD4, ale nabízí mnohem větší jistotu bezpečnosti dat.
jak MD5 funguje
hashovací algoritmus MD5 message digest zpracovává data v 512bitových blocích, rozdělených do 16 slov složených z 32 bitů. Výstupem z MD5 je 128bitová hodnota přehledu zpráv.
Výpočet MD5 digest hodnoty se provádí v oddělených fázích, že každý proces 512-bitový blok dat spolu s hodnotou vypočítanou v předchozím stupni. První fáze začíná hodnotami zprávy digest inicializovanými pomocí po sobě jdoucích hexadecimálních číselných hodnot. Každá fáze obsahuje čtyři zprávy digest průchody, které manipulují hodnoty v aktuálním datovém bloku a hodnoty zpracované z předchozího bloku. Konečná hodnota vypočtená z posledního bloku se stává MD5 digest pro tento blok.
MD5 security
cílem jakékoli funkce Message digest je vytvářet digesty, které se zdají být náhodné. Být považovány kryptograficky bezpečné hashovací funkce by měla splňovat dva požadavky: za prvé, že je nemožné, aby útočník generovat zprávu odpovídající konkrétní hash hodnotu, a za druhé, že je nemožné, aby útočník vytvořit dvě zprávy, které produkují stejnou hash hodnotu.MD5 hashe již nejsou považovány za Kryptograficky bezpečné a neměly by být používány pro kryptografickou autentizaci.
V roce 2011, publikováno IETF RFC 6151, „Aktualizované Bezpečnostní Aspekty pro MD5 Message-Digest a HMAC-MD5 Algoritmy“, které citoval řadu nedávné útoky proti MD5 hashe, a to zejména ten, který vygeneroval hash kolize za minutu nebo méně na standardní notebook a další, které by mohly generovat kolize v jak malý jako 10 sekund na 2,66 GHz Pentium 4 systému. Jako výsledek, IETF navrhl, že nový protokol návrhy by neměly používat MD5, a že nedávný výzkum útoky proti algoritmus „poskytly dostatečný důvod k odstranění MD5 použití v aplikacích, kde odolnost proti nárazu, je nutné, jako jsou digitální podpisy.“