Shakl 8.3.Keyingi 512-bitli blok qayta ishlanmoqda
Har bir tsikl hozirgi vaqtda ishlov berilayotgan 512 bitli Y q bloki va oraliq hazm qiymati bo'lgan ABCD tamponining 128 bitli qiymatini oladi va ushbu bufer tarkibini o'zgartiradi. Har bir tsikl, shuningdek, sin funktsiyasi asosida qurilgan 64 elementli T jadvalining to'rtinchi qismini ham ishlatadi. T [i] bilan belgilangan T ning i-chi elementi 2 32 * abs (sin (i)) butun soniga teng qiymatga ega, i radian bilan berilgan. Abs (sin (i)) soni 0 dan 1 gacha bo'lganligi sababli, T ning har bir elementi 32 bit bilan ifodalanadigan butun sondir. Jadval 32 bitli qiymatlarning "tasodifiy" to'plamini taqdim etadi, ular kirishda har qanday muntazamlikni yo'q qilishi kerak.
MD q + 1 ni olish uchun to'rt tsiklning chiqishi MD q bilan birga 2 32 modulli qo'shiladi. Qo'shish buferdagi to'rtta so'zning har biri uchun mustaqil ravishda amalga oshiriladi.
CLS s - 32 bitli argumentning s bitlari bo'yicha chap tomonga siljish.
|
X [k] - M - bu q-th 512 xabarlar blokidagi k-th 32-bitli so'z.
|
T [i] - bu T matritsasidagi 32-bitli so'z.
|
+ - qo'shimcha modul 2 32.
|
Algoritmning to'rtta tsiklining har birida to'rtta elementar mantiqiy funktsiyalardan biri ishlatiladi. Har bir elementar funktsiya kirishda uchta 32 bitli so'zlarni oladi va natijada bitta 32 bitli so'zlarni yaratadi. Har bir funktsiya bitrin mantiqiy operatsiyalar to'plamidir, ya'ni. Chiqishning nth biti uchta kirishning nth bit funktsiyasidir. Elementar funktsiyalar quyidagilar:
32 bitli so'zlar qatori hozirgi vaqtda qayta ishlanayotgan 512 bitli kirish blokining qiymatini o'z ichiga oladi. Har bir tsikl 16 marotaba bajariladi va kirish xabarining har bir bloki to'rt tsiklda ishlov berilganligi sababli, kirish xabarining har bir bloki sekundda ko'rsatilgan sxema bo'yicha ishlov beriladi. 4, 64 marta. Agar biz 512 bitli blokni o'n oltita 32 bitli so'zlar shaklida ifodalasak, 32 bitli har bir kirish to'rt marta, har tsiklda bir marta va 64 32 bitli so'zlardan iborat T jadvalining har bir elementidan faqat bittadan foydalanadi. marta. Tsiklning har bir bosqichidan keyin to'rtta A, B, C va D so'zlari chap tomonga siljiydi va har bir qadamda ABCD buferining faqat to'rtta so'zidan bittasi o'zgaradi. Shuning uchun, buferning har bir so'zi 16 marta o'zgartiriladi, so'ngra bu blokning yakuniy natijasini olish uchun 17-marta.
hazm qilmoq
2. Tezlik: algoritmni dasturiy ta'minot etarli darajada tez bajarilishi kerak. Xususan, 32-bitli arxitekturada algoritm etarlicha tez bajarilishi kerak. Shuning uchun algoritm 32 bitli so'zlar bo'yicha oddiy elementar operatsiyalar to'plamiga asoslanadi.
3. Oddiylik va ixchamlik: algoritm sodda va sodda va dastursiz, katta dasturlarsiz yoki jadvallarsiz ko'rinishi kerak. Ushbu xususiyatlar nafaqat aniq dasturiy afzalliklarga ega, balki xavfsizlik nuqtai nazaridan ham talab etiladi, chunki mumkin bo'lgan zaif tomonlarini tahlil qilish uchun oddiy algoritmga ega bo'lish yaxshiroqdir.
4. Bir oz endian arxitekturasi maqsadga muvofiqdir: ba'zi protsessor arxitekturalari (masalan, Intel 80xxx liniyasi) so'zning chap baytini pastki bayt manzillari holatida saqlaydi (kichik endian). Boshqalar (masalan, SUN Sparcstation) so'zlarning baytlarini pastki bayt manzillari holatida saqlaydi (katta MD4 birinchi tsiklda qo'shimcha sobitni qo'llamaydi. Ikkinchi tsikldagi har bir qadam uchun shunga o'xshash qo'shimcha doimiy ishlatiladi. Uchinchi tsikldagi har bir qadam uchun yana bir qo'shimcha doimiy ishlatiladi. Xesh kod har bir kirish bitining funktsiyasidir Elementar funktsiyalarni kompleks takrorlash f, f G, f H va f I natijaning yaxshi aralashganligini ta'minlaydi, ya'ni ikkita xabar tasodifiy tanlangan bo'lishi dargumon. e, agar ular aniq o'xshash naqshlarga ega bo'lsa, ular bir xil chiqish qiymatini beradigan bir xil hazmga ega, ya'ni 512 bitli bitta blokda MD5 ni bajarish ABCD buferidagi ikkita turli xil kirish qiymatlari uchun bir xil natijaga olib keladi. MD5-ga muvaffaqiyatli hujum qilish uchun hech qanday yondashuv mavjud emas.
Do'stlaringiz bilan baham: |