Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шемякин лекции 2023 / Л10. Элементы теории чисел. Ред.1 - копия

.pdf
Скачиваний:
13
Добавлен:
30.05.2023
Размер:
1.26 Mб
Скачать

Обратное по Эйлеру

Пусть дано кольцо Z(m) классов вычетов по модулю составного числа m

m = p*q.

Найти:

x = a-1 (mod m)

Известно, что

a φ(n) = 1 (mod m).

21

Тогда получаем

x= a φ(n)-1 = a (p-1)(q-1)-1 (mod m).

22

Обратное по Ферма

• Дано поле классов вычетов GF(p). Тогда

x = a p -2 (mod m).

23

Возведение в степень для больших чисел

В криптосистемах RSA и Эль Гамаля стандартной операцией является возведение в степень

y = ax (mod n)

Представим показатель степени в двоичном виде

x = 2k xk + 2k-1 xk-1 +…+ 22 x2 + 21 x1 + 20 x0

x = 37 = 32 + 4 + 1 = 100101 n = 7

24

• Находим k степеней основания a = 3 путем последовательного возведения в квадрат числа a.

31 = 3(mod 7),

32 = 2(mod 7),

34 = 4(mod 7),

38 = 2(mod 7),

316 = 4(mod 7),

332 = 2(mod 7).

25

Перемножим между собой только те степени, которым соответствуют ненулевые коэффициенты в двоичном представлении числа x.

То есть это, когда xi = 20, 22, 25

31 = 3(mod 7),

34 = 4(mod 7),

332 = 2(mod 7).

y = 2·4 ·3(mod 7) = 3.

26

Определение индекса элемента конечного поля (логарифмирование)

Log

a

y = x (mod p)

y = ax (mod p)

 

 

 

x - индекс числа a в поле GF(p).

Задача для больших чисел p является вычислительно сложной. На трудности её решения основывается стойкость КС Эль Гамаля.

27

Нахождение дискретного логарифма методом «встречи посредине»

-строим базу данных размера O((n)1/2) вида az (mod n) для случайных чисел z [1, … n] и сортируем ее.

-для случайных чисел b, таких что НОД(b, n-1) = 1 вычисляем yb (mod n) и сравниваем с числами базы данных.

-с большой вероятностью после нескольких попыток получаем

az (mod n) = yb (mod n)

 

- возводим обе части в степень b-1, получим

 

ab-1 (mod n) = y (mod n).

 

Откуда следует

 

zb-1 = x.

 

Этот метод имеет сложность N O((n)1/2log n),

 

t

 

N O((n)1/2)

 

v

28

Проверка чисел на простоту

Тест Эйлера (вероятностный тест).

В его основе лежит теорема Эйлера о квадратичных вычетах.

Для простых чисел p и любых a ˂ p a(p-1)/2 = ±1 (mod p).

Для проверки нечетного числа p на простоту необходимо:

Прогенерировать k чисел bi , i = 1, 2, …, k. bi < p.

29

Проверить выполнение сравнения

a(p-1)/2 = ±1 (mod p)

для i = 1, 2, ….

Если оно не выполняется хотя бы один раз, то p составное. Если выполняется для всех i, то p возможно простое

Вероятность ошибки, т.е. вероятность принять составное число за простое:

Pош(p-простое) = 1/2k

30