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 B
sA
[256] va B
sAD
[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,
109
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 k
f
, 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,k
f
),
ShaklSeansKalit(K
st
)
va
ShaklBosqichKalit(k
se
)
ishga
tushiriladi.
ShaklSeansKalitBayt(k,k
f
), ShaklSeansKalit(K
st
) shifralmashtirishlari chiqishida
bayt sathida almashtirish massivlari va diamatritsaviy qismlardan tarkib topgan
seans kaliti massivlari shakllantiriladi. Bu massivlar toki k, k
f
lar o‘zgarmas bo‘lib
qolar ekan, keyingi seanslarda ham foydalanilaveradi. ShaklBosqichKalit(k
se
)
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
110
jarayonini
ShaklSeansKalitBayt(k,k
f
),
ShaklSeansKalit
(K
st
),
ShaklBosqichKalit(k
se
) almashtirish jarayonlari bilan qo‘shib olib borish maqsadga
muvofiqdir. Unda shifr protsedurasiga ShaklSeansKalitBayt(k,k
f
), ShaklSeansKalit
(K
st
), ShaklBosqichKalit(k
se
) 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 k
f
[32], byte e)
begin
byte k
e
[8, 4], K
s
[8, 4], K
e
[8, 4]
Holat [8, 4], Holatn [8, 4]
if (m=Sh)
ShaklSeansKalitBayt (k, k
f
)
ShaklSeansKalit (K
st
)
ShaklBosqichKalit (k
se
)
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, K
e
)
Aralash (Holat, K
s
)
Sur (Holat)
BaytAlmash (Holat, B
a
)
end for
111
Qo’shBosqichKalit (Holat, K
e
)
Aralash (Holat, K
s
)
Chiqish [blok]=Holat
end for
else
ShaklSeansKalitBayt (k, k
f
)
ShaklSeansKalit (K
st
)
ShaklBosqichKalit (k
se
)
for blok=1 step 1 to blok_soni
Holat=kirish [blok]
Aralash (Holat, K
s
)
Qo’shBosqichKalit (Holat, K
e
)
for bosqich=1 step 1 to e
BaytAlmash (Holat, B
a
)
Sur (Holat)
Aralash (Holat, K
s
)
Qo’shBosqichKalit (Holat, K
e
)
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
112
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.
Dostları ilə paylaş: |