Pseudoprimo
Da Wikipedia, l'enciclopedia libera.
Un numero pseudoprimo è un numero che si comporta come un numero primo, senza essere tale. La definizione di numero pseudoprimo dipende quindi dal contesto, e da cosa si intende per "comportarsi come un numero primo".
I numeri pseudoprimi appaiono spesso come output di algoritmi che ricercano numeri primi, usando alcune proprietà forti che questi devono soddisfare.
Indice |
[modifica] Pseudoprimo di Fermat
[modifica] Definizione
Alcuni teoremi, come il piccolo teorema di Fermat
sono validi per ogni N primo, e per ogni a. In questo contesto, un numero N è detto pseudoprimo di Fermat rispetto ad a se vale la relazione enunciata dal piccolo teorema di Fermat. Un numero che è pseudoprimo rispetto ad ogni a coprimo con N è un numero di Carmichael (affinché la relazione si verifichi, è necessario che a sia coprimo con N).
Il più piccolo numero pseudoprimo con base N = 2 è il 341 (11×31). Quando un numero è pseudoprimo sotto tutte le basi, cioè qualunque sia il valore di a, prende il nome di numero di Carmichael.
[modifica] Proprietà
Sia s>1 un intero dispari non primo, allora valgono le seguenti proprietà:
- Se s è pseudoprimo nelle basi a1 ed a2, tali che MCD(a1, s)=1 e MCD(a2, s)=1, allora s è pseudoprimo nelle basi a1*a2 e a1*(a2) − 1, dove (a2) − 1 è l’inverso di a2 modulo s.
- Se esiste un intero a, con 1<a<s e MCD(a,s)=1, tale che s non è uno pseudoprimo in base a, allora s non è uno pseudoprimo in base b per almeno metà dei b tali che 1<b<s e MCD(b, s)=1.
Dimostriamo le proprietà precedenti:
- Se valgono MCD(a1, s)=1 e MCD(a2, s)=1, allora MCD(a1*a2, s)=1 e MCD(a1* (a2) − 1, s)=1, poiché a1, a2, a1*a2, a1*(a2) − 1 appartengono tutti al gruppo di (), ossia al gruppo degli elementi invertibili di . Dobbiamo vedere quali risultati danno (a1 * a2)s − 1 e (a1 * ((a2) − 1))s − 1. Partiamo dal primo. Sapendo che sia a1 sta in () sia a2 sta in () e che il loro ordine è un divisore di (s-1), possiamo concludere che la composizione dei due abbia anch’essa come ordine un divisore di (s-1), e, quindi, elevata ad (s-1) dia l’unità del gruppo () (ossia ≡ 1 (mod n)). Per la seconda, anche (a2) − 1 sta in () ed ha come ordine un divisore di (s-1) ((1 = (a2) − 1)s − 1*(a2)s − 1 ≡ ((a2) − 1)s − 1*1 = ((a2) − 1)s − 1).
Quindi, s è pseudoprimo sia in base a1*a2, sia in base a1*(a2) − 1. - Consideriamo come a un elemento di (). Sia A il sottoinsieme di () costituito dalle classi il cui resto b modulo s è tale che n è pseudoprimo in base b. Per (1), vale che, se b sta in A, allora ab non sta in A (altrimenti a=(ab)*(b) − 1 apparterrebbe ad A). Si ha, dunque, un’applicazione iniettiva φ: b in A → ()\A. Dunque, l’ordine di P non supera l’ordine di ()\A.
[modifica] Esempi e curiosità
Il più piccolo pseudoprimo (di Fermat) in base 2 è 341. Sappiamo che 341=11*31, quindi 341 non è primo, ma esso soddisfa il Piccolo teorema di Fermat, ossia (2)340 ≡ 1 (mod 341). Un numero pseudoprimo in base 3 e non in base 2 è 91, e sappiamo che 91=7*13.
I numero pseudoprimi in base 2 si dicono numeri di Poulet o numeri di Sarro o Fermatiani.
Data una base h, vi sono infiniti pseudoprimi in quella base, ma sappiamo anche che sono molto “rarefatti” negli interi (sono infiniti, ma se si considera un qualsiasi intervallo di un milione di interi consecutivi, ne troviamo al massimo qualche centinaia).
[modifica] Pseudoprimo di Eulero
Per approfondire, vedi la voce pseudoprimo di Eulero. |
I pseudoprimi di Eulero hanno molte somiglianze con quelli di Fermat.
Sia b un intero, e sia n un intero dispari positivo, non primo, e tale che M.C.D.(n, b)=1. Il numero n è uno pseudoprimo di Eulero in base b se
[modifica] Utilizzo
Una delle applicazioni più importanti dei numeri pseudoprimi si trova negli algoritmi di “crittografia a chiave pubblica”, uno dei tipi di crittografia più utilizzati nel nostro tempo. Un algoritmo di crittografia a chiave pubblica molto famoso che utilizza grandi numeri primi è RSA. In questi algoritmi è fondamentale generare dei numeri primi molto grandi: poiché test di primalità deterministici come quello di Agrawal-Kayal-Saxena sono lenti (per non parlare del Test di Wilson), ci si accontenta di uno pseudoprimo, cioè di un numero che con grande probabilità è primo.
Se α è la probabilità che un numero composito passi un test (ad esempio, α=1/2 per i compositi non di Carmichael per il Test di Fermat; α=1/4 per il Test di Miller-Rabin), allora la probabilità che un numero composito passi n volte il test è αn. Questo non vuol dire che un numero che passi n test sia composito con probabilità αn: per il Teorema di Bayes, considerando che la probabilità che un numero x sia primo è 1 / lnx e supponendo αn molto più grande di lnx, abbiamo che:
- La probabilità che un numero che passi n test sia composito è lnx / αn
[modifica] Voci correlate
- Numero di Carmichael
- Piccolo teorema di Fermat
- Numero primo
- Pseudoprimo di Eulero
- Pseudoprimo di Fibonacci
- Pseudoprimo forte
- Test di Wilson
- Test di Lucas-Lehmer
- Test di Miller-Rabin
- Portale Matematica: accedi alle voci di Wikipedia che parlano di matematica