• Non ci sono risultati.

Lezione del giorno 6 maggio 2008 Test di primalità di Rabin-Miller

N/A
N/A
Protected

Academic year: 2021

Condividi "Lezione del giorno 6 maggio 2008 Test di primalità di Rabin-Miller"

Copied!
1
0
0

Testo completo

(1)

Teoria dei numeri

Lezione del giorno 6 maggio 2008 Test di primalità di Rabin-Miller

E’ un test di primalità probabilistico, che si applica ad un input n>1 naturale dispari (non è una restrizione sostanziale perché un naturale pari è sempre composto, tranne nel caso n=2).

Rispetto al test di Fermat non presenta “eccezioni” (come i numeri di Carmichael) ed inoltre la probabilità che un numero composto superi il test è 1/4 (contro il 1/2 del test di Fermat per i numeri non di Carmichael).

I passi dell’algoritmo del test di Rabin-Miller sono:

1) in input il naturale n>1 dispari

2) si calcola la massima potenza 2 s di base 2 ed esponente s>0 tale che 2 s sia divisore del numero pari n-1, e si scrive: n-1=2 s t, con t>0 naturale dispari

3) si sceglie casualmente un intero a con 1an-1 (detto base)

4) considerate le s potenze di base a ed esponente t, 2 1 t, 2 2 t, ….. , 2 s-1 t, se è verificata almeno una delle seguenti condizioni:

a t 1 (mod n) oppure a 2

j

t -1 (mod n) per qualche j=0,1,….,s-1 si esce con output ”n è primo”, altrimenti si esce con output “n è composto”

Osservazione. Nel passo 4), essendo (n-1) -1 (mod n), le condizioni da verificare sono equivalenti alle seguenti eguaglianze sulle riduzioni modulo n:

a t modn = 1 oppure a 2

j

t modn = n-1 per qualche j=0,1,….,s-1.

Verifichiamo prima di tutto che un input n primo (dispari) supera sempre il test.

Utilizzeremo la proprietà seguente: se n è primo e se x è un naturale tale che x 2 1 (mod n) , allora x1 (mod n) (infatti da x 2 1 (mod n) segue n(x 2 -1), n(x-1)(x+1), n(x-1) oppure n(x+1)).

Supponiamo dunque l’input n primo (dispari) e per assurdo supponiamo non verificata nessuna delle condizioni del passo 4); essendo a non multiplo di n, per il Piccolo Teorema di Fermat si ha:

a n-1 = a 2

s

t = (a 2

s-1

t ) 2 1 (mod n)

e per quanto detto sopra si ha a 2

s-1

t 1 (mod n), ma allora (non essendo verificata nessuna delle condizioni del passo 4)) a 2

s-1

t = (a 2

s-2

t ) 2 1, a 2

s-2

t 1, a 2

s-2

t 1, e così via procedendo a ritroso, fino ad arrivare ad a 2

1

t = (a t ) 2 1, a t 1, contraddizione perchè a t 1, a t -1 sono fra le condizioni del passo 4).

Esaminiamo poi la complessità dell’algoritmo.

Nel passo 2), per rappresentare n-1 nella forma n-1=2 s t, con t>0 naturale dispari, si tratta di effettuare s successive divisioni per 2 (fermandosi quando il quoziente è dispari): il numero s di tali divisioni è < log 2 n (perché log 2 n> log 2 (n-1)=s+log 2 ts).

Nel passo 4) si tratta di calcolare (come già notato) le riduzioni modulo n delle s potenze:

a 2

j

t dove j=0,1,….,s-1

ognuna con esponente <n, e si può utilizzare l’esponenziazione modulare, che ha complessità

polinomiale (notare anche che si possono semplificare i calcoli osservando che ognuna di tali s

potenze è il quadrato della precedente, quindi dal calcolo della riduzione modulo n della prima a t si

possono ricavare facilmente le riduzioni delle successive, quadrando ripetutamente).

(2)

Anche per il test di Rabin-Miller, come per il test di Fermat, può avvenire che un input n composto (dispari) superi il test, “fingendo” di essere primo.

Diremo che un naturale n composto dispari è fortemente pseudoprimo nella base a (dove 1an-1 è la base scelta casualmente nel passo 3)), se n supera il test di Rabin-Miller per tale scelta di a.

Ricordiamo che n composto é detto pseudoprimo nella base a, se n supera il test di Fermat per tale scelta di a, cioè se a,n sono coprimi e se a n-1 1 (mod n).

