OGOHLANTIRISH
GOSTni o'qiyotganda, shuni yodda tutingki, barcha 8 baytlik test ketma-ketliklarida nol bayt massiv oxirida, ettinchisi mos ravishda boshida joylashgan (agar siz Stribog va Grasshopper haqidagi maqolalarni diqqat bilan o'qib chiqsangiz, bizning kripto standartlarimizning bu xususiyati sizga tanish bo'lishi kerak).
Ta'riflangan algoritmda shifrlanadigan blok (esda tuting, uning uzunligi 64 bit) teng uzunlikdagi ikki qismga bo'linadi (32 bit) - o'ng va chap. O'ttiz ikkita takrorlash 256 bitli asl shifrlash kalitidan olingan takroriy kalitlar yordamida amalga oshiriladi.
Har bir iteratsiya paytida (o'ttiz soniyadan tashqari), shifrlangan blokning o'ng va chap yarmi bilan Feistel tarmog'iga asoslangan bitta o'zgartirish amalga oshiriladi. Birinchidan, o'ng tomonga joriy iteratsiya tugmachasi bilan 32-modul qo'shiladi, so'ngra olingan 32-bitli raqam sakkizta 4-bitli raqamlarga bo'linadi va ularning har biri permutatsion jadval yordamida boshqa 4-bitli raqamga aylanadi (agar esingizdami, oldingi ikkita maqolada u chiziqli bo'lmagan biyektiv o'zgarish deb nomlangan). Ushbu konvertatsiyadan so'ng, hosil bo'ladigan raqam davriy ravishda o'n bir raqamga chapga siljiydi. Keyin natija blokning chap yarmi bilan belgilanadi. Olingan 32-bitli raqam blokning o'ng yarmiga yoziladi va o'ng yarmining eski tarkibi o'tkaziladi chap yarmi blok
Oxirgi (o'ttiz ikkinchi) takrorlash paytida, xuddi yuqorida aytilganidek, o'ng yarmi o'zgartiriladi, shundan so'ng natija asl blokning chap tomoniga yoziladi va o'ng yarmi o'z qiymatini saqlab qoladi.
Takrorlash kalitlari asl 256 bitli kalitdan olingan. Asl kalit sakkizta 32-bitli kichik kalitlarga bo'linadi, so'ngra ular quyidagi tartibda ishlatiladi: uchdan birinchisidan sakkizinchisigacha va sakkizinchisidan birinchisigacha.
Shifrni ochish uchun shifrlashda bo'lgani kabi takrorlash ketma -ketligi ishlatiladi, lekin kalitlarning tartibi teskari.
Shunday qilib, nazariyaga qisqa va qisqa cho'milgandan so'ng, biz kodlashni boshlaymiz ...
Do'stlaringiz bilan baham: |