Добавил:
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. КИТАЙСКАЯ ТЕОРЕМА ОБ ОСТАТКАХ
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ

11
Продолжение табл. 1.7
a b с
a + b
(a + b) ∙ с
a ∙ с
b ∙ с
a ∙ с + b ∙ с
1 1 1 2 2
1 1 2
1 1 2 2 1
2 2 1
1 2 0 0 0
0 0 0
1 2 1 0 0
1 2 0
1 2 2 0 0
2 1 0
2 0 0 2 0
0 0 0
2 0 1 2 2
2 0 2
2 0 2 2 1
1 0 1
2 1 0 0 0
0 0 0
2 1 1 0 0
2 1 0
2 1 2 0 0
1 2 0
2 2 0 1 0
0 0 0
2 2 1 1 1
2 2 1
2 2 2 1 2
1 1 2
10. Коммутативность умножения:
ZZ Nba /,
:
abba
. (1.14)
Сигнатуры многих алгебр, с которыми будем в дальнейшем встречаться, удовлетворяют некоторым из рассмотренных свойств.
Определение 1.1. Группой G называется алгебра с носителем M и определённой на
нём двухместной операцией, которая:
– замкнута;
– обладает единицей (имеет нейтральный элемент);
– ассоциативна;
– относительно неё (т.е. операции) каждый элемент обладает обратным.
Группу G с коммутативной операцией называют коммутативной или абелевой.
Почти все встречающиеся в криптографии группы являются абелевыми, поскольку именно свойство коммутативности придаёт им криптографический интерес.
Группа G называется аддитивной, если её нейтральным элементом является нуль, а
операцией – сложение, которое обозначается, как правило, символом «+». Такую группу
будем обозначать как G = (M, +), особенно в том случае, когда необходимо уточнить используемую в ней операцию.
Группа называется мультипликативной, если её нейтральным элементом является
единица, а операцией – умножение, которое обозначается, как правило, символом « ∙ ».
Для мультипликативных групп будем использовать обозначение G = (M, ∙ ).

12
Абелева группа G называется циклической, если в ней найдётся образующая (при-
митивный элемент) – специальный элемент, такой, что любой другой элемент группы
(может быть, кроме нуля) получается многократным применением к нему групповой операции. Например, в аддитивной циклической группе G = (Z / NZ, +) при N = 5, т.е. в группе G = ({0, 1, 2, 3, 4}, +), образующей является элемент 1:
0 = 0, 1 = 1, 2 = 1 + 1, 3 = 1 + 1 + 1, 4 = 1 + 1 + 1 + 1.
А в мультипликативной циклической группе G = (Z / NZ\0, ∙) при N = 5, т.е. в группе
G = ({1, 2, 3, 4}, ∙), примитивным элементом является элемент 3:
1 = 3 ∙ 3 ∙ 3 ∙ 3, так как (3 ∙ 3 ∙ 3 ∙ 3) (mod 5) = 81 (mod 5) = 1;
2 = 3 ∙ 3 ∙ 3, так как (3 ∙ 3 ∙ 3) (mod 5) = 27 (mod 5) = 2;
3 = 3;
4 = 3 ∙ 3, так как (3 ∙ 3) (mod 5) = 9 (mod 5) = 4.
Если g – образующая циклической группы G, то будем писать G = g. В аддитивной циклической группе G каждый её элемент h можно записать в виде
h = g ∙ x, (1.15)
а в мультипликативной циклической группе – в виде
h = gx, (1.16)
где в обоих случаях x – некоторое целое число, называемое дискретным логарифмом элемента h по основанию g.
Например, в аддитивной циклической группе G = (Z / NZ, +) при N = 5, т.е. в группе G = ({0, 1, 2, 3, 4}, +) с примитивным элементом g = 1:
дискретный логарифм элемента 0 = 1 ∙ 0 по основанию 1 равен 0,
дискретный логарифм элемента 1 = 1 ∙ 1 по основанию 1 равен 1,
дискретный логарифм элемента 2 = 1 ∙ 2 по основанию 1 равен 2,
дискретный логарифм элемента 3 = 1 ∙ 3 по основанию 1 равен 3,
дискретный логарифм элемента 4 = 1 ∙ 4 по основанию 1 равен 4.
В мультипликативной циклической группе G = (Z / NZ\0, ∙) при N = 5, т.е. в группе
G = ({1, 2, 3, 4}, ∙ ) с примитивным элементом g = 3:
дискретный логарифм элемента 1 = 34 по основанию 3 равен 4,
дискретный логарифм элемента 2 = 33 по основанию 3 равен 3,
дискретный логарифм элемента 3 = 31 по основанию 3 равен 1,
дискретный логарифм элемента 4 = 32 по основанию 3 равен 2.
Введём понятие кольца.

