Mahalliy blokli shifrlash algoritmi qanday ishlaydi. Ruscha "magma". Mahalliy blokli shifrlash algoritmi 64 bitli shifrlash qanday ishlaydi


STANDARTNING ASOSIY FUNKTSIYALARI


Download 19.67 Kb.
bet4/7
Sana22.10.2023
Hajmi19.67 Kb.
#1716276
1   2   3   4   5   6   7
Bog'liq
Mahalliy blokli shifrlash algoritmi qanday ishlaydi. Ruscha mag-www.hozir.org

STANDARTNING ASOSIY FUNKTSIYALARI

Algoritmda 32-bitli bloklar (ikkilik vektorlar deb nomlangan) ishlatilganligi sababli, avval biz bir xil blokni aniqlaymiz:


// Blok hajmi 4 bayt (yoki 32 bit) #define BLOCK_SIZE 4 ... // vekt turini 4 baytli massiv sifatida belgilang typedef uint8_t vect;

MODUL 2 GA IKKITA IKKILIK VEKTOR QO'SHILISHI

Birinchi vektorning har bir bayti ikkinchi vektorning mos keladigan bayti bilan yoziladi va natija uchinchi (chiqish) vektoriga yoziladi:


Statik bo'shliq GOST_Magma_Add (const uint8_t * a, const uint8_t * b, uint8_t * c) (int i; for (i = 0; i)< BLOCK_SIZE; i++) c[i] = a[i]^b[i]; }

32 -MODULLI IKKITA IKKILIK VEKTORLARNING QO'SHILISHI

Bu funksiya Stribog algoritmidan "2 -modul qoldiqlari halqasida n kuchiga qo'shilish" deb nomlangan funktsiyaga o'xshaydi, bundan tashqari bizning holatlarimizda n, Stribog standartidagi kabi 512 emas, 32 bo'ladi. Ikki asl 4 baytli vektorlar ikkita 32 bitli raqamlar bilan ifodalanadi, so'ngra ular qo'shiladi, agar paydo bo'lsa, to'kish o'chiriladi:


Statik bo'shliq GOST_Magma_Add_32 (const uint8_t * a, const uint8_t * b, uint8_t * c) (int i; belgisiz int ichki = 0; uchun (i = 3; i> = 0; i--) (ichki = a [i] + b [i] + (ichki >> 8); c [i] = ichki va 0xff;))

CHIZIQLI BO'LMAGAN BIJEKTIV O'ZGARISH (T KONVERTATSIYASI)

"Stribog" va "Grasshopper" algoritmlaridan farqli o'laroq (aytmoqchi, bu o'zgarish S-transformatsiyasi deb ataladi), bu erda almashtirish jadvali boshqacha:


Statik imzosiz char Pi = ((1,7,14,13,0,5,8,3,4,15,10,6,9,12,11,2), (8,14,2,5,6 , 9,1,12,15,4,11,0,13,10,3,7), (5,13,15,6,9,2,12,10,11,7,8,1,4 , 3,14,0), (7,15,5,10,8,1,6,13,0,9,3,14,11,4,2,12), (12,8,2,1 , 13,4,15,6,7,0,10,5,3,14,9,11), (11,3,5,8,2,15,10,13,14,1,7,4 , 12,9,6,0), (6,8,2,3,9,10,5,12,1,14,4,7,11,13,0,15), (12,4,6 , 2,10,5,11,9,14,8,13,7,0,3,15,1));
Standart matnida (noma'lum an'anaga ko'ra) nol bayt oxirida, oxirgi bayt boshida yozilganligi uchun dastur to'g'ri ishlashi uchun jadval satrlari teskari tartibda yozilishi kerak, va standartda ko'rsatilganidek emas.
T konvertatsiya funktsiyasining kodi quyidagicha:
Statik bo'shliq GOST_Magma_T (const uint8_t * in_data, uint8_t * out_data) (uint8_t first_part_byte, sec_part_byte; int i; for (i = 0; i< 4; i++) { // Извлекаем первую 4-битную часть байта first_part_byte = (in_data[i] & 0xf0) >> 4; // sec_part_byte = (in_data [i] & 0x0f) baytining ikkinchi 4 bitli qismini chiqarib oling; // O'zgartirishni qidirish jadvaliga muvofiq bajaring first_part_byte = Pi; sek_part_byte = Pi; // "yopishtiruvchi" ikkala 4-bitli qismni baytga qaytaradi [i] = (birinchi_qism_bayt)<< 4) | sec_part_byte; } }

DAVOM FAQAT ISHTIROKCHILAR UCHUN MAVJUD

VARIANT 1. SAYTDAGI BARCHA MATERIALLARNI O'QISH UCHUN "SAYT" HAMJAMIYATIGA QO'SHILING

Belgilangan vaqt mobaynida hamjamiyatga a'zo bo'lish sizga barcha Hacker materiallariga kirishni ochadi, shaxsiy chegirmangizni oshiradi va sizga professional Xakep skorini to'plashga imkon beradi!



Download 19.67 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling