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

Блочный симметричный шифр

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

История

Первые концепции блочных шифров были предложены в середине XX века. В 1949 году Клод Шеннон опубликовал работу «Теория связи в секретных системах», где заложил теоретические основы симметричного шифрования, включая принципы перемешивания (confusion) и рассеивания (diffusion), которые стали фундаментом для современных блочных шифров.

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

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

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

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

Блочные симметричные шифры классифицируются по нескольким признакам:

По архитектуре

  • Сеть Фейстеля — шифр делит блок на две половины и применяет к ним чередующиеся преобразования с использованием раундовой функции. Примеры: DES, ГОСТ 28147-89, Blowfish. Преимущество — обратимость алгоритма даже при необратимой раундовой функции.
  • Подстановочно-перестановочная сеть (SP-сеть) — блок обрабатывается последовательными слоями подстановок (S-блоки) и перестановок (P-блоки). Примеры: AES, «Кузнечик». Обеспечивает более быстрое рассеивание, но требует более сложной реализации обратного преобразования.
  • ARX-конструкция — использует только операции сложения (Addition), циклического сдвига (Rotation) и XOR (XOR). Примеры: Threefish, ChaCha. Отличается простотой реализации и устойчивостью к атакам по времени.

По длине блока

  • 64-битные блоки — DES, ГОСТ 28147-89, Blowfish. Считаются устаревшими из-за уязвимости к атакам на основе коллизий (например, атака «день рождения»).
  • 128-битные блоки — AES, «Кузнечик», Twofish. Являются современным стандартом.
  • 256-битные блоки — Threefish, Rijndael (с увеличенным размером блока). Используются в специализированных системах.

По длине ключа

  • 56–64 бита — устаревшие (DES, Lucifer).
  • 128–256 бит — современные (AES, ГОСТ Р 34.12-2015, Camellia).

Устройство и принцип работы

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

Основные этапы зашифрования

  1. Разбиение на блоки — открытый текст делится на блоки фиксированной длины. Если длина последнего блока меньше размера блока, применяется дополнение (padding), например, PKCS#7.
  2. Начальное преобразование — в некоторых шифрах (например, в AES) перед основными раундами выполняется операция XOR с первым раундовым ключом.
  3. Раундовые преобразования — блок последовательно проходит через несколько раундов (обычно от 10 до 16), каждый из которых включает:
  • Подстановку (замена байтов через S-блоки);
  • Перестановку (перемешивание битов или байтов);
  • Сложение с раундовым ключом (XOR).
  1. Финальное преобразование — после последнего раунда может выполняться дополнительная операция (например, XOR с последним ключом).

Раундовая функция

В сетях Фейстеля раундовая функция применяется к половине блока, а результат объединяется с другой половиной через XOR. В SP-сетях раундовая функция применяется ко всему блоку целиком.

Расшифрование

Расшифрование выполняется путём применения обратных операций в обратном порядке. Для сетей Фейстеля расшифрование идентично зашифрованию с обратным порядком раундовых ключей. Для SP-сетей требуется отдельная реализация обратных S-блоков и перестановок.

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

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

ECB (Electronic Codebook)

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

CBC (Cipher Block Chaining)

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

CTR (Counter)

Генерируется псевдослучайная последовательность путём шифрования последовательных значений счётчика, которая затем объединяется через XOR с открытым текстом. Позволяет параллельное шифрование и расшифрование, а также произвольный доступ к данным.

GCM (Galois/Counter Mode)

Сочетает режим CTR с аутентификацией на основе кода аутентичности (GMAC). Обеспечивает одновременно шифрование и проверку целостности данных. Широко используется в протоколах TLS, IPsec.

CCM (Counter with CBC-MAC)

Комбинирует режим CTR для шифрования и CBC-MAC для аутентификации. Применяется в стандартах IEEE 802.11 (Wi-Fi) и Bluetooth.

Применение

Блочные симметричные шифры используются в широком спектре приложений:

  • Защита данных при хранении — шифрование файловых систем (BitLocker, LUKS), баз данных, архивов.
  • Защита каналов связи — протоколы TLS, IPsec, SSH, VPN.
  • Электронные платежи — стандарты EMV, шифрование PIN-кодов.
  • Беспроводные сети — шифрование Wi-Fi (WPA2, WPA3) и Bluetooth.
  • Государственные и военные системы — российские стандарты ГОСТ, американский AES.

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

Блочные шифры подвержены различным атакам, которые делятся на несколько категорий:

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

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

  • AES — стандарт США, блок 128 бит, ключи 128/192/256 бит, 10/12/14 раундов.
  • ГОСТ Р 34.12-2015 («Кузнечик») — российский стандарт, блок 128 бит, ключ 256 бит, 10 раундов.
  • DES — блок 64 бита, ключ 56 бит, 16 раундов (устарел).
  • 3DES — тройное применение DES с двумя или тремя ключами, блок 64 бита (устарел).
  • Blowfish — блок 64 бита, ключи от 32 до 448 бит, 16 раундов.
  • Twofish — блок 128 бит, ключи до 256 бит, 16 раундов.
  • Camellia — японский стандарт, блок 128 бит, ключи 128/192/256 бит, 18/24 раундов.

Источники

  • Шеннон К. «Теория связи в секретных системах» (1949).
  • NIST. «Advanced Encryption Standard (AES)» (FIPS PUB 197, 2001).
  • Национальный стандарт РФ ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».
  • Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography» (1996).
  • Schneier B. «Applied Cryptography: Protocols, Algorithms, and Source Code in C» (1996).

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

На главную BFOmetr →