Trisha Shetty (Editor)

Pocklington primality test

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

In mathematics, the Pocklington–Lehmer primality test is a primality test devised by Henry Cabourn Pocklington and Derrick Henry Lehmer to decide whether a given number N is prime. The output of the test is a proof that the number is prime or that primality could not be established.

Contents

Pocklington criterion

The test relies on the Pocklington Theorem (Pocklington criterion) which is formulated as follows:

Let N > 1 be an integer, and suppose there exist numbers a and q such that

Then N is prime.

Proof of this theorem

Suppose N is not prime. This means there must be a prime p, where p N that divides N.

Therefore, q > p 1 which implies gcd ( q , p 1 ) = 1 .

Thus there must exist an integer u with the property that

This implies:

1 a N 1 ( mod p ) , by (2) since p | N ( a N 1 ) u a u ( N 1 ) a u q ( ( N 1 ) / q ) ( a u q ) ( N 1 ) / q ( mod p ) , a ( N 1 ) / q ( mod p ) , by (4) and Fermat's little theorem

This shows that p divides gcd ( ) from (3), and therefore the gcd ( ) 1 ; a contradiction.

The test is simple once the theorem above is established. Given N, seek to find suitable a and q. If they can be obtained, then N is prime. Moreover, a and q are the certificate of primality. They can be quickly verified to satisfy the conditions of the theorem, confirming N as prime.

A problem which arises is the ability to find a suitable q, that must satisfy (1)–(3) and be provably prime. It is even quite possible that such a q does not exist. This is a large probability, indeed only 57.8% of the odd primes, N, N 10 , 000 have such a q. To find a is not nearly so difficult. If N is prime, and a suitable q is found, each choice of a where 1 a < N will satisfy a N 1 1 ( mod N ) , and so will satisfy (2) as long as ord(a) does not divide ( N 1 ) / q . Thus a randomly chosen a is likely to work. If a is a generator mod N its order is N 1 and so the method is guaranteed to work for this choice.

Generalized Pocklington method

A generalized version of Pocklington's theorem covers more primes N.

Corollary:

Let N − 1 factor as N − 1 = AB, where A and B are relatively prime, A > N and the factorization of A is known.

If for every prime factor p of A there exists an integer a p so that

a p N 1 1 ( mod N )

and gcd ( a p ( N 1 ) / p 1 , N ) = 1 then N is prime. The reverse implication also holds: If N is prime then every prime factor of A can be written in the above manner.

Proof of Corollary: Let p be a prime dividing A and let p e be the maximum power of p dividing A. Let v be a prime factor of N. For the a p from the corollary set b a p ( N 1 ) / p e ( mod v ) . This means b p e a p N 1 1 ( mod v ) and because of gcd ( a p ( N 1 ) / p 1 , N ) = 1 also b p e 1 a p ( N 1 ) / p 1 ( mod v ) .

This means that the order of b ( mod v ) is p e

Thus, p e | ( v 1 ) . The same observation holds for each prime power factor p e of A, which implies A | ( v 1 ) .

Specifically, this means v > A N .

If N were composite, it would necessarily have a prime factor which is less than or equal to N . It has been shown that there is no such factor, which implies that N is prime.

To see the converse choose a p a generator of the integers modulo p.

The test

The Pocklington–Lehmer primality test follows directly from this corollary. We must first partially factor N − 1 into A and B. Then we must find an a p for every prime factor p of A, which fulfills the conditions of the corollary. If such a p 's can be found, the Corollary implies that N is prime.

According to Koblitz, a p = 2 often works.

Example

N = 11351 N 1 = 2 5 2 227

Choose A = 227 5 2 , which means B = 2

Now it is clear that gcd ( A , B ) = 1 and A > N .

Next find an a p for each prime factor p of A. E.g. choose a 5 = 2 .

a p N 1 2 11350 1 ( mod 11351 ) . gcd ( a p ( N 1 ) / p 1 , N ) = gcd ( 2 2 5 227 1 , 11351 ) = 1.

So a 5 = 2 satisfies the necessary conditions. Choose a 227 = 7 .

a p N 1 7 11350 1 ( mod 11351 )

and

gcd ( a p ( N 1 ) / p 1 , N ) = gcd ( 7 2 25 1 , 11351 ) = 1.

So both a p 's work and thus N is prime.

We have chosen a small prime for calculation purposes but in practice when we start factoring A we will get factors that themselves must be checked for primality. It is not a proof of primality until we know our factors of A are prime as well. If we get a factor of A where primality is not certain, the test must be performed on this factor as well. This gives rise to a so-called down-run procedure, where the primality of a number is evaluated via the primality of a series of smaller numbers.

In our case, we can say with certainty that 2, 5, and 227 are prime, and thus we have proved our result. The certificate in our case is the list of a p 's, which can quickly be checked in the corollary.

If our example had given rise to a down-run sequence, the certificate would be more complicated. It would first consist of our initial round of a p 's which correspond to the 'prime' factors of A; Next, for the factor(s) of A of which primality was uncertain, we would have more a p 's, and so on for factors of these factors until we reach factors of which primality is certain. This can continue for many layers if the initial prime is large, but the important thing to note, is that a simple certificate can be produced, containing at each level the prime to be tested, and the corresponding a p 's, which can easily be verified. If at any level we cannot find a p 's then we cannot say that N is prime.

The biggest difficulty with this test is the necessity of discovering prime factors of N - 1, in essence, factoring N − 1. In practice this could be extremely difficult. Finding a p 's is a less difficult problem.

Extensions and variants

The 1975 paper by Brillhart, Lehmer, and Selfridge gives a proof for what is shown above as the "generalized Pocklington theorem" as theorem 4 on page 623. Additional theorems are shown allowing less factoring. This includes theorem 3 (a strengthening of Proth 1878):

Let N 1 = m p where p is an odd prime such that 2 p + 1 N . If there exists an a for which a ( N 1 ) / 2 1 ( mod N ) , but a m / 2 1 ( mod N ) , then N is prime.

and theorem 5 on page 624 that allows a proof when the factored part has reached only ( N / 2 ) 1 / 3 . Many additional theorems are provided.

References

Pocklington primality test Wikipedia