1.1.3 Стандарт AES
Еще одним симметричным алгоритмом, но с иным типом архитектуры
является, так называемый, «квадрат» или алгоритм Rijndael [29], который
использован в стандарте AES (Advanced Encryption Standard).
В отличие от сети Фейстеля за раунд шифрования шифруется весь блок
данных, а преобразования касаются как отдельных байтов массива, так и строк,
и столбцов.
Отличием AES и Rijndael является размер обрабатываемого блока и
размеры ключей. – AES имеет фиксированный размер блока 128 бит и размеры
ключей 128, 192 и 256 бит. В случае Rijndael могут быть заданы любые
размеры блока и ключа, от 32 бит до 256 бит.
В общем виде алгоритм AES представляет блок данных в виде
двухмерного байтового массива размером 4X4, 4X6 или 4X8. Число раундов
определяется: размерностью ключа шифрования и размерностью блока
данных. В таблице 1.4 представлены возможные параметры алгоритма.
Таблица 1.4
Параметры алгоритма AES
Ключ
Число 32-
битных слов
ключа
Nk
Число 32-битных
слов входных
данных
Nb
Число
раундов
шифрования
Nr
128 бит
4
4
10
192 бит
6
4
12
256 бит
8
4
14
26
Основным
элементом
алгоритма
AES
является
байт
–
последовательность 8 бит, которые обрабатываются, как единое целое. Для
формирования байтов 128-битовые блока открытого текста, выходного блока
шифротекста и ключа шифра делятся на группы из 8-ми бит так, чтобы в целом
получился массив байт.
Основные положения алгоритма:
-На первом этапе алгоритма происходит формирование столбцов
матрицы из массива данных, которые будут шифроваться. Каждый элемент
матрицы представляет собой 8 бит:
in0
in4
in8
in12
in1
in5
in9
in13
in2
in6
in10
in14
in3
in7
in11
in15
- В результате работы алгоритма будет получена матрица с
элементами out:
out0
out4
out8
out12
out1
out5
out9
out13
out2
out6
out10
out14
out3
out7
out11
out15
- Промежуточные результаты раундов шифрования хранятся в матрице
state:
s 00
s 01
s 02
s 03
s 10
s 11
s 12
s 13
s 20
s 21
s 22
s 23
s 30
s 31
s 23
s 33
- Ключ для данного алгоритма также представляется в виде матрицы,
например, для ключа длиной 128 бит:
k 0
k 4
k 8
k 12
k 1
k 5
k 9
k 13
k 2
k 6
k 10
k 14
k 3
k 7
k 11
k 15
27
Четыре байта в каждом столбце матрицы состояний и ключа можно
рассматривать как одно 32-х битовое слово.
Поэтому матрица состояний – это массив из 4 слов: w 0 , w 1 , w 2 , w 3 , где
w 0 { s 00 s 10 s 20 s 30 };
w 1 { s 01 s 11 s 21 s 31 };
w 2 { s 02 s 12 s 22 s 32 };
w 3 { s 03 s 13 s 23 s 33 }.
матрица ключа – это массив из 4 слов: w 0 , w 1 , w 2 , w 3 , где
w 0 { k 0 k 4 k 8 k 12 };
w 1 { k 1 k 5 k 9 k 13 };
w 2 { k 2 k 6 k 10 k 14 };
w 3 { k 3 k 7 k 11 k 14 }.
Раундовые ключи будут формироваться из слов матрицы ключа с
помощью специального алгоритма (см. рис. 1.4). Будет сформирована
последовательность из 44 слов (каждое слово по 32 бита): w 0, w 1, w 2, ..., w
43. Формирование раундовых ключей осуществляется с помощью расширения
ключа. На каждый раунд шифрования подаются по четыре слова этой
последовательности.
Слова в ключевом массиве w 0, w 1, w 2, w 3 являются 0-вым ключом.
Слова в ключевой матрице w 4, w 5, w 6, w 7 являются 1-вым раундовым
ключом
Ключи для каждого последующего раунда формируются на основании
ключей предыдущего:
w i+5 = w i+4
⊕ w i+1
w i+6 = w i+5
⊕ w i+2
w i+7 = w i+6
⊕ w i+3
Первое слово в раундовых ключах формируется следующим образом:
w i+4 = w i
⊕ g(w i+3)
Функция g представляет собой последовательность операций:
28
- Циклический сдвиг влево RotWord: { w 0, w 1, w2, w3 } –> { w 1, w 2,
w3, w0 }
- Замена каждого полученного байта SubWord осуществляется в
соответствии с таблицей замен
- Операция XOR данных с уникальной для каждого раунда постоянной
Rcon [i]
Рисунок 1.4 - Формирование раундовых ключей
В каждом раунде алгоритма шифрования последовательно выполняется
четыре преобразования:
1. BS (ByteSub) - табличная замена каждого байта массива (см. рис. 1.5) в
соответствии с таблицей замен Sbox
Рисунок 1-5 - Операция табличной замены
29
2. SR (ShiftRow) - сдвиг строк массива (см. рис. 1.6). При этой операции
первая строка остается без изменений, а остальные циклически побайтно
сдвигаются влево на фиксированное число байт, зависящее от размера массива.
Например, для массива размером 4X4 строки 2, 3 и 4 сдвигаются
соответственно на 1, 2 и 3 байта
Рисунок 1.6 - Операция сдвига строк массива
3. MC (MixColumn) - операция над независимыми столбцами массива (см.
рис. 1.7), когда каждый столбец по определенному правилу умножается на
фиксированную матрицу [15]
30
Рис. 1-7. Операция умножения матрицы на фиксированную матрицу c(x)
4. AK (AddRoundKey) - добавление раундового ключа. Каждый бит
массива складывается по модулю 2 с соответствующим битом ключа
раунда w (round*Nb+c) (см. рис. 1.8).
Рисунок 1.8 - Операция добавления раундовых ключей
В каждом раунде (с некоторыми исключениями) над шифруемыми
данными поочередно выполняются перечисленные преобразования (см. рис.
1.9). Исключения касаются первого и последнего раундов: перед первым
раундом дополнительно выполняется операция AK, а в последнем раунде
отсутствует MC. В результате последовательность операций при
зашифровании выглядит так: AK, {BS, SR, MC, AK} (повторяется R-1 раз), BS,
SR, AK.
31
Рисунок 1.9 - Раунд алгоритма AES {BS, SR, MC, AK} (R-1 раз)
Раунд при расшифровании данных осуществляется с помощью
обратных операций:
1.
Шаг BS: Таблица замен представляет собой инверсную таблицу,
с помощью, которой происходило шифрование
2.
Шаг SR: Циклический сдвиг в операции SR происходит вправо, а
не влево
3.
Шаг MC: Умножение в операции МС осуществляется на матрицу
d(x), такую что d(x) * c(x) = 1
4.
Шаг AK: Повтор операции XOR с добавлением раундового
ключа.
Устойчивость алгоритма. В таблице 1.6 показано количество операций
необходимых при полном переборе.
Таблица 1.6
Количество операций при криптоатаке полным перебором для алгоритма AES
Ключ
Количество
операций
128 бит
2 ^ 127
192 бит
2 ^ 191
256 бит
2 ^ 255
Разработчики утверждают, что шифр устойчив против:
- дифференциального криптоанализа
- линейного криптоанализа
- криптоанализа на основе слабых ключей (слабых ключей в алгоритме нет)
С момента публикации стандарта проводились различные попытки вскрытия.
Результаты проведены в таблице 1.7.
32
Таблица 1.7
Результаты попыток вскрытия алгоритма шифрования AES
Способ вскрытия
Результат
Предпосылка
Метод бумеранга
2 ^ 119
предположение, что известна пара
открытый текст - шифротекст
Метод биклик
2 ^ 126.1
2 ^ 254.1
Атака с подобранным шифротекстом. Определяются
зависимости шифротекстов от внутренних состояний
для фрагментов различных ключей. Gроисходит
перебор ключа по частям
Атаки по побочным
каналам:
Атаки не связан с математическими особенностями
алгоритма.
Атака
на
основе
времени выполнения
каждой операции
200 млн
выбранных
шифротекстов
-
Поиск
случайных
аппаратных ошибок
2 ^ 32
-
Криптоанализ
по
потребленной
мощности
Успешно на
чипе ProASCI3
Проверка позволяет выявить аппаратные изменения в
микросхемах,
направленные
на
снятие
криптографической защиты, искажение ключей.
Do'stlaringiz bilan baham: |