Стандарт AES (Advanced Encryption Standard) ... стандарт шифрования с одним ключом, ...

advertisement
Лекция 4. СТАНДАРТ AES. АЛГОРИТМ RIJNDAEL.
Стандарт
стандарт
AES
(Advanced
шифрования
Алгоритм
Rijndael
с
Encryption
одним
(рейн-дал)
ключом,
стал
Standard)
представляет
который
победителем
заменил
конкурса
стандарта шифрования и был выбран для стандарта
на
собой
новый
стандарт
создание
DES.
нового
AES. Он представляет собой
еще один алгоритм, не использующий сетей Фейстела. Для того, чтобы описать
этот алгоритм нам понадобятся некоторые сведения из теории полей Галуа и их
расширений, которые и рассматриваются ниже.
Некоторые сведения из теории полей Галуа
Введем некоторые определения.
Группой
называется
множество
элементов
с
определенной
для
каждой
пары элементов операцией (сложение или умножение), для которой справедливы
следующие аксиомы:
1.
Группа
замкнута
по
определенной
a, b
элементов группы
элемент
на
c = a ∗b
ней
операции,
т.е.
для
любых
тоже принадлежит группе. Здесь
∗
обозначает операцию, определенную на группе.
2.
Ассоциативность.
Для любых
a , b, c , принадлежащих группе выполняется
( a ∗ b ) ∗ c = a ∗ (b ∗ c )
3.
В группе существует единичный элемент
групповая операция – это сложение, то
e
умножение, то
4.
Существует
–
e
e
такой, что
a *e = e*a = a .
Если
– ноль группы, если операция –
это единица группы.
обратный
элемент
a −1
для
каждого
элемента
a
группы,
т.е.
a −1 ∗ a = e .
Группа называется коммутативной или абелевой, если для ее элементов
выполняется
Если
a ∗b = b ∗ a .
групповая
операция
мультипликативной. Если
Примеры:
рациональные
числом
целые
числа
элементов.
∗
∗
это
умножение,
то
группа
называется
– это сложение, то группа называется аддитивной.
числа
относительно
относительно
Двухэлементное
умножения
множество
сложения,
–
это
{0,1}
группы
положительные
с
бесконечным
относительно
операции
сложения по модулю два образует группу с конечным числом элементов.
Кольцо
Кольцом
Первая
R
–
это
абелева
группа,
наделенная
дополнительными
свойствами.
называется множество с двумя, определенными на нем операциями.
называется
сложением,
вторая
умножением.
При
этом
имеют
место
следующие аксиомы:
1.
Относительно сложения (+) кольцо является абелевой группой.
2.
Замкнутость относительно операции
c = ab
умножения: для любых
a
и
b
тоже принадлежит кольцу.
3.
Дистрибутивность:
4.
Ассоциативность:
a ( c + b ) = ac + ab
a (bc ) = ( ab )c
Коммутативным называется кольцо, для которого выполняется
любых элементов
Операция
называемый
элемент.
из кольца
ab = ba
для
a и b , принадлежащих кольцу.
сложения
нулем.
в
кольце,
Операция
очевидно,
умножения
не
имеет
единичный
обязательно
имеет
элемент,
единичный
Кольцо, обладающее единичным элементом по умножению, называется
кольцом с единицей.
Если единичный элемент по умножению существует, то он –
единственный и обозначается символом 1. Тогда для всех
1a = a1 = a .
a
из кольца имеет место
Относительно операции сложения каждый элемент имеет обратный.
Относительно
обязательно
операции
существует,
существовать.
умножения
но
в
Например,
элемент
кольце
с
обратный
единицей
множество
данному
обратные
вещественных
элементу
элементы
чисел
не
могут
образует
коммутативное кольцо с единицей относительно обычных операций сложения и
умножения.
Множество
всех
целых
чисел
(включая
положительные,
отрицательные и нуль), образует коммутативное кольцо с единицей.
Нестрого говоря, абелевой группой является множество, в котором можно
складывать и вычитать, а кольцом – множество, в
вычитать
и
умножать.
Более
сильной
котором
алгебраической
можно складывать,
структурой,
называемой
полем, является множество, в котором можно складывать, вычитать, умножать и
делить.
Полем
называется
алгебраическая
структура,
для
которой
справедливы
следующие аксиомы:
1.
Поле – это коммутативное кольцо с единицей по умножению.
2.
Для любого ненулевого элемента поля
такой, что
aa −1 = 1 .
a
существует обратный элемент
a −1
Например,
Множество
множество
рациональных
вещественных
чисел
тоже
содержат бесконечное число элементов.
чисел
представляет
представляет
собой
собой
поле.
поле.
Эти
поля
Далее мы будем рассматривать только
поля с конечным числом элементов.
p
Поле с
p ),
элементами, если оно существует (а оно существует не при всех
называется конечным полем или полем Галуа и обозначается через
Наименьшее
поле
состоит
из
двух
элементов
0
и
1
при
следующих
GF ( p) .
правилах
выполнения операций сложения и умножения:
+
0
1
×
0
1
0
0
1
0
0
0
1
1
0
1
0
1
Это поле GF(2). Можно показать, что для любого простого
поле, содержащее
p различных элементов. Таким полем является числовое поле с
{0,1,2,..., p − 1}
элементами
выполняются по модулю
Пример.
p существует
Пусть
,
операции
сложения
и
умножения
в
котором
0,1,2,3,4.
Таблицы
p.
p = 5.
Элементами
поля
являются
сложения и умножения имеют вид
+
0
1
2
3
4
×
0
1
2
3
4
0
0
1
2
3
4
0
0
0
0
0
0
1
1
2
3
4
0
1
0
1
2
3
4
2
2
3
4
0
1
2
0
2
4
1
3
3
3
4
0
1
2
3
0
3
1
4
2
4
4
0
1
2
3
4
0
4
3
2
1
Примитивным элементом поля
p −1
поле
GF ( p )
называется такой элемент
α
, что первые
степеней этого элемента задают все ненулевые элементы поля. Например, в
GF (5)
получаем
21 = 2 , 2 2 = 4 , 2 3 = 3 , 2 4 = 1 .
примитивным элементом поля
порядок
p −1.
GF (5) .
Таким
образом
2
является
Говорят, что примитивный элемент имеет
Для примитивного элемента
α
справедливо, что
α p −1 = 1 .
В общем
случае порядок элемента это такое наименьшее целое положительное число, что
элемент, возведенный в степень равную этому числу, дает 1.
элемента
β
является
делителем
порядка
примитивного
Порядок любого
элемента,
т.е.
p −1.
Например,
41 = 4 , 4 2 = 1 ,
p −1 = 4 .
порядок элемента 4 равен 2,
Очевидно, что
β p −1 = 1.
Пусть теперь
q = pm ,
p–
где
m–
простое, а
q= p
показать, что при числе элементов
m
положительное целое. Можно
m > 1,
,
q = 22 .
является полем. Рассмотрим пример. Пусть
q −1}
множество чисел {0,…
не
Зададим таблицы сложения и
умножения вида
+
0
1
2
3
×
0
1
2
3
0
0
1
2
3
0
0
0
0
0
1
1
2
3
0
1
0
1
2
3
2
2
3
0
1
2
0
2
0
2
3
3
0
1
2
3
0
3
2
1
Нетрудно видеть, что элемент 2
не имеет обратного по умножению,
т.е.
структура является кольцом, но не полем. Однако, поле из четырех элементов
GF (4)
можно
рассмотрения
построить.
кольца
Алгебраическая
многочленов
структура
GF ( p ) по модулю некоторого многочлена p (x)
полином
a ( x) = b( x) mod p ( x) ,
x
переменной
с
степени
поля
вытекает
коэффициентами
m.
b( x) = a ( x) + Q ( x) p ( x) ,
если
GF ( p m )
из
поля
Говорят,
где
Q (x)
-
из
что
некоторый
многочлен.
Известно, что кольцо многочленов с коэффициентами из поля
p (x)
модулю некоторого многочлена
тогда,
когда
p (x)
многочлен
m
степени
неприводим,
т.е.
GF ( p )
по
является полем тогда и только
не
может
быть
разложен
на
множители с коэффициентами из этого поля. Число элементов этого поля равно
pm .
Если
корнем
m
поля
GF ( p ) ,
поле
содержит
неприводимого
многочлена
что
pm
различных
элементов,
рассмотренное
поле
над ними выполняются по модулю
Выберем
элементами поля
GF (2 2 )
а
m
элемент
каждый
элемент
может
быть
степеней примитивного элемента.
называют
коэффициенты полиномов принадлежат
Пример.
примитивный
то такой многочлен называется примитивным, а порождаемое им
представлен в виде линейной комбинации
Заметим,
является
GF ( p )
полем характеристики p ,
и, соответственно,
т.к.
все операции
p.
примитивный
полином
будут полиномы:
0 , 1, x , x 2 = x + 1 .
p( x) = x 2 + x + 1 .
Тогда
Для выполнения операции сложения элементы поля удобно представлять в виде
m,
векторов длины
11.
Сложение
т.е., в данном примере, в виде последовательностей 00, 01, 10,
полиномов
сводится
к
покомпонентной
сумме
по
модулю
два
соответствующих последовательностей. Еще одно представление элементов поля
можно
получить,
p (x)
полином
в
примитивный
используя
нашем
примитивный
примере
элемент
поля
является
α
-
это
α 2 = α +1.
удовлетворяет соотношению
элемент
также
его
поля
α.
Неприводимый
примитивным
корень.
полиномом
Другими
и
α
словами,
Все ненулевые элементы поля могут быть
получены как степени примитивного элемента, т.е.
α 0 = 1, α 1 = α , α 2 = α + 1 .
Нетрудно
видеть,
что
два
представления
элементов
поля
эквивалентны
с
точностью до замены переменной. Представление элементов поля в виде степеней
примитивного
элемента
обычно
используется
для
умножения
в
этом
поле.
p m − 1 . В нашем примере α 3 = α 2 + α = 1 .
Порядок примитивного элемента равен
Заметим, что порядок любого элемента поля является делителем порядка
p m − 1.
примитивного элемента, т.е. числа
имеет место тождество
элементы
поля
(кроме
βp
m
1)
−1
= 1.
Если
Следовательно, для любого элемента
(p
примитивны,
m
)
−1
в
β
- простое число, то все ненулевые
противном
(p
элементы, имеющие порядки делящие число
m
)
−1 .
случае
в
поле
найдутся
( )
GF 2 4
Например, в поле
существуют элементы порядка 1, 3, 5, 15.
x +1 .
Найдем обратный элемент к элементу
обратным элементом к
Для
нахождения
расширении
алгоритм
простое.
для
Суть
делителя
Евклида
алгоритма
двух
для
к
данному
Евклида
элементу
деления
целых
обратного
целых
x( x + 1) = x 2 + x = 1 ,
то
x.
алгоритм
нахождения
(НОД)
будет
обратного
используют
деления
применен
x +1
Так как
чисел
Евклида.
и
элемента
состоит
в
в
поле
чисел
как
он
Галуа
нахождении
положительных
Галуа
или
Рассмотрим
обсудим,
в
поле
вначале
может
GF ( p ) ,
его
быть
где
p–
наибольшего
общего
a0 ≥ a1
путем
(a0 , a1 ) ,
вычисления последовательности остатков
ai +1 = ai −1 − Qi ai , i = 1,2,..., k
где
 ai −1 

 ai 
Qi = 
остаток
,
a k +1 = 0 ,
[⋅]
обозначает
целую
что означает, что
ak
часть.
Вычисления
делит нацело
a k −1 .
(1)
прекращаются,
Тогда НОД(
когда
a0 ,a1 )= a k .
Так
называемый расширенный алгоритм Евклида позволяет находить не только НОД
двух
целых
положительных
НОД (a0 , a1 ) = xa0 + ya1
Для нахождения
, где
x, y
но
это целые
и
его
представление
в
виде
(необязательно положительные) числа.
алгоритм Евклида модифицируется следующим образом:
1.
Инициализация
2.
Qi = 
3.
ai +1 = ai −1 − Qi ai
4.
x, y -
чисел,
x0 = 1 , x1 = 0 , y0 = 0 , y1 = 1 , i = 1
 ai −1 

 ai 
Если
НОД (a0 , a1 ) = ai
ai +1 =0, то
,
x = xi , y = yi
и закончить вычисления, иначе
xi +1 = xi −1 − Qi xi
yi +1 = yi −1 − Qi yi
i = i +1
Перейти к шагу 2.
Пример.
Найдем
НОД(57,33)
и
его
разложение
НОД (57,33) = x ⋅ 57 + y ⋅ 33
Результаты вычислений сведены в таблицу
i
ai
Qi
xi
yi
0
57

1
0
1
33
[57/33]=1
0
1
–1×33=24
[33/24]=1
1 1×0=1
0–1×1=–1
–1×24=9
[24/9]=2
0–1×1=–1
1–1×(–1)=2
2
3
57
33
–
4
24–2×9=6
[9/6]=1
1–2×(–1)=–1
–1–2×2=–5
5
9–1×6=3
[6/3]=2
–1–1×3=–4
2–1×(–5)=7
6
6–2×3=0
НОД(57,33)=3
3=57×(–4)+33×7
Таким образом, получаем, что
НОД (57,33) = 3 = 57 ⋅ (−4) + 33 ⋅ 7
.
Нахождение обратного элемента в поле Галуа и его расширении.
Теперь рассмотрим, как расширенный алгоритм Евклида может быть применен
для нахождения обратного элемента к заданному в
элемент поля
GF ( p ) .
Пусть
a –некоторый
GF ( p ) , тогда обратный к нему элемент a −1 , очевидно, удовлетворяет
уравнению
aa −1 = 1mod p
.
(2)
Уравнение (2) эквивалентно уравнению
aa −1 + py = 1 ,
где
y–
некоторое
целое
Евклида мы находим
число.
Тогда
с
(3)
помощью
НОД ( p, a) = 1 = x ⋅ a + y ⋅ p
, где
x=a
расширенного
−1
алгоритма
. Например, пусть
p = 5,
a = 3 . Получаем
a2 = 5 − 1 ⋅ 3 = 2
x2 = 1 − 0 ⋅1 = 1
y 2 = 0 − 1⋅1 = −1
a3 = 3 − 1 ⋅ 2 = 1
x 3 = 0 − 1 ⋅ 1 = −1
y3 = 1 − 1 ⋅ (−1) = 2
Таким образом, имеем
1 = (−1) ⋅ 5 + 2 ⋅ 3 , т.е. a −1 = 2 .
Расширенный алгоритм Евклида легко обобщается для полиномов и может
быть использован для нахождения обратного элемента в расширении поля Галуа
GF ( p m ) .
Теорема. Пусть
r0 ( x)
и
r1 ( x) –
тогда существуют такие два полинома
НОД (r0 ( x),r 1( x)) = U ( x)r0 ( x) + V ( x)r1 ( x)
Рассмотрим
p( x) = x 2 + x + 1 .
снова
поле
и
два полинома, причем
deg(r0 ( x)) ≥ deg(r1 ( x)) ,
U (x) и V (x) , что имеет место равенство
deg(U ( x ))
GF (2 2 ) ,
и
deg(V ( x)) < deg(r0 ( x)) .
построенное
Найдем элемент обратный к элементу
по
x.
модулю
Положим
полинома
r0 ( x) = p( x) и
r1 ( x) = x .
Аналогично
рассмотренным
выше
примерам,
выполним
следующие
вычисления
r2 ( x) = x 2 + x + 1 − ( x + 1) x = 1
U 2 ( x) = 1 − ( x + 1) ⋅ 0 = 1
V2 ( x) = 0 − ( x + 1) ⋅ 1 = x + 1
Таким
образом,
получаем,
обратным к элементу
x
что
является
поле является расширением поля
векторами
(коэффициентами
НОД ( p( x), x) = 1 = 1 ⋅ ( x 2 + x + 1) + ( x + 1) ⋅ x
( x + 1) .
,
т.е.
Заметим, что, так как рассматриваемое
GF ( 2) ,
то все поразрядные операции между
полиномов)
выполняются
следовательно, в данном поле имеет место равенство
−1 = 1 .
по
модулю
2
и,
Download