Stream Cipher vs Block Cipher | Төрийн шифр ба блок шифр
Криптографийн хувьд Stream ciphers болон Block ciphers нь тэгш хэмтэй түлхүүрийн шифрүүдийн бүлэгт хамаарах хоёр шифрлэлт/шифр тайлах алгоритм юм. Ихэвчлэн шифр нь энгийн текстийг оролт болгон авч, гаралт болгон шифр текстийг гаргадаг. Блок шифрүүд нь тогтмол урттай битийн блокуудыг өөрчлөгддөггүй хувиргалтыг ашиглан шифрлэдэг. Дамжуулалтын шифр нь янз бүрийн урттай битийн урсгалыг шифрлэж, бит бүрт өөр өөр хувиргалт ашигладаг.
Stream Cipher гэж юу вэ?
Усгалын шифр нь тэгш хэмт түлхүүрийн шифрүүдийн бүлэгт хамаарна. Урсгалын шифрүүд нь XOR (онцгой-эсвэл) үйлдлийг ашиглан энгийн текст битүүдийг псевдор санамсаргүй шифр бит урсгалтай хослуулдаг. Урсгалын шифр нь энгийн текстийн цифрүүдийг нэг нэгээр нь шифрлэж, дараалсан цифрүүдийн өөрчлөлтийг өөрчилдөг. Цифр бүрийн шифрлэлт нь шифрийн хөдөлгүүрийн одоогийн төлөвөөс хамаардаг тул урсгалын шифрийг мөн төлөвийн шифр гэж нэрлэдэг. Ихэвчлэн нэг бит/хазалтыг нэг оронтой тоо болгон ашигладаг. Аюулгүй байдлын асуудлаас зайлсхийхийн тулд ижил эхлэлийн төлөвийг нэгээс олон удаа ашиглахгүй байхыг анхаарах хэрэгтэй. Хамгийн өргөн хэрэглэгддэг дамжуулалтын шифр бол RC4.
Блок шифр гэж юу вэ?
Блок шифр нь өөр нэг тэгш хэмтэй түлхүүрийн шифр юм. Блок шифрүүд нь тогтмол урттай блокууд (битийн бүлэг) дээр ажилладаг. Блок шифрүүд нь блок дахь бүх цифрүүдэд тогтмол (хувирдаггүй) хувиргалтыг ашигладаг. Жишээлбэл, х-битийн блокийн энгийн текстийг (нууц түлхүүрийн хамт) блок шифрлэлтийн хөдөлгүүрт оруулга болгон өгөхөд энэ нь харгалзах х-бит шифрлэгдсэн текстийг үүсгэдэг. Бодит хувиргалт нь нууц түлхүүрээс хамаарна. Үүний нэгэн адил шифр тайлах алгоритм нь шифрлэгдсэн текстийн х битийн блок болон дээрх нууц түлхүүрийг оролт болгон ашиглан энгийн х битийн анхны блокыг сэргээдэг. Хэрэв оролтын мессеж нь блокийн хэмжээтэй харьцуулахад хэтэрхий урт байвал блокуудад хуваагдах бөгөөд эдгээр блокуудыг ижил түлхүүр ашиглан (тус тусад нь) шифрлэнэ. Гэсэн хэдий ч ижил түлхүүрийг ашигладаг тул энгийн текст дэх давтагдсан дараалал бүр нь шифр-текст дэх ижил давтагдсан дараалал болж хувирах бөгөөд энэ нь аюулгүй байдлын асуудал үүсгэж болзошгүй юм. Түгээмэл блок шифр нь DES (Өгөгдлийн шифрлэлтийн стандарт) ба AES (Advanced Encryption Standard) юм.
Stream Cipher болон Block Cipher хоёрын ялгаа нь юу вэ?
Хэдийгээр урсгал шифр болон блок шифр хоёулаа тэгш хэмтэй шифрлэлтийн шифрүүдийн гэр бүлд хамаарах боловч зарим гол ялгаанууд байдаг. Блок шифр нь битийн тогтмол урттай блокуудыг шифрлэдэг бол урсгал шифр нь XOR үйлдлийг ашиглан энгийн текстийн битүүдийг хуурамч санамсаргүй шифр битийн урсгалтай нэгтгэдэг. Хэдийгээр блок шифрүүд нь ижил хувиргалтыг ашигладаг ч урсгалын шифрүүд нь хөдөлгүүрийн төлөвөөс хамааран өөр өөр хувиргалтыг ашигладаг. Stream ciphers нь ихэвчлэн блок шифрээс илүү хурдан ажилладаг. Техник хангамжийн нарийн төвөгтэй байдлын хувьд урсгалын шифрүүд нь харьцангуй бага төвөгтэй байдаг. Блокийн шифр нь блокийн хэмжээнээс богино блок дээр шууд ажиллах боломжгүй тул энгийн текст янз бүрийн хэмжээгээр (жишээ нь, аюулгүй Wi-Fi холболт) байгаа үед блок шифрийг илүүд үздэг нь урсгал шифр юм. Гэхдээ заримдаа урсгал шифр болон блок шифр хоёрын ялгаа тийм ч тодорхой байдаггүй. Шалтгаан нь зарим үйлдлийн горимыг ашиглах үед блок шифр нь боломжтой хамгийн бага нэгж өгөгдлийг шифрлэх боломжийг олгож урсгал шифрийн үүрэг гүйцэтгэдэг.