FERMAT PRIMALITY TEST
The 'Fermat primality test' is a probabilistic test to determine if a number is probably prime.
Fermat's little theorem states that if ''p'' is prime and , then
:
If we want to test if ''p'' is prime, then we can pick random ''a's in the interval and see if the equality holds. If the equality does not hold for a value of ''a'', then ''p'' is composite. If the equality does hold for many values of ''a'', then we can say that ''p'' is probably prime, or a pseudoprime.
It may be in our tests that we do not pick any value for ''a'' such that the equality fails. Any ''a'' such that
:
when ''n'' is composite is known as a ''Fermat liar''. If we do pick an ''a'' such that
:
then ''a'' is known as a ''Fermat witness'' for the compositeness of ''n''.
The algorithm can be written as follows:
:'Inputs': ''n'': a value to test for primality; ''k'': a parameter that determines the number of times to test for primality
:'Output': composite if ''n'' is composite, otherwise probably prime
:repeat ''k'' times:
::pick ''a'' randomly in the range [1, ''n'' − 1]
::if ''a''''n'' − 1 mod ''n'' ≠ 1 then return composite
:return probably prime
Using fast algorithms for modular exponentiation, the running time of this algorithm is O(''k'' × log3''n''), where ''k'' is the number of times we test a random ''a'', and ''n'' is the value we want to test for primality.
There are certain values of ''n'' known as Carmichael numbers for which all values of ''a'' for which gcd(a,n)=1 are Fermat liars. Although Carmichael numbers are rare, there are enough of them that Fermat's primality test is often not used in favor of other primality tests such as Miller-Rabin and Solovay-Strassen.
In general, if ''n'' is not a Carmichael number then at least half of all
:
are Fermat witnesses. For proof of this let ''a'' be a Fermat witness and ''a''1, ''a''2, ..., ''a''''s'' be Fermat liars. Then
:
and so all ''a'' × ''a''i for ''i'' = 1, 2, ..., ''s'' are Fermat witnesses.
The encryption program PGP uses this primality test in its algorithms. The chance of PGP generating a Carmichael Number is less than 1 in 1050, which is more than adequate for practical purposes.
★ Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. ''Introduction to Algorithms'', Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Pages 889–890 of section 31.8, Primality testing.
| Contents |
| Concept |
| Algorithm and running time |
| Flaws |
| Usage |
| References |
Concept
Fermat's little theorem states that if ''p'' is prime and , then
:
If we want to test if ''p'' is prime, then we can pick random ''a's in the interval and see if the equality holds. If the equality does not hold for a value of ''a'', then ''p'' is composite. If the equality does hold for many values of ''a'', then we can say that ''p'' is probably prime, or a pseudoprime.
It may be in our tests that we do not pick any value for ''a'' such that the equality fails. Any ''a'' such that
:
when ''n'' is composite is known as a ''Fermat liar''. If we do pick an ''a'' such that
:
then ''a'' is known as a ''Fermat witness'' for the compositeness of ''n''.
Algorithm and running time
The algorithm can be written as follows:
:'Inputs': ''n'': a value to test for primality; ''k'': a parameter that determines the number of times to test for primality
:'Output': composite if ''n'' is composite, otherwise probably prime
:repeat ''k'' times:
::pick ''a'' randomly in the range [1, ''n'' − 1]
::if ''a''''n'' − 1 mod ''n'' ≠ 1 then return composite
:return probably prime
Using fast algorithms for modular exponentiation, the running time of this algorithm is O(''k'' × log3''n''), where ''k'' is the number of times we test a random ''a'', and ''n'' is the value we want to test for primality.
Flaws
There are certain values of ''n'' known as Carmichael numbers for which all values of ''a'' for which gcd(a,n)=1 are Fermat liars. Although Carmichael numbers are rare, there are enough of them that Fermat's primality test is often not used in favor of other primality tests such as Miller-Rabin and Solovay-Strassen.
In general, if ''n'' is not a Carmichael number then at least half of all
:
are Fermat witnesses. For proof of this let ''a'' be a Fermat witness and ''a''1, ''a''2, ..., ''a''''s'' be Fermat liars. Then
:
and so all ''a'' × ''a''i for ''i'' = 1, 2, ..., ''s'' are Fermat witnesses.
Usage
The encryption program PGP uses this primality test in its algorithms. The chance of PGP generating a Carmichael Number is less than 1 in 1050, which is more than adequate for practical purposes.
References
★ Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. ''Introduction to Algorithms'', Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Pages 889–890 of section 31.8, Primality testing.
This article provided by Wikipedia. To edit the contents of this article, click here for original source.
psst.. try this: add to faves

العربية
中国
Français
Deutsch
Ελληνική
हिन्दी
Italiano
日本語
Português
Русский
Español