Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в криптологию. В 4 частях. Ч.1. Учебное пособие.pdf
Скачиваний:
1
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
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
× (
12x
) =
xx
3
x
× (
xx
2
) =
23
xx
x
× (
12xx
) =
xxx
23
(
1x
) ×x=
xx
2
(
1x
) × (
1x
) =
12x
(
1x
) ×
2
x
=
23
xx
(
1x
) × (
12x
) =
123 xxx
(
1x
) × (
xx
2
) =
xx
3
(
1x
) × (
12xx
) =
13x
2
x
×x=
3
x
2
x
× (
1x
) =
23
xx
2
x
×
2
x
=
4
x
2
x
× (
12x
) =
24
xx
2
x
× (
xx
2
) =
34
xx
2
x
× (
12xx
) =
234
xxx
(
12x
) ×x=
xx
3
(
12x
) × (
1x
) =
123 xxx
(
12x
) ×
2
x
=
24
xx
(
12x
) × (
12x
) =
14x
(
12x
) × (
xx
2
) =
xxxx
234
(
12x
) × (
12xx
) =
134 xxx
(
xx
2
) ×x=
23
xx
(
xx
2
) × (
1x
) =
xx
3
(
xx
2
) ×
2
x
=
34
xx
(
xx
2
) × (
12x
) =
xxxx
234
(
xx
2
) × (
xx
2
) =
24
xx
(
xx
2
) × (
12xx
) =
xx
4
(
12xx
) ×x=
xxx
23
(
12xx
) × (
1x
) =
13x
(
12xx
) ×
2
x
=
234
xxx
(
12xx
) × (
12x
) =
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
,
12x
=
)1()1( xx
,
xx
2
=
)1( xx
,
12xx
=
12xx, 13x
=
)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
12x
)1(2xx
=
xx
3
1x
xx
2
)(
2
xxx
=
23
xx
12x
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
12x
)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 =
12x
,
1)(
3
xxf
.
Разложение многочлена
1xa
на простые множители есть сам
многочлен
1xa
и разложение
1)(
3
xxf
на простые множители есть произведение
(
1x
) × (
12xx
), следовательно, НОД (
1xa
1)(
3
xxf
) = НОД (
1x
, (
1x
) ×
× (
12xx
)) =
1x
 1.
Поскольку НОД (
1xa
1)(
3
xxf
)  1 и НОД (
1xa
1)(
3
xxf
) =
1x
делит
12x
=
)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 =
12x
1
1)1( x
=
1x
1x 1x
=
12x
x
xx )1(
=
xx
2
xx
2
xx
2
=
12x
26
Продолжение табл. 1.13
)1(x
)1(mod)1(
3
xx
)1(mod1)1(
32
xxx
1x
)1()1( xx
=
12x 12x 12x
=
12x
2
x
2
)1( xx
=
23
xx 12x 12x
=
12x
12x
)1()1(
2
xx
=
123 xxx
xx
2
xx
2
=
12x
xx
2
)()1(
2
xxx
=
xx
3
1x 1x
=
12x
12xx
)1()1(
2
xxx
=
13x
0
0 =
12x
Решим ещё одно уравнение, например
)1(mod)1(
32
xxxx
. Тогда
a =
1x
, b =
xx
2
,
1)(
3
xxf
.
Поскольку НОД (
1xa
1)(
3
xxf
) =
1x
1 и делит
xx
2
=
xx )1(
(без остатка), то наше уравнение
)1(mod)1(
32
xxxx
должно иметь не един-
ственное решение. Из таблицы 1.14 видно, что этими решениями являются корни  = x
и  =
12x
, так как только при этих значениях  выполняется равенство
)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
=
12x 12x 12x
=
xx
2 2
x
2
)1( xx
=
23
xx 12x 12x
=
xx
2
12x
)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
=
=
13x
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 =
12x
, 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.
Поскольку НОД (
1xa
1)(
3
xxf
)  1 и НОД (
1xa
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
=
12x 12x 12x
=
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 12x
)1()1(
22
xx
=
=
14x
1x 1x
=
12xx xx
2
)()1(
22
xxx
=
=
xxxx
234
12x 12x
=
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
Многочлен
12x
не является неприводимым многочленом, поскольку он, как сви-
детельствует табл. 1.17, делится без остатка на многочлен
1x
.
Таблица 1.17
Делимое
Делитель
Частное
Остаток
12x
x x
1
12x
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 12x
x x
3
x xx
2
1x
x
3
x
12xx
1x
1
Многочлен
13x
не является неприводимым многочленом, поскольку он, как сви-
детельствует табл. 1.21, делится без остатка, например на многочлен
1x
.
Таблица 1.21
Делимое
Делитель
Частное
Остаток
13x
x
2
x
1
13x
1x
12xx
0
13x
2
x
x
1
13x 12x
x
1x
13x xx
2
1x 1x
13x
12xx
1x
0
Многочлен
xx
3
не является неприводимым многочленом, поскольку он, как
видно из табл. 1.22, делится без остатка, например на многочлен x.
30
Таблица 1.22
Делимое
Делитель
Частное
Остаток
xx
3
x
12x
0
xx
3
1x
xx
2
0
xx
3 2
x
x x
xx
3
12x
x
0
xx
3
xx
2
1x
0
xx
3
12xx
1x 1x
Многочлен
13xx
является неприводимым многочленом, поскольку он, как
следует из табл. 1.23, не делится без остатка ни на один из многочленов x,
1x
,
2
x, 12x, xx
2
,
12xx
.
Таблица 1.23
Делимое
Делитель
Частное
Остаток
13xx
x
12x
1
13xx
1x
xx
2
1
13xx
2
x
x
1x
13xx 12x
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 12x
1x 1x
23
xx xx
2
x
0
23
xx
12xx
x x
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]