Bosh sahifa Wiki MD5

MD5

MD5 — Message-Digest Algorithm 5 nomli, istalgan uzunlikdagi ma’lumotdan 128 bitlik hash qiymat hisoblaydigan kriptografik hash funksiyasi. Ronald Rivest uni 1991-yilda ishlab chiqqan, RFC 1321 esa 1992-yilda tavsiflagan. MD5 faylning tasodifiy buzilishini aniqlash kabi meros vazifalarda uchraydi, ammo collisionga chidamliligi amalda buzilganligi sababli raqamli imzo, sertifikat va hujumchiga qarshi yaxlitlik tekshiruvlari uchun xavfsiz hisoblanmaydi.

Hisoblash tuzilishi

MD5 xabarni 512 bitlik bloklarda qayta ishlaydi. Avval xabarga 1 biti, kerakli nol bitlar va asl uzunlikning 64 bitlik ko‘rinishi qo‘shiladi. Ichki holat to‘rtta 32 bitlik so‘zdan iborat. Har blok 64 bosqichda mantiqiy funksiyalar, modul 2^32 bo‘yicha qo‘shish va bit aylantirish amallari orqali holatni yangilaydi. Yakuniy 128 bit digest ko‘pincha 32 ta hexadecimal belgi sifatida ko‘rsatiladi.

d41d8cd98f00b204e9800998ecf8427e

Bu bo‘sh byte satrining MD5 qiymatidir. Hashdan asl ma’lumotni bevosita “ochish” operatsiyasi yo‘q, lekin kichik yoki taxmin qilinadigan kirishlar brute-force va oldindan hisoblangan jadval orqali topilishi mumkin. Shu sababli one-way xususiyat parol saqlash uchun yetarli emas.

Collision zaifligi

Collision — ikki turli xabarning bir xil digest berishi. 128 bit ideal hashda umumiy collision birthday bound sabab taxminan 2^64 urinishda kutiladi. MD5dagi kriptotahlil bundan ancha tez collision yasash imkonini ko‘rsatdi. Chosen-prefix collision usullari hujumchiga turli tanlangan prefikslar bilan bir xil yakuniy MD5ga ega hujjatlar yaratish imkonini beradi.

Bu xususiyat hash imzolangan tuzilmalarda ayniqsa xavfli. Hujumchi zararsiz va zararli ikki mazmun uchun bir xil MD5 tayyorlasa, zararsiz hujjatga olingan signature zararli variantga ham mos kelishi mumkin. Tarixda MD5 collisioni soxta sertifikat authority sertifikati yaratish tajribasida namoyish qilingan. Shuning uchun MD5 bilan imzo yaratish va collisionga qarshi identifikatsiya taqiqlanadi.

Checksum sifatida ishlatilishi

MD5 tasodifiy transport xatosini aniqlashda hanuz uchrashi mumkin. Agar fayl va kutilgan MD5 bir xil ishonchli kanal orqali hujumchi tomonidan almashtirilishi mumkin bo‘lsa, tekshiruv xavfsizlik bermaydi: tajovuzkor yangi fayl uchun yangi hashni ham e’lon qiladi. Autentifikatsiyalangan yaxlitlik uchun raqamli imzo yoki secretga asoslangan HMAC kerak.

Kontentni de-duplication qilishda tasodifiy collision ehtimoli kichik ko‘rinsa ham, zararli kirish qabul qilinadigan tizim MD5ga yagona obyekt identifikatori sifatida tayanmaydi. Kuchliroq hash ishlatish yoki hash teng chiqqanda byte-by-byte solishtirish xavfni kamaytiradi.

Parol saqlash

Oddiy MD5 juda tez hisoblanadi. Hujumchi o‘g‘irlangan hash bazasiga GPU yordamida soniyasiga juda ko‘p taxminni tekshira oladi. Salt rainbow table qayta ishlatilishini kamaytiradi, lekin tezlik muammosini hal qilmaydi. Parollar Argon2id, scrypt yoki bcrypt kabi ataylab qimmat password hashing algoritmi bilan, har hisob uchun alohida salt asosida saqlanadi.

MD5ni bir necha marta takrorlash ham zamonaviy memory-hard algoritmning o‘rnini bosmaydi. Meros bazani ko‘chirishda foydalanuvchi muvaffaqiyatli login qilgach, parol tekshiriladi va yangi algoritm bilan qayta xeshlanadi. Yangi tizim MD5ni “tezligi qulay” sabab tanlamaydi.

Length extension

MD5 Merkle–Damgård tuzilishiga mansub bo‘lgani sababli MD5(secret || message) ko‘rinishidagi sodda MAC length-extension hujumiga moyil. Hujumchi digest va message uzunligini bilib, secretni topmasdan qo‘shimcha suffix uchun yaroqli digest yasashi mumkin. HMAC ichki va tashqi hash qatlamlari bilan bu muammoni bartaraf etadi. Yangi protokol autentifikatsiya uchun MD5 asosidagi maxsus konstruktsiya emas, standart HMAC va zamonaviy hashni ishlatadi.

Bog‘liq tushunchalar

Hash function, Collision attack, Checksum, SHA-256, Password hashing, HMAC, Birthday attack