MixColumns (Ustun elementlarini aralashtirish) akslantirishida holat ustunlari elementlari uchinchi darajadan katta bo‘lmagan ko‘phadning koefisentlari sifatida ifodalanib, ana shu ko‘phad algoritmda berilgan:
g(x) = {03}x3 +{01}x2 +{01}x+{02}
ko‘phadga x4+1 modul bo‘yicha ko‘paytiriladi.
Quyidagicha belgilash kiritilib:
s00 = s’00 , s10 = s’11 , s20 = s’22 , s30 = s’33 ,
s01 = s’01 , s11 = s’12 , s21 = s’23 , s31 = s’30 ,
s02 = s’02 , s12 = s’13 , s22 = s’20 , s32 = s’31 ,
s03 = s’03 , s13 = s’10 , s23 = s’21 , s33 = s’32
ta'kidlangan ko‘phadlarning ko‘paytmasini matrisa ko‘rinishidagi ifodasi:
bo‘ladi, bu erda c- ustun nomeri.
Oxirgi tenglik
tengliklarga ekvivalent.
AddRoundKey (Raund kalitlarini qo‘shish) akslantirishda holat blokining bitlari kalit bloki mos bitlari bilan xarakteristikasi ikki bo‘lgan chekli maydonda qo‘shiladi, ya'ni, massivning har bir ustuni va shu ustunning elementlari kalit massivining mos ustun va elementlariga XOR amali bilan qo‘shiladi.
Kalitlar generasiyasi algoritmi (Key Schedule).
Raund kalitlari daslabki kalitdan, algoritmda ko‘zda tutilgan hamma raundlar uchun yaratib olinadi. Bu jarayon:
kalitni kengaytirish (Key Expansion);
raund kalitlarini tanlash (Round Key Selection)
bosqichlaridan iborat.
Raund kalitlarining umumiy bitlari soni kirish ma'lumotining bitlari sonini raund soniga ko‘paytmasiga va yana bitta kirish ma'lumotining bitlari sonini yig‘indisiga teng (misol uchun 128 bitli shifrlash uchun 128*10+128=1408 bit raund kaliti kerak bo‘ladi), ya'ni Nb (Nr+1) va l(Nr +1)=12811=1408 bit.
Demak, 128 bit uzunlikdagi blok va 10 raund uchun 1408 bit raund kalitlari talab qilinadi.
Dastlabki kalitni kengaytirishda, 128 bitli (16 bayt, simvol) boshlang‘ich kiruvchi kalit kiritib olinadi va to‘rtta ( w1, w2, w3, w4 ) 32 bitdan bo‘lgan bo‘lakka bo‘linadi. Qolgan kengaytirilgan kalitlar mana shu to‘rtta ( w1, w2, w3, w4 ) kengaytirilgan kalitlar yordamida topiladi. Ya'ni, kengaytirilgan kalitlar quyida keltirilgan (1) va (2) formulalar asosida hisoblab topiladi. Kengaytirilgan kalitlar soni
;
Biz ko‘rayotgan holatda Nb = 4, Nr = 10 ga teng ya'ni, bayt uzunligi 4 ga, raundlar soni 10 ga teng. Shularni bilgan holda ni topiladi:
= 4*(10+1) = 44
Demak, 128 bitli kirish blokiga va 10 ta raundga ega bo‘lgan shifrlash uchun 44 ta kengaytirilgan kalitlar kerak bo‘lar ekan.
Raund kalitlari kengaytirilgan kalitlardan quyida bayon qilingan qoida asosida yaratiladi. Kalitlar generasiyasining formulalari quyidagi ko‘rinishlarga ega:
w[i]= w[i-1] w[i-Nk] , (3)
va
w[i]= SubWord (RotWord (w[i-1] )) Rcon[ i/Nk] w[i-Nk]. (4.4)
Bizning holatda Nk = 4 bo‘lganligi sababli i=4,8,12,16,20,… qiymatlar uchun (4.2) formuladan foydalanib, kengaytirilgan kalitlar topiladi. Ya'ni, i ning 4 ga karrali, 4 ga qoldiqsiz bo‘linadigan qiymatlarida (4.2) formuladan foydalaniladi. Qolgan barcha
i = 5,6,7,9,10,11,13,... qiymatlarida (3) formuladan foydalaniladi.Bu erda w(i) – 32 bit – so‘zlardan iborat.
Masalan, biz ko‘rayotgan holda raund kalitining uzunligi 128 bitga teng bo‘lib, u to‘rtta kengaytirilgan kalitga teng bo‘ladi, ya'ni,
128 : 32 = 4 demak, w(i) = 1,2,3,4
w1=W1, W2, W3, W4, W5, W6, W7, W8, W9, W10, W11, W12, W13, W14, W15, W16, W17, W18, W19, W20, W21, W22, W23, W24, W25, W26, W27, W28, W29, W30, W31, W32;
w2=W33, W34, W35, W36, W37, W38, W39, W40, W41, W42, W43, W44, W45, W46, W47, W48, W49, W50, W51, W52, W53, W54, W55, W56, W57, W58, W59, W60, W61, W62, W63, W64;
w3=W65 , W66 , W67 , W68 , W69 , W7 , W71 , W72 , W73 , W74 , W75 , W76 , W77 , W78 , W79 , W8 W81 , W82 , W83 , W84 , W85 , W86 , W87 , W88 , W89 , W9 , W91 , W92 , W93 , W94 , W95 , W96 ;
w4= W97 , W98 , W99 , W100 , W101 , W102 , W103 , W104 , W105 , W106 , W107 , W108 , W109 , W110 , W111 , W112 , W113 , W114 , W115 , W116 , W117 , W118 , W119 , W120 , W121 , W122 , W123 , W124 , W125 , W126 , W127 , W128 ;
1.9 – jadval.
Algoritm barcha raund kalitlari
0 – raund kaliti kirish kaliti
|
w0, w1, w2, w3.
|
1 – raund kaliti
|
w4, w5, w6, w7.
|
2 – raund kaliti
|
w8, w9, w10, w11.
|
3 – raund kaliti
|
w12, w13, w14, w15.
|
4 – raund kaliti
|
w16, w17, w18, w19.
|
5 – raund kaliti
|
w20, w21, w22, w23.
|
6 – raund kaliti
|
w24, w25, w26, w27.
|
7 – raund kaliti
|
w28, w29, w30, w31.
|
8 – raund kaliti
|
w32, w33, w34, w35.
|
9 – raund kaliti
|
w36, w37, w38, w39.
|
10 – raund kaliti
|
w40, w41, w42, w43.
|
9 – jadvalda raund kalitlari keltirilgan bo‘lib, 0 – raund kaliti boshlang‘ich kirish kaliti hisoblanadi, to‘q qora rang bilan berilgan kengaytirilgan kalitlar (1.4) formuladan hisoblab olinadi, qolgan kalitlar esa (1.3) formuladan hisoblab topiladi.
(1.4) formuladagi akslantirishlar quyidagi funksiyalar asosida amalga oshiriladi:
RotWord 32 bitli so‘zni bayt bo‘yicha quyidagi ko‘rinishda surish bajariladi.
{a0 a1 a2 a3} {a1 a2 a3 a0};
SubWord S blokdan va SubBytes ( ) funksiyasidan foydalangan holda bayt bo‘yicha akslantirish bajariladi.
Rcon [j] = 2j-1 , bu erda j =(i / Nk ) , i / Nk – bo‘lish natijasi butun son chiqadi, chunki Nk =const bo‘lib, i ning Nk ga karrali qiymatlari uchun bo‘lish amali bajarilyapti. [6]
2. Asosiy qism. AES kriptoalgaritmining dasturiy modulini ishlab chiqish
2.1. AES standarti tahlili
AES kriptoalgaritmi asosida “Rijndael” shifrlash algaritmi yotadi. Bu algoritm noan'anaviy blokli shifr bo‘lib, kodlanuvchi ma'lumotlarning har bir bloki qabul qilingan blok uzunligiga qarab 4x4, 4x6 yoki 4x8 o‘lchamdagi baytlarning ikki o‘lchamli massivlari ko‘rinishiga ega.
Shifrdagi barcha o‘zgartirishlar qat'iy matematik asosga ega. Amallarning strukturasi va ketma-ketligi algoritmning ham 8-bitli, ham 32-bitli mikroprosessorlarda samarali bajarilishiga imkon beradi. Algoritm strukturasida ba'zi amallarning parallel ishlanishi ishchi stansiyalarida shifrlash tezligining 4 marta oshishiga olib keladi.
Dastlab DESni almashtirish uchun 1997 yil 2 yanvarda e`lon berildi. Bu tanlovda quyidagicha shartlar qo`yildi. Yaratilayotgan algaritm blokli shifrlashni qo`llab quvvatlashi, kamida har bir blok 128 bit o`lchamda bo`lishi, har bir raundda foydalaniladigan kalitlar uzunligi esa 128, 192 yoki 256 bit bo`lishi shart qilib qo`yildi. Bir so`z bilan aytganda yaratilayotgan algaritm kamida DESda foydalanilgan Triple DES algaritmidan kriptoturg`unligi yuqori bo`lishi ko`zda tutilgandi.
Umuman kriptoalgaritmlarni baholashda asosan quyidagi 3 kategoriya asosida tahlillanadi.
Kriptoturg`unlik-bu algaritmga qo‘yiladigan eng birinchi baho sanaladi. Bu ko`rsatkich unda ishtirok etgan matematik funksiyalar, amallar qiyinchilik darajasi bilan baholanadi. Algaritim bahosi- bu ikkinchi zarur ketegorya bo`lib, unda asosan kriptoalgaritmni dastur va aparat ko`rinishida ketadigan sarf-xarajatlar, va uni tizimlardan talab etadigan resurslari miqdori bilan belgilanadi.
Algaritim xarakteristikasi va uning amalga oshirish-bu kategoriyada uni aparatli va dasturli ko`rinishda ishlatiladigan bitlar soni, kalitlar uzunligi, kalitlarni generatsiyaga bardoshliligi kabi xakakteristikalar bilan belgilanadi.
AES standartiga dastabki nomzod etib quyidagi 15 ta kriptoalgaritm qo`yildi. Bular o`rtasida 1998 yil 20 avgustda birinchi konferensiya bo`lib o`tdi. Bu konferensiya quyidagi algaritmlar qatnashdi. Bu algaritmlarning faqat dastur ko`rinishlari foydalanildi. [8]
1.10-jadval
Algoritmlar va ularning mualiflari
Do'stlaringiz bilan baham: |