MD5 е 128-битов хеш алгоритъм, създаден от учения Роналд Л. Ривест в началото на 90-те години. Съкращението MD5 означава Message Digest Version 5.
MD5 криптирането се основава на хеширане, което включва формирането на „пръстови отпечатъци“ или „суми“, за да се провери допълнително тяхната автентичност. Използвайки този метод, можете да проверите целостта на информацията, както и съхранението на хешовете на паролите.
История на MD5
Историята на алгоритъма за обобщение на съобщенията (MD5) започва през 1991 г., когато професорът от MIT Роналд Л. Ривест докладва за създаването на нов алгоритъм, който заменя остарелия MD4. Що се отнася до MD4, в него наистина бяха открити редица недостатъци, както по-късно пише немският криптолог Ханс Добертин.
Rivest описа новия MD5 алгоритъм в RFC 1321.
Работата по алгоритъма беше продължена от изследователите Берт ден Боер и Антон Боселарс, които през 1993 г. доказаха възможността за псевдосблъсъци в MD5, когато различни инициализационни вектори могат да съвпадат с едни и същи обобщени съобщения.
Освен това, през 1996 г. Ханс Добертин твърди, че е открил сблъсък в MD5. По това време станаха известни по-предпочитаните алгоритми за хеширане, като криптографските хеш функции RIPEMD-160 - разработени от Hans Dobbertin, Anton Bosselars и Bart Prenel, Whirlpool - разработени от Vincent Raymen и Paulo Barreto и алгоритъмът за криптографско хеширане SHA-1.
Поради сравнително малкия размер на хеша (128 бита) в MD5, се говори за възможността за атаки за рожден ден. Проектът MD5CRK, стартиран от Жан-Люк Кук през 2004 г., имаше за цел да проучи уязвимостта на алгоритъма, използвайки атаки за рожден ден. Но след пет месеца, на 17 август 2004 г., проектът беше прекратен поради откриването на уязвимост в алгоритъма от група китайски криптографи, водени от Lai Xuejia.
През март 2005 г. математиците и криптографите Benne de Weger, Arjen Lenstra и Wang Xiaoyun създадоха два документа X.509 с еднакъв хеш и различни публични ключове.
Една година по-късно, през март 2006 г., беше публикуван алгоритъм от чешкия криптограф Властимил Клима, който ви позволява да определяте сблъсъци на прост компютър само за една минута. Този алгоритъм стана известен като метод на „тунелиране“.
В резултат на анализа на резултатите от работата през 2008 г. отделът на Националната администрация за киберсигурност на Министерството на вътрешната сигурност на САЩ (US-CERT) препоръча на всички, които са участвали в разработката на софтуер, уебсайтове, както и мрежови потребители, спират да използват алгоритъма MD5, независимо от целта на приложението му. Причината за такава препоръка беше ненадеждността, която той демонстрира в процеса на изучаването му.
През декември 2010 г. китайските криптолози Tao Xie и Feng Denguo откриха сблъсък на съобщения от 512 бита (един блок). Преди това сблъсъци бяха открити само в съобщения с дължина два блока или повече. По-късно Марк Стивънс постига подобни резултати, като публикува блокове със същия MD5 хеш. Той също така разработи алгоритъм за получаване на сблъсъци от този тип.
Окончателният документ, който сложи край на историята на разработването на алгоритъма MD5, беше искане за коментари - RFC 6151 (RFC е официален документ, разработен от Съвета по интернет инженерство (IETF), който описва спецификациите за конкретен технология), която всъщност разпозна MD5 като несигурен алгоритъм за хеширане. Документът препоръчва да се изостави, като се избере фамилията криптографски алгоритми SHA-2 като алтернатива.
Обсъжданият алгоритъм MD5 се счита за един от първите стандарти за алгоритми, използвани за проверка на целостта на файлове и съхраняване на пароли в бази данни на уеб приложения.
Но всъщност сравнително простата функционалност, късата дължина на изхода и простотата на извършваните операции, които са предимствата на алгоритъма, също определят неговите недостатъци - MD5 се отнася за алгоритми, които са склонни към хакване и имат ниска степен на защита срещу атаки за рожден ден.