Jump to content

Алгоритм Полларда p - 1

Алгоритм Полларда p - 1 — это теоретико-числовой факторизации целых чисел алгоритм , изобретенный Джоном Поллардом в 1974 году. Это алгоритм специального назначения, что означает, что он подходит только для целых чисел с определенными типами факторов; это простейший пример алгоритма факторизации алгебраической группы .

Факторы, которые он находит, - это те, для которых число, предшествующее фактору, p - 1, является степенным ; существенное наблюдение состоит в том, что, работая в мультипликативной группе по модулю составного числа N , мы также работаем в мультипликативных группах по модулю всех N множителей.

Существование этого алгоритма приводит к понятию безопасных простых чисел , которые представляют собой простые числа, для которых p - 1 дважды является простым числом Софи Жермен q и, следовательно, минимально гладкими. Эти простые числа иногда рассматриваются как «безопасные для криптографических целей», но они могут быть небезопасными — в текущих рекомендациях для криптографически сильных простых чисел ( например, ANSI X9.31 ) необходимо, но недостаточно , чтобы p − 1 имело хотя бы одно большое простое число. фактор. Большинство достаточно больших простых чисел являются сильными; если простое число, используемое в криптографических целях, окажется ненадежным, то это, скорее всего, произойдет по злому умыслу, чем по ошибке генерации случайных чисел . Эта терминология считается устаревшей в криптографической отрасли: метод факторизации ECM более эффективен, чем алгоритм Полларда, и находит безопасные простые множители так же быстро, как и небезопасные простые множители аналогичного размера, поэтому размер p является ключевым параметром безопасности. , а не гладкость p-1 . [ 1 ]

Базовые концепции

[ редактировать ]

Пусть n — составное целое число с простым множителем p . По малой теореме Ферма мы знаем, что для всех целых чисел, взаимно простых с p, и для всех натуральных чисел K :

Если число x конгруэнтно 1 по модулю фактора n , то НОД ( x − 1, n ) будет делиться на этот фактор.

Идея состоит в том, чтобы сделать показатель степени кратным p - 1, сделав его числом с очень большим количеством простых множителей; обычно мы берем произведение всех степеней простых чисел меньше некоторого предела B . Начните со случайного x и неоднократно заменяйте его на поскольку w проходит через эти основные степени. Проверяйте на каждом этапе или один раз в конце, если хотите, ли gcd( x − 1, n ) не равен 1.

Несколько факторов

[ редактировать ]

Вполне возможно, что для всех простых множителей числа n p p 1 делится на маленькие простые числа, и в этот момент алгоритм Полларда p − 1 просто возвращает n .

Алгоритм и время работы

[ редактировать ]

Основной алгоритм можно записать следующим образом:

Входные данные : n : составное число.
Выход : нетривиальный фактор n или отказ.
  1. выберите границу гладкости B
  2. определять (примечание: явное вычисление M может не потребоваться)
  3. случайным образом выбрать положительное целое число a , которое взаимно просто с n (примечание: на самом деле мы можем зафиксировать a , например, если n нечетное, то мы всегда можем выбрать a = 2, случайный выбор здесь не обязателен)
  4. вычислить g = НОД( a М − 1, n ) (примечание: возведение в степень можно выполнить по модулю n )
  5. если 1 < g < n, то вернуть g
  6. если g = 1 , выберите больший B и перейдите к шагу 2 или верните ошибку.
  7. если g = n , выберите меньший B и перейдите к шагу 2 или верните ошибку.

Если g = 1 на шаге 6, это означает, что не существует простых множителей p, для которых p-1 является B -степенным гладким. Если g = n на шаге 7, это обычно указывает на то, что все факторы были B -степенно гладкими, но в редких случаях это может указывать на то, что a имеет малый порядок по модулю n . Кроме того, когда в некоторых редких случаях максимальные простые множители p-1 для каждого простого множителя p из n одинаковы, этот алгоритм потерпит неудачу.