Ma allora se n composto (dispari) è fortemente pseudoprimo nella base a, certamente n è anche pseudoprimo nella stessa base a: infatti, essendo verificata una delle condizioni del passo 4), quadrando successivamente si ottiene (essendo (-1) 2 =1) a n-1 = a 2

s

t = (a 2

s-1

t ) 2 1 (mod n) (la proprietà che a,n sono coprimi è ovvia, perché in Z n si ha che [a] è invertibile con inverso [a n-2 ]).

Esempio.

Consideriamo il minimo numero di Carmichael n=561=31117.

Sappiamo che esso è pseudoprimo in tutte le basi a tali che a,561 sono coprimi, quindi in tutte queste basi (che sono la maggioranza) “finge” di essere primo superando il test di Fermat.

Una di tali basi è per esempio a=2; se utilizziamo con tale base il test di Rabin-Miller, si ha:

n-1=560=2 s t dove s=4, t=35, le potenze da studiare sono 2 35 ,2 235 =2 70 , 2 435 =2 140 , 2 835 =2 280 , con le seguenti riduzioni modulo 561

2 35 mod561=263

2 70 mod561=(263) 2 mod561=166 2 140 mod561=(166) 2 mod561=67 2 280 mod561=(67) 2 mod561=1

quindi non é verificata nessuna delle condizioni del passo 4), e il numero n=561 non supera il test di Rabin-Miller nella base a=2 (cioé 561é soltanto pseudoprimo nella base a=2, ma non é fortemente pseudoprimo nella stessa base): 561 “si rivela” composto utilizzando la base a=2 nel test di Rabin- Miller.

Per concludere in modo definitivo che il test di Rabin-Miller sia un test di primalità probabilistico, dobbiamo calcolare un maggiorante per la probabilità che un input n composto (dispari) superi il test per una scelta casuale della base a.

In effetti storicamente Miller (1977) implementò per primo il test, ma avendo come scopo la costruzione di un test di primalità deterministico di complessità polinomiale: aveva infatti congetturato che se n è un input composto (dispari) allora esiste una base a con 1a2log 2 2 n in cui n non è fortemente pseudoprimo (cioè in cui n non supera il test rivelando di essere composto); se tale congettura fosse vera (ma nessuno ha trovato una dimostrazione di ciò) il test diventerebbe deterministico, perché non si dovrebbe scegliere casualmente la base a, ma farle assumere tutti i valori nell’intervallo [1, 2log 2 2 n] e se il test è sempre superato concludere con certezza che n è primo (il numero di valori a è maggiorato da un’espressione polinomiale in log 2 n, quindi la complessità è polinomiale).

Solo in seguito Rabin (1980) ebbe l’idea di utilizzare lo stesso test ma come test di primalità probabilistico, e dimostrò che la probabilità che un numero composto superi il test è 1/4: quindi eseguendo il test k volte, con k scelte indipendenti della base casuale a, la probabilità che un numero composto superi tutte le volte il test è 1/4 k .

In effetti Burthe (1996) ha dimostrato che il maggiorante 1/4 trovato da Rabin si può notevolmente

migliorare: con questi nuovi risultati (vedere le considerazioni sulla probabilità svolte dopo il test di

Fermat) lo stesso Burthe ha dimostrato che se un input n (dispari) scelto casualmente fra i naturali

con h cifre (in base 10) supera il test di Rabin-Miller indipendentemente per k volte consecutive,

allora la probabilità che n sia composto è effettivamente 1/4 k .

(3)

Lezione del 16 aprile 2007

Poiché la dimostrazione del Teorema di Rabin è molto macchinosa, ci limiteremo ad una forma semplificata in cui però la maggiorazione ottenuta per la probabilità è 1/2 (come nel test di Fermat), ma senza le eccezioni presentate nel test di Fermat dai numeri di Carmichael:

Teorema di Rabin (forma semplificata).

Sia n>1 un numero naturale composto dispari. Il numero di basi a (con 1an-1) in cui n è fortemente pseudoprimo è  (n)/2.

Dimostrazione:

Se n non è un numero di Carmichael, sappiamo che il numero delle basi a in cui n è pseudoprimo è

 (n)/2, e poiché se n è fortemente pseudoprimo nella base a, n è pseudoprimo nella stessa base a, si ha la tesi.

Quindi supponiamo che n sia un numero di Carmichael.

Sia n-1=2 s t, con s>0, t naturale dispari.

Esiste qualche esponente k fra t, 2t, 2 2 t,…,2 s-1 t per il quale la congruenza x k -1 (mod n) abbia qualche soluzione x con 1xn-1 (per esempio k=t, x=n-1, perché (n-1) t (-1) t -1 (mod n)).

