Открыть сервис

Самосинхронизирующийся шифр

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

История

Идея поточного шифрования, основанного на обратной связи по шифротексту, восходит к ранним работам по криптографии, но её формализация и широкое применение связаны с развитием цифровых систем связи в середине XX века. Одним из первых практических воплощений стал режим обратной связи по шифротексту (Cipher Feedback, CFB) для блочных шифров, разработанный в 1970-х годах и стандартизированный в США (DES в режиме CFB). Позднее, в 1980-х годах, были предложены специализированные самосинхронизирующиеся поточные шифры, не основанные на блочных примитивах, например, алгоритмы, используемые в некоторых системах спутниковой связи и военных радиостанциях.

В 1990-е годы интерес к самосинхронизирующимся шифрам возрос в связи с развитием беспроводных сетей и протоколов с возможными потерями пакетов, где свойство самовосстановления оказалось критически важным. В 2000-е годы были разработаны современные конструкции, такие как шифр SSS (Self-Synchronizing Stream Cipher) и его варианты, а также режимы работы блочных шифров, обеспечивающие самосинхронизацию (например, режим CFB-8).

Принцип работы

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

  1. Инициализация: Передатчик и приёмник согласовывают секретный ключ и начальный вектор инициализации (IV). IV используется для заполнения регистра сдвига обратной связи (РСОС) начальным значением.
  2. Шифрование: Для каждого символа открытого текста P_i:
  • Генератор гаммы на основе текущего состояния РСОС (содержащего последние n символов шифротекста) и ключа вычисляет очередной символ гаммы G_i.
  • Символ шифротекста C_i вычисляется как C_i = P_i XOR G_i (или другая операция сложения по модулю).
  • Полученный символ C_i подаётся на вход РСОС, сдвигая его содержимое и вытесняя самый старый символ.
  1. Дешифрование: На приёмной стороне процесс аналогичен:
  • Приёмник имеет такое же состояние РСОС (содержащее последние n символов шифротекста, которые он уже получил).
  • Генератор гаммы вычисляет тот же символ G_i.
  • Символ открытого текста P_i восстанавливается как P_i = C_i XOR G_i.
  • Полученный символ C_i (из канала) также подаётся на вход РСОС приёмника.

Ключевая особенность: если в канале произошла потеря или искажение одного или нескольких символов шифротекста, то состояние РСОС на передатчике и приёмнике рассинхронизируется. Однако, как только приёмник получит n корректных символов шифротекста подряд, его РСОС автоматически восстановит правильное состояние, и дальнейшее дешифрование станет возможным. Таким образом, шифр «самосинхронизируется» после получения n символов, где n — длина регистра сдвига (размер обратной связи).

Классификация и виды

Самосинхронизирующиеся шифры можно классифицировать по нескольким признакам:

По способу генерации гаммы

  • На основе регистра сдвига с линейной обратной связью (LFSR): Классические конструкции, где гамма генерируется с помощью LFSR, состояние которого зависит от предыдущих символов шифротекста. Примеры: шифр SSS.
  • На основе блочных шифров: Режимы работы блочных шифров, такие как CFB (Cipher Feedback) и OFB (Output Feedback) — последний является асинхронным, но не самосинхронизирующимся. В режиме CFB блочный шифр используется для генерации гаммы на основе предыдущего блока шифротекста.
  • На основе нелинейных функций: Современные конструкции, использующие нелинейные булевы функции или S-блоки для повышения криптостойкости.

По размеру обратной связи

  • С битовой обратной связью: Регистр сдвига хранит последние n бит шифротекста. Используется в низкоскоростных каналах.
  • С байтовой или блочной обратной связью: Регистр сдвига хранит последние n байт или блоков. Чаще применяется в высокоскоростных системах, где потеря одного байта менее критична.

По способу инициализации

  • С фиксированным IV: Используется один и тот же вектор инициализации для всех сеансов связи (не рекомендуется для обеспечения безопасности).
  • С переменным IV: Каждый сеанс связи использует уникальный IV, который передаётся открыто вместе с шифротекстом.

