Блочный шифр против потокового шифра: что это такое и как они работают

Carding 4 Carders

Professional
Messages
2,731
Reputation
13
Reaction score
1,376
Points
113

Шифры с симметричным шифрованием делятся на две основные категории: блочные шифры и потоковые шифры.​

Мы определим и разберем процессы каждого из них, а также предоставим примеры блочного и потокового шифрования, чтобы вы поближе познакомились с технологиями, обеспечивающими безопасность ваших данных. Понимание разницы между блочным и потоковым шифрами похоже на разницу между просмотром фильма на DVD или через потоковую службу. Конечно, оба дадут вам желаемое развлечение, но каждый из них работает по-своему с точки зрения механики и скорости.
Сегодня мы собираемся рассмотреть эти две группы шифров с симметричным ключом. Но в чем разница между потоковым шифром и блочным шифром? Какие типы шифров попадают под каждый зонтик? Какие из них используются в соединениях с шифрованием SSL/TLS? И как блочный и потоковый шифры работают для защиты ваших данных и когда вы их используете?
Давайте решим.

Блочный шифр против потокового шифра​

Блочный и потоковый шифры - это два способа шифрования данных. Также известные как объемные шифры, это две категории алгоритмов симметричного шифрования. Напоминание: при симметричном шифровании вы используете один и тот же ключ для шифрования и дешифрования данных. Блочное и потоковое шифрование - это два разных пути к одной и той же конечной цели защиты ваших данных. Большая разница между ними заключается в том, как данные шифруются - и у каждого метода есть свои преимущества и недостатки - и в типах сред, в которых они работают.
А пока давайте разберемся, что это за шифры в целом и как они работают.
Блочные шифры и потоковые шифры - это два отдельных метода шифрования данных с помощью симметричных алгоритмов шифрования:
  • Шифрование информации кусками. Блочный шифр разбивает сообщения открытого текста на блоки фиксированного размера перед преобразованием их в зашифрованный текст с помощью ключа.
  • Битовое шифрование информации. С другой стороны, потоковый шифр разбивает сообщение открытого текста на отдельные биты, которые затем индивидуально преобразуются в зашифрованный текст с использованием битов ключа.
Примечание: некоторые люди говорят, что потоковые шифры шифруют данные отдельными битами, другие - байтами [8 бит]. Поэтому для простоты в этой статье я просто буду говорить отдельные биты.
Если вам нужна простая аналогия, чтобы лучше понять блочный шифр и потоковый шифр, представьте, что вы шифруете книгу. Вы можете шифровать контент по одной странице за раз (блочный шифр) или по одной букве за раз (потоковый шифр).
Конечно, оба процесса более сложны, но это дает вам общее представление о том, что они собой представляют и что они делают. Согласно Жан-Филиппу Аумассону в своей книге «Серьезная криптография: практическое введение в современное шифрование»:
«[…] Блочные шифры смешивают фрагменты битов открытого текста вместе с битами ключей для создания фрагментов зашифрованного текста одинакового размера, обычно 64 или 128 бит. С другой стороны, потоковые шифры не смешивают открытый текст и биты ключа; вместо этого они генерируют псевдослучайные биты из ключа и шифруют открытый текст, выполняя XOR с псевдослучайными битами.»
Если это было ясно, как грязь, не беспокойтесь. Вскоре мы более подробно рассмотрим техническую сторону дела. Но сначала, где бы вы могли найти эти типы шифров в использовании? Не смотрите дальше технологий, которые вас окружают.
Блочные шифры - это алгоритмы, которые составляют основу многих криптографических технологий и процессов, которые сегодня используются в компьютерных коммуникациях. По сути, вы можете найти блочные шифры где угодно в сфере кибербезопасности.
Что касается потоковых шифров, то они не так хорошо изучены. Однако вы найдете потоковые шифры, которые используются в:
  • SSL/TLS-соединения
  • Bluetooth соединения
  • Сотовая связь и 4G