Dunque possiamo considerare il massimo esponente k fra t, 2t, 2 2 t,…,2 s-1 t per il quale la congruenza x k -1 (mod n) abbia qualche soluzione x con 1xn-1, e sia x=a una tale soluzione. Notiamo che a,n sono coprimi: infatti si ha a 2k 1 (mod n), e [a] è invertibile in Z n con inverso [a 2k-1 ].

Essendo n numero di Carmichael, per il criterio di Korselt n è prodotto di primi distinti:

n = p 1 p 2 …..p r (r>1, p i primi distinti dispari)

Consideriamo i numeri coprimi v=p 1 , z=p 2 …..p r ; per il Teorema Cinese del Resto esiste una soluzione del sistema di 2 congruenze:

 

z) (mod 1

x

v) (mod a

x

Se si considera una soluzione canonica x si ha 0xvz-1=n-1, anzi 1x n-1 (perché 0 non è soluzione della seconda congruenza). Inoltre a k -1 (mod n), quindi (essendo vn) a maggior ragione a k -1 (mod v), x k a k -1 (mod v), x k 1 k =1 (mod z). Ma allora non si ha x k 1 (mod n) (se fosse x k +1 (mod n), sarebbe 1-1 (mod v), impossibile perché v è dispari; se invece fosse x k -1 (mod n), sarebbe -11 (mod z), impossibile perché z è dispari). Infine x,n sono coprimi: se per assurdo non lo fossero, x sarebbe multiplo di qualche p i con i=1,2,…,r; ma x non è multiplo di v=p 1 (dalla prima congruenza del sistema seguirebbe p 1 a mentre a,n sono coprimi) ed x non è multiplo di p i con i>1 (dalla seconda congruenza del sistema seguirebbe p i 1 contraddizione perché p i è primo)

Consideriamo allora gli insiemi:

A={y interi / 1yn-1, n fortemente pseudoprimo nella base y}

S={y interi / 1yn-1, y k 1 (mod n)}

T={y interi / 1yn-1, y,n coprimi}

Si ha AS : se n é fortemente pseudoprimo nella base y, allora o si ha y t 1 (mod n) (nel qual caso essendo k=2 i t si ha y k = (y t ) 2

i

1 (mod n)) oppure si ha y 2

j

t -1 (mod n) per qualche j=0,1,…,s-1 (nel qual caso se k=2 i t si ha per costruzione ji, da cui se j<i y k = (y 2

j

t ) 2

i-j

 ( 1) 2

i-j

=1 (mod n), mentre se j=i y k = y 2

j

t -1 (mod n)).

Si ha poi ST: se y k 1 (mod n), y 2k 1 (mod n), [y] è invertibile in Z n (con inverso [y 2k-1 ]), y,n sono coprimi.

Se consideriamo il numero x costruito nella prima parte (1 x n-1, tale che non é x k 1 (mod n),

x,n coprimi) si ha xT-S. Sia g=S, e siano a 1 ,a 2 ,…,a g gli elementi distinti di A. Consideriamo le

riduzioni b i =(a i x)modn con i=1,2,…,g: sono g elementi distinti ( se fosse (a i x)modn=(a j x)modn con

(4)

ij, nel gruppo Z n * sarebbe [a i ][x]= [a j ][x], [a i ]=[a j ], contraddizione perché le classi [1],[2],…,[n-1]

sono distinte). Inoltre i b i sono coprimi con n (perché [b i ]= [a i ][x]Z n *), e sono in T-S (perché se fosse b i k =a i k x k 1 (mod n), sarebbe x k 1 (mod n), contraddizione).

Dunque T-S contiene un sottoinsieme di cardinalità g=S, e si conclude che:

AST/2 =(n)/2

Come conseguenza di tale Teorema di Rabin si ha che la probabilità che un numero composto superi il test di Rabin-Miller è 1/2 (in effetti 1/4 nella versione originale del Teorema): infatti le basi casuali a sono in numero totale di n-1, e se h è il numero di quelle in cui n (composto) è fortemente pseudoprimo, la probabilità che n (composto) superi il test è (essendo (n)n-1):

h/(n-1)h/(n)[(n)/2]/(n)=1/2

Lezione del 18 aprile 2007

Test di primalità per numeri di forma particolare

Studieremo ora dei test deterministici di primalità che sono di complessità polinomiale, ma solo se l’input è un numero naturale di forma particolare.

In particolare ci occuperemo di numeri naturali della forma 2 k 1: quelli della forma 2 k +1 sono i cosiddetti numeri di Fermat, quelli della forma 2 k -1 sono i cosiddetti numeri di Mersenne.

Dimostreremo un risultato di Pocklington, che, sotto particolari ipotesi, dimostra una notevole proprietà dei fattori primi di un numero naturale.

Teorema di Pocklington.

Sia n>1 un numero naturale, q un fattore primo di n-1, q m la massima potenza di q che divide n-1.

Se esiste un naturale a con 1an-1 tale che:

1) a n-1 1 (mod n) 2) mcd(a (n-1)/q -1,n)=1