13
Определение 1.2. Кольцом называется совокупность множества R с определёнными на нём двухместными операциями сложения «+» и умножения «∙», обладающими
свойствами (1.5) – (1.13). Кольцо будем обозначать как (R, +, ∙). Если умножение в данном
кольце коммутативно (свойство (1.14)), его называют коммутативным кольцом.
В частности, множество Z / NZ в совокупности с заданными на нём операциями
сложения и умножения по модулю N является коммутативным кольцом, часто называемым кольцом вычетов по модулю N. Заметим, что кольцо вычетов по модулю N представляет собой центральный объект криптографии, на свойствах которого основаны многие
методы шифрования.
1.1.3. РЕШЕНИЕ УРАВНЕНИЙ ВИДА a ∙ x = b (mod N)
Одной из центральных задач арифметики остатков является решение уравнения
вида
a ∙ x = b (mod N), (1.17)
т.е. поиск элемента x Z / NZ, удовлетворяющего этому равенству. Уравнение данного
вида над кольцом целых чисел не всегда имеет решение.
Например, существует ровно одно решение x = 123 уравнения
7 ∙ x = 3 (mod 143);
уравнение
11 ∙ x = 22 (mod 143)
имеет одиннадцать корней x {2, 15, 28, 41, 54, 67, 80, 93, 106, 119, 132};
а уравнение
11 ∙ x = 3 (mod 143)
решений не имеет.
Для ответа на вопрос о количестве корней уравнения вида (1.17) существует критерий, основанный на вычислении наибольшего общего делителя (НОД) чисел a и N. При
этом возможны три характерных случая.
Случай 1. Если для уравнения вида (1.17) характерно, что НОД (a, N) = 1, то оно
имеет ровно один корень.
Например, решим уравнение 3 ∙ x = 4 (mod 7) этого вида. Тогда:
a = 3, b = 4, N = 7,
НОД (a, N) = НОД (3, 7) = 1.
Поскольку НОД (3, 7) = 1, уравнение 3 ∙ x = 4 (mod 7) должно иметь ровно один корень. Из таблицы 1.8 видно, что этим единственным корнем является x = 6, так как только
при x = 6 выполняется равенство 3 ∙ x (mod 7) = 4.

14
Таблица 1.8
x
3 ∙ x (mod 7)
0 0 1 3 2
6
3 2 4 5 5 1 6
4
Заметим, что решение уравнения вида (1.17) может быть получено с помощью
промежуточного числа c, удовлетворяющего соотношению
a ∙ c = 1 (mod N), (1.18)
после чего искомое неизвестное x вычисляется по формуле
x = b ∙ c (mod N). (1.19)
Решим то же самое уравнение 3 ∙ x = 4 (mod 7) вида a ∙ x = b (mod N) с помощью
промежуточного числа c. Для этого сначала решим уравнение вида (1.18), которое
в данном случае (при a = 3, b = 4, N = 7) становится уравнением 3 ∙ c = 1 (mod 7). Из таблицы 1.8 видно, что единственным его корнем является c = 5.
Затем с помощью c = 5 определим искомый корень уравнения 3 ∙ x = 4 (mod 7)
по формуле (1.19):
x = b ∙ c (mod N) = 4 ∙ 5 (mod 7) = 20 (mod 7) = 6.
Решим ещё одно уравнение вида (1.17), например уравнение 7 ∙ x = 3 (mod 143).
Тогда:
a = 7, b = 3, N = 143,
НОД (a, N) = НОД (7, 143) = 1.
Поскольку НОД (7, 143) = 1, уравнение 7 ∙ x = 3 (mod 143) имеет ровно один корень. Им является x = 123, что подтверждает следующая проверка:
7 ∙ x (mod 143) =7 ∙ 123 (mod 143) = 861 (mod 143) = 3.
Решим то же самое уравнение 7 ∙ x = 3 (mod 143) с помощью промежуточного числа c. При этом сначала найдём промежуточное число c = 41 как решение уравнения
7 ∙ c = 1 (mod 143):
7 ∙ c (mod 143) =7 ∙ 41 (mod 143) = 287 (mod 143) = 1 (mod 143),

