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.