allora per ogni fattore primo p di n, si ha p1 (mod q m ), quindi p è della forma 1+tq m , con t intero.

Dimostrazione:

Essendo pn dalla 1) segue a n-1 1 (mod p), quindi [a] n-1 =[1] in Z p , ossia [a] è invertibile in Z p (con inverso [a n-2 ]) e nel gruppo moltiplicativo Z p * il periodo r di [a] è divisore di n-1; inoltre il periodo r di [a] è anche divisore della cardinalità p-1 di Z p * .

Affermiamo che:

r non è divisore di (n-1)/q (*)

Infatti se per assurdo fosse (n-1)/q=rk (con k intero), seguirebbe [a] (n-1)/q =([a] r ) k =[1], p(a (n-1)/q -1), in contraddizione con la 2).

Ma allora è anche vero che:

q non è divisore di (n-1)/r (notare che (n-1)/r è intero perché r(n-1) )

Infatti se per assurdo fosse (n-1)/r=qh (con h intero), sarebbe (n-1)/q=rh, in contraddizione con (*).

Essendo q m la massima potenza di q che divide n-1, si ha n-1=q m z, con z intero non divisibile per q.

Da r(n-1) segue n-1=rw=q m z (con w intero), e poiché q non è divisore di (n-1)/r=w, per la fattorizzazione unica si ha che q m r, ma r(p-1), quindi q m (p-1), e si ha la tesi.

Da questo teorema, aggiungendo un’ulteriore ipotesi, si ottiene un test deterministico di primalità:

Teorema di Proth-Pocklington.

(5)

Sia n>1 un naturale dispari, e sia 2 m la massima potenza di 2 che divide il numero pari n-1, in modo che sia n-1=2 m h con h naturale dispari. Se 2 m >h si ha:

n è primo  esiste un naturale a, con 1an-1, tale che a (n-1)/2 -1 (mod n) Dimostrazione:

(): Supponiamo n primo. Per il teorema di Gauss il gruppo moltiplicativo Z n * è ciclico, e se [a] è un suo generatore, il periodo di [a] è la cardinalità n-1 di Z n * .

Poiché [a] n-1 =[1], si ha (a (n-1)/2 ) 2 =a n-1 1 (mod n), e per una proprietà già osservata nel test di Rabin- Miller, ciò implica a (n-1)/2 1 (mod n), ma a (n-1)/2 1 (mod n) è da escludere (perché, essendo n il periodo di [a], si ha [a] (n-1)/2 [1]), dunque a (n-1)/2 -1 (mod n).

(): Supponiamo l’esistenza del naturale a, con 1an-1, tale che a (n-1)/2 -1 (mod n), e per assurdo sia n non primo. Allora esisterebbe un divisore d (non banale) di n con d n , e a maggior ragione esisterebbe un divisore primo p di n con p n (basta scegliere un fattore primo p di d).

Verifichiamo le ipotesi 1) e 2) del Teorema di Pocklington (con q=2).

La 1) è verificata in quanto basta elevare al quadrato l’ipotesi a (n-1)/2 -1 (mod n).

Per quanto riguarda la 2), posto t= mcd(a (n-1)/2 -1,n)=1, si ha, essendo a (n-1)/2 -1 (mod n), a (n-1)/2 +1=kn (con k intero), 2=kn-(a (n-1)/2 -1), ossia t2 (perché tn, t(a (n-1)/2 -1)); ma tn con n dispari, dunque necessariamente t=1, e la 2) è verificata.

Dal Teorema di Pocklington segue allora che p1 (mod 2 m ), p-1=2 m w (con w naturale), 2 m p-1<p.

Ma per ipotesi n-1=2 m h con h naturale dispari e con 2 m >h, da cui n=1+2 m h<1+2 m 2 m =1+2 2m , n2 2m . Essendo n dispari la disuguaglianza è stretta cioè n<2 2m , da cui p n <2 m , contraddizione.