Операции XOR в криптографии​

Это важная концепция, которую следует осветить, когда речь идет о блочных и потоковых шифрах, но нет хорошего места, чтобы вставить это в статью, поэтому мы собираемся сделать это здесь. Хорошо, вы, наверное, видели этот странно выглядящий маленький символ, когда читали о криптографии: ⊕. Это называется XOR или логической операцией «исключающее ИЛИ».
Потоковые шифры используют побитовые операторы XOR для двоичных данных как часть своих процессов шифрования и дешифрования. Вы помните псевдослучайные фрагменты, упомянутые Аумассоном? По сути, когда вы говорите о потоковых шифрах, это называется ключевым потоком. И поток ключей должен быть непредсказуемым, чтобы быть безопасным.
Итак, XOR сравнивает два входных бита и генерирует один выходной бит. Помимо прочего, это способ проверки на наличие ошибок. Если оба бита совпадают, возвращается 0 (ложь); если они не совпадают, возвращается 1 (истина).
Вот краткая таблица для справки (она известна как таблица XOR):
Входной бит 1Входной бит 2Вывод
000
011
101
110
Обычно Бит1 ⊕ Бит2 = Выход.
Итак, допустим, Bit1 - это 101000101, а Bit2 - это 100101110 . Вот как это выглядит, когда вы выполняете XOR для двух наборов двоичных битов:
101000101 ⊕ 100101110 = 001101011

Это означает, что ваш результат будет 001101011. Довольно круто, да?
Ладно, на самом деле это было не так уж плохо, не так ли? Теперь, когда мы разобрались с этим ... Давайте приступим к медленным разговорам о том, что такое потоковые шифры и блочные шифры. Для этого мы определим и разберем каждый из них, чтобы вы могли лучше понять, что они собой представляют, и увидеть, чем они отличаются.

Что такое блочный шифр?​

Как следует из названия, блочный шифр - это шифр, который позволяет вам использовать ключ для шифрования данных в больших старых группах (блоках) заранее определенного размера (например, 128 бит, 256 бит и т. Д.). Таким образом, это позволяет вам зашифровать все данные в блоке как единое целое. Например, предположим, у вас есть сообщение: «За Альянс». (Не ненавидьте фанаты Орды. Придет ваше время.)
Если вы хотите зашифровать это с помощью блочного шифра, текстовое сообщение будет разбито на более мелкие блоки двоичного кода. Итак, «За Альянс» будет выглядеть примерно так:
0100011001101111011100100010000001110100011010000110010100100000010000010110110001101100011010010110000101101110011000110110010100101110

Теперь, если мы разбиваем эти 136 двоичных цифр на блоки, скажем, по 4 цифры, они хорошо делятся, потому что 4 делится на 136 в общей сложности 32 раза. Блоки будут выглядеть примерно так:
Блочный шифр и изображение потокового шифра: Это изображение иллюстрирует разделение сообщения на блоки данных.

Но что делать, если данных недостаточно для формирования полного блока? Например, если бы у вас было 138 двоичных цифр вместо 136 (что означает, что у вас будет неполный последний блок данных)? Затем вы можете добавить заполнение (это может быть заданное количество нулей) в конец блока, чтобы гарантировать, что блок имеет фиксированный размер.
блочный шифр против графического изображения потокового шифра: базовая диаграмма, которая описывает процесс шифрования с использованием блочного шифра.

Базовая диаграмма, демонстрирующая, как работает блочный шифр.
Пример блочного шифра: эта упрощенная версия блочного шифра показывает, как блочные шифры работают в целом. По конструкции он похож на то, как работает режим работы ECB, о котором вы узнаете больше немного позже в этой статье.
В зависимости от того, какой режим работы вы используете (мы объясним это позже), блоки затем «связываются» вместе, что позволяет соединять блоки последовательно. В некоторых случаях блочные шифры могут работать как потоковые шифры в зависимости от их режимов работы. Это потому, что они приобретают определенные свойства из-за этих режимов, которые мы обсудим позже в этой статье.
Схема примера блочного шифра, которая показывает, как работает базовая операция объединения блочного шифра

