Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Введение в криптологию. В 4 частях. Ч.1. Учебное пособие.pdf
X
- •ВВЕДЕНИЕ
- •1. АРИФМЕТИКА ОСТАТКОВ, ГРУППЫ, КОНЕЧНЫЕ ПОЛЯ
- •1.1. АРИФМЕТИКА ОСТАТКОВ
- •1.1.1. МОДУЛЬ. ОПЕРАТОР МОДУЛЯ
- •1.1.2. ГРУППЫ И КОЛЬЦА
- •1.1.3. РЕШЕНИЕ УРАВНЕНИЙ ВИДА a ∙ x = b (mod N)
- •1.1.4. ФУНКЦИЯ ЭЙЛЕРА
- •1.1.5. МУЛЬТИПЛИКАТИВНЫЕ ОБРАТНЫЕ ПО МОДУЛЮ N
- •1.2.1. БОЛЕЕ ОБЩИЙ ТИП КОНЕЧНЫХ ПОЛЕЙ
- •1.2.2. РЕШЕНИЕ УРАВНЕНИЙ ВИДА a ∙ = b (mod f (x))
- •1.2.3. НЕПРИВОДИМЫЕ МНОГОЧЛЕНЫ
- •1.2. КОНЕЧНЫЕ ПОЛЯ
- •1.2.4. ИЗОМОРФИЗМ КОНЕЧНЫХ ПОЛЕЙ
- •1.2.6. ПРИМИТИВНЫЙ ЭЛЕМЕНТ КОНЕЧНОГО ПОЛЯ
- •1.3. ОСНОВНЫЕ АЛГОРИТМЫ
- •1.3.1. НАИБОЛЬШИЙ ОБЩИЙ ДЕЛИТЕЛЬ
- •1.3.2. РЕШЕТО ЭРАТОСФЕНА
- •1.3.3. АЛГОРИТМ ЕВКЛИДА ДЛЯ ЦЕЛЫХ ЧИСЕЛ
- •1.3.4. ДВОИЧНЫЙ АЛГОРИТМ ЕВКЛИДА
- •1.3.5. РАСШИРЕННЫЙ АЛГОРИТМ ЕВКЛИДА
- •1.3.6. КИТАЙСКАЯ ТЕОРЕМА ОБ ОСТАТКАХ
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ

