MD5 yra 128 bitų maišos algoritmas, kurį dešimtojo dešimtmečio pradžioje sukūrė mokslininkas Ronaldas L. Rivestas. Santrumpa MD5 reiškia Message Digest Version 5.
MD5 šifravimas pagrįstas maišos keitimu, kuris apima „pirštų atspaudų“ arba „sumų“ formavimą, siekiant dar labiau patikrinti jų autentiškumą. Naudodami šį metodą galite patikrinti informacijos vientisumą ir slaptažodžių maišos saugojimą.
MD5 istorija
Pranešimo santraukos algoritmo (MD5) istorija prasideda 1991 m., kai MIT profesorius Ronaldas L. Rivestas pranešė apie naujo algoritmo, kuris pakeitė pasenusį MD4, sukūrimą. Kalbant apie MD4, jame išties buvo rasta nemažai trūkumų, kaip vėliau rašė vokiečių kriptologas Hansas Dobbertinas.
Rivest aprašė naują MD5 algoritmą RFC 1321.
Darbą su algoritmu tęsė tyrinėtojai Bertas den Boeris ir Antonas Bosselarsas, kurie 1993 m. įrodė pseudo susidūrimų galimybę MD5, kai skirtingi inicijavimo vektoriai gali atitikti tuos pačius pranešimų santraukas.
Be to, 1996 m. Hansas Dobbertinas teigė radęs susidūrimą su MD5. Tuo metu tapo žinomi labiau pageidaujami maišos algoritmai, tokie kaip RIPEMD-160 kriptografinės maišos funkcijos, kurias sukūrė Hans Dobbertin, Anton Bosselars ir Bart Prenel, Whirlpool, kurias sukūrė Vincentas Raymenas ir Paulo Barreto, ir SHA-1 kriptografinės maišos algoritmas.
Dėl santykinai mažo maišos dydžio (128 bitai) MD5 buvo kalbama apie gimtadienio atakų galimybę. MD5CRK projektas, kurį 2004 m. pradėjo Jean-Luc Cook, siekė ištirti algoritmo pažeidžiamumą naudojant gimtadienio atakas. Tačiau po penkių mėnesių, 2004 m. rugpjūčio 17 d., projektas buvo apribotas, nes Lai Xuejia vadovaujama Kinijos kriptografų grupė aptiko algoritmo pažeidžiamumą.
2005 m. kovo mėn. matematikai ir kriptografai Benne de Weger, Arjen Lenstra ir Wang Xiaoyun sukūrė du X.509 dokumentus su ta pačia maiša ir skirtingais viešaisiais raktais.
Po metų, 2006 m. kovo mėn., Čekijos kriptografas Vlastimilas Klima paskelbė algoritmą, leidžiantį nustatyti susidūrimus paprastu kompiuteriu vos per vieną minutę. Šis algoritmas tapo žinomas kaip „tuneliavimo“ metodas.
Išanalizavus darbo rezultatus, 2008 m. JAV Tėvynės saugumo departamento Nacionalinės kibernetinio saugumo administracijos (US-CERT) skyrius rekomendavo visiems, kurie dalyvavo kuriant programinės įrangos, svetainių, taip pat tinklo naudotojų, nustos naudoti MD5 algoritmą, nepaisant jo taikymo tikslo. Tokios rekomendacijos priežastis buvo nepatikimumas, kurį jis parodė ją studijuodamas.
2010 m. gruodžio mėn. Kinijos kriptologai Tao Xie ir Feng Denguo aptiko 512 bitų (vieno bloko) pranešimų susidūrimą. Anksčiau susidūrimai buvo aptikti tik dviejų ar daugiau blokų ilgio pranešimuose. Vėliau Markas Stevensas panašių rezultatų pasiekė publikuodamas blokus su ta pačia MD5 maiša. Jis taip pat sukūrė algoritmą tokio tipo susidūrimams gauti.
Paskutinis dokumentas, užbaigęs MD5 algoritmo kūrimo istoriją, buvo komentarų prašymas – RFC 6151 (RFC yra oficialus dokumentas, sukurtas Interneto inžinerijos tarybos (IETF), kuriame aprašomos konkrečios specifikacijos. technologija), kuri iš tikrųjų atpažino MD5 kaip nesaugų maišos algoritmą . Dokumente rekomenduojama jo atsisakyti, kaip alternatyvą pasirinkti SHA-2 kriptografinių algoritmų šeimą.
Aptartas MD5 algoritmas laikomas vienu iš pirmųjų algoritmo standartų, naudojamų failų vientisumui patikrinti ir slaptažodžiams žiniatinklio programų duomenų bazėse saugoti.
Tačiau iš tikrųjų santykinai paprastas funkcionalumas, trumpas išvesties ilgis ir atliekamų operacijų paprastumas, kurie yra algoritmo pranašumai, taip pat lemia jo trūkumus – MD5 reiškia algoritmus, kurie yra linkę įsilaužti ir kurių veikimo lygis yra mažas. apsauga nuo gimtadienio išpuolių.