Xesh – funksiyalar asosida ma’lumot yaxlitligini tekshirish. Yuqorida 𝑀 ma’lumot yaxlitligini tekshirishda ℎ(𝑀) ni hisoblash va qabul qiluvchiga 𝑀, ℎ(𝑀) ni yuborish orqali amalga oshirishning kamchiligi haqida aytib o‘tilgan edi. Shuning uchun, amalda xesh funksiyalardan ma’lumot yaxlitligini ta’minlashda bevosita foydalanilmaydi. Boshqacha aytganda, xesh funksiyalar asosida ma’lumot yaxlitligini ta’minlashda hisoblangan xesh qiymatni o‘zgartira olmaslikni kafolatlash maqsad qilinadi. Buni amalga oshirish uchun balki xesh qiymatni simmetrik kalitli shifrlar asosida shifrlash zarurdir (ya’ni,
𝐸(ℎ(𝑀), 𝐾)). Biroq, buni amalga oshirishning soddaroq usuli – xeshlangan MAC (hashed MAC yoki HMAC) usuli mavjud. Bu usulga ko‘ra, xesh qiymatni shifrlashning o‘rniga, xesh qiymatni hisoblash jarayonida kalitni bevosita ma’lumotga biriktirish amalga oshiriladi. HMAC tizimida kalitlar qanday biriktiriladi? Umumiy holda ikki usul: kalitni matnni oldidan qo‘yish (ℎ(𝐾, 𝑀)) yoki kalitni matndan keyin
qo‘yish (ℎ(𝑀, 𝐾)) mavjud bo‘lsada, ularning har ikkalasida jiddiy xavfsizlik muammosi mavjud.
Xesh funksiyalar ham simmetrik kriptotizim hisoblanadi va simmetrik blokli shifrlash kabi ma’lumotlarni xeshlashda bloklarga ajratiladi. Odatda aksariyat xesh funksiyalar uchun (masalan, MD5, SHA1, Tiger) blok uzunligi 64 baytga yoki 512 bitga teng.
HMAC tizimida kalit ma’lumotga quyidagicha biriktiriladi. Dastlab xesh funksiyadagi blokning uzunligi baytlarda aniqlanadi. Masalan. MD5 xesh fuknsiyasida blok uzunligi 𝐵 = 64 baytga teng bo‘lsin. Olingan kalit (𝐾) uzunligi ham blok uzunligiga keltiriladi. Bunda 3 ta holat bo‘lishi mumkin: (1) agar kalitning uzunligi 64 baytga teng bo‘lsa, hech qanday o‘zgarish amalga oshirilmaydi, (2) agar kalitning uzunligi 64 dan kichik bo‘lsa, u holda yetmagan baytlar o‘rni nollar bilan to‘ldiriladi, (3) agar kalit uzunligi blok uzunligidan katta bo‘lsa, kalit dastlab xeshlanadi va hosil bo‘lgan xesh qiymatning o‘ng tomoni blok uzunligiga yetguncha nollar bilan to‘ldiriladi. Shu tariqa, kalit uzunligi blok uzunligiga moslashtiriladi.
Shunday qilib, ma’lumot va moslashtirilgan kalit asosida HMAC qiymati quyidagicha hisoblanadi:
𝐻𝑀𝐴𝐶(𝑀, 𝐾) = 𝐻�𝐾 ⊕ 𝑜𝑝𝑎𝑑, 𝐻(𝐾⨁𝑆𝑆𝑝𝑎𝑑, 𝑀)�.
Bu yerda, 𝑆𝑆𝑝𝑎𝑑 va 𝑜𝑝𝑎𝑑 o‘zgaruvchilar quyidagicha hosil qilinadi:
𝑆𝑆𝑝𝑎𝑑 = 0𝑥36 𝑛𝑆𝑆 𝐵 𝑚𝑎𝑟𝑡𝑎 𝑡𝑎𝑘𝑟𝑜𝑟𝑙𝑎𝑠ℎ 𝑛𝑎𝑡𝑆𝑆𝑚𝑚𝑎𝑠𝑆𝑆𝑑𝑎
𝑜𝑝𝑎𝑑 = 0𝑥5𝑐 𝑛𝑆𝑆 𝐵 𝑚𝑎𝑟𝑡𝑎 𝑡𝑎𝑘𝑟𝑜𝑟𝑙𝑎𝑠ℎ 𝑛𝑎𝑡𝑆𝑆𝑚𝑚𝑎𝑠𝑆𝑆𝑑𝑎
Tenglikdan ko‘rinib turibdiki, HMAC da ikki marta xeshlash amalga oshirilmoqda. Kalit 𝐾 faqat ikki tomonga (jo‘natuvchi va qabul qiluvchiga) ma’lum bo‘lgani uchun, hujumchi mos xesh qiymatni qayta hisoblay olmaydi. A tomondan yuborilgan (𝑀, 𝐻𝑀𝐴𝐶(𝑀, 𝐾)) ma’lumot juftlaridan hujumchi faqat ma’lumotni o‘zgartirishi mumkin bo‘ladi va bu holat qabul qiluvchi tomonidan osonlik bilan aniqlanadi.
|