Характеристики и свойства

  • Самосинхронизация: Основное преимущество. После потери или искажения до n символов шифротекста (где n — длина обратной связи) дешифрование автоматически восстанавливается без необходимости повторной передачи ключа или IV.
  • Ограниченное распространение ошибок: Ошибка в одном символе шифротекста приводит к неправильному дешифрованию n последующих символов открытого текста (пока этот ошибочный символ находится в регистре сдвига). После того как ошибочный символ вытесняется из регистра, дешифрование восстанавливается. Это свойство выгодно отличает их от режимов с обратной связью по открытому тексту (например, CBC), где ошибка распространяется на весь блок.
  • Зависимость от шифротекста: Криптоаналитик, имеющий доступ к шифротексту, может частично влиять на состояние генератора гаммы, что открывает возможности для атак с выбором шифротекста или атак на основе известного открытого текста. Для защиты требуется тщательный дизайн генератора.
  • Скорость: В режиме CFB скорость шифрования ограничена скоростью блочного шифра, так как для каждого блока (или байта) требуется отдельная операция шифрования. Специализированные самосинхронизирующиеся шифры могут быть быстрее, но часто уступают синхронным поточным шифрам.
  • Безопасность: Криптостойкость зависит от длины ключа, длины регистра сдвига (не менее 64 бит для современных систем) и нелинейности функций, используемых для генерации гаммы. Известны атаки на слабые конструкции, основанные на анализе обратной связи.

Применение

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

  • Беспроводные сети: Используются в протоколах, работающих в условиях помех и потерь пакетов, например, в некоторых реализациях Bluetooth (режим E0, хотя он является синхронным, но его модификации могут быть самосинхронизирующимися) и Wi-Fi (режимы WEP, WPA — хотя они используют синхронные шифры, концепция самосинхронизации применяется в некоторых протоколах аутентификации).
  • Спутниковая связь: В системах с большими задержками распространения сигнала, где повторная передача потерянных пакетов неэффективна.
  • Военные и правительственные системы: Для обеспечения надёжной связи в условиях радиоэлектронной борьбы, где возможны кратковременные помехи.
  • Защита каналов управления: В промышленных системах (SCADA) и телеметрии, где потеря синхронизации может привести к аварии.
  • Режимы работы блочных шифров: Режим CFB (Cipher Feedback) широко используется в протоколах SSL/TLS, IPsec и других для шифрования потоковых данных.

Примеры

  • Режим CFB (Cipher Feedback): Режим работы блочных шифров (например, AES, ГОСТ 28147-89), где шифротекст предыдущего блока подаётся на вход шифратора для генерации гаммы. Размер обратной связи может быть от 1 бита до размера блока.
  • Шифр SSS (Self-Synchronizing Stream Cipher): Разработан в 2000-х годах, использует нелинейную функцию на основе LFSR и S-блоков. Предназначен для высокоскоростных каналов.
  • Шифр Helix: Предложен в 2003 году, сочетает свойства поточного шифра и аутентификации, но не является строго самосинхронизирующимся в классическом смысле.
  • Режим OFB (Output Feedback): Часто путают с самосинхронизирующимися шифрами, но он является синхронным, так как гамма генерируется независимо от шифротекста (зависит только от предыдущего выхода шифратора).

Критика и ограничения

  • Атаки на основе известного открытого текста: Если злоумышленник знает часть открытого текста, он может вычислить соответствующую часть гаммы и, анализируя обратную связь, получить информацию о состоянии генератора.
  • Сложность проектирования: Создание криптостойкого самосинхронизирующегося шифра требует тщательного анализа нелинейных свойств функций обратной связи. Многие ранние конструкции были взломаны.
  • Ограниченная длина обратной связи: Для обеспечения высокой безопасности длина регистра сдвига должна быть достаточно большой (не менее 128 бит), что увеличивает задержку восстановления синхронизации.
  • Неэффективность для пакетной передачи: В сетях с коммутацией пакетов, где каждый пакет может передаваться по разным маршрутам, свойство самосинхронизации может быть неактуально, так как синхронизация обычно восстанавливается при обработке каждого нового пакета.

Источники

  • Schneier, B. (1996). Applied Cryptography: Protocols, Algorithms, and Source Code in C (2nd ed.). John Wiley & Sons.
  • Menezes, A. J., van Oorschot, P. C., & Vanstone, S. A. (1996). Handbook of Applied Cryptography. CRC Press.
  • Daemen, J., & Rijmen, V. (2002). The Design of Rijndael: AES — The Advanced Encryption Standard. Springer.
  • Hell, M., Johansson, T., & Maximov, A. (2006). A New Self-Synchronizing Stream Cipher. In Fast Software Encryption (FSE 2006).
  • Стандарт ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →