AES-128
AES-128 — это симметричный блочный алгоритм шифрования, использующий ключ длиной 128 бит. Является одной из трёх утверждённых разновидностей стандарта AES (Advanced Encryption Standard), принятого в 2001 году Национальным институтом стандартов и технологий США (NIST). AES-128 обеспечивает шифрование данных блоками фиксированного размера (128 бит) и применяется для защиты конфиденциальной информации в различных сферах — от государственных систем до коммерческого программного обеспечения.
История
Предпосылки создания
До середины 1990-х годов основным стандартом симметричного шифрования в США был DES (Data Encryption Standard), разработанный в 1970-х годах. К концу 1990-х годов DES устарел: его ключ длиной 56 бит стал уязвим для атак полного перебора (brute-force), а производительность современных компьютеров позволяла взламывать DES за приемлемое время. В 1997 году NIST объявил конкурс на создание нового стандарта — AES.
Конкурс AES
В конкурсе участвовало 15 алгоритмов из разных стран. К финалу (1999 год) было отобрано пять кандидатов: MARS, RC6, Rijndael, Serpent и Twofish. Победителем в октябре 2000 года был объявлен алгоритм Rijndael, разработанный бельгийскими криптографами Йоаном Дайменом и Винсентом Рейменом. В декабре 2001 года NIST опубликовал стандарт FIPS PUB 197, официально утвердивший AES. В стандарт вошли три варианта с длиной ключа 128, 192 и 256 бит; AES-128 стал самым распространённым из-за баланса между скоростью и уровнем безопасности.
Принятие в мире
В 2002 году AES был одобрен правительством США для защиты информации, не составляющей государственную тайну (до уровня SECRET). В 2003 году Национальное агентство безопасности (NSA) разрешило использование AES-128 для защиты документов уровня SECRET, а для уровня TOP SECRET потребовались ключи длиной 192 или 256 бит. Впоследствии AES стал международным стандартом (ISO/IEC 18033-3) и вошёл в состав многих протоколов, включая TLS, IPsec, SSH, Wi-Fi Protected Access 2 (WPA2) и WPA3.
Алгоритм работы
Общая структура
AES-128 является шифром сети Фейстеля не является — он построен на основе подстановочно-перестановочной сети (Substitution-Permutation Network, SPN). Алгоритм оперирует с двумерным массивом байтов размером 4×4 (state), который представляет собой 128-битный блок данных.
Раунды
AES-128 выполняет 10 раундов преобразования (для ключей 192 и 256 бит — 12 и 14 раундов соответственно). Каждый раунд, кроме последнего, состоит из четырёх этапов:
- SubBytes (нелинейная замена) — каждый байт state заменяется на другой байт по таблице замен (S-box). S-box построен на основе обратного элемента в поле Галуа GF(2⁸) и аффинного преобразования, что обеспечивает нелинейность и устойчивость к дифференциальному и линейному криптоанализу.
- ShiftRows (циклический сдвиг строк) — строки state сдвигаются влево на разное число байтов: первая строка не сдвигается, вторая — на 1 байт, третья — на 2, четвёртая — на 3. Это обеспечивает перемешивание данных между столбцами.
- MixColumns (смешивание столбцов) — каждый столбец state умножается на фиксированную матрицу в поле Галуа. Этот этап отсутствует в последнем раунде.
- AddRoundKey (добавление раундового ключа) — state объединяется с раундовым ключом операцией XOR.
Расширение ключа
Из исходного 128-битного ключа с помощью алгоритма расширения (Key Expansion) генерируются 10 раундовых ключей. Каждый раундовый ключ имеет длину 128 бит и получается из предыдущего с использованием циклического сдвига, S-box и XOR с константой раунда (Rcon).
Классификация и варианты
По длине ключа
- AES-128 — 10 раундов, 128-битный ключ.
- AES-192 — 12 раундов, 192-битный ключ.
- AES-256 — 14 раундов, 256-битный ключ.
Все три варианта используют одинаковый размер блока (128 бит) и одинаковую структуру раундов, различаясь только числом раундов и процедурой расширения ключа.
Режимы шифрования
AES-128 оперирует с блоками фиксированной длины, поэтому для шифрования сообщений произвольной длины применяются режимы (modes of operation). Наиболее распространённые:
- ECB (Electronic Codebook) — каждый блок шифруется независимо. Уязвим к атакам по шаблонам, не рекомендуется для практического использования.
- CBC (Cipher Block Chaining) — каждый блок XOR-ится с предыдущим зашифрованным блоком. Требует вектор инициализации (IV).
- CTR (Counter) — шифруется счётчик, затем результат XOR-ится с открытым текстом. Позволяет параллельное шифрование.
- GCM (Galois/Counter Mode) — режим аутентифицированного шифрования, обеспечивающий как конфиденциальность, так и целостность данных.
Применение
Государственные и военные системы
AES-128 используется в правительственных учреждениях США для защиты несекретной и секретной информации. В России AES не является государственным стандартом (ГОСТ 28147-89 и его преемник «Кузнечик»), но применяется в коммерческих системах и международных протоколах.
Коммерческое ПО и протоколы
- TLS/SSL — защита веб-трафика (HTTPS). AES-128-GCM является одним из рекомендуемых шифров.
- IPsec — защита IP-пакетов в VPN.
- SSH — защита удалённого доступа.
- WPA2/WPA3 — шифрование Wi-Fi-сетей. WPA2 использует AES-CCMP, WPA3 — AES-GCM.
- Дисковое шифрование — BitLocker (Microsoft), FileVault (Apple), LUKS (Linux) поддерживают AES-128.
- Архиваторы — 7-Zip, WinRAR, WinZip поддерживают AES-128 для защиты архивов паролем.
Криптовалюты и блокчейн
AES-128 редко используется непосредственно в блокчейне, но применяется для шифрования кошельков и ключей в некоторых криптовалютных системах.
Безопасность
Криптоанализ
На 2025 год AES-128 считается криптостойким. Известны следующие теоретические атаки:
- Атака на основе связанных ключей — применима к некоторым вариантам AES, но требует специфических условий, не характерных для реальных систем.
- Бикликовая атака (Biclique attack) — в 2011 году предложена атака, снижающая сложность полного перебора AES-128 с 2¹²⁸ до 2¹²⁶,1 операций. Это не представляет практической угрозы, так как сложность остаётся астрономической.
- Квантовые атаки — алгоритм Гровера теоретически позволяет сократить сложность полного перебора до 2⁶⁴ операций, что делает AES-128 уязвимым для квантового компьютера с достаточным числом кубитов. Однако на практике такой компьютер ещё не создан. Для защиты от квантовых угроз рекомендуется использовать AES-256.
Атаки на реализацию
- Атаки по времени — измерение времени выполнения операций может раскрыть информацию о ключе. Для защиты применяются константные по времени реализации.
- Атаки по энергопотреблению — анализ мощности, потребляемой устройством, позволяет восстановить ключ. Используются в смарт-картах и аппаратных модулях.
- Атаки по кэшу — в многоядерных процессорах злонамеренный процесс может отслеживать доступ к памяти, что даёт информацию о ключе.
Критика и ограничения
Уязвимости в режимах
Сам по себе AES-128 является надёжным алгоритмом, но его безопасность зависит от правильного выбора режима шифрования и реализации. Например, режим ECB не обеспечивает семантической безопасности, а режим CBC уязвим к атакам с использованием оракула дополнения (padding oracle attack), если не реализован корректно.
Квантовая угроза
Хотя AES-128 пока не взломан, его стойкость к квантовым атакам (алгоритм Гровера) ниже, чем у AES-256. В связи с развитием квантовых вычислений многие организации (например, NSA) рекомендуют переходить на AES-256 для долгосрочной защиты.
Патентные ограничения
Алгоритм Rijndael был опубличен авторами без патентных ограничений, что способствовало его широкому распространению. Однако в некоторых странах (например, в России) существуют собственные национальные стандарты, что ограничивает применение AES в государственных информационных системах.
Интересные факты
- Название «Rijndael» составлено из фамилий авторов: Rijmen и Daemen.
- В стандарте AES размер блока фиксирован (128 бит), тогда как оригинальный Rijndael поддерживал размеры блока 128, 192 и 256 бит.
- S-box AES спроектирован так, чтобы быть устойчивым к дифференциальному криптоанализу — максимальная вероятность дифференциала составляет 2⁻⁶.
- В 2019 году компания Google сообщила о первой в мире демонстрации квантового превосходства на процессоре Sycamore, но это не повлияло на практическую безопасность AES-128, так как атака Гровера требует миллиарды кубитов.
Источники
- FIPS PUB 197. Advanced Encryption Standard (AES). National Institute of Standards and Technology, 2001.
- Daemen, J., Rijmen, V. The Design of Rijndael: AES — The Advanced Encryption Standard. Springer, 2002.
- Bogdanov, A., Khovratovich, D., Rechberger, C. Biclique Cryptanalysis of the Full AES. ASIACRYPT, 2011.
- Bernstein, D. J., Lange, T. Post-quantum cryptography. Nature, 2017.
- NIST Special Publication 800-38A. Recommendation for Block Cipher Modes of Operation, 2001.
- ГОСТ Р 34.12-2015. Информационная технология. Криптографическая защита информации. Блочные шифры.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →