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.
|
8-jadval. Algoritm barcha raundi kalitlari
8-jadvaldaraund kalitlari keltirilgan bo‘lib, 0-raund kaliti boshlang‘ich kirish kaliti hisoblanadi, to‘q qora rang bilan berilgan kengaytirilgan kalitlar (2.7) formuladan, qolgan kalitlar esa (2.6) formuladan hisoblab topiladi.
(2.7) 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 bajariladi.
AES kriptoalgoritmi shifrlash va deshifrlash jarayonlarining blok
sxemasi Shifrlash jarayoni:
Kirish bloki(128 bit)
Dastlabki kalitni qo’shish
AddKey
|
|
1-ra
|
Satr bo’yicha siklik surish
ShiftRows
|
Ustun elementlarini almashtirish MixColumns.
|
1-raunt kalitlarini qo’shish
AddRoundKey
|
Baytlarni almashtirish Sub Bytes
|
|
Satr bo’yicha siklik surish ShiftRows
|
Ustin elementlarini almashtirish MixColumns.
|
|
Baytlarni almashtirish Sub Bytes
|
10
|
Satr bo’yicha sikl surish ShiftRows
|
10- raund kelitlarini qo’shish AddRoundKey
|
Chiqish bloki
Deshifrlash jarayoni:
Shifrlash jarayonida foydalanilgan Sub Bytes( ), ShiftRows( ),
MixColumns( ) va AddRoundKey( ) almashtirishlariga mos ravishda teskari:
- invSub Bytes( ),
invShiftRows( ),
invMixColumns ( ),
- AddRoundKey( ) ,
almashtirishlar mavjud bo‘lib, bunday holat qaralayotgan simmetrik shifrlash algritmining apparat-texnik qurilmasini yaratishda muhim omillardan hisoblanadi.
Quyida mazkur teskari almashtirishlarni batafsil ko‘rib chiqamiz:
AddRoundKey( ) –almashtrishida ishlatilayotgan XOR amalining xossasiga muvofiq, ushbu funksiya o‘z-o‘ziga teskari hisoblanadi.
invSub Bytes( )-almashtirishi shifrlash jarayonida foydalaniladigan S- blokka (4-jadval) teskari amal bajarishga asoslangan. Masalan {a5} bayt uchun teskari bayt almashtirishi amalining natijasi S-blokda 2-satr va 9-ustun elementlarining kesishgan erida joylashgani uchun javob: invSub Bytes({a5})=
{29}.
invShiftRows( ) –almashtirishi oxirgi holat matritsasining 3-ta satri berilgan jadval asosida o‘nggassiklik surish orqali amalga oshiriladi.
invMixColumns ( ) –almashtirishida holat matritsasi ustunlari GF(28) maydonda uchinchi darajali ko‘phad ko‘rinishida qaralib,
g-1(x) ={0b}x3 +{0d}x2 +{09}x + {0e}
ko‘phadga modulь x4 +1 ko‘phad bo‘yicha ko‘paytiriladi. Mazkur fikrlarning matematik ifodasini quyidagicha tasvirlash mumkin:
s s'
0 j
0e 0b 0d 09
0 j
s 09 0e 0b 0d s'
1 j 1 j =
s
0d 09 0e 0b
s'
2 j 2 j
s
0b 0d 09 0e
s'
3 j 3 j
0e s'0 j 0b s '1 j 0d s ' 09 s '
2 j 3 j
09 s ' 0e s '1 j 0b s '2 j 0d s '
0 j 3 j
0 j
1 j
0d s ' 09 s ' 0e s '2 j 0b s '3 j
0b s '0 j 0d s ' 09 s ' 0e s '3 j
1 j 2 j
Ushbu teskari almashtirishlardan foydalanib, deshifrlash jarayonida generatsiya qilingan raund kalitlari oxirgidan boshlab bittadan kamaytirib qo‘shib boriladi, ya’ni deshifrlash jarayonining 1-raundida shifrma’lumot blokiga 10- raund kaliti, 2 – raundida 9-raund kaliti va hokazo, 10-raundida 1-raund kaliti va oxirida esa dastlabki kalit qo‘shiladi. Yuqorida ta’kidlangan jarayonni boshqa teskari akslantirishlar bilan birgalikda amalga oshirishning umumiy blok sxemasi quyida keltirilgan.
10-raund
Rijndael deshifr funksiyasi
2-raund
1-raund
Deshifrlash jarayonining umumiy blok sxemasi
Shifr ma’lumot bloke (128 bit)
Ochiq ma’lumot bloki
Do'stlaringiz bilan baham: |