Поточен шифър срещу блок шифър | Държавен шифър срещу блок шифър
В криптографията поточните шифри и блоковите шифри са два алгоритма за криптиране / декриптиране, които принадлежат към семейството на симетрични ключови шифри. Обикновено шифърът взема обикновен текст като вход и създава шифров текст като изход. Блочните шифри криптират блок от битове с фиксирана дължина, използвайки непроменлива трансформация. Потоковите шифри криптират потоци от битове с различна дължина и използват различна трансформация на всеки бит.
Какво е поток шифър?
Stream ciphers belong to the family of symmetric key ciphers. Stream ciphers combine plain-text bits with a pseudorandom cipher bits stream with the use of XOR (exclusive-or) operation. Stream ciphers encrypt plain-text digits one at a time with varying transformations for successive digits. Because the encryption of each digit depends on the current state of the cipher engine, stream ciphers are also known as state ciphers. Typically, single bits/bites are used as single digits. To avoid security concerns, it should be made sure that the same starting state is not used more than once. Most widely used stream cipher is RC4.
What is a Block Cipher?
Блоковият шифър е друг симетричен ключов шифър. Блочните шифри работят върху блокове (групи битове) с фиксирана дължина. Блочните шифри използват фиксирана (непроменлива) трансформация за всички цифри в блока. Например, когато x-битов блок обикновен текст (заедно с таен ключ) се предоставя като вход към блоковия шифров механизъм, той генерира съответния x-битов блок от шифротекст. Действителната трансформация зависи от тайния ключ. По подобен начин алгоритъмът за дешифриране възстановява оригиналния x-битов блок от открит текст, използвайки x-битовия блок на шифротекста и горния секретен ключ като вход. В случай че входното съобщение е твърде дълго в сравнение с размера на блока, то ще бъде разделено на блокове и тези блокове ще бъдат (индивидуално) криптирани с помощта на същия ключ. Тъй като обаче се използва същият ключ,всяка повтаряща се последователност в обикновения текст се превръща в същата повтаряща се последователност в шифрования текст и това може да причини опасения за сигурността. Популярни блокови шифри са DES (Data Encryption Standard) и AES (Advanced Encryption Standard).
Каква е разликата между поточен шифър и блоков шифър?
Въпреки че както поточните шифри, така и блоковите шифри принадлежат към семейството на симетрични шифроващи шифри, има някои ключови разлики. Блочните шифри криптират блокове с фиксирана дължина, докато поточните шифри комбинират битове с обикновен текст с поток от псевдослучайни шифри, използвайки операция XOR. Въпреки че блоковите шифри използват една и съща трансформация, поточните шифри използват различни трансформации въз основа на състоянието на двигателя. Потоковите шифри обикновено се изпълняват по-бързо от блоковите шифри. По отношение на хардуерната сложност, поточните шифри са относително по-малко сложни. Потоковите шифри са типичното предпочитание пред блоковите шифри, когато обикновеният текст е наличен в различни количества (например за сигурна wifi връзка), тъй като блоковите шифри не могат да работят директно върху блокове, по-къси от размера на блока. Но понякога,разликата между поточните шифри и блоковите шифри не е много ясна. Причината е, че когато се използват определени режими на работа, блоков шифър може да се използва като поточен шифър, като му позволява да шифрова най-малката налична единица данни.