Симметричный блочный шифр
Симметричный блочный шифр — это класс криптографических алгоритмов, в которых для шифрования и расшифрования данных используется один и тот же секретный ключ, а процесс преобразования выполняется над фиксированными блоками информации (обычно длиной 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 →