Ρ-алгоритм Полларда
ρ-aлгоритм Джона Полларда, предложенный им в 1975 году, служит для факторизации целых чисел. Он основан на том, что число n имеет такой простой делитель p, для которого p-1 является произведением небольших простых чисел.
[править] Описание алгоритма
Неформальное описание алгоритма Полларда 1975:
- Предположим, что число n имеет такой простой делитель p, для которого
является произведением небольших простых чисел. - Согласно малой теореме Ферма, если число p не делит число a , то

Следовательно, p является делителем числа 
- Разумеется, вначале мы не знаем числа p и поэтому не можем реально вычислить
.
Вместо этого, возьмём целое число k, которое представляет из себя произведение нескольких первых простых чисел в небольших положительных степенях.
- Вычислим теперь D=НОД
.
Заметим, что для этого необходимо найти
только по модулю n. Поэтому из сказанного выше следует, что для вычисления D=НОД
требуется
операций. Такое вычисление может быть проделано в разумное время, даже если k и n имеют по тысяче знаков.
- Если число n имеет простой делитель p, для которого (p-1)|k, то p будет делителем числа
. Поэтому, в этом случае мы имеем
Если
≠n, то мы получаем нетривиальный делитель числа n. По-этому мы можем разложить n на два множителя и применить к каждому из них описанную процедуру. Если же,
то выбираем новое a. Если же
выбираем новый показатель k, больший предыдущего.
Формальное описание алгоритма Полларда выглядит следующим образом:
- Пусть N составное целое положительное число.
- Шаг 1. Выбираем число k, являющееся произведением небольших простых чисел в небольших степенях. Например,k=НОК{
} для некоторого целого положительного числа M. - Шаг 2. Выбираем произвольное число a, удовлетворяющее условию

- Шаг 3. Вычисляем наибольший общий делитель
. Если НОД
, то мы получаем нетривиальный множитель n. Если (a,n)=1 переходим к следующему шагу. - Шаг 4. Вычисляем
.
Если
, то D является делителем числа N . Если
, то возвращаемся к шагу 1 и выбираем больший показатель k . Если
возвращаемся к шагу 2 и выбираем новое число a .
[править] Литература
- 1. О.Н. Василенко. Теоретико-числовые алгоритмы в криптографии. М.: МЦНМО, 2003.
- 2. Ю.П. Соловьев, В.А. Садовничий, Е.Т. Шавгулидзе, В.В. Белокуров. Эллиптические кривые и современные алгоритмы теории чисел. Москва – Ижевск: Институт компьютерных исследований, 2003.
[править] Сложность алгоритма
Пусть
— составное число. Тогда существует такая константа
, что для любого положительного числа
вероятность события, состоящего в том, что ρ-метод Полларда не найдет нетривиального делителя
за время
, не превосходит величины
.


является произведением небольших простых чисел.
.
} для некоторого целого положительного числа M.
. Если НОД
, то мы получаем нетривиальный множитель n. Если (a,n)=1 переходим к следующему шагу.
.