Симметричный алгоритм блочного шифрования
Симметричный алгоритм блочного шифрования — это класс криптографических алгоритмов, в которых для шифрования и расшифрования данных используется один и тот же ключ (симметричный ключ), а обработка информации производится блоками фиксированной длины. В отличие от поточных шифров, обрабатывающих данные побитно или побайтно, блочные шифры преобразуют целый блок открытого текста (обычно 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-кодов и данных с магнитной полосы.
Примеры алгоритмов
| Алгоритм | Длина блока (бит) | Длина ключа (бит) | Раунды | Архитектура | Стандарт |
|---|---|---|---|---|---|
| AES | 128 | 128/192/256 | 10/12/14 | SP-сеть | NIST |
| ГОСТ 28147-89 | 64 | 256 | 32 | Сеть Фейстеля | ГОСТ |
| «Кузнечик» | 128 | 256 | 10 | SP-сеть | ГОСТ Р 34.12-2015 |
| 3DES | 64 | 112/168 | 48 | Сеть Фейстеля | NIST |
| Blowfish | 64 | 32–448 | 16 | Сеть Фейстеля | Нет |
Интересные факты
- Алгоритм 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} \) операций).
- Атаки по сторонним каналам — программные реализации без контрмер могут быть взломаны с помощью анализа времени выполнения или энергопотребления.
Источники
- Федеральный закон РФ «Об информации, информационных технологиях и о защите информации» от 27.07.2006 № 149-ФЗ.
- ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».
- ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования».
- NIST FIPS 197 — Advanced Encryption Standard (AES), 2001.
- Шнайер Б. «Прикладная криптография» — 2-е издание, 1996.
- Стинсон Д. «Криптография: теория и практика» — 3-е издание, 2006.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →