Потоковый шифр против блочного шифра | Государственный шифр против блочного шифра
В криптографии Потоковые шифры и Блочные шифры - это два алгоритма шифрования / дешифрования, которые принадлежат семейству шифров с симметричным ключом. Обычно шифр принимает на вход простой текст и производит зашифрованный текст на выходе. Блочные шифры шифруют блок битов фиксированной длины с использованием неизменного преобразования. Потоковые шифры шифруют потоки битов различной длины и используют различное преобразование для каждого бита.
Что такое потоковый шифр?
Потоковые шифры принадлежат к семейству шифров с симметричным ключом. Потоковые шифры объединяют биты открытого текста с потоком псевдослучайных битов шифра с использованием операции XOR (исключающее ИЛИ). Потоковые шифры шифруют простые текстовые цифры по одной с различными преобразованиями для последовательных цифр. Поскольку шифрование каждой цифры зависит от текущего состояния механизма шифрования, потоковые шифры также известны как шифры состояния. Обычно одиночные биты / биты используются как одиночные цифры. Чтобы избежать проблем с безопасностью, следует убедиться, что одно и то же начальное состояние не используется более одного раза. Наиболее широко используемый потоковый шифр - RC4.
Что такое блочный шифр?
Блочный шифр - это еще один шифр с симметричным ключом. Блочные шифры работают с блоками (группами битов) фиксированной длины. Блочные шифры используют фиксированное (неизменное) преобразование для всех цифр в блоке. Например, когда в качестве входных данных механизму блочного шифрования предоставляется x-битовый блок обычного текста (вместе с секретным ключом), он создает соответствующий x-битовый блок зашифрованного текста. Фактическое преобразование зависит от секретного ключа. Точно так же алгоритм дешифрования восстанавливает исходный x-битовый блок открытого текста, используя x-битовый блок зашифрованного текста и указанный выше секретный ключ в качестве входных данных. Если входное сообщение слишком длинное по сравнению с размером блока, оно будет разбито на блоки, и эти блоки будут (индивидуально) зашифрованы с использованием одного и того же ключа. Однако, поскольку используется тот же ключ,каждая повторяющаяся последовательность в открытом тексте становится такой же повторяющейся последовательностью в зашифрованном тексте, и это может вызвать проблемы с безопасностью. Популярные блочные шифры - DES (стандарт шифрования данных) и AES (расширенный стандарт шифрования).
В чем разница между потоковым шифром и блочным шифром?
Хотя как потоковые шифры, так и блочные шифры принадлежат к семейству симметричных шифров, есть некоторые ключевые различия. Блочные шифры шифруют блоки битов фиксированной длины, в то время как потоковые шифры комбинируют биты открытого текста с потоком псевдослучайных битов шифра с использованием операции XOR. Несмотря на то, что блочные шифры используют одно и то же преобразование, потоковые шифры используют различные преобразования в зависимости от состояния механизма. Потоковые шифры обычно выполняются быстрее, чем блочные шифры. С точки зрения аппаратной сложности потоковые шифры относительно менее сложны. Потоковые шифры являются типичным предпочтением по сравнению с блочными шифрами, когда открытый текст доступен в различных количествах (например, для защищенного Wi-Fi-соединения), потому что блочные шифры не могут работать непосредственно с блоками короче размера блока. Но иногда,разница между потоковыми шифрами и блочными шифрами не очень ясна. Причина в том, что при использовании определенных режимов работы блочный шифр может использоваться в качестве потокового шифра, позволяя ему шифровать наименьшую доступную единицу данных.