Методические указания к лабораторной работе




Скачать 430.89 Kb.
страница3/6
Дата06.06.2016
Размер430.89 Kb.
1   2   3   4   5   6

3. МАТЕМАТИЧЕСКИЕ ОСНОВЫ AES


Алгоритм AES оперирует байтами, т.е. числами от 0 до 255 или 8-и разрядными двоичными числами. Все байты в AES интерпретируются как элементы конечного поля F(28). Конечное поле F  это множество произвольных элементов (членов множества), содержащее конечное число членов. Для элементов поля определены две бинарные операции: сложение двух элементов поля и умножение двух элементов поля, результатом которых для любых двух элементов поля является элемент поля. Среди элементов поля есть элемент «ноль», сложение с которым любого элемента дает в результате этот же элемент и умножение на который любого элемента дает элемент «ноль». Среди элементов поля есть элемент «единица», умножение на который любого элемента дает в результате этот же элемент. Для каждого элемента поля существует «мультипликативно обратный» элемент, произведение которых дает в результате элемент «единица».

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


3.1. Сложение


Сложение выполняется с помощью операции побитового сложения по модулю 2. Операция обозначается XOR или  и выполняется над двоичным представление числа поразрядно так, что 1  1 = 0, 1  0 = 0  1 = 1, 0  0 = 0.

Для двух байт A = {a7, a6, a5, a4, a3, a2, a1, a0}, где ai - i-й разряд двоичного представления числа A [0..255] и B = {b7, b6, b5, b4, b3, b2, b1, b0} сумма будет равна байту  С = {c7, c6, c5, c4, c3, c2, c1, c0}, где сi = ai  bi.


3.2. Умножение


Для умножения используется полиномиальное представление двоичного числа, так байт A = {a7, a6, a5, a4, a3, a2, a1, a0} может быть представлен в виде полинома

a(x) = a7x7 + a6x6 + a5x5 + a4x4 + a3x3 + a2x2 + a1x1 + a0x0, (3.1)

где ai - принимает значения 0 или 1.

В полиномиальном представлении, умножение (обозначенное ) в конечном поле F(28) (здесь число в скобках 28 указывает на число элементов конечного поля) выполняется между полиномами по модулю неприводимого в поле F полинома степени 8. Полином неприводим1) в поле F, если он делится только на себя и на единицу поля. Для алгоритма AES неприводимый полином это:

m(x) = x8 + x4 + x3 + x + 1. (3.2)

Результат умножения двух байтов A и B есть остаток от деления произведения полиномиального представления  для A на аналогичное полиномиального представление для B, выполненного по обычным правилам произведения полиномов на неприводимый полином m(x) .

Например, вычислим произведение

57  83.


Полиномиальное представление 57 есть

x6 + x4 + x2 + x + 1,

полиномиальное представление 83 есть



x7 + x + 1.

Результат произведения полиномов

(x6 + x4 + x2 + x + 1)( x7 + x + 1) = 
x13 + x11 + x9 x8 + x7 + 
+x7 + x5 + x3 + x2 + x + 
x6 + x4 + x2 + x + 1.

Суммирование коэффициентов при одинаковых степенях производится по правилам сложения в поле, т.е. по модулю 2, например

1x7 + 1x7 = (1  1)x7 = 0 x7

Получим


(x6 + x4 + x2 + x + 1)(x7 + x + 1) =
x13 + x11 + x9 x8 +x6 + x5 + x4 + x3 + 1.  (3.3)

Вычисляя остаток от деления  на , получим

(x13 + x11 + x9 x8 +x6 + x5 + x4 + x3 + 1) mod (x8 + x4 + x3 + x + 1) =
= x7 + x6 + 1,

что является полиномиальным представлением числа 193. Таким образом

57  83 = 193.

Взятие по модулю m(x) гарантирует, что результат будет двоичным полиномом степени меньше 8, и таким образом может быть представлен байтом. В отличии от операции сложения, нет другой простой операции на уровне битов, чтобы выполнить умножение.


4. АЛГОРИТМ AES

1   2   3   4   5   6


База данных защищена авторским правом ©uverenniy.ru 2016
обратиться к администрации

    Главная страница