Генерация ключевой последовательности — КиберПедия 

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

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Генерация ключевой последовательности

2018-01-13 367
Генерация ключевой последовательности 0.00 из 5.00 0 оценок
Заказать работу

Ключ шифрования выбирается из случайной последовательности бит и его размер равен 128, 192 или 256 бит. Размеры блока данных и ключа шифрования могут быть выбраны независимо. Их соотношение определяется в соответствии с таблицей «число раундов шифрования». В каждом раунде используется свой раундовый ключ Кr и их массив генерируется из ключа шифрования пользователя с использованием описанной ниже процедуры "развертывания" ключа.

Как и блок данных и ключ может быть представлен в виде массива байтов:

K = (k 1, k 2,..., k nk), nk - размер ключа в байтах, nk Î {16, 24, 32}.

Алгоритм развертывания ключа оперирует 32-битовыми ключевыми словами Ki, интерпретируя их как четырехбайтовые массивы:

Ki = (ki 0, ki 1, ki 2, ki 3), | kij | = 8 бит.

Первые q = n K / 4 ключевых слов получаются простым разделением ключа K на 4-байтовые фрагменты аналогично тому, как байтами шифруемого блока заполняются столбцы матрицы данных:

K 0 = (k 0, k 1, k 2, k 3),
K 1 = (k 4, k 5, k 6, k 7),

..................................

K q- 1 = (k nk -4, k nk -3, k nk -2, k nk -1),

 

Необходимое число ключевых элементов на 1 больше числа раундов r, каждый ключевой элемент по размеру равен блоку данных (nB байт) и содержит qk = nk/ 4 ключевых слов. Таким образом, всего необходимо Q = (r +1)* q k ключевых слов. Например, для длины блока 128 бит и 10 раундов требуется 1408 бит ключа. Первые q ключевых слов составлены из байтов ключа пользователя как показано выше, остальные Q - q вырабатываются по следующему алгоритму:

При размере ключа 16 или 24 байта (q Î{4,6}) используется следующая итерационная формула:

а при размере ключа 32 байта (q = 8) следующая формула:

В приведенных выше формулах использованы следующие обозначения:

· S (K) - побайтовая замена 32-битового слова, т.е. замена всех четырех входящих в него байтов с использованием штатного узла замен S шифра:
если K = (k 0, k 1, k 2, k 3), то S (K) = (S [ k 0], S [ k 1], S [ k 2], S [ k 3]);

· R - циклический сдвиг 4-байтового вектора на один элемент влево:
если K = (k 0, k 1, k 2, k 3), то Rß (K) = (k 1, k 2, k 3, k 0);

· P j - 4-байтовый вектор (раундовая константа), задаваемый следующей формулой:
Pj = (02 j -1, 00, 00, 00), где возведение в степень выполняется в ранее описанном конечном поле GF(28).

P j- 1 = (00, 02 j -2, 00, 00), j = i/q.

Таким образом, все усложняющее преобразование может быть представлено в следующей форме:

S (Rß (K)) Å Pj = (S [ k 1] Å 02 j -1, S [ k 2], S [ k 3], S [ k 0]).

Как видно из приведенных выше соотношений, ключевые слова вырабатываются порциями, по размеру равными ключу, причем первое слово каждой порции вырабатывается по усложненной схеме с использованием приведенного выше нелинейного преобразования, а остальные - простым побитовым суммированием непосредственно предшествующего элемента с элементом, имеющим тот же порядковый номер в предыдущей порции ключевых слов. При размере ключа 256 бит (32 байта) усложнение используется также и при выработке каждого пятого элемента порции - при нумерации с нуля он имеет индекс 4 в группе из q слов.

Каждые последовательно выработанные qB ключевых слов, включая те, что получены непосредственно из ключа, объединяются в раундовые ключи:

Kr 0 = (K 0, K 1,…, Kqb- 1),

Kr 1 = (K qb, K qb+ 1,…, K 2 qb- 1),

..........................................

