Опубликован: 19.01.2010 | Уровень: специалист | Доступ: платный
Дополнительный материал 16:

P. Упрощенный AES (S-AES)

P.3. Расширение ключа

Процедура расширения ключа создает три ключа раунда по 16 битов из единственного ключа шифра на 16 битов. Первые ключи раунда используются для предварительного преобразования ( AddRoundKey ); оставшиеся ключи применяются для последнего преобразования ( AddRoundKey ) в конце раунда 1 и раунда 2.

Процедура расширения ключей создает слово ключа раунда последовательно - слово за словом, где слово - массив 2 полубайта. Процедура создает 6 слов, которые обозначаются

w0, w1, w2, .....,w5.

Создание слов в S-AES

P.14 показывает, как создаются 6 слов из первоначального ключа.

Создание слов в S-AES

увеличить изображение
Рис. P.14. Создание слов в S-AES

Процесс создания слов в S-AES следующий:

  1. Первые два слова ( W0, W 1 ) создаются из ключа шифра. Ключи шифра представляют как массив из 4 полубайтов ( n0 - n3 ). Первые 2 полубайта ( n0, n1 ) образуют слово W0; следующие 2 полубайта ( n2, n3 ) образуют слово w1. Другими словами, конкатенация слов в этой группе копирует ключ шифра.
  2. Остальная часть слов ( wi i = 2 - 5 ) создается следующим образом:
    • Если. (i mod 2) = 0, w_{i} = t_{i} \oplus  w_{i-2}. Здесь ti - временное слово, является результатом применения к wi двух процедур: SubWord и RotWord операции ИСКЛЮЧАЮЩЕЕ ИЛИ к результату с константой раунда Rcon[Nr], где Nr - номер раунда. Другими словами, мы имеем
      t_{i} = SubWord\(RotWord\ (w_{i-1})) \oplus  RCon[N_{r}]

      Слова w2 и w4 создаются, используя этот процесс.

    • Если (i\ mod\ 2) \ne  0, w_{i} = w_{i-1} \oplus  w_{i-2}. На рисунке P.14 это означает, что каждое слово создается от слова слева и слова сверху. Слова w3 и w5 создаются, используя этот процесс.
RotWord

RotWord (вращение слова) - процедура, подобная преобразованию ShiftRows, но она применяется только к одной строке. Процедура получает слово как массив 2 полубайтов и сдвигает каждый полубайт влево с полным вращением (полный оборот) слова. В S-AES это заполнение 2 полубайтов в слове.

SubWord

SubWord (слово-заменитель) - процедура является подобной преобразованию SubNibbels, но она применяется только к 2 полубайтам. Процедура берет каждый полубайт в слове и заменяет его другим полубайтом. Она использует таблицы SubNibbels, показанные на рис. P.7.

Константы раунда

Каждая константа раунда, RC, является значением, содержащим 2 полубайта, в котором самый правый полубайт всегда нуль. Рисунок P.14 также показывает значение RC

Пример P.4

Таблица P.1 показывает, как вычисляется ключ для каждого раунда. При этом предполагается, что Алиса и Боб согласовали ключ 247516.

Таблица P.1. Пример расширения ключа
Раунд Значение ti Первое слово в раунде Второе слово в раунде Ключ раунда
0 w0 = 24 w1 = 75 K0 = 2475
1 t2 = 95 w_{2 }= 95 \oplus  24 = B1 w_{2 }= B1 \oplus  75 = С4 K0 = B1C4
2 t4 = EC w_{4 }= B1 \oplus   EC = 5D W_{5 }= 5D \oplus  С4 = 99 K2 = 5D99

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

RotWord\ (75) = 57  \to  SubWord\ (57) = 15  \to  t_{2} = 15 \oplus  RC[1] = 15 \oplus   80 = 95
\\
RotWord\ (C4) = 4C  \to  SubWord\ (4C) = DC  \to  t_{4} = DC \oplus  RC[2] = DC \oplus   30 = EC

P.4. Шифры

Теперь давайте посмотрим, как S-AES используют четыре типа преобразований для шифрования и дешифрования. Алгоритм шифрования будем называть шифратор, а алгоритм дешифрования - обратный шифратор.

S-AES - шифр не-Файстеля, и это означает, что каждое преобразование или группа преобразований должны быть обратимыми. Кроме того, шифратор и обратный шифратор должны использовать эти операции таким способом, при котором они отменяют друг друга. Ключи раунда должны использоваться в обратном порядке. Чтобы выполнить эти требования, преобразования применяются в установленном порядке в шифраторе и обратном шифраторе, как это показано на рис. P.15.

Шифратор и обратный шифратор исходного проекта

увеличить изображение
Рис. P.15. Шифратор и обратный шифратор исходного проекта

Первое: порядок использования SubNibbles и ShiftRows изменяется в обратном шифраторе. Второе: порядок MixColumns и AddRoundKey в обратном шифраторе также изменяется. Это отличие в порядке необходимо, чтобы сделать каждое преобразование в шифре соответствующим по порядку его инверсии в обратном шифраторе. Следовательно, алгоритм дешифрования в целом - инверсия алгоритма шифрования. Обратите внимание, что ключи раунда используются в обратном порядке.

Пример P.5

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

Исходный текст: 1A2316    Ключ: 247516        Зашифрованный текст: 3AD216

Рисунок P.16 показывает значение состояний в каждом раунде. Мы используем ключи раунда, сгенерированные в примере P.4.

Пример P.5

Рис. P.16. Пример P.5
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Р Алоев
Р Алоев
Россия
Татьяна Тренина
Татьяна Тренина
Россия, Челябинск