Possiamo notare che il teorema fornisce un test di primalità deterministico per input n dispari, tale che n-1=2 m h con h naturale dispari e con 2 m >h: tuttavia il test non ha complessità polinomiale, perché, benché testare la congruenza a (n-1)/2 -1 (mod n) equivalga alla condizione a (n-1)/2 modnn-1 (verificabile con complessità polinomiale con l’esponenziazione modulare), la ricerca dell’esistenza di un valore a che soddisfi tale congruenza ha complessità esponenziale (il numero dei valori possibili di a è maggiorato da n= 2 log 2 n ).

Esaminiamo però il caso particolare in cui il numero n>1 dispari sia tale che n-1=2 m h con h=1 (cioè il caso n=2 m +1): si ha sempre 2 m >h=1, quindi si può applicare il Teorema di Proth-Pocklington, e vedremo in seguito che in tal caso basta verificare la condizione del teorema solo per a=3 per concludere con certezza che n è primo.

Otterremo quindi un test di primalità deterministico di complessità polinomiale (detto criterio di Pepin) valido solo per i numeri della forma n=2 m +1 (i numeri di Fermat).

Lezione del 20 aprile 2007

Studiamo dunque i numeri naturali dispari n>1 della forma n=2 m +1, con m>0.

Fermat dimostrò che:

Teorema.

Se n=2 m +1 (con m>0), e se n è primo, allora necessariamente l’esponente m è una potenza di 2 della forma m=2 r , con r0.

Dimostrazione:

Per ogni naturale s>1 vale la seguente identità algebrica:

(x s -y s )=(x-y)(x s-1 +x s-2 y+….+xy s-2 +y s-1 )

Per assurdo supponiamo n=2 m +1 primo, e l’esponente m non potenza di 2. Se 2 r (con r0) è la

massima potenza di 2 che divide r (al limite r=0), si ha m=2 r s, con s>1, s dispari.

(6)

Dall’identità algebrica precedente, con x= 2 (2 r ) , y=-1, si ha n= 2 (2 r )s +1 multiplo di x-y= 2 (2 r ) +1:

tale divisore di n è >1 (perché 2 (2 r ) >0) ed è <n (perché 2 r s>2 r , essendo s>1), in contraddizione con l’ipotesi che n è primo.

Visto il risultato precedente, studieremo i cosiddetti numeri di Fermat della forma F r = 2 (2 r ) +1 (al variare dell’intero r0), cercando quali fra essi sono numeri primi.

Notizie sullo stato attuale delle ricerche si possono trovare all’indirizzo:

www.prothsearch.net/fermat.html

Fermat congetturò che per ogni intero r0 il numero F r = 2 (2 r ) +1 fosse primo.

In effetti per r<5 i valori F 0 =3, F 1 =5, F 2 =17, F 3 =257, F 4 =65.537 sono numeri primi.

Ma per r=5 il numero F 5 =4.294.967.297 non è primo, essendo divisibile per il numero primo 641.

Quindi Fermat si sbagliava: inoltre a tutt’oggi per nessun r5 si è trovato un F r che sia primo, e si

congettura che un tale F r non esista (F 33 è il numero di Fermat del quale non si conosce la primalità

o la non primalità).

Riferimenti

Documenti correlati

Abstract: la tesi esamina il fenomeno della diaspora cinese e la relativa letteratura. Dedica ampio spazio alla problematica identitaria, con un’analisi del concetto di

Pakistan at the time of creation of the country and who are now permanently residing in Pakistan. ii- The second category includes those persons who were born in the

Dipinti scelti dal XIV al XX secolo, Una Visione organica del patrimonio pittorico in Italia: il contributo del Banco Popolare, Banco Popolare-Gruppo Bancario, Verona, 2010,

Nel capitolo 4 verranno identificate le caratteristiche peculiari alla base della sicurezza dei crittosistemi asimme- trici più di ffusi, spiegando cosa sono la teoria della

Il numero dei valori possibili per la scelta dell’elemento casuale a nel test è (n-1); vediamo come possiamo valutare il numero dei valori a per i quali il test è superato, cioè

III) Il frigorifero riceve energia (elettrica) dall’ambiente esterno e la utilizza per raffreddare la cella frigorifera, sottraendo da essa energia termica. La macchina cede

La estrema sensibilità del test virale (HPV test) può far esplodere il sottile equilibrio dell’invio al- la colposcopia delle pazienti positive all’HPV (me- diamente 6%); si ovvia

5) Alcune casse, tutte uguali, sono state disposte come vedi nella figura qui sotto.. Se ciascuna cassa pesa 25 kg, quanto pesano