Базовый блочный шифр, использующий операцию объединения (показано оранжевыми соединительными стрелками). В данном случае это похоже на упрощенный пример режима работы блочного шифра CBC. Да, я знаю, на этой иллюстрации отсутствует вектор инициализации и XOR. Но, опять же, это должна быть упрощенная версия, которая просто предназначена для демонстрации сцепления одного блока данных с другим.
Но каковы преимущества использования алгоритмов блочного шифрования?
Итак, каковы примеры некоторых распространенных блочных шифров?

Примеры блочных шифров​

  • Стандарт шифрования данных (DES),
  • Тройной DES (3DES или TDEA),
  • Расширенный стандарт шифрования (AES),
  • Международный алгоритм шифрования данных (IDEA),
  • Blowfish
  • Twofish
  • RC5
Если AES звучит знакомо, на то есть веская причина. На самом деле это наиболее часто используемый тип блочного шифра. Вы найдете шифрование AES, используемое во всем, от защиты интернет-соединений SSL/TLS до государственных данных. Например, Агентство национальной безопасности (АНБ) полагается на шифрование AES для защиты своих данных, которые относятся к категории «совершенно секретно».
Поскольку блочные шифры являются наиболее часто используемыми и изучаемыми шифрами, они являются нашей основной темой в этой статье. Но давайте потратим некоторое время на изучение потоковых шифров, чтобы помочь вам ознакомиться с тем, что они собой представляют, как они работают и чем они отличаются от блочных шифров.

Что такое потоковый шифр?​

Потоковый шифр - это шифр, который шифрует (и расшифровывает) поток, то есть поток данных. В отличие от блочных шифров, которые требуют формирования блоков перед шифрованием, потоковые шифры шифруют данные в длинных псевдослучайных потоках. По сути, это означает, что вы можете обрабатывать один бит данных за раз, вместо того, чтобы ждать формирования блока данных.
В своей книге « Доменно-специфический высокоуровневый синтез для криптографических рабочих нагрузок» Айеша Халид, Гутам Пол и Анупам Чаттопадхьяй описывают потоковые шифры как конечные автоматы, или конечные автоматы, и шифры с отслеживанием состояния. Причина для первого описания (FSM) состоит в том, что эти шифры принимают биты открытого текста данных один за другим и таким же образом выводят символы зашифрованного текста. Причина, по которой их также называют шифрами с отслеживанием состояния, заключается в том, что они полагаются на свое внутреннее состояние для своих функций потока ключей.

Но знаете ли вы, что на самом деле существует два типа потоковых шифров?
  1. Синхронные потоковые шифры (также известные как ключевой автоключ, или KAK). Эти типы шифров генерируют потоки ключей независимо от любого предыдущего открытого текста или зашифрованных текстов.
  2. Самосинхронизирующиеся потоковые шифры (также известные как асинхронные потоковые шифры, автоключ зашифрованного текста или CTAK) - эти шифры, с другой стороны, полагаются на предыдущие биты зашифрованного текста для генерации ключевых потоков.

Как работают потоковые шифры​

