
- •§ 1 Понятия теории чисел
- •Алгоритм Евклида нахождения наибольшего общего делителя
- •Сравнения и их свойства
- •Функция Эйлера1
- •§ 2 Генераторы псевдослучайных чисел. Линейный конгруэнтный генератор
- •§ 5 Алгоритм последовательного возведения в квадрат
- •Алгоритм последовательного возведения в квадрат
- •§ 8 Дискретный логарифм
- •Переборный алгоритм нахождения дискретного логарифма
- •Алгоритм больших - малых шагов (Шенкса)
- •Алгоритм Нечаева – Поллига - Хеллмана
- •§ 10 Группы
- •Множество Zn
- •Свойства образующих (примитивных) элементов мультипликативной группы Zn*
- •Подгруппы
- •§ 11 Кольца. Поля Кольца
- •Конечные поля – поля Галуа2
- •§ 12 Эллиптические кривые в криптографии
- •Алгоритм вычисления точек эллиптической кривой
- •Алгоритм вычисления порядка группы точек эллиптической кривой
- •Литература
Множество Zn
Пусть n – натуральное число. Введем на множестве целых чисел Z операцию сравнения по mod n: a mod n, a Z. Операция сравнения по mod n разбивает множество Z на классы эквивалентности, соответствующие остаткам от деления целых чисел на n: 0, 1, 2, … , n–1. Множество классов эквивалентности по mod n образует множество Zn . Все арифметические операции { +, –, , } в Zn выполняются по mod n .
Пример. Рассмотрим множество Z25 = { 0, 1, 2,…, 24 }. Для элементов этого множества имеем 13 + 16 = 4, 13 4 = 2, 13 – 16 = 22, 15 2 = ?
Определение. Пусть a Zn . Мультипликативным обратным элементом элемента a по mod n называется элемент a – 1 , такой что a a – 1 = 1 mod n. Элемент a называется обратимым по mod n, если для него существует обратный.
Деление в Zn определяется как умножение на обратный элемент a b = a b – 1, если делитель b обратим.
Пример. В множестве Z25 2 – 1 = 13, т.к. сравнение 2 x = 1 mod 25 дает решение x = 13. Отсюда 15 2 = 15 2 – 1 = 15 13 = 195 = 20 mod 25.
Утверждение. Элемент a Zn обратим в том и только том случае, когда a и n взаимно просты, (a, n ) = 1.
Пример. Обратимые элементы в Z9 : 1, 2, 4, 5, 7, 8. Для определения 5–1 решаем сравнение 5 x = 1 mod 9, которое дает решение x = 2. Отсюда 5 – 1 = 2.
Множество Zn с операцией сложения по mod n образует конечную аддитивную группу порядка n .
Введем множество Zn*, определяемое как подмножество множества Zn, состоящее только из обратимых элементов
Zn* = { a Zn | (a, n ) = 1 }
Множество Zn* с операцией умножения по mod n образует конечную мультипликатив-ную группу порядка (n).
Если n – простое число, то (n) = n – 1 и Zn* = { 1, 2, 3, …, n – 1 }.
Определение. Пусть a Zn*. Порядком элемента группы называется наименьшая степень t, в которую нужно возвести элемент, чтобы получить 1 :
a t = 1 mod n .
Обозначение t = ord ( a ).
Утверждение. Если ord ( a ) = t и a s = 1 mod n , то s делится на t .
Утверждение. Если t – порядок некоторого элемента a Zn*, то (n) делится на t .
Определение. Если ord(a) = (n) для a Zn*, то элемент a называется образующим, или примитивным, элементом группы.
Если в группе есть образующий элемент, то группа называется циклической.
Утверждение. Всякая циклическая группа абелева.
Свойства образующих (примитивных) элементов мультипликативной группы Zn*
Группа Zn* имеет образующий элемент в том и только том случае, когда
n = 2, 4, pk, 2pk , p – простое нечетное число.
2.Если a – образующий элемент Zn*, то
Zn* = { ai mod n, i = 0, 1, 2, 3, …, (n) – 1 }
3.Если a – образующий элемент Zn*, то b = ai mod n является образующим элементом в том и только том случае, когда i взаимно просто с (n), ( i , (n) ) = 1.
4.Если Zn* – циклическая группа, то число образующих элементов группы равно ((n)).
5.Элемент a Zn* является образующим элементом группы в том и только том случае, когда
a(n)/p 1 mod n
для любого простого делителя p числа (n).
Примеры.
В группе Z21* (21) = ( 3 – 1 ) ( 7 – 1 ) = 12 элементов: 1,2,4,5,8,10,11,13,16,17,19,20. Каждый элемент имеет обратный, например, 2 – 1 = 11, 10 – 1 = 19. Группа не является циклической. Ord ( 1 ) = 1, ord ( 8,13,20 ) = 2, ord ( 4,16 ) = 3, ord ( 2,5,10,11,17,19 ) = 6.
В группе Z25* (25) = 5 ( 5 – 1 ) = 20 элементов. Группа циклическая, содержит ((25)) = (20) = 2 ( 2 – 1 ) ( 5 – 1 ) = 8 образующих.
В группе Z13* (13) = 13 – 1 = 12 элементов. Группа циклическая, содержит ((13)) = (12) = 2 ( 2 – 1 ) ( 3 – 1 ) = 4 образующих. Элемент a = 2 является образующим, так как 26 = 64 = 12 mod 13 1, ( (13)/2 = 6 ), 24 = 16 = 3 mod 13 1, ( (13)/3 = 4 ).
Найдем остальные образующие элементы: { i | ( i , (n) ) = 1 }= { 1, 5, 7, 11 }.
Образующие элементы – 2, 6, 7, 11:
b0 = 21 mod 13 = 2
b1 = 25 mod 13 = 32 mod 13 = 6
b2 = 27 mod 13 = 128 mod 13 = 11
b3 = 211 mod 13 = 2048 mod 13 = 7.