ShaklSeansKalitBayt() – seans uchun kalit shakllantirish bo‘lib, dastlabki matnni shifrmatnga va teskari yo‘nalishda almashtirishda BaytAlmash() shifralmashtirishini bajarish uchun foydalaniladi; mazkur shifralmashtirish kirishi shifrlash kaliti k va funksional kalit kf bo‘lib, chiqishi bayt sathida chiziqli massivlar BsA [256] va BsAD [256];
ShaklSeansKalit() – seans uchun kalit shakllantirish bo‘lib, dastlabki matnni shifrmatnga va teskari yo‘nalishda almashtirishda Aralash() shifralmashtirishini bajarish uchun foydalaniladi; mazkur shifralmashtirish kirishi baytli elementlardan tarkib topgan chiziqli massiv Kst=[32] bo‘lib, chiqishi maxsus tuzilmali diamatritsalardan tashkil topgan (K1t , K2 ) yoki (K1 , K2t ) massivlar juftliklaridir;
ShaklBosqichKalit() – seans davomida seans-bosqich kalitidan bosqich kalitini shakllantirish bo‘lib, dastlabki matnni shifrmatnga va teskari yo‘nalishda almashtirishda Qo’shBosqichKalit() almashtirishini bajarish uchun foydalaniladi; mazkur almashtirish kirishi chiziqli seans-bosqich kaliti massivi kse, chiqishi bayt sathida berilgan ikki o‘lchamli Ke[8,4] massividir;
Qo’shBosqichKalit() – oddiy shifralmashtirish bo‘lib, dastlabki matnni shifrmatnga va teskari yo‘nalishda Holat va bosqich kaliti massivi Ke elementlari ustida istisnoli YoKI (2 moduli bo‘yicha bitlab qo‘shish) amalini bajarishdan iborat; mazkur shifralmashtirish kirishi bayt sathida Holat massivi, Ke massivi bo‘lib, chiqishi bayt sathida Holat massividir;
Qo’shHolat() – oddiy shifralmashtirish bo‘lib, shifrlash bloklari ustida amalga oshiriladigan elektron kod kitobi rejimidan boshqa rejimlarda dastlabki matnni shifrmatnga va teskari yo‘nalishda XOR amali ishtirokida foydalaniladigan almashtirish.
Shifrlash kriptografik modulini ishga tushirishda avvalo modulga shifrlash kaliti k va funksional kalit kf, o‘rnatilgan bosqichlar soni e hamda rejim m=ShBil uchun initsializasiyalash vektori IV yuklanadi. Shuningdek, dastlabki matnni shifrmatnga almashtirish rejimida dastlabki matn, shifrmatnni dastlabki matnga almashtirish rejimida esa shifrmatn kriptografik modulning Holat massiviga yuklanadi. Shifrlash jarayonining boshlanishida ShaklSeansKalitBayt(k,kf), ShaklSeansKalit(Kst) va ShaklBosqichKalit(kse) ishga tushiriladi. ShaklSeansKalitBayt(k,kf), ShaklSeansKalit(Kst) shifralmashtirishlari chiqishida bayt sathida almashtirish massivlari va diamatritsaviy qismlardan tarkib topgan seans kaliti massivlari shakllantiriladi. Bu massivlar toki k, kf lar o‘zgarmas bo‘lib qolar ekan, keyingi seanslarda ham foydalanilaveradi. ShaklBosqichKalit(kse) shifralmashtirishi chiqishida boshlangich va har bir bosqich uchun shakllantirilgan bosqich kalitlari to‘plami shakllantiriladi.
Elektron kod kitobi (Elektron kod kitobi) m=Ekk va shifr bloklarni ilaktirish (ShifrBloklarni ilaktirish) m=ShBil rejimlariga tegishli psevdokod keltirilgan.
Aralash(Holat,Ks), BaytAlmash(Holat,Ba), Qo’shBosqichKalit(Holat, Ke), Sur(Holat) oddiy shifralmashtirishlari va ShaklSeansKalitBayt(k,kf), ShaklSeansKalit(Kst), ShaklBosqichKalit(kse) va Qo’shHolat(Holatt, Holat) almashtirishlari keyingi bandda keltirilgan.
Shifrlash modulining dasturiy-apparatli shaklida funksional kalit yangilash jarayonini ShaklSeansKalitBayt(k,kf), ShaklSeansKalit (Kst), ShaklBosqichKalit(kse) almashtirish jarayonlari bilan qo‘shib olib borish maqsadga muvofiqdir. Unda shifr protsedurasiga ShaklSeansKalitBayt(k,kf), ShaklSeansKalit (Kst), ShaklBosqichKalit(kse) natijalarini kiritish nazarda tutilishi lozim.
Shifrlash protsedurasining psevdokodi quyida keltirilgan:
Shifr (int blok soni, byte IV[32], byte kirish [blok soni] [32], byte chiqish [blok soni] [32], byte k[32], byte kf [32], byte e)
begin
byte ke [8, 4], Ks [8, 4], Ke [8, 4]
Holat [8, 4], Holatn [8, 4]
if (m=Sh)
ShaklSeansKalitBayt (k, kf)
ShaklSeansKalit (Kst)
ShaklBosqichKalit (kse)
for blok=1 step 1 to blok_soni
Holat=kirish[blok]
if (m=ShBil)
if (blok=1)
Holatn=IV
else
Holatn=chiqish[blok-1]
end if
Qo’shHolat (Holat, Holatn)
end if
for bosqich=1 step 1 to e
Qo’shBosqichKalit (Holat, Ke)
Aralash (Holat, Ks)
Sur (Holat)
BaytAlmash (Holat, Ba)
end for
Qo’shBosqichKalit (Holat, Ke)
Aralash (Holat, Ks)
Chiqish [blok]=Holat
end for
else
ShaklSeansKalitBayt (k, kf)
ShaklSeansKalit (Kst)
ShaklBosqichKalit (kse)
for blok=1 step 1 to blok_soni
Holat=kirish [blok]
Aralash (Holat, Ks)
Qo’shBosqichKalit (Holat, Ke)
for bosqich=1 step 1 to e
BaytAlmash (Holat, Ba)
Sur (Holat)
Aralash (Holat, Ks)
Qo’shBosqichKalit (Holat, Ke)
end for
if (m=ShBil)
if (blok=1)
Holatn=IV
else
Holatn=kirish[blok-1]
end if
Qo’shHolat (Holat, Holatn)
end if
chiqish[blok]=Holat
end for
end if
end
Simmetrik shifrlashning barcha tizimlari quyidagi kamchiliklarga ega:
axborot almashuvchi ikala sub’ekt uchun maxfiy kalitni uzatish kanalining ishonchliligi va xavfsizligiga quyiladigan talablarning qat’iyligi;
kalitlarni yaratish va taqsimlash xizmatiga quyiladigan talablarning yuqoriligi.
Sababi, o‘zaro aloqaning «har kim – xar kim bilan» sxemasida «n» ta abonent uchun n(n-1)/2 ta kalit talab etiladi, ya’ni kalitlar sonining abonentlar soniga bog‘liqligi kvadratli. Masalan, n=1000 abonent uchun talab qilinadigan kalitlar soni n(n-1)/2=499500. Shu sababli, foydalanuvchilari yuz milliondan oshib ketgan «Internet» tarmog‘ida simmetrik shifrlash tizimini qo‘shimcha usul va vositalarsiz qo‘llashning iloji yo‘q.
Do'stlaringiz bilan baham: |