Итак, как же на самом деле работает потоковый шифр в более техническом смысле? Как упоминалось ранее, потоковый шифр шифрует данные побитно, а не блоками. Но ключевой частью этого процесса является генерация потока псевдослучайных битов на основе ключа шифрования и начального числа, также известного как одноразовый номер (уникальное случайно сгенерированное число - «одноразовый номер» = одноразовое использование только числа). Вместе они создают поток ключей (тот поток псевдослучайных битов, который мы только что упомянули), который подвергается операции XOR с вашим входным открытым текстом, который шифрует его и приводит к получению вашего зашифрованного текста.
Этот процесс «промыть и повторить» происходит снова и снова с каждым битом данных открытого текста. Однако важно не использовать снова одну и ту же точную комбинацию ключа и одноразового номера, поскольку это может привести к дублированию потока ключей.
Немного запутались? Вот наглядное изображение процесса, чтобы внести некоторую ясность:
блочный шифр и изображение потокового шифра: базовая диаграмма, описывающая процесс шифрования с использованием потокового шифра.

Пример потокового шифра: это базовая иллюстрация, демонстрирующая основные операции потокового шифра.
Чтобы лучше понять это, давайте рассмотрим пример. Давайте рассмотрим альтернативную фразу, которую мы использовали ранее: «За Орду!» (Видите? Я не забыл вас, ребята.) Двоичная версия этого сообщения в виде открытого текста будет выглядеть так:

0100011001101111011100100010000001110100011010000110010100100000010010000110111101110010011001000110010100100001

Итак, если мы используем потоковый шифр для шифрования сообщения, мы будем делать это по одному биту за раз. Итак, данные открытого текста будут разбиты на отдельные биты, которые будут выглядеть примерно так:
Блочный шифр против графического изображения потокового шифра: это изображение иллюстрирует разделение сообщения на отдельные биты для шифрования.

Да, дайте глазам привыкнуть после прочтения этого красочного рисунка.
Итак, следующим шагом здесь будет создание последовательности псевдослучайных битов (т. Е. Ключевого потока). Обычно это основано на внутреннем состоянии.
Когда у вас есть поток ключей, вы выполняете XOR псевдослучайных битов с двоичным кодом вашего открытого текста. Если вернуться к предыдущей таблице XOR, это означает, что если бы первый бит сообщения с открытым текстом был равен 1, а первый бит ключевого потока был равен 0 , то на выходе было бы 0. Если бы второй бит сообщения открытого текста был еще 1, а первый бит ключевого потока также был 1 , то на выходе также был бы 0. Возьми? Да, именно так работает потоковый шифр.
Потоковые алгоритмы быстрее и эффективнее, чем блочные шифры, потому что они шифруют только один бит данных за раз в отдельные символы, а не целые блоки. Таким образом, они лучше подходят для устройств с меньшими ресурсами. Кроме того, в результате этого подхода с использованием одного бита данных это означает, что, если есть ошибка в одном символе, меньше вероятность того, что она повлияет на следующий. Однако некоторые потоковые шифры уязвимы для атак с переворачиванием битов и повторного использования ключей.
Очень простой пример потокового шифра - это шифр Цезаря, который представляет собой шифр, который заменяет один символ другим по отдельности. Но это действительно архаичный и устаревший пример шифра. Итак, какие виды потоковых шифров мы можем найти сегодня в использовании?

Примеры потоковых шифров​

  • Salsa20 (программно-аппаратные реализации),
  • ChaCha20 (модифицированная версия Salsa20; ChaCha20 поддерживается в TLS 1.3),
  • RC4 (для беспроводных сетей) и
  • A5 (для сотовых сетей GSM).
Однако имейте в виду, что этот список потоковых шифров никоим образом не является исчерпывающим. Но он, по крайней мере, предоставляет вам несколько примеров симметричных алгоритмов шифрования, которые вы можете связать с каждым.

Является ли блочный или потоковый шифр более безопасным?​

