Файл: Общая структура алгоритма Rijndael (aes).docx

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 57

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

а) тогда и только тогда, когда ;

б)

в)

г)
Подмножество M кольца R называется подкольцом, если оно само является кольцом при тех эе операциях сложения и умножения, которые определены в кольце R.

Так, кольцо четных чисел является подкольцом кольца целых чисел, а последнее в свою очередь - подкольцом кольца рациональных чисел.

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

Теорема 4. Для того чтобы непустое подмножество M кольца R было его подкольцом, необходимо и достаточно, чтобы сумма, разность и произведение любых двух элементов из M снова принадлежали M.

Все теоремы из раздела Кольца, выведенные для колец, остаются верными, в частности, для полей.

Как всякое кольцо, поле является группой относительно операции сложения. Все элементы поля, не равные нулю, образуют группу относительно операции умножения. Группа по сложению всех элементов поля называется аддитивной, а группа по умножению всех его элементов, отличных от нуля, - мультипликативной группой поля. Поле вполне определяется заданием двух этих групп, заданием произведений нуля на все элементы и требованием дистрибутивного закона для любых его элементов, включая нуль. Отсюда уже следует, что произведение любого элемента на нуль равно нулю.

Из свойств мультипликативной группы следует, что в поле существует единица, т. е. такой элемент e, что для любого
.

Теорема 5. Поле не имеет делителя нуля, т. е. если ab = 0, то либо a = 0, либо b = 0.

Теорема 6. Всякое конечное кольцо без делителей нуля, содержащее более одного элемента, является полем.

Теорема 7. (Свойства частного)
а) Если , то , тогда и только тогда, когда б) Если , то ;

в) Если , то ;

г) Если , то .

Существуют поля, содержащие элементы a ≠ 0 такие, что na = 0 при целом n, отличном от нуля. Так, в поле из двух элементов 0 и e имеем: 2e = e + e = 0. Справедливо утверждение:

Теорема 8. Для любого поля P имеет место один из двух случаев:

а) для любого элемента a ≠ 0 и любого целого числа n ≠ 0 кратное na также отлично от нуля;

б) существует единственное простое число p такое, что pa = 0 для любого элемента a. (Под простым числом понимается натуральное число, отличное от 1 и не делящееся ни на какое натуральное число, кроме 1 и самого себя)

Характеристикой поля P называется число 0, если na ≠ 0 для любого элемента a ≠ 0 и любого целого числа n ≠ 0 и простое число p такое, что pa = 0 для любого элемента a в противном случае. Так как для числа 1 и любого целого n будет n · 1 = n, то все числовые поля имеют характеристику 0.
1.3 Конечное поле
Конечное поле или поле Галуа - поле, состоящее из конечного числа элементов. Конечное поле обычно обозначается

или GF(q), где q - число элементов поля.

Свойства:

 Характеристика конечного поля является простым числом;

 Число элементов любого конечного поля есть его характеристика в натуральной степени
;
Для каждого простого числа p и натурального n существует конечное поле из элементов, единственное с точностью до изоморфизма. Это поле изоморфно полю разложения многочлена

;
 Мультипликативная группа конечного поля является циклической группой порядка ;

o В частности, в конечном поле всегда существует примитивный элемент , порядок которого равен , то есть и для
;
o Любой ненулевой элемент является некоторой степенью примитивного элемента

;
 Поле содержит в себе в качестве подполя
тогда и только тогда, когда является делителем .

Построение поля

где p - простое число, n - натуральное число, начинается с построения его простого подполя (которое совпадает со всем полем при n=1).

 Простое поле строится как кольцо вычетов по модулю p, которое в виду простоты не имеет делителей нуля и является полем.

Элементы - числа . Операции проводятся как с обычными целыми числами с приведением результата по модулю p;

 Поле при n>1 строится как факторкольцо

где - неприводимый многочлен степени n над полем .

Таким образом, для построения поля из элементов достаточно отыскать многочлен степени n, неприводимый над полем ;

Элементами поля K являются все многочлены степени меньшей n с коэффициентами из . Арифметические операции (сложение и умножение) проводятся по модулю многочлена , то есть, результат соответствующей операции - это остаток от деления на
с приведением коэффициентов по модулю p.

Для алгоримта AES (Rijndael) были разработаны собственные неприводимые полиномы в поле , а также операции сложения и умножения, рассмотренные в следующих разделах.

2. Основные определения и процедуры алгоритма
.1 Ключ шифра

является симметричным алгоритмом шифрования с ключем. Ключ может иметь длину 128, 192 и 256 бит. Алгоритмы с ключем длиной 128, 192 и 256 бит обозначаются соответственно как AES-128, AES-192, AES-256.
2.2 Блоки данных
Алгоритм AES оперирует блоками по 16 байт, представленными матрицами 4х4. В процессе обработки блоки в промежуточных состояниях обозначаются как “текущие”.
2.3 Ключи раундов
Алгоритм AES (AES-128, AES192, AES-256) расширяет ключ шифра и получает 10, 12 или 14 ключей раундов. Каждый ключ раунда имеет длину 128 бит. Алгоритм получения ключа раунда называется “расширением ключа” (KeyExpansion).
2.4 AddRoundKey
AddRoundKey(ref byte[,] state, byte[,] Key, int round) является 128-битным преобразованием, которое заключается в побитовой операции XOR двух аргументов state и Key, которые выступают в качестве “текущего” блока и ключа раунда. Операция XOR применяется для каждого байта state.

алгоритм key expansion кольцо
2.5 SubBytes и InvSubBytes
SubBytes - это 8-битное преобразование, которое определяется как аффинная функция , где A - двоичная матрица 8х8, а b - 8-битный вектор, как показано на рисунке 1.


Рисунок 1 - Преобразование SubBytes
Здесь обозначает инверсию над полем Галуа (конечным полем) , которое определяется полиномом (для краткости 0x11b).SubBytes является обратным преобразованием по отношению к SubBytes и определяется как