El test de primalitat de Fermat és un algorisme aleatori per a determinar si un nombre és un nombre primer probable.
Concepte
El petit teorema de Fermat estableix que si p és primer i , llavors
Si es vol provar si p és primer, llavors es pot triar un nombre aleatori a en l'interval i veure si la igualtat es compleix. Si la igualtat no es compleix per a qualsevol valor de a, llavors p és compost. Si la igualtat no es compleix per a molts valors de a, llavors es pot dir que p és un nombre primer probable, o un pseudoprimer.
Pot ser que els tests que es facin no es triï cap valor de a tal que la igualtat falli. De qualsevol a tal que
quan n és compost es diu que és un Fermat mentider. Si es tria un a tal que
llavors es diu que a és un Fermat testimoni de què n és compost.
Algorisme i temps d'execució
L'algorisme es pot escriure tal com segueix:
Si es fa servir algorismes ràpids per a la exponenciació modular, el temps d'execució d'aquest algorisme és O (k × log²n × log log n × log log log n), on k és el nombre de cops que es tria un nombre aleatori a, i n és el nombre que es vol provar per a veure si és o no primer.
Comentaris
Hi ha certs valors de n coneguts com a nombres de Carmichael per als quals tots els valors de a per als quals el mcd(a,n)=1 són Fermat mentiders. Tot i que els nombres de Carmichael són rars, n'hi ha prou perquè el test de primalitat de Fermat sovint no es faci servir en favor d'altres tests de primalitat tal com el de Miller-Rabin i el de Solovay-Strassen.
En general, si n no és un nombre de Carmichael llavors pel cap baix la meitat de tots els
són Fermat testimonis. Per demostrar-ho, sia a un Fermat testimoni i a1, a₂, ..., as siguin Fermat mentiders. Llavors
I així tot a × ai per i = 1, 2, ..., s són Fermat testimonis.
Utilització
El programa de xifratge PGP fa servir aquest test de primalitat en els seus algorismes. La possibilitat que PGP generi un nombre de Carmichael és inferior a 1 en 1050, que és més que adequat per aplicacions pràctiques.
Referències