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

Симметричный алгоритм блочного шифрования

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

История развития

Ранние этапы

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

Развитие в 1990-х годах

В ответ на ограничения DES был разработан алгоритм Triple DES (3DES), который применял DES трижды с разными ключами, обеспечивая эффективную длину ключа до 112 или 168 бит. Однако 3DES был медленным и ресурсоёмким. В 1997 году NIST объявил конкурс на создание нового стандарта — Advanced Encryption Standard (AES). Победителем в 2000 году стал алгоритм Rijndael, разработанный бельгийскими криптографами Йоаном Дайменом и Винсентом Рейменом. AES использует блоки 128 бит и ключи длиной 128, 192 или 256 бит.

Современный этап

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

Основные принципы работы

Структура блочного шифра

Симметричный блочный шифр представляет собой совокупность двух взаимно обратных преобразований: шифрования \( E_K(P) = C \) и расшифрования \( D_K(C) = P \), где \( K \) — ключ, \( P \) — блок открытого текста, \( C \) — блок шифротекста. Алгоритм использует итеративную структуру, состоящую из нескольких раундов (циклов), каждый из которых включает комбинацию подстановок (S-блоки), перестановок (P-блоки) и операций с ключом (XOR, сложение по модулю).

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

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

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

Ключевое расписание

Из основного ключа \( K \) с помощью алгоритма ключевого расписания (Key Schedule) генерируются раундовые ключи \( K_1, K_2, \dots, K_r \), которые используются в каждом раунде. Качество ключевого расписания влияет на стойкость шифра к атакам на связанные ключи.

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

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

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

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

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

По области применения

  • Стандартные шифры — AES, ГОСТ, 3DES.
  • Лёгкие шифры — для встраиваемых систем (PRESENT, SPECK, SIMON).
  • Специализированные шифры — для защищённой голосовой связи (ZUC).

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

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

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

  • Полный перебор — проверка всех возможных ключей; для 128-битного ключа требуется \( 2^{128} \) операций, что практически невозможно при современном уровне вычислительных мощностей.
  • Линейный криптоанализ — использует линейные аппроксимации S-блоков; эффективен против DES, но не против AES.
  • Дифференциальный криптоанализ — анализирует влияние разностей открытых текстов на разности шифротекстов; современные шифры проектируются с учётом этой атаки.
  • Атаки по сторонним каналам — используют время выполнения, потребление энергии или электромагнитное излучение для восстановления ключа. Требуют аппаратных контрмер.

Криптостойкость

Стойкость блочного шифра оценивается по:

  • Вычислительной стойкости — минимальное количество операций для взлома (например, \( 2^{128} \) для AES-128).
  • Лавинному эффекту — изменение одного бита открытого текста должно приводить к изменению примерно половины битов шифротекста.
  • Отсутствию слабых ключей — некоторые шифры (например, DES) имеют ключи, при которых шифрование становится тривиальным.

Применение

Защита данных

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

  • Протоколах TLS/SSL — для шифрования веб-трафика (AES-256-GCM).
  • Шифровании дисков — BitLocker (AES-CBC), LUKS (AES-XTS).
  • Беспроводных сетях — WPA2 (AES-CCMP), WPA3 (AES-GCMP).
  • Электронной почте — PGP (AES-128).

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

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

Финансовый сектор

Банковские транзакции, системы SWIFT и платёжные карты (EMV) используют блочные шифры (3DES, AES) для шифрования PIN-кодов и данных с магнитной полосы.

Примеры алгоритмов

АлгоритмДлина блока (бит)Длина ключа (бит)РаундыАрхитектураСтандарт
AES128128/192/25610/12/14SP-сетьNIST
ГОСТ 28147-896425632Сеть ФейстеляГОСТ
«Кузнечик»12825610SP-сетьГОСТ Р 34.12-2015
3DES64112/16848Сеть ФейстеляNIST
Blowfish6432–44816Сеть ФейстеляНет

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

  • Алгоритм AES был выбран из 15 кандидатов после открытого международного конкурса, в котором участвовали криптографы из 12 стран.
  • ГОСТ 28147-89 долгое время был засекречен и опубликован только в 1994 году.
  • В 2017 году был опубликован алгоритм «Кузнечик», который стал первым российским блочным шифром, основанным на SP-сети.
  • Некоторые блочные шифры (например, RC5) допускают настраиваемую длину блока и ключа.
  • Атака на DES с полным перебором была впервые продемонстрирована в 1998 году с помощью специального устройства Deep Crack, которое взломало ключ за 56 часов.

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

  • Управление ключами — главная проблема симметричных шифров: необходимо безопасно передавать и хранить ключ. Для решения этой проблемы используются гибридные криптосистемы, где симметричный ключ шифруется асимметричным алгоритмом.
  • Уязвимости режимов — режим ECB может раскрывать повторяющиеся блоки (например, в изображениях). Режимы CBC и CTR требуют уникального вектора инициализации.
  • Квантовая угрозаалгоритм Гровера позволяет ускорить полный перебор в квадратичной степени (для 128-битного ключа — \( 2^{64} \) операций), что делает AES-128 уязвимым для квантовых компьютеров. AES-256 остаётся стойким ( \( 2^{128} \) операций).
  • Атаки по сторонним каналам — программные реализации без контрмер могут быть взломаны с помощью анализа времени выполнения или энергопотребления.

Источники

  1. Федеральный закон РФ «Об информации, информационных технологиях и о защите информации» от 27.07.2006 № 149-ФЗ.
  2. ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».
  3. ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования».
  4. NIST FIPS 197 — Advanced Encryption Standard (AES), 2001.
  5. Шнайер Б. «Прикладная криптография» — 2-е издание, 1996.
  6. Стинсон Д. «Криптография: теория и практика» — 3-е издание, 2006.

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

На главную BFOmetr →