21
16 = 1 (mod 7),
26 = (2 ∙ 2 ∙ 2 ∙ 2 ∙ 2 ∙ 2) (mod 7) = (8 ∙ 8) (mod 7) =(1 ∙ 1) (mod 7) = 1 (mod 7),
36 = (3 ∙ 3 ∙ 3 ∙ 3 ∙ 3 ∙ 3) (mod 7) =
= (9 ∙ 9 ∙ 9) (mod 7) = (2 ∙ 2 ∙ 2) (mod 7) = 8 (mod 7) = 1 (mod 7),
46 = (4 ∙ 4 ∙ 4 ∙ 4 ∙ 4 ∙ 4) (mod 7) =
= (16 ∙ 16 ∙ 16) (mod 7) = (2 ∙ 2 ∙ 2) (mod 7) = 8 (mod 7) = 1 (mod 7),
56 = (5 ∙ 5 ∙ 5 ∙ 5 ∙ 5 ∙ 5) (mod 7) = (25 ∙ 25 ∙ 25) (mod 7) =
= (4 ∙ 4 ∙ 4) (mod 7) = (16 ∙ 4) (mod 7) = (2 ∙ 4) (mod 7) = 8 (mod 7) = 1 (mod 7),
66 = (6 ∙ 6 ∙ 6 ∙ 6 ∙ 6 ∙ 6) (mod 7) = (36 ∙ 36 ∙ 36) (mod 7) = (1 ∙ 1 ∙ 1) (mod 7) = 1 (mod 7).
Таким образом, для любого x (Z / NZ)* выполняется равенство
)(Nx
= 1 (mod N), (1.34)
поскольку #(Z / NZ)* =
)(N
. Отсюда вытекает следующая теорема.
Теорема 1.2. (Малая теорема Ферма) Если p – простое число и a
*
p
F
, то
a
p – 1
= 1 (mod p). (1.35)
Заметим, что малая теорема Ферма является частным случаем теоремы Лагранжа и
служит основой одного из тестов на простоту.
1.2. КОНЕЧНЫЕ ПОЛЯ
1.2.1. БОЛЕЕ ОБЩИЙ ТИП КОНЕЧНЫХ ПОЛЕЙ
Множество целых чисел по простому модулю является носителем не единственного примера конечных полей. Рассмотрим ещё один, более общий, тип конечных полей,
представляющий интерес для криптографии. Упомянутый общий тип полей используется
при обсуждении симметричного алгоритма блочного шифрования Rijndael, основанного
на регистре сдвига с обратными связями, и при изучении криптосистем, связанных с эллиптической кривой.
Для простого числа p множество многочленов от переменной x с коэффициентами
из Fp, обозначаемое через Fp[x], образует кольцо относительно операций сложения и
умножения многочленов. Особый интерес представляет случай p = 2, при котором в кольце F2[x] выполняются, например, следующие равенства:
(1 + x + x2) + (x + x3) = (1 + 2 x + x2 + x3) = (1 + 0 x + x2 + x3) = (1 + x2 + x3),

22
(1 + x + x2) ∙ (x + x3) = x + x3 + x2 + x4 + x3 + x5 =
= x + 2 x3 + x2 + x4 + x5 = x + 0 x3 + x2 + x4 + x5 = x + x2 + x4 + x5.
Зафиксируем многочлен f (x) и рассмотрим элементы множества Fp[x] по модулю
f (x). Так же как и целые числа по модулю N, элементы множества Fp[x] по модулю f (x)
образуют кольцо:
Fp[x] / f (x) Fp[x] или Fp[x] / (f (x)). (1.36)
Например, если f (x) = x4 + 1 и p = 2, то:
(1 + x + x2) ∙ (x + x3) (mod x4 + 1) = 1 + x2,
так как
(1 + x + x2) ∙ (x + x3) =
= x + x3+ x2 + x4 + x3+ x5 =
= x + x2 + x4 + x5 = (x + 1) ∙ (x4 + 1) + (1 + x2).
Проверим последнее выражение, выполнив деление многочленов уголком (при
этом все коэффициенты рассматриваются по модулю 2):
x5 + x4 + x2 + x
x4 + 1
x5 + x
x + 1
x4 + x2
x4 + 1
x2 – 1
=
x2 + 1
1.2.2. РЕШЕНИЕ УРАВНЕНИЙ ВИДА a ∙ = b (mod f (x))
Если в пункте 1.1.3 предыдущего подраздела рассматривалось решение относительно x уравнения вида a ∙ x = b (mod N), где a, b и x – целые числа по модулю некоторого
натурального числа N, то здесь аналогично будем решать относительно уравнение
a ∙ = b (mod f (x)), (1.37)
где a, b и – многочлены из Fp[x] по модулю f (x).
При этом, так же как и для уравнения вида a ∙ x = b (mod N), возможны три характерных случая, самым интересным из которых является случай для взаимно простых многочленов a и f (x), т.е. когда НОД (a, f (x)) = 1.
Случай 1. Если для уравнения вида (1.37) характерно, что НОД (a, f (x)) = 1, то оно
имеет ровно один корень.

23
Пусть, например, в уравнении вида (1.37)
xa
и
1)(
3
xxf
, тогда получим
уравнение вида
)1(mod3 xbx
. (1.38)
Для того чтобы узнать значение НОД (a, f (x)) при
xa
и
1)(
3
xxf
, поищем
общие делители многочленов
xa
и
1)(
3
xxf
путём разложения их на простые мно-
жители.
Сначала построим таблицу умножения многочленов x до
12 xx
с коэффициен-
тами из F2:
x×x
=
2
x
x
× (
1x
) =
xx
2
x
×
2
x
=
3
x
x
× (
12x
) =
xx
3
x
× (
xx
2
) =
23
xx
x
× (
12 xx
) =
xxx
23
(
1x
) ×x=
xx
2
(
1x
) × (
1x
) =
12x
(
1x
) ×
2
x
=
23
xx
(
1x
) × (
12x
) =
123 xxx
(
1x
) × (
xx
2
) =
xx
3
(
1x
) × (
12 xx
) =
13x
2
x
×x=
3
x
2
x
× (
1x
) =
23
xx
2
x
×
2
x
=
4
x
2
x
× (
12x
) =
24
xx
2
x
× (
xx
2
) =
34
xx
2
x
× (
12 xx
) =
234
xxx
(
12x
) ×x=
xx
3
(
12x
) × (
1x
) =
123 xxx
(
12x
) ×
2
x
=
24
xx
(
12x
) × (
12x
) =
14x
(
12x
) × (
xx
2
) =
xxxx
234
(
12x
) × (
12 xx
) =
134 xxx
(
xx
2
) ×x=
23
xx
(
xx
2
) × (
1x
) =
xx
3
(
xx
2
) ×
2
x
=
34
xx
(
xx
2
) × (
12x
) =
xxxx
234
(
xx
2
) × (
xx
2
) =
24
xx
(
xx
2
) × (
12 xx
) =
xx
4
(
12 xx
) ×x=
xxx
23
(
12 xx
) × (
1x
) =
13x
(
12 xx
) ×
2
x
=
234
xxx
(
12 xx
) × (
12x
) =
134 xxx
(
12 xx
) × (
xx
2
) =
xx
4
(
12 xx
) × (
12 xx
) =
124 xx

24
Затем выпишем полезные для решения уравнений вида
)1(mod3 xbx
разло-
жения многочленов:
x
= x,
1x
=
1x
,
2
x
=
xx
,
12x
=
)1()1( xx
,
xx
2
=
)1( xx
,
12 xx
=
12 xx, 13x
=
)1()1(
2
xxx
.
Поскольку разложение многочлена
xa
на простые множители есть сам много-
член
xa
и разложение
1)(
3
xxf
на простые множители есть произведение
(
1x
) × (
12 xx
), то НОД (
xa
,
1)(
3
xxf
) = НОД (x, (
1x
) × (
12 xx
)) = 1.
Следовательно, уравнение вида
)1(mod3 xbx
при любом b должно иметь
единственное решение.
Решим уравнения вида
)1(mod3 xbx
для различных многочленов b с помо-
щью табл. 1.11.
Таблица 1.11
x
)1(mod3 xx
0
0x
= 0
0
1
1x
= x
x x
xx
=
2
x
2
x
1x
)1( xx
=
xx
2
xx
2
2
x
2
xx
=
3
x
1
12x
)1(2 xx
=
xx
3
1x
xx
2
)(
2
xxx
=
23
xx
12x
12 xx
)1(
2
xxx
=
xxx
23
12 xx
Эти решения представлены в табл. 1.12.

25
Таблица 1.12
Уравнение вида
)1(mod3 xbx
Корень уравнения
)1(mod0
3
xx
0
)1(mod1
3
xx
2
x
)1(mod3 xxx
1
)1(mod1
3
xxx
12x
)1(mod32 xxx
x
)1(mod1
32
xxx
xx
2
)1(mod32 xxxx
1x
)1(mod1
32
xxxx
12 xx
Случай 2. Если НОД (a, f (x)) 1 и НОД (a, f (x)) делит b (без остатка), то уравне-
ние вида (1.37) имеет не единственное решение.
Например, решим уравнение
)1(mod1)1(
32
xxx
. Тогда
a =
1x
, b =
12x
,
1)(
3
xxf
.
Разложение многочлена
1 xa
на простые множители есть сам
многочлен
1 xa
и разложение
1)(
3
xxf
на простые множители есть произведение
(
1x
) × (
12 xx
), следовательно, НОД (
1 xa
,
1)(
3
xxf
) = НОД (
1x
, (
1x
) ×
× (
12 xx
)) =
1x
1.
Поскольку НОД (
1 xa
,
1)(
3
xxf
) 1 и НОД (
1 xa
,
1)(
3
xxf
) =
1x
делит
12x
=
)1()1( xx
(без остатка), то наше уравнение
)1(mod1)1(
32
xxx
должно иметь не единственное решение. Из таблицы 1.13 видно, что этими решениями
являются корни =
1x
и =
2
x
, так как только при этих значениях выполняется
равенство
)1(mod1)1(
32
xxx
.
Таблица 1.13
)1(x
)1(mod)1(
3
xx
)1(mod1)1(
32
xxx
0
0)1( x
= 0
0
0 =
12x
1
1)1( x
=
1x
1x 1x
=
12x
x
xx )1(
=
xx
2
xx
2
xx
2
=
12x

26
Продолжение табл. 1.13
)1(x
)1(mod)1(
3
xx
)1(mod1)1(
32
xxx
1x
)1()1( xx
=
12x 12x 12x
=
12x
2
x
2
)1( xx
=
23
xx 12x 12x
=
12x
12x
)1()1(
2
xx
=
123 xxx
xx
2
xx
2
=
12x
xx
2
)()1(
2
xxx
=
xx
3
1x 1x
=
12x
12 xx
)1()1(
2
xxx
=
13x
0
0 =
12x
Решим ещё одно уравнение, например
)1(mod)1(
32
xxxx
. Тогда
a =
1x
, b =
xx
2
,
1)(
3
xxf
.
Поскольку НОД (
1 xa
,
1)(
3
xxf
) =
1x
1 и делит
xx
2
=
xx )1(
(без остатка), то наше уравнение
)1(mod)1(
32
xxxx
должно иметь не един-
ственное решение. Из таблицы 1.14 видно, что этими решениями являются корни = x
и =
12x
, так как только при этих значениях выполняется равенство
)1(mod)1(
32
xxxx
.
Таблица 1.14
)1(x
)1(mod)1(
3
xx
)1(mod)1(
32
xxxx
0
0)1( x
= 0
0
0 =
xx
2
1
1)1( x
=
1x 1x
1x
=
xx
2
x
xx )1(
=
xx
2
xx
2
xx
2
=
xx
2
1x
)1()1( xx
=
12x 12x 12x
=
xx
2 2
x
2
)1( xx
=
23
xx 12x 12x
=
xx
2
12x
)1()1(
2
xx
=
123 xxx xx
2
xx
2
=
xx
2
xx
2
)()1(
2
xxx
=
=
xx
3
1x 1x
=
xx
2
12 xx
)1()1(
2
xxx
=
=
13x
1
1 =
xx
2

27
Случай 3. Если НОД (a, f (x)) 1 и НОД (a, f (x)) не делит b (без остатка), то урав-
нение вида a ∙ = b (mod f (x)) корней не имеет.
Например, попробуем решить уравнение
)1(mod1)1(
322
xxxx
. Тогда
a =
12x
, b =
12 xx
,
1)(
3
xxf
.
Разложение многочлена
12 xa
на простые множители есть произведение (
1x
)
× (
1x
) и разложение
1)(
3
xxf
на простые множители есть произведение (
1x
) ×
(
12 xx
), следовательно, НОД (
12 xa
,
1)(
3
xxf
) = НОД ((
1x
) × (
1x
), (
1x
)
× (
12 xx
)) =
1x
1.
Поскольку НОД (
1 xa
,
1)(
3
xxf
) 1 и НОД (
1 xa
,
1)(
3
xxf
) =
1x
не делит многочлен
12 xx
(без остатка), то наше уравнение
)1(mod1)1(
322
xxxx
не должно иметь решений. Из таблицы 1.15 видно, что
не существует такого значения
, при котором выполняется равенство
)1(mod1)1(
322
xxxx
.
Таблица 1.15
)1(2x
)1(mod)1(
32
xx
)1(mod1)1(
322
xxxx
0
0)1(
2
x
= 0
0
0 =
12 xx
1
1)1(
2
x
=
12x 12x 12x
=
12 xx
x
xx )1(
2
=
xx
3
1x
1x
=
12 xx
1x
)1()1(
2
xx
=
=
123 xxx
xx
2
xx
2
=
12 xx
2
x
22
)1( xx
=
=
24
xx
xx
2
xx
2
=
12 xx 12x
)1()1(
22
xx
=
=
14x
1x 1x
=
12 xx xx
2
)()1(
22
xxx
=
=
xxxx
234
12x 12x
=
12 xx
12 xx
)1()1(
22
xxx
=
=
134 xxx
0
0 =
12 xx

28
1.2.3. НЕПРИВОДИМЫЕ МНОГОЧЛЕНЫ
Многочлен называется неприводимым многочленом, если он не имеет делителей,
кроме него самого и констант. Другими словами, многочлен называется неприводимым
многочленом, если он не является константой и не представим в виде произведения q ∙ r,
где q и r – многочлены, отличные от констант.
Установим, какие многочлены из F2[x] вида
0
0
1
1
2
2
3
3
xcxcxcxc
=
=
01
2
2
3
3
cxcxcxc
, где коэффициенты
3
c
,
2
c
,
1
c
,
0
c
могут принимать значения 0 или
1, являются неприводимыми многочленами.
Многочлены x и
1x
являются неприводимыми многочленами, поскольку они не
имеют делителей, кроме них самих и константы 1.
Многочлен
2
x
не является неприводимым многочленом, поскольку он, как видно
из табл. 1.16, делится без остатка на многочлен x.
Таблица 1.16
Делимое
Делитель
Частное
Остаток
2
x
x x
0
2
x
1x
1x
1
Многочлен
12x
не является неприводимым многочленом, поскольку он, как сви-
детельствует табл. 1.17, делится без остатка на многочлен
1x
.
Таблица 1.17
Делимое
Делитель
Частное
Остаток
12x
x x
1
12x
1x
1x
0
Многочлен
xx
2
не является неприводимым многочленом, поскольку он делится
без остатка на многочлен x или на многочлен
1x
(табл. 1.18).
Таблица 1.18
Делимое
Делитель
Частное
Остаток
xx
2
x
1x
0
xx
2
1x
x
0

29
Многочлен
12 xx
является неприводимым многочленом, поскольку он, как
следует из табл. 1.19, не делится без остатка ни на многочлен x, ни на многочлен
1x
.
Таблица 1.19
Делимое
Делитель
Частное
Остаток
12 xx
x
1x
1
12 xx
1x
x
1
Многочлен
3
x
не является неприводимым многочленом, поскольку он, как видно
из табл. 1.20, делится без остатка, например на многочлен x.
Таблица 1.20
Делимое
Делитель
Частное
Остаток
3
x
x
2
x
0
3
x
1x
12 xx
1
3
x
2
x
x
0
3
x 12x
x x
3
x xx
2
1x
x
3
x
12 xx
1x
1
Многочлен
13x
не является неприводимым многочленом, поскольку он, как сви-
детельствует табл. 1.21, делится без остатка, например на многочлен
1x
.
Таблица 1.21
Делимое
Делитель
Частное
Остаток
13x
x
2
x
1
13x
1x
12 xx
0
13x
2
x
x
1
13x 12x
x
1x
13x xx
2
1x 1x
13x
12 xx
1x
0
Многочлен
xx
3
не является неприводимым многочленом, поскольку он, как
видно из табл. 1.22, делится без остатка, например на многочлен x.

30
Таблица 1.22
Делимое
Делитель
Частное
Остаток
xx
3
x
12x
0
xx
3
1x
xx
2
0
xx
3 2
x
x x
xx
3
12x
x
0
xx
3
xx
2
1x
0
xx
3
12 xx
1x 1x
Многочлен
13 xx
является неприводимым многочленом, поскольку он, как
следует из табл. 1.23, не делится без остатка ни на один из многочленов x,
1x
,
2
x, 12x, xx
2
,
12 xx
.
Таблица 1.23
Делимое
Делитель
Частное
Остаток
13 xx
x
12x
1
13 xx
1x
xx
2
1
13 xx
2
x
x
1x
13 xx 12x
x
1
13 xx xx
2
1x
1
13 xx
12 xx
1x
x
Многочлен
23
xx
не является неприводимым многочленом, поскольку, как видно
из табл. 1.24, он имеет делители, кроме него самого и константы 1, например делитель
xx
2
.
Таблица 1.24
Делимое
Делитель
Частное
Остаток
23
xx
x
xx
2
0
23
xx
1x
2
x
0
23
xx
2
x
1x
0
23
xx 12x
1x 1x
23
xx xx
2
x
0
23
xx
12 xx
x x
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
