ЛЕКЦИЯ 7 ПЕРВООБРАЗНЫЕ КОРНИ Определение. Класс [a

advertisement
ЛЕКЦИЯ 7
ПЕРВООБРАЗНЫЕ КОРНИ
Определение. Класс [a], где (a, n) = 1, называется
первообразным корнем по модулю n, если показатель
числа a по модулю n равен φ(n) – значению функции
Эйлера для модуля n.
Известно, что любой показатель k числа a по
модулю n делит φ(n). Поэтому, чтобы убедиться, что
число a является первообразным корнем по модулю n,
надо проверить, что для любого числа k делителя φ(n) ak
≠ 1 mod n.
Пример. Рассмотрим модуль n = 54. Тогда
φ(54) = φ(2 × 27) = φ(2 × 33) =
= (2 – 1) × 33 – 1(3 – 1) = 18 = 2 × 3 × 3.
Делителями числа 18 являются числа 1, 2, 6, 9, 18.
Рассмотрим число 5. Проверяем, будут ли числа 1, 2, 6, 9
показателями для числа 5 по модулю 54. Имеем
51 mod 54 ≡ 5 mod 54,
52 mod 54 ≡ 25 mod 54,
53 mod 54 ≡ 125 mod 54 ≡ 17 mod 54,
56 mod 54 ≡ (17 × 17) mod 54 ≡
≡ 289 mod 54 ≡ 19 mod 54,
59 mod 54 ≡ (56 mod 54)(53 mod 54) ≡
≡ 17 × 19 ≡ 323 mod 54 ≡ 53 mod 54,
59 mod 54 ≡ (59 mod 54)2 ≡
≡ 53 × 53 ≡ 280 9 mod 54 ≡ 1 mod 54.
Из приведенных вычислений ясно, что показатель,
которому принадлежит число 5 по модулю 54, равен 18,
т. е. значению φ(54). Отсюда следует, что класс [5]
является первообразным корнем по модулю 54.
Заметим, что первообразных корней по модулю n
может и не быть. Напомним, что для модуля n = 20,
рассматривая все классы взаимно простые с модулем,
мы получили такие результаты:
для класса [1] показатель равен 1;
для классов [9], [11], [19] показатель равен 2;
для классов [3], [7], [13], [17] показатель равен 4.
Нет ни одного класса взаимно простого с модулем,
у которого показатель равен φ(20) = 8. Отсюда следует
вывод, что для модуля 20 первообразный корень
отсутствует.
Теорема.
По
любому
простому
модулю
p
существует φ(p–1) классов первообразных корней.
ИНДЕКСЫ
Определение. Пусть числа a и b взаимно просты с
n, т. е. (a, n) = 1, (b, n) = 1. Число s называется индексом
b по модулю n и основанию a, если
as ≡ b mod n.
При фиксированном модуле n для индекса s принята
такая форма записи
s = inda b.
Для данной формы из определения индекса получается
следующее тождество
ainda b ≡ b mod n.
Заметим, что если s индекс числа b по основанию a, т. е.
s = inda b, то s является индексом для любого числа β из
класса [b] по любому основанию α из класса чисел [a].
Понятие индекса представляет собой аналогию понятия
логарифма.
Пример. Пусть даны модуль n = 13 и основание a =
2. Тогда имеем
21 ≡ 2 mod 13, т. е. ind2 2 = 1;
22 ≡ 4 mod 13, т. е. ind2 4 = 2;
23 ≡ 8 mod 13, т. е. ind2 8 = 3;
24 ≡ 16 mod 13 ≡ 3 mod 13, т. е. ind2 3 = 4;
25 ≡ 32 mod 13 ≡ 6 mod 13, т. е. ind2 6 = 5;
26 ≡ 64 mod 13 ≡ 12 mod 13, т. е. ind2 12 = 6;
213 ≡ (26262) mod 13 ≡
≡ 288 mod 13 ≡ 2 mod 13, т. е. ind2 2 = 13;
Обратим внимание на два соотношения:
ind2 2 = 1 и ind2 2 = 13,
которые показывают, что одно число может иметь
разные индексы.
Пример. Дано: модуль n = 21, основание a = 5,
тогда имеем
52 ≡ 25 mod 21 ≡ 4 mod 21, т. е. ind5 4 = 2;
54 ≡ 625 mod 21 ≡ 16 mod 21, т. е. ind5 16 = 4;
56 ≡ 5452 mod 21 ≡ 64 mod 21 ≡
≡ 1 mod 21, т. е. ind5 1 = 6;
Обратим внимание, что для модуля 21 не существует
индекса для числа 2 по основанию 5, т. е. значения ind 5
2. Действительно, не существует числа s, для которого
сравнение
5s ≡ 2 mod 21
справедливо. На основании приведенного примера
возникает вопрос – при каких условиях индекс числа b
по основанию a существует для данного модуля n?
Для решения этого вопроса напомним, что если
число g = φ(n), где φ(n) – значение функции Эйлера для
модуля n, является наименьшим из всех чисел, при
котором справедливо сравнение
ag ≡ 1 mod n,
то g называется первообразным корнем. В этом случае
справедливо следующее утверждение.
Теорема. Пусть число g есть любой первообразный
корень по модулю n. Для каждого числа b, взаимно
простого с модулем n существуют индексы по
основанию g, т. е. найдутся такие числа s, что
выполняется сравнение
gs ≡ b mod n.
Множество всех таких индексов s для данного
фиксированного b совпадает с неотрицательными
числами некоторого класса по модулю φ(n).
Теорема. Пусть g – первообразный корень по
модулю n и b – число взаимно простое с модулем n.
Тогда сравнение
с ≡ b mod n
справедливо тогда и только тогда, когда
indg c ≡ indg b mod φ(n).
Теорема. Пусть g – первообразный корень по
модулю n, a и b – числа, взаимно простые с модулем n, т.
е.
(a, n) = 1, (b, n) = 1.
Тогда
indg (a, b) ≡ (indg a + indg b) mod φ(n).
Теорема. Пусть g – первообразный корень по
модулю n и a – число взаимно простое с модулем n, т. е.
(a, n) = 1.
Тогда
indg ak ≡ (k × indg a) mod φ(n).
Определение. Если
a
b ≡ k mod n, n > 1 и (b, n) = 1,
( a / b)
где число b – взаимно простое с n, то за ind g
принимается значение indgk.
Теорема. Пусть g – первообразный корень по
модулю n и b – число взаимно простое с модулем n, n >
1, т. е.
(b, n) = 1.
Тогда
a
ind b ≡ (indg a – indg b) mod φ(n).
g
Рассмотрим случай, когда модуль простое число. В
этом случае известно, что по любому простому p
существуют φ(p – 1) классов первообразных корней. Если
взять за основание какое-либо g из любого класса
первообразных корней, то для любого числа b, которое
не делится на p, существует индексы. Будем
рассматривать наименьший из всех возможных индексов
числа b по основанию a для простого модуля p. При этих
условиях для простых модулей p иногда вычисляют
таблицу индексов для всех целых чисел из интервала [1,
p – 1].
Кроме того, известно, если число p, p > 2 – простое,
то для составных модулей вида pt и 2pt существуют
первообразные корни. Поэтому для чисел взаимно
простых с модулями pt и 2pt существуют индексы.
Пример. Пусть дан модуль n = 27 = 33 = p3, где p –
простое число. Вычислим
φ(n) = φ(27) = φ(33) = 33 – 1(3 – 1) = 9 × 2 = 18.
Известно, что показатели k, для которых
ak ≡ 1 mod n
должны быть делителями φ(n). Делителями числа 18
являются числа 1, 2, 3, 6, 9. Однако существует теорема,
которая утверждает, что первообразные корни по
модулю p2 будут первообразными корнями и по модулю
pt, t ≥ 2. По этой логике для того, чтобы найти
показатели для некоторого числа a, для которого
выполняется сравнение ak ≡ 1 mod n по модулю n = 27,
достаточно рассмотреть только показатели, которые
являются делителями значения функции Эйлера для
числа 32 = 9. Имеем,
φ(9) = φ(32) = 32 – 1 × (3 – 1) = 3 × 2 = 6.
Итак, среди показателей k < φ(9) числа a, для
которых выполняется сравнение
ak ≡ 1 mod 9,
могут быть только делители числа φ(9) = 6. Отсюда
следует, что для любого числа a показатель k < φ(9), для
которого выполняется сравнение ak ≡ 1 mod n, могут
быть только числа 1, 2, 3.
Рассмотрим число g = 5. Проверим, является ли
число g первообразным корнем по модулю n = 27. Для
этого вычислим g1, g2 и g3:
51 mod 9 ≡ 5 mod 9,
52 mod 9 ≡ 25 mod 9 ≡
≡ (2 × 9 + 7) mod 9 ≡ 7 mod 9,
53 mod 9 ≡ 125 mod 9 ≡
≡ (13 × 9 + 8) mod 9 ≡ 8 mod 9.
По теории в условиях данной задачи существует такое k,
для которого
5k mod 9 ≡ 1 mod 9,
причем показатель k является делителем φ(9). Из
выкладок следует, что таким показателем может быть
только число φ(9) = 6. Проверим данный вывод:
56 mod 9 ≡ (53 × 53) mod 9 ≡ (8 × 8) mod 9 ≡
≡ 64 mod 9 ≡ (7 × 9 + 1) mod 9 ≡ 1 mod 9.
Из вычисления 56 mod 9 следует, что 5 есть
первообразный корень по модулю 9, а значит, число g =
5 является первообразным корнем и по модулю n = 27.
Убедившись, что g = 5 первообразный корень по
модулю n = 27, т. е.
5ϕ (27) mod 27 ≡ 518 mod 27 ≡ 1 mod 27,
перейдем к вычислению индексов по модулю 27 с
основанием g = 5. Имеем следующие индексы чисел по
основанию g = 5 по модулю 27
50 mod 27 ≡ 1 mod 27,
51 mod 27 ≡ 5 mod 27,
52 mod 27 ≡ 25 mod 27,
53 mod 27 ≡ 125 mod 27 ≡
≡ (4 × 27 + 17) mod 27 ≡ 17 mod 27,
54 mod 27 ≡ 625 mod 27 ≡
≡ (23 × 27 + 4) mod 27 ≡ 4 mod 27,
55 mod 27 ≡ (54 × 5) mod 27 ≡
≡ (4 × 5) mod 27 ≡ 20 mod 27,
56 mod 27≡(55 × 5) mod 27≡
≡ (20 × 5) mod 27≡100 mod 27≡ 19 mod 27,
57 mod 27 ≡ (55 × 52) mod 27 ≡
≡ (20 × 25) mod 27 ≡ 500 mod 27 ≡ 14 mod 27,
58 mod 27 ≡ (54 × 54) mod 27 ≡
≡ (4 × 4) mod 27 ≡ 16 mod 27,
59 mod 27 ≡ (58 × 5) mod 27 ≡
≡ (16 × 5) mod 27 ≡ 80 mod 27 ≡ 26 mod 27,
510 mod 27 ≡ (59 × 5) mod 27 ≡
≡ (26 × 5) mod 27 ≡ 130 mod 27 ≡ 22 mod 27,
511 mod 27 ≡ (510 × 5) mod 27 ≡
≡ (22 × 5) mod 27 ≡ 110 mod 27 ≡ 2 mod 27,
512 mod 27 ≡ (511 × 5) mod 27 ≡
≡ (2 × 5) mod 27 ≡ 10 mod 27,
513 mod 27 ≡ (512 × 5) mod 27 ≡
≡ (10 × 5) mod 27 ≡ 50 mod 27 ≡ 23 mod 27,
514 mod 27 ≡ (512 × 52) mod 27 ≡
≡ (10 × 25) mod 27 ≡ 250 mod 27 ≡ 7 mod 27,
515 mod 27 ≡ (514 × 5) mod 27 ≡
≡ (7 × 5) mod 27 ≡ 35 mod 27 ≡ 8 mod 27,
516 mod 27 ≡ (515 × 5) mod 27 ≡
≡ (8 × 5) mod 27 ≡ 40 mod 27 ≡ 13 mod 27,
517 mod 27 ≡ (516 × 5) mod 27 ≡
≡ (13 × 5) mod 27 ≡ 65 mod 27 ≡ 11 mod 27,
518 mod 27 ≡ (517 × 5) mod 27 ≡
≡ (11 × 5) mod 27 ≡ 55 mod 27 ≡ 1 mod 27.
В итоге проделанных вычислений получаем следующие
значения дискретных логарифмов по модулю 27 при
основании 5:
для
для
для
для
для
для
для
для
для
числа
числа
числа
числа
числа
числа
числа
числа
числа
1 ind5 1 = 0, для числа 2 ind5 2 = 11,
4 ind5 4 = 4, для числа 5 ind5 5 = 1,
7 ind5 7 = 14, для числа 8 ind5 8 = 15,
10 ind5 10 = 12, для числа 11 ind5 11= 17,
13 ind5 13 = 16, для числа 14 ind5 14 = 7,
16 ind5 16 = 8, для числа 17 ind5 17 = 3,
19 ind5 19 = 6, для числа 20 ind5 20 = 5,
22 ind5 22 = 10, для числа 23 ind5 23 = 13,
25 ind5 25 = 2, для числа 26 ind5 26 = 9.
В заключении рассмотрим сравнение
y ≡ gx mod p.
Вычислить y при заданных значениях p, g и x не
представляет труда. Обратная задача – по значениям p,
g и y вычислить x, т. е. определить индекс или
дискретный логарифм – трудная задача с точки зрения
числа арифметических операций.
Сложность этой задачи для реально используемых
значений
модуля
p
находится
за
пределами
возможностей современных вычислительных систем.
Поэтому некоторые современные криптографические
системы с открытыми ключами создаются на базе
задачи дискретного логарифмирования. К подобным
системам можно отнести схему Эль – Гамаля и схему
Шнорра. Данные схемы используются для решения
некоторых криптографических задач.
Download