Md5 xesh funktsiyalar va ularning texnikasi



Yüklə 4,93 Kb.
tarix07.01.2024
ölçüsü4,93 Kb.
#203834
MD5 xesh funktsiyalar va ularning texnikasi

MD5 xesh funktsiyalar va ularning texnikasi

TARIXI

  • MD5 (Message Digest 5) 1991 yilda Massachusets Texnologiya Instituti (MIT) professori Ronald L. Rivest tomonidan ishlab chiqilgan 128 bitli xeshlash algoritmidir. O'zboshimchalik bilan uzunlikdagi xabarlarning "barmoq izlari" yoki dayjestlarini yaratish va keyinchalik ularning haqiqiyligini tekshirish uchun mo'ljallangan. Ma'lumotlarning yaxlitligini tekshirish va parol xeshlarini saqlash uchun keng qo'llaniladi.

MD5 algoritmi

  • Algoritm kirish ma'lumotlar oqimini oladi, uning xeshini topish kerak. Xabar uzunligi bit bilan o'lchanadi va har qanday uzunlik (shu jumladan, nol) bo'lishi mumkin. Xabar uzunligini L bilan yozamiz. Bu raqam butun son va manfiy emas. Har qanday raqamlarning ko'pligi ixtiyoriy. Ma'lumotlar kelgandan so'ng, oqimni hisob-kitoblarga tayyorlash jarayoni boshlanadi.
  • Quyida algoritmning 5 qadami keltirilgan

1 - qadam

  • Birinchidan, oqim oxiriga bitta bit qo'shiladi.
  • Keyin yangi oqim uzunligi bo'lishi uchun ma'lum miqdordagi nol bit qo'shing L’ 448 modul 512 bilan solishtirish mumkin bo'ldi , ( L’ = 512 + N + 448 ). Asl oqimning uzunligi allaqachon 448 ga teng bo'lsa ham, tekislash har qanday holatda sodir bo'ladi.

2-qadam

  • Ma'lumotlar uzunligining 64 bitli tasviri (xabardagi bitlar soni) tekislashdan oldin xabarning oxiriga qo'shiladi. Avval past 4 bayt, keyin esa yuqori 4 bayt yoziladi. Agar uzunlik oshib ketgan bo’lsa 1 , keyin faqat eng kam ahamiyatli bitlar qo'shiladi (modulni olishga teng ). Shundan so'ng, oqim uzunligi 512 ga karrali bo'ladi. Hisob-kitoblar ushbu ma'lumotlar oqimini 512 bitli so'zlar massivi sifatida ko'rsatishga asoslanadi.
  •  

3-qadam


Hisob-kitoblar uchun to'rtta 32 bitli o'zgaruvchilar ishga tushiriladi, ularning boshlang'ich qiymatlari o'n oltilik raqamlarda ko'rsatilgan ( little-endian bayt tartibi ):
A = 01 23 45 67; // 67452301h
B = 89 AB CD EF; // EFCDAB89h
C = FE DC BA 98; // 98BADCFEh
D = 76 54 32 10. // 10325476h
Ushbu o'zgaruvchilar oraliq hisoblar natijalarini saqlaydi. ABCD boshlang'ich holati ishga tushirish vektori deb ataladi.

4-qadam

  • Keling, hisob-kitoblar uchun kerak bo'ladigan funktsiyalar va konstantalarni aniqlaylik.
  • Har bir tur o'z funktsiyasini talab qiladi. Keling, uchta parametrdan funktsiyalarni kiritaylik - so'zlar, natijada ham so'z bo'ladi:
  • 1-bosqich: FunF⁡(X,Y,Z)=(X∧Y)∨(¬X∧Z),

    2-bosqich: FunG(XY,Z)=(X∧Z)∨(¬Z∧Y),

    3-bosqich: FunH⁡(X,Y,Z)=X⊕Y⊕Z ,

    4-bosqich: FunI(X,Y,Z)=Y⊕(¬Z∨X) ,

    Qayerda ⊕,∧,∨,¬ bitli mantiqiy amallar mos ravishda XOR , AND , OR va NOT.

Konstantalar jadvalini aniqlaymiz T[1...64] - 64 elementli ma'lumotlar jadvali, quyidagi tarzda tuzilgan:

  • Konstantalar jadvalini aniqlaymiz T[1...64] - 64 elementli ma'lumotlar jadvali, quyidagi tarzda tuzilgan:
  • T[n] = int(*|sin n|

  • Har bir 512-bitli blok 16 turdan iborat hisob-kitoblarning 4 bosqichidan o'tadi. Buning uchun blok har biri 32 bitli 16 so'zdan iborat X massiv sifatida taqdim etiladi. Barcha turlar bir xil turdagi va quyidagi shaklga ega: [abcd ksi], deb belgilangan a=b+((a+FunI⁡(b,c,d)+X[k]+T[i])⋘s) , bu erda k - joriy 512 bitli xabar blokidagi 32 bitli so'zning raqami va
  • ...⋘s — qabul qilingan 32 bitli argumentning s bitiga chapga tsiklik siljish . Har bir tur uchun s raqami alohida belgilanadi.

  •  

Yüklə 4,93 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin