• Non ci sono risultati.

Nella lezione precedente abbiamo descritto il Test probabilistico di primalità di Rabin-Miller:

N/A
N/A
Protected

Academic year: 2021

Condividi "Nella lezione precedente abbiamo descritto il Test probabilistico di primalità di Rabin-Miller:"

Copied!
1
0
0

Testo completo

(1)

Teoria dei numeri e Crittografia: lezione del 28 novembre 2011

Nella lezione precedente abbiamo descritto il Test probabilistico di primalità di Rabin-Miller:

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 dunque si rappresenta (n-1) nella forma: n-1=2

s

t, con t>0 numero naturale dispari 3) si sceglie random un intero a con 1 a n-1 (detto base)

4) si costruiscono le riduzioni modulo n delle s potenze di base a ed esponente t, 2

1

t, 2

2

t, ….. , 2

s-1

t:

a

2it

modn i=0,1,…..,s-1 5) se è verificata almeno una delle seguenti condizioni:

at

modn =1 oppure a

2it

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

(equivalenti alle congruenze: a

t

1 (mod n), a

2it

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

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 random della base a.

Nella dimostrazione originale di Rabin (1980) si dimostra 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

.

Poiché la dimostrazione del Teorema di Rabin è molto complicata, ci limiteremo ad una forma semplificata in cui però la maggiorazione ottenuta per la probabilità è 1/2 (come nel test di Fermat), ma sempre senza le eccezioni costituite 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 (quindi la probabilità che un numero composto superi il test di Rabin-Miller è  ((n)/2)/(n-1)  ((n-1)/2)/(n-1)=1/2).

Dimostrazione:

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

 (n)/2, e poiché abbiamo già notato sopra che se n è fortemente pseudoprimo nella base a, allora n è pseudoprimo nella stessa base, si ha la tesi.

Quindi supponiamo che n sia un numero di Carmichael.

Sia n-1=2

s

t, con s>0, t numero naturale dispari.

Osserviamo che esiste qualche k fra i numeri t, 2t, 2

2

t,…,2

s-1

t e qualche intero a con 1 a n-1 tale che si abbia:

a

k

 -1 (mod n) (*)

(per esempio basta prendere k=t, x=n-1, perché (n-1)

t

(-1)

t

-1 (mod n) essendo t dispari).

Dunque possiamo considerare il massimo k fra i numeri t, 2t, 2

2

t,…,2

s-1

t per il quale esiste qualche intero a con 1 a n-1 che soddisfi (*).

Notiamo che per un tale a si ha che a,n sono coprimi: infatti si ha a

2k

(-1)

2

=1 (mod n), e [a] è invertibile in Z

n

con inverso [a

2k-1

].

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

n = p

1

p

2

…..p

r

(con r>1; p

i

primi distinti dispari)

Consideriamo i numeri naturali (ovviamente coprimi) v=p

1

, z=p

2

…..p

r

; per il Teorema Cinese del

Resto esiste una soluzione intera x del sistema di 2 congruenze:

(2)

(mod ) 1 (mod )

x a v

x z

 

  

Se si considera una soluzione canonica del sistema si ha 0 x vz-1=n-1, anzi 1 x n-1 (perché 0 non è ovviamente soluzione del sistema). Inoltre da (*) (essendo vn) a maggior ragione si ottiene a

k

 -1 (mod v), x

k

 a

k

 -1 (mod v), x

k

1

k

=1 (mod z).

Notiamo che non si ha x

k

1 (mod n): infatti se fosse x

k

+1 (mod n), sarebbe 1 -1 (mod v), contraddizione perché v è dispari; se invece fosse x

k

 -1 (mod n), sarebbe -11 (mod z), contraddizione perché z è dispari.

Infine x,n sono coprimi: se per assurdo non lo fossero, x sarebbe multiplo di qualche fattore primo 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 è neanche multiplo di p

i

con i>1 (dalla seconda congruenza del sistema seguirebbe p

i

1 contraddizione perché p

i

è primo).

Consideriamo allora l’insieme:

S={yN / 1 y n-1, n fortemente pseudoprimo nella base y}

e notiamo che ogni elemento y in S è coprimo con n : infatti se n é fortemente pseudoprimo nella base y, allora n è pseudoprimo nella base y, e sappiamo che da ciò segue che y, n sono coprimi (come dimostrato nello studio del test di Fermat).

Come nella dimostrazione analoga fatta per il test di Fermat, per ottenere la tesi basta costruire un insieme T contenente numeri compresi fra 1 ed n-1 coprimi con n, con S, T disgiunti e di eguale cardinalità.

A tale scopo consideriamo il numero x (creato sopra) che ha le proprietà:

1 x n-1, non é x

k

1 (mod n), x,n coprimi.

Sia poi T = { (ax)modn / aS }: con gli stessi metodi utilizzati nell’analogo teorema sul test di Fermat si dimostra che T contiene numeri compresi fra 1 ed n-1 coprimi con n, e che S, T sono insiemi di eguale cardinalità.

Resta da dimostrare che S, T sono disgiunti: per assurdo sia yST.

Da yS, dimostriamo che segue:

y

k

1 (mod n) (**)

dove k è l’intero determinato sopra (cioè il massimo fra i numeri t, 2t, 2

2

t,…,2

s-1

t per il quale esiste qualche intero a con 1 a n-1 che soddisfi a

k

 -1 (mod n)).

Per dimostrare (**) ricordiamo che y supera per ipotesi il test di Rabin-Miller, quindi vale almeno una delle condizioni del test di Rabin-Miller:

- se si ha y

t

1 (mod n) , essendo k=2

i

t (con 0≤i≤s-1) si ha y

k

= ( ) y

t 2i

1 (mod n))

- se invece si ha y

2jt

 -1 (mod n) per qualche j=0,1,…,s-1, posto k=2

i

t (con 0≤i≤s-1) si ha certamente j i (per la massimalità della scelta di k), da cui se j<i:

y

k

= ( y

2jt

)

2i j-

(1)2i-j

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

k

= y

2jt

 -1 (mod n).

Essendo però yT si ha anche y=(ax)modn , con aS, dunque 1y

k

a

k

x

k

(mod n), e poiché da aS segue a

k

1 (mod n) (come dimostrato sopra per y) si ha a

k

1 (mod n), e si ottiene x

k

1 (mod n), contraddizione.

Test di primalità per numeri di forma particolare

Studieremo ora dei test deterministici di primalità che sono di complessità polinomiale, ma che sono validi 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.

(3)

Dimostreremo dapprima un risultato di Pocklington, che, sotto particolari ipotesi, dimostra una notevole proprietà relativa alla struttura 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 =ord([a]) è divisore di n-1; inoltre il periodo r =ord([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 (in Z

p

):

[a]

(n-1)/q

=([a]

r

)

k

=[1]

da cui p(a

(n-1)/q

-1) in contraddizione con l’ipotesi 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, ma q

m

(n-1), 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.

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 (nel caso di un numero primo) 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), 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), ed in particolare 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

, ossia

n 2

2m

.

(4)

Essendo n dispari la disuguaglianza è stretta cioè n<2

2m

, da cui p n <2

m

, contraddizione.

Riferimenti

Documenti correlati

C Il corpo rigido si può spostare nello spazio e può ruotare: esso è in equilibrio quando la somma vettoriale di tutte le forze applicate è nulla.. D Il corpo rigido si può

„ The Rabin-Karp string searching algorithm calculates a hash value for the pattern, and for each M-character subsequence of text to be compared.. „ If the hash values are

Cognome

 ogni parametro incognito della distribuzione teorica, stimato con gli stetti dati usati per il test, abbassa di un’unit` a il numero di gradi di libert` a del quantile

Pertanto, a livello di significativit` a del 5%, questi dati non sono sufficienti a ritenere che i furti non si distribuiscano in modo uniforme nei sette giorni

Cinesi, giapponesi e tutti gli altri gruppi etnici asiatici che abitano in Italia hanno spesso difficoltà a leggere

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è

- sceglie random un numero naturale p di n cifre decimali, e lo testi con il test di primalità di Rabin-Miller (il test deve essere ripetuto un numero k di volte, con k