- •Теоретико-числовые методы в криптографии
- •Аннотация.
- •Предисловие
- •Введение
- •Глава 1. Основы теории чисел. §1. Теория делимости.
- •1.1. Основные понятия и теоремы.
- •1.2. Наибольший общий делитель.
- •1.3 Нок (наименьшее общее кратное)
- •1.4. Простые числа
- •Решето Эратосфена
- •1.5. Единственность разложения на простые сомножители.
- •1.6. Асимптотический закон распределения простых чисел.
- •§2. Функция Эйлера.
- •2.1. Мультипликативные функции.
- •2.2. Функция Эйлера.
- •§3. Теория сравнений
- •3.1. Свойства сравнений:
- •3.2. Полная система вычетов.
- •3.3. Приведенная система вычетов
- •3.4. Обратный элемент.
- •3.5. Алгебраические структуры на целых числах.
- •3.6. Теоремы Эйлера и Ферма. Тест Ферма на простоту.
- •Тест Ферма на простоту
- •3.7. Применение теоремы Эйлера в rsa:
- •§4. Сравнения с одним неизвестным
- •4.1. Сравнения первой степени.
- •4.2. Система сравнений первой степени. Китайская теорема об остатках.
- •4.3. Применения китайской теоремы об остатках.
- •4.4. Сравнения любой степени по простому модулю.
- •4.5. Сравнения любой степени по составному модулю.
- •§5. Теория квадратичных вычетов
- •5.1. Квадратичные вычеты по простому модулю.
- •5.2. Символ Лежандра. Символ Якоби.
- •Свойства символа Лежандра:
- •Свойства символа Якоби:
- •5.3. Тест на простоту Соловея-Штрассена.
- •Тест Соловея-Штрассена:
- •5.4. Решение квадратичных сравнений по простому модулю.
- •5.5. Квадратичные сравнения по составному модулю.
- •5.6. Тест на простоту Миллера-Рабина.
- •5.7. Связь задач извлечения квадратных корней и факторизации по модулю rsa. Криптосистема Рабина.
- •5.8. Квадраты и псевдоквадраты.
- •5.9. Числа Блюма.
- •§6. Первообразные корни и индексы. Порождающий элемент и дискретный логарифм.
- •6.1. Основные понятия и теоремы.
- •6.2. Существование первообразных корней по модулю p.
- •6.3. Первообразные корни по модулям pα, 2pα.
- •6.4. Нахождение первообразных корней по простому модулю.
- •6.5. Существование и количество первообразных корней.
- •6.6. Дискретные логарифмы.
- •6.7. Проблема Диффи-Хеллмана.
- •6.8. Условная стойкость шифра Эль Гамаля.
- •§7. Построение доказуемо простых чисел общего и специального вида.
- •7.1. Теорема Сэлфриджа и доказуемо простые числа общего вида на основании полного разложения (n—1).
- •7.2. Теорема Поклингтона и доказуемо простые числа общего вида на основании частичного разложения (n—1).
- •7.3. Числа Ферма. Теорема Пепина.
- •7.4. Числа Мерсенна.
- •7.5. Теорема Диемитко и процедура генерации простых чисел заданной длины гост р 34.10-94.
- •Глава 2. Алгебраические основы теории чисел.
- •§1. Основные понятия алгебры.
- •1.1. Начальные понятия.
- •1.2. Делимость в кольцах.
- •1.3. Деление с остатком.
- •1.4. Основная теорема арифметики.
- •§2. Конечные поля и неприводимые многочлены.
- •§3. Кольца многочленов.
- •3.1. Кольца многочленов.
- •3.2. Кольцо многочленов Zp[X].
- •3.3. Конечные поля многочленов.
- •Глава 3. Алгоритмы в криптографии и криптоанализе. §1. Элементы теории сложности.
- •§2. Алгоритмы факторизации.
- •2.1. Метод пробных делений.
- •2.2. Метод Ферма.
- •2.3. Метод квадратичного решета.
- •2.6. Методы случайных квадратов.
- •§3. Алгоритмы дискретного логарифмирования.
- •3.1. Метод прямого поиска.
- •3.2. Шаг младенца – шаг великана.
- •3.4. Алгоритм Полига-Хеллмана.
- •3.5. Алгоритм исчисления порядка (index-calculus algorithm).
- •Задачи и упражнения.
- •Упражнения к Главе 2.
- •Ответы к упражнениям.
- •1. Пояснительная записка
- •1.1. Цели и задачи дисциплины
- •1.2. Требования к уровню освоения содержания дисциплины
- •2. Объем дисциплины и виды учебной работы
- •3. Тематический план изучения дисциплины
- •4. Содержание разделов дисциплины
- •6. Вопросы к экзаменам
- •7.Литература основная:
- •Дополнительная:
- •Оглавление
§4. Сравнения с одним неизвестным
Будем рассматривать сравнения вида a0xn + a1xn-1 + … + an≡ 0 (mod m) (*).
Если a0 не делится на m, то n называется степенью сравнения.
Решить сравнение – значит найти все x, ему удовлетворяющие. Два сравнения, которые удовлетворяют одни и те же значения x, называются равносильными.
Если сравнению (*) удовлетворяет какое-то x=x1, то ему же будут удовлетворять все числа, сравнимые с x1 по модулю m: x ≡ x1(mod m). Весь класс чисел, сравнимых с x1 по модулю m считается за одно решение. Таким образом, (*) будет иметь столько решений, сколько вычетов из полной системы ему удовлетворяет.
Пример:
x5+x+1=0 (mod 7) удовлетворяют x ≡ 2 (mod 7) и x ≡ 4 (mod 7) – 2 решения.
4.1. Сравнения первой степени.
Любое сравнение первой степени можно привести к виду ax ≡ b (mod m). Рассмотрим случай, когда (a, m)=1. Согласно утверждению 2 пункта 3 §3, когда x пробегает полную систему вычетов по модулю m, ax тоже пробегает полную систему вычетов по по модулю m. Следовательно, при одном и только одном значении x из полной системы вычетов, ax будет сравнимо с b, т.е. при (a, m)=1 сравнение имеет ровно 1 решение.
Нахождение решения: Так как (a, m) = 1, то по теореме обратимости a-1 , и тогда исходному сравнению равносильно x ≡ a-1∙b (mod m).
Пусть теперь (a,m)=d>1. Для того, чтобы сравнение имело решение, необходимо, чтобы d\b, иначе сравнение невозможно (свойство сравнений №14).
Если же a=a1d, b=b1d, m=m1d , то исходному сравнению равносильно a1x≡b1(mod m1), причем (a1,m1)=1 сравнение имеет 1 решение по mod m1: x≡x1(mod m1), или d решений по модулю m:
x≡ x1 (mod m),
x≡ x1+m1(mod m),
x≡x1+2m1(mod m),
…
x≡x1+(d–1)m1(mod m).
Пример 1.
Решить сравнение 6x = 5 (mod 35).
Вычислим НОД(6, 35), пользуясь алгоритмом Евклида:
35 = 6∙5+5,
6 = 1∙5 +1
5 = 5∙1+0 НОД(6, 35)=1.
Вычислим обратный элемент к 6 по модулю 35, пользуясь расширенным алгоритмом Евклида:
1 = 6–5=6–(35–6∙5)=6–35+6∙5= 6∙6–35
6-1 = 6 (mod 35).
Домножим правую и левую части исходного сравнения на 6:
6-1∙6x≡6-1∙5(mod 35)
1∙x≡6∙5(mod 35)
Ответ: x ≡ 30 (mod 35)
Пример 2.
Решить сравнение 18x = 6 (mod 24).
Вычислим НОД(18, 24), пользуясь алгоритмом Евклида:
24 = 18 + 6;
18 = 2∙6+0 НОД(18, 24)=6.
Правая и левая части сравнения, а также модуль, делятся на 6. Разделим исходное сравнение на 6 и получим равносильное сравнение:
3x ≡ 1 (mod 4) *.
Вычислим НОД(3, 4), пользуясь алгоритмом Евклида:
4 = 1∙3 + 1;
3 = 3∙1 + 0 НОД(3, 4)=1.
Вычислим обратный элемент к 3 по модулю 4, пользуясь расширенным алгоритмом Евклида:
1=4–3 3-1 = –1(mod 4).
Домножим правую и левую части сравнения (*) на –1:
3-1 ∙3x=–1∙1 (mod 4) x≡ –1 (mod 4).
Или, переводя решение в систему наименьших неотрицательных вычетов, x≡ 3 (mod 4).
Ответ: получили 6 решений по модулю 24:
x≡ 3 (mod 24);
x≡ 7 (mod 24);
x≡ 11 (mod 24);
x≡ 15 (mod 24);
x≡ 19 (mod 24);
x≡ 23 (mod 24).