Initialization Vectors (IVs) нь криптографийн салбарт, ялангуяа урсгалын шифр, санамсаргүй тоо, нэг удаагийн дэвсгэртийн үндсэн ойлголт юм. Тэд шифрлэгдсэн мэдээллийн аюулгүй байдал, бүрэн бүтэн байдлыг хангахад чухал үүрэг гүйцэтгэдэг. Энэхүү дэлгэрэнгүй тайлбар нь IV-ийн мөн чанар, зорилго, хэрэглээг авч үзэх бөгөөд тэдгээрийн криптографийн систем дэх ач холбогдлын талаар иж бүрэн ойлголт өгөх болно.
Эхлүүлэх вектор нь шифрлэлтийн процессыг эхлүүлэхийн тулд нууц түлхүүртэй хамт хэрэглэгддэг санамсаргүй эсвэл псевдо санамсаргүй утга юм. IV-ийн гол зорилго нь ижил түлхүүрээр шифрлэгдсэн ижил энгийн текстүүд өөр өөр шифрлэгдсэн текстийг гаргахад оршино. Энэ нь өгөгдлийн нууцлал, аюулгүй байдлыг хангахад нэн чухал бөгөөд энэ нь халдагчдыг шифрлэгдсэн мэдээллийн талаархи хэв маягийг гаргах эсвэл ойлголттой болохоос сэргийлдэг.
Урсгал шифрүүдэд IV кодыг шифрийн дотоод төлөвийг эхлүүлэхэд ашигладаг. Урсгалын шифрүүд нь энгийн текстийг нэг бит эсвэл байтаар шифрлэж, шифрлэх текстийг үүсгэхийн тулд энгийн тексттэй XOR-ээр хийгдсэн түлхүүр урсгалыг үүсгэдэг. IV нь ижил түлхүүр ашиглаж байсан ч гэсэн шифрлэлтийн сесс бүрт түлхүүрийн урсгал нь өвөрмөц байхыг баталгаажуулдаг. Энэ өвөрмөц байдал нь маш чухал бөгөөд учир нь ижил товчлуурын урсгалыг хэд хэдэн энгийн текстэд ашигласан бол халдагч XOR үйлдлийн шинж чанарыг ашиглан энгийн текстийг сэргээх боломжтой.
Онолын хувьд хугарашгүй шифрлэлтийн схем болох нэг удаагийн дэвсгэр нь мөн санамсаргүй байдлын үзэл баримтлалд тулгуурладаг. Нэг удаагийн дэвсгэр дээр түлхүүр нь энгийн текст шиг урт битүүдийн санамсаргүй дараалал юм. Шифр текстийг үүсгэхийн тулд энгийн текстийн бит бүрийг түлхүүрийн харгалзах битээр XOR болгосон. Нэг удаагийн дэвсгэрийн аюулгүй байдал нь түлхүүр нь үнэхээр санамсаргүй бөгөөд зөвхөн нэг удаа ашиглагдахаас шалтгаална. Нэг удаагийн дэвсгэрт нь IV-г тодорхой ашигладаггүй ч түлхүүр дэх санамсаргүй байдлын зарчим нь бусад криптографийн систем дэх IV-ийн үүрэгтэй адил юм.
IV-ийн хэрэглээ нь зөвхөн дамжуулалтын шифр болон нэг удаагийн дэвсгэртээр хязгаарлагдахгүй. Тогтмол хэмжээтэй блокуудад өгөгдлийг шифрлэдэг блок шифрүүд нь Cipher Block Chaining (CBC) болон Counter (CTR) зэрэг зарим үйлдлийн горимд IV-г ашигладаг. CBC горимд IV нь шифрлэлтийн өмнө эхний энгийн текстийн блокоор XOR-ээр хийгдсэн бөгөөд дараагийн энгийн текстийн блок бүр өмнөх шифрлэгдсэн текстийн блоктой XOR-оор хийгдсэн байдаг. Энэхүү гинжлэх процесс нь шифрлэлтийн сесс бүрт IV нь өвөрмөц байх тохиолдолд ижил энгийн текст блокууд өөр өөр шифр текстийн блокуудыг үүсгэдэг болохыг баталгаажуулдаг. CTR горимд IV нь блок бүрт нэмэгддэг тоолуур болгон ашиглагдаж, түлхүүрийн урсгалын өвөрмөц байдлыг баталгаажуулдаг.
IV-ийг бий болгох, удирдах нь криптографийн системийн аюулгүй байдалд чухал үүрэг гүйцэтгэдэг. Халдагчид мессежийн шифрийг тайлах эсвэл хуурамчаар үйлдэхийн тулд өмнө нь барьж авсан IV-г дахин ашигладаг давтагдах халдлага гэх мэт халдлагаас урьдчилан сэргийлэхийн тулд IV нь өвөрмөц бөгөөд урьдчилан таамаглах боломжгүй байх ёстой. IV үүсгэх хэд хэдэн арга байдаг бөгөөд үүнд криптографийн аюулгүй санамсаргүй тоо үүсгэгч (CSPRNG) ашиглах эсвэл nonce (нэг удаа ашигласан тоо) болон бусад параметрүүдийн хослолоос IV-ийг гаргаж авах боломжтой.
Жишээлбэл, CBC горимд дэвшилтэт шифрлэлтийн стандарт (AES) дахь IV-г ашиглах талаар авч үзье. Бидэнд "HELLO WORLD" гэсэн энгийн мессеж, нууц түлхүүр байна гэж бодъё. Энэ мессежийг шифрлэхийн тулд бид эхлээд санамсаргүй IV үүсгэдэг. IV-ийг "12345678" гэж үзье. Шифрлэлтийн процесс дараах байдлаар явагдана.
1. Энгийн текст болон IV-ийг хоёртын формат руу хөрвүүлнэ.
2. IV-тэй энгийн текстийн эхний блокийг XOR.
3. Үр дүнг AES алгоритм болон нууц түлхүүр ашиглан шифрлэнэ үү.
4. Өмнөх шифрлэгдсэн текстийн блоктой шууд текстийн дараагийн блокийг XOR.
5. Үр дүнг шифрлээд бүх блокуудад үйл явцыг давт.
Шууд текст болон түлхүүр нь ижил хэвээр байсан ч үүссэн шифр текст нь өвөрмөц IV бүрийн хувьд өөр байх болно. Энэ нь шифрлэгдсэн мессежийг найдвартай, крипто-анализд тэсвэртэй гэдгийг баталгаажуулдаг.
Хэдийгээр IV нь шифрлэгдсэн мэдээллийн аюулгүй байдлыг хангахад зайлшгүй шаардлагатай боловч тэдгээрийг нууцлах шаардлагагүй гэдгийг анхаарах нь чухал юм. IV нь нууцлалаас илүү өвөрмөц, санамсаргүй байдлыг хангах зорилготой тул шифрлэгдсэн текстийн хамт дамжуулж болно. Гэсэн хэдий ч, IV-ийг өөрчлөх нь буруу шифрлэлтийг тайлж, аюулгүй байдлын эмзэг байдалд хүргэж болзошгүй тул IV-ийг хөндлөнгийн оролцооноос хамгаалах ёстой.
Практик хэрэглээнд IV үеийн аргыг сонгох, түүний менежмент нь криптографийн системийн тусгай шаардлагаас хамаардаг. Жишээлбэл, TLS (Transport Layer Security) гэх мэт аюулгүй харилцааны протоколуудад сүлжээгээр дамжуулж буй өгөгдлийн аюулгүй байдлыг хангахын тулд сесс бүрт IV-г үүсгэдэг. Файлын шифрлэлтэд зөвшөөрөлгүй хандалтаас сэргийлж, мэдээллийн бүрэн бүтэн байдлыг хадгалахын тулд файл эсвэл өгөгдлийн блок бүрт өвөрмөц IV үүсгэнэ.
Дүгнэж хэлэхэд, эхлүүлэх векторууд нь шифрлэлтийн үйл явцын санамсаргүй байдал, өвөрмөц байдлыг хангадаг криптографийн системийн чухал бүрэлдэхүүн хэсэг юм. Тэд ижил түлхүүрээр шифрлэгдсэн ижил энгийн текстүүд өөр өөр шифрлэгдсэн текстийг гаргаж, мэдээллийн аюулгүй байдал, бүрэн бүтэн байдлыг сайжруулдаг. Төрөл бүрийн криптографийн программ дахь шифрлэгдсэн мэдээллийн нууцлал, аюулгүй байдлыг хангахад IV-ийг зөв үүсгэх, удирдах, ашиглах нь чухал юм.
Сүүлийн үеийн бусад асуулт, хариулт EITC/IS/CCF сонгодог криптографийн үндэс:
- Криптографийг криптологи, криптологийн нэг хэсэг гэж үздэг үү?
- 4-тэй тэнцэх түлхүүр бүхий шилжилтийн шифр шифрлэгдсэн текст дэх d үсгийг h үсгээр солих уу?
- ECB горим нь том оролтын энгийн текстийг дараагийн блокуудад задалдаг уу
- Орлуулах шифрийн эсрэг үсгийн давтамжийн анализын ижил шифрийн тексттэй ижил энгийн зураглал хийх
- EEA гэж юу вэ?
- Харгис хүчний довтолгоо нь үргэлж нарийн хайлт болдог уу?
- RSA шифрээр Алис Боб руу илгээсэн мессежийг шифрлэхийн тулд Бобын нийтийн түлхүүр хэрэгтэй юу?
- Бид хэш функц эсвэл MAC үүсгэхийн тулд блок шифрийг ашиглаж болох уу?
- RSA шифрт нийтийн болон хувийн түлхүүр хэдэн хэсэгтэй вэ?
- OFB горимыг түлхүүр дамжуулагч болгон ашиглаж болох уу?
Бусад асуулт, хариултыг EITC/IS/CCF Сонгодог криптографын үндсүүдээс үзнэ үү