2.4. Ma’lumot yaxlitligini ta’minlash usullari
2.4.1. Simmetrik shifrlash algoritmlaridan ma’lumot yaxlitligini tekshirish
Yuqorida har ikkala shifrlash algoritmidan (simmetrik va ochiq kalitli) faqat
ma’lumotni konfidensiyalligini ta’minlashda foydalanish haqida aytib o’tildi.
Quyida esa ulardan ma’lumotni yaxlitligini tekshirishda foydalanish masalasi bilan
tanishib o’tiladi.
2.1-paragrafda xesh – funksiyadan foydalanib ma’lumotni yaxlitligini
tekshirishning sodda usuli keltirilgan. Biroq, ushbu usulda xavfsizlik muammosi
jiddiy bo’lgani bois, undan amalda foydalanilmaydi. Ya’ni, 8-rasmda keltirilgan
usulda hujumchi tomonidan faqat ma’lumot o’zgartirilgan holda yaxlitlikni
tekshirish imkoniyati mavjud. Biroq, hujumchi ma’lumot xesh qiymatini
almashtirish orqali foydalanuvchini osonlik bilan ma’lumot yaxlitligiga ishontirishi
mumkin. Buning asosiy sababi, ma’lumot xesh qiymatini hosil qilishda
hujumchining noma’lum biror axborotdan foydalanilmaganligidir.
Ushbu muammoni bartaraf etuvchi –
xabarlarni autentifikasiyalash kodi
(message authentication code, MAC)
tizimlari mavjud bo’lib, unga ko’ra biror
maxfiy kalit asosida ma’lumotning xesh qiymati hisoblanadi (18-rasm).
MAC
=?
MAC
MAC
Калит
Калит
Маълумот
Маълумот
Жўнатувчи
Қабул қилувчи
18-rasm. MAC tizimi
MAC tizimlarini ishlab chiqishda blokli shifrlardan ham foydalanish mumkin.
Buning uchun blokli shifrni CBC rejimida foydalanish va eng oxirgi shifrmatn
56
blokini olishning o’zi yetarli (qolganlari tashlab yuboriladi). Ushbu oxirgi shifrmatn
bloki
MAC
sifatida xizmat qiladi. Mazkur holda
𝑁𝑁
blokdan iborat bo’lgan ma’lumot
bloklari,
𝑃𝑃
0
,
𝑃𝑃
1
,
𝑃𝑃
2
, … ,
𝑃𝑃
𝑁𝑁−1
uchun MAC quyidagi formula orqali hisoblanadi [13]:
𝐶𝐶
0
=
𝐿𝐿
(
𝑃𝑃
0
⨁𝐿𝐿𝐼𝐼
,
𝐾𝐾
),
𝐶𝐶
1
=
𝐿𝐿
(
𝑃𝑃
1
⨁𝐶𝐶
0
,
𝐾𝐾
), … ,
𝐶𝐶
𝑁𝑁−1
=
𝐿𝐿
(
𝑃𝑃
𝑁𝑁−1
⨁𝐶𝐶
𝑁𝑁−2
,
𝐾𝐾
) =
𝑀𝑀𝑆𝑆𝐶𝐶
.
Buning uchun har ikkala tomonda
𝐿𝐿𝐼𝐼
va
𝐾𝐾
ni bo’lishining o’zi yetarli.
Faraz qilaylik, A va B tomonlardan uzatilayotgan ma’lumotlar yaxlitligini
tekshirish talab etilgan bo’lsin (bu yerda ma’lumot konfidensialligini ta’minlash
masalasi qaralmagan). Bu holda A va B tomonlar orasida xavfsiz taqsimlangan
𝐾𝐾
kalit yordamida A tomon
𝑀𝑀𝑆𝑆𝐶𝐶
ni hisoblaydi va ma’lumotni
𝐿𝐿𝐼𝐼
ga qo’shib B ga
uzatadi. B tomon ma’lumot,
𝐾𝐾
va
𝐿𝐿𝐼𝐼
yordamida
𝑀𝑀𝑆𝑆𝐶𝐶
ni hisoblaydi. Agar
hisoblangan
𝑀𝑀𝑆𝑆𝐶𝐶
qabul qilingan
𝑀𝑀𝑆𝑆𝐶𝐶′
ga teng bo’lsa, ma’lumot o’zgartirilmagan
aks holda o’zgartirilgan deb topiladi.
Qanday qilib, ikkita hisoblangan
𝑀𝑀𝑆𝑆𝐶𝐶
qiymatlar turlicha bo’lishi mumkin?
Faraz qilaylik, A tomon quyidagilarni B ga yuborgan bo’lsin:
𝐿𝐿𝐼𝐼
,
𝑃𝑃
0
,
𝑃𝑃
1
,
𝑃𝑃
2
,
𝑃𝑃
3
,
𝑀𝑀𝑆𝑆𝐶𝐶
.
Faraz qilaylik, hujumchi birinchi blok
𝑃𝑃
1
ni o’zgartirdi (u
𝑄𝑄
deb belgilansin),
bu holda B tomon MAC ni quyidagicha hisoblaydi:
𝐶𝐶
0
=
𝐿𝐿
(
𝑃𝑃
0
⨁𝐿𝐿𝐼𝐼
,
𝐾𝐾
),
𝐶𝐶́
1
=
𝐿𝐿
(
𝑄𝑄⨁𝐶𝐶
0
,
𝐾𝐾
),
𝐶𝐶́
2
=
𝐿𝐿�𝑃𝑃
2
⨁𝐶𝐶́
1
,
𝐾𝐾�
,
𝐶𝐶́
3
=
𝐿𝐿�𝑃𝑃
3
⨁𝐶𝐶́
2
,
𝐾𝐾�
= "
𝑀𝑀𝑆𝑆𝐶𝐶
"
≠ 𝑀𝑀𝑆𝑆𝐶𝐶
.
Ya’ni, ochiq matndagi bir blokning o’zgarishi keyingi barcha bloklarga ta’sir
qiladi va buning natijasida shifrmatn bloklari turlicha bo’ladi. Ma’lumki, CBC
rejimida shifrmatndagi bir blok o’zgarishi deshifrlanganda faqat 2 ta ochiq matn
blokiga ta’sir qiladi. Biroq, ochiq matnning bir blokini o’zgarishi undan keyingi
barcha shifrmatn bloklariga ta’sir qiladi va bu MAC tizimlari uchun juda muhim.
Albatta, mazkur usul MAC tizimlarini yaratishning yagona usuli emas.
Quyida xesh funsiyalar asosida MAC tizimlarini yaratish bilan tanishib chiqiladi.
|