Основное различие между блочным шифром и потоковым шифром заключается в том, что блочный шифр зашифровывает и дешифрует блок текста одновременно. С другой стороны, потоковый шифр шифрует и дешифрует текст, беря один байт текста за раз.
Сравнительная таблица
Основа для сравнения | Блочный шифр | Потоковый шифр |
---|---|---|
основной | Преобразует простой текст, беря его блок за раз. | Преобразует текст, беря один байт простого текста за раз. |
сложность | Простой дизайн | Комплекс сравнительно |
Количество использованных битов | 64 бит или больше | 8 бит |
Путаница и диффузия | Использует путаницу и диффузию | Полагается только на путаницу |
Используемые режимы алгоритма | ECB (электронная кодовая книга) CBC (цепочка блоков шифрования) | CFB (шифр обратной связи) OFB (обратная связь по выходу) |
обратимость | Перевернуть зашифрованный текст сложно. | Он использует XOR для шифрования, которое может быть легко преобразовано в обычный текст. |
Реализация | Feistel Cipher | Вернам Шифр |
Определение блочного шифра
Block Cipher принимает сообщение и разбивает его на блоки фиксированного размера и мгновенно преобразует один блок сообщения. Например, у нас есть сообщение в виде простого текста «STREET_BY_STREET», которое необходимо зашифровать. Используя bock-шифр, сначала нужно зашифровать «STREET», затем «_BY_» и, наконец, «STREET».
На практике общение происходит только в битах. Следовательно, STREET фактически означает двоичный эквивалент символа ASCII STREET. Впоследствии любой алгоритм шифрует их; результирующие биты преобразуются обратно в их эквивалент ASCII.
Очевидной проблемой, касающейся использования блочных шифров, является повторяющийся текст, для которого генерируется тот же шифр. Следовательно, это дало бы подсказку криптоаналитику, что облегчает поиск повторяющихся строк простого текста. В результате он может раскрыть все сообщение.
Чтобы преодолеть эту проблему, используется режим цепочки . В этом методе предыдущий блок зашифрованного текста смешивается с текущим блоком, так что из-за расплывчатого текста шифрования это позволяет избежать повторяющихся шаблонов блоков с одинаковым содержимым.
Определение потокового шифра
Stream Cipher обычно шифрует один байт сообщения в этот момент вместо использования блоков. Давайте возьмем пример, предположим , что исходное сообщение (простой текст) - это «голубое небо» в ASCII (то есть в текстовом формате). Когда вы конвертируете эти ASCII в эквивалентные двоичные значения, он выдаст выходные данные в форме 0 и 1. Пусть это будет переведено в 010111001.
Для шифрования и дешифрования используется генератор псевдослучайных битов, в который загружаются ключ и простой текст. Генератор псевдослучайных битов создает поток 8-битных чисел, которые кажутся случайными и известны как поток ключей . Пусть клавиша ввода - 100101011. Теперь ключ и открытый текст XORed. Логика XOR проста для понимания.
XOR выдает выход 1, когда один вход равен 0, а другой равен 1. Выход равен 0, если либо оба входа равны 0, либо оба входа равны 1.
Путаница - это метод, который гарантирует, что зашифрованный текст не дает никакой подсказки об исходном тексте.
Диффузия - это стратегия, используемая для повышения избыточности простого текста путем его распределения по строкам и столбцам.
Ключевые различия между блочным шифром и потоковым шифром
- Техника блочного шифрования включает в себя шифрование одного блока текста за раз, то есть по одному. Точно так же расшифруйте текст, беря один блок за другим. В отличие от этого, технология потокового шифрования включает в себя шифрование и дешифрование одного байта текста за раз.
- Блочный шифр использует как путаницу, так и диффузию, в то время как потоковый шифр полагается только на путаницу.
- Обычный размер блока может быть 64 или 128 битов в блочном шифре. В отличие от этого, 1 байт (8 бит) за раз преобразуется в потоковом шифре.
- Блочный шифр использует режимы алгоритмов ECB (электронная кодовая книга) и CBC (цепочка блоков шифров) . Напротив, потоковый шифр использует режимы алгоритма CFB (Cipher Feedback) и OFB (Output Feedback) .
- Потоковый шифр использует функцию XOR для преобразования обычного текста в зашифрованный текст, поэтому легко обратить биты XORed. Принимая во внимание, что блочный шифр не использует XOR для этого.
- Блочный шифр использует один и тот же ключ для шифрования каждого блока, в то время как потоковый шифр использует разные ключи для каждого байта.
Заключение:
Блочный шифр и потоковый шифр различаются по способу шифрования и дешифрования простого текста. Идея, лежащая в основе блочного шифра, состоит в том, чтобы разделить простой текст на блоки для дальнейшего шифрования этих блоков. В то время как потоковый шифр конвертирует обычный текст по битам подобно потоку.