Система Orphus

Блочный шифр стандарта AES

Advanced Encryption Standard - блочный шифр принятый стандартом шифрования правительством США по результатам конкурса AES.

Основные характеристики

  • размер входного блока - 128 бит.
  • ключ - 128/192/256 бит,
  • размер выходного блока - 128 бит.

Алгоритм шифрования

  • Key Expansion
  • Initial
    • Add round key
  • 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 (Замена байтов)

  • Замена байтов - нелинейная операция.
  • Действует независимо на каждый байт текущего состояния.
  • Таблица замены является обратимой и формируется последовательным применением двух преобразований
    • байт a представляется как элемент поля Голуа a(x)\in\mathbb{GF}(2^8) и заменяется на обратный элемент a^{-1}(x),
    • к обратному байту применяется аффинное преобразование:
\begin{Vmatrix}
y_0\\
y_1\\
y_2\\
y_3\\
y_4\\
y_5\\
y_6\\
y_7\\
\end{Vmatrix}=\begin{Vmatrix}
1&0&0&0&1&1&1&1\\
1&1&0&0&0&1&1&1\\
1&1&1&0&0&0&1&1\\
1&1&1&1&0&0&0&1\\
1&1&1&1&1&0&0&0\\
0&1&1&1&1&1&0&0\\
0&0&1&1&1&1&1&0\\
0&0&0&1&1&1&1&1
\end{Vmatrix}\cdot \begin{Vmatrix}
x_0\\
x_1\\
x_2\\
x_3\\
x_4\\
x_5\\
x_6\\
x_7
\end{Vmatrix}+\begin{Vmatrix}
1\\
1\\
0\\
0\\
0\\
1\\
1\\
0
\end{Vmatrix}.

ShiftRows (Сдвиг строк)

  • Операция сдвига строк действует независимо на каждую строку текущего состояния.
  • Каждую строку матрицы состояния под номером i циклически сдвигает в влево на i позиций.

MixColums (Перемешивание столбцов)

  • Операция перемешивания столбцов действует независимо на каждый столбец состояния.
  • Столбцы рассматриваются как многочлен над полем \mathbb{GF}(2^8) и умножаются по модулю многочлена 0\mathrm{x}01y^4+0\mathrm{x}01 на фиксированный многочлен \bold{c}(y)
\bold{c}(y)=0\mathrm{x}03y^3+0\mathrm{x}01y^2+0\mathrm{x}01y+0\mathrm{x}02.
\begin{Vmatrix}
b_i^1\\
b_i^2\\
b_i^3\\
b_i^4
\end{Vmatrix}=\begin{Vmatrix}
0\mathrm{x}02&0\mathrm{x}03&0\mathrm{x}01&0\mathrm{x}01\\
0\mathrm{x}01&0\mathrm{x}02&0\mathrm{x}03&0\mathrm{x}01\\
0\mathrm{x}01&0\mathrm{x}01&0\mathrm{x}02&0\mathrm{x}03\\
0\mathrm{x}03&0\mathrm{x}01&0\mathrm{x}01&0\mathrm{x}02
\end{Vmatrix}\cdot\begin{Vmatrix}
a_i^1\\
a_i^2\\
a_i^3\\
a_i^4
\end{Vmatrix}

AddRaundKey (Добавление ключа раунда)

Сложение по модулю 2 матрицы состояния и матрицы ключа текущего раунда.

Процедура получения ключа текущего раунда

Матрица ключа текущего раунда получается из исходного ключа шифра с помощью специальной процедуры, состоящей из расширения ключа - Key Expansion и выбора раундового ключа.

Криптостойкость

  • В отличие от большинства других шифров AES имеет простое математическое описание.

Атака по сторонним каналам

Атаки по сторонним каналам не связаны с математическими особенностями шифра, но используют определённые особенности реализации систем, использующих данные шифры, с целью раскрыть частично или полностью секретные данные, в том числе ключ. Известно несколько подобных атак на системы, использовавшие алгоритм AES.

  • В апреле 2005 года Daniel J. Bernstein опубликовал работу с описанием атаки, использующей для взлома информацию о времени выполнения каждой операции шифрования. Данная атака потребовала более 200 миллионов выбранных шифротекстов для нахождения ключа.
  • В октябре 2005 года Даг Арне Освик, Ади Шамир и Эран Трумер представили работу с описанием нескольких атак, использующих время выполнения операций для нахождения ключа. Одна из представленных атак получала ключ всего-лишь после 800 операций шифрования. Атака требовала от криптоаналитика возможности запускать программы на той же системе, где выполнялось шифрование.
  • В декабре 2009 года была опубликована работа, в которой использование дифференциального анализа ошибок позволило восстановить ключ за 232 операций.

Система Orphus

Комментарии