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

Шифрование AES

Шифрование AES (Advanced Encryption Standard, стандарт расширенного шифрования) — это симметричный алгоритм блочного шифрования, принятый в качестве стандарта Национальным институтом стандартов и технологий США (NIST) в 2001 году. AES является одним из наиболее распространённых и широко используемых криптографических алгоритмов в мире, применяемым для защиты данных в различных сферах — от государственных систем до коммерческих приложений. Алгоритм основан на принципе подстановочно-перестановочной сети (SP-сеть) и использует фиксированный размер блока в 128 бит, с возможностью выбора длины ключа в 128, 192 или 256 бит.

История

Предпосылки создания

К середине 1990-х годов стандарт шифрования DES (Data Encryption Standard), принятый в 1977 году, начал устаревать. Его 56-битный ключ стал уязвим для атак полного перебора, а блочная структура на 64 бита считалась недостаточно надёжной для современных вычислительных мощностей. В 1997 году NIST объявил конкурс на создание нового стандарта шифрования, который должен был быть более стойким, эффективным и открытым.

Конкурс AES

В конкурсе участвовало 15 кандидатов, представленных криптографами из разных стран. После трёх раундов анализа, включавшего проверку на устойчивость к криптоаналитическим атакам, производительность на различном оборудовании и гибкость реализации, в октябре 2000 года победителем был объявлен алгоритм Rijndael, разработанный бельгийскими криптографами Джоан Даймен и Винсентом Рэйменом. 26 ноября 2001 года NIST официально опубликовал AES как федеральный стандарт обработки информации (FIPS PUB 197).

Принятие и распространение

В 2002 году AES был одобрен правительством США для защиты секретной информации (с ключом 128 бит для уровня «Secret» и 192 или 256 бит для «Top Secret»). Впоследствии алгоритм был включён в международные стандарты ISO/IEC 18033-3, а также стал обязательным компонентом многих протоколов безопасности, таких как TLS, IPsec, Wi-Fi Protected Access 2 (WPA2) и 3 (WPA3), BitLocker и FileVault.

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

Структура алгоритма

AES является блочным шифром, который обрабатывает данные блоками по 128 бит (16 байт). Ключ шифрования может иметь длину 128, 192 или 256 бит, что определяет количество раундов преобразования: 10, 12 и 14 раундов соответственно. Каждый раунд, за исключением последнего, состоит из четырёх последовательных операций:

  1. SubBytes (замена байтов): каждый байт блока заменяется на другой байт в соответствии с нелинейной таблицей замен (S-блоком). Эта операция обеспечивает нелинейность шифрования, что затрудняет криптоанализ.
  2. ShiftRows (сдвиг строк): байты в каждой строке блока циклически сдвигаются влево на определённое количество позиций (первая строка — 0, вторая — 1, третья — 2, четвёртая — 3). Это обеспечивает перемешивание данных между столбцами.
  3. MixColumns (смешивание столбцов): каждый столбец блока преобразуется с помощью линейного преобразования (умножения на фиксированную матрицу в поле Галуа). Эта операция смешивает байты внутри столбцов, усиливая диффузию.
  4. AddRoundKey (добавление раундового ключа): каждый байт блока складывается по модулю 2 (XOR) с соответствующим байтом раундового ключа, который вычисляется из исходного ключа с помощью процедуры расширения ключа (Key Expansion).

В последнем раунде операция MixColumns не выполняется. Процесс расшифровки использует обратные операции: InvSubBytes, InvShiftRows, InvMixColumns и AddRoundKey.

Расширение ключа

Из исходного ключа шифрования с помощью алгоритма расширения (Key Schedule) генерируется набор раундовых ключей — по одному на каждый раунд плюс начальный ключ. Для ключа длиной 128 бит требуется 11 раундовых ключей (по 128 бит каждый), для 192 бит — 13, для 256 бит — 15.

Классификация и варианты

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

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

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

Криптостойкость и безопасность

Атаки на AES

На 2025 год AES считается криптостойким алгоритмом. Наиболее известные атаки, такие как атаки на связанные ключи (related-key attacks), были продемонстрированы на уменьшенных версиях AES (например, на 7 или 8 раундах), но не на полном стандарте. Атаки по сторонним каналам (side-channel attacks), такие как анализ времени выполнения или потребления энергии, могут быть эффективны против программных или аппаратных реализаций, но не против самого алгоритма. Для защиты от них применяются методы маскирования и балансировки.

Квантовоустойчивость

С развитием квантовых вычислений возникает угроза для многих криптосистем. Алгоритм Гровера позволяет ускорить полный перебор ключа, снижая эффективную стойкость AES-128 до 64 бит, AES-192 до 96 бит и AES-256 до 128 бит. Таким образом, AES-256 считается устойчивым к квантовым атакам с использованием алгоритма Гровера, хотя и требует удвоения длины ключа.

Применение

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

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

Коммерческое и бытовое использование

Стандартизация

AES включён в стандарты:

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

Источники

  1. National Institute of Standards and Technology. (2001). FIPS PUB 197: Advanced Encryption Standard (AES).
  2. Daemen, J., & Rijmen, V. (2002). The Design of Rijndael: AES — The Advanced Encryption Standard. Springer.
  3. National Institute of Standards and Technology. (2001). NIST Special Publication 800-38A: Recommendation for Block Cipher Modes of Operation.
  4. ISO/IEC 18033-3:2010. Information technology — Security techniques — Encryption algorithms — Part 3: Block ciphers.
  5. Bernstein, D. J. (2005). Cache-timing attacks on AES. Preprint.

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

На главную BFOmetr →