Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в криптологию. В 4 частях. Ч.1. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
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 уравнения
7x = 3 (mod 143);
уравнение
11x = 22 (mod 143)
имеет одиннадцать корней x  {2, 15, 28, 41, 54, 67, 80, 93, 106, 119, 132}; а уравнение
11x = 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(mod3x
. Этим корнем естественно
будет
3x
.
Затем вычислим все g = 2 корней исходного уравнения 2 x = 6 (mod 8) по формуле (1.21) для i = 0, 1, …, g1 = 0, 1, …, 2 – 1 = 0, 1:
i = 0: (
Nixx
i
1
) = (
4031x
) = (
31x
),
i = 1: (
Nixx
i
1
) = (
4132x
) = (
72x
).
Решим ещё одно уравнение вида (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(mod2x
и получим как и в предыдущем примере разрешённое относительно
x
уравнение
)13(mod2x
. Затем вычислим корни исходного уравнения 11 ∙ x = 22 (mod 143) по фор-
муле
Nixx
i
1
для i = 0, 1, …, g1 = 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, т.е. уравнение 6x = 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 = pq, где 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
∙ (p1) ∙ 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)* = {xZ / 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 теорема Лагранжа также справедлива:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]