Mustaqil ish
Mavzu: Xesh funksiyani xisoblash uchun RIPEMD-160 algoritmi.
Topshirdi: Haydarniyhozov Anvar
Reja:
RIPEMD-160 algoritmi haqida ma’lumot.
RIPEMD-160 algoritmi ishlashi.
RIPEMD-160 algoritmi kurinshi.
Xesh xuniksiyalar turlari.
RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest) bu kriptografik xesh funksiyasi boʻlib, Luven Katolik Universitetida Xans Dobbertin, Antoon Bosselaers va Bart Presnel tomonidan ishlab chiqilgan. O'zboshimchalik bilan kiritilgan xabar uchun funksiya xabar xulosasi deb ataladigan 160 bitli xesh qiymatini hosil qiladi. RIPEMD-160 RIPEMD ning takomillashtirilgan versiyasi bo'lib, u o'z navbatida MD4 tamoyillaridan foydalangan va unumdorligi jihatidan keng tarqalgan SHA-1 bilan solishtirish mumkin.
Shuningdek, ushbu algoritmning mos ravishda RIPEMD-128, RIPEMD-256 va RIPEMD-320 deb nomlangan 128-, 256- va 320-bitli versiyalari mavjud. 128-bitli versiya faqat 128-bit bo'lgan va zaifliklar topilgan asl RIPEMD o'rnini bosadi[1]. 256-bit va 320-bit versiyalari xulosaning ikki baravar uzunligiga ega, bu to'qnashuvlar ehtimolini kamaytiradi, ammo funktsiyalar kriptografik jihatdan kuchliroq emas.
RIPEMD-160 NSA tomonidan yaratilgan SHA-1 va SHA-2 dan farqli o'laroq, ochiq akademik hamjamiyatda ishlab chiqilgan. Boshqa tomondan, RIPEMD-160 amalda SHA-1 ga qaraganda kamroq qo'llaniladi.
1-Qadam . etishmayotgan bitlarni qo'shish
Xabar shunday kengaytirilganki, uning 512 bit modulidagi uzunligi 448 ga teng bo'ladi. Shunday qilib, kengaytirish natijasida xabar uzunligi 512 bitga ko'p bo'lganidan 64 bitga kam bo'ladi. Xabar dastlab to'g'ri uzunlikda bo'lsa ham, kengaytirish har doim amalga oshiriladi. Kengaytirish quyidagicha amalga oshiriladi: xabarga 1 ga teng bit qo'shiladi, so'ngra xabar uzunligi 448 modul 512 bo'lguncha 0 ga teng bit qo'shiladi. Hammasi bo'lib xabarga kamida 1 bit qo'shiladi. va maksimal 512.
2-qadam: Xabar uzunligini qo'shish
64-bitli taqdimot b (to'ldirish bitlarini qo'shishdan oldingi xabar uzunligi) oldingi qadamning natijasiga qo'shiladi. Bunday bo'lmagan taqdirda b dan katta 2^{64}, faqat 64 ta eng kam ahamiyatli bit ishlatiladi. Ushbu bitlar ikkita 32 bitli so'z sifatida qo'shiladi, birinchi navbatda eng kam ahamiyatli bitlarni o'z ichiga olgan so'z qo'shiladi.
Ushbu bosqichda (bitlarni va xabar uzunligini qo'shgandan so'ng) biz uzunligi 512 bitga ko'p bo'lgan xabarni olamiz. Bu 32 bitli 16 so'zdan iborat bo'lgan ushbu xabarga teng. Har bir 32 bitli so'zda to'rtta 8 bitli so'z bor, lekin ular ketma-ket ketmaydi, aksincha (masalan, sakkizta 8 bitli so'zdan (a b c d e f g h) biz ikkita 32 bitli so'z (dcba hgfe) olamiz)
3-qadam: Haqiqiy funksiyalar va konstantalarni aniqlash
Nochiziqli bitli funksiyalar:
II. Qo'shilgan o'n oltilik konstantalar:
III. Xabardan 32 bitli so'zlarni tanlash
VI. Chapga bit surish
V. Xulosa so‘zlarning boshlang‘ich ma’nolari
4 - Qadam . Xeshlash algoritmini bajaring
Barcha boshlang'ich funktsiyalarni, konstantalarni va xesh sum so'zlarining boshlang'ich qiymatlarini o'rnatganingizdan so'ng, siz algoritmni bajarishga o'tishingiz mumkin. Xabarni qayta ishlash har biri 32 bitli 16 ta so'zdan iborat (16 * 32 = 512) 512 bitli bloklarda sodir bo'ladi. Har bir blok ikki usulda qayta ishlanadi va natijalar ma'lum bir tarzda qo'shiladi.
Quyida algoritmning psevdokodi keltirilgan. "+" qo'shilishi 232 qo'shimcha modulini bildiradi, rollar s pozitsiyalari bo'yicha chapga aylana siljishini bildiradi. 16 ta 32 bitli so'zlardan iborat t blokdan iborat original xabar Xi[j], 0 <= i < t, 0 <= j < 16[2] massivda saqlanadi.
for i := 0 to (t - 1) {
A := h0; B := h1; C := h2; D := h3; E := h4;
A' := h0; B' := h1; C' := h2; D' := h3; E' := h4;
for j := 0 to 79 {
T := rols(j) (A + f(j; B; C; D) + Xi[r(j)] + K(j)) + E;
A := E; E := D; D := rol10(C); C := B; B := T;
T := rols'(j) (A' + f(79 — j; B'; C'; D') + Xi[r'(j)] + K'(j)) + E';
A' := E'; E' := D'; D' := rol10(C'); C' := B'; B' := T;
}
T := h1 + C + D'; h1 := h2 + D + E'; h2 := h3 + E + A';
h3 := h4 + A + B'; h4 := h0 + B + C'; h0 := T;
}
RIPEMD-160 xesh misollari
Kirish qatori ASCII belgilardan iborat. Chiqish qatori o'n oltilik raqam belgisidir.
RIPEMD-160("Tez jigarrang tulki dangasa it ustidan sakrab o'tadi") =
37f332f68db77bd9d7edd4969571ad671cf9dd3b
Xabarning kichik o'zgarishi ham uning xulosasida sezilarli o'zgarishlarga olib keladi. Masalan, yuqoridagi misolda d ni c bilan almashtiramiz:
RIPEMD-160("Tez jigarrang tulki dangasa tishli tishlidan sakrab o'tadi") =
132072df690933835eb8b6ad0b77e7b6f14acad7
Bo'sh satrning xesh yig'indisi quyidagicha ko'rinadi:
RIPEMD-160("") =
9c1185a5c5e9fc54612808977ee8f548b2258d31
Taqqoslash uchun jadval MD4-ga o'xshash funktsiyalarni bajarish tezligini ko'rsatadi. Ijro kodi va ma'lumotlar bajaruvchi qurilma keshida joylashgan deb taxmin qilinadi.
Tsikl algoritmi Mbit/s nisbiy ishlash
MD4 241 191,2 1,00
MD5 337 136,7 0,72
RIPEMD 480 96,0 0,50
RIPEMD-128 592 77,8 0,41
SHA-1 837 55,1 0,29
RIPEMD-160 1013 45,5 0,24
RIPEMD-160 algoritmi kurinshi.
Xesh xuniksiyalar turlari
|