Ответ на этот вопрос не так прост, как сказать: «блочный шифр более безопасен, чем поточный шифр» или наоборот. Я имею в виду, что на самом деле сила ключа определяет, насколько безопасен блок или потоковый шифр. Но что, если вы просто сохраните внутреннюю работу своего шифра в секрете - это сделает его более безопасным, верно? Эх, не очень.
Брюс Шнайер хорошо об этом говорит:
«Любой, от самого невежественного любителя до лучшего криптографа, может создать алгоритм, который сам не сможет взломать. Это даже не сложно. Трудно создать алгоритм, который никто другой не сможет сломать, даже после многих лет анализа. И единственный способ доказать это - подвергнуть алгоритм многолетнему анализу лучших криптографов».
Вот почему наиболее надежными шифрами являются те, алгоритмы которых публикуются, анализируются и тестируются криптографами всего мира. Подумайте об AES или о том, что изначально было известно как Rijndael (названное в честь его создателей, Джоан Дэемен и Винсент Реймен).

Режимы работы блочного шифра​

Помните, как мы упоминали, что некоторые блочные шифры могут работать как потоковые шифры? Это возможно благодаря определенным режимам работы, которые включают CFB, OFB и CTR - о каждом из которых мы скоро поговорим. Однако важно отметить, что потоковые шифры не могут преобразовываться в блочные шифры или работать в качестве них. Это похоже на то, как гусеницы превращаются в бабочек, но не наоборот.
В этой статье мы сосредоточимся на режимах работы с конфиденциальностью. Знаете ли вы, что существует пять режимов конфиденциальности, в которых могут работать блочные шифры, которые рекомендует NIST? Вы можете найти их в NIST SP 800-38A: Рекомендации по режимам работы блочного шифра.
Давайте кратко рассмотрим каждый из пяти режимов, чтобы лучше понять, что такое каждый из них и как он работает:

1. Режим электронной кодовой книги (ECB)​

Это самый упрощенный (и самый слабый) режим работы, при котором блоки шифруются отдельно. Он не предназначен для того, чтобы новые блоки зависели от вывода предыдущих блоков. Это означает, что вы можете независимо шифровать или расшифровывать блоки данных.
Скриншот из NIST режима работы ECB для блочных шифров.  Это диаграмма, которая разбивает процессы шифрования и дешифрования.

Снимок экрана с процессами шифрования и дешифрования в режиме ECB из NIST SP 800-38A: Рекомендации по методам и методам работы с режимами блочного шифрования.
Кроме того, плохим парням проще всего разбираться, потому что все блоки данных зашифрованы одинаково, что упрощает обнаружение закономерностей. Итак, если вы в конечном итоге отправляете разные сообщения, но некоторые из них совпадают, то вы получите несколько идентичных экземпляров зашифрованного текста. Вспомните знаменитый пример пингвина Linux в режиме ECB. Идея здесь в том, что даже если вы не можете расшифровать определенные биты (например, пиксели логотипа пингвина Linux), вы все равно можете сказать достаточно по шаблонам, которые вы можете расшифровать, чтобы все же понять общее сообщение.
По сути, ECB имеет тенденцию выдавать слишком много информации о сообщении, которое вы пытаетесь зашифровать. Итак, главный вывод - не полагайтесь на ECB для безопасного шифрования.

2. Режим цепочки блоков шифрования (CBC)​

Суть этого режима работы заключается в том, что это последовательный процесс, основанный на предыдущих блоках данных (это явная цепочка, о которой мы упоминали ранее). Таким образом, блоки открытого текста входных данных «привязываются» к предыдущим выходным блокам зашифрованного текста с использованием вектора инициализации (IV). И чтобы сделать IV более случайным, перед шифрованием каждого ввода выполняется операция XOR.
После того, как данные проходят через шифр, выходные данные привязываются к следующему блоку данных. Этот процесс связывания данных, известный как явная цепочка, помогает дополнительно замаскировать ваше сообщение. Это достигается путем добавления данных из предыдущего блока. Таким образом, даже если вы отправляете или получаете два одинаковых сообщения с открытым текстом, зашифрованный текст для каждого будет отличаться из-за связанных данных.
Скриншот из NIST режима работы CBC для блочных шифров.  Это диаграмма, которая разбивает процессы шифрования и дешифрования.

