O‘ZBEKISTON RESPUBLIKASI RAQAMLI TEXNALOGIALAR
VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TОSHKЕNT AХBОRОT TЕХNОLОGIYALARI UNIVЕRSITЕTI
«Kiberxavfsizlik va kriminalistika» kafеdrasi
INDIVIDUAL LOYIHA 2
Mavzu:OpenSSL kutubhonasida foydalangan holda ochiq kalitli
shifrlash algoritmlari tahlili
Guruh:714-21
Bajardi:Norbutayev Dilshodbek
Ilmiy rahbar:Mardiyev Ulug’bek
Toshkent-2024
MUNDARIJA
KIRISH
1. Simmetrik algoritmlari.
1.1 Simmetrik algoritmlari .............................................................. 6
1.2 AES algoritmlari ...................................................................... 9
1.3 DES blokli shifrlash algoritmlari ............................................ 37
2. Ochiq kalitli shifrlash algoritmlari.
2.1 Ochiq kalitli shifrlash algoritmlari haqida ................................ 43
2.2 RSA shifrlash algoritmi ............................................................. 46
2.2 El-Gamal shifrlash algoritmi ...................................................... 48
3. OpenSSL kutubxonasidan tashqari maʼlumotlarni
Shifrlash yordamida .............................................................. 43
4. Xulosa. ............................................................................................. 46
5. FOYDALANILGAN ADABIYOTLAR ........................................ 47
2
Kirish
Ochiq kalitli kriptotizimlar bundan 32 yil muqaddam AQSH olimlari U. Diffi
va M. Xellman tomonidan kashf etilgan boʻlib, ular katta sonli chekli toʻplamlarda bir
tomonlama funksiyalardan foydalanishga asoslangan. U. Diffi va M. Xellmanning
1976-yilda bosilib chiqqan “Kriptologiyada yangi yoʻnalishlar” maqolasida ilgari
surilgan “maxfiy kalitni uzatishni talab etmaydigan amaliy bardoshli maxfiy
tizimlarni
tuzish
kriptotizimlarning
mumkin”
yuzaga
degan
kelishi
fikri
kriptologiyada
Ochiq
hamda
ularningrivojlanish
kalitli
davrining
boshlanishiga sabab boʻldi.
Ochiq kalitli kriptotizimlarning yuzaga kelishi simmetrik tizimlarda
yechilmay qolgan maxfiy shifrlash kalitlarini tarqatish va elektron raqamli imzo
tizimlarini yaratish hamda qator zamonaviy masalalarni yechish imkoniyatini berdi.
Ochiq kalitli kriptotizimlar simmetrik kriptotizimlarga nisbatan oʻnlab marta katta
uzunlikdagi (512, 1024, 2048, 4096 bitli) kalitlardan foydalanadi va shu sabab
yuzlab marta sekinroq ishlaydi. Ochiq kalitli kriptotizimlarning matematik asosida
bir tomonlama oson hisoblanadigan funksiyalar (modul boʻyicha diskret darajaga
oshirish funksiyasi, egri chiziqli elliptik funksiya va sh.k.) yotadi. Ochiq kalitli
kriptotizimlar axborot xavfsizligining barcha muammolarini yechib berishga qodir
hisoblanadi.
Ochiq kalitli kriptotizim mohiyati har bir foydalanuvchi uchun birini bilgan
holda ikkinchisini topish, yechilishi murakkab boʻlgan masala bilan bogʻliq kalitlar
juftligini yaratishdan iborat. Bu juftlikni tashkil etuvchi kalitlardan biri ochiq
(oshkora), ikkinchisi maxfiy (shaxsiy) deb eʼlon qilinadi. Ochiq kalit oshkora eʼlon
qilinadi, maxfiy kalit faqat uning egasigagina maʼlum boʻladi.
3
Biror
foydalanuvchining ochiq kalitini bilgan holda uning maxfiy kalitini topishning
amaliy jihatdan mumkin emasligi, yechilishi murakkab boʻlgan masalaning hal
etilishini talab qilishi bilan kafolatlanadi.
Bir tomonli funksiyalarni aniqlanish taʼrifida nazariy jihatdan teskarisi mavjud
boʻlmagan funksiyalar emas balki, berilgan funksiyaga teskari boʻlgan funksiyaning
qiymatlarini hisoblash amaliy jihatdan maqsadga muvofiq boʻlmagan funksiyalar
tushiniladi. Shuning uchun maʼlumotning ishonchli muhofazasini taʼminlovchi
ochiq kalitli kriptotizimlarga muhim boʻlgan quyidagi talablar qoʻyiladi:
Dastlabki ochiq maʼlumotni shifrmaʼlumot koʻrinishiga oʻtkazish birtomonli
jarayon va shifrlash kaliti bilan shifrmaʼlumotni ochish-deshifrlash mumkin emas,
yaʼni shifrlash kalitini bilish shifrmaʼlumotni deshifrlash uchun yetarli emas.
Ochiq kalitning maʼlumligiga asoslanib, mahfiy kalitni zamonaviy fan va
texnika yutuqlari yordamida aniqlash uchun boʻladigan sarf-harajatlar hamda vaqt
maqsadga muvofiq emas. Bunda, shifrni ochish uchun bajarilishi kerak boʻladigan
eng kam miqdordagi amallar sonini aniqlash muhimdir.
1.1 Symmetrik algoritmlar
Simmmetrik shifrlash bir xil kalitdan va shifrlash va shifrlash uchun
ishlatilishini o'z ichiga oladi. Simmetrik algoritmlarga ikkita asosiy talablar
qo'llaniladi: shifrlash ob'ektidagi va chiziqli bo'lmagan barcha statistik shakllarning
to'liq yo'qolishi. Blok va oqimdagi nosimmetrik tizimlarni ajratish uchun qabul
qilinadi. Blok tizimlarida boshlang'ich ma'lumotlar kalitdan foydalanib, keyingi
konversiya bloklarga bo'linadi. STREAM tizimlarida ma'lum bir ketma-ketlik
(chiquvchi Gamma) keyinchalik xabarning o'zida juda yuqori bo'lib, keyinchalik
xabarni shifrlash natijasida gamma hosil bo'lganidek oqim hosil bo'ladi. Syptocric
Cryptomatik yordamida aloqa sxemasi raqamda keltirilgan. Bu erda bir m Ochiq
matnli Maxfiy kalit, yopiq kanal, en (m) - shifrlash va DK (m) - dokrentsiya
4
operatsiyasi Odatda, nosimmetrik shifrlash bilan, moslamalar ma'lumotlarining
kompleks va ko'p bosqichli kombinatsiyasi qo'llaniladi va amallarni (o'tish joylari)
o'rnatishi mumkin va ularning har biri "O'tish kaliti" ga mos kelishi kerak.
O'zgartirish operatsiyasi ma'lum bir qonun bo'yicha xabarning bitlarini aralashtirish
orqali har qanday statistik shifrlash uchun birinchi talabni amalga oshiradi.
Cho'milish ikkinchi talabni - nomuvofiqlik algoritmini etkazish uchun zarurdir.
Bunga belgilangan hajmdagi xabarning ma'lum bir qismini standart qiymatga
qo'llash orqali standart qiymati bo'yicha almashtirish orqali erishiladi. Symmetrik
tizimlar ikkala afzalliklari va assimetrik oldida kamchiliklarga ega. Symmetik
shifrlarning afzalliklari yuqori shifrlash darajasi, shunga o'xshash qarshilikka ega
bo'lgan kichikroq asosiy uzunlik, yanada ko'proq o'rganish va joriy etilishning
soddaligi kiradi. Symmetrik algoritmlarning kamchiliklari birinchi navbatda, birja
almashinuvi va katta tarmoqqa kalitlarni boshqarishning murakkabligi va asosiy
tarmoqni
boshqarishning
murakkabligi
tufayli
murakkabligi hisoblanadi.
Simmetrik shifrlar misollari
1) GOST 28147-89 - Mahalliy shifrlash standarti
2) 3Des (uchburchak, uchlik des)
3) RC6 (Ciper Rivesta)
4) AES - amerikalik shifrlash standarti
5) Des - ma'lumotlar shifrlash standarti AESg
5
kalitlar
almashinuvining
1.2. AES kriptoalgaritmi
1.2.1. AES kriptoalgaritmlash standarti tarixi
DES blokli shifrlash algoritmi 1999 yilgacha AQShda standart shifrlash
algoritmlari sifatida ishlatib kelingan.
1974 yildan Amerika qo‘shma shtatlarining standart shifrlash algoritmi sifatida
qabul qilingan DES shifrlash algoritmi quyidagi :
- kalit uzunligining kichigligi ( 56 bit);
- S-blok akslantirishlarining differensial kriptotahlil usuliga bardoshsizligi;
va boshqa sabablarga ko‘ra eskirgan deb sanaladi. Ayniqsa 1999 yilda DES
shifrlash algoritmi yordamida shifrlangan malumotning Internet tarmog‘iga ulangan
300 ta parallel kompyuter tomonidan yigirma to‘rt soat davomida ochilishi haqidagi
malumotning tasdiqlanishi bundan keyin mazkur standart algoritmi yordamida
malumotlarni kriptografik muhofaza qilish masalasini qaytadan ko‘rib chiqish va
yangi standart qabul qilish zaruratini keltirib chiqardi.
Amerika qo‘shma shtatlarining “Standartlar va Texnalogiyalar Milliy Instituti
(NIST)” 1997 yilda XXI asrning ma'lumotlarni kriptografik muhofazalovchi yangi
shifrlash algoritmi standartini qabul qilish maqsadida tanlov e'lon qildi. 2000 yilda
standart shifrlash algoritmi qilib, RIJNDAEL shifrlash algoritmi asos qilib olingan
AES (Advanced Encryption Standard) (FIPS 197) qabul qilindi. Algoritmning
yaratuvchilari Belgiyalik mutaxassislar Yon Demen (Joan Daemen) va Vinsent
Ryumen (Vincent Rijmen)larning familiyalaridan RIJNDAEL nomi olingan .
AES FIPS 197 blokli shifrlash algoritmida 8 va 32-bitli (1-baytli va 4-baytli)
vektorlar ustida amallar bajariladi. AES FIPS 197 shifrlash algoritmi XXI asrning
eng barqaror shifrlash algoritmi deb hisoblanadi. Bu algoritm boshqa mavjud
standart simmetrik shifrlash algoritmlaridan farqli o‘laroq, Feystel tarmog‘iga
asoslanmagan blokli shifrlash algoritmlari qatoriga kiradi.
1.2.2. AES kriptoalgaritmi matematik asosi
AES algoritmida baytlar ustida amallar bajariladi. Baytlar
GF (28 ) chekli
maydon elementlari sifatida qaraladi. GF (28 ) maydon elementlarini darajasi 7 dan
katta bo‘lmagan ko‘phad sifatida tasvirlash mumkin. Agarda baytlar
{a7 a6 a5 a4 a3a2 a1a0 }, ai Î{0,1}, i = 0...7
6
ko‘rinishda tasvirlangan bo‘lsa, u holda maydon elementlari quyidagicha
ko‘phad ko‘rinishda yoziladi:
a × x7 + a
7
× x6 + a × x5 + a × x 4 +a × x3 + a × x 2 +a × x + a0
6
5
4
3
2
1
Misol uchun {11010101 } baytga x7 + x6 + x 4 + x 2 + a ko‘rinishdagi ko‘phad mos
0
keladi.
Chekli GF (28 ) maydon elementlari uchun additivlik va multiplikativlik
xossalariga ega bo‘lgan qo‘shish va ko‘paytirish amallari aniqlangan.
AES algoritmida ko‘phadlarni qo‘shish Å (XOR) (berilgan ko‘phadlarga mos
keluvchi ikkilik sanoq sistemasidagi sonlarni mos bitlarini mod 2 bo‘yicha qo‘shish)
amali orqali bajariladi. Masalan
x 7 + x 6 + x 4 + x 2 + x va x 7 + x5 + x3 + x + 1 ko‘phadlar natijasi quyidagicha
hisoblanadi:
(x7 + x6 + x 4 + x 2 + x) Å (x7 + x5 + x3 + x + 1) = (x6 + x5 + x 4 + x3 + x 2 + 1)
Bu amal ikkilik va o‘n oltilik sanoq sistemalarida quyidagicha ifodalanadi:
{11010110 }2 Å{10101011 }2 = {01111101 }2 va D616 Å AB16 = 7D16
Chekli maydonda istalgan nolga teng bo‘lmagan a element uchun unga teskari
bo‘lgan - a element mavjud va a + (-a) = 0 tenglik o‘rinli, bu erda nol elementi
sifatida {00}16 qaraladi. GF (28 ) maydonda a Å a = 0 tenglik o‘rinli.
AES algoritmida ko‘phadlarni ko‘paytirish quyidagicha amalga oshiriladi:
- ikkita ko‘phad o‘nlik sanoq sistemasida ko‘paytiriladi;
- ettinchi darajadan katta bo‘lgan har qanday ko‘phadni sakkizinchi darajali
j(x) = x8 + x 4 + x3 + x + 1 keltirilmaydigan ko‘phadga bo‘lganda qoldiqda etti va
undan kichik bo‘lgan darajadagi ko‘phadlar hosil bo‘lib, ular natija sifatida olinadi,
bunda bo‘lish jarayonida bajariladigan ayirish amali ikkilik sanoq sistemasida,
yuqorida keltirilgani kabi, Å amali asosida bajariladi.
Ana shunday qilib kiritilgan ko‘paytirish amali · bilan belgilanadi.
Masalan, (x6 + x4 + x2 + x +1)
va (x7 + x +1)
ko‘phadlar quyidagicha
ko‘paytiriladi:
bu
ko‘phadlar
o‘nlik
sanoq
sistemasida
ko‘paytiriladi
6
4
2
7
13
11
9
8
6
5
4
3
(x + x + x + x + 1) · (x + x + 1) = (x + x + x + x + x + x + x + x + 1) ;
- natija j(x) = x8 + x 4 + x3 + x + 1 keltirilmaydigan ko‘phadga bo‘linadi va qoldiq
olinadi (x13 + x11 + x9 + x8 + x6 + x5 + x 4 + x3 + 1) mod (x8 + x 4 + x3 + x + 1) = (x7 + x6 + 1) .
Haqiqatan ham (x13 + x11 + x9 + x8 + x6 + x5 + x 4 + x3 + 1) = (x5 + x3 ) ·
7
· (x8 + x4 + x3 + x + 1) Å (x7 + x6 + 1) .
Har qanday nolga teng bo‘lmagan element uchun
a ·1 = a , tenglik o‘rinli.
GF (2 ) maydonda bir element sifatida {01}16 tushiniladi.
Kiritilgan ko‘paytirish amali umumiy holda quyidagicha bajariladi. Ixtiyoriy
ettinchi darajali
a7x7+ a6 x6+ a5 x5+ a4 x4+ a3 x3+ a2 x 2+a1x+ a0
ko‘phadni x ga ko‘paytirib, quyidagiga ega bo‘lamiz
a7x8+ a6 x7+ a5 x6+ a4 x5+ a3 x4+ a2 x3+ a1x2+ a0 x.
Bu ko‘phadni j (x) = x8+x4+x3+x+1=1{1b} modul bo‘yicha hisoblab, chekli
GF(28) maydonga tegishli elementni hosil qilamiz. Buning uchun a7 =1 bo‘lganda
8
j ( x) = x8+x4+x3+x+1 ko‘phadni yuqorida olingan sakkizinchi darajali ko‘phaddan
XOR amali bilan ayirish kifoya, ya'ni :
(a7Å1) x8+ ( a6 Å 0) x7+( a5 Å 0) x6+( a 4 Å 0) x5+( a3 Å1) x 4 +( a2 Å1) x3 +
+ ( a1 Å 0)x2+ (a0 Å1) x+1=( a6 Å 0) x7+( a5 Å 0) x6+( a 4 Å 0) x5+
+( a3 Å1) x 4 +( a2 Å1) x3 + ( a1 Å 0)x2+ (a0 Å1) x+1,
bu erda a7 =1 bo‘lgani uchun
(a7Å1) x8 =(1Å1) x8 =0.
Agarda a7 =0 bo‘lsa, u holda natija: a6 x7+…+a1x2+ a0 x ko‘phadning o‘zi
bo‘ladi.
Ushbu x time ( ) funksiya yuqorida kiritilgan ko‘paytirish amaliga nisbatan
berilgan ko‘phadni x ga ko‘paytirishni ifodalasin. Shu funksiyani n marta qo‘llab xn
ga ko‘paytirish amali aniqlanadi. Bevosita hisoblash bilan quyidagilarni o‘rinli
ekanligiga ishonch hosil qilish mumkin:
{57} · {13} = {fe},
chunki
{57} · {02}= x time ({57})={ae}
{57} · {04}= x time ({ae})={47}
{57} · {08}= x time ({47})={8e}
{57} · {10}= x time ({8e})={07},
Bundan
{57} · {13}={57}· ({01}Å{02}Å{10})={57}Å{ae}Å{07}={fe}.
Yuqorida ta'kidlanganidek algoritm akslantirishlari baytlar va to‘rt baytli
so‘zlar bilan (ustida) bajariladi. To‘rt baytli so‘zlarni koefisentlari GF(28) chekli
8
maydondan olingan darajasi uchdan katta bo‘lmagan ko‘phadlar ko‘rinishida
ifodalash mumkin:
a(x) = a3 x3+ a2 x 2+a1x+ a0 ,
bu erda a = (ai ai ai ai ai ai aiai ) , ai Î {0;1}, i=0,1,2,3; j=0, 1, …,7.
i
7 6
5 4
3 2
1
0
j
Bunday ikkita ko‘phadlarni qo‘shish o‘xshash hadlari oldidagi koeffisientlarni
Å amali bilan qo‘shish orqali amalga oshiriladi, ya'ni:
a(x)+b(x)= (a3 Å b3 ) x3+ (a2Å b2) x 2+(a1 Å b1) x+ (a0Å b0).
Ko‘paytirish amali quyidagicha amalga oshiriladi. Ikkita to‘rt baytli so‘zlar
mos ko‘phadlar bilan ifodalangan bo‘lsin:
a(x) = a3 x3+ a2 x 2+a1x+ a0
i b(x) = b3 x3+ b2 x 2+b1x+b0 .
Ko‘paytirish natijasi oltinchi darajadan katta bo‘lmagan ko‘phad
a(x) b(x) = s(x)= c6 x6+ c5 x5+c4 x4+ c3 x3+ c2 x 2+c1x+ c0 ,
c0 = a0 · b0 , c1=a1•b0 Å a0•b1 , c2=a2•b0Åa1•b1Åa0•b2 ,
bo`lib bu yerda
c3=a3•b0Åa2•b1Åa1•b2Å a0•b3 ,
c4 =a3• b1Åa2•b2Å a1•b3 , c5=a3•b2Å a2•b3 ,
c6=a3•b3 .
Ko‘paytirish natijasi to‘rt baytli so‘zdan iborat bo‘lishi uchun, uchinchi
j(x) = x4+1
darajadan katta bo‘lgan har qanday ko‘phadni to‘rtinchi darajali
keltirilmaydigan ko‘phadga bo‘lganda qoldiqda uchinchi va undan kichik bo‘lgan
darajadagi ko‘phadlar hosil bo‘lishini hisobga olgan holda, ular natija sifatida
olinadi, bunda bo‘lish jarayonida bajariladigan ayirish amali ikkilik sanoq
sistemasida, yuqorida keltirilgani kabi, Å amali asosida bajariladi.
Quyidagi ifoda o‘rinli:
xi mod (x4+1)=xi mod 4.
Shunday qilib, a(x) va b(x) ko‘phadlarni Θ -kupaytmasini ifodalovchi
a(x) Θ b(x) = d(x) = d3 x3+ d2 x 2+d1x+ d0 ,
natijaviy d(x) –ko‘phadning koefisientlari quyidagicha aniqlanadi:
d0=a0•b0Å a3•b1Å a2•b2Åa1•b3, d1=a1•b0Å a0•b1Å a3•b2Å a2•b3,
d2=a2•b0Å a1•b1Å a0•b2Å a3•b3, d3=a3•b0Å a2•b1Å a1•b2Å a0•b3 .
Yuqorida keltirilgan amallarni matrisa ko‘rinishida quyidagicha ifodalash
mumkin:
9
éd0 ù éa0 a3 a2 a1 úù éb0 ù
êd ú êa a a a
êb ú
3
2ú ê 1ú
ê 1ú=ê 1 0
·
êd 2 ú êa2 a1 a0 a3 ú êb2 ú
ú ê ú
ê ú ê
d
b
a
a
a
a
ú
ê
ë 3û ë 3 2
1
0 û ë 3û
Kvadrat arxitekturaga ega AES blokli shifrlash algoritmi o‘zgaruvchan
uzunlikdagi kalitlar orqali shifrlanadi. Kalit va blok uzunliklari bir – biriga bog‘liq
bo‘lmagan holda 128, 192 yoki 256 bit bo‘ladi. Biz mazkur o‘quv qo‘llanma ishida
AES shifrlash algoritmini bloklar uzunligi 128 bit bo‘lgan holi uchun ko‘rib
chiqamiz.
Blok o‘lchami 128 bitga teng kirish , bu 16 baytli massiv 4 ta qator va 4 ta
ustundan iboratdir (har bir satr va har bir ustun bu holda 32 razryadli (bitli) so‘z deb
qaraladi.)
Shifrlash uchun kirayotgan ma'lumot baytlari:
s00 , s10 , s20 , s30 , s01 , s11, s21, s31, s02 , s12 , s22 , s32 , s03 , s13 , s23 , s33 ,
ko‘rinishida belgilanadi.
Kirayotgan ma'lumot quyidagi 1 – jadvaldagi kvadrat massiv ko‘rinishida
kiritiladi. Ya'ni, baytlarni tartib bilan ustun bo‘yicha to‘ldirib boriladi. Birinchi
to‘rtta bayt (s00 , s10 , s20 , s30) birinchi ustunga mos tushadi, ikkinchi to‘rtta bayt
(s01 , s11, s21, s31) ikkinchi ustunga mos tushadi, uchinchi to‘rtta bayt (s02 , s12 ,
s22 , s32) uchinchi ustunga mos tushadi, to‘rtinchi to‘rtta bayt (s03 , s13 , s23 , s33)
to‘rtinchi ustunga mos tushadi.
s00
s10
s01
s11
s02
s12
s03
S13
s20
s30
s21
s31
s22
s32
s23
s33
1 – jadval. Kirayotgan ma'lumotlarning holat jadvali.
Xuddi shunday tartibda shifrlash kaliti ham kvadrat jadval shaklida kiritiladi.
Ular 128 bit = 16 bayt = 4 so‘z (to‘rtta 32 bitlik blok) dan iborat:
k00 ,k10 , k20 , k30 , k01 , k11, k21, k31, k02 , k12 , k22 , k32 , k03 , k13 , k23 , k33 .
K00
k01
k02
k03
10
K10
K20
K30
k11
k21
k31
k12
k22
k32
k13
k23
k33
2 – jadval. Shifrlash kaliti holat jadvali.
Shuningdek, AES shifrlash algoritmi raundlar soni Nr , kirish bloklar o‘lchami
Nb va kalit uzunligi Nk larga bog‘liq holda quyidagi 3-jadvalga mos holda
qo‘llaniladi.
Nr
Nb=4
128
бит
Nb=6
192
бит
Nb=8
256
бит
Nk=4
128
10
12
14
Nk=6
192
12
12
14
Nk=8
256
14
14
14
бит
бит
бит
3 – jadval.
Raund akslantirishlari: Har bir raund shifrlash jarayonlari quyida keltirilgan
to‘rtta akslantirishlardan 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 matrisa bo‘yicha akslantirishni amalga oshirish;
4) AddRoundKey – raund kalitlarini qo‘shish, ya'ni bloklar mos
bitlarni XOR amali bilan qo‘shish.
11
Quyida bu keltirilgan akslantirishlarning matematik modellari va ularning
umumiy qo‘llanish sxemalari ko‘rib chiqiladi.
SubBytes (S -blok akslantirishlari jadvali) – akslantirishi har bir holat
baytlariga bog‘liqsiz holda baytlarni chiziqli bo‘lmagan amallar asosida o‘rin
almashtirishlarni amalga oshiradi. Bu jarayon ikki bosqichdan iborat bo‘lib:
a) har bir sij holat baytini mod (x8+x4+x3+x+1) bo‘yicha = si -1 teskarisi topiladi
s -1
sij º 1 mod (x 8+x4+x3+x+1);
i
b) har
bir sij ni teskarisi bo‘lgan s -1 ni b = s -1 , deb belgilab olib, bir baytdan
i
i
b sonini uning bitlari orqali b = (b0 , b1 , , b7)
iborat bo‘lgan
uning ustida quyidagi afin akslatirishi bajariladi
Cb +c (mod x8 +1) =b’
Bu yerda C =
ko‘rinishda tasvirlab,
é1 0 0 0 1 1 1 1ù
ê1 1 0 0 0 1 1 1ú
ê 1 1 0 0 0 1 1ú ú
ê1
ê
ú
ê1 1 1 1 0 0 0 1ú -matritsa va c = (c , c , , c ) = (1,1,0,0,0,1,1,0) –
ê1 1 1 1 1 0 0 0ú
0
1
7
ê
ú
ê0 1 1 1 1 1 0 0ú
ê0 0 1 1 1 1 1 0ú
ê
ú
êë0 0 0 1 1 1 1 1úû
vector
algoritmda berilgan o‘zgarmas ifodaga ega bo‘lib, keltirilgan afin akslantirishi
'
éb
é1 0 0 0 1 1 1 1ù éb0ù é1 ù
êb0' úù
ê
ú êb1 ú ê1ú
ê 1ú
1 ê ú ê ú
ê1 1 0 0 0 1 1 ú
ê ú
1 1 1 0 0 0 1 1ú êb ú 0
'
ê
ê
ú
êb2 ú
ê
ú ê 2ú ê ú
êb' ú
1 1 1 1 0 00 1 b
0
ê
ú ê 3 ú + ê ú(mod 257) = ê 3 ú
ê1 1 1 1 1 0 0 0ú ê ú ê0ú
êb' ú
ê
ú ê bb4 ú ê1ú
'4
êb ú
ê0 1 1 1 1 1 0 0ú ê 5 ú ê ú
ê 5ú
ê
ú ê b6 ú ê1ú
00 1111 10
ê ú ê ú
êb6' ú
ê ú
ê0 0 0 1 1 1 1 ú1ú êb ú ê0ú
ë
û ë 7û ëû
êb' ú
ë 7û
ko‘rinishda amalga oshiriladi.
Natijaviy b / = (b / , b / , , b / ) vektorning koordinatalari
0
1
7
12
bi/ = bi Å b(i+4) mod8 Å b(i+5) mod8 Å b(i+6) mod8 Å b(i+7) mod8 Å ci , i=0,1,2,…,7 ;
ifoda bilan rasional hisoblanadi.
Yuqoridagi a) va b) qismlarda berilgan barcha mantiqiy va arifmetikamallarni
bajarish bilan amalga oshiriladigan o‘rniga qo‘yish akslatirishi 4 – jadvaldagi S blok akslantirishlariga (almashtirishlariga) keltirilgan. Bu esa algoritmning
dasturiy ta'minoti va apparat qurilmasini yaratishda qulaylik tug‘diradi.
S -blok akslantirishlaridan foydalanib berilgan s –baytni 16-lik sanoq
sistemasida s= (s0 s1s2 s3s4 s5 s6 s7 ) = {s0 s1s2 s3 , s4 s5 s6 s7 } =
kabi ifodalab x-satr va y-
{xy}
ustunlar kesishmasidagi baytlar almashtirish natijasi sifatida olinadi. Misol uchun
{62} - ni {aa} ga ga almashtiriladi.
Y
3
c
7
b
2
b
f
5
0
1
7
b
e
7
b
6
a
2
9
d
a
9
7
0
d
4
2
f
c
4
2
0
7
d
3
6
6
f
7
c
4
5
5
1
1
8
1
5
4
7
3
3
8
6
5
a
7
2
0
2
b
7
2
5
9
3
c
a
b
2
a
0
2
b
6
3
9
3
f
4
3
1
0
d
0
c
1
b
a
b
e
9
a
c
8
f
0
f
a
b
3
d
3
5
5
9
2
f
0
c
f
8
1
3
0
f
2
d
8
5
c
6
a
1
0
f
3
2
d
c
3
c
f
7
4
7
4
7
e
d
4
d
8
3
0
1
f
c
2
a
0
8
6
e
8
4
e
e
b
b
13
0
2
a
a
9
6
4
c
2
3
c
2
1
5
4
9
7
8
7
d
d
5
e
9
c
6
4
a
5
a
e
8
a
8
5
e
c
6
4
6
8
d
4
f
d
d
b
a
0
e
5
6
8
3
6
e
1
5
7
9
6
1
d
e
1
8
8
1
9
9
e
4
b
e
7
9
e
5
8
f
c
1
9
d
f
6
2
8
1
9
d
f
0
4
b
6
4 – jadval. S blok almashtirish jadvali.
SubBytes (S -blok akslantirishlari jadvali) baytlarni
jarayonining umumiy sxemasini quyidagicha tasvirlash mumkin
almashtirish
SubBytes
S00
S01
S02
S03
S’ 00
S’ 01
S’ 02
S’ 03
S10
S11
Sij
S13
S’ 10
S’ 11
S’ ij
S’ 13
S20
S21
S22
S23
S’ 20
S’ 21
S’ 22
S’ 23
S30
S31
S32
S33
S’ 30
S’ 31
S’ 32
S’ 33
ShiftRows (Holat baytlarini siklik surish) akslantirishining qo‘llanishi
quyidagicha amalga oshiriladi. Holat baytlarini siklik surishda holat jadvali satrlari
quyidagicha belgilab olinadi.
14
C0 –satr
C1 -satr
C2 –satr
C3 -satr
S’ 00
S’ 01
S’ 02
S’ 03
S’ 10
S’ 11
S’ 12
S’ 13
S’ 20
S’ 30
S’ 21
S’ 31
S’ 22
S’ 32
S’ 23
S’ 33
5 – jadval.
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.6-jadvalda aniqlangan:
l
128
192
256
Nb
4
6
8
C0
0
0
0
C1
1
1
1
C2
2
2
3
C3
3
3
4
6 – jadval.
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.
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
15
S’ 00
S’ 01
S’ 02
S’ 03
S’
10
S’
11
S’
12
S’
13
20
S’
21
S’
22
S’
23
30
S’
31
S’
32
S’
33
S’
S’
S’ 00
S’ 01
S’ 02
S’ 03
S’11
S’ 12
S’13
S’ 10
S’ 22
S’ 23
S’ 20
S’ 21
S’ 33
S’ 30
S’ 31
S’ 32
ShiftRows
7 – jadval.
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’ , s10 = s’ , s20 = s’ , s30 = s’ ,
22
33
00
1
s01 = s’ , s11 = s’ , s21 = s’ , s31 = s’ ,
23
30
s02 = s’01 , s12 = s1’ , s22 = s’ , s32 = s’ ,
02
1
20
31
s03 = s’03 , s13 = s’1, s23 = s’21 , s33 = s’32
ta'kidlangan ko‘phadlarning ko‘paytmasini matrisa ko‘rinishidagi ifodasi:
és' ù
és ù
0j
{02} {03} {01} {01}ù 0 j
ê 'ú é
ê
s
ê ú {01} {02} {03} {01}ú ês ú
1j
ú · ê 1 j úú 0 £ c £ 3
ês' ú = êê{01} {01} {02} {03}ú
s
ê 2jú
2j
ê{03} {01} {01}
ê
ú s3 júú
ê 'ú ë
s
ë û
{02}û
ëê3 j úû
bo‘ladi, bu erda c- ustun nomeri.
Oxirgi tenglik
s¢0c = ({02}· s0c ) Å ({03}· s1c ) Å s2c Å s3c ,
s1¢c = s0c Å ({02}· s1c ) Å ({03}· s2c ) Å s3c ,
s¢2 c = s0c Å s1c Å ({02}· s2c ) Å ({03}·s3c ),
s¢ = ({03}· s0c ) Å s1c Å s2c Å ({02}· s3c ,
3c
16
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)
17
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 ;
8 – jadval. Algoritm barcha raund kalitlari .
0 – raund kaliti kirish kaliti
w0, w1, w2, w3.
1 – raund kaliti
2 – raund kaliti
3 – raund kaliti
w4, w5, w6, w7.
w8, w9, w10, w11.
w12, w13, w14, w15.
4 – raund kaliti
5 – raund kaliti
6 – raund kaliti
7 – raund kaliti
w16, w17, w18, w19.
w20, w21, w22, w23.
w24, w25, w26, w27.
w28, w29, w30, w31.
8 – raund kaliti
9 – raund kaliti
10 – raund kaliti
w32, w33, w34, w35.
w36, w37, w38, w39.
w40, w41, w42, w43.
18
8 – 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 sonchiqadi,
chunki Nk =const bo‘lib, i ning Nk ga karrali qiymatlari uchun bo‘lish amali
bajarilyapti.
1.2.3. AES kriptoalgaritmi standarti tahlili
AES kriptoalgaritmi asosida “Rijndael” shifrlash algaritmi yotadi. Bualgoritm
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
19
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.
Davlat
Algaritm
Algaritim mualliflari
Avstralya
LOKI97
Lawrie Brown, Josef Pieprzyk,
Jennifer Seberry
Belgiya
RIJNDAEL
Joan Daemen, Vincent Rijmen
Buyuk Britanya,
Isroil, Norvegiya
SERPENT
Ross Anderson, Eli Biham, Lars
Knudsen
Germanya
MAGENTA
Deutsche Telekom AG
CAST-256
Entrust Technologies, Inc.
DEAL
Outerbridge, Knudsen
Koreya
CRYPTON
Future Systems, Inc.
Kosta-rika
FROG
TecApro Internacional S.A.
HPC
Rich Schroeppel
MARS
IBM
RC6
RSA Laboratories
SAFER+
Cylink Corporation
Kanada
AQSH
Bruce Schneier, John Kelsey,
Doug Whiting, David Wagner, Chris
Hall, Niels Ferguson
TWOFISH
20
Fransiya
DFC
Centre National pour la Recherche
Scientifique
Yaponya
E2
Nippon Telegraph and Telephone
Corporation (NTT)
Bu o`n besh kriptoalgaritm bo`yicha eng kriptobardosh algaritm deb belgiya
davlati a`zolari yaratgan RIJNDAEL algaritmi topildi.
1999 yilning mart oyilarida AES algaritmi analizi bo`yicha ikinchi
konserensiya bo`lib o`tdi va bu konferensiyada kuchli 5 kriptoalgaritm nomzod etib
qo`yildi. Bular quyidagilar edi: MARS, RC6, Rijndael, Serpent и Twofish. Bu bo`lib
o`tgan konferensiyada ham RIJNDAEL o`zining kriptoturg`unligini yuqori
ekanligini namoyish etdi. Bunda yuqoridagi algaritmlarning VHDL aparatli
ko`rinishi namoyish etildi.
Bu konferensiyaning 13-14 aprel 2000 yilda AESning yakuniy qismi bo`lib
otdi va buning natijasi o`laroq RIJNDAEL yutub chiqdi va 2001 yilgacha standart
yakunlanib u AQSH stanndarti sifatida qabul qilindi.
Quyidagi jadvalda AES kriptoalgaritmlash standartida ishlatiladigan Rijndael
shifrlash algaritmining aparatli holda yuqoridagi 5algaritm bilan taqqoslanishi
berilgan.
Kriptoalgarit
mlar
ent
Kriptoturg`unl
1
Serp
Twof
ish
MA
RS
R
C6
Rijnd
ael
+
+
+
+
+
2
Kriptoturg`unl
ik zaxirasi
++
++
++
+
+
Dastur
3ko`rinishidagi
shifrlash tezligi
-
±
±
+
+
Dasturni
amalga oshirishda
4
kengaytirilgan kalit
tezligi
±
-
±
±
+
igi
21
Katta
miqdordagi
5
resurslar
bilan
Smart-kartalar
Chegaralanga
n
miqdordagi
6
resurslar
bilan
Smart-kartalar
Aparatli amlga
oshirish (PLIS)
Aparatli amlga
8oshirish(Maxsus
mikrosxemalarda)
7
Foydalanilayo
tgan va qudratini
9
yo`qotgandagi
himoyasi
0
1
Kengaytirilga
n kalitlar
1 prodsedurasida
qudratni
yo`qotgandagi
himoya
Smart1 kartalarda qudratni
yo`qotgandagi
himoya
1
2
Kengaytirilga
n
kalitlardan
foydalanish
+
+
-
±
++
±
+
-
±
++
+
+
-
±
+
+
±
-
-
+
+
±
-
-
+
±
±
±
±
-
±
+
-
±
+
+
+
±
±
±
22
1
3
1
4
Mavjuda
variantlarni amalga
oshirish
+
+
±
±
+
Paralell
hisoblashlarning
mavjudligi
±
±
±
±
+
Bizga ma`lumki AES standarti DES standarti o`zini oqlay olmaganligi tufayli
yaratilgan edi. Bu standart hozirda Amerika qo`shma shtatlaring “Standartlar va
Texnologiyalar Milliy Universiteti (NIST)” qabul qilinib, standart sifatida
foydalanilyapti. Undan tashqari unda foydalanilgan Rijndael blokli shifrlash
algaritmi ham alohida kriptobardoshligi yuqori va yuqori darajadagi himoyaga ega.
Bundan tashqari bu shifrlash algaritmdan ma`lumotlarni shifrlab uzatish uchun ham
qo`llaniladi.
Shu bilan birga kriptoalgaritmlar shifrlash va deshifrlashda ma`lumotlar bilan
ishlash tezligiga ham bog`liq bo`ladi. Shu o`rinda biz misol tariqasida AES
kriptoalgaritmini ba`zi bir algaritmlar bilan tezliklari farqini ko`rib chiqamiz. Bunda
biz shifrlash dasturlaridan foydalanamiz.
Bunda biz TrueCrypt shifrlash dasturidan foydalandik. Unda 50MB hajmda
axborotlar ishlashdagi tezliklar keltirilgan. Bundan ko`rinib turubdiki AES boshqa
kriptoalgaritmlarga qaraganda o`zining tezligi bilan ajralib turibdi.
23
1.2.4 Shifrlash jarayoni umumiy blok sxemasi
Har bir raund shifrlash jarayonlari quyida keltirilgan to‘rtta akslantirishlardan
foydalanilgan holda amalga oshiriladi:
2)
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 matrisa bo‘yicha akslantirishni amalga oshirish;
4) AddRoundKey – raund kalitlarini qo‘shish, ya'ni bloklar mos
bitlarni XOR amali bilan qo‘shish.
Bu standartning shifrlash algaritmi asosini Rijndael algaritmi yotadi.
Kirish bloki(128 bit)
Dastlabki kalitni qo`shish. AddKey
Satr bo`yicha surisShiftRows
1-raund
1-raund kalitlarini qo`shish AddRoundKey
Baytlarni almashtirish Sub Bytes
Rijndael
shifrlash
funksiyasi
Satr boyicha siklik surish. ShiftRows
2-raund
Ustun elementlarini almashtirish. MixColumns.
2-raund kalitlarini qo`shish AddRoundKey
Baytlarni almashtirish. Sub Bytes
2
Satr bo`yicha siklik surish. ShiftRows
10-raund
1.2.5 Deshifrlash jarayoni algaritmi
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:
1.
AddRoundKey( ) – almashtrishida ishlatilayotgan XOR amalining
xossasiga muvofiq, , ushbu funksiya o‘z-o‘ziga teskari hisoblanadi.
2. invSub Bytes( )- almashtirishi shifrlash jarayonida foydalaniladigan Sblokga (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:
26
és ù
és' ù
0j
ê 0 jú
ês ú é
ê {0e} {0b} {0d} {09}ù ú s'
ê 1 j ú {09} {0e} {0b} {0d} ê 1 új
ês ú = êê{0d} {09} {0e} {0b}úú · ê ' ú =
ê ú
ês ú
2j
2 j
ês ú ëê{0b} {0d} {09} {0e}ûú ê ' ú
êë 3 j úû
êës 3 j úû
é({0e}·s'0 j )Å({0b}·s' )Å({0d}· )Å ({09}· s' )ù
s'
1j
2j
3jú
ê
'
'
'
ê({09}· s )Å ({0e}· s )Å ({0b}· s 2 j )Å ({0d}· s' )ú
0j
3j
1
= ê
'
'
'
((0d)· s )Å({09}·s )Å({0e}·s )Å({0b}·s'ú )
ê({0b}·s0'0 j ) Å ( {0d}·1 s' )Å({09}·s2 j' )Å({0e}·s'3 j )ú
3j
ëê
1j
úû
2j
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.
27
1.2.6 Deshifrlash jarayoni umumiy blok sxemasi
Shifrmalumot bloki(128 bit)
10-raund kalitlarini qo`shishAddRoundKey
1-raund
Baytlarni teskari almashtirish invSub Bytes
9-raund kalitini qo`shish AddRoundKey
Ustun elementlarini teskari almashtirish
invMixColumns.
Satr bo`yicha siklik surish invSub Bytes
Rijndael
deshifrlash
funksiyasi
2-raund
Baytlarni teskari almashtish. invSub Bytes
1-raund kalitlarini qoshish AddRoundKey
Ustun elementlarini teskari almashtirish
invMixColumns.
Satr bo`yicha siklik teskari surish inv ShiftRows
10-raund
Baytlarni teskari almashtirish invSub Bytes
1.2.7 AES kriptoaDlagsatlrabitkm
yddRoundKey
i kian
litiln
arg
ni d
qoàshtiu
shr.iA
AES kriptoalgaritmining dasturiy moduli 3 qismdan tashkil topgan. Misol
uchun 2b7e151628aed2a6a bOf7ch1iq58m8a0̀lu9mcoft4bfl3ocki kalit yordamida ochiq matnni
3243f6a8885a308d313198a2e0370734 shifrlash
deshifrlash dasturi keltirilgan.
1. Kalit generatsiyasi.
28
29
2. Shifrlash jarayoni quyidagicha.
Shfrlangan matn: 3925841d02dc09fbdc118597196a0b32
30
3. Deshifrlash jarayoni.
Deshifrlangan matn: 3243f6a8885a308d313198a2e0370734
1.3.1 DES blokli shifrlash algoritmlari
DES blokli shifrlash algoritmi 1999 yilgacha AQShda standart shifrlash
algoritmlari sifatida ishlatib kelingan. 1974 yildan Amerika qo‘shma shtatlarining
standart shifrlash algoritmi sifatida qabul qilingan DES shifrlash algoritmi quyidagi
: - kalit uzunligining kichigligi ( 56 bit); - S-blok akslantirishlarining differensial
kriptotahlil usuliga bardoshsizligi; va boshqa sabablarga ko‘ra eskirgan deb sanaladi
. Ayniqsa 1999 yilda DES shifrlash algoritmi yordamida shifrlangan malumotning
Internet tarmog‘iga ulangan 300 ta paralel kompyuter tomonidan yigirma to‘rt soat
davomida ochilishi haqidagi malumotning tasdiqlanishi bundan keyin mazkur
standart algoritmi yordamida malumotlarni kriptografik muhofaza qilish masalasini
qaytadan ko‘rib chiqish va yangi standart qabul qilish zaruratini keltirib chiqardi.
Amerika qo‘shma shtatlarining “Standartlar va Texnalogiyalar Milliy Instituti
(NIST)” 1997 yilda XXI asrning ma'lumotlarni kriptografik muhofazalovchi yangi
8 shifrlash algoritmi standartini qabul qilish maqsadida tanlov e'lon qildi. 2000 yilda
31
standart shifrlash algoritmi qilib, RIJNDAEL shifrlash algoritmi asos qilib olingan
AES (Advanced Encryption Standard) (FIPS 197) qabul qilindi. Algoritmning
yaratuvchilari Belgiyalik mutaxassislar Yon Demen (Joan Daemen) va Vinsent
Ryumen (Vincent Rijmen)larning familiyalaridan RIJNDAEL nomi olingan . AES
FIPS 197 blokli shifrlash algoritmida 8 va 32-bitli (1-baytli va 4-baytli) vektorlar
ustida amallar bajariladi. AES FIPS 197 shifrlash algoritmi XXI asrning eng
barqaror shifrlash algoritmi deb hisoblanadi. Bu algoritm boshqa mavjud standart
simmetrik shifrlash algoritmlaridan farqli o‘laroq, Feystel tarmog‘iga asoslanmagan
blokli shifrlash algoritmlari qatoriga kiradi.
AES algoritmida baytlar ustida amallar bajariladi. Baytlar (2 ) 8 GF
chekli maydon elementlari sifatida qaraladi. (2 ) 8 GF maydon elementlarini darajasi
7 dan katta bo‘lmagan ko‘phad sifatida tasvirlash mumkin. Agarda baytlar
{a7a6a5a4a3a2a1a0 }, ai Î{0,1}, i = 0...7 ko‘rinishda tasvirlangan bo‘lsa, u holda
maydon elementlari quyidagicha ko‘phad ko‘rinishda yoziladi: 1 0 2 2 3 3 4 4 5 5 6
6 7 a7 × x + a × x + a × x + a × x + a × x + a × x + a × x + a Misol uchun {11010101}
baytga 0 7 6 4 2 x + x + x + x + a ko‘rinishdagi ko‘phad mos keladi. Chekli (2 ) 8
GF maydon elementlari uchun additivlik va multiplikativlik xossalariga ega bo‘lgan
qo‘shish va ko‘paytirish amallari aniqlangan. AES algoritmida ko‘phadlarni
qo‘shish Å (XOR) (berilgan ko‘phadlarga mos keluvchi ikkilik sanoq sistemasidagi
sonlarni mos bitlarini mod 2 bo‘yicha qo‘shish) amali orqali bajariladi. Masalan x +
x + x + x + x 7 6 4 2 va 1 7 5 3 x + x + x + x + ko‘phadlar natijasi quyidagicha
hisoblanadi:
( + + + + ) Å 7 6 4 2 x x x x x ( 1) ( 1) 7 5 3 6 5 4 3 2 x + x + x + x + = x + x +
x + x + x + Bu amal ikkilik va o‘n oltilik sanoq sistemalarida quyidagicha
ifodalanadi: 2 2 2 {11010110} Å{10101011} ={01111101} va D616 Å AB16 =
7D16 Chekli maydonda istalgan nolga teng bo‘lmagan a element uchun unga teskari
bo‘lgan - a element mavjud va a + (-a) = 0 tenglik o‘rinli, bu erda nol elementi
sifatida 16 {00} qaraladi. (2 ) 8 GF maydonda aÅa = 0 tenglik o‘rinli. AES
algoritmida ko‘phadlarni ko‘paytirish quyidagicha amalga oshiriladi: - ikkita
ko‘phad o‘nlik sanoq sistemasida ko‘paytiriladi; - ettinchi darajadan katta bo‘lgan
har qanday ko‘phadni sakkizinchi darajali j(x) = 1 8 4 3 x + x + x + x +
keltirilmaydigan ko‘phadga bo‘lganda qoldiqda etti va undan kichik bo‘lgan
darajadagi ko‘phadlar hosil bo‘lib, ular natija sifatida olinadi, bunda bo‘lish
jarayonida bajariladigan ayirish amali ikkilik sanoq sistemasida, yuqorida
32
keltirilgani kabi, Å amali asosida bajariladi. Ana shunday qilib kiritilgan
ko‘paytirish amali · bilan belgilanadi. Masalan, ( 1) 6 4 2 x + x + x + x + va ( 1) 7 x
+ x + ko‘phadlar quyidagicha ko‘paytiriladi: - bu ko‘phadlar o‘nlik sanoq
sistemasida ko‘paytiriladi ( 1) ( 1) ( 1) 6 4 2 7 1 3 1 1 9 8 6 5 4 3 x + x + x + x + · x
+ x + = x + x + x + x + x + x + x + x + ; - natija ( ) 1 8 4 3 j x = x + x + x + x +
keltirilmaydigan ko‘phadga bo‘linadi va qoldiq olinadi ( 1) mod ( 1) ( 1) 1 3 1 1 9 8
6 5 4 3 8 4 3 7 6 x + x + x + x + x + x + x + x + x + x + x + x + = x + x + . Haqiqatan
ham ( + + + + + + + +1) = ( + ) · 1 3 1 1 9 8 6 5 4 3 5 3 x x x x x x x x x x ( 1) ( 1) 8
4 3 7 6 · x + x + x + x + Å x + x + . Har qanday nolga teng bo‘lmagan element uchun
a ·1 = a , tenglik o‘rinli. (2 ) 8 GF maydonda bir element sifatida 16 {01} tushiniladi.
Kiritilgan ko‘paytirish amali umumiy holda quyidagicha bajariladi. Ixtiyoriy ettinchi
darajali a7x 7+ a6 x 6+ a5 x 5+ a4 x 4+ a3 x 3+ a2 x 2+a1x+ a0
ko‘phadni x ga ko‘paytirib, quyidagiga ega bo‘lamiz a7x 8+ a6 x 7+ a5 x 6+ a4
x 5+ a3 x 4+ a2 x 3+ a1x 2+ a0 x. Bu ko‘phadni j x) = x 8+x4+x3+x+1=1{1b}
modul bo‘yicha hisoblab, chekli GF(28 ) maydonga tegishli elementni hosil qilamiz.
Buning uchun a7 =1 bo‘lganda j x) = x 8+x4+x3+x+1 ko‘phadni yuqorida olingan
sakkizinchi darajali ko‘phaddan XOR amali bilan ayirish kifoya, ya'ni : (a7Å1) x
8+( a6 Å 0) x 7+( a5 Å 0) x 6+( a 4 Å 0) x 5+( a3 Å1) x 4 +( a2 Å1) x 3 + + ( a1 Å
0)x 2+ (a0 Å1) x+1=( a6 Å 0) x 7+( a5 Å 0) x 6+( a 4 Å 0) x 5+ +( a3 Å1) x 4 +( a2
Å1) x 3 + ( a1 Å 0)x 2+ (a0 Å1) x+1, bu erda a7 =1 bo‘lgani uchun (a7Å1) x 8
=(1Å1) x 8 =0.
Agarda a7 =0 bo‘lsa, u holda natija: a6 x 7+…+a1x 2+ a0 x ko‘phadning
o‘zi bo‘ladi. Ushbu x time ( ) funksiya yuqorida kiritilgan ko‘paytirish amaliga
nisbatan berilgan ko‘phadni x ga ko‘paytirishni ifodalasin. Shu funksiyani n marta
qo‘llab x n ga ko‘paytirish amali aniqlanadi. Bevosita hisoblash bilan quyidagilarni
o‘rinli ekanligiga ishonch hosil qilish mumkin: {57} · {13} = {fe}, chunki {57} ·
{02}= x time ({57})={ae} {57} · {04}= x time ({ae})={47} {57} · {08}= x time
({47})={8e} {57} · {10}= x time ({8e})={07}, Bundan {57} · {13}={57} ·
({01}Å{02}Å{10})={57}Å{ae}Å{07}={fe}.
Yuqorida ta'kidlanganidek algoritm akslantirishlari baytlar va to‘rt baytli
so‘zlar bilan (ustida) bajariladi. To‘rt baytli so‘zlarni koefisentlari GF(28 ) chekli
maydondan olingan darajasi uchdan katta bo‘lmagan ko‘phadlar ko‘rinishida
ifodalash mumkin: a(x) = a3 x 3+ a2 x 2+a1x+ a0 , bu erda ( ) 7 6 5 4 3 2 1 0 i i i i i
33
i i i ai = a a a a a a a a , Î 0;1} i a j , i=0,1,2,3; j=0, 1, …,7. Bunday ikkita
ko‘phadlarni qo‘shish o‘xshash hadlari oldidagi koeffisientlarni Å amali bilan
qo‘shish orqali amalga oshiriladi, ya'ni: a(x)+b(x)= (a3 Å b3 ) x 3+ (a2Å b2) x 2+(a1
Å b1) x+ (a0Å b0). Ko‘paytirish amali quyidagicha amalga oshiriladi. Ikkita to‘rt
baytli so‘zlar mos ko‘phadlar bilan ifodalangan bo‘lsin: a(x) = a3 x 3+ a2 x 2+a1x+
a0 i b(x) = b3 x 3+ b2 x 2+b1x+b0 . Ko‘paytirish natijasi oltinchi darajadan katta
bo‘lmagan ko‘phad a(x) b(x) = s(x)= c6 x 6+ c5 x 5+c4 x 4+ c3 x 3+ c2 x 2+c1x+
c0 , bo`lib bu yerda 0 a0 b0 c = · , c1=a1•b0 Å a0•b1 , c2=a2•b0Åa1•b1Åa0•b2 ,
c3=a3•b0Åa2•b1Åa1•b2Å a0•b3 , c4 =a3• b1Åa2•b2Å a1•b3 , c5=a3•b2Å a2•b3 ,
c6=a3•b3 . Ko‘paytirish natijasi to‘rt baytli so‘zdan iborat bo‘lishi uchun, uchinchi
darajadan katta bo‘lgan har qanday ko‘phadni to‘rtinchi darajali j(x) = x 4+1
keltirilmaydigan ko‘phadga bo‘lganda qoldiqda uchinchi va undan kichik bo‘lgan
darajadagi ko‘phadlar hosil bo‘lishini hisobga olgan holda, ular natija sifatida
olinadi bunda bo‘lish jarayonida bajariladigan ayirish amali ikkilik sanoq
sistemasida, yuqorida keltirilgani kabi, Å amali asosida bajariladi. Quyidagi ifoda
o‘rinli: x i mod (x 4+1)=x i mod 4 . Shunday qilib, a(x) va b(x) ko‘phadlarni Θ kupaytmasini ifodalovchi a(x) Θ b(x) = d(x) = d3 x 3+ d2 x 2+d1x+ d0 , natijaviy
d(x) –ko‘phadning koefisientlari quyidagicha aniqlanadi: d0=a0•b0Å a3•b1Å
a2•b2Åa1•b3, d1=a1•b0Å a0•b1Å a3•b2Å a2•b3, d2=a2•b0Å a1•b1Å a0•b2Å
a3•b3, d3=a3•b0Å a2•b1Å a1•b2Å a0•b3 . Yuqorida keltirilgan amallarni matrisa
ko‘rinishida quyidagicha ifodalash mumkin: ú ú ú ú û ù ê ê ê ê ë é · ú ú ú ú ú û ù ê ê ê ê
êëé =ú úúúû ùêêêêë é321032102103103203213210bbbbaaa
a a a a a a a a a a a a a d d d d Kvadrat arxitekturaga ega AES blokli shifrlash algoritmi
o‘zgaruvchan uzunlikdagi kalitlar orqali shifrlanadi. Kalit va blok uzunliklari bir –
biriga bog‘liq bo‘lmagan holda 128, 192 yoki 256 bit bo‘ladi. Biz mazkur o‘quv
qo‘llanma ishida AES shifrlash algoritmini bloklar uzunligi 128 bit bo‘lgan holi
uchun ko‘rib chiqamiz. Blok o‘lchami 128 bitga teng kirish , bu 16 baytli massiv 4
ta qator va 4 ta ustundan iboratdir (har bir satr va har bir ustun bu holda 32 razryadli
(bitli) so‘z deb qaraladi.) Shifrlash uchun kirayotgan ma'lumot baytlari: s00 , s10 ,
s20 , s30 , s01 , s11, s21, s31, s02 , s12 , s22 , s32 , s03 , s13 , s23 , s33 , ko‘rinishida
belgilanadi. Kirayotgan ma'lumot quyidagi 1 – jadvaldagi kvadrat massiv
ko‘rinishida kiritiladi. Ya'ni, baytlarni tartib bilan ustun bo‘yicha to‘ldiribboriladi.
AES kriptoalgaritmi asosida “Rijndael” shifrlash algaritmi yotadi. Bu algoritm
noan'anaviy blokli shifr bo‘lib, kodlanuvchi ma'lumotlarning har bir bloki qabul
34
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.
1.3.2 DES ta'rifi (Ma'lumotlarni shifrlash standarti)
Bu erda yana bir, yuqorida aytib o'tilganidek, 56. faqat ma'noli bo'lgan uzunligi
(belgi) blokirovka 64 bit bilan maksimal juda samarali shifrlash algoritmi davom,
bu uslub-da uzoq etarli standart cryptosystems ishlatiladigan sifatida davom etdi,
eskirib qolgan hatto mudofaa sanoati uchun Amerika Qo'shma Shtatlari.
35
uning mohiyati 48 bit bir ketma-ketlikda, bunday amal simmetrik shifrlash
hisoblanadi. Bu operatsiya 48 bit kaliti namunadagi 16 ko'chadan uchun ishlatiladi
qachon. Lekin! Bu nuqta zarur ish kalitini hisoblash emas-da, shuning uchun harakat
tamoyili bo'yicha barcha ko'chadan, o'xshash. Misol uchun, yana million bir ortiq
dollarlik AQShdagi eng kuchli kompyuterlar biri uch yilda shifrlash va bir yarim
soat "sindirish" uchun. hatto uning namoyon maksimal yilda ketma-ketlikni
hisoblash uchun aslida unvoni ostida mashinalari, uchun, u hech qanday ortiq 20
soat davom etadi.
Ma'lumotlarni shifrlash standarti (DES) bu a nosimmetrik kalit blok
shifri tomonidan qabul qilingan Milliy standart va texnologiya instituti
yilda 1977. DES-ga asoslangan Feystel tuzilishi bu erda oddiy matn ikki
yarimga bo'linadi. DES 64 bitli oddiy matn va 56 bitli kalit sifatida 64 bitli
shifrlangan matnni oladi.
36
Quyidagi rasmda DES yordamida oddiy matnli shifrlashni ko'rishingiz
mumkin. Dastlab, 64-bitli oddiy matn 64-bitli permautlangan kirishni olish
uchun bitlarni qayta tartibga soladigan dastlabki almashtirishga uchraydi.
Endi ushbu 64 bitli ruxsat berilgan kirish ikkiga bo'linadi, ya'ni 32 -bit chap
va 32-bitli o'ng qism. Ikkala qism ham o'n turdan iborat bo'lib, har bir tur
bir xil funktsiyalarga amal qiladi. O'n oltinchi tur tugagandan so'ng,
yakuniy almashtirish amalga oshiriladi va 64 -bitli shifrlangan matn
olinadi.
AES ta'rifi (kengaytirilgan shifrlash standarti)
Kengaytirilgan shifrlash standarti (AES) ham a nosimmetrik kalit blok
shifri. AES nashr etilgan 2001 tomonidan Milliy standartlar va texnologiyalar
instituti. AES DES-ni almashtirish uchun kiritilgan, chunki DES juda kichik
shifrlash kalitidan foydalanadi va algoritm ancha sekin edi.
AES algoritmi 128-bitli ochiq matnli va 128-bitli maxfiy kalitni oladi,
ular birgalikda 4-x 4 kvadrat matritsa sifatida tasvirlangan 128 -bitli blokni tashkil
qiladi. Ushbu 4 X 4 kvadrat matritsa dastlabki transformatsiyaga uchraydi. Ushbu
bosqichdan keyin 10 ta tur o'tkaziladi. Ular orasida 9 tur quyidagi bosqichlarni o'z
ichiga oladi:
2. Ochiq kalitli shifrlash algoritmlari
2.1 Ochiq kalitli shifrlash algoritmlari haqida
Kriptografik sistema qanchalik murakkab va ishonchli algoritmga asoslangan
bo‘lmasin, uning amaliy qo‘llanishida kelib chiqadigan nozik masala, ya’ni
kriptosistemalardan foydalanuvchilarga kalitlarni taqsimlash masalasi muhim bo‘lib
qolaveradi. Haqiqatan ham, axborotlar tizimida maxfiy aloqani ta’minlovchi
kriptografik sistema foydalanuvchilarining o‘zaro aloqasi uchun kalit ularning biri
orqali yaratilgan bo‘lib, ikkinchisiga maxfiy holda etkazilishi lozim bo‘ladi. Bundan
37
kelib chiqadiki, umuman olganda, kalitni etkazish (uzatish) uchun ham yana boshqa
kriptosistemadan foydalanishga to‘g‘ri keladi. Bu masalani echish uchun klassik
hamda zamonaviy fan va texnika yutuqlariga, xususan, algebra fani yutuqlariga
asoslangan holda ochiq kalitli kriptosistemalar yaratish yo‘nalishi vujudga keldi.
Ochiq kalitli kriptosistemalarning mohiyatini quyidagilar tashkil etadi:
Axborotlar tizimi kriptosistemasidan foydalanuvchilarning har biri ma’lum
qoida bilan bog‘langan ikkita kalitni yaratadi (tuzadi).
Bu tuzilgan (yaratilgan) kalitlardan biri ochiq e’lon qilinadi, ikkinchisi esa sir
(maxfiy) saqlanadi.
Dastlabki ochiq kalit bilan shifrlanib, tegishli foydalanuvchiga uzatiladi, bunda
shifrlangan matnni (kriptogrammani) bu ochiq kalit bilan deshifrlash imkoniyati
yo‘q, ya’ni shifrlangan matnni bu ochiq kalit bilan ochish imkoniyati yo‘q.
Uzatilgan (etkazilgan) kriptogramma faqat kriptogrammaning haqiqiy
egasigagina ma’lum bo‘lgan ikkinchi maxfiy kalit bilan deshifrlanadi.
Ochiq kalitli kriptosistemalar teskarisi mavjud bo‘lmagan yoki teskarisini
hozirgi zamonaviy fan va texnika yutuqlaridan foydalangan holda qoplanmaydigan
darajada juda katta moddiy sarf-xarajatlar bilan hamda keragidan ko‘p vaqt sarflash
bilan aniqlanadigan funksiyalarga yoki algoritmlarga asoslanadi. SHunday
funksiyalar yoki algoritmlarni quyidagi xossaga ega bo‘lishi maqsadga muvofiq:
berilgan x qiymatdaf(x) funksiyaning qiymati y etarli darajada oson hisoblanadi,
ammo biror noma’lum xqiymatda funksiyaning qiymati y=f(x) ma’lum
bo‘lsa, x qiymatni topishning ham moddiy jihatdan ham vaqt nuqtai nazaridan etarli
darajadagi imkoniyati yo‘q.
Ochiq kalitli kriptosistemalar algoritmlari ularning asosini tashkil etuvchi bir
tomonli funksiyalar bilan farqlanadi. Ammo har qanday bir tomonli funksiya ham
ochiq kalitli kriptosistemalar yaratish uchun va ulardan amaldagi axborotlar tizimida
maxfiy aloqa xizmatini o‘rnatish algoritmini qurish uchun qulaylik tug‘dirmaydi.
Bir tomonli funksiyalarni aniqlash ta’rifida nazariy jihatdan teskarisi mavjud
bo‘lmagan funksiyalar emas, balki berilgan funksiyaga teskari bo‘lgan funksiyaning
qiymatlarini hisoblash amaliy jihatdan maqsadga muvofiq bo‘lmagan funksiyalar
tushunilishi ta’kidlangan edi. SHuning uchun ma’lumotning ishonchli muhofazasini
ta’minlovchi ochiq kalitli kriptosistemalarga muhim bo‘lgan quyidagi talablar
qo‘yiladi:
38
Dastlabki ochiq matnni shifrmatn ko‘rinishida o‘tkazish bir tomonli jarayon va
shifrlash kaliti bilan shifrmatnni ochish – deshifrlash mumkin emas, ya’ni shifrlash
kalitini bilish shifrmatnni deshifrlash uchun etarli emas.
Ochiq kalitning ma’lumligiga asoslanib, maxfiy kalitni zamonaviy fan va
texnika yutuqlari yordamida aniqlash uchun bo‘ladigan sarf-xarajatlar hamda vaqt
maqsadga muvofiq emas. Bunda, shifrni ochish uchun bajarilishi kerak bo‘ladigan
eng kam miqdordagi amallar sonini aniqlash muhimdir.
Ochiq kalitli shifrlash algoritmlaridan axborotlar tizimida ma’lumotlarning
maxfiyligini ta’minlashda zamonaviy ilg‘or uslub sifatida foydalanib kelinmoqda.
Ochiq kalitli kriptosistemalarni yaratishning RSA algoritmi johon standarti sifatida
qabul qilingan. Bu haqida keyingi bo‘limlarda alohida to‘xtalamiz.
Umuman olganda, zamonaviy ochiq kalitli kriptosistemalar quyidagi tipdagi
akslantirishlarga (funksiyalarga) tayanadi:
1.
Katta sonlarni tub ko‘paytuvchilarga yoyish.
2.
Chekli sonli maydonlarda logarifmlarni hisoblash.
3.
Algebraik tenglamalarning ildizlarini hisoblash.
SHu
erda
ta’kidlash
lozimki,
ochiq
kalitli
kriptosistemalar
algoritmlaridanquyidagi maqsadlarda foydalaniladi:
Saqlanuvchi va uzatiladigan ma’lumotlarning maxfiyligi muhofazasini
ta’minlovchi mustaqil vosita sifatida.
Kalitlar taqsimotining muhofazasini ta’minlovchi vosita sifatida. Ochiq kalitli
kriptosistemalar algoritmlari an’anaviy kriptosistemalar algoritmlariga nisbatan
murakkab bo‘lib, undan ko‘proq kalitlarni taqsimlashda foydalaniladi. So‘ngra katta
hajmdagi ma’lumotlarni uzatishda soddaroq bo‘lgan sistemalardan foydalaniladi.
Autentifikatsiya, ya’ni ma’lumotlarning haqiqiyligini aniqlash uslublari
vositasi sifatida. Bu haqida «Elektron imzo» bo‘liija batafsil to‘xtalamiz.
quyida nisbatan ommaviylashgan ochiq kalitli kriptosistemalarni qisqa ko‘rib
o‘tamiz.
2.2 RSA shifrlash algoritmi.
RSA shifrlash algoritmi. Diffi va Xelman kritografiya sohasida yangicha
yondashishni targ‘ib qilib, ochiq kalitli kriptotizimlarning barcha talablariga javob
beradigan kriptografik algoritm yaratish taklifi bilan chiqdi. Birinchilardan bo‘lib
bunga javoban 1978 yil Ron Rayvets (Ron Rivest), Adi Shamir (Adi Shamir) va Len
39
Adlmen (Len Adlmen)lar shu vaqtgacha tan olingan va amaliy keng qo‘llanib
kelingan ochiq kalitli shifrlash algoritm sxemasini taklif qildi va bu algoritm
ularning nomi sharafiga RSA algoritmi deb ataldi. RSA algoritmi faktorlash
murakkabligiga asoslangan shifrlash algoritmi hisoblanadi.
Rayvest, Shamir va Adlmen tomonidan yaratilgan sxema daraja ko‘rsatkichiga
asoslangan. Ochiq matn bloklarga ajratilib shifrlanadi, har bir blok ba’zi berilgan n
sonidan kichik bo‘lgan ikkilik qiymatga ega bo‘ladi. Bundan kelib chiqadiki blok
uzunligi log2 (n) dan kichik yoki teng bo‘lishi kerak. Umuman olganda amaliyotda
blok uzunligi 2k ga teng deb olinadi, bu yerda 2k < n≤ 2k+1. Ochiq matn - M bloki va
shifrlangan matn - С bloki uchun shifrlash va deshifrlash quyidagi formula bilan
hisoblanishi mumkin.
M=Me mod(n), M=Cd mod(n)= (Me )dmod(n)=Med mod(n)
Jo‘natuvchi ham, qabul qiluvchi ham n ni qiymatini bilishi kerak. Jo‘natuvchi
e ni qiymatini, qabul qiluvchi esa faqat d ni qiymatini bilishadi. Ushbu sxema ochiq
kalitli shifrlash algoritmi hisoblanadi, KU={e,n}- ochiq kalit va KR={d,n}-maxfiy
kalit hisoblanadi. Bu algoritm ochiq kalit yordamida shifrlanishi uchun, quyidagi
talablar bajarilishi kerak.
1. Shunday e, d va n qiymatlar mavjud bo‘lish kerakki, barcha M <n uchun
Med= M mod ( n) tenglik o‘rinli bo‘lishi kerak.
2. Barcha M < n uchun Me va Cd ni hisoblash oson bo‘lishi kerak.
3. Amaliy jihatdan e va n ni bilmasdan turib d ni qiymatini bilish mumkin
bo‘lmasligi kerak.
Birinchi shartga binoan quyidagi munosabatni topish kerak
Med = M mod (n)
Eyler funksiyasiga asosan: har qanday ikkita p va q tub son va har qanday n va
m butun sonlar uchun, n=pq va 0 <m < n, va ixtiyoriy k butun son uchun quyidagi
munosabat bajariladi.
m k 𝜑 (n) +1= m k (p-1) (q-1) +1=m mod(n),
Bu yerda 𝜑(𝜑) Eyler funksiyasi bo‘lib, n dan kichik va n bilan o‘zaro tub
bo‘lgan musbat butun son. Eyler funksiyasi 𝜑(𝜑) bilan o‘zaro tub bo’lgan e son
tanlab olinadi va talab qilinayotgan munosabat quyidagi shart asosida bajariladi.
ed=k 𝜑(𝜑)+1
Bu quyidagi munosabat bilan ekvivalent:
ed=1 mod 𝜑(𝜑)
d=e-1 mod 𝜑(𝜑) e va d, 𝜑(𝜑) modul bo‘yicha o‘zaro teskari son, ya’ni
40
gcd(𝜑(𝜑), e) = 1.
Yuqorida keltirilgan parametrlar asosida RSA sxemasini quyidagicha
tasniflash mumkin:
• p va q - tub sonlar (maxfiy, tanlab olinadi);
• n=pq (ochiq hisoblanadi);
• shunday e, gcd(𝜑(𝜑), e) = 1, 1 < e, 𝜑(𝜑) (ochiq, tanlab olinadi);
• d=e-1 mod 𝜑(𝜑) (maxfiy hisoblanadi).
Maxfiy kalit {d,n} dan, ochiq kalit esa {e,n} dan iborat bo‘ladi. Faraz qilaylik,
A foydalanuvchi ochiq kalitini e’lon qildi va B foydalanuvchi unga M xabarni
jo‘natishi kerak. B foydalanuvchi C=Me mod(n), hisoblab C ni jo‘natadi.
Shifrlangan matnni qabul qilgan A foydalanuvchi M=Cd mod(n), yordamida
deshifrlab dastlabki ochiq matnga ega bo‘ladi.
Quyida keltirilgan misolda RSA algoritmini amaliy qo‘llash ko‘rsatilgan.
1. Ikkita tub son tanlab olinadi, p=7 va q=17.
2. n=p*q=7*17 hisoblanadi.
3. Eyler funksiyasi hisoblanadi 𝜑(𝜑)= (p - l)(q-1) = 96.
4. Eyler funksiyasi 𝜑(𝜑)= 96 bilan o’zaro tub bo’lgan va undan kichkina
bo’lgan e tanlab olinadi; bu misolda e=5.
5. de=1mod 96 va d<96 shartni qanoatlantiruvchi d soni topiladi. d=77,
77*5=385=4*96+1.
Natijada ochiq kalit KU={5,119} va yopiq kalit KR={77,119} hosil bo‘ladi. Bu
misolda ochiq matn qiymati M=19 olingan. Shifrlash formulasiga ko‘ra ochiq matn
qiymati ochiq kalit qiymati yordamida darajaga ko‘tarilib, n modul bo‘yicha qiymati
olinadi, ya’ni 19 soni 5 darajaga ko’tariladi, natijada 2476099 hosil bo‘ladi. Natijani
119 ga bo’lsak, qoldiq 66 ga teng bo’ladi. 195 = 66 mod 119 va shuning uchun ham
shifrlangan matn 66 ga teng bo’ladi. Deshifrlash uchun esa shifrlangan matn qiymati
maxfiy kalit qiymati yordamida darajaga ko’tarilib, n modul bo’yicha qiymati
olinadi, ya’ni 6677 = 19 mod 119 amalni hisoblaymiz va dastlabki ochiq matn
qiymatiga ega bo‘lamiz, ya’ni 19 ga.
41
2.3 El-Gamal shifrlash algoritmi.
Ushbu ochiq kalitli shifrlash algoritmi diskert logarifmlash muammosiga
asoslangan bo’lib, kalitlar uzunligi teng bo’lgan holda bardoshliligi RSA algoritmi
bardoshligiga teng.
Kalit generatori. El-Gamal algoritmida kalit generatori quyidagi bosqichlardan
iborat:
- p – tub son tanlanadi;
- g<p shartni qanoatlantiruvchi g butun son tanlanadi;
- maxfiy kalit sifatida a<p shartni qanoatlantiruvchi butun sontanlanadi;
- ochiq kalit sifatida y = ga mod phisoblanadi;
- ochiq kalitlar jufti (y, g, p) ma’lumotni shifrlovchi tomonlarga yoki ixtiyoriy
odamlarga tarqatiladi.
Shifrlash qoidasi: Biror foydalanuvchi (A) maxfiy kalit a sonini tanlab oladi
va y = ga mod p bo‘lgan ochiq kalitni hisoblaydi. Agarda foydalanuvchi A bo’lsa,
boshqa foydalanuvchi B - maxfiy ma’lumotni jo‘natuvchi bo’lsa, u holda B tomon
p sonidan kichik bo‘lgan biror kriptotizim uchun talab etiluvchi sonni tanlab olib,
y1 = gk (mod p) va y2 = (m* yk )(mod p),
sonlarini hisoblaydi. Bu yerda k EKUB( k, p -1) =1 shartni qanoatlantiruvchi
butun son. So’ngra (B) (y1>y2) ma’lumotlarini (A)ga jo’natadi.
Deshifrlash qoidasi: O‘z navbatida (A) bu shifrlangan ma’lumotni qabul qilib,
quyidagi
(y2 * yp-1-a mod p) = m
bo‘lgan hisoblash bilan ma’lumotning ochiq matnini tiklaydi.
Misol. A tomon o’zining maxfiy kaliti asosida ochiq kalit juftini hosil kiladi va
uni B tomonda yuboradi. Olingan qiymatlar quyidagilar: g=3; p=31; a=4;
y=(g^a)modp=(3^4)mod31=19. Bu yerda (p,g,y) - ochiq kalitlar jufti va a maxfiy
kalit.
Shifrlash. Bu bosqich A tomonning ochiq kalitlari orqali B foydalanuvchi
tomonidan amalga oshiriladi. Ochiq ma’lumot sifatida M=CDEF (2,3,4,5 alifbodani o’rni) olinib, EKUB(k, p-1) =1 shartni qanoatlantiruvchi k=7 tanlandi.
Shundan so’ng quyidagilar hisoblanadi:
r=(g^k)modp=(3^7)mod31=17;
C1=m*y^k=2 *(19^7)mod31=14;
C2= m*y^k =3 *(19^7)mod31=21;
C3= m*y^k =4*(19^7)mod31=28;
42
C4= m*y^k =5*(19^7)mod31=4;
Shundan so’ng C1,C2,C3,C4 lardan iborat S va r A tomonga yuboriladi.
Deshifrlash. Bu jarayon maxfiy kalitga ega bo’lgan A tomondan amalga oshiriladi
va ochiq matn olinadi:
M1=C1 *r^(p-1 -a)modp=14*17^(31-1 -4)mod31=2;
M2= C2 *r^(p-1 -a)modp =21*17^(31-1 -4)mod31=3;
M3= C3 *r^(p-1 -a)modp =28* 17^(31-1 -4)mod31=4;
M4=C4 *r^(p-1 -a)modp=4 * 17^(31-1 -4)mod31=5.
3. OpenSSL
yordamida.
kutubxonasidan
tashqari
maʼlumotlarni
Shifrlash
RSA algoritvmi va undan OpenSSL kutubxonasidan foydalanish
RSA shifrlash algoritmi va uning matematik asosi, tub sonlar va ularni generatsiyalash
usullari haqida nazariy va amaliy ko‘nikmalarga ega bo‘lish.
43
2.1- rasm. OpenSSLni ishga tushirish
2.2- rasm. Yopiq kalit hosil qilish
2.3- rasm. Hosil qilingan yopiq kalit
2.4- rasm. Maxfiy kalitdan foydalanib ochiq kalit hosil qilish.
2.5- rasm. Ochiq kalit
2.6- rasm. Ma’lumotni shifrlash
2.7- rasm. Shifr fayl.
44
2.8- rasm. Shifrlangan ma’lumot
2.9. Deshifrlash
2.10-rasm. Deshifrlangan ma’lumot fayli
2.11-rasm. Shifrmatnning dastlabki holatga qaytarilgan ko‘rinishi
45
Xulosa
Ushbu bobda biz Ochiq kalitli kriptosistemalar algoritmlari ularning asosini tashkil
etuvchi bir tomonli funksiyalar bilan farqlanishi va Ochiq kalitli shifrlash
algoritmlaridan axborotlar tizimida ma’lumotlarning maxfiyligini ta’minlashda
zamonaviy ilg‘or uslub sifatida foydalanib kelinyotganini hamda Ochiq kalitli
shifrlash algoritmlari an’anaviy kriptosistemalar algoritmlariga nisbatan murakkab
bo‘lib, undan ko‘proq kalitlarni taqsimlashda foydalanilishi haqida ma’lumotlar
berdik. Openssl dasturda ochiq kalintli malumotlarni tahlini o’rgandik.
46
Foydalanilgan adabiyotlar:
1.
https://dl.tuit.uz/subjectresources/31908/VmulJbfoPSKo0Ypls0VZB3hbI8B1RoH08N9Ac3YU.pdf
2.
https://dl.tuit.uz/subjectresources/31908/fxB3mvwbAOiCYD6Z91Gfa7LJzanZb0qvaFz0ER2T.pdf
3.
https://dl.tuit.uz/subjectresources/31908/eXk9kJRSXmwaeughzFnJsXAHz4XxBgJUhRp1Nz8h.pdf
4.
http://www.hozir.org/des-blokli-shifrlash-algoritmi-reja.html
5.
https://hozir.org/aes-kriptoalgaritmining-dasturiy-modulini-shlabchiqish.html?page=3
47
48
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )