Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Структура ключа и исходных данных

Основополагающая концепция алгоритма

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

Рисунок 1. Структура алгоритма AES

После начального раунда, во время которого осуществляется логическая операция исключающего или первого ключа раунда и незашифрованного текста (операция «Addroundkey»), следуют девять одинаково структурированных раундов. Каждый раунд состоит из следующих операций:

  • замещение байтов;
  • сдвиг строк;
  • перемешивание столбцов;
  • добавление ключа раунда.

Десятый раунд подобен раундам с первого по девятый, но без операции перемешивания столбцов. Ниже поясняются эти четыре операции.

Структура ключа и исходных данных

И ключ, и исходные данные (называемые также «состоянием») структурированы в виде матрицы байтов размером 4x4. На рисунке 2 показано, как 128-битовый ключ и исходные данные распределяются по байтовым матрицам.

Рисунок 2. Структура ключа и состояния

Замещение байтов (операция «Subbytes»)

Операция «Subbytes» - это нелинейное замещение. Это основная причина надёжности шифрования алгоритма AES. Существуют различные способы интерпретации операции замещения байтов. В этом отчёте достаточно представить этап замещения байтов как поиск по таблице. С помощью этой таблицы поиска 16 байт состояния (исходных данных) замещаются соответствующими значениями, найденными в таблице (рисунок 3).

Рисунок 3. Операция замещения байтов

Сдвиг строк (операция «Shiftrows»)

Как явствует из самого названия, операция сдвига строк обрабатывает различные строки. Эта операция просто осуществляет циклическое смещение на различную величину смещения. Вторая строка исходных данных в виде байтовой матрицы 4x4 (состояния) смещается в матрице на один байт влево, третья строка смещается на два байта влево, а четвёртая строка смещается на три байта влево. Первая строка остаётся без изменений. На рисунке 4 показана работа операции сдвига строк.

Рисунок 4. Операция сдвига строк

Перемешивание столбцов (операция «Mixcolumns»)

Операция перемешивания столбцов, вероятно, является самой сложной с точки зрения её программной реализации. На рисунке 5 показано, как работает операция перемешивания столбцов.

Рисунок 5. Операция перемешивания столбцов

В отличие от операции сдвига строк, которая работает со строками в матрице состояния 4x4, операция перемешивания столбцов обрабатывает столбцы.

В принципе, необходимо выполнить только умножение матрицы. Чтобы сделать эту операцию обратимой, не используются обычные сложение и умножение. В AES используются операции в поле Галуа. В этой статье мы не углубляемся в математические подробности, важно только знать, что в поле Галуа сложение соответствует логической операции исключающего ИЛИ, а умножение имеет более сложный эквивалент.

Тот факт, что в матрице умножения операции перемешивания столбцов много членов вида «01», облегчает реализацию этой операции на компьютере.

Добавление ключа раунда (операция «Addroundkey»)

Операция добавления ключа раунда проста. Здесь осуществляется операция исключающего ИЛИ с соответствующими байтами исходных данных и полученным ключом (рисунок 6).

Рисунок 6. Операция добавления ключа раунда

Формирование ключей (операция «Keyexpansion»)

Как указывалось выше, операция «Keyexpansion» означает процесс, в результате которого из 128 бит изначального ключа формируется одиннадцать ключей раундов длиной 128 бит.

Чтобы получить ключ раунда (n+1) из ключа раунда (n), выполняются следующие действия: 1. Получают новый первый столбец следующего ключа раунда, как показано на рисунке 7.

Рисунок 7. Получение первого столбца следующего ключа раунда

Сначала все байты старого четвёртого столбца необходимо заместить с помощью операции «Subbytes». Эти четыре байта сдвигаются вертикально на один байт, а затем выполняется логическая операция исключающего ИЛИ этих байтов со старым первым столбцом. В результате этих действий получается новый первый столбец. 2. Столбцы со 2 по 4 нового ключа раунда рассчитываются так:

  • [новый второй столбец] = [новый первый столбец] XOR [старый второй столбец]
  • [новый третий столбец] = [новый второй столбец] XOR [старый третий столбец]
  • [новый четвёртый столбец] = [новый третий столбец] XOR [старый четвёртый столбец]

На рисунке 8 показан расчёт столбцов 2-4 нового ключа раунда.

Рисунок 8. Получение других столбцов следующего ключа раунда

 



<== предыдущая лекция | следующая лекция ==>
Комплекс систем безопасности и систем по управлению и преодолению аварий | Методы оценки емкости рынка
Поделиться с друзьями:


Дата добавления: 2016-03-26; Мы поможем в написании ваших работ!; просмотров: 417 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получится - вы тоже правы. © Генри Форд
==> читать все изречения...

2212 - | 2156 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.