Снимок экрана с процессами шифрования и дешифрования в режиме CBC из NIST SP 800-38A: Рекомендации по режимам блочного шифрования, методам и методам работы. В верхнем разделе слева направо показано, как три отдельных сообщения объединяются и зашифровываются. В нижнем разделе слева направо показано, как расшифровываются эти отдельные сообщения.
Таким образом, в основном режим CBC берет режим ECB и поднимает его на ступеньку выше с точки зрения сложности и конфиденциальности, добавляя данные из предыдущих блоков. Однако сейчас он используется не так часто. Зачем? Пара важных причин:
  1. Этот режим работы медленный. Вы не можете зашифровать или расшифровать два или более сообщения одновременно, потому что каждое сообщение включает данные из предыдущего блока. Хотя это может не быть проблемой для небольших файлов, это может оказаться большой проблемой для шифрования или дешифрования в любом масштабе.
  2. Этот режим работы уязвим для атак заполнения и манипуляций. Если злоумышленнику удастся изменить зашифрованный текст одного блока, следующий блок будет затронут из-за объединения данных.
Явная цепочка задействована как в режимах CFB, так и в OFB. И использование IV, которые являются частью этапов шифрования и дешифрования для режимов CBC, CFB и OFB, является неотъемлемой частью безопасности этих трех режимов.
Примечание: NIST выпустил приложение, касающееся режима CBC (NIST SP 800-38A-Addendum). В этом документе определены три варианта режима CBC, которые избегают расширения зашифрованного текста.

3. Режим Cipher Feedback (CFB)​

В этом режиме работы генерируются псевдослучайные биты. Для этого он использует зашифрованный текст из предыдущего блока в цепочке (он известен как обратная связь, отсюда и подходящее название) и криптографический ключ.
Важно отметить, что функция шифрования используется как в процессах шифрования, так и дешифрования, вместо использования функции шифрования для первого и функции дешифрования для последнего. Кроме того, распространение ошибок является проблемой в режиме CFB, потому что ошибка в одном блоке может переноситься в следующий (хотя это не повлияет на другой блок). Однако это не проблема для режимов OFB или CTR, о которых мы поговорим дальше.
Скриншот из NIST режима работы CFB для блочных шифров.  Это диаграмма, которая разбивает процессы шифрования и дешифрования.

Снимок экрана с процессами шифрования и дешифрования в режиме CFB из NIST SP 800-38A: Рекомендации по методам и методам работы с режимами блочного шифрования.

4. Режим обратной связи по выходу (OFB)​

Идея этого режима состоит в том, что он похож на CFB, однако генерация случайных чисел полагается на вывод функции шифрования из предыдущего блока в качестве обратной связи. И для шифрования, и для дешифрования OFB также используется функция шифрования. Однако OFB не использует открытый текст или зашифрованный текст как часть обработки функции шифрования.
NIST разбивает процесс перехода от одного блока к другому как таковой:
«При шифровании OFB IV преобразуется функцией прямого шифрования для создания первого выходного блока. Первый выходной блок обрабатывается методом исключающего ИЛИ с первым блоком открытого текста для создания первого блока зашифрованного текста. Затем в первом выходном блоке вызывается функция прямого шифрования для создания второго выходного блока. Второй блок вывода обрабатывается методом исключающего ИЛИ со вторым блоком открытого текста для создания второго блока зашифрованного текста, а функция прямого шифрования вызывается во втором блоке вывода для создания третьего блока вывода ».
… Так далее и тому подобное. В основном, вывод каждого блока производится путем применения шифра к выводу предыдущего блока. Затем, выполняя XOR для выходных данных с открытым текстом, вы получаете следующий блок зашифрованного текста.
Процесс выглядит так:
Скриншот из NIST режима работы OFB для блочных шифров.  Это диаграмма, которая разбивает процессы шифрования и дешифрования.

