• MD5 F, G, H va I funksiyalari
  • Operatsiyalar
  • MD5 algoritmining ishga tushirish vektorlari




    Download 1,82 Mb.
    bet3/18
    Sana12.02.2024
    Hajmi1,82 Mb.
    #155128
    1   2   3   4   5   6   7   8   9   ...   18
    Bog'liq
    MD5

    MD5 algoritmining ishga tushirish vektorlari


    Endi biz M kiritishlarimizni biroz tushuntirib berdik, endi diagrammada 512-bitli xabar bloki M ostida ko'rsa-tilgan Initializatsiya vektorlariga e'tiborimizni qaratish vaqti keldi.
    Dastlab, ishga tushirish vektorlari MD5 standartini tavsiflovchi RFCda ko'rsatilgan to'rtta alohida raqamdir. Bular:

    • A – 01234567

    • B - 89abcdef

    • C - fedcba98

    • D – 76543210

    Algoritm bo'ylab harakat qilganimizda, bu raqamlar biz hisob-kitoblar orqali ishlab chiqaradigan turli natijalar bilan almashtiriladi. Biroq, ushbu to'rtta ishga tushirish vektori bizni boshlash uchun muhimdir. Ularning to'rttasi ham birinchi "16 ta amal..." to'rtburchaklariga kirishlardir.

    MD5 F, G, H va I funksiyalari


    “16 ta amal…” to‘rtburchakda birinchi qadam funksiya:
    F(B, C, D) = (B∧C)∨(¬B∧D)
    Chalkash tuyuladimi? Buni keyinroq chuqurroq tushuntiramiz. Shuni ta'kidlash kerakki, B, C va D initsializatsiya vektorlari bu funktsiyada kirish sifatida ishlatiladi.
    Algoritmning oxirgi bosqichlarida B, C va D initsializatsiya vektorlari o'rnini bosuvchi qiymatlar ularning rolini to'ldiradi.
    F(B, C, D) funksiyasi birinchi turning 16 ta amali uchun ishlatiladi. Keyingi turlarda uning o'rnini quyidagi funktsiyalar egallaydi:
    2-tur: G(B, C, D) = (B∧D)∨(C∧¬D)
    3-tur: H(B, C, D) =B⊕C⊕D
    4-tur: I(B, C, D) = C⊕(B∨¬D)

    Operatsiyalar


    Ushbu diagrammada har bir "16 ta amal ..." to'rtburchakda nima sodir bo'lishi haqida taxminiy ko'rinish berilgan:

    Har bir “16 ta amal…” to‘rtburchakni kattalashtirganimizda, B, C va D dan o‘qlar F bilan belgilangan qutiga ishora qilishini ko‘rishingiz mumkin. Bu F(B, C, D) funksiyasini ifodalaydi – boshqasida ham e’tibor bering. uch turda, F funktsiyasi mos ravishda G, H va I funktsiyalari bilan almashtiriladi.
    Agar siz undan keyingi maydonga o'qni kuzatib boradigan bo'lsangiz, bu F(B, C, D) chiqishi A initsializatsiya vektoriga qo'shilganligini bildiradi , maxsus qo'shimcha turi bilan. Birinchi operatsiyada A initsializatsiya vektorining qiymati 01234567 ga teng, lekin keyingi operatsiyalarda u o'zgaradi.
    Natija keyingi qutiga o'tadi, u erda Mi bilan ifodalangan kirish qismiga qo'shiladi. Shundan so'ng, bir xil maxsus turdagi qo'shimchalar yordamida natijaga K doimiysi qo'shiladi. K ning qiymatlari quyidagi formuladan olinadi:

    Bu formula MD5 ning qolgan qismini tushunish uchun unchalik muhim emas. Biroq, bizga u olib keladigan qadriyatlar kerak, ular:

    • K1 - D76AA478

    • K2 - E8C7B756

    • K3 - 242070DB

    • K4 - C1BDCEEE

    • K5 - F57COFA

    • K6 - 4787C62A

    • K7 - A8304613

    • K8 - FD469501

    • K9 - 698098D8

    • K10 - 8B44F7AF

    • K11 - FFFF5BB1

    • K12 - 895 CD7BE

    • K13 - 6B901122

    • K14 - FD987193

    • K15 - A679438E

    • K16 - 49B40821

    • K17 - F61E2562

    • K18 - C040B340

    • K19 - 265E5A51

    • K20 - E9B6C7AA

    • K21 - D62F105D

    • K22 – 02441453

    • K23 - D8A1E681

    • K24 - E7D3FBC8

    • K25 - 21E1CDE6

    • K26 - C33707D6

    • K27 - F4D50D87

    • K28 - 455A14ED

    • K29 - A9E3E905

    • K30 - FCEFA3F8

    • K31 - 676F02D9

    • K32 - 8D2A4C8A

    • K33 - FFFA3942

    • K34 - 8771F681

    • K35 - 699D6122

    • K36 - FDE5380C

    • K37- A4BEEA44

    • K38 - 4BDECFA9

    • K39 - F6BB4B60

    • K40 - BEBFBC70

    • K41 - 289B7EC6

    • K42 - EAA127FA

    • K43 - D4EF3085

    • K44 - 04881D05

    • K45 - D9D4D039

    • K46 - E6DB99E5

    • K47 - 1FA27CF8

    • K48 - C4AC5665

    • K49 - F4292244

    • K50 - 432AFF97

    • K51 - AB9423A7

    • K52 - FC93A039

    • K53 - 655B59C3

    • K54 - 8F0CCC92

    • K55 - FFEFF47D

    • K56 - 85845DD1

    • K57 - 6FA87E4F

    • K58 - FE2CE6E0

    • K59 - A3014314

    • K60 - 4E0811A1

    • K61 - F7537E82

    • K62 - BD3AF235

    • K63 - 2AD7D2BB

    • K64 - EB86D391

    Ushbu K qiymatlaridan biri 512 bitli blok uchun 64 ta amalning har birida ishlatiladi. Birinchi turda K1 dan K16 gacha, ikkinchi turda K17 dan K32 gacha, uchinchi turda K33 dan K48 gacha va to'rtinchi bosqichda K49 dan K64 gacha ishlatiladi.
    K qiymati qo'shilgandan so'ng, keyingi qadam bitlar sonini oldindan belgilangan Si miqdoriga chapga siljitishdir. Bu qanday ishlashini biz maqolada batafsil aytib beramiz. Har bir bitni siljitadigan miqdor MD5 algoritmi qaysi operatsiyani bajarishiga qarab o'zgaradi. Har bir operatsiyada oldindan belgilangan siljishlar soni mavjud va operatsiyalar ularni ketma-ketlikda ishlatadi (masalan, S1, S2, S3 va boshqalar). S qiymatlari:



    • Birinchi tur

      • S1, S5, S9, S13 – 7

      • S2, S6, S10, S14 – 12

      • S3, S7, S11, S15 – 17

      • S4, S8, S12, S16, – 22

    • Ikkinchi tur

      • S17, S21, S25, S29 - 5

      • S18, S22, S26, S30 - 9

      • S19, S23, S27, S31 - 14

      • S20, S24, S28, S32 - 20

    • Uchinchi tur

      • S33, S37, S41, S45 - 4

      • S34, S38, S42, S46 - 11

      • S35, S39, S43, S47 - 16

      • S36, S40, S44, S48 - 13

    • To'rtinchi tur

      • S49, S53, S57, S61 - 6

      • S50, S54, S58, S62 - 10

      • S51, S55, S59, S63 - 15

      • S52, S56, S60, S64 - 21

    O'zgartirish amalga oshirilgandan so'ng, barcha hisob-kitoblarning natijasi B vektorini ishga tushirish qiymatiga qo'shiladi. Dastlab, u 89abcdef, lekin keyingi operatsiyalarda o'zgaradi.
    Bu qiymatning chiqishi keyingi operatsiyada B uchun ishga tushirish vektoriga aylanadi. B, C va D initsializatsiya vektorlari bitta bo'shliq ustida o'ngga aralashtiriladi, shuning uchun keyingi operatsiyada B C, C D va D A bo'ladi.

    Download 1,82 Mb.
    1   2   3   4   5   6   7   8   9   ...   18




    Download 1,82 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    MD5 algoritmining ishga tushirish vektorlari

    Download 1,82 Mb.