2.1.7. 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 1 - jadvalda
keltirilgan [13]. Alifbo simvollari va ularga mos bit qiymatlari barcha uchun ochiq
va sir saqlanmaydi (ASCII jadvali kabi).
26
1-jadval
Belgilar
E
H
I
K
L
R
S
T
Binar
qiymat
000
001
010
011
100
101
110
111
Faraz qilaylik, biror qonuniy foydalanuvchi A bir martali bloknotdan
foydalangan holda “HEILHITLER” matnini shifrlab, o’z sherigi B tomonga
jo’natishi talab etilsin. Ushbu ochiq matnni binar qiymatdagi ko’rinishi quyidagicha
bo’ladi:
H
E
I
L
H
I
T
L
E
R
001
000
010
100
001
010
111
100
000
101
Bir martali bloknot usulida shifrlashda ochiq matn uzunligiga teng bo’lgan
tasodifiy tanlangan kalitdan foydalaniladi. Ochiq matnga kalitni XOR amali orqali
shifrmatn hosil qilinadi ( R – ochiq matn, K – kalit va S – shifrmatn deb belgilansa):
𝐶𝐶 = 𝑃𝑃⨁𝐾𝐾. XOR amali (⨁) binar amal hisoblanib, quyida keltirilgan:
0⨁0 = 0
0⨁1 = 1
1⨁0 = 1
1⨁1 = 0
Jadvaldan,
𝑥𝑥⨁𝑦𝑦⨁𝑦𝑦 = 𝑥𝑥 tenglik o’rinligini ko’ramiz. Shuning uchun bir
martali parol bilan deshifrlash uchun shifrmatnga kalitni XOR amalida
bajarilishining o’zi yetarli hisoblanadi:
𝑃𝑃 = 𝐶𝐶⨁𝐾𝐾.
Faraz qilaylik, A tomon jadvaldagi ochiq matn uzunligiga teng bo’lgan
quyidagi kalitga ega bo’lsin:
111 101 110 101 111 100 000 101 110 000
A tomon ushbu kalit asosida shifrmatnni quyidagicha hisoblaydi:
H
E
I
L
H
I
T
L
E
R
Ochiq matn: 001 000 010 100 001 010 111 100 000 101
Kalit: 111 101 110 101 111 100 000 101 110 000
Shifrmatn: 110 101 100 001 110 110 111 001 110 101
27
S
R
L
H
H
H
T
H
S
R
A tomonidan jo’natilgan shifrmatn B tomonda bir xil kalit dan foydalanib
osongina deshifrlanadi:
S
R
L
H
H
H
T
H
S
R
Shifrmatn: 110 101 100 001 110 110 111 001 110 101
Kalit: 111 101 110 101 111 100 000 101 110 000
Ochiq matn: 001 000 010 100 001 010 111 100 000 101
H
E
I
L
H
I
T
L
E
R
Ushbu shifrlash algoritmi uchun quyidagi ikki holatni qarab chiqish muhim:
faraz qilaylik,
A
tomonning dushmani M
A tomon quyidagi kalitdan foydalangan deb biladi:
101 111 000 101 111 100 000 101 110 000
Agar M dushman ushbu kalitni B tomonga uzata olsa, u holda B tomon
shifrmatnni quyidagicha deshifrlaydi:
S
R
L
H
H
H
T
H
S
R
Shifrmatn: 110 101 100 001 110 110 111 001 110 101
“Kalit”: 101 111 000 101 111 100 000 101 110 000
“Ochiq matn”: 011 010 100 100 001 010 111 100 000 101
K
I
L
L
H
I
T
L
E
R
Agar B tomon kriptografiyadan xabari bo’lmasa, u holda A tomonning qarori
muhokamaga sabab bo’ladi.
Ikkinchi holat: faraz qilamiz A foydalanuvchi dushmani M tomonidan qo’lga
olindi va shifrmatnga ega bo’ldi. Dushman shifrmatnni o’qiy olmaydi va shuning
uchun A tomondan uning kalitini talab etadi. A tomon o’zini har ikkala tomonga
“o’ynashini” aytib, shifrmatni deshifrlash kaliti deb quyidagini aytadi:
111 101 000 011 101 110 001 011 101 101
Ushbu kalit orqali dushman M shifrmatnni deshifrlaganda quyidagi ochiq
matn hosil bo’ladi:
28
S
R
L
H
H
H
T
H
S
R
Shifrmatn: 110 101 100 001 110 110 111 001 110 101
“Kalit”: 111 101 000 011 101 110 001 011 101 101
“Ochiq matn”: 001 000 100 010 011 000 110 010 011 000
H
E
L
I
K
E
S
I
K
E
Agar dushman kriptografiya haqida ma’lumotga ega bo’lmasa, ushbu ochiq
matnga ishonadi va A tomonni qo’yib yuboradi.
Yuqoridi keltirilgan misollar bir martali bloknot shifrini bardoshli ekanini
ko’rsatadi. Bir martali bloknotda agar kalit tasodifiy tanlansa va bir marta
foydalanilgan taqdirda hujumchi shifrmatndan ochiq matn haqida biror axborotga
ega bo’la olmaydi (albatta ma’lumotning uzunligidan tashqari). Ya’ni, berilgan
shifrmatn uchun mos “kalit” yordamida shifrmatn uzunligidagi ixtiyoriy “ochiq
matnlar”ni generasiyalash mumkin va bunda barcha ochiq matnlar bir xil
o’xshashlikka ega. Shuning uchun shifrmatndan ochiq matn haqida biror foydali
axborotni olishning imkoni yo’q. Kriptografiya nuqtai nazardan shifrmatnlar
o’zidan ortiq ma’lumotni bera olmaydi.
Buning uchun albatta, bir martali bloknotdan to’g’ri foydalanish, kalitni
tasodifiy tanlash va undan bir marta foydalanilish hamda faqat A va B tomonlarga
ma’lum bo’lishi talab etiladi.
Bir martali bloknot yuqori bardoshlikni ta’minlashiga qaramasdan, har doim
undan foydalanilmaydi. Sababi, har bir ochiq matn uchun uning uzunligiga teng
bo’lgan tasodifiy kalitni (bloknotni) generasiyalash va uni qabul qiluvchiga xavfsiz
uzatishning kafolati yo’qligi. Agar ochiq matn uzunligidagi kalitni (bloknotni)
xavfsiz uzatishning imkoniyati mavjud bo’lsa, u holda kalitning o’rniga ochiq
matnni uzatish foydali emasmi? Uni shifrlashdan nima ma’no?
Bir martali bloknot usulidan tarixda cheklangan uzunlikdagi ma’lumotlarni
shifrlashda qisman foydalanilgan bo’lsada, hozirgi kundagi katta hajmli
ma’lumotlarni uzatish uchun bir martali bloknotni to’liq amaliy tomondan qo’llab
bo’lmaydi.
29
Bir martali bloknotda kalitlardan faqat bir marta foydalanishdan maqsad nima?
Faraz qilaylik, quyidagi ikki ochiq matn
𝑃𝑃
1
va
𝑃𝑃
2
bitta kalit
𝐾𝐾 dan foydalanib
shifrlangan:
𝐶𝐶
1
= 𝑃𝑃
1
⨁𝐾𝐾 va 𝐶𝐶
2
= 𝑃𝑃
2
⨁𝐾𝐾. Kriptografiyada ushbu holatni “xavflilik”
deb ataladi va bir martali bloknot xavfli holatda deb tushuniladi. Ya’ni,
foydalanilgan kalit ortiq muammo tug’dirmaydi:
𝐶𝐶
1
⨁𝐶𝐶
2
= 𝑃𝑃
1
⨁𝐾𝐾⨁𝑃𝑃
2
⨁𝐾𝐾 = 𝑃𝑃
1
⨁𝑃𝑃
2
Mazkur holda shifrmatn haqiqiy ochiq matn xususida ba’zi axborotni oshkor
qiladi. Agar bir kalitdan foydalanib ko’p marta shifrlash amalga oshirilsa bu katta
xavfga olib kelishi mumkin. Mazkur holat quyidagi misolda ko’rib chiqilgan. Faraz
qilaylik, quyidagi ikkita ochiq matn berilgan bo’lsin (belgilarning binar kodi
yuqoridagi jadvaldagi kabi):
𝑃𝑃
1
= 𝐿𝐿𝐿𝐿𝐾𝐾𝐿𝐿 = 100 010 011 000 va 𝑃𝑃
2
= 𝐾𝐾𝐿𝐿𝐾𝐾𝐿𝐿 = 011 010 111 000.
Har ikkala ochiq matn yagona kalit
𝐾𝐾 = 110 011 101 111 yordamida
shifrlangan va shifrmatnlar quyidagiga teng bo’lgan:
L
I
K
E
𝑃𝑃
1
: 100 010 011 000
𝐾𝐾: 110 011 101 111
𝐶𝐶
1
: 010 001 110 111
I
H
S
T
va
K
I
T
E
𝑃𝑃
2
: 011 010 111 000
𝐾𝐾: 110 011 101 111
𝐶𝐶
2
: 101 001 010 111
R
H
I
T
Agar hujumchi kriptotahlil bilan yaqindan tanish bo’lsa va har ikkala ochiq
matn bir xil kalit yordamida shifrlanganini bilsa, ochiq matnlardagi 2- va 4-
simvollarning bir xilligini osongina aniqlaydi. Sababi, mos o’rindagi shifrmatn
simvollari bir xil. Bundan tashqari, hujumchi taxminiy
𝑃𝑃
1
ochiq matn oladi va uni
to’g’riligini
𝑃𝑃
2
ochiq matn bilan tekshirib ko’radi. Faraz qilaylik, hujumchi birinchi
30
ochiq matn sifatida
𝑃𝑃
1
= 𝐾𝐾𝐿𝐿𝐿𝐿𝐿𝐿 = 011 010 100 100 ni olgan bo’lsin. Bu holda u
ochiq matnga mos taxminiy kalitni quyidagicha hisoblaydi:
K
I
L
L
Taxminiy
𝑃𝑃
1
: 011 010 100 100
𝐶𝐶
1
:
010 001 110 111
Taxminiy
𝐾𝐾: 001 011 010 011
Olingan kalit
𝐾𝐾 yordamida esa ikkinchi shifrmatndan ochiq matnni hisoblaydi:
𝐶𝐶
2
: 101 001 010 111
Taxminiy
𝐾𝐾: 001 011 010 111
Taxminiy
𝑃𝑃
2
: 100 010 000 100
L
I
E
L
Hisoblangan kalit
𝐾𝐾 ikkinchi ochiq matn 𝑃𝑃
2
uchun mos bo’lmagani sababli,
hujumchi taxmin qilgan birinchi ochiq matni
𝑃𝑃
1
ni noto’g’riligini biladi. Shu tarzda
hujumchi qachonki birinchi ochiq matnni
𝑃𝑃
1
= 𝐿𝐿𝐿𝐿𝐾𝐾𝐿𝐿 tarzida taxmin qilsa, ikkinchi
ochiq matnni to’g’ri
𝑃𝑃
2
= 𝐾𝐾𝐿𝐿𝐾𝐾𝐿𝐿 topa oladi.
|