Снимок экрана с процессами шифрования и дешифрования в режиме OFB из NIST SP 800-38A: Рекомендации по методам и методам работы с режимами блочного шифрования.
Но что произойдет, когда вы дойдете до выхода последнего блока? Некоторые из них используются в заключительной операции XOR; другие отбрасываются.

5. Режим счетчика (CTR)​

Хорошо, подождите еще немного. Мы на последнем месте! Этот рабочий режим, самый новый, рекомендованный NIST, предназначен для использования в качестве счетчика псевдослучайной генерации (отсюда и название). Это один из наиболее часто используемых режимов работы.
Режим CTR похож на режим OFB, но все же отличается. Например, в отличие от предыдущих режимов работы, CTR не требует явного связывания и может распараллеливаться. Это означает, что вы можете обрабатывать и шифровать отдельные сообщения параллельно (например, потоковые шифры). Таким образом, это означает, что, поскольку это не зависит от вывода предыдущего блока, вы можете независимо расшифровать два блока.
Безопасность этого режима зависит от защиты значений счетчиков (CV), поэтому вы никогда не должны перерабатывать свои CV.
Скриншот из NIST режима работы CTR для блочных шифров.  Это диаграмма, которая разбивает процессы шифрования и дешифрования.

Снимок экрана с процессами шифрования и дешифрования в режиме CTR из NIST SP 800-38A: Рекомендации по режимам блочного шифрования, методам и методам работы.
Да, я знаю, все вышеперечисленные режимы выглядят как тарелка с алфавитом со всеми аббревиатурами - ECB, CFB, OFB и т. Д. Но то, что делают эти режимы (в сочетании с алгоритмами блочного шифрования, одобренными FIPS), важно, потому что блочный шифр не работает без одного из них. Эти рабочие режимы помогают защитить конфиденциальные, несекретные компьютерные данные.
Если режимы работы вас волнуют, или если вы настолько обжора, чтобы наказывать, обязательно ознакомьтесь с публикацией NIST (SP 800-38A) для более глубокого понимания каждого из пяти режимов работы, которые мы выделили выше. (Он углубляется во все математические характеристики, которые заставляют остальных из нас чувствовать себя немного косыми.)
Существуют также другие режимы работы, с которыми вы также можете ознакомиться, такие как режим счетчика Галуа (GCM) и настраиваемый блочный шифр XEX с режимом кражи зашифрованного текста (XTS) (включая XTS для режима AES). Но мы не будем вдаваться во все это здесь.
Чтобы увидеть, как эти режимы работы сочетаются с объемными шифрами в наборе шифров, обязательно ознакомьтесь с нашей статьей, в которой разбираются наборы шифров.

Блочный шифр против потокового шифра​

Да, это было много информации, которую нужно было изучить. Тем не менее, мы надеемся, что эта статья дала вам большую ясность в отношении потоковых и блочных шифров, их функций и принципов работы.
Нет времени читать все это техническое содержание, чтобы отличить блочный шифр от потокового? Не беспокойтесь, мы предоставим вам краткий обзор блочных и потоковых шифров:
Блочные шифрыПотоковые шифры
Шифры с симметричным ключом, которые шифруют и дешифруют данные в блоках фиксированного размера.Шифры с симметричным ключом - это шифры с отслеживанием состояния, которые побитно шифруют и дешифруют данные.
Более медленная обработка.Более быстрая обработка.
Требуется больше ресурсов.Требуется меньше ресурсов.
Может принимать свойства потокового шифра в определенных режимах работы.Невозможно использовать свойства блочного шифра.
Положитесь на режимы работы без отслеживания состояния и без отслеживания состояния, которые включают ECB, CBC, CFB, OFB, CTR, GCM и XTS.Может быть синхронным или асинхронным.
Используется почти везде.Используется для шифрования некоторых данных при передаче, в том числе в некоторых наборах шифров SSL / TLS.
 
Last edited by a moderator:
Top