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

Симметричный блочный шифр

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

История

Идея использования блочных шифров восходит к середине XX века, но практическое развитие они получили в 1970-х годах. В 1977 году Национальное бюро стандартов США (NBS) приняло алгоритм DES (Data Encryption Standard) в качестве федерального стандарта шифрования. DES использовал 56-битный ключ и 64-битный блок, что на момент создания считалось достаточным для защиты коммерческой информации. Однако к концу 1990-х годов, с ростом вычислительных мощностей, 56-битный ключ стал уязвим для атак полного перебора.

В 2001 году Национальный институт стандартов и технологий США (NIST) утвердил новый стандартAES (Advanced Encryption Standard), разработанный бельгийскими криптографами Винсентом Рэйменом и Йоаном Дайменом. AES использует фиксированный размер блока 128 бит и ключи длиной 128, 192 или 256 бит. На сегодняшний день AES является наиболее распространённым симметричным блочным шифром в мире, применяемым в правительственных, финансовых и коммерческих системах.

В России в качестве стандарта шифрования действует ГОСТ 28147-89 (разработан в 1989 году, обновлён в 2015 году как ГОСТ Р 34.12-2015), который использует 64-битный блок и 256-битный ключ. В 2015 году также был принят новый российский стандарт «Кузнечик» (ГОСТ Р 34.12-2015, часть 2) с размером блока 128 бит.

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

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

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

Количество раундов зависит от алгоритма: для DES — 16 раундов, для AES — 10, 12 или 14 раундов (в зависимости от длины ключа), для «Кузнечика» — 10 раундов.

Режимы шифрования

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

  • ECB (Electronic Codebook) — каждый блок шифруется независимо. Простой, но небезопасный для длинных сообщений, так как одинаковые блоки открытого текста дают одинаковые блоки шифротекста.
  • CBC (Cipher Block Chaining) — каждый блок перед шифрованием складывается по модулю 2 (XOR) с предыдущим блоком шифротекста. Для первого блока используется вектор инициализации (IV). Обеспечивает лучшее перемешивание, но шифрование последовательно, что замедляет работу.
  • CTR (Counter) — шифруется последовательность счётчиков, а результат складывается с открытым текстом. Позволяет распараллеливать шифрование и расшифрование, широко используется в современных системах.
  • GCM (Galois/Counter Mode) — комбинирует режим CTR с аутентификацией, обеспечивая не только конфиденциальность, но и целостность данных. Часто применяется в протоколах TLS и VPN.

Классификация

Симметричные блочные шифры можно классифицировать по нескольким признакам:

  • По архитектуре:
  • Сеть Фейстеля — блок делится на две половины, и в каждом раунде преобразуется только одна половина с помощью функции, зависящей от другой половины и ключа. Примеры: DES, ГОСТ 28147-89, Blowfish.
  • SP-сеть (Substitution-Permutation network) — в каждом раунде весь блок подвергается последовательности подстановок и перестановок. Примеры: AES, «Кузнечик», Serpent.
  • По размеру блока:
  • 64-битные (DES, ГОСТ 28147-89, Blowfish) — считаются устаревшими для новых приложений из-за уязвимости к атакам на основе коллизий.
  • 128-битные (AES, «Кузнечик», Camellia) — современный стандарт.
  • По длине ключа:
  • 56-битные (DES) — небезопасны.
  • 128-битные, 192-битные, 256-битные — обеспечивают достаточный уровень безопасности.

Применение

Симметричные блочные шифры используются в широком спектре задач:

  • Шифрование данных на дискахфайловые системы (BitLocker, LUKS) и отдельные программы (VeraCrypt) используют AES или ГОСТ.
  • Защита сетевого трафика — протоколы TLS, IPsec, SSH применяют блочные шифры в режимах GCM или CBC.
  • Шифрование сообщений — в мессенджерах (Signal, WhatsApp) и почтовых клиентах (PGP, S/MIME) блочные шифры используются для защиты содержимого.
  • Аутентификация — на основе блочных шифров строятся коды аутентичности сообщений (MAC), например, CMAC (Cipher-based MAC).
  • Генерация псевдослучайных чисел — блочные шифры в режиме CTR могут использоваться как криптостойкие генераторы.

Криптоанализ и уязвимости

Основные атаки на симметричные блочные шифры:

  • Атака полным перебором — перебор всех возможных ключей. Для ключа длиной 128 бит (2^128 вариантов) считается практически невыполнимой при современном уровне вычислительных мощностей.
  • Дифференциальный криптоанализ — анализ влияния изменений открытого текста на изменения шифротекста. Современные шифры (AES, «Кузнечик») спроектированы с учётом устойчивости к таким атакам.
  • Линейный криптоанализ — поиск линейных приближений между битами открытого текста, шифротекста и ключа. Для AES и ГОСТ надёжность доказана.
  • Атаки на реализацию — побочные каналы (время выполнения, потребление энергии, электромагнитное излучение) могут быть использованы для извлечения ключа. Противодействие требует аппаратных и программных контрмер.

Сравнение с асимметричными шифрами

Симметричные блочные шифры отличаются от асимметричных (например, RSA) следующими особенностями:

  • Скорость — симметричные шифры в сотни и тысячи раз быстрее асимметричных при одинаковом уровне безопасности.
  • Управление ключами — требует безопасного обмена секретным ключом между сторонами, что является основной проблемой. Асимметричные шифры решают эту задачу, но медленнее.
  • Длина ключа — для симметричных шифров ключ длиной 256 бит считается эквивалентным по стойкости асимметричному ключу длиной 3072 бита (для RSA).

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

Интересные факты

  • Алгоритм DES был разработан в IBM при участии Агентства национальной безопасности США (NSA), что вызвало подозрения о наличии «закладок». Впоследствии криптоаналитики показали, что S-блоки DES были спроектированы с учётом защиты от дифференциального криптоанализа, который был открыт только в 1990-х годах.
  • Шифр AES был выбран по результатам открытого конкурса, в котором участвовали 15 кандидатов. Победитель Rijndael (AES) был признан лучшим по сочетанию безопасности, производительности и гибкости.
  • Российский стандарт «Кузнечик» (ГОСТ Р 34.12-2015) основан на SP-сети и использует S-блоки, построенные на основе алгебраических структур, что обеспечивает высокую стойкость к дифференциальным и линейным атакам.

Источники

  • Шнайер Б. «Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си». — М.: Триумф, 2002.
  • Фергюсон Н., Шнайер Б. «Практическая криптография». — М.: Вильямс, 2005.
  • Национальный институт стандартов и технологий (NIST). «FIPS 197: Advanced Encryption Standard (AES)». — 2001.
  • Федеральное агентство по техническому регулированию и метрологии. «ГОСТ Р 34.12-2015. Информационная технология. Криптографическая защита информации. Блочные шифры». — 2015.
  • Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography». — CRC Press, 1996.

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

На главную BFOmetr →