409
Eslatma, yangi
k bitli tasodifiy son, har bir blok uhun tanlash kerak bo’lsa. Keyin
jo’natuvchi,
c(1),
r(1),
c(2),
r(2),
c(3),
r(3) va h.k.larni jo’natadi. Qabul qiluvchi
c(
i) va
r(
i)
ni qabul qilganidan keyin,
m(i) = K
S
(c(i)+r(i) orqali oddiy matnni
hamma bloklarini qayta tiklaydi. Eslab qolish kerakki, garchi
r(
i) jo’natilsa, Trudi
buni aniqlab olgan taqdirda ham
K
S
kaliti ma’lum bo’lmagani uchun asl matnni
ochib ololmasligi mumkin. Agar ikki oddiy matn bloki –
m(
i) va
m(
j) bir xil bo’lsa
ham
c(
i) va
c(
j) farq qiladi.
Misol uchun 30.1-jadvalda keltirilgan 3 bitli blok shifrini muhokama
qilamiz.
Tasavvur qilamiz, oddiy matn
010010010 bo’lsin. Agar Alisa bu matnni
tasodifiy holatda shifrlasa, kodlangan matn
101101101 ko’rinishda bo’ladi. Agar
Trudi bu shifrli matnni ushlab olsa va uchta blok bir xil bo’lganligi
sababli u bu
uchta blok uchun bir xil shifr ishlatilganligiga aniq amin bo’ladi. Alisa tasodifiy
bloklarni
r(1)=001, r(2)=111 va
r(3)=100 ishlab chiqsa hamda yuqoridagi
texnikadan foydalanib
c(1)=100, c(2)=010 va
c(3)=000 matnni shifrladi deb
tasavvur qilaylik.
Eslab qolish kerakki, bu uchta shifrlangan bloklar turli xil
bo’ladi hatto oddiy matn bloklari bir xil bo’lsada. Keyin Alisa
c(1), r(1), c(2) va
r(2) formatni jo’natadi. So’ngra Bob
K
S
kalit yordamida oddiy matnni shifrlangan
matndan ajratib oladi.
Tasodifiy bo’lmagan holat orqali bitta muammoni hal qilish mumkin, ammo
bu boshqa muammoni keltirib chiqaradi. Masalan, Alisa oldin amalga oshirgani
kabi ko’plab bitlarni ikki martta uzatishga majbur bo’ladi. Albatta, har bir shifr
matni uchun, u tasodifiy bitlarni jo’natishi shart bu esa ikki martta o’tkazuvchanlik
qobiliyatini talab qiladi. Odatda blokli shifrlar uchun CBC (cipher block chaining)
nomli texnikadan foydalaniladi. Asosiy g’oya bu dastlabki xabar bilan faqat bitta
tasodifiy qiymatni jo’natish va keyin jo’natuvchi
va qabul qiluvchi ketma-ket
tasodifiy sonning o’rniga kodlangan bloklardan foydalanadi. CBC quyidagicha
amalga oshiriladi:
410
1. Xabarni kodlashdan oldin (yoki ma’lumot oqimini), jo’natuvchi IV
(initialization vector) nomli tasodifiy
k ni hosil qiladi. Jo’natuvchi ochiq
matnda qabul qiluvchiga IV ni jo’natadi.
2. Birinchi blok uchun, jo’natuvchi
m(1)+c(0) hisoblab chiqadi, IV bilan
ochiq matnni birinchi blokini hisoblaydi. Keyin u mos shifr blokiga ega
bo’lishi
uchun blokli shifr
algoritmi orqali ishlaydi, ya’ni
c(1)=K
S
(m(1)+c(0)). Jo’natuvchi qabul qiluvchiga kodlangan
c(1) blokni
jo’natadi.
3.
i- blok uchun, jo’natuvchi
c(i)=K
S
(m(i)+c(i+1)) dan shifr blokini hosil
qiladi.
Endi quyida bu usulni ko’rib chiqamiz. Birinchidan, qabul qiluvchi haqiqiy
xabarni qayta tiklash imkoniyatiga ega bo’ladi. Albatta, qabul qiluvchi
c(i) qabul
qilganida, u ega bo’lgan
s(i)=m(i)+c(i–1) ni
K
S
bilan shifrini oshadi. Qabul
qiluvchi shuningdek
c(i-1) bilganidan keyin, u
m(i)=s(i)+c(i–1) dan ochiq matn
blokiga ega bo’ladi. Ikkinchidan, xatto ikkita shifrli blok bir xil bo’lsa, mos
holatda matn shifri turlicha bo’ladi. Uchinchidan, garchi jo’natuvchi ochiq matnda
IV ni jo’natsa, matnni ushlab olgan istalgan buzg’unchi shifrli matnni blokini
shifrini oshib ololmaydi, sababi u maxfiy kalitni bilmaydi. Nihoyat, jo’natuvchi
faqat bitta blokni jo’natganida uzun xabarlar uchun o’tkazuvchanlik qobiliyatidan
foydalanish ham oshib ketadi.
Misol uchun, 8.1-jadvalda
keltirilganidek oddiy matn 010010010 va
IV=c(0)=001 bilan 3 bitli blokli shifr uchun shifr matnni aniqlaymiz. Jo’natuvchi
birinchidan
c(1)=K
S
(m(1)+c(0))=100 hisoblash uchun IVdan foydalanadi. Keyin
jo’natuvchi
c(2)=K
S
(m(2)+c(1))=K
S
(010+100)=000 va
c(3)=K
S
(m(3)+c(2)) =
K
S
(010+ 000)=101 hisoblaydi. O’quvchi aniqlashi kerakki, qabul qiluvchi IV va
K
S
ni biladi va original matnni qayta tiklay oladi.
CBC himoyalangan tarmoq protokollarini yaratishda muhim ketma-
ketliklarga ega. Uzatuvchidan qabul qiluvchiga IV taqsimlashda
protokol maxsus
411
mexanizm bilan ta’minlanadi. Biz quyidagi bo’limda bu masala bir nechta
protokollar uchun qanday amalga oshirilishini ko’rib chiqamiz.