FIPS PUB 197
FIPS PUB 197 (Federal Information Processing Standard Publication 197) — это федеральный стандарт обработки информации США, официально утверждённый Национальным институтом стандартов и технологий (NIST) 26 ноября 2001 года, который определяет алгоритм симметричного блочного шифрования AES (Advanced Encryption Standard). Данный стандарт пришёл на смену устаревшему DES (Data Encryption Standard) и стал основным криптографическим алгоритмом для защиты конфиденциальной информации в государственных учреждениях США, а также де-факто мировым стандартом в области шифрования данных.
История создания
Предпосылки и конкурс AES
К концу 1990-х годов алгоритм DES (FIPS PUB 46), разработанный в 1970-х годах, перестал отвечать требованиям безопасности из-за увеличения вычислительных мощностей и возможности атаки полным перебором ключа (56-битный ключ стал уязвим). В 1997 году NIST объявил открытый международный конкурс на создание нового стандарта симметричного шифрования — AES (Advanced Encryption Standard). К участию были допущены алгоритмы, удовлетворяющие ряду требований: длина ключа не менее 128 бит, размер блока 128 бит, высокая скорость работы как в программной, так и в аппаратной реализации, а также устойчивость к известным криптоаналитическим атакам.
Выбор алгоритма Rijndael
На конкурс было подано 15 заявок из разных стран. После трёх раундов анализа и публичного обсуждения, в октябре 2000 года NIST объявил победителем алгоритм Rijndael, разработанный бельгийскими криптографами Йоаном Дайменом (Joan Daemen) и Винсентом Рэйменом (Vincent Rijmen). 26 ноября 2001 года стандарт был официально опубликован как FIPS PUB 197. В отличие от оригинального Rijndael, который поддерживал переменные размеры блока (128, 192, 256 бит) и ключа, стандарт AES зафиксировал размер блока 128 бит, а длины ключей — 128, 192 и 256 бит.
Техническое описание
Общая структура
AES является блочным шифром, работающим с 128-битными блоками данных. Шифрование выполняется последовательностью преобразований, называемых раундами. Количество раундов зависит от длины ключа:
Каждый раунд (кроме последнего) состоит из четырёх этапов:
- SubBytes — нелинейная замена каждого байта блока с использованием S-блока (таблицы подстановки).
- ShiftRows — циклический сдвиг строк состояния (матрицы 4×4 байт).
- MixColumns — перемешивание столбцов состояния с помощью умножения в поле Галуа GF(2⁸).
- AddRoundKey — наложение раундового ключа (XOR) на состояние.
В последнем раунде этап MixColumns опускается.
Расширение ключа
Из исходного ключа с помощью алгоритма расширения (Key Expansion) генерируется набор раундовых ключей. Для AES-128 требуется 11 ключей (начальный + 10 раундовых), для AES-192 — 13, для AES-256 — 15. Процедура расширения использует циклические сдвиги, S-блок и константы раунда (Rcon).
Математические основы
Все операции AES выполняются в конечном поле GF(2⁸), что обеспечивает высокую стойкость к линейному и дифференциальному криптоанализу. S-блок построен на основе мультипликативной инверсии в GF(2⁸) и аффинного преобразования, что гарантирует нелинейность и отсутствие фиксированных точек.
Криптоанализ и безопасность
Известные атаки
На момент публикации FIPS PUB 197 считался криптостойким. За более чем 20 лет существования не было найдено практических атак, которые позволяли бы взломать полный AES быстрее, чем полным перебором ключа. Теоретические атаки (например, атака на основе связанных ключей или атака на основе боковых каналов) существуют, но требуют либо нереалистичных условий, либо имеют вычислительную сложность, близкую к полному перебору.
- Атака на основе боковых каналов (Side-Channel Attack): использует утечки информации (время выполнения, энергопотребление, электромагнитное излучение) при аппаратной реализации. Защита от таких атак реализуется на уровне программного или аппаратного обеспечения (например, маскирование, константное время выполнения).
- Квантовый криптоанализ: с помощью алгоритма Гровера теоретически можно сократить сложность перебора ключа для AES-128 до 2⁶⁴ операций, что вдвое уменьшает эффективную длину ключа. Однако AES-256 остаётся устойчивым к квантовым атакам (сложность 2¹²⁸).
Сертификация и стандартизация
FIPS PUB 197 является обязательным для использования в несекретных, но чувствительных системах правительства США. Алгоритм AES также одобрен Агентством национальной безопасности (NSA) для защиты информации уровня SECRET (AES-128 и AES-192) и TOP SECRET (AES-256). В России алгоритм AES не входит в перечень утверждённых государственных стандартов шифрования (ГОСТ 28147-89 и ГОСТ Р 34.12-2015), однако широко применяется в коммерческих и международных продуктах.
Применение
Государственные и военные системы
AES используется в правительственных сетях, системах электронного документооборота, шифровании баз данных и средств связи. Например, стандарт Suite B, разработанный NSA, включает AES-256 для защиты секретной информации.
Коммерческие протоколы и продукты
- Wi-Fi Protected Access 2 (WPA2) и WPA3: используют AES-CCMP для шифрования трафика в беспроводных сетях.
- TLS/SSL: протоколы защиты интернет-соединений (HTTPS) поддерживают шифрование AES в режимах GCM, CCM, CBC.
- BitLocker (Microsoft): шифрование дисков на базе AES-128 и AES-256.
- FileVault (Apple): шифрование дисков macOS.
- IPsec: защита IP-пакетов в VPN-соединениях.
- ZIP-архивы (AES-256) и программы-архиваторы (7-Zip, WinRAR).
Криптовалюты и блокчейн
Некоторые криптовалюты (например, Monero) используют AES для шифрования транзакций. В алгоритмах хеширования (например, SHA-256) AES не применяется, но может использоваться в схемах доказательства работы (Proof of Work) на основе AES.
Режимы работы
FIPS PUB 197 описывает только сам алгоритм шифрования. Для практического применения используются режимы работы блочного шифра, определённые в других стандартах (например, NIST SP 800-38A):
- ECB (Electronic Codebook) — базовый режим, не рекомендуется из-за уязвимости к статистическим атакам.
- CBC (Cipher Block Chaining) — режим сцепления блоков, требует вектор инициализации (IV).
- CFB (Cipher Feedback) — режим обратной связи по шифротексту.
- OFB (Output Feedback) — режим обратной связи по выходу.
- CTR (Counter) — режим счётчика, параллелизуемый, рекомендуется для высокопроизводительных систем.
- GCM (Galois/Counter Mode) — режим аутентифицированного шифрования, обеспечивающий конфиденциальность и целостность.
Производительность и реализация
Программная реализация
AES эффективно реализуется на современных процессорах с поддержкой инструкций AES-NI (Intel, AMD). Наличие аппаратного ускорения позволяет достигать скорости шифрования до нескольких гигабайт в секунду. На устройствах без аппаратной поддержки (например, микроконтроллеры) реализация может быть медленнее, но всё равно остаётся приемлемой для большинства задач.
Аппаратная реализация
AES широко применяется в аппаратных криптографических модулях (HSM), смарт-картах, USB-токенах, FPGA и ASIC. Специализированные чипы обеспечивают высокую производительность и защиту от атак по боковым каналам.
Интересные факты
- Название «Rijndael» является комбинацией фамилий авторов: Daemen и Rijmen.
- Первоначально алгоритм Rijndael поддерживал 9, 11 и 13 раундов для ключей длиной 128, 192 и 256 бит соответственно, но NIST изменил количество раундов на 10, 12 и 14 для повышения запаса безопасности.
- AES-256 требует примерно на 40% больше вычислительных ресурсов, чем AES-128, но обеспечивает значительно больший запас прочности.
- В 2019 году NIST опубликовал обновлённую версию FIPS PUB 197 (FIPS 197-upd1), которая уточнила некоторые технические детали, но не изменила сам алгоритм.
Источники
- FIPS PUB 197, National Institute of Standards and Technology, 2001.
- Daemen, J., Rijmen, V. «The Design of Rijndael: AES — The Advanced Encryption Standard», Springer, 2002.
- NIST Special Publication 800-38A, «Recommendation for Block Cipher Modes of Operation», 2001.
- «AES Algorithm and Its Implementation», NIST, 2001.
- «The Advanced Encryption Standard (AES): A Review», Journal of Cryptography, 2020.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →