• ShiftRows
  • ShiftRows (Holat baytlarini siklik surish)
  • 7 – jadval
  • MixColumns
  • AddRoundKey (Raund kalitlarini qo‘shish) akslantirish
  • Kalitlar generasiyasi algoritmi ( Key
  • Key Expansion ); raund kalitlarini tanlash (Round Key Selection
  • Al-xorazmiy nomidagi tоshkеnt aхbоrоt




    Download 0,58 Mb.
    bet12/14
    Sana18.05.2024
    Hajmi0,58 Mb.
    #242148
    1   ...   6   7   8   9   10   11   12   13   14
    Bog'liq
    Al-xorazmiy nomidagi tîshkånt aõbîrît

    SubBytes (S-blok akslantirishlari jadvali) baytlarni almashtirish jarayonining umumiy sxemasini quyidagicha tasvirlash mumkin.
    SubBytes jadvali.
    1.5-jadval

    S00

    S01

    S02

    S03

    S10

    S11

    Sij

    S13

    S20

    S21

    S22

    S23

    S30

    S31

    S32

    S33





    S00

    S01

    S02

    S03

    S10

    S11

    Sij

    S13

    S20

    S21

    S22

    S23

    S30

    S31

    S32

    S33






    ShiftRows (Holat baytlarini siklik surish) akslantirishining qo‘llanishi - quyidagicha amalga oshiriladi. Holat baytlarini siklik surishda holat jadvali satrlari quyidagicha belgilab olinadi.

    C0 - satr C1 - satr C2 - satr C3 - satr


    ShiftRows


    1.6-jadval


    S00

    S01

    S02

    S03

    S10

    S11

    S12

    S13

    S20

    S21

    S22

    S23

    S30

    S31

    S32

    S33



    ShiftRows (Holat baytlarini siklik
    surish) akslantirishida jadvaldagi oxirgi uchta satr har bir baytlari chapga siklik , ya'ni 1- satr C1 baytga, 2- satr C2 baytga, 3- satr C3 baytga suriladi. C1 , C2 , C3 surilish qiymati Nb blok uzunligiga bog‘liq bo‘lib, ular algoritmda ko‘rsatilganidek, quyidagi 1.7- jadvalda aniqlangan:
    Bloklar soni jadvali 1.7 jadval

    l

    Nb

    C0

    C1

    C2

    C3

    128

    4

    0

    1

    2

    3

    192

    6

    0

    1

    2

    3

    256

    8

    0

    1

    3

    4

    Keltirlgan jadvalga ko‘ra l = 128 bitli shifrlash uchun Nb=4 ga teng bo‘lib, birinchi satr bo‘yicha holat baytlarini siklik surish bajarilmaydi, ikkinchi satr bo‘yicha 1 baytga, uchinchi satr bo‘yicha 2 baytga, to‘rtinchi satr bo‘yicha 3 baytga siklik surish amalga oshiriladi. [4]
    l = 192 bitli shifrlash uchun Nb=6 ga teng bo‘lib, birinchi satr bo‘yicha holat baytlarini siklik surish bajarilmaydi, ikkinchi satr bo‘yicha 1 baytga, uchinchi satr bo‘yicha 2 baytga, to‘rtinchi satr bo‘yicha 3 baytga siklik surish bajariladi.
    l = 256 bitli shifrlash uchun Nb=8 ga teng bo‘lib birinchi satr bo‘yicha holat baytlarini siklik surish bajarilmaydi, ikkinchi qator bo‘yicha 1 baytga, uchinchi satr bo‘yicha 3 baytga, to‘rtinchi satr bo‘yicha 4 baytga siklik surish amalga oshiriladi.
    7 jadvalda esa l = 128 bitli shifrlash uchun Nb=4 ga teng bo‘lganda, satrlarni siklik surish bajarilgandan keyingi baytlarning o‘rni qay tarzda o‘zgarishi ko‘rsatilgan.
    1.8-jadval

    S00

    S01

    S02

    S03

    S10

    S11

    S12

    S13

    S20

    S21

    S22

    S23

    S30

    S31

    S32

    S33




    S00

    S01

    S02

    S03

    S’11

    S12

    S’13

    S10

    S22

    S23

    S20

    S21

    S33

    S30

    S31

    S32



    ShiftRows jadvali


    ShiftRows
    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:

    11

    12

    13

    10
    s00 = s00 , s10 = s , s20 = s22 , s30 = s33 , s01 = s01 , s11 = s , s21 = s23 , s31 = s30 , s02 = s02 , s12 = s , s22 = s20 , s32 = s31 , s03 = s03 , s13 = s , s23 = s21 , s33 = s32
    ta'kidlangan ko‘phadlarning ko‘paytmasini matrisa ko‘rinishidagi ifodasi:



    s '
            s







    0 j 02
    03 01
    01 0 j


    s ' 01 02  03  01 s

    1 j

    1 j

    s ' 01 01 02  03  s
    0 c 3

     2 j
    2 j

    s '
    03 01 01 02 s

    3 j
    3 j

    bo‘ladi, bu erda c- ustun nomeri.
    Oxirgi tenglik

    s 0 c s1c s 2 c s 3 c
     ({ 02 }  s 0 c )  ({ 03}  s1c )  s 2 c s 3 c ,
    s 0 c  ({ 02 }  s1c )  ({ 03}  s 2 c )  s 3 c ,
    s 0 c s1c  ({ 02 }  s 2 c )  ({ 03}  s 3 c ),
     ({ 03}  s 0 c )  s1c s 2 c  ({ 02 }  s 3 c ,

    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)=128 11=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
    N[w(i)]  Nb (Nr 1) ;
    Biz ko‘rayotgan holatda Nb = 4, Nr = 10 ga teng ya'ni, bayt uzunligi 4 ga,

    raundlar soni 10 ga teng. Shularni bilgan holda


    N [ w (i )]
    ni topiladi:



    N [ w (i )] = 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


    Download 0,58 Mb.
    1   ...   6   7   8   9   10   11   12   13   14




    Download 0,58 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Al-xorazmiy nomidagi tоshkеnt aхbоrоt

    Download 0,58 Mb.