Время работы этого алгоритма составляет O( B × log B × log 2 п ) ; большие значения B заставляют его работать медленнее, но с большей вероятностью создают коэффициент.

Если мы хотим факторизовать число n = 299.

  1. Выбираем В = 5.
  2. Таким образом, М = 2 2 × 3 1 × 5 1 .
  3. Выбираем а = 2.
  4. g = НОД( а М − 1, п ) = 13.
  5. Поскольку 1 < 13 < 299, верните 13.
  6. 299/13 = 23 — простое число, поэтому оно полностью факторизовано: 299 = 13 × 23.

Методы выбора Б

[ редактировать ]

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

Предположим, что p − 1, где p — наименьший простой делитель числа n , можно смоделировать как случайное число размером меньше n . По теореме Диксона вероятность того, что наибольший делитель такого числа меньше ( p − 1) 1/е примерно равно ε е ; так что вероятность около 3 −3 = 1/27, что B значение n 1/6 даст факторизацию.

На практике метод эллиптических кривых работает быстрее, чем метод Полларда p - 1, если факторы вообще велики; выполнение метода p - 1 до B = 2 32 найдет четверть всех 64-битных факторов и 1/27 всех 96-битных факторов.

Двухступенчатый вариант

[ редактировать ]

Иногда используется вариант основного алгоритма; вместо того, чтобы требовать, чтобы все факторы p − 1 были меньше B , мы требуем, чтобы все факторы, кроме одного, были меньше некоторого B 1 , а оставшийся фактор был меньше некоторого B 2 B 1 . После завершения первого этапа, аналогичного базовому алгоритму, вместо вычисления нового

для B 2 и проверка НОД( a М' − 1, n ) , мы вычисляем

где Н = а М и проверьте, создает ли gcd( Q , n ) нетривиальный множитель n . Как и раньше, возведение в степень можно выполнять по модулю n .

Пусть { q 1 , q 2 , …} — последовательные простые числа в интервале ( B 1 , B 2 ] и d n = q n q n −1 — разность между последовательными простыми числами. Поскольку обычно B 1 > 2 , d n — четные числа. Распределение простых чисел таково, что все d n будут относительно малы. Предполагается, что d n ln. 2 Б 2 . Следовательно, значения H 2 , Ч 4 , Ч 6 , … (mod n ) можно хранить в таблице, а H q н быть вычислено из H q п -1 H д н , сохраняя необходимость возведения в степень.

Реализации

[ редактировать ]
  • Пакет GMP-ECM включает эффективную реализацию метода p - 1.
  • Prime95 и MPrime , официальные клиенты Great Internet Mersenne Prime Search , используют модифицированную версию алгоритма p-1 для исключения потенциальных кандидатов.

См. также

[ редактировать ]
  • Поллард, Дж. М. (1974). «Теоремы факторизации и проверки простоты». Труды Кембриджского философского общества . 76 (3): 521–528. Бибкод : 1974PCPS...76..521P . дои : 10.1017/S0305004100049252 . S2CID   122817056 .
  • Монтгомери, Польша; Сильверман, Р.Д. (1990). «Расширение БПФ алгоритма факторинга P - 1» . Математика вычислений . 54 (190): 839–854. Бибкод : 1990MaCom..54..839M . дои : 10.1090/S0025-5718-1990-1011444-3 .
  • Сэмюэл С. Вагстафф-младший (2013). Радость факторинга . Провиденс, Род-Айленд: Американское математическое общество. стр. 138–141. ISBN  978-1-4704-1048-3 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6cc02421b14fade0bb65dbe2248a5665__1713391860
URL1:https://arc.ask3.ru/arc/aa/6c/65/6cc02421b14fade0bb65dbe2248a5665.html
Заголовок, (Title) документа по адресу, URL1:
Pollard's p − 1 algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)