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

Блочный шифр

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

История

Ранние разработки (до 1970-х годов)

Первые попытки создания блочных шифров относятся к XIX веку, когда использовались механические устройства, такие как шифровальные диски и роторные машины (например, «Энигма»). Однако они не были блочными в современном понимании, так как обрабатывали символы по одному. Концепция блочного шифра в её современном виде начала формироваться в 1970-х годах с развитием компьютерной криптографии.

Стандарт DES (1977)

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

Стандарт AES (2001)

В 2001 году NIST объявил конкурс на новый стандарт шифрования, победителем которого стал алгоритм Rijndael, разработанный бельгийскими криптографами Йоаном Дайменом и Винсентом Рэйменом. Он был принят как AES (Advanced Encryption Standard) и использует блоки длиной 128 бит с ключами 128, 192 или 256 бит. AES стал мировым стандартом, применяемым в правительственных системах США (для документов уровня «секретно» и «совершенно секретно»), коммерческих продуктах и интернет-протоколах (TLS, Wi-Fi Protected Access).

Российский стандарт ГОСТ 28147-89

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

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

Основные компоненты

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

Сеть Фейстеля

Многие классические блочные шифры (например, DES, ГОСТ 28147-89) построены по схеме сети Фейстеля, предложенной британским криптографом Хорстом Фейстелем в 1973 году. В этой схеме блок данных делится на две половины (левую и правую), и на каждом раунде одна половина преобразуется с помощью раундовой функции, зависящей от ключа, а затем объединяется с другой половиной через операцию XOR. Преимущество сети Фейстеля — обратимость алгоритма без необходимости инвертировать раундовую функцию, что упрощает реализацию как шифрования, так и расшифрования.

Подстановочно-перестановочная сеть (SP-сеть)

Современные шифры, такие как AES, используют подстановочно-перестановочную сеть (SP-сеть), где каждый раунд включает три этапа:

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

Режимы работы

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

  • ECB (Electronic Codebook): каждый блок шифруется независимо. Уязвим к атакам по шаблону, так как одинаковые блоки открытого текста дают одинаковые блоки шифротекста.
  • CBC (Cipher Block Chaining): каждый блок перед шифрованием объединяется с предыдущим блоком шифротекста через XOR. Требует инициализационного вектора (IV) для первого блока.
  • CFB (Cipher Feedback): преобразует блочный шифр в поточный, шифруя предыдущий блок шифротекста и объединяя его с открытым текстом.
  • OFB (Output Feedback): генерирует поток ключевых данных, которые объединяются с открытым текстом.
  • CTR (Counter): использует счётчик, который шифруется для каждого блока, что позволяет параллельно обрабатывать данные. Широко применяется в современных протоколах.

Классификация блочных шифров

По структуре

  • Сеть Фейстеля: DES, ГОСТ 28147-89, Blowfish, Twofish.
  • SP-сеть: AES, Serpent, Кузнечик (ГОСТ Р 34.12-2015).
  • Другие схемы: IDEA (смешанная структура), RC5 (зависит от вращений).

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

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

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

  • Короткие ключи (56–64 бита): DES, ГОСТ 28147-89 (256 бит, но с 64-битным блоком). Считаются недостаточно стойкими.
  • Средние ключи (128–192 бита): AES-128, AES-192.
  • Длинные ключи (256 бит и более): AES-256, ГОСТ Р 34.12-2015 (256 бит).

Применение

Защита данных в покое

Блочные шифры используются для шифрования файлов, дисков и баз данных. Например, AES применяется в программах шифрования дисков (BitLocker, VeraCrypt), архиваторах (7-Zip, WinRAR) и системах управления базами данных (MySQL, PostgreSQL).

Защита данных в передаче

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

  • TLS/SSL: для защиты веб-трафика (HTTPS) применяются AES, Camellia, ГОСТ.
  • IPsec: для защиты IP-пакетов используется AES в режиме CBC или CTR.
  • Wi-Fi (WPA2/WPA3): для защиты беспроводных сетей применяется AES в режиме CCMP (Counter Mode with CBC-MAC).

Криптографические протоколы

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

  • Хэш-функции: на основе блочных шифров (например, MDC-2, Davies-Meyer) строятся хэши.
  • Коды аутентификации сообщений (MAC): CBC-MAC, CMAC (на основе блочного шифра).
  • Генераторы псевдослучайных чисел: режимы CTR и OFB позволяют создавать поток случайных битов.

Государственные и военные системы

В России блочные шифры ГОСТ Р 34.12-2015 (Магма и Кузнечик) обязательны к применению в государственных информационных системах, обрабатывающих персональные данные и информацию ограниченного доступа. Аналогичные требования существуют в США (AES) и Китае (SM4).

Стойкость и атаки

Криптоанализ

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

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

Квантовая угроза

Квантовые компьютеры, использующие алгоритм Гровера, могут сократить время полного перебора ключа: для 128-битного ключа потребуется 2^64 операций, что делает AES-128 уязвимым в перспективе. AES-256 (требует 2^128 квантовых операций) считается стойким к квантовым атакам в обозримом будущем.

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

AES (Rijndael)

  • Длина блока: 128 бит.
  • Длина ключа: 128, 192 или 256 бит.
  • Количество раундов: 10 (128-битный ключ), 12 (192-битный), 14 (256-битный).
  • Статус: стандарт NIST, широко применяется в мире.

DES

  • Длина блока: 64 бита.
  • Длина ключа: 56 бит (эффективная).
  • Количество раундов: 16.
  • Статус: устарел, заменён на AES.

ГОСТ 28147-89

  • Длина блока: 64 бита.
  • Длина ключа: 256 бит.
  • Количество раундов: 32.
  • Статус: заменён на ГОСТ Р 34.12-2015 (Магма и Кузнечик).

Кузнечик (ГОСТ Р 34.12-2015)

  • Длина блока: 128 бит.
  • Длина ключа: 256 бит.
  • Количество раундов: 10.
  • Статус: действующий российский стандарт.

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

  • Название «блочный шифр» происходит от принципа обработки данных — блоками фиксированной длины, в отличие от поточных шифров, работающих с потоком битов.
  • Алгоритм AES был выбран в результате открытого конкурса NIST, в котором участвовали 15 кандидатов из разных стран.
  • В 2017 году группа исследователей продемонстрировала атаку на AES-256 с использованием квантового компьютера D-Wave, но она была ограничена и не представляла практической угрозы.
  • Российский стандарт ГОСТ 28147-89 долгое время был засекречен и опубликован только в 1994 году.

Источники

  • Шнайер Б. «Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си» (1996).
  • Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography» (1996).
  • NIST. «Announcing the Advanced Encryption Standard (AES)» (2001).
  • ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».
  • Daemen J., Rijmen V. «The Design of Rijndael: AES — The Advanced Encryption Standard» (2002).

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

На главную BFOmetr →