InvShiftRows
va
InvMixColumns
deb nomlanadi.
AddRoundKey
funktsiyasi ikkala yoʻnalishda
ham bir xil, chunki bu faqat XOR operatsiyasi. 128 bitli kalit uzunligi uchun ham
shifrlash va deshifrlash yoʻnalishi boʻyicha ham ushbu funktsiyalar ketma-
ketligi koʻrsatilgan. Round funktsiyalarning ketma-ketligi barcha AES
variantlarida bir xil boʻladi, bunda yagona farq aylanmalar soni va kalit
uzunligidir.
MixColumn
funksiyasi oxirgi bosqichda oʻtkazib yuboriladi.
SCIENCE AND INNOVATION IN THE
EDUCATION SYSTEM
International scientific-online conference
233
AES algortimining blok sxemasi
1-sxema
. 10 rounddan iborat AES algoritmi
Blok holatlarida ishlaydigan barcha hisob-kitoblar Galois maydoni deb
ataladigan, GF(
2
8
) deb ataladigan
2
8
tartibli ma'lum bir chekli maydon doirasida
amalga oshiriladi, bunda har bir bayt GF(2) koeffitsientlari bilan
𝑥
7
tartibli
polinomlar sifatida koʻrib chiqiladi. Ushbu chekli maydon ichida biz polinom
arifmetikasi qoidalariga rioya qilgan holda qoʻshish, ayirish, koʻpaytirish va
boʻlish amallarini amalga oshirishimiz mumkin. Kriptografiyada cheklangan
maydonlar kriptotizimlarni loyihalashda alohida qiziqish uygʻotadi, chunki u
SCIENCE AND INNOVATION IN THE
EDUCATION SYSTEM
International scientific-online conference
234
bizga yopiq tizim ichida ishlash uchun cheklangan miqdordagi elementlarni
beradi.
GF(
2
8
) AESda qoʻllaniladi, chunki kombinatsiyalarning umumiy soni
aynan 1 baytni tashkil etadi, bu esa uni dasturiy ta'minotda amalga oshirishni
osonlashtiradi.
2
8
= 256 ta mumkin boʻlgan koʻphaddan har bir element A
∈
GF(
2
8
) quyidagicha ifodalanadi:
A(x) =
𝑎
7
𝑥
7
+
𝑎
6
𝑥
6
+
𝑎
5
𝑥
5
+
𝑎
4
𝑥
4
+
𝑎
3
𝑥
3
+
𝑎
2
𝑥
2
+
𝑎
1
x +
𝑎
0
AES algoritmida koʻphadlarni qoʻshish
(XOR) (berilgan koʻphadlarga
mos keluvchi ikkilik sanoq tizimidagi sonlarning mos bitlarini mod 2 boʻyicha
qoʻshish) amali orqali bajariladi. CHekli maydonda istalgan nolga teng boʻlmagan
b element uchun unga teskari boʻlgan
b element mavjud va b
(
b)
0 tenglik
oʻrinli, bu erda nol elementi sifatida
{00}
16
qaraladi. GF
(2
8
)
maydonda b
b
0 tenglik oʻrinli.
Ikkita koʻphadni koʻpaytirish avvalo koʻphadlarni oddiy koʻphadni
koʻpaytirishga, soʻngra koʻpaytmani qaytarilmas koʻphadga boʻlish orqali amalga
oshiriladi
P(x) =
𝑥
8
+
𝑥
4
+
𝑥
3
+x+1
koʻpaytmani koʻphadga boʻlish va polinom boʻlinishdan keyin qolgan qismini
olish yoʻli bilan amalga oshiriladi. . Buning sababi, odatda polinomlarni
koʻpaytirganda, mahsulot cheklangan maydondan tashqariga chiqib ketadi.
GF(
2
8
) ichida qolish uchun biz AES spetsifikatsiyasining bir qismi boʻlgan
kophadni moduli P(x) ni kamaytirishimiz kerak. Bu shunday yoziladi:
C(x) ≡ A(x)·B(x) mod P(x)
Boʻlinish esa GF(
2
8
) dagi A(x) koʻphadni teskari aylantirish bilan bir xil
boʻlib, koʻpaytmani hosil qiluvchi A(x) koʻphadning koʻpaytmali teskari
𝐴
−1
(x)
ni topish orqali amalga oshiriladi. A(x)·
𝐴
−1
(x) modul P(x) ga mos keladi.
Kengaytirilgan Evklid algoritmi GF(
2
8
)) da koʻpaytirish va inversiya SubBytes va
MixColumn qatlamining muhim qismidir.
Har bir raund shifrlash jarayonlari quyida keltirilgan toʻrtta
akslantirishlar, xor kopaytirishlar va sikllik surishlardan foydalanilgan holda
amalga oshiriladi:
1) SubBytes – algoritmda qayd etilgan 16x16 oʻlchamli jadval asosida
baytlarni almashtirish, ya‘ni S -blok akslantirishlarini amalga oshirish;
2) ShiftRows – algoritmda berilgan jadvalga koʻra holat baytlarini siklik
surish;
3) MixColumns – ustun elementlarini aralashtirish, ya‘ni algoritmda
berilgan matritsa bo‗yicha akslantirishni amalga oshirish;
|