MD5 - це 128-бітний алгоритм хешування, створений вченим Рональдом Л. Рівестом на початку 90-х років минулого століття. Абревіатура MD5 розшифровується як Message Digest 5-ої версії.
Принципи шифрування MD5 засновані на хешуванні, що передбачає формування «відбитків» або «сум» з метою подальшої перевірки на справжність. За допомогою цього методу можна переконатися в цілісності збереження інформації, а також збереження хешей паролів.
Історія MD5
Історія алгоритму побудови дайджесту повідомлення (MD5) починається в 1991 році, коли професор Массачусетського технологічного інституту Рональд Л. Рівест звітував про створення нового алгоритму, що прийшов на заміну застарілого MD4. Що стосується MD4, то в ньому справді було виявлено низку недоліків, про що пізніше написав німецький криптолог Ганс Доббертін.
Рівест навів опис нового алгоритму MD5 у документі RFC 1321.
Робота над алгоритмом була продовжена дослідниками Бертом ден Буром та Антоном Босселарсом, які в 1993 році довели ймовірність виникнення в MD5 псевдоколізій, коли різні вектори, що ініціалізують, можуть мати відповідність з однаковими дайджестами повідомлень.
Далі, 1996 року Гансом Доббертіном було заявлено про виявлення в MD5 колізії. У той час стало відомо про кращі алгоритми хешування, такі як криптографічні хеш-функції RIPEMD-160 — розроблена Хансом Доббертіном, Антоном Босселарсом і Бартом Пренелем, Whirlpool — розроблена Вінсентом Рейменом і Пауло Баррето і алгоритм криптографічного хешування. >
Зважаючи на невеликий розмір хешу (128 біт) у MD5, заговорили про ймовірність атак типу «день народження». Проект MD5CRK, запущений Жан-Люком Куком у 2004 році мав на меті вивчити вразливість алгоритму за допомогою birthday-атак. Але, після п'яти місяців, 17 серпня 2004 року, проект звернули у зв'язку з виявленням уразливості в алгоритмі, групою китайських криптографів на чолі з Лай Сюецзя.
У березні 2005 року математиками та криптографами Бенне де Вегером, Ар'єном Ленстро та Ван Сяоюнем було створено два документи X.509, які мають однаковий хеш та різні відкриті ключі.
Через рік, у березні 2006 року був опублікований алгоритм, складений чеським криптографом Владимілом Клима, що дозволяє визначити колізії на простому комп'ютері протягом всього однієї хвилини. Цей алгоритм став відомим як метод «тунелювання».
У результаті аналізу результатів роботи, у 2008 році підрозділ Національного управління кібербезпеки Міністерства внутрішньої безпеки США (US-CERT) порекомендував усім, хто був задіяний у розробках програмного забезпечення, веб-сайтів, а також користувачам мережі відмовитися від використання алгоритму MD5 незалежно від цілей його застосування. Причиною такої рекомендації стала ненадійність, яку він продемонстрував у процесі вивчення.
У грудні 2010 року китайські криптологи Тао Се та Фен Денго виявили колізію повідомлень завдовжки 512 біт (один блок). Насамперед колізії перебували лише у повідомленнях, довжина яких становила два блоки і більше. Пізніше подібних результатів досяг Марк Стівенс, який опублікував блоки з однаковим хешем MD5. Він також розробив алгоритм отримання колізій даного типу.
Підсумковим документом, що поставив крапку в історії розвитку алгоритму MD5, став запит на коментарі — RFC 6151 (RFC — офіційний документ, розроблений Інженерною радою інтернету (IETF), в якому описуються специфікації для конкретної технології), що фактично визнав MD5 небезпечним алгоритмом хешування . Документ рекомендує від нього відмовитися, обравши як альтернативу сімейство криптографічних алгоритмів SHA-2.
Розглянутий алгоритм MD5 по праву вважається одним із перших стандартів алгоритму, що застосовується для перевірки цілісності файлів і для зберігання паролів у базах даних веб-додатків.
Але, за фактом, відносно проста функціональність, коротка вихідна довжина і нескладність операцій, що є, перевагами алгоритму визначають і його недоліки — MD5 відноситься до алгоритмів, схильних до злому і мають низький ступінь захисту від атак типу «день народження».