
- •Лекция Элементы теории чисел
- •Арифметика классов
- •Примеры вычислительно-сложных задач:
- •Кольцо классов
- ••Пусть Z – кольцо целых чисел.
- •• Это и будет кольцом Z(m).
- ••Все привычные свойства – коммутативность, ассоциативность и дистрибутивность здесь сохраняются.
- •Поле классов вычетов
- •Пример 3.
- •Поле Галуа
- •Обозначение поля Галуа: GF(2n) или
- •Основная теорема теории чисел
- •• Функция Эйлера
- •Теорема Эйлера
- •Наибольший общий делитель
- •Алгоритм Евклида.
- •Пример 6.
- •Обращение чисел в классах вычетов
- •Расширенный алгоритм
- •Обратное по Эйлеру
- ••Тогда получаем
- •Обратное по Ферма
- •Возведение в степень для
- •Перемножим между собой только те степени, которым соответствуют ненулевые коэффициенты в двоичном представлении
- •Определение индекса
- •Нахождение дискретного
- •Проверка чисел на простоту
- •Проверить выполнение сравнения
- •Тест Ферма (продолжение)
- •Тест Рабина- Миллера -
- •Тест Миллера - Рабина
- •Вероятность ошибки для Теста Рабина- Миллера
- •Понятие группы
- •Несимметричные
- ••КС Эль Гамаля
- •• КС на эллиптической кривых
- •Основные свойства конечных полей
Обратное по Эйлеру
•Пусть дано кольцо 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, получим
az· b-1 (mod n) = y (mod n).
zb-1 = x.
Этот метод имеет сложность Nt O((n)1/2log n), Nv O((n)1/2)
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