Advanced Encryption Standard - блочный шифр принятый стандартом шифрования правительством США по результатам конкурса AES.
Основные характеристики
- размер входного блока - 128 бит.
- ключ - 128/192/256 бит,
- размер выходного блока - 128 бит.
Алгоритм шифрования
- Key Expansion
- Initial
- Rounds (10, 12 или 14)
- Sub bytes
- Shift rows
- Mix columns
- Add round key
- Final round
- Sub bytes
- Shift rows
- Add round key
Количество раундов зависит от длины ключа:
- для 128 бит - 10 раундов,
- для 196 бит - 12 раундов,
- для 256 бит - 14 раундов.
Описание одного раунда шифрования
Различные преобразования воздействуют на результат промежуточного шифрования называемого состоянием (State).
Состояние представляется матрицей байтов размером 4 на 4.
На вход этапа подается состояние полученное после прохождения предыдущего этапа. Первый этап получает на вход 128-битовый блок открытого текста, записанного в виде состояния.
SubBytes (Замена байтов)
- Замена байтов - нелинейная операция.
- Действует независимо на каждый байт текущего состояния.
- Таблица замены является обратимой и формируется последовательным применением двух преобразований
- байт представляется как элемент поля Голуа и заменяется на обратный элемент ,
- к обратному байту применяется аффинное преобразование:
.
ShiftRows (Сдвиг строк)
- Операция сдвига строк действует независимо на каждую строку текущего состояния.
- Каждую строку матрицы состояния под номером циклически сдвигает в влево на i позиций.
MixColums (Перемешивание столбцов)
- Операция перемешивания столбцов действует независимо на каждый столбец состояния.
- Столбцы рассматриваются как многочлен над полем и умножаются по модулю многочлена на фиксированный многочлен
- .
AddRaundKey (Добавление ключа раунда)
Сложение по модулю 2 матрицы состояния и матрицы ключа текущего раунда.
Процедура получения ключа текущего раунда
Матрица ключа текущего раунда получается из исходного ключа шифра с помощью специальной процедуры, состоящей из расширения ключа - Key Expansion и выбора раундового ключа.
Криптостойкость
- В отличие от большинства других шифров AES имеет простое математическое описание.
Атака по сторонним каналам
Атаки по сторонним каналам не связаны с математическими особенностями шифра, но используют определённые особенности реализации систем, использующих данные шифры, с целью раскрыть частично или полностью секретные данные, в том числе ключ. Известно несколько подобных атак на системы, использовавшие алгоритм AES.
- В апреле 2005 года Daniel J. Bernstein опубликовал работу с описанием атаки, использующей для взлома информацию о времени выполнения каждой операции шифрования. Данная атака потребовала более 200 миллионов выбранных шифротекстов для нахождения ключа.
- В октябре 2005 года Даг Арне Освик, Ади Шамир и Эран Трумер представили работу с описанием нескольких атак, использующих время выполнения операций для нахождения ключа. Одна из представленных атак получала ключ всего-лишь после 800 операций шифрования. Атака требовала от криптоаналитика возможности запускать программы на той же системе, где выполнялось шифрование.
- В декабре 2009 года была опубликована работа, в которой использование дифференциального анализа ошибок позволило восстановить ключ за 232 операций.
Комментарии