Aes shifrlash algoritmi



Download 464,02 Kb.
bet3/5
Sana29.03.2022
Hajmi464,02 Kb.
#516591
1   2   3   4   5
Bog'liq
AES shifrlash algoritmi

0

1

2

3

4

5

6

7

8

9

A

b

C

d

e

F

0

63

7c

77

7b

12

6b

6f

C5

30

01

67

2b

Fe

d7

ab

76

1

ca

82

c9

7d

Fa

59

47

F0

ad

d4

a2

af

9c

a4

72

c0

2

b7

Fd

93

26

36

3f

F7

cc

34

a5

e5

f1

71

d8

31

15

3

04

c7

23

c3

18

96

05

9a

07

12

80

e2

eb

27

b2

75

4

09

83

2c

1a

1b

62

5a

a0

52

3b

d6

b3

29

e3

2f

84

5

53

d1

00

ed

20

Fc

b1

5b

6a

Cb

Be

39

4a

4c

58

cf

6

d0

Ef

aa

fb

43

4d

33

85

45

f9

02

7f

50

3c

9f

a8

7

51

a3

40

8f

92

9d

38

f5

bc

b6

Da

21

10

ff

f3

d2

8

Cd

0c

13

ec

5f

97

44

17

c4

a7

7e

3d

64

5d

18

73

9

60

81

4f

dc

22

2a

90

88

46

Ee

b8

14

de

5e

0b

db

a

e0

32

3a

0a

49

06

24

5c

c2

d3

Ac

62

91

95

e4

79

b

e7

c8

37

6d

8d

D5

4e

a9

6c

56

f4

ea

65

7a

ae

08

c

Ba

78

25

2e

1c

A6

b4

c6

e8

Dd

74

1f

4d

bd

8b

8a

d

70

3e

b5

66

48

03

F6

0e

61

35

57

b9

86

c1

1d

9e

e

e1

f8

98

11

69

D9

8e

94

9b

1e

87

e9

ce

55

28

df

f

8c

a1

89

0d

Bf

E6

42

68

41

99

2d

0f

b0

54

bb

16

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

SubBytes





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.

5.12- jadval


ShiftRows (Holat baytlarini siklik surish)

C0 –satr

S00

S01

S02

S03

C1 –satr

S10

S11

S12

S13

C2 –satr

S20

S21

S22

S23

C3 -satr

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 5.13-jadvalda aniqlangan:
5.13- jadval
Turli uzunliklar uchun ShiftRows (Holat baytlarini siklik surish)

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.


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.
5.14 – 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
5.14- jadval
MixColumns (Ustun elementlarini aralashtirish)



S00

S01

S02

S03

S’11

S12

S’13

S10

S22

S23

S20

S21

S33

S30

S31

S32

S00

S01

S02

S03

S10

S11

S12

S13

S20

S21

S22

S23

S30

S31

S32

S33


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:
s00 = s00 , s10 = s11 , s20 = s22 , s30 = s33 ,
s01 = s01 , s11 = s12 , s21 = s23 , s31 = s30 , (5.14)
s02 = s02 , s12 = s13 , s22 = s20 , s32 = s31 ,
s03 = s03 , s13 = s10 , s23 = s21 , s33 = s32 ,
ta’kidlangan ko‘phadlarning ko’paytmasini matrisa ko‘rinishidagi ifodasi:
, ,
bo‘ladi, bu yerda - 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)=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 (4.1) va (4.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], va w[i]= SubWord (RotWord (w[i-1] )) Rcon[ i/Nk] w[i-Nk].
Bizning holatda Nk = 4 bo‘lganligi sababli i=4,8,12,16,20,… qiymatlar uchun (3.5) formuladan foydalanib, kengaytirilgan kalitlar topiladi. Ya’ni, i ning 4 ga karrali, 4 ga qoldiqsiz bo’linadigan qiymatlarida formuladan foydalaniladi. Qolgan barcha
i = 5,6,7,9,10,11,13,... qiymatlarida formuladan foydalaniladi.Bu yerda 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 ;
5.15 – jadvalda raund kalitlari keltirilgan bo‘lib, 0 – raund kaliti boshlang‘ich kirish kaliti hisoblanadi, to’q qora rang bilan berilgan kengaytirilgan kalitlar yuqoridagi formuladan hisoblab olinadi, qolgan kalitlar esa yuqoridagi formuladan hisoblab topiladi.
5.15- jadval
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.

Yuqoridagi 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};

  • SubWordS blokdan va SubBytes ( ) funksiyasidan foydalangan holda bayt bo‘yicha akslantirish bajariladi.

  • Rcon [j] = 2j-1 , bu yerda 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.

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.

5.16- rasm. AES kriptoalgoritmi shifrlash jarayoni blok sxemasi
Quyida mazkur teskari almashtirishlarni batafsil ko‘rib chiqamiz:

  1. AddRoundKey()– almashtrishida ishlatilayotgan XOR amalining xossasiga muvofiq, , ushbu funksiya o’z-o’ziga teskari hisoblanadi.

2. invSub Bytes()- almashtirishi shifrlash jarayonida foydalaniladigan S-blokga (4.4- jadval) teskari amal bajarishga asoslangan. Masalan {a5} bayt uchun teskari bayt almashtirishi amalining natijasi S-blokda 2-satr va 9-ustun elementlarining kesishida joylashgani uchun javob: invSub Bytes({a5})= {29}.
3. invShiftRows( ) – almashtirishi oxirgi holat matrisasining 3-ta satri berilgan jadval asosida o‘nga siklik surish orqali amalga oshiriladi.
4. invMixColumns ( ) – almashtirishida holat matrisasi 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:




5.17- rasm. AES kriptoalgoritmi deshifrlash jarayoni blok sxemasi
Ushbu teskari almashtirishlardan foydalanib, deshifrlash jarayonida generasiya qilingan raund kalitlari oxirgidan boshlab bittadan kamayib qo‘shib boriladi, ya’ni deshifrlash jarayonining 1-raundida shifrma’lumot blokiga 10-raund kaliti qo‘shiladi, 2 – raundida 9-raund kaliti qo’shiladi va hokazo 10-raundida 1-raund kaliti qo’shiladi va oxirida dastlabki kalit qo’shiladi. Yuqorida ta’kidlangan jarayonini boshqa teskari akslantirishlar bilan birgalikda amalga oshirishning umumiy blok sxemasi quyida keltirilgan.

Download 464,02 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish