====MD5==== **MD5 (Message Digest)** je **hash funkcija** temeljena na **Merkle-Damgård konstrukciji** koja sažima poruku u 128 bitova.\\ {{ ::merkle-damgard.png?nolink&500 |Shema Merkle-Damgård konstrukcije}} Izvorni tekst dijeli se na blokove duljine 512 bitova. Zadnji blok teksta se nadopunjuje do 512 bitova tako da se iza zadnjeg bita teksta doda 1, nakon čega se redom upisuju 0 dok u bloku ne preostanu prazna 64 bita u koja se upisuje duljina izvorne poruke. Svaki blok dijeli se na 16 podblokova po 32 bita M0, M1,...,M15. Sažetak H od 128 bitova sastoji se od 4 nadovezanih 32-bitovnih varijable koje se inicijaliziraju s heksadekadskim vrijednostima: A0 = 01234567 B0 = 89ABCDEF C0 = FEDCBA98 D0 = 76543210 Postupak se obavlja u 64 koraka podijeljena u 4 kruga sa 16 koraka. U svakom krugu koristi se jedna od 4 funkcije: Fi(x, y, z) = (X ^ Y) v (!X ^ Z) 1 ≤ i ≤ 16 Fi(x, y, z) = (X ^ Y) v (X ^ !Z) 17 ≤ i ≤ 32 Fi(x, y, z) = X ⊕ Y ⊕ Z 33 ≤ i ≤ 48 Fi(x, y, z) = Y ⊕ (X ^ !Z) 49 ≤ i ≤ 64 U svakom koraku koristi se varijabla Ki = 232 x abs(sin(i)) 1 ≤ i ≤ 64 {{ ::md5.png?nolink&500 | MD5 shema}} MD5 više nije sigurna hash funkcija. Napredak u tehnologiji 1990-ih učinio je prolazak kolizije u sažetku duljine 128 bitova trivijalnim i vremenski nezahtjevnim. Nesigurnost MD5 funkcije sažimanja iskorištena je u napadima [[[flame|Flame]] malwareom. ===Izvori=== [1] Christof Paar, Jan Pelzl, Understanding Cryptography, Springer-Verlag Berlin Heidelberg, 2009.\\ [2] https://platforma.hacknite.hr/challenges\\ [3] Kriptografija i kriptoanaliza, predavanja, FER\\ [4] https://www.mscs.dal.ca/~selinger/md5collision/\\ [5] https://www.exploit-db.com/docs/english/46047-md5-collision-of-these-2-images-is-now()-trivial-and-instant.pdf