А.В. Рожков, О.В. Ниссенбаум - Теоретико-числовые методы в криптографии (1127102), страница 8
Текст из файла (страница 8)
Если 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 в сравнение 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).
§5. Теория квадратичных вычетов
Рассмотрим сравнение xn≡a(mod m) *, (a,m)=1. Если * имеет решение, то а называется вычетом степени n по модулю m. Если n=2, то вычеты называются квадратичными, если n=3 – кубическими, n=4 – биквадратичными. Если * решений не имеет, то а называется невычетом степени n по модулю m.
Далее будем рассматривать случай n=2, т.е. сравнения вида x2≡a(mod m), (a,m)=1.
5.1. Квадратичные вычеты по простому модулю.
В этом пункте будем рассматривать сравнения вида x2≡a(mod p), p>2 – простое число.
Теорема 1.
Если а – квадратичный вычет по простому модулю р, то сравнение x2≡a(modp) имеет ровно 2 решения.
Доказательство:
Если а – квадратичный вычет по модулю p, то найдется хотя бы одно решение исходного сравнения: x≡x1(mod p).
Но, поскольку (—x1)2=x12, то решением также является x≡—x1(mod p), причем x1 —x1(mod p), т.к. р – нечетное число.
Более двух решений данное сравнение иметь не может, так как является сравнением второй степени (§4, п.3, Теорема 2).
□
Теорема (о числе квадратичных вычетов)
Приведенная система вычетов по модулю p состоит из квадратичных вычетов и
квадратичных невычетов.
Доказательство:
Среди вычетов приведенной системы по модулю p квадратичными вычетами являются только те, что сравнимы с квадратами чисел
…, –2, –1, 1, 2,…,
, т.е. с числами 1, 22, 32,…,
При этом квадраты не сравнимы между собой по модулю p, т.к. иначе из того, что k2 ≡ l2 (mod p), 0 < k < l следовало бы, что сравнению x2≡l2(mod p) удовлетворяют 4 числа: –l, l, –k, k, что противоречит Теореме 1.
Таким образом, квадратичных вычетов в приведенной системе по модулю p ровно штук. Остальные элементы приведенной системы являются квадратичными невычетами. А поскольку всего в приведенной системе по модулю p содержится p—1 элементов, то квадратичными невычетами являются также
элементов.
□
Множество квадратных вычетов по модулю p обозначается Q(p), множество квадратичных невычетов – .
5.2. Символ Лежандра. Символ Якоби.
Символом Лежандра называется символ (читается «символ Лежандра а по р »). а называется числителем, р – знаменателем символа Лежандра. Символ Лежандра отвечает на вопрос, является ли число а квадратичным вычетом по модулю р.
Вычислить символ Лежандра можно, пользуясь следующими свойствами.
Свойства символа Лежандра:
Докажем некоторые из этих свойств.
Теорема (Критерий Эйлера)
Доказательство:
По теореме Ферма, ap--1≡1(mod p). В этом сравнении перенесем единицу в левую часть: ap—1—1≡0(mod p). Поскольку p – простое, а значит нечетное число, значит p—1 – число четное. Тогда можем разложить левую часть сравнения на множители: .
Из множителей в левой части один и только один делится на p, то есть либо
Если а – квадратичный вычет по модулю р, то а при некотором x удовлетворяет сравнению a≡x2(mod p) , тогда , а учитывая (по теореме Ферма), что xp—1≡1(mod p), получаем сравнение (*).
При этом решения сравнения * исчерпываются квадратичными вычетами по модулю р. Следовательно, если а – квадратичный невычет по модулю р, то сравнение * не выполняется, а значит выполняется сравнение **.
□
Свойство 2:
Доказательство следует из того, что все числа одного класса вычетов по модулю р будут одновременно квадратичными вычетами или квадратичными невычетами.
□
Свойство 3:
Для любого p выполняется 1≡12(mod p), а значит «1» является квадратичным вычетом для любого модуля p.
□
Свойство 4:
Доказательство следует из критерия Эйлера при a=—1.
□
Свойство 5:
□
Доказательства прочих свойств можно произвести самостоятельно или найти в [5].
Итак, символ Лежандра можно найти, пользуясь либо критерием Эйлера, либо используя свойства 2-8:
Пример:
10 – квадратичный вычет по модулю 13.
1350 не является квадратичным вычетом по модулю 1381.
Пусть n – составное число, каноническое разложение которого есть . Положим (a,n)=1. Тогда символ Якоби определяется равенством:
Свойства символа Якоби:
6. 3акон взаимности:
(n,m)=1, n, m>0, n, m — нечетные числа
.
Эти свойства нетрудно доказать, воспользовавшись определением символа Якоби и свойствами символа Лежандра.
Очевидно, для символа Якоби выполняются те же свойства, что и для символа Лежандра, за исключением только критерия Эйлера. Критерий Эйлера для символа Якоби не выполняется.
Приведенные свойства символа Якоби позволяют составить алгоритм для вычисления символа Якоби и символа Лежандра:
-
Выделяем из числителя все степени двойки:
-
Пользуясь св-вом 4, понижаем степень k:
-
Символ
преобразуем, пользуясь законом взаимности, и затем приводим числитель m по модулю знаменателя n1 и повторяя для получившегося символа Якоби шаги 1-4, пока в числителе не останется 1 или —1.
В более формализованном виде алгоритм выглядит следующим образом:
Алгоритм вычисления символа Якоби: