IV — Initialization Vector iborasining qisqartmasi bo‘lib, shifrlash algoritmini boshlang‘ich holat bilan ta’minlaydigan qiymat. IV odatda secret emas va ciphertext bilan birga saqlanishi mumkin. Uning asosiy vazifasi ayni kalit va bir xil plaintext qayta shifrlanganda natija doimo bir xil chiqmasligini ta’minlash yoki rejimning ichki holatini boshlashdir. IVga qo‘yiladigan tasodifiylik va noyoblik talabi shifrlash rejimiga qarab farq qiladi.
CBC rejimidagi IV
Cipher Block Chaining rejimida birinchi plaintext bloki shifrlashdan oldin IV bilan XOR qilinadi. Keyingi bloklar esa oldingi ciphertext blokiga bog‘lanadi. Bir xil key va plaintext bir xil IV bilan ishlatilsa, boshlang‘ich ciphertext bloklari ham bir xil chiqadi va ma’lumot naqshi oshkor bo‘lishi mumkin.
CBC IV faqat noyob emas, oldindan topib bo‘lmaydigan bo‘lishi ham kerak. Hujumchi keyingi IVni oldindan bilsa, tanlangan plaintext orqali birinchi bloklar orasidagi munosabatdan foydalanishi mumkin. IV kriptografik random generator bilan block size, AES uchun 16 byte uzunlikda yaratiladi. IVni ciphertext boshiga ochiq qo‘shish odatiy, chunki uning maxfiyligi talab etilmaydi.
CBC o‘zi yaxlitlik bermaydi. Tajovuzkor IVdagi bitni o‘zgartirsa, birinchi plaintext blokidagi tegishli bit nazoratli o‘zgaradi. Shu sababli CBC xavfsiz MAC bilan encrypt-then-MAC shaklida qo‘llanadi yoki zamonaviy AEAD rejimiga almashtiriladi.
GCM va nonce
AES-GCM hujjatlarida kirish qiymati ko‘pincha IV deb ataladi, amaliy tilda esa nonce nomi ishlatiladi. GCM uchun ayni key bilan IV takrorlanmasligi qat’iy talabdir. Bir xil key–IV juftligi takrorlansa, key stream qayta ishlatiladi va authentication kaliti haqida ma’lumot chiqib, soxta tag yaratishgacha olib kelishi mumkin.
96 bitlik IV GCMda maxsus samarali yo‘l bilan qayta ishlanadi. Uni random tanlash mumkin, lekin juda ko‘p xabar uchun collision ehtimoli birthday bound bo‘yicha hisoblanadi. Counterga asoslangan IV takrorlanmaslikni deterministik ta’minlashi mumkin, ammo restart, backupdan qaytish va bir nechta writer orasidagi koordinatsiya murakkabdir.
IV va salt
IV salt bilan bir xil vazifani bajarmaydi. Salt password KDFda bir xil paroldan turli keylar hosil qilish va precomputationni cheklash uchun ishlatiladi. IV esa tayyor encryption key ostida shifrlash instansiyasini farqlaydi. Shifrlangan fayl formatida salt ham, IV ham bo‘lishi mumkin: avval salt va KDF bilan key olinadi, keyin IV bilan data shifrlanadi.
IVni paroldan, timestampdan yoki filename’dan to‘g‘ridan-to‘g‘ri hisoblash talab etilgan unpredictability yoki uniquenessni bermasligi mumkin. IV generatsiyasi protokolning o‘ziga tegishli bo‘lib, “tasodifiy ko‘rinadi” degan taxmin bilan emas, rejimning standart talabiga muvofiq bajariladi.
Saqlash formati
Ciphertext konteyneri algoritm versiyasi, key ID, IV, ciphertext va authentication tagni aniq tartibda saqlaydi. IV uzunligini faqat qolgan byte’lardan taxmin qilish algoritm migratsiyasini qiyinlashtiradi. Format parseri uzunliklarni chegaralaydi va o‘zgartirilgan metadata’ni tag yoki associated data bilan himoyalaydi.
Key rotation IV hisoblagichini ham yangi key doirasida qayta boshlashi mumkin. Biroq bir keyning bir nechta server nusxasida ishlatilishi IV maydonini node’lar bo‘yicha ajratishni talab etadi. Random IV collision xavfi monitoring bilan emas, matematik limit va xabarlar soni orqali boshqariladi.
IV collisionini aniqlash har doim amaliy emas, chunki barcha tarixiy qiymatlarni markaziy saqlash qimmat. Dizayn collision ehtimolini boshidan matematik jihatdan yetarli past qiladi yoki deterministik allocation bilan takrorlanishni konstruktiv cheklaydi.
Bog‘liq tushunchalar
Nonce, AES-GCM, CBC mode, Ciphertext, Authentication tag, Salt, Block cipher