Advanced Encryption Standard
Advanced Encryption Standard (AES) — это симметричный алгоритм блочного шифрования, принятый в качестве стандарта правительством США в 2001 году. AES является преемником стандарта DES (Data Encryption Standard) и в настоящее время широко используется по всему миру для защиты электронных данных, обеспечивая высокий уровень криптостойкости и производительности. Алгоритм основан на принципе подстановочно-перестановочной сети (SP-сеть) и оперирует блоками данных фиксированной длины в 128 бит.
История
В 1997 году Национальный институт стандартов и технологий США (NIST) объявил конкурс на разработку нового стандарта шифрования, который должен был заменить устаревающий DES. Основными требованиями к алгоритму были: высокая криптостойкость, эффективность реализации как в программном, так и в аппаратном обеспечении, а также открытость и отсутствие патентных ограничений.
На конкурс было подано 15 заявок от криптографов со всего мира. После нескольких раундов анализа и публичного обсуждения, в октябре 2000 года победителем был объявлен алгоритм Rijndael, разработанный бельгийскими криптографами Джоан Даймен и Винсентом Рэйменом. 26 ноября 2001 года AES был официально опубликован как федеральный стандарт обработки информации США (FIPS PUB 197). С этого момента он получил широкое распространение в коммерческих и государственных системах, включая правительственные сети США, где используется для защиты информации с грифом «секретно» (некоторые модификации — для информации с грифом «совершенно секретно»).
Описание алгоритма
AES является блочным шифром, то есть шифрует данные не побитово, а целыми блоками фиксированного размера. Размер блока составляет 128 бит (16 байт). Длина ключа может быть 128, 192 или 256 бит, что определяет количество раундов шифрования: 10, 12 и 14 раундов соответственно.
Структура раунда
Входные данные (блок открытого текста) представляются в виде двумерного массива байтов размером 4×4, называемого состоянием (state). Каждый раунд, за исключением последнего, состоит из четырёх последовательных преобразований:
- SubBytes (замена байтов): Каждый байт состояния заменяется на другой байт в соответствии с фиксированной таблицей замены (S-блоком). S-блок построен на основе математических операций в конечном поле Галуа, что обеспечивает нелинейность преобразования.
- ShiftRows (сдвиг строк): Строки состояния циклически сдвигаются влево. Первая строка не сдвигается, вторая — на 1 байт, третья — на 2, четвёртая — на 3. Эта операция обеспечивает перемешивание данных между столбцами.
- MixColumns (смешивание столбцов): Каждый столбец состояния преобразуется путём умножения слева на фиксированную матрицу в конечном поле Галуа. Эта операция обеспечивает диффузию — влияние каждого байта открытого текста на несколько байтов шифротекста.
- AddRoundKey (добавление раундового ключа): Состояние побитово складывается по модулю 2 (XOR) с раундовым ключом, который вычисляется из исходного ключа шифрования с помощью процедуры расширения ключа.
Перед первым раундом выполняется начальное добавление раундового ключа (AddRoundKey), а в последнем раунде операция MixColumns не выполняется. Процесс расшифрования использует обратные преобразования (InvSubBytes, InvShiftRows, InvMixColumns) и раундовые ключи в обратном порядке.
Размеры ключей и раунды
| Размер ключа (бит) | Количество раундов | Длина расширенного ключа (слов по 32 бита) |
|---|---|---|
| 128 | 10 | 44 |
| 192 | 12 | 52 |
| 256 | 14 | 60 |
Классификация
AES относится к следующим категориям криптографических алгоритмов:
- Симметричное шифрование: Один и тот же ключ используется как для шифрования, так и для расшифрования.
- Блочный шифр: Шифрует данные блоками фиксированной длины (128 бит).
- Алгоритм с ключом: Стойкость шифрования полностью определяется секретностью ключа.
Применение
AES является одним из самых распространённых криптографических алгоритмов в мире. Он используется в самых разных областях:
- Защита данных в покое: Шифрование файлов на жёстких дисках (BitLocker, FileVault, LUKS), баз данных, архивов (ZIP, RAR с шифрованием AES).
- Защита данных в пути: Протоколы SSL/TLS (безопасность веб-сайтов), VPN (IPsec, OpenVPN), Wi-Fi (WPA2/WPA3), SSH (безопасный удалённый доступ).
- Государственные и военные системы: В США AES сертифицирован для защиты несекретной и секретной информации. В России AES не является государственным стандартом, но широко применяется в коммерческих продуктах.
- Электронные платежи и банковские системы: Шифрование транзакций, данных банковских карт (EMV-чипы).
- Мобильные устройства: Шифрование памяти смартфонов (Android и iOS используют AES для шифрования пользовательских данных).
Криптостойкость
На 2025 год AES считается криптостойким алгоритмом. Наиболее эффективные атаки на полный AES (например, атаки на основе связанных ключей или биклиновые атаки) снижают сложность взлома лишь незначительно (например, для AES-128 с 2^128 до 2^126.1 операций), что не представляет практической угрозы.
- Атаки полным перебором (Brute Force): Для AES-128 требуется 2^128 попыток, что невозможно при текущем уровне развития вычислительной техники.
- Линейный и дифференциальный криптоанализ: Разработчики AES специально оптимизировали S-блоки для противодействия этим атакам. На практике они неэффективны против полного числа раундов.
- Побочные каналы (Side-Channel Attacks): Атаки, основанные на анализе времени выполнения, энергопотребления или электромагнитного излучения, могут быть эффективны против программных реализаций, не защищённых от таких атак. Однако существуют методы защиты (например, маскирование, постоянное время выполнения).
- Квантовые атаки: Согласно алгоритму Гровера, квантовый компьютер может взломать AES-128 за 2^64 операций, что вдвое снижает эффективную стойкость. Для сохранения уровня безопасности рекомендуется использовать AES-256, который потребует 2^128 операций даже на квантовом компьютере.
Режимы работы
Поскольку AES является блочным шифром, для шифрования данных произвольной длины он используется в одном из режимов работы. Наиболее распространённые режимы:
- ECB (Electronic Codebook): Каждый блок шифруется независимо. Прост и быстр, но нестоек к статистическому анализу (одинаковые блоки открытого текста дают одинаковые блоки шифротекста). Рекомендуется к использованию только для шифрования коротких и случайных данных (например, ключей).
- CBC (Cipher Block Chaining): Каждый блок перед шифрованием складывается по модулю 2 с предыдущим блоком шифротекста. Требует инициализационного вектора (IV) для первого блока. Обеспечивает хорошую диффузию, но не допускает параллельного шифрования.
- CTR (Counter): Превращает блочный шифр в поточный. Генерируется псевдослучайная последовательность (гамма), которая складывается с открытым текстом. Допускает параллельное шифрование и расшифрование, а также произвольный доступ к данным.
- GCM (Galois/Counter Mode): Режим аутентифицированного шифрования, который обеспечивает не только конфиденциальность, но и целостность и подлинность данных (с помощью кода аутентификации). Широко используется в современных протоколах (TLS 1.3, IPsec).
Стандартизация в России
В Российской Федерации для государственных нужд и защиты информации, содержащей государственную тайну, применяется национальный стандарт шифрования ГОСТ 28147-89 (и его более современные версии — ГОСТ Р 34.12-2015, включающий алгоритмы «Магма» и «Кузнечик»). AES не является государственным стандартом в РФ, однако его использование не запрещено для коммерческих и частных целей. Многие российские компании (банки, разработчики ПО) активно применяют AES для защиты данных, не подпадающих под требования государственных стандартов.
Интересные факты
- Название Rijndael происходит от фамилий авторов: Rijndael (Даймен) и Ael (Рэймен).
- AES был разработан для замены DES, который был уязвим к атакам полным перебором из-за короткого 56-битного ключа.
- В 2003 году правительство США объявило, что AES может использоваться для защиты информации с грифом «секретно», а AES-256 — для информации с грифом «совершенно секретно».
- Алгоритм AES встроен в процессоры Intel (начиная с архитектуры Westmere) в виде набора инструкций AES-NI, что значительно ускоряет выполнение шифрования и расшифрования.
Источники
- FIPS PUB 197: Advanced Encryption Standard (AES), National Institute of Standards and Technology, 2001.
- Joan Daemen, Vincent Rijmen. The Design of Rijndael: AES — The Advanced Encryption Standard. Springer, 2002.
- William Stallings. Cryptography and Network Security: Principles and Practice. 7th ed., Pearson, 2017.
- Bruce Schneier. Applied Cryptography: Protocols, Algorithms and Source Code in C. 20th Anniversary Edition, Wiley, 2015.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →