Test pierwszości Fermata

Test pierwszości Fermata – probabilistyczny test umożliwiający sprawdzenie, czy dana liczba jest złożona, czy prawdopodobnie pierwsza. Jest jednym z najprostszych testów pierwszości i pomimo swoich wad jest wykorzystywany w algorytmach szyfrowania PGP.

Zasada działania

Małe twierdzenie Fermata mówi, że jeśli p {\displaystyle p} jest liczbą pierwszą i a {\displaystyle a} nie dzieli się przez p , {\displaystyle p,} to

a p 1 1   ( mod p ) . {\displaystyle a^{p-1}\equiv 1\ (\operatorname {mod} \,p).}

Aby stwierdzić, czy p {\displaystyle p} jest pierwsza, można wybrać kilka losowych wartości a {\displaystyle a} względnie pierwszych z p {\displaystyle p} i sprawdzić, czy ta równość jest dla nich spełniona. Jeśli dla którejkolwiek z nich nie jest, to na pewno p {\displaystyle p} jest liczbą złożoną. Jeśli wszystkie ją spełniają, p {\displaystyle p} jest prawdopodobnie liczbą pierwszą albo pseudopierwszą

Używając algorytmu szybkiego potęgowania, możemy wykonać to w czasie O ( k log 3 n ) , {\displaystyle \mathrm {O} (k\cdot \log ^{3}n),} gdzie k {\displaystyle k} jest liczbą losowo wybranych a . {\displaystyle a.}

Wady

Istnieją liczby złożone (liczby Carmichaela), dla których równość z twierdzenia zachodzi dla wszystkich a , {\displaystyle a,} takich że NWD ( a , n ) = 1 {\displaystyle \operatorname {NWD} (a,n)=1} . Tym samym test ma bardzo duże prawdopodobieństwo uznania takich liczb za pierwsze.

W ogólności, jeśli n nie jest liczbą Carmichaela, wtedy co najmniej połowa a ( Z / n Z ) {\displaystyle a\in (\mathbb {Z} /n\mathbb {Z} )^{*}} nie spełnia równości. Aby to udowodnić, należy założyć, że równość nie jest spełniona dla a i jest spełniona dla a 1 , a 2 , , a s . {\displaystyle a_{1},a_{2},\dots ,a_{s}.} Wtedy

( a a i ) n 1 a n 1 a i n 1 a n 1 1   ( mod n ) , {\displaystyle (a\cdot a_{i})^{n-1}\equiv a^{n-1}\cdot a_{i}^{n-1}\equiv a^{n-1}\not \equiv 1\ (\operatorname {mod} \,n),}

zatem równość nie jest też spełniona dla wszystkich a a i {\displaystyle a\cdot a_{i}} dla i = 1 , 2 , , s . {\displaystyle i=1,2,\dots ,s.}

  • p
  • d
  • e
Teoria liczb
ogólne typy liczb
relacje
podzielność
zdefiniowane podzielnością
działania
liczby pierwsze
podstawy
testy pierwszości
sita
faktoryzacja
hipotezy
równania
diofantyczne
liniowe
kwadratowe
wyższych stopni
układy równań
powiązane zagadnienia
twierdzenia
arytmetyki modularnej
inne zagadnienia
twierdzenia limitacyjne