Поточный шифр

Простыми словами

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

Как применяется

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

Пример применения

Сервис использует ChaCha20-Poly1305 через криптографическую библиотеку. Для каждого сообщения соблюдает правила nonce, сохраняет тег аутентификации и отклоняет сообщение при неверном теге. Нельзя считать, что вариант «просто ChaCha20» автоматически предоставит ту же проверку целостности.

Не путать с

  • Блочный шифрПреобразует блоки фиксированного размера; для сообщения применяется в определённом режиме.
  • Одноразовый блокнотПри выполнении строгих условий имеет другую модель стойкости и требует истинно случайной одноразовой гаммы.
  • MACПроверяет подлинность и целостность сообщения с секретным ключом; не скрывает содержимое сам по себе.

Как это работает

  1. Подготовить ключПолучают ключ и параметры подходящей изученной схемы.
  2. Сформировать гаммуШифр вырабатывает поток для выбранного nonce и состояния.
  3. Преобразовать сообщениеДанные соединяются с гаммой; законченная AEAD-схема также формирует тег.
  4. Проверить при полученииПолучатель проверяет тег и не выдаёт неподтверждённые данные приложению.

Связанные термины

Частые вопросы

Можно повторять nonce?

Для ChaCha20 нельзя повторять его с одним ключом. Условия проверяют по конкретной схеме.

Поточный шифр сам защищает от изменений?

Не обязательно. Нужна аутентификация, например в законченной AEAD-конструкции.

AES-CTR — тот же тип алгоритма?

Это режим блочного шифра, который создаёт гамму и используется подобным образом, но AES остаётся блочным алгоритмом.

Поточный шифр — симметричный криптографический алгоритм, создающий из ключа и начальных параметров поток ключевых данных для преобразования открытого текста. В распространённых конструкциях шифрование выполняется побитным XOR с этой гаммой. Стойкость зависит, в частности, от недопущения её опасного повторного использования.