Блок шифрүүдийн аюулгүй байдал нь төөрөгдөл, тархалтын үйлдлүүдийн давталттай хэрэглээнд үндэслэдэг. Энэ үзэл баримтлалыг Клод Шеннон нууцлалын системийн харилцааны онолын үндсэн ажилдаа анх албан ёсоор гаргаж, статистик болон бүтцийн халдлагыг таслан зогсоохын тулд криптографийн системд төөрөгдөл, тархалт зайлшгүй шаардлагатайг тодорхойлсон. Эдгээр үйлдлүүдийг яагаад олон үе шаттайгаар хийх шаардлагатайг, мөн тэдгээр нь хоорондоо хэрхэн уялдаж байгааг ойлгох нь Өгөгдлийн Шифрлэлтийн Стандарт (DES) болон Нарийвчилсан Шифрлэлтийн Стандарт (AES) зэрэг орчин үеийн блок шифрүүдийн дизайн, аюулгүй байдлыг үнэлэхэд чухал ач холбогдолтой юм.
Төөрөгдөл ба тархалт: тодорхойлолт ба үүрэг
Төөрөгдөл нь шифр текст болон түлхүүрийн хоорондын харилцааг аль болох төвөгтэй болгохыг эрмэлздэг. Энэ нь ихэвчлэн шугаман бус орлуулалтыг (жишээлбэл, DES ба AES дахь S-хайрцаг) ашиглан энгийн текстийн статистик бүтцийг далдлах замаар хийдэг. Энэ зураглал нь шугаман бус, төвөгтэй байх тусам халдагчид олон энгийн текст-шифр текстийн хосуудад хандах эрхтэй байсан ч түлхүүрийн талаарх мэдээллийг олж авахад хэцүү болно.
Харин Diffusion нь энгийн текстийн бит бүрийн нөлөөг олон шифр текстийн битүүдэд түгээх зорилготой бөгөөд ингэснээр нэг оролтын битийн өөрчлөлт нь олон гаралтын битэд өөрчлөлт ороход хүргэдэг. Энэ шинж чанар нь шифрлэгдсэн текстээр дамжуулан энгийн текстийн статистик шинж чанаруудыг задалж, халдагчдад давтамжийн шинжилгээ эсвэл үүнтэй төстэй аргуудаар хэв маягийг ашиглах боломжгүй болгодог. Тархалтыг ихэвчлэн сэлгэн залгалт, битийн XOR эсвэл матрицын үржүүлэх зэрэг шугаман холих үйлдлүүдээр хийдэг (AES-ийн MixColumns үйлдлийн адил).
Давталттай блок шифрүүдийн бүтэц
Ихэнх блок шифрүүд нь давталттай шифр хэлбэрээр хийгдсэн байдаг бөгөөд аюулгүй байдлын өндөр түвшинд хүрэхийн тулд энгийн дугуй функцийг олон удаа ашигладаг гэсэн үг юм. Дугуй функц нь ихэвчлэн төөрөгдөл (жишээ нь, S-box програмуудаар дамжуулан) болон тархалт (жишээ нь, солих эсвэл холих үе шатууд) хоёуланг нь хослуулдаг. Олон тооны тойргийг ашиглах үндэслэл нь төөрөгдөл, тархалтын нэг хэрэглээ нь энгийн текст, шифр текст, түлхүүрийн хоорондох бүх бүтцийн харилцааг бүрхэг болгоход хангалтгүй юм. Дугуй бүр нь эдгээр харилцааны нарийн төвөгтэй байдлыг аажмаар нэмэгдүүлж, хэд хэдэн тойргийн дараа л шифр нь мэдэгдэж буй криптоаналитик халдлагын эсрэг хүссэн аюулгүй байдлын түвшинд хүрдэг.
Жишээлбэл, AES шифрийг авч үзвэл шифрлэлтийн үе бүр нь дараах үндсэн алхмуудаас бүрдэнэ.
1. Дэд байт (төөрөгдөл): Төрийн матриц дахь байт бүрийг шугаман бус S-хайрцагны дагуу өөр байтаар сольж, шугаман бус байдлыг нэвтрүүлдэг.
2. ShiftRows (тархалт): Төлөвийн матрицын мөрүүд нь мөчлөгт шилжиж, байтуудыг өөр багана руу шилжүүлж, утгуудыг хооронд нь холих ажлыг хөнгөвчилдөг.
3. Холимог багана (тархалт): Төгсгөлтэй талбарт матрицын үржүүлгийн аргыг ашиглан төлөвийн багануудыг хольж, оролтын байт бүрийн нөлөөг цааш түгээнэ.
4. AddRoundKey (төөрөгдөл): Төрийн матрицыг үндсэн түлхүүрээс гаргаж авсан дэд түлхүүртэй нэгтгэж, тойрог бүрт түлхүүрийн хамаарлыг нэвтрүүлдэг.
Шифрийн үр нөлөө нь зөвхөн үйл ажиллагаа бүрийн хүч чадал төдийгүй эдгээр үйлдлүүдийг хэдэн удаа хийснээс хамаарна. AES эсвэл DES гэх мэт шифр дэх тойргийн тоог багасгах нь дифференциал болон шугаман криптоанализ зэрэг халдлагад өртөмтгий болгодог гэдгийг криптаналистууд нотолсон. Жишээлбэл, бүрэн хэмжээний AES-128 нь 10 тойрог ашигладаг бол зөвхөн 6 тойрогтой хувилбарууд нь зарим криптоаналитик аргуудад өртөмтгий байдаг.
Олон тооны тойргийн хэрэгцээ
Илүү тодорхой болгохын тулд зөвхөн нэг удаагийн төөрөгдөл, тархалтыг хэрэглэвэл юу болохыг анхаарч үзээрэй. Хүчтэй S-хайрцаг болон холигч давхаргыг ашигласан ч статистикийн хамаарал, хэв маяг хэвээр үлдэж болно. Халдагчид эдгээр үлдэгдэл хэв маягийг сонгосон энгийн эсвэл мэдэгдэж байгаа ил текстийн халдлагуудыг ашиглан ашиглаж болно. Олон тооны эргэлт нь түлхүүр болон энгийн текстийн бит бүрийн нөлөөг бүхэлд нь шифрлэх текстийг сайтар тарааж, ийм халдлагыг хийх боломжгүй болгодог.
"Нурсны нөлөө" гэсэн ойлголт энд гол байр суурь эзэлдэг. Хүчтэй шифр нь энгийн текстийг бага зэрэг өөрчлөхөд (нэг битийг эргүүлэх гэх мэт) шифр текстийн битийн тал орчим хувь нь өөрчлөгдөхийг баталгаажуулдаг бөгөөд энэ шинж чанарт хэд хэдэн төөрөгдөл, тархалтын дараа л хүрдэг. Орчин үеийн блок шифрүүдийн давталтын бүтэц нь энэхүү эффектийг нэмэгдүүлэхийн тулд тусгайлан бүтээгдсэн бөгөөд шифрийг оролт-гаралтын харилцааг хянахад тулгуурласан халдлагад тэсвэртэй болгодог.
Жишээ нь: DES болон AES
Түүхэн DES шифр нь энэ зарчмыг сайн харуулсан. DES нь Feistel сүлжээний бүтцэд 16 тойрог ашигладаг бөгөөд тойрог бүр нь тэлэлт, S-box орлуулалт (төөрөгдөл), пермутаци (тархалт) зэргээс бүрддэг. Өргөн цар хүрээтэй криптоанализ нь 16-аас цөөн тойрог ашиглах нь сул тал руу хөтөлдөг болохыг харуулсан; дифференциал криптоанализ нь цөөн тойрогтой хувилбаруудын эсрэг үр дүнтэй байдаг. Дизайнерууд криптоанализ дахь дэвшлийн эсрэг аюулгүй байдлыг хангах үүднээс 16 үе шатыг сонгосон нь олон давталтын ач холбогдлыг онцолсон.
Хэдэн арван жилийн дараа зохиогдсон AES нь түлхүүрийн хэмжээнээс хамааран 10, 12 эсвэл 14 эргэлтийг ашигладаг (тус тус бүр 128, 192 эсвэл 256 бит). Тойрог бүр нь SubBytes, ShiftRows, MixColumns алхмуудаар дамжуулан төөрөгдөл, тархалтын хосолсон нөлөөг агуулдаг. Аюулгүй байдал, гүйцэтгэлийг тэнцвэржүүлэхийн тулд криптоаналитик үр дүнд үндэслэн тойргийн тоог анхааралтай сонгосон.
Үйл ажиллагааны горим ба тэдгээрийн хамаарал
Блок шифрүүдийн дотоод аюулгүй байдал нь олон удаагийн төөрөгдөл, тархалтаар тодорхойлогддог бол үйл ажиллагааны горим (жишээлбэл, ECB, CBC, CFB, OFB, CTR) нь блок шифрийг нэг блокоос том хэмжээтэй өгөгдөлд хэрхэн ашиглахыг тодорхойлдог. Өгөгдсөн горим дахь блок шифрийн аюулгүй байдлын шинж чанарууд нь блок шифрийн халдлагыг эсэргүүцэх чадвараас үндсэндээ хамаардаг бөгөөд энэ нь эргээд олон үе шатанд төөрөгдөл, тархалтыг хэрхэн гүйцэлдүүлж байгаагаас шалтгаална. Хэрэв үндсэн блокийн шифр сул байвал (жишээлбэл, хэт цөөхөн тойрогтой) ямар ч үйлдлийн горим энэ дутагдлыг нөхөж чадахгүй.
Cryptanalytic Attacks and Rounds
Хэд хэдэн криптоаналитик халдлага нь блок шифр дэх төөрөгдөл, тархалт хангалтгүй байдлыг ашигладаг. Жишээлбэл, дифференциал криптоанализ нь энгийн текстийн ялгаа нь шифрлэгдсэн текстийн ялгаанд хэрхэн нөлөөлж байгааг судалдаг. Хэрэв шифр нь оролтын зөрүүг хангалттай хуваарилаагүй бол халдагч эдгээр ялгаа хэрхэн тархаж байгааг таамаглаж, түлхүүрийг сэргээхэд энэ мэдлэгийг ашиглаж болно. Үүний нэгэн адил шугаман криптоанализ нь энгийн текст, шифрлэгдсэн текст болон түлхүүр битүүдийн хооронд шугаман ойролцоо утгыг эрэлхийлдэг. Эдгээр довтолгооны үр нөлөө нь тойргийн тоо нэмэгдэх тусам буурдаг бөгөөд хэрэв тойрог бүр нь будлиан, тархалтыг үр дүнтэй хэрэгжүүлдэг.
Тодруулбал, 8 тойрог бүхий DES (стандарт тоон тал) нь дифференциал криптоанализд өртөмтгий байдаг боловч 16 тойрогтой бол бүх тойрогт ашигтай дифференциал мөрийг тараах магадлал маш бага болдог. Энэ нь давталтын бүтэц, ялангуяа тойргийн тоо нь практик аюулгүй байдалд хүрэх үндэс суурь гэдгийг харуулж байна.
Дизайн солилцоо
Шифр дизайнерууд гүйцэтгэлийн шаардлагын эсрэг тойргийн тоог тэнцвэржүүлэх ёстой. Илүү олон эргэлт нь ерөнхийдөө илүү аюулгүй байдлыг илэрхийлдэг боловч илүү их тооцооллын зардал юм. Туршилтын тоог ихэвчлэн дизайн хийх үеийн хамгийн сайн мэддэг халдлагаас дээгүүр аюулгүй байдлын хязгаарыг хангахын тулд сонгодог бөгөөд криптоанализ дахь ирээдүйн дэвшил нь энэ маржийг эвдэж болзошгүй гэж найдаж байна. Энэхүү консерватив арга нь шифрийг хүлээгдэж буй ашиглалтын хугацаандаа аюулгүй байлгах боломжийг олгодог.
Математик үндэслэл
Онолын үүднээс авч үзвэл, давтагдсан блок шифрийн загварыг "давтлагдсан бүтээгдэхүүний шифр" загварын линзээр харж болно. Тодорхой таамаглалын дагуу олон тооны сул шифрүүдийн найрлага нь (тус бүр нь сул төөрөгдөл ба/эсвэл тархалтыг хэрэгжүүлдэг) бүрэлдэхүүн хэсгүүд нь хангалттай бие даасан, тойргийн тоо их байх тохиолдолд хүчтэй ерөнхий шифрийг гаргаж чадна гэдгийг харуулсан. Энэ нь практик шифр дизайн дахь төөрөгдөл, тархалтад давтагдах хандлагыг зөвтгөдөг.
Практик жишээнүүд
Сургамжтай жишээ бол AES-ийн ашигладаг орлуулах-орлуулах сүлжээ (SPN) бүтэц юм. SPN-д энгийн текст нь орлуулалт (төөрөгдөл) болон солих (тархалт) давхаргын ээлжлэн дамждаг. Хэд хэдэн тойргийн дараа гаралтын бит бүр нь шугаман бус байдлаар оролтын бит бүрээс хамаарна. Энэ өмч нь нэг дугуйгаар хүрч чадахгүй; Энэ нь олон тойргийн хуримтлагдсан нөлөө бөгөөд шифр текстийн бит бүр нь энгийн текст болон түлхүүр бүрийн нийлмэл функц бөгөөд бүрэн тархалт гэж нэрлэгддэг шинж чанар юм.
DES-д ашигласан Feistel сүлжээ нь орлуулалт болон орлуулалтыг хослуулсан дугуй функцийг давталттайгаар ашигласнаар ижил төстэй аюулгүй байдлыг хангадаг. Бөөрөнхий функц нь өөрөө урвуу эсвэл шугаман биш гэж үзвэл ийм бүтээн байгуулалтын хамгаалалт нь тойргийн тоо нэмэгдэх тусам нэмэгддэг.
Дүгнэлт: Давталтын аюулгүй байдлын хамаарал
Блок шифрүүдийн хүч чадал нь төөрөгдөл, тархалтын үйлдлүүдийг давтан хэрэглэхтэй нарийн холбоотой байдаг. Орчин үеийн шифрүүд нь энгийн текст эсвэл түлхүүрийн статистикийн үлдэгдэл хамаарлыг арилгах, шифрлэгдсэн текстийн бит бүрийг энгийн текст болон түлхүүрийн бит бүрээр нөлөөлөхийн тулд хангалттай тооны тойргоор бүтээгдсэн. Энэхүү давтагдах үйл явц нь зөвхөн хэрэгжилтийн дэлгэрэнгүй мэдээлэл биш, харин шифрийн аюулгүй байдлын үндсэн зарчим юм. Аюулгүй байдлыг хангах үүднээс өргөн цар хүрээтэй крипто-анализ дээр үндэслэн тойргийн тоог сонгож, шинэ халдлага гарч ирэх үед үе үе дахин үнэлдэг. Практик болон онолын хувьд блок шифрүүдийн аюулгүй байдал нь төөрөгдөл, тархалтын үйлдлүүдийг олон удаа хослуулахаас ихээхэн хамаардаг.
Сүүлийн үеийн бусад асуулт, хариулт Блок шифрийн хэрэглээ:
- Шенноны хэлснээр блок шифрт юу багтах ёстой вэ?
- Тархалт гэдэг нь шифрлэгдсэн текстийн нэг бит нь олон битийн энгийн текстэд нөлөөлдөг гэсэн үг үү?
- ECB горим нь том оролтын энгийн текстийг дараагийн блокуудад задалдаг уу
- Бид хэш функц эсвэл MAC үүсгэхийн тулд блок шифрийг ашиглаж болох уу?
- OFB горимыг түлхүүр дамжуулагч болгон ашиглаж болох уу?
- Шифрлэлт нь тодорхойлогч байж болох уу?
- Үйл ажиллагааны горимууд юу вэ?
- ECB горим нь энгийн блок шифрүүдэд юу хийдэг вэ?
- PSRNG-г блок шифрээр хийж болох уу?
- MAC-ийг блок шифрээр барьж болох уу?
Илүү олон асуулт, хариултыг блок шифрийн хэрэглүүрээс үзнэ үү

