
- •§ 1 Понятия теории чисел
- •Алгоритм Евклида нахождения наибольшего общего делителя
- •Сравнения и их свойства
- •Функция Эйлера1
- •§ 2 Генераторы псевдослучайных чисел. Линейный конгруэнтный генератор
- •§ 5 Алгоритм последовательного возведения в квадрат
- •Алгоритм последовательного возведения в квадрат
- •§ 8 Дискретный логарифм
- •Переборный алгоритм нахождения дискретного логарифма
- •Алгоритм больших - малых шагов (Шенкса)
- •Алгоритм Нечаева – Поллига - Хеллмана
- •§ 10 Группы
- •Множество Zn
- •Свойства образующих (примитивных) элементов мультипликативной группы Zn*
- •Подгруппы
- •§ 11 Кольца. Поля Кольца
- •Конечные поля – поля Галуа2
- •§ 12 Эллиптические кривые в криптографии
- •Алгоритм вычисления точек эллиптической кривой
- •Алгоритм вычисления порядка группы точек эллиптической кривой
- •Литература
Министерство образования и науки Украины
Запорожский национальный технический университет
_______________________________________________________
Г.Л. Козина, А.В. Неласая
Краткий курс лекций по математическим основам криптографии
(избранные главы)
Запорожье
2013
Козина Г.Л., Неласая А.В. Краткий курс лекций по математическим основам криптографии. – Запорожье: ЗНТУ, 2013. – 28 стр.
Настоящий курс лекций (избранные главы) предназначен для изучения математических основ криптографии в рамках курсов «Безопасность программ и данных» и «Технологии защиты информации» для студентов направлений «Программная инженерия» и «Компьютерные науки».
Содержание
§ 1 Понятия теории чисел 4
§ 2 Генераторы псевдослучайных чисел. Линейный конгруэнтный генератор 8
§ 5 Алгоритм последовательного возведения в квадрат 10
§ 8 Дискретный логарифм 12
§ 10 Группы 14
§ 11 Кольца. Поля 19
§ 12 Эллиптические кривые в криптографии 22
Литература 28
§ 1 Понятия теории чисел
Натуральное число называется простым, если оно не имеет делителей, кроме себя и 1. Натуральное число называется составным, если оно имеет, по крайней мере, два делителя, больших 1.
Утверждение. Любое натуральное число, отличное от 1, можно представить в виде произведения простых чисел.
Утверждение. Для каждого натурального числа существует единственное разложение на простые множители с точностью до следования сомножителей.
Каноническим разложением натурального числа n называется представление числа в виде
где p1, p2,…, pk – попарно различные простые числа, 1, 2,…, k – натуральные числа.
Утверждение (теорема Евклида). Множество простых чисел бесконечно.
Утверждение.
Если натуральное число n
– составное, то оно имеет хотя бы один
делитель, больший 1 и не превосходящий
.
Обозначим через НОД( a, b ) наибольший общий делитель двух чисел a и b .
Если два числа a и b не имеют общих делителей, они называются взаимно простыми, т.е. НОД( a, b ) = 1 или ( a, b ) = 1.
Обозначим через НОК( a, b ) наименьшее общее кратное двух чисел a и b . Для любых двух натуральных чисел a и b наименьшее общее кратное определяется формулой
НОК( a, b ) = a b / НОД( a, b ).
Если два числа a и b взаимно просты, то НОК( a, b ) = a b.
Алгоритм Евклида нахождения наибольшего общего делителя
Пусть даны два натуральных числа a и b , a < b .
Найдем остатки от деления
b = a q0 + r1
a = r1 q1 + r2
r1 = r2 q2 + r3
r2 = r3 q3 + r4
…………….
rn-2 = rn-1 qn–1 + rn
rn-1 = rn qn
НОД( a, b ) = rn .
Пример. Найдем НОД(114, 534).
534 = 114*4 + 78, 114 = 78*1 + 36, 78 = 36*2 + 6, 36 = 6*6. НОД(114, 534)=6.
Сравнения и их свойства
Возьмем натуральное число n и рассмотрим остатки от деления целых чисел на n .
Определение. Два целых a и b сравнимы по модулю n, если разность a – b делится на n без остатка:
a = b mod n (1)
Сравнения обладают следующими свойствами:
a = a mod n
a = b mod n b = a mod n
a = b mod n и b = c mod n a = c mod n
a = b mod n k + b = k + a mod n
a = b mod n kb = ka mod n
kb = ka mod n и ( k, n ) = 1 a = b mod n
a = b mod n и c = d mod n a + c = b + d mod n
a = b mod n и c = d mod n a c = b d mod n
a = b mod n ak = bk mod n для любого целого k
a = b mod n a = b + n t , где t – целое число
Запись
означает, что само число a
делится на
,
т.е.
.
Если зафиксировать некоторый модуль
сравнения
,
то всякое натуральное число
можно единственным образом представить
в виде
, (2)
где
– частное от деления на
,
а
– остаток, совпадающий с одним из чисел
Остаток
называют вычетом числа
по модулю
.
Запись вида (2), где
,
допускает не только натуральные, но и
любые целые числа. Из равенства (2)
следует, что
,
т.е. всякое число сравнимо со своим
остатком (вычетом) по модулю
.
Пусть
и
– два произвольных числа, записанные
в виде (2):
,
.
Каждый из
остатков
и
– это одно из чисел множества {
},
поэтому их разность может делиться на
лишь в одном случае, когда
.
Но тогда и разность
может делиться на
тогда и только тогда, когда
.
Отсюда следует, что
тогда и только тогда, когда числа
и
имеют одинаковые остатки при делении
на
.
Определение.
Классом вычетов
по модулю
называются все числа, имеющие один и
тот же вычет
по модулю
,
и, следовательно, сравнимые между собой
по этому модулю:
Каждому
вычету
отвечает свой класс вычетов:
.
Классы вычетов попарно не пересекаются, и каждое целое число попадает ровно в один класс. Используя операции сложения и умножения чисел, можно производить аналогичные операции и над классами вычетов.
Пусть
и
– два класса вычетов. Выберем любые
два числа из этих классов:
.
Пусть оказалось, что сумма
имеет вычет
,
а произведение
– вычет
:
.
Тогда будем
считать, что «сумма» классов
и
равна
,
а их «произведение» равно
:
.
Класс, которому
принадлежит сумма
(соответственно произведение
)
не зависит от выбора элементов
и
в классах
и
.
Пример.
Пусть модуль сравнения
.
В этом случае имеем два класса вычетов
–
и
,
а операции над ними выглядят так:
Часто в обозначениях классов вычетов опускают черту, записывая их как обычные натуральные числа.