
- •Раздел первый
- •Раздел второй
- •Раздел третий
- •Раздел четвертый
- •Раздел пятый
- •Раздел шестой
- •Раздел седьмой
- •Из последнего равенства аналогичным образом для некоторого целого неотрицательно-
- •Раздел восьмой
- •Раздел девятый
- •Решаем четыре системы сравнений
- •Раздел десятый
- •Раздел одиннадцатый
- •Раздел двенадцатый
- •Раздел тринадцатый
- •Раздел четырнадцатый
- •Раздел пятнадцатый
- •Раздел шестнадцатый
Из последнего равенства аналогичным образом для некоторого целого неотрицательно-
го s получаем
,
.
Повторяя
эту процедуру еще k-3
раза, получим для некоторого неотрицательного
s
равенство
.
Из него, наконец, находим
.
4.
Задача распознавания квадратичного
вычета по модулю
.
Формулировка задачи в этом случае выглядит так:
Задано:
N,
,
p
и q
– различные простые нечетные,
.
Распознать:
существует ли такое у
Z,
что
?
Решение этой задачи сводится к факторизации числа .
5. Задача извлечения квадратного корня по модулю .
Формулировка задачи выглядит так:
Задано: N, , p и q – различные простые нечетные, .
Найти: такое у Z, что , если у существует.
Ответ на вопрос этой задачи (как и обоснование ответа к предыдущей) дает теорема:
Теорема.
Пусть
N,
,
p
и q
– различные простые нечетные,
.
Обозначим
и
.
Тогда
1) Если существует такое у Z, что
,
(7.1)
то для
и
(7.2)
выполняется
и
.
(7.3)
Справедливо и обратное: для
любых
и
из (7.3) у из (7.2) удовлетворяет (7.1).
2) х является квадратичным вычетом по модулю n тогда и только тогда, когда х есть квадратичный вычет по модулю р и по модулю q.
3) Если х – квадратичный вычет по модулю n, то существует ровно четыре различных корня квадратных из х по модулю n.
В последнем пункте следует поступать так. Комбинируя пары решений по mod p и mod q, следует решать далее системы сравнений вида
u
= x
(mod
p),
u
= x
(mod
q),
где
i,j
= 1,2.
Решения этих систем дают искомые четыре варианта корня квадратного из x по mod n.
Итак, как видно из теоремы, и задача нахождения квадратного корня по модулю n сводится полиномиально к задаче факторизации. Оказывается, что существует и обратное сведение, т.е. задачу факторизации числа можно свести к задаче извлечения квадратного корня по модулю n.
Теорема.
Пусть
N,
,
p
и q
– различные простые нечетные,
,
а
и
– два различных корня из х по модулю n
таких, что
.
Тогда
есть один из делителей р или q.
Легко
представить простой Лас-Вегас оракульный
алгоритм, который факторизует числа n
указанного вида с доступом к оракулу
,
который поставляет корень квадратный
по запросу х.
Вход: n = pq, где p и q – различные простые нечетные.
1.
Выбрать случайный элемент
Z
.
Вычислить
.
2.
Сделать оракулу
запрос x.
Пусть
– ответ оракула, т.е.
.
3. Если выполняется условие , то вычислить с помощью алгоритма
Евклида и результат падать на выход.
Так
как y
выбирается случайно, то согласно пункту
3 предыдущей теоремы условие
выполняется с вероятностью ½. Если
применить алгоритм k
раз, то вероятность того, что это условие
не выполнится ни разу, составит
.