- •Теоретико-числовые методы в криптографии
- •Аннотация.
- •Предисловие
- •Введение
- •Глава 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.4. Сравнения любой степени по простому модулю.
Пусть р – простое число, и пусть задано сравнение вида f(x)≡0(mod p), где f(x)=axn+a1xn—1+…+an *. Тогда справедлива
Теорема 1:
Сравнение вида * равносильно сравнению степени, не выше р—1.
Доказательство:
Деля f(x) на (xp—x) с остатком, имеем f(x) =(xp—x)Q(x)+R(x).
Так как xp—x≡0(mod p), то f(x)≡R(x)(mod p), а степень многочлена R(x) не выше, чем р–1. Что и требовалось доказать.
□
Теорема 2
Если сравнение * имеет более n решений, то все коэффициенты многочлена f(x) кратны р.
Доказательство:
Пусть * имеет хотя бы n+1 решение, и вычеты этих решений суть x1, x2, … , xn, xn+1.
Тогда многочлен f(x) можно представить в виде
f(x)=a(x—x1)(x—x2)(x—x3)…(x—xn)+ **
+b(x—x1)(x—x2)…(x—xn—1)+
+c(x—x1)(x—x2)…(x—xn—2)+
……...
+l(x—x1)+m.
Справедливость этого равенства проверяется раскрытием скобок в правой части.
Полагая в этом равенстве x=x1, убеждаемся, что p\m, полагая x=x2 и учитывая, что p\m, убеждаемся, что р\l. Полагаем, что x=x3, x=x4, …, x=xn+1 и последовательно убеждаемся, что p\c, p\b, p\a, то есть все коэффициенты из ** делятся на p.
Учтем, что a=a, , , … , , то есть коэффициенты из * являются линейными комбинациями коэффициентов из **, а значит a, a1, a2, …, an кратны р как линейные комбинации чисел, кратных р.
□
4.5. Сравнения любой степени по составному модулю.
Теорема
Если m1, m2, … , mk – попарно простые числа, то сравнение
f(x)≡0(mod m1·m2·…·mk) *
равносильно системе
** ,
причем, если первое сравнение имеет T1 решений по модулю m1, второе – T2 решений модулю m2, …, k-е сравнение имеет Tk решений по модулю mk, то исходное сравнение будет иметь T=T1·T2·…·Tk решений по модулю m1·m2·…·mk.
Доказательство:
Равносильность сравнения и системы очевидна и следует из свойств 12 и 13 сравнений.
Утверждение о количестве решений следует из того, что каждое сравнение
f(x)≡0(mod ms) ***
выполняется тогда и только тогда, когда выполняется одно из Ts сравнений вида x≡bs(mod ms) (где bs пробегает вычеты решений сравнения ***). Причем возможно всего T=T1·T2·…·Tk различных комбинаций вида x≡b1(mod m1), x≡b2(mod m2),…, x≡bk(mod mk), которые приводят (по китайской теореме об остатках) к различным классам вычетов по модулю m1·m2·…·mk.
□
Из доказанной теоремы следует, что решение сравнения вида сводится к решению сравнений вида.
А решение сравнение вида f(x)≡0(mod pα) может быть найдено, если известно решение сравнения f(x)≡0(mod p). Покажем это.
Пусть x≡x1(mod p) – решение сравнения f(x)≡0(mod p). Тогда x можно представить в виде
x=x1+pt1, где .
Подставляя такое x в сравнение f(x)≡0(mod p2) и применяя формулу Тейлора (учитывая, что f(x) – многочлен, x1 – целое число, поэтому ), получаем
f(x1)+pt1f '(x1)≡0(mod p2).
Поскольку f(x1)≡0(mod p), то p\f(x1), а значит можно сократить в получившемся выражении на p правую, левую части и модуль. Получим:
Если f '(x1) не делится на р, то данное сравнение имеет одно решение:
(т.е. )
Подставляя полученное x в сравнение f(x)≡0(mod p3), имеем
f(x2)+p2t2f '(x2)≡0(mod p3),
откуда, сократив правую, левую части и модуль на p2 , получим
[Здесь f '(x2) не может быть кратно р, если f '(x1) не кратно p, т.к. x2≡x1(mod p), а значит, f '(x2) ≡ f '(x1) (mod p)]
Тогда сравнение имеет одно решение , или, что то же самое,, откуда получаем решение по модулюp3 : x=x3+p3t3.
Продолжим этот процесс до тех пор, пока не будет решено сравнение по модулю pα. Итак, по данному решению сравнения f(x)≡0(mod p) можно найти решение сравнения f(x)≡0(mod pα).
Пример:
Требуется решить сравнение x3+9x—1≡0 (mod 125).
Известно, что сравнение x3+9x—1≡0 (mod 5) имеет одно решение:
x≡2(mod 5), или x=2+5t1.
Поскольку модуль «5» небольшой, а общих подходов к сравнениям высоких степеней мы пока не знаем, то этот корень нашли простым перебором, попутно убедившись в его единственности.
Подставим получившееся x в сравнение по модулю 25:
(2+5t1)3+9(2+5t1)—1≡0 (mod 25).
Решим это сравнение.
8+4·5t1+2·(5t1)2+(5t1)3+18+9·5t1—1≡0 (mod 25)
25+13·5t1+25·(5t13+2 t12) ≡0 (mod 25)
13·5t1≡0 (mod 25)
13t1≡0 (mod 5)
t1≡0 (mod 5)
Или, что то же самое, t1=0+5t2, откуда решение по модулю 25 есть x=2+25t2. Подставим полученное x в сравнение по модулю 125:
(2+25t2)3+9(2+25t2)—1≡0 (mod 125)
Решим это сравнение.
8+4·25t2+2·(25t2)2+(25t1)3+18+9·25t1—1≡0 (mod 125)
25+13·25t2+625·(25t23+2t22) ≡0 (mod 125)
25+13·25t2≡0 (mod 125)
1+13t2≡0 (mod 5)
13t2≡—1 (mod 5)
3t2≡4 (mod 5)
Получили сравнение первой степени. Решим его. Отыщем 3-1(mod 5), для чего, как всегда, воспользуемся расширенным алгоритмом Евклида:
5=3+2
3=2+1
2=1+0
1=3—2=3—(5—3)=2·3—1·5.
2≡3-1(mod 5).
Тогда решением сравнения относительно t2 будет
t2≡2·4 (mod 5)
t2≡3 (mod 5)
Или, что то же самое, t2=3+5t3, откуда решение по модулю 125 есть x=2+25(3+5t3)=2+75+125t3=77+125t3, или, что то же самое,
x≡77 (mod 125).