24-mavzu: Blokli shifrlsh algoritmi. Birinchi bo'limda biz simmetrik kriptotizimlarni ikki turga, ya'ni blokli va oqimli shifrlashga ajratgan edik. Kriptografiyada blokli shifrlash algoritmlari keng qo'llanilib, mohiyat jixatdan quyidagicha. Masalan, ochiq matn 128-bit uzunlikka ega bo'lgan qismlarga ajratiladi va har bir qismlar ustida alohida-alohida amallar bajariladi. Kiruvchi ushbu qism ustida maxfiy kalit asosida amallar bajariladi va natijada 128-bitli shifr matn olinadi.
Blokli shifrlash algoritmlari yaratilish asosiga ko'ra quyidagi turlarga bo'linadi:
Takrorlanuvchi blokli shifrlash(Iterated block ciphers);
O'zratirish-almashtirish tarmoqlari (Substitution-permutation networks);
Feystel tarmog'iga asoslangan (Feistel ciphers);
Lai-Massey shifrlari (Lai-Massey ciphers);
Amallarga asoslangan(Operations);
Takrorlanuvchi blokli shifrlash(Iterated block ciphers). Ko'plab blokli shifrlash algoritmlari takrorlanuvchi shifrlash algoritmlariga asoslanadi, ya'ni ochiq matnning aniq bir bo'lagi qaytariluvchi almashtirish amali orqali shifr matnning aniq bir qismiga almashtiriladi. Ushbu qaytariluvchi almashtirish amali odatda raund amali deb atalib, har bir almashtirish jarayoni raund deb ataladi.
Odatda raund fuknsiyasi R har bir raunda alohida qiymatlar oladi, Ki. Ular esa o'z o'rnida haqiqiy kalitdan hosil qilinadi.
M_i=R_(K_i ) (M_(i-1))
Bu erda, M_0- ochiq matn, M_r - shifr matn raundga mos holda.
Odatda kalit bilan ochiq matn XOR amali orqali qo'shiladi.
M_i=M⨁K_0
M_i=R_(K_i ) (M_(i-1) );i=0..r
C=M_r⊕K_(r+1)
O'zgaratirish-almashtirish tarmoqlari (Substitution-permutation networks). Blokli shifrlash algoritmlari orasida eng muhim bo'lgan yaratish turlaridan biri o'zratirish-almashtirish tarmoqlari (Substitution-permutation networks, SPN) sanalib, har bir raundda aynan bir bir xil belgilangan amallar bosqichi bajariladi.
Ushbu usulda shifrlash algoritmi quyidagicha :
5-rasm. SPN tarmoq tuzilishi Ushbu shifrlash usuli asosida almashtirish bloki (S-box) lardan foydalanib, ushbu bloklarda kirish baytlariga teng chiqish baytlari olinadi.
Ushbu usulda kalit bilan ochiq matn qismlari XOR amalida qo'shilib, keyingi modul kirish qiymati hisoblanadi.
Ushbu usulda yaratilgan shifrlash algoritmlaridan eng mashhuri AES standarti sanalib, har uzunlikdagi kalit va blok uzunliklaridan foydalanadi.
Feystel tarmog'iga asoslangan (Feistel ciphers). Dastlabki blokli shifrlash usullari aynan Feystel tarmog'iga asoslangan bo'lib, bu tarmoqning asosi 5-rasmda keltirilgan.
6-rasm. Feystel tarmog'i Ushbu tarmoq mohiyati quyidagicha, ya'ni kirish blogi (bu tarmoqda 64 bit kirish blogi tavsiya etiladi) ikki qismga(chap va o'ng qismlarga) ajratilib, kalit asosida qism ustida amallar bajariladi.
Ushbu tarmoqda ko'plab simmetrik blokli shifrlash algoritmlari yaratilgan bo'lib, ular orasida eng mashhurlari, GOST 28147-89, DES, Blowfish, CAST, Twofish va boshqalar.
Bugungi kunda ko'plab amalda qo'llanilib kelinayotgan kompьyuterlardagi arifmetik amallarni bajaruvchi qurilma ikkilik sanok sistemasida 32 razryad bilan ifodalanuvchi sonlar uchun mo'ljallangan. Kelajakda kompьyuter foydalanuvchilari uchun bundan ham katta 64, 128 va xokazo razryadli sonlar ustida arifmetik amallar bajarish imkoniyatini beruvchi tezkor qurilmalar yaratilishi tabiiy hol. Shularni hisobga olib, Feystel tarmog'iga asoslangan shifrlash algoritmlarini akslantirish asoslarini saqlab qolgan holda, K-kalit uzunliklarini oshirish masalasi yechiladi. Mana shunday masalani yechish uchun Feystel tarmog'i quyidagicha takomillashtiriladi: