Лучшие вопросы
Таймлайн
Чат
Перспективы

P−1-метод Полларда

Из Википедии, свободной энциклопедии

Remove ads

-метод Полларда — один из методов факторизации целых чисел.

Впервые опубликован британским математиком Джоном Поллардом[англ.] в 1974 году[1]. Именно появление данного алгоритма привело[2] к изменению понятия сильного простого числа, используемого в криптографии, нестрого говоря, простого числа, для которого имеет достаточно большие делители. В современных криптосистемах стараются[2] использовать именно сильные простые числа, так как это повышает стойкость используемых алгоритмов и систем в целом.

Remove ads

Определения и математические сведения

Число называется -гладкостепенным[англ.][3], если все его простые делители, в степенях, в которых они входят в разложение этого числа , удовлетворяют . Согласно малой теореме Ферма для любого простого числа и для любого целого числа , такого что и взаимно просты, или, что в данном случае равносильно, не делит , справедливо:

, более того .
Remove ads

Оригинальный алгоритм (1974 год)

Джон Поллард впервые опубликовал описанный ниже алгоритм в своей статье «Методы факторизации и проверка простоты» («Theorems of Factorization and Primality Testing») в 1974 году в «Трудах Кембриджеского философского общества»[1]. Статья посвящена теоретической оценке сложности факторизации большого числа или же, в случае простого , проверке его на простоту. Нижеприведённый алгоритм явился следствием и иллюстрацией теоретических выкладок Полларда.

Первая стадия

  1. Задача состоит в том, чтобы найти собственный делитель числа отличный от единицы. Прежде всего необходимо выбрать два числа такие, что .
  2. Вычислим теперь число , где — все простые числа меньшие . Здесь допускается некоторая свобода в выборе , однако точно известно, что для маленьких , должно быть больше единицы[1].
  3. Выберем небольшое целое и вычислим
если мы нашли делитель , в противном случае переходим ко второй стадии.

Вторая стадия

  • На этом шаге необходимо вычислить последовательность
где — простое, , надеясь, что на каком-нибудь шаге получится
  • Легче всего[1] это сделать вычислением для каждого нечётного домножением на , беря через равные промежутки. Если делитель найден. Если же , то необходимо точнее исследовать этот участок.

Замечание

С помощью данного метода мы сможем найти только такие простые делители числа , для которых выполнено[1]:

или , где является -гладкостепенным, а — простое, такое что [1].
Remove ads

Современная версия

Суммиров вкратце
Перспектива

Эта переработанная по сравнению с оригинальной версия алгоритма использует понятия степенной гладкости[англ.] и ориентирована на практическое применение. Значительные изменения претерпела первая стадия, в то время, как вторая сохранилась практически без изменений, опять же, с теоретической точки зрения, ничего значительного, по сравнению предыдущей версией, добавлено не было. Именно приведённый ниже алгоритм имеют в виду, когда говорят о «методе Полларда»[4][5].

Первая стадия

  1. Пусть -гладкостепенное, и требуется найти делитель числа . В первую очередь вычисляется число где произведение ведётся по всем простым в максимальных степенях
  2. Тогда искомый делитель [4], где .
  • Возможно два случая, в которых приведенный выше алгоритм не даст результата[5].
  1. В случае, когда точно можно сказать, что у есть делитель, являющийся -гладкостепенным и проблему должен решить иной выбор .
  2. В более частом случае, когда стоит перейти ко второй стадии алгоритма, которая значительно повышает вероятность результата, хотя и не гарантирует его.

Пример

Пусть выберем , тогда , возьмём и вычислим теперь , и наконец .

Замечания

  • При больших число может оказаться весьма большим, сравнимым по значению с , в таких случаях может оказаться целесообразно разбить на множители приблизительно одинаковой величины и вычислять последовательность
.

Вторая стадия

  • Прежде всего необходимо зафиксировать границы , обычно [5][4].
  • Вторая стадия алгоритма находит делители , такие что , где -гладкостепенное, а простое, такое что .
  1. Для дальнейшего нам потребуется вектор из простых чисел от до , из которого легко получить вектор разностей между этими простыми числами , причём — относительно небольшие числа, и , где — конечно множество[4]. Для ускорения работы алгоритма полезно предварительно вычислить все [4] и при пользоваться уже готовыми значениями.
  2. Теперь необходимо последовательно вычислять , где , вычисленное в первой стадии, на каждом шаге считая . Как только , можно прекращать вычисления.
Remove ads

Условия сходимости

  • Пусть наименьший делитель , максимум берется по всем степеням , делящим [4].
    • Если , то делитель будет найден на первой стадии алгоритма[4].
    • В противном случае для успеха алгоритма необходимо, чтобы , а все остальные делители вида были меньше [4].
Remove ads

Модификации и улучшения

  • Позднее сам Поллард высказал мнение о возможности ускорения алгоритма с использованием быстрого преобразования Фурье[4] во второй стадии, однако он не привел реальных способов, как сделать это[6].
  • Ещё позже, в 1990 году это сделали математики Питер Монтгомери (Peter Montgomery) и Роберт Силверман (Robert Silverman)[6]. Авторам удалось добиться увеличения скорости исполнения второй стадии алгоритма.
Remove ads

Оценка эффективности

  • Сложность первой стадии оценивается как , оставляя только слагаемое высшего порядка получаем оценку первой стадии алгоритма[4] .
  • Согласно оценке Монтгомери, сложность второй стадии, с точностью до слагаемых наивысшего порядка составляет [1][4], где — число простых чисел, меньших . Оценка Чебышева дает приближённое равенство .
Remove ads

Рекорды

Суммиров вкратце
Перспектива

На данный момент (10.10.2016) три самых больших простых делителя, найденных методом P-1, состоят из 66, 64 и 59 десятичных цифр[7].

Подробнее , ...
Remove ads

Применения

  • GMP-ECM[8] — пакет включает в себя эффективное применение -метода.
  • Prime95 и MPrime — официальные клиенты GIMPS — используют метод, чтобы отсеять кандидатов.

См. также

Примечания

Литература

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads