P
O
S
S
I
B
L
E
Ochiq
matn:
101
100
110
110
010
000
011
001
Kalit:
111
101
110
101
111
100
000
101
Shifrmatn:
010
001
000
011
101
100
011
100
I
E
B
L
P
O
L
O
A tomonidan jo'natilgan shifrmatn B tomonda bir xir kalitdan foydalanib osongina
rasshifrovkalanadi:
I
E
B
L
P
O
L
O
Shifrmatn:
010
001
000
011
101
100
011
100
Kalit:
111
101
110
101
111
100
000
101
Ochiq
matn:
101
100
110
110
010
000
011
001
P
O
S
S
I
B
L
E
3.2. Simmetrik kriptografik algoritmlar
Simmetrik kriptotizimlar ikki turi mavjud:
oqimli
va
blokli
simmetrik
shifrlash algoritmlari hisoblanadi va ulardan har bir tizim o’ziga kerakli turdagi
algoritmni tanlab oladi.
Simmetrik
kriptotizimlarning
ishlashi
bilan
tanishishda
quyidagi
belgilashlar kiritiladi:
− ochiq matn
ni simmetrik kalit
bilan shifrlash:
=
(
,
);
.− shifrmatn
ni simmetrik kalit
bilan rasshifrovkalash:
=
(
,
).
Bu yerda,
() va
() lar mos ravishda simmetrik kriptotizimdagi shifrlash va
rasshifrovkalash funksiyalari.
Oqimli simmetrik shifrlash algoritmlari
: bir martali bloknotga asoslangan,
farqli jihati – bardoshligi yetarlicha pastligi va boshqariladigan kalitning
mavjudligi.
Oqimli shifr
bitli kalit
ni qabul qiladi va uni ochiq matnni uzunligiga teng
bo‘lgan ketma-ketlik
ga uzaytiradi. Shifrmatn
ketma- ketlik
ochiq matn
bilan
amali yordamida hosil qilinadi.
Oqimli shifrni quyidagicha sodda ko‘rinishda yozish mumkin:
StreamCipher(K)=S
Bu yerda
kalit,
esa natijaviy ketma-ketlik. Esda saqlash lozimki, bu yerdagi
ketma-ketlik shifrmatn emas, balki bir martali bloknotga o‘xshash oddiy qator.
Agar berilgan ketma-ketlik
ᱸ
ˌˏ˵˕
S
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
=
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
s0
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
s1
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
s2
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
, …,
ᱹ
ˌˏ˵˕
va ochiq matn
ᱸ
ˌˏ˵˕
P
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
=
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
p0
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
p1
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
p2
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
, …,
ᱹ
ˌˏ˵˕
berilgan bo'lsa, XOR amali yordamida shifrmatnning mos bitlari
ᱸ
ˌˏ˵˕
C
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
=
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
c0
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
c1
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
c2
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
, …,
ᱹ
ˌˏ˵˕
ni quyidagicha hosil qilish mumkin.
ᱸ
ˌˏ˵˕
c0
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
=
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
p0
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
⨁
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
s0
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
c1
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
=
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
p1
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
⨁
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
s1
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
c2
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
=p2
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
⨁
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
s2
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,…
ᱹ
ˌˏ˵˕
Shifrmatn C ni rasshifrovkalash uchun, yana ketma-ketlik C dan
foydalaniladi:
ᱸ
ˌˏ˵˕
p0
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
=
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
c0
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
⨁
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
s0
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
p1
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
=
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
c1
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
⨁
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
s1
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
p2
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
=c2
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
⨁
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
s2
ᱹ
ˌˏ˵˕
ᱸ
ˌˏ˵˕
,…
ᱹ
ˌˏ˵˕
Jo‘natuvchi va qabul qiluvchini bir xil oqimli shifrlash algoritmi va kalit
bilan taminlash orqali, ikkala tomonda bir xil ketma-ketliklarni hosil qilish
mumkin. Biroq, natijaviy shifr kafolatli xavfsizlikka ega bo‘lmaydi va asosiy
e’tibor amaliy jihatdan qo‘llashga qaratiladi.
A5/1 oqimli shifrlash algoritmi
. A5/1 shifrlash GSM (Group Special Mobile)
aloqalarini shifrlash uchun ishlatiladigan oqim shifridir. Bu mobil raqamli uyali
telefonlar uchun Evropa standartidir. U telefon/tayanch stansiya kanalini shifrlash
uchun ishlatiladi.
A5/1 shifrlash algoritmida dastlabki kalitning uzunligi 64 bitni tashkil etib, u
quyidagi uchta registorga qiymat qilib beriladi:
X: 19 bit (x0,x1,x2,…,x18)
Y: 22 bit (y0,y1,y2,…,y21)
Z: 23 bit (z0,z1,z2,…,z22)
Har bir qadamda: m = maj(x8, y10, z10) hisoblanadi
masalan: maj(0,1,0) = 0 vа maj(1,1,0) = 1
agarx8 = mga teng bo‘lsa, u holda X registor qiymatlari
t = x13
x16
x17
x18
x
i
= x
i
1
for i = 18,17,…,1 va x
0
= t
agar y
10
= m ga teng bo‘lsa, u holda y registor qiymatlari
t = y20
y21
y
i
= y
i
1 for i = 21,20,…,1 and y
0
=t
agar z10 = m ga teng bo‘lsa, u holda Z registor qiymatlari
t = z7
z20
z21
z22
z
i
= z
i
1
for i = 22,21,…,1 and z
0
= t
natijaviy kalit ketma-ketligi x18
y21
z22 ga teng bo‘ladi.
Bu amallar quyidagi rasmda ifodalangan:(3.4-rasm)
Masalan quyidagi ko‘rsatilgan hol uchun: (3.5-rasm)
m = maj(x8, y10, z10) = maj(1,0,1) = 1
ga teng bo‘ladi. Natijada X registor
siljiydi, Y registor siljimaydi va Z registor siljiydi. O‘ng tomondagi bitlar XOR
amal bo‘yicha qo‘shiladi va 0
1
0 = 1 qiymat olinadi.
Blokli simmetrik shifrlash algoritmlari. Shifrlash algoritmlari kirish turiga
ko‘ra blokli va oqimli shifr sifatida ikki toifaga bo‘linadi. Blok shifrlash - bu
shifrlash algoritmi bo‘lib, u ma'lum hajmdagi kirish hajmini oladi va b bitli
shifrlangan matnni qayta ishlab chiqaradi . Agar kirish b bitdan katta bo‘lsa, uni
yana bo‘lish mumkin. Turli xil ilovalar va foydalanish uchun blokli shifr uchun bir
nechta ish rejimlari mavjud.
Elektron kod kitobi (ECB)
- Elektron kod kitobi blokli shifrlashning eng
oson ishlash rejmidir. Kirish ochiq matnning har bir blokini to‘g‘ridan-to‘g‘ri
shifrlash tufayli osonroq bo‘ladi va chiqishi shifrlangan shifrlangan matn bloklari
shaklida bo‘ladi. Odatda, agar xabar hajmi b bitdan katta bo‘lsa, uni bloklar
to‘plamiga bo‘lish mumkin va protsedura takrorlanadi.
ECB protsedurasi quyida ko‘rsatilgan:
(3.6-rasm)
|