Що таке md5
Після цього MD5 став використовуватися для вирішення самих різних завдань, від хеширования паролів в CMS до створення електронно-цифрових підписів та SSL-сертифікатів.
MD5 (англ. Message Digest 5) - 128-бітний алгоритм хешування, розроблений професором Рональдом Л. Ривестом з Массачусетського Технологічного Інституту (MIT, Massachusetts Institute of Technlogy) в 1991 році, а опублікований в квітні 1992 року в RFC 1321. Потім він здобув велику популярність і став використовуватися всюди.
Призначений для створення «відбитків» або «дайджестів» повідомлень довільної довжини. Прийшов на зміну MD4, який був недосконалий. Працює на 32-бітних машинах. Після цього MD5 став використовуватися для вирішення самих різних завдань, від хешування паролів в CMS до створення електронно-цифрових підписів та SSL-сертифікатів, а також використовується для перевірки автентичності опублікованих повідомлень шляхом порівняння дайджесту повідомлення з опублікованими.
Знаючи MD5, неможливо відновити вхідний повідомлення, так як одному MD5 можуть відповідати різні повідомлення.
Починаючи з 1993 року, регулярно з’являються дослідження, які знаходять все нові уразливості в алгоритмі MD5. На даний момент алгоритм MD5 вважається вразливим і поступово замінюється алгоритмом SHA.
1.1. Історія алгоритму
1991 рік – році професором Рональдом Л. Ривестом з Массачусетського технологічного інституту був розроблений один із серії алгоритмів – MD5, як більш надійний варіант попереднього алгоритму MD4.
1992 рік – вперше описаний в RFC 1321, де і здобуває велику популярність.
Квітень 1993 року – році Берт ден Бур (Bert den Boer) і Антон Босселарс (Antoon Bosselaers) показали, що в алгоритмі можливі псевдоколлізії, коли різним ініціалізованим векторам відповідають однакові дайджести для вхідного повідомлення.
1996 рік – Ганс Доббертін (Hans Dobbertin) оголосив про колізії в алгоритмі, і вже в той час було запропоновано використовувати інші алгоритми хешування, такі як Whirlpool, SHA-1 або RIPEMD-160.
Через невеликого розміру хешу в 128 біт можна розглядати birthday-атаки. У березні 2004 року був запущений проект MD5CRK з метою виявлення вразливостей алгоритму, використовуючи birthday-атаки. Проект MD5CRK закінчився 17 серпня 2004 року, коли Ван Сяоюн (Wang Xiaoyun), Фен Денг (Feng Dengguo), Лай Сюецзя (Lai Xuejia) і Юй Хунбо (Yu Hongbo) виявили вразливості в алгоритмі.
1 березня 2005 рік – Арьєн Ленстра, Ван Сяоюн і Бенне де Вегер продемонстрували побудову двох документів X.509 з різними відкритими ключами і однаковим хешем MD5.
18 березня 2006 рік – дослідник Властіміл Клима (Vlastimil Klima) опублікував алгоритм, який може знайти колізії за одну хвилину на звичайному комп'ютері, метод отримав назву «туннелювання».
Кінець 2008 року – US-CERT закликав розробників програмного забезпечення, власників веб-сайтів і користувачів припинити використовувати MD5 в будь-яких цілях, так як дослідження продемонстрували ненадійність цього алгоритму.
24 грудня 2010 рік – Тао Се (Tao Xie) і Фен Денг (Feng Dengguo) вперше представили колізію повідомлень довжиною в один блок (512 біт). Раніше колізії були знайдені для повідомлень довжиною в два блоки і більш. Пізніше Марк Стівенс (Marc Stevens) повторив успіх, опублікувавши блоки з однаковим хешем MD5, а також алгоритм для отримання таких колізій.
2011 рік – був опублікований інформаційний документ RFC 6151. Він визнає алгоритм хешування MD5 небезпечним для деяких цілей і рекомендує відмовитися від його використання.
