Опубликован: 19.01.2010 | Уровень: специалист | Доступ: свободно
Лекция 10:

Усовершенствованный стандарт шифрования (AES — Advanced Encryption Standard)

< Лекция 9 || Лекция 10: 12345 || Лекция 11 >
Алгоритм

Алгоритм 10.1 — простой алгоритм для процедуры расширения ключа (версия AES-128).

\tt\parindent0pt

KeyExpansion ([$key_{0}$ to $key_{15}$], [$w_{0}$ to $w_{43}$]

\{ 

for (i = 0 to 3) 

$w_{i} \gets  key_{4i} + key_{4i+1} + key_{4i+2} + key_{4i+3}$

\ for (i = 4 to 43) 

\ \{ 

\ \ \ if (i mod 4 $\ne$  0)  $w_{i} \gets  w_{i-1} + w_{i-4}$

\ \ \ else

\ \ \ \{ 

\ \ \ \ \ t $\gets$  SubWord (RotWord ($w_{i-1}$)) $\oplus$  $RCon_{i/4}$

\ \ \ \ \ $w_{i} \gets  t + w_{i-4}$ \ \ \ \ \     // t  is a temporary word

\ \ \ \} 

\ \} 

\}
10.1. Программа на псевдокоде для расширения ключей в AES128

Пример 10.1

Таблица 10.3 показывает, как вычисляются ключи для каждого раунда. Предполагается, что между Алисой и Бобом согласован ключ шифра на 128 битов — (24 75 A2 B3 34 75 56 88 31 E2 12 00 13 AA 54 87) 16.

Таблица 10.3. Пример расширения ключей
Раунд Значения t Первое слово в раунде Второе слово в раунде Третье слово в раунде Четвертое слово в раунде
- w00=2475A2B3 w01=34755688 w02=31E21200 w03=13AA5487
1 AD20177D w04=8955B5CE w05=BD20E346 w06=8CC2F146 w07=9F68A5C1
2 470678DB w08=CE53CD15 w09=73732E53 w10=FFB1DF15 w11=60D97AD4
3 31DA48DO w12=FF8985C5 w13=8CFAAB96 w14=734B7483 w15=2475A2B3
4 47AB5B7D w16=B822DEB8 w17=34D8752E w18=479301AD w19=54010FFA
5 6C762D20 w20=D454F398 w21=E08C86B6 w22=A71F871B w23=F31E88E1
6 52C4F80D w24=86900B95 w25=661C8D23 w26=C1030A38 w27=321D82D9
7 E4133523 w28=62833EB6 w29=049FB395 w30=C59CB9AD w31=F7813B74
8 8CE29268 w32=EE61ACDE w33=EAFE1F4B w34=2F62A6E6 w35=D8E39D92
9 OA5E4F61 w36=E43FE3BF w37=OEC1FCF4 w38=21A35A12 w39=F940C780
10 3PC6CD99 w40=DBF92E26 w41=D538D2D2 w42=F49B88CO w43=ODDB4F40

В каждом раунде вычисление последних трех слов очень просто. Для вычисления первого слова мы должны сначала вычислить значение временного слова (t). Например, первое t (для раунда 1 ) вычислено как

RotWord (13AA5487) = AA548713 \to  SubWord (AA548713) = AC20177D 
\\
t = AC20177D \oplus  Rcon_{1} = AC20 17 7D \oplus  01000000_{16} = AD20177D

Пример 10.2

Каждый ключ раунда в AES зависит от предыдущих ключей раунда. Зависимость, однако, нелинейная из-за преобразования SubWord. Сложение констант раунда также гарантирует, что каждый ключ раунда будет отличаться от предыдущего.

Пример 10.3

Два множества ключей раунда могут быть созданы от двух шифроключей, которые различаются только в одном бите.


Как показывает таблица 10.4, имеются существенные разности между двумя соответствующими ключами раунда — R означает "раунд", B и D означают разность битов.

Таблица 10.4. Сравнение двух множеств ключей раунда
R. Ключи для множества 1 Ключи для множества 2 B.D.
- 1245A2A1 2331A4A3 B2CCAA34 C2BB7723 1245A2A1 2331A4A3 B2CCAB34 C2BB7723 01
1 F9B08484 DA812027 684D8A13 AAF6FD30 F9B08484 DA812027 684D8B13 AAF6FC30 02
2 B9E48028 6365AOOF OB282A1C A1DED72C B9008028 6381AOOF OBCC2B1C A13AD72C 17
3 AOEAF11A C38F5115 C8A77B09 6979AC25 3DOEF11A 5E8F5115 55437A09 F479AD25 30
4 1E7BCEE3 DDF49FF6 1553E4FF 7C2A48DA 839BCEA5 DD149FBO 8857E5B9 7C2E489C 31
5 EB2999F3 36DD0605 238EE2FA 5FA4AA20 A2C910B5 7FDD8F05 F78A6ABC 8BA42220 34
6 82852E3C B4582839 97D6CAC3 C87260E3 CB5AA788 B487288D 430D4231 C8A96011 56
7 82553FD4 360D17ED A1DBDD2E 69A9BDCD 588A2560 ECODODED AF004FDC 67A92FCD 50
8 D12F822D E72295CO 46F948EE 2F50F523 OB9F98E5 E7929508 4892DAD4 2F3BF519 44
9 99C9A438 7EEB31F8 38127916 17428C35 F2794CFO 15EBD9F8 5D79032C 7242F635 51
10 83AD32C8 FD460330 C5547A26 D216F613 E83BDABO FDD00348 AOA90064 D2EBF651 52

Пример 10.4

Понятие слабых ключей, которое мы обсуждали для DES в "Стандарт шифрования данных (DES)" , не применимо к AES. Предположим, что все биты в ключе шифра — нули. Ниже для этого случая показаны слова для некоторых раундов:


Все слова перед раундом и в первом раунде равны между собой. Во втором раунде первое слово соответствует третьему; второе слово соответствует четвертому. Однако после второго раунда совпадений нет; каждое слово различно.

Расширение ключа в AES-192 и AES-256

Алгоритмы расширения ключей в AES-192 и AES-256 — очень похожи на алгоритм расширения ключа в AES-128, со следующими отличиями:

1. В AES-192 слова сгенерированы в группы по шесть вместо четырех.

a. Ключ шифра создает первые шесть слов ( w0 к w5 ).

b. Если i\ mod\ 6 \ne  0, то {w_i} \leftarrow {w_{i - 1}} + {w_{i - 6}} ; иначе {w_i} \leftarrow t + {w_{i - 6}}.

1. В AES-256 слова сгенерированы в группы по восемь вместо четырех.

a. Ключ шифра создает первые восемь слов ( w0 до w7 ).

b. Если i{\text{ }}\bmod {\text{ }}8 \ne 0
, то {w_i} \leftarrow {w_{i - 1}} + {w_{i - 8}} ; иначе, wi <-t + wi-8.

c. Если i mod 4=0, но i{\text{ }}\bmod {\text{ }}8 \ne 0
, то wi = Subword (wi-1) + wi-8.

Анализ расширения ключа

Механизм расширения ключа в AES был разработан так, чтобы обеспечить несколько свойств, которые срывают действия криптоаналитика по раскрытию сообщения.

  1. Даже если Ева знает только часть ключа шифра или значения слов в некотором ключевом раунде, этого недостаточно: она еще должна найти остальную часть ключа шифра, прежде чем сможет найти ключи всех раундов. Это обеспечивается нелинейностью процесса расширения ключа, полученной с помощью преобразования SubWord.
  2. Два различных ключа шифра, независимо от того, как они соотносятся друг с другом, производят два расширения, которые отличаются по крайней мере в нескольких раундах.
  3. Каждый бит ключа шифра изменяется в нескольких раундов. Например, изменение единственного бита в ключе шифра изменяет некоторые биты в нескольких раундах.
  4. Использование констант, RCons, удаляет любую симметрию, которая может быть создана другими преобразованиями.
  5. В отличие от DES в AES отсутствуют любые слабые ключи.
  6. Процесс расширения ключа может быть легко реализован на всех платформах.
  7. Процедура расширения ключа может быть реализована без применения отдельных таблиц; вычисления могут быть сделаны с использованием полей GF(28) и FG(2).
< Лекция 9 || Лекция 10: 12345 || Лекция 11 >
Евгений Виноградов
Евгений Виноградов
Экстернат
Илья Сидоркин
Илья Сидоркин
Как получить диплом?
Ivan Iakimov
Ivan Iakimov
Израиль
Вадим Лелес
Вадим Лелес
Россия