В математике тест на простоту Поклингтона–Лемера — это тест на простоту, разработанный Генри Кэбурном Поклингтоном [1] и Дерриком Генри Лемером . [2] Тест использует частичную факторизацию для доказательства того, что целое число является простым .
Он выдает сертификат простоты, который можно найти с меньшими усилиями, чем тест простоты Лукаса , требующий полной факторизации числа .
Базовая версия теста основана на теореме Поклингтона (или критерии Поклингтона ), которая формулируется следующим образом:
Пусть будет целым числом, и предположим, что существуют натуральные числа a и p, такие что
( 1 ) |
p — простое число, и | ( 2 ) |
( 3 ) |
Тогда N — простое число. [3] Здесь означает, что после нахождения остатка от деления на k , i и j равны; означает, что i является делителем для j ; а gcd — наибольший общий делитель .
Примечание: Уравнение ( 1 ) — это просто тест Ферма на простоту . Если мы находим любое значение a , не делящееся на N , такое, что уравнение ( 1 ) ложно, мы можем немедленно заключить, что N не является простым числом. (Это условие делимости явно не указано, поскольку оно подразумевается уравнением ( 3 ).) Например, пусть . При , мы находим, что . Этого достаточно, чтобы доказать, что N не является простым числом.
Доказательство | ||||||
---|---|---|---|---|---|---|
Предположим, что N не является простым числом. Это означает, что должно быть простое число q , которое делит N. Так как , и так как p — простое число, . Таким образом, должно существовать целое число u , мультипликативное обратное числу p по модулю q −1 , обладающее тем свойством, что
и поэтому, по малой теореме Ферма
Это подразумевает
Это показывает, что q делит в ( 3 ) , и, следовательно , это противоречие. [3] |
При наличии N , если можно найти p и a, удовлетворяющие условиям теоремы, то N является простым числом. Более того, пара ( p , a ) представляет собой сертификат простоты , который можно быстро проверить, чтобы удовлетворить условиям теоремы, подтверждая, что N является простым числом.
Основная трудность заключается в нахождении значения p, которое удовлетворяет ( 2 ). Во-первых, обычно трудно найти большой простой множитель большого числа. Во-вторых, для многих простых чисел N такого p не существует. Например, не имеет подходящего p, поскольку , и , что нарушает неравенство в ( 2 ) ; другие примеры включают и .
При p найти a не так уж и сложно. [4] Если N — простое число, то по малой теореме Ферма любое a в интервале будет удовлетворять ( 1 ) (однако случаи и тривиальны и не будут удовлетворять ( 3 )). Это a будет удовлетворять ( 3 ) до тех пор, пока ord( a ) не делится . Таким образом, случайно выбранное a в интервале имеет хорошие шансы на работу. Если a — генератор mod N , его порядок равен и поэтому метод гарантированно будет работать для этого выбора.
Вышеуказанную версию теоремы Поклингтона иногда невозможно применить, поскольку некоторые простые числа таковы, что не существует простого числа, делящегося на . Следующая обобщенная версия теоремы Поклингтона применима более широко. [5] : Следствие 1
Теорема: Разложим N − 1 на множители , как N − 1 = AB , где A и B — взаимно простые числа, разложение A на простые множители известно, но разложение B не обязательно известно.
Если для каждого простого множителя p числа A существует целое число такое, что
, и | ( 6 ) |
, | ( 7 ) |
тогда N — простое число.
Доказательство |
---|
Пусть p — простое число, делящее A , и пусть — максимальная степень числа p, делящая A. Пусть q — простой множитель N. Для из следствия следует множество . Это означает , что и ввиду также . Это означает, что порядок равен Таким образом, . То же самое наблюдение справедливо для каждого простого коэффициента мощности A , что подразумевает . В частности, это означает Если бы N было составным, оно обязательно имело бы простой множитель, который меньше или равен . Было показано, что такого множителя нет, что доказывает, что N является простым. |
Тест на простоту Поклингтона–Лемера следует непосредственно из этого следствия. Чтобы использовать это следствие, сначала найдите достаточно множителей числа N − 1 , чтобы произведение этих множителей превышало . Назовем это произведение A . Затем пусть B = ( N − 1)/ A будет оставшейся, неразложенной частью числа N − 1 . Неважно, является ли B простым числом. Нам просто нужно проверить, что ни одно простое число, которое делит A, также делит B , то есть что A и B являются взаимно простыми. Затем для каждого простого множителя p числа A найдите , который удовлетворяет условиям ( 6 ) и ( 7 ) следствия. Если такое s может быть найдено, следствие подразумевает, что N является простым числом.
По словам Коблица, = 2 часто работает. [3]
Определите,
является простым.
Сначала найдем малые простые множители . Мы быстро найдем, что
Мы должны определить, удовлетворяют ли и условиям Следствия. , так что . Таким образом, мы разложили достаточно для применения Следствия. Мы также должны проверить, что .
Не имеет значения, является ли число B простым (на самом деле, это не так).
Наконец, для каждого простого множителя p числа A методом проб и ошибок найдите значение p , удовлетворяющее условиям ( 6 ) и ( 7 ) .
Для , попробуйте . Возведение в эту высокую степень можно эффективно выполнить с помощью двоичного возведения в степень :
Итак, удовлетворяет ( 6 ) , но не ( 7 ) . Поскольку нам разрешено разное a p для каждого p , попробуйте вместо этого:
Таким образом, удовлетворяются оба условия: ( 6 ) и ( 7 ) .
Для второго простого множителя числа A попробуйте :
удовлетворяет как ( 6 ) , так и ( 7 ) .
Это завершает доказательство того, что является простым. Сертификат простоты для будет состоять из двух пар (2, 5) и (3, 2).
Мы выбрали небольшие числа для этого примера, но на практике, когда мы начинаем разлагать A , мы можем получить множители, которые сами по себе настолько велики, что их простота не очевидна. Мы не можем доказать, что N является простым, не доказав, что множители A также являются простыми. В таком случае мы используем тот же тест рекурсивно на больших множителях A , пока все простые числа не станут ниже разумного порога.
В нашем примере мы можем с уверенностью сказать, что 2 и 3 являются простыми числами, и таким образом мы доказали наш результат. Сертификат простоты — это список пар, который можно быстро проверить в следствии.
Если бы наш пример включал большие простые множители, сертификат был бы более сложным. Сначала он состоял бы из нашего начального раунда a p s , которые соответствуют «простым» множителям A ; Затем для каждого множителя A , простота которого неопределенна, у нас было бы больше a p , и так далее для множителей этих множителей, пока мы не достигнем множителей, простота которых определена. Это может продолжаться для многих слоев, если начальное простое число велико, но важным моментом является то, что может быть создан сертификат, содержащий на каждом уровне простое число, которое нужно проверить, и соответствующее a p s , которое можно легко проверить.
В статье 1975 года Брилхарта, Лемера и Селфриджа [5] дано доказательство того, что показано выше как «обобщенная теорема Поклингтона» в виде теоремы 4 на странице 623. Приведены дополнительные теоремы, которые допускают меньшую факторизацию. Сюда входит их теорема 3 (усиление теоремы Прота 1878 года):
Если N велико, часто бывает трудно разложить на множители достаточное количество для применения приведенного выше следствия. Теорема 5 статьи Брилхарта, Лемера и Селфриджа допускает доказательство простоты, когда факторизованная часть достигла только . Представлено много дополнительных таких теорем, которые позволяют доказать простоту N на основе частичной факторизации , , , и . [5] [6] [7]