Bir martali bloknot. Bir martali bloknot (one time pad) yoki “Vernam shifri” nomi bilan tanilgan kriptotizim bardoshli shifrlash algoritmi hisoblanib, tarixda keng foydalanilgan bo‘lsada, ko‘p hollarda amalga oshirishning imkoniyati mavjud bo‘lmagan. Uning bir martali deb
atalishiga asosiy sabab, undagi kalitning (bloknotning) bir marta foydalanilishi bo‘lib, uni aksariyat hollarda amalga oshirishning imkoni bo‘lmaydi. Masalan, ushbu shifrlash algoritmi 8 ta simvoldan iborat bo‘lgan alfavit bo‘lsin. Olingan alfavit simvollari va unga mos bo‘lgan binar qiymatlar 3.2 - jadvalda keltirilgan. Alfavit simvollari va ularga mos bit qiymatlari barcha uchun ochiq va sir saqlanmaydi.
3.2-jadval
Ochiq matn chun tanlangan alfavit
Simvollar
|
B
|
E
|
I
|
L
|
O
|
P
|
S
|
T
|
Binar qiymat
|
000
|
001
|
010
|
011
|
100
|
101
|
110
|
111
|
Faraz qilaylik, biror qonuniy foydalanuvchi A bir martali bloknotdan foydalangan holda “POSSIBLE” matnini shifrlab, o‘z sherigi B tomonga jo‘natishi talab etilsin. Ushbu ochiq matnning binar qiymatdagi ko‘rinishi quyidagicha bo‘ladi:
P
|
O
|
S
|
S
|
I
|
B
|
L
|
E
|
101
|
100
|
110
|
110
|
010
|
000
|
011
|
001
|
Bir martali bloknot usulida shifrlashda ochiq matn uzunligiga teng bo‘lgan tasodifiy tanlangan kalitdan foydalaniladi. Shifrmatn ochiq matn va kalitga XOR amalini qo‘llab hosil qilinadi (P – ochiq matn, K – kalit va C – shifrmatn): 𝐶 = 𝑃⨁𝐾. XOR amali (⨁) quyida keltirilgan:
0⨁0 = 0
|
0⨁1 = 1
|
1⨁0 = 1
|
1⨁1 = 0
|
Jadvaldan, 𝑥⨁𝑦⨁𝑦 = 𝑥 tenglik o‘rinligini ko‘rish mumkin. Bu esa bir martali parol bilan rasshifrovkalashda shifrmatnga kalitni XOR amalida bajarilishining o‘zi yetarligini ko‘rsatadi: 𝑃 = 𝐶⨁𝐾.
Faraz qilaylik, A tomon 3.2-jadvaldagi ochiq matn uzunligiga teng bo‘lgan quyidagi kalitga ega bo‘lsin:
111
|
101
|
110
|
101
|
111
|
100
|
000
|
101
|
A tomon ushbu kalit asosida shifrmatnni quyidagicha hisoblaydi:
|
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 xil 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
|
Simmetrik kriptografik algoritmlar
Quyida simmetrik kriptotizimlar, shuningdek ularning ikki turi: oqimli va blokli simmetrik shifrlash algoritmlariga to‘xtalib o‘tiladi. Simmetrik shifrlash algoritmlarida ma’lumotlarni shifrlash va rasshifrovkalashda yagona kalitdan foydalaniladi. Ma’lumotlarni shifrlash va rasshifrovkalash jarayonlarini amalga oshirish tartibi foydalanilayotgan tizim xususiyatiga asosan tanlanadi.
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. Oqimli simmetrik shifrlash algoritmlari bir martali bloknotga asoslangan, farqli jihati – bardoshligi yetarlicha pastligi va boshqariladigan kalitning mavjudligi. Ya’ni, kichik uzunlikdagi kalitdan ochiq matn uzunligiga teng bo‘lgan
ketma-ketlik hosil qilinadi va undan bir martali bloknot sifatida foydalaniladi.
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. Bunda ketma-ketlikni qo‘shish bir martali bloknotni qo‘shish kabi amalga oshiriladi.
Oqimli shifrni quyidagicha sodda ko‘rinishda yozish mumkin:
𝑆𝑡𝑟𝑒𝑎𝑚𝐶𝑆𝑆𝑝ℎ𝑒𝑟(𝐾) = 𝑆
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 𝑆 = 𝑠0, 𝑠1, 𝑠2, …, va ochiq matn
𝑃 = 𝑝0, 𝑝1, 𝑝2, …, berilgan bo‘lsa, XOR amali yordamida shifrmatnning mos bitlari 𝐶 = 𝑐0, 𝑐1, 𝑐2, …, ni quyidagicha hosil qilish mumkin.
𝑐0 = 𝑝0⨁𝑠0, 𝑐1 = 𝑝1⨁𝑠1, 𝑐2 = 𝑝2⨁𝑠2 , …
Shifrmatn 𝐶 ni rasshifrovkalash uchun, yana ketma-ketlik 𝐶 dan foydalaniladi:
𝑝0 = 𝑐0⨁𝑠0, 𝑝1 = 𝑐1⨁𝑠1, 𝑝2 = 𝑐2⨁𝑠2 , …
Jo‘natuvchi va qabul qiluvchini bir xil oqimli shifrlash algoritmi va kalit 𝐾 bilan ta’minlash 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. Ushbu oqimli shifrlash algoritmidan GSM mobil aloqa tizimlarida ma’lumotlarni konfidensialligini ta’minlashda foydalaniladi. Mazkur algoritm algebraik tuzilishga ega bo‘lsada, uni sodda diagramma ko‘rinishda ham tasvirlash imkoniyati mavjud.
A5/1 shifrlash algoritmi uchta chiziqli siljitish registrlaridan iborat, ular mos holda 𝑋𝑋, 𝑌 va 𝑍 kabi belgilanadi. 𝑋𝑋 registr o‘zida 19 bit (𝑥0, 𝑥1, … , 𝑥18), 𝑌 registr 22 bit (𝑦0, 𝑦1, … , 𝑦21) va 𝑍 registr 23 bit (𝑧0, 𝑧1, … , 𝑧22) ma’lumotni saqlaydi. Uchta registrning bunday
o‘lchamdagi bitlarni saqlashi bejiz emas. Sababi, chiziqli siljitish registrlari o‘zida jami bo‘lib 64 bitni saqlaydi. A5/1 shifrlash algoritmida foydalaniluvchi kalit 𝐾 ning uzunligi 64 bitga teng va ushbu kalitdan registrlarni dastlabki to‘ldirish uchun foydalaniladi. So‘ngra oqimli shifrlash algoritmi asosida talab etilgan uzunlikdagi (ochiq matn uzunligiga teng bo‘lgan) ketma-ketliklar generasiyalanadi. Ketma- ketliklarni generatsiyalash tartibini o‘rganishdan oldin, registrlar xususidagi ba’zi ma’lumotlar quyida keltirilgan.
𝑋𝑋 siljitish registrida quyidagi amallar ketma-ketligi bajariladi:
𝑡 = 𝑥13⨁𝑥16⨁𝑥17⨁𝑥18
𝑆𝑆 = 18,17,16, … ,1 𝑢𝑐ℎ𝑢𝑛 𝑥𝑖𝑖 = 𝑥𝑖𝑖−1
𝑥0 = 𝑡
Shunga o‘xshash, 𝑌 𝑣𝑎 𝑍 registrlar uchun ham quyidagilarni yozish mumkin:
𝑡 = 𝑦20⨁𝑦21
𝑆𝑆 = 21,20,19, … ,1 𝑢𝑐ℎ𝑢𝑛 𝑦𝑖𝑖 = 𝑦𝑖𝑖−1
𝑦0 = 𝑡
va
𝑡 = 𝑧7⨁𝑧20⨁𝑧21⨁𝑧22
𝑆𝑆 = 22,21,20, … ,1 𝑢𝑐ℎ𝑢𝑛 𝑧𝑖𝑖 = 𝑧𝑖𝑖−1
𝑧0 = 𝑡
Berilgan uchta bit 𝑥, 𝑦 va 𝑧 uchun 𝑚𝑎𝑚𝑚(𝑥, 𝑦, 𝑧) funksiya qiymati eng ko‘p bitga teng bo‘ladi. Masalan, agar 𝑥, 𝑦 𝑣𝑎 𝑧 bitlar 0 ga teng bo‘lsa, u holda funksiyaning qiymati 0 ga teng bo‘ladi. Funksiyaga kiruvchi bitlar toq bo‘lgani uchun, funksiya har doim 0 ni yoki 1 ni qaytaradi. Boshqa holatlar bo‘lmaydi.
A5/1 shifrida, ketma-ketlikning har bir bitini generatsiyalash uchun quyidagilar bajariladi. Dastlab, 𝑚 = 𝑚𝑎𝑚𝑚(𝑥8, 𝑦10, 𝑧10) funksiya qiymati hisoblanadi. So‘ngra 𝑋𝑋, 𝑌 va 𝑍 registrlar quyidagicha sijitiladi (yoki siljitilmaydi):
agar 𝑥8 = 𝑚 ga teng bo‘lsa, 𝑋𝑋 siljitiladi;
agar 𝑦10 = 𝑚 ga teng bo‘lsa, 𝑌 siljitiladi;
agar 𝑧10 = 𝑚 ga teng bo‘lsa, 𝑍 siljitiladi.
Ketma-ketlikning bir biti 𝑠 quyidagicha generatsiyalanadi:
𝑠 = 𝑥18⨁𝑦21⨁𝑧22
Yuqorida keltirilgan ketma-ketlik amallari talab etilguncha takrorlanadi (ochiq matn yoki shifrmatn uzunligiga teng).
Agar biror registr siljitilsa, uning to‘liq holati o‘zgaradi. Ketma- ketlikning bir bitini hosil qilishda uchta registrdan kamida ikkitasi siljiydi va shuning uchun yuqoridagi ketma-ketlikni davom ettirgan holda yangi bitlar ketma-ketligini hosil qilish mumkin.
A5/1 oqimli shifrlash algoritmi murakkab ko‘rinsada, qurilmada amalga oshirilganida yuqori tezlik qayd etiladi. Umumiy holda A5/1 oqimli shifrni 3.4 - rasmdagi kabi ifodalash mumkin.
X
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
|
|
|
|
Y
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
Z
-rasm. A5/1 ketma-ketlik generatorining umumiy ko‘rinishi
|