Krr = (K rqb, K rqb+ 1,…, KQ).

Алгоритм выработки ключей и выбор раундовых ключей показан
на рис. 3.5.

 
 

 

 


Рис.3.5. Развертывание ключа и выбор раундовых ключей для N b = 6 и N k = 4.

Дешифрование

Дешифрование в Rijndael алгоритмически эквивалентно шифрованию, однако между этими двумя процедурами имеются определенные различия, гораздо более существенные, чем в стандарте DES, где все сводится к порядку использования ключевых элементов. Дешифрование отличается от шифрования по следующим четырем пунктам:

1. Ключевые элементы используются в порядке, обратном тому, в котором они используются при шифровании. Кроме того, все ключевые элементы, кроме первого и последнего, должны быть умножены слева на матрицу, обратную матрице M. Таким образом, если при шифровании используется следующая последовательность ключевых элементов

Kr 0, Kr 1, Kr 2 ,..., Krr- 1, Krr,

то при дешифровании должна быть использована следующая последовательность элементов:

Krr, M -1× Krr- 1,..., M -1× Krr- 2, M -1× Krr- 1, Kr 0.

2. На шаге побайтовой замены используется узел замен S -1 обратный тому, что применяется в процедуре шифрования S. Таблица узла замен S -1 приведена в приложении 5, таблица 2. Это означает, что каково бы ни было байтовое значение b, всегда справедливо следующее соотношение:

S -1[ S [ b ]] = b.

3. На шаге построчного вращения матрицы данных осуществляется циклический сдвиг строк на то же самое количество элементов, что и при шифровании, но в обратную сторону - вправо. Либо, в силу свойств операции циклического сдвига, можно осуществить вращение строк матрицы в ту же сторону, что и при шифровании, т.е. влево, но на другое количество элементов, вычисляемое по следующей формуле:

С i ' = n - Ci, i = 2¸4.

Константы циклического сдвига влево строк матрицы в процедуре дешифрования в зависимости от числа столбцов матрицы данных приведены

в следующей ниже таблице:

N b      
С2'      
С3'      
С4'      

 

4. На шаге умножения слева на постоянную матрицу используется матрица M -1, обратная используемой при шифровании матрице M:

 

М -1 = 0E 0B 0D  
  0E 0B 0D
0D   0E 0B
0B 0D   0E

 

Для выработки ключевой последовательности используется такая же схема, что и при шифровании. При дешифровании необходимо выработать ту же самую последовательность элементов, переставить их в обратном порядке, и все элементы, кроме крайних, умножить слева на матрицу M -1, как это указано в соответствующем разделе.

Процесс дешифрования по стандарту AES показан в приложении 6.

Ключевая последовательность K длиной 128 (192, 256) бит данных поступает на блок расширения ключа БРК, где формируется ключевая последовательность из 4-х байтовых слов, из которой в дальнейшем берутся раундовые ключи. Исходный массив зашифрованного блока данных С длиной 128 (192, 256) бит, поступает на схему сложения по модулю 2, где производится сложение по модулю 2 с раундовым ключом блока Krr. Над данными в блоке S -1 осуществляется преобразование нелинейной замены байт, результат которого поступает на блок циклического сдвига вправо, где осуществляется построчное вращение матрицы данных (сдвиг строк вправо). Результат данной операции заносится в блок памяти БП. С выхода блока БП массив данных складывается по модулю 2 в соответствующем блоке с последующим раундовым ключом Krr -1 блока БРК. В блоке *M -1 производится умножение массива данных предшествующего блока на постоянную матрицу М-1. После преобразований в блоках S -1 и циклического сдвига вправо результат заносится опять в БП. Данное преобразование повторяется (r -1) раз, где r – число раундов. Результат дешифрования блока C формируется на входе схемы сложения по модулю 2, где производится сложение результата (r -1) – числа преобразований с последним раундовым ключом блока БРК. После схемы сложения по модулю 2 будет получен открытый текст М.


Поделиться с друзьями:

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.02 с.