FIPS 197¶
FIPS 197 (Federal Information Processing Standard Publication 197) — это стандарт обработки федеральной информации, опубликованный Национальным институтом стандартов и технологий США (NIST). Он определяет алгоритм симметричного шифрования AES (Advanced Encryption Standard), который стал официальным стандартом шифрования для правительственных учреждений США и широко используется в коммерческих и открытых системах по всему миру.
¶История
Разработка FIPS 197 была инициирована в 1997 году, когда NIST объявил открытый конкурс на создание нового стандарта симметричного шифрования, который должен был заменить устаревший DES (Data Encryption Standard). DES, принятый в 1977 году, к концу 1990-х годов считался недостаточно стойким из-за короткой длины ключа (56 бит) и уязвимости к атакам полным перебором.
Конкурс NIST привлёк внимание криптографического сообщества. Было подано 15 кандидатов, каждый из которых проходил тщательный анализ на стойкость, производительность и гибкость. После нескольких раундов оценки, в октябре 2000 года, NIST объявил победителем алгоритм Rijndael, разработанный бельгийскими криптографами Йоаном Даменом и Винсентом Рэйменом. 26 ноября 2001 года NIST официально опубликовал FIPS 197, закрепив AES как стандарт.
¶Основные характеристики AES
AES, определённый в FIPS 197, является блочным шифром. Он обрабатывает данные блоками фиксированного размера и использует ключи симметричного шифрования.
¶Размеры блока и ключа
- Размер блока: 128 бит. Все операции шифрования выполняются над 16-байтовыми блоками данных.
- Длина ключа: 128, 192 или 256 бит. В зависимости от длины ключа, AES имеет три варианта: AES-128, AES-192 и AES-256. Количество раундов шифрования зависит от длины ключа: 10 раундов для 128-битного ключа, 12 для 192-битного и 14 для 256-битного.
¶Устройство алгоритма
AES представляет собой итеративный блочный шифр, основанный на сети подстановок и перестановок (SP-сеть). В отличие от шифра Фейстеля, AES обрабатывает весь блок данных одновременно, а не по половинам.
¶Раундовые преобразования
Каждый раунд шифрования (кроме последнего) состоит из четырёх этапов:
- SubBytes (замена байтов): Каждый байт в массиве данных заменяется на другой байт в соответствии с нелинейной таблицей замен (S-блоком). Этот этап обеспечивает нелинейность шифра.
- ShiftRows (сдвиг строк): Строки в 4x4-матрице байтов циклически сдвигаются влево. Вторая строка сдвигается на 1 позицию, третья — на 2, четвёртая — на 3. Этот этап обеспечивает перемешивание данных между столбцами.
- MixColumns (смешивание столбцов): Каждый столбец матрицы преобразуется с помощью линейного преобразования. Этот этап обеспечивает диффузию — изменение одного байта в столбце влияет на все байты этого столбца.
- AddRoundKey (добавление раундового ключа): Каждый байт текущего состояния XOR-ится с соответствующим байтом раундового ключа. Ключи для каждого раунда вычисляются из исходного ключа шифрования с помощью процедуры расширения ключа (Key Expansion).
В последнем раунде этап MixColumns не выполняется.
¶Расширение ключа
Из исходного ключа шифрования генерируется набор раундовых ключей. Для AES-128 из 128-битного ключа создаётся 10 раундовых ключей (по 128 бит каждый), которые используются в каждом раунде.
¶Классификация
FIPS 197 классифицирует AES как:
- Симметричный шифр: Один и тот же ключ используется для шифрования и расшифрования.
- Блочный шифр: Данные шифруются блоками фиксированного размера (128 бит).
- Итеративный шифр: Шифрование выполняется путём многократного повторения (итерации) набора раундовых преобразований.
¶Применение
AES, стандартизированный в FIPS 197, является одним из наиболее широко используемых алгоритмов шифрования в мире. Его применение охватывает множество областей:
- Правительственная связь: Используется для защиты секретной информации в правительственных учреждениях США (AES-192 и AES-256 одобрены для защиты информации уровня «Secret» и «Top Secret» соответственно).
- Беспроводные сети: Протоколы WPA2 и WPA3 для защиты Wi-Fi-сетей основаны на AES.
- Шифрование дисков: Программы и утилиты для полного шифрования дисков (например, BitLocker, FileVault, LUKS) используют AES.
- Интернет-безопасность: Протоколы TLS/SSL для защиты веб-трафика (HTTPS) широко применяют AES.
- Мобильные устройства: Шифрование данных в смартфонах и планшетах (например, в операционных системах iOS и Android) основано на AES.
- Криптовалюты: Некоторые криптовалюты используют AES для шифрования кошельков и транзакций.
- Стандарты сжатия и архивации: Форматы ZIP и 7z поддерживают шифрование с помощью AES.
¶Критика и уязвимости
Несмотря на высокую стойкость, AES не является абсолютно неуязвимым. За годы исследований были выявлены некоторые теоретические атаки, которые, однако, не представляют практической угрозы для корректно реализованного AES.
- Боковые каналы (Side-channel attacks): Атаки, основанные на анализе времени выполнения, энергопотребления или электромагнитного излучения устройства, выполняющего шифрование. Корректная реализация (например, с использованием константного времени выполнения) может предотвратить такие атаки.
- Атаки на основе связанных ключей (Related-key attacks): Теоретические атаки, которые требуют от атакующего возможности шифровать данные на нескольких ключах, связанных известным образом. Для AES-256 такая атака была продемонстрирована в 2009 году, но она не имеет практического применения в реальных условиях.
- Квантовые атаки: С развитием квантовых компьютеров, алгоритм Гровера может сократить эффективную длину ключа AES вдвое. Таким образом, AES-256 будет иметь стойкость, эквивалентную 128-битному ключу в классической модели. Однако для практической реализации такой атаки требуются квантовые компьютеры с миллионами кубитов, что пока недостижимо.
На сегодняшний день AES, определённый в FIPS 197, считается одним из самых надёжных и эффективных алгоритмов симметричного шифрования, не имеющим практических уязвимостей при корректной реализации и использовании ключей достаточной длины (не менее 128 бит).
¶Источники
- Federal Information Processing Standards Publication 197, November 26, 2001. Announcing the ADVANCED ENCRYPTION STANDARD (AES).
- Daemen, J., Rijmen, V. (2002). The Design of Rijndael: AES — The Advanced Encryption Standard. Springer.
- NIST. (2023). Advanced Encryption Standard (AES). Computer Security Resource Center.
- Biryukov, A., Khovratovich, D. (2009). Related-key Cryptanalysis of the Full AES-192 and AES-256. Advances in Cryptology — ASIACRYPT 2009.