15
а затем – собственно решение уравнения 7 ∙ x = 3 (mod 143) по формуле (1.19):
x = b ∙ c (mod N) = 3 ∙ 41 (mod 143) = 123.
Случай 2. Если НОД (a, N) 1 и g = НОД (a, N) делит b (без остатка), то уравнение
вида (1.17) имеет g корней.
Например, решим уравнение 2 ∙ x = 6 (mod 8). Тогда:
a = 2, b = 6, N = 8,
НОД (a, N) = НОД (2, 8) = 2 1.
Поскольку НОД (2, 8) 1 и g = НОД (2, 8) = 2 делит 6 (без остатка), то наше уравнение 2 ∙ x = 6 (mod 8) должно иметь ровно два корня. Из таблицы 1.9 видно, что этими
двумя корнями являются x = 3 и x = 7, так как только при этих значениях x выполняется
равенство 2 ∙ x (mod 8) = 6.
Таблица 1.9
x
2 ∙ x (mod 8)
0
0
1
2
2 4 3 6 4 0 5
2
6 4 7
6
Для того чтобы найти в этом случае (случае 2) все g корней уравнения вида (1.17),
можно сначала разделить исходное уравнение a ∙ x = b (mod N) на g:
g
N
g
b
x
g
a
mod
=
)(mod Nbxa
. (1.20)
Затем разрешить полученное уравнение
)(mod Nbxa
относительно
x
и вы-
числить корни исходного уравнения по формуле
Nixx
i
1
, (1.21)
где i = 0, 1, …, g – 1.
Решим то же самое уравнение 2 ∙ x = 6 (mod 8) по описанной схеме (1.20), (1.21).
При этом сначала найдём корень уравнения вида
)(mod Nbxa
, которое
в данном случае (при a = 2, b = 6, N = 8, g = НОД (a, N) = НОД (2, 8) = 2) становится урав-

16
нением
g
N
g
b
x
g
a
mod
=
2
8
mod
2
6
2
2
x
=
)4(mod3x
. Этим корнем естественно
будет
3x
.
Затем вычислим все g = 2 корней исходного уравнения 2 ∙ x = 6 (mod 8) по формуле
(1.21) для i = 0, 1, …, g – 1 = 0, 1, …, 2 – 1 = 0, 1:
i = 0: (
Nixx
i
1
) = (
4031x
) = (
31x
),
i = 1: (
Nixx
i
1
) = (
4132x
) = (
72x
).
Решим ещё одно уравнение вида (1.17) по схеме (1.20), (1.21). Пусть им будет уже
встречавшееся нам ранее уравнение 11 ∙ x = 22 (mod 143). Тогда:
a = 11, b = 22, N = 143,
НОД (a, N) = НОД (11, 143) = 11 1,
g = НОД (a, N) = 11 делит b = 22.
Для того чтобы найти все g = 11 корней, сначала разделим исходное уравнение вида a ∙ x = b (mod N) на g:
g
N
g
b
x
g
a
mod
=
)(mod Nbxa
=
=
11
143
mod
11
22
11
11
x
=
)(mod Nbxa
=
=
)13(mod21
x
=
)13(mod2x
и получим как и в предыдущем примере разрешённое относительно
x
уравнение
)13(mod2x
. Затем вычислим корни исходного уравнения 11 ∙ x = 22 (mod 143) по фор-
муле
Nixx
i
1
для i = 0, 1, …, g – 1 = 0, 1, …, 11 – 1 = 0, 1, …, 10:
i = 0:
Nxx
0
1
=
1302
= 2,
i = 1:
Nxx
1
2
=
1312
= 15,
i = 2:
Nxx
2
3
=
1322
= 28,
i = 3:
Nxx
3
4
=
1332
= 41,
i = 4:
Nxx
4
5
=
1342
= 54,
i = 5:
Nxx
5
6
=
1352
= 67,
i = 6:
Nxx
6
7
=
1362
= 80,
i = 7:
Nxx
7
8
=
1372
= 93,

17
i = 8:
Nxx
8
9
=
1382
= 106,
i = 9:
Nxx
9
10
=
1392
= 119,
i = 10:
Nxx
10
11
=
13102
= 132.
Случай 3. Если НОД (a, N) 1 и g = НОД (a, N) не делит b (без остатка), то урав-
нение вида a ∙ x = b корней не имеет.
Например, попробуем решить уравнение 6 ∙ x = 4 (mod 9). Тогда:
a = 6, b = 4, N = 9,
НОД (a, N) = НОД (6, 9) = 3 1,
g = НОД (a, N) = 3 не делит b = 4 (без остатка)
и, как видно из табл. 1.10, не существует такого значения x, при котором выполняется равенство 6 ∙ x (mod 9) = 4, т.е. уравнение 6 ∙ x = 4 (mod 9), как и ожидалось, корней не имеет.
Таблица 1.10
x
6 ∙ x (mod 9)
0
0
1
6
2
3
3 0 4 6 5 3 6 0 7 6 8
3
1.1.4. ФУНКЦИЯ ЭЙЛЕРА
В случае когда НОД (a, N) = 1, говорят, что числа a и N взаимно просты. Число
элементов множества Z / NZ, взаимно простых с N, определяется функцией Эйлера
)(N
.
Значение функции
)(N
можно найти по разложению числа N на простые множители:
n
i
e
i
i
pN
1
, (1.22)
где pi – различные простые числа; ei – различные натуральные числа. Если N имеет разложение (1.22), то
n
i
i
e
i
ppN
i
1
1
)1()(
. (1.23)

18
Например, разложение числа N = 24 на простые множители:
n
i
e
i
i
pN
1
= 24 = 23 ∙ 31,
а значение функции Эйлера
)24(
:
n
i
i
e
i
ppN
i
1
1
)1()(
=
)24(
= 2
3 – 1
∙ (2 – 1) ∙ 3
1 – 1
∙ (3 – 1) =
= 22 ∙ 1 ∙ 30 ∙ 2 = 4 ∙ 1 ∙ 1 ∙ 2 = 8.
Таким образом, количество элементов множества Z / NZ, взаимно простых с числом 24,
равно восьми. Это числа 1, 5, 7, 11, 13, 17, 19 и 23.
В другом примере найдём количество чисел из множества Z / NZ, взаимно простых
с числом N = 525. При этом разложение числа N = 525 на простые множители:
n
i
e
i
i
pN
1
= 525 = 52 ∙ 31 ∙ 71,
а количество чисел из множества Z / NZ, взаимно простых с числом N = 525:
n
i
i
e
i
ppN
i
1
1
)1()(
=
)525(
= 5
2 – 1
∙ (5 – 1) ∙ 3
1 - 1
∙ (3 – 1) ∙ 7
1-1
∙ (7 – 1) =
= 51 ∙ 4 ∙ 30 ∙ 2 ∙ 70 ∙ 6 = 5 ∙ 4 ∙ 2 ∙ 6 = 240.
Особый интерес представляют два частных случая.
Случай 1. Если N = p – простое число, то разложение числа N на простые множители:
n
i
e
i
i
ppN
1
= p1, (1.24)
и значение функции Эйлера
)(N
:
n
i
i
e
i
pppN
i
1
1
)1()()(
= p
1 – 1
∙ (p – 1) = p – 1. (1.25)
Случай 2. Если N = p ∙ q, где p и q – простые числа, то разложение числа N на про-
стые множители:
n
i
e
i
i
pqpN
1
= p1∙ q1 , (1.26)
и значение функции Эйлера
)(N
:
n
i
i
e
i
ppN
i
1
1
)1()(
= p
1 – 1
∙ (p – 1) ∙ q
1 – 1
∙ (q – 1) = (p – 1) ∙ (q – 1). (1.27)

19
1.1.5. МУЛЬТИПЛИКАТИВНЫЕ ОБРАТНЫЕ ПО МОДУЛЮ N
При решении уравнения вида a ∙ x = b (mod N) приходится отвечать на вопрос о
существовании мультипликативного обратного у числа a по модулю N, т.е. о существовании числа c, удовлетворяющего равенству
a ∙ c = 1 (mod N). (1.28)
Такое число c обозначим через a–1. Как уже было отмечено ранее, мультипликативный обратный a–1 к числу a существует тогда и только тогда, когда числа a и N взаимно
просты, т.е. когда НОД (a, N) = 1. Особенно интересен случай простого модуля N = p, поскольку при этом для любого ненулевого элемента a Z / NZ существует единственное
решение уравнения:
a ∙ x = 1 (mod p). (1.29)
Следовательно, любой ненулевой элемент в множестве Z / pZ обладает мультипликативным обратным. Кольца, обладающие таким свойством, называют полями.
Определение 1.3. Полем называется кольцо (F, +, ∙ ) с носителем F и заданными на
нём операциями сложения и умножения, такими, что:
1) (F, +) является абелевой группой с нейтральным элементом 0;
2) (F \ {0}, ∙ ) – абелевой группой с нейтральным элементом 1;
3) операции сложения и умножения удовлетворяют закону дистрибутивности.
Следовательно, полем является коммутативное кольцо, в котором каждый ненулевой элемент имеет мультипликативный обратный по модулю N.
Определим множество обратимых элементов в множестве Z / NZ как
(Z / NZ)* = {x Z / NZ | НОД (x, N) = 1}. (1.30)
Для общего кольца A через A* обозначим наибольшее подмножество его элементов,
которые образуют группу по умножению. В нашем случае в кольце Z / NZ множество
(Z / NZ)* образует группу по умножению с числом элементов, равным
)(N
.
Например, для N = 24 в кольце Z / NZ = {0, 1, …, 23} множество (Z / NZ)* = {1, 5, 7,
11, 13, 17, 19, 23} образует группу по умножению с числом элементов, равным
)24(
= 8.
Следовательно, алгебра с носителем (Z / NZ)* = {1, 5, 7, 11, 13, 17, 19, 23} и заданными на
нём операциями сложения и умножения по модулю 24 является полем.
В специальном случае, когда N = p, где p – простое число, получаем
(Z / NZ)* = (Z / pZ)* = {1, …, p – 1}, (1.31)

20
поскольку каждый ненулевой элемент кольца Z / pZ взаимно прост с p и поэтому обратим.
Другими словами, Z / pZ является конечным полем, которое обычно называют полем вы-
четов по модулю p и обозначают символом Fp. Как следует из определения, мультиплика-
тивная группа F* поля F совпадает с множеством F \ {0}. В частном случае поля вычетов
по модулю p:
Fp = Z / pZ = {0, …, p – 1} и
*
p
F
= {1, …, p – 1}. (1.32)
Следовательно, целые числа по модулю N образуют поле тогда и только тогда, когда N – простое число.
Например, полем является кольцо (F7, +, ∙ ) с носителем F7 = {0, 1, 2, 3, 4, 5, 6} и заданными на нём операциями сложения и умножения по модулю семь.
Самой важной теоремой из элементарной теории конечных групп является следующая теорема.
Теорема 1.1. (Теорема Лагранжа) Если (G, ∙) – группа порядка (с числом элементов) n = #G, где #G – мощность множества G, то любой элемент a G удовлетворяет соотношению
an = 1. (1.33)
Проверим справедливость данной теоремы Лагранжа на примере мультипликативной группы с носителем G = {1, 5, 7, 11, 13, 17, 19, 23} порядка n = #G = 8:
18 = 1 (mod 24),
58 = (5 ∙ 5 ∙ 5 ∙ 5 ∙ 5 ∙ 5 ∙ 5 ∙ 5) (mod 24) =
= (25 ∙ 25 ∙ 25 ∙ 25) (mod 24) = (1 ∙ 1 ∙ 1 ∙ 1) (mod 24) =1 (mod 24),
78 = (7 ∙ 7 ∙ 7 ∙ 7 ∙ 7 ∙ 7 ∙ 7 ∙ 7) (mod 24) =
= (49 ∙ 49 ∙ 49 ∙ 49) (mod 24) =(1 ∙ 1 ∙ 1 ∙ 1) (mod 24) = 1 (mod 24),
118 = (11 ∙ 11 ∙ 11 ∙ 11 ∙ 11 ∙ 11 ∙ 11 ∙ 11) (mod 24) =
= (121 ∙ 121 ∙ 121 ∙ 121) (mod 24) = (1 ∙ 1 ∙ 1 ∙ 1) (mod 24) = 1 (mod 24),
……………………………………………………………..
238 = (23 ∙ 23 ∙ 23 ∙ 23 ∙ 23 ∙ 23 ∙ 23 ∙ 23) (mod 24) =
= (529 ∙ 529 ∙ 529 ∙ 529) (mod 24) = (1 ∙ 1 ∙ 1 ∙ 1) (mod 24) = 1 (mod 24).
Для группы с носителем G = {1, …, 6} порядка n = #G = 6 теорема Лагранжа также
справедлива:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
