• Non ci sono risultati.

Teoria dei numeri e Crittografia: lezione dell’ 11 maggio 2011 Studiamo dunque i numeri naturali dispari n>1 della forma n=2m+1

N/A
N/A
Protected

Academic year: 2021

Condividi "Teoria dei numeri e Crittografia: lezione dell’ 11 maggio 2011 Studiamo dunque i numeri naturali dispari n>1 della forma n=2m+1"

Copied!
1
0
0

Testo completo

(1)

Teoria dei numeri e Crittografia: lezione dell’ 11 maggio 2011

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

)

(facilmente dimostrabile utilizzando la I

a

forma del principio di induzione).

Quindi (x-y)(x

s

-y

s

) per ogni naturale 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.

Dall’identità algebrica precedente, applicata con x= 2

(2 )r

, y=-1, si ha che x-y= 2 (2

r

) +1n= 2

(2 )r s

+1:

tale divisore x-y= 2 (2

r

) +1 di n è >1 (perché 2 (2

r

) >0) ed è <n= 2

(2 )r s

+1 (perché 2

r

s>2

r

, essendo s>1), in contraddizione con l’ipotesi che n è primo.

Visto il risultato precedente, studieremo solo i 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 con r minimo del quale non si conosce la primalità o la non primalità).

Per dimostrare il criterio di Pepin per i numeri di Fermat F

r

, dobbiamo però introdurre il concetto di resto quadratico modulo un numero primo.

Resti quadratici.

Siano p un numero primo, a un numero naturale non multiplo di p.

Si ha allora mcd(a,p)=1, dunque [a] appartiene al gruppo moltiplicativo Z

p

* degli elementi invertibili di Z

p

.

Diremo che a è un resto quadratico modulo p se esiste un naturale b tale che ab

2

(mod p) (quindi se a è un “quadrato modulo p”). Notiamo che in tal caso anche il naturale b è ovviamente non multiplo di p, dunque [b] Z

p

* e si ha [a]=[b

2

]=[b]

2

: in pratica a è resto quadratico modulo p se e solo se [a] è un quadrato perfetto in Z

p

* (quindi la proprietà di essere un resto quadratico modulo p è relativa alla classe di congruenza modulo p, non al singolo naturale a).

Esempio.

Troviamo quali numeri naturali (non multipli di p=7) sono resti quadratici modulo 7.

Si ha Z

7

* = {[1], [2], [3], [4], [5], [6]}, e i quadrati delle classi sono [1]

2

=[6]

2

=[1],

[2]

2

=[5]

2

=[4], [3]

2

=[4]

2

=[2].

(2)

Quindi i resti quadratici modulo 7 sono i numeri naturali a tali che a1,2,4 (mod 7).

Per p=2 la situazione dei resti quadratici è banale: si ha Z

2

*={[1]}, [1]

2

=[1], e tutti i naturali coprimi con 2 (cioè dispari) sono resti quadratici modulo 2.

Quindi studieremo la teoria dei resti quadratici solo nel caso di un numero primo p>2 (quindi p dispari).

Criterio di Eulero.

Sia p>2 un primo ed a un naturale non multiplo di p. Allora:

a è resto quadratico modulo p  a

(p-1)/2

1 (mod p) Dimostrazione:

() Per ipotesi esiste [b]  Z

p

* tale che [a]=[b]

2

. Per il Piccolo Teorema di Fermat si ha:

[1]=[b]

p-1

=[a]

(p-1)/2

e si ottiene la tesi.

() Per il Teorema di Gauss, il gruppo Z

p

* è ciclico, generato da un elemento [x] di periodo uguale alla cardinalità (p-1) di Z

p

*.

Ogni elemento di Z

p

* è potenza di [x], e in particolare [a]=[x]

t

.

Per ipotesi si ha [1]=[a]

(p-1)/2

=([x]

(p-1)/2

)

t

=[x]

t(p-1)/2

, dunque t(p-1)/2 è multiplo del periodo (p-1) di [x], cioè t è multiplo di 2, t=2k, da cui ([x]

k

)

2

=[x]

t

=[a], ed a è resto quadratico modulo p.

Come conseguenza del criterio di Eulero, si ha che la verifica se a è resto quadratico modulo p si può effettuare con un algoritmo di complessità non superiore alla polinomiale, utilizzando l’esponenziazione modulare per verificare se a

(p-1)/2

modp=1).

Osservazione: Se p>2 é un primo ed a un naturale non multiplo di p, e se a non è resto quadratico modulo p, cosa possiamo dire di a

(p-1)/2

?

Per il Piccolo Teorema di Fermat si ha (a

(p-1)/2

)

2

1 (mod p), dunque, per una proprietà già osservata durante il test di Rabin-Miller, si ha a

(p-1)/2

1 (mod p), e per il criterio di Eulero si conclude che a

(p-

1)/2

 -1 (mod p).

Quindi la situazione è la seguente:

a è resto quadratico modulo p  a

(p-1)/2

1 (mod p) a non è resto quadratico modulo p  a

(p-1)/2

-1 (mod p)

Introduciamo allora il simbolo di Legendre (a/p), definito solo per p primo >2 ed a naturale non multiplo di p:

(a / p) = +1 se a è resto quadratico modulo p (a / p) = -1 se a non è resto quadratico modulo p Proprietà:

Sia p primo >2.

1) Se a è un naturale non multiplo di p si ha a

(p-1)/2

(a / p) (mod p) Discende banalmente da quanto osservato sopra.

2) Se a,b sono naturali non multipli di p (quindi anche ab non è multiplo di p):

(ab / p)=(a / p)(b / p).

Infatti per la proprietà 1) si ha (ab / p)(ab)

(p-1)/2

a

(p-1)/2

b

(p-1)/2

(a / p)(b / p) (mod p), ma i valori possibili di ognuno dei 2 numeri (a / p)(b / p), (ab / p) sono 1, dunque la congruenza precedente è in effetti un’eguaglianza (perché la congruenza 1 -1 (mod p) non è vera nel caso p>2).

3) Se a,b sono naturali non multipli di p e se ab (mod p) allora (a / p)=(b / p).

Discende banalmente dall’osservazione che la proprietà di essere resto quadratico dipende solo

dalla classe di congruenza modulo p.

(3)

Siano dunque p>2 un primo, a >1 un numero naturale non multiplo di p, e fattorizziamo a in prodotto di potenze di primi distinti:

a = p p

1k1 2k2

.... p

rkr

(notare che ogni p

i

 p dunque p

i

non è multiplo di p, ed esiste (p

i

/ p)) Per la 2) si ha :

(a / p) =

1

( / )

i

r k

i i

p p

Ma nella formula precedente: se k

i

è pari ( / ) p p

i ki

= ( 1) k

i

=+1, e se k

i

è dispari ( / ) p p

i ki

=(p

i

/ p) (sempre perché (p

i

/ p)= 1) , dunque in totale si ha :

(a / p) =

1

( / )

i

r i k disparii

p p

Dunque il calcolo di (a / p) si riconduce al calcolo di (q / p) dove q è un primo p.

Affronteremo prima il caso q=2 e poi il caso q>2 (quindi il caso q dispari).

Teorema.

Se p è primo >2 si ha: (2 / p) = ( 1)

(p21)/8

Dimostrazione:

Essendo p dispari, p-1 è pari. Elenchiamo tutti i (p-1)/2 numeri naturali pari  (p-1) in due modi diversi:

2,4,6 …… , (p-5),(p-3), (p-1) (ordine naturale)

(p-1), 2, (p-3), 4, 6, (p-5) ……. (ultimo, primo, penultimo, secondo, terzultimo, terzo……) Rispetto al secondo ordinamento valgono banalmente le seguenti (p-1)/2 congruenze modulo p:

p-11(-1)

1

(mod p) 22(-1)

2

(mod p) p-33(-1)

3

(mod p) 44(-1)

4

(mod p) etc…..

Se moltiplichiamo membro a membro tali congruenze, a primo membro si otterrà il prodotto di tutti i numeri naturali pari  (p-1) ossia il numero:

24…..(p-3)(p-1)=(21)(22)…..(2(p-3)/2)(2(p-1)/2)=2

(p-1)/2

[(p-1)/2]!

mentre a secondo membro si otterrà il numero:

(1 2 …. (p-1)/2)  (-1)

1+2+3+….+(p-1)/2

= [(p-1)/2]! ( 1) 

(p21)/8

(dove si è sfruttata, per k=(p-1)/2, la nota proprietà: k(k+1)/2 è la somma dei primi k naturali).

Si ottiene dunque la congruenza modulo p:

2

(p-1)/2

[(p-1)/2]!  [(p-1)/2]! ( 1) 

(p21)/8

(mod p) Da ciò si ha che:

p è divisore di [(p-1)/2]![ 2

(p-1)/2

- ( 1)

(p21)/8

]

ma p non è divisore di [(p-1)/2]! (perché [(p-1)/2]! é un prodotto di naturali tutti <p dunque tutti non multipli di p), e allora p è divisore della differenza [ 2

(p-1)/2

- ( 1) 

(p21)/8

], ossia :

2

(p-1)/2

( 1) 

(p21)/8

(mod p)

Per la proprietà 1) del simbolo di Legendre, si ha (2 / p)  ( 1) 

(p21)/8

(mod p)

I due membri di tale congruenza sono uguali a 1, dunque non possono essere diversi far loro ( la

congruenza +1-1 (mod p) non è vera perché p>2) e si ha la tesi.

(4)

Dal Teorema precedente segue in pratica che (2 / p)= 1 a secondo se (p

2

-1)/8 è pari o dispari. Ma considerando la classe [p] in Z

8

si ha [p]=[t] con t=1,3,5,7 (perché p è dispari), p=t+8k con k naturale. Si ha allora:

(p

2

-1)/8 = (t

2

-1)/8+(8k

2

+2tk)

Dunque (p

2

-1)/8 è pari se e solo se (t

2

-1)/8 è multiplo di 2, e ciò avviene solo per t=1,7.

Riassumendo:

(2 / p)=+1 se (p

2

-1)/8 è pari cioè se p1,7 (mod 8) (2 / p)= -1 se (p

2

-1)/8 è dispari cioè se p3,5 (mod 8)

Per il calcolo del simbolo di Legendre (q / p) nel caso di q, p primi distinti > 2 può essere utile il seguente Teorema (di cui si omette la dimostrazione):

Legge di reciprocità quadratica di Gauss.

Se p,q sono primi >2 distinti si ha:

(p / q)(q / p) = (-1)

(p-1)(q-1)/4

Si può allora calcolare uno dei numeri (p / q), (q / p) conoscendo l’altro: infatti moltiplicando l’eguaglianza precedente per esempio per (p / q) (ricordando che (p / q)

2

=(1)

2

=1) si ha

(q / p) = (-1)

(p-1)(q-1)/4

(p / q)

Tutte le considerazioni già fatte permettono di costruire un algoritmo per il calcolo di (a / p), quando p>2 è un primo ed a>1 è un numero naturale qualunque non multiplo di p:

- si rende a<p sostituendo a con la sua riduzione modulo p (per la proprietà 3) del simbolo di Legendre)

- si fattorizza a in prodotto di potenze di primi distinti:

a = p p

1k1 2k2

.... p

rkr

(p

i

primi distinti , tutti p perché p non è divisore di a) in modo da avere:

(a / p) =

1

( / )

i

r i k disparii

p p

e ricondurre il calcolo di (a / p) al calcolo di (p

i

/ p) - se p

i

=2 si usa la formula già dimostrata per (2 / p)

- se p

i

>2, si usa la legge di reciprocità quadratica per ricavare (p

i

/ p) in funzione di (p / p

i

), ed essendo p>p

i

si riduce p modulo p

i

, si fattorizza tale riduzione in prodotto di primi, e si itera il procedimento.

L’algoritmo precedente riconduce il calcolo a numeri sempre più piccoli: al limite alla fine si tratta di calcolare un simbolo di Legendre del tipo (2 / p)= ( 1) 

(p21)/8

o (1/p)=1 (perché 11

2

(mod p)).

Esempio:

Calcoliamo (338/131).

Riducendo 338 modulo 131 si ottiene 76, quindi si deve calcolare (76/131).

I fattori primi di 76 sono 2 (con molteplicità 2) e 19 (con molteplicità 1), quindi (76/131)=(19/131).

Per la legge di reciprocità quadratica (essendo [(19-1)/2][(131-1)/2] dispari): (19/131)=-(131/19).

Riducendo 131 modulo 19 si ottiene 17, da cui (131/19)=(17/19).

Per la legge di reciprocità quadratica (essendo [(17-1)/2][(19-1)/2] pari): (17/19)=(19/17).

Riducendo 19 modulo 17 si ottiene 2, da cui (17/19)=(2/17).

Infine (2/17)=+1 (perché 171 (mod 8)).

Riassumendo si ha (338/131)= -1 (quindi 331 non è resto quadratico modulo 131).

(5)

Siamo ora in grado di dimostrare il:

Teorema di Pepin.

Il numero di Fermat F

r

= 2

(2 )r

+1 (con r>0) è un numero primo  3

r21 F

-1 (mod F

r

)

Dimostrazione:

(): Basta applicare l’implicazione () del Teorema di Proth-Pocklington, con n=F

r

, h=1, a=3 (): Essendo 3, F

r

primi dispari distinti (perché F

r

>3 essendo r>0), per la legge di reciprocità quadratica si ha:

(3 / F

r

) = (F

r

/ 3) ( 1)

r21 F

Ma (F

r

-1)/2= 2

2 1r

è pari (perché r>0), dunque (3 / F

r

) = (F

r

/ 3).

Valgono le seguenti congruenze modulo 3:

F

r

= 2 (2

r

) +1 = 4 (2

r-1

) +1 1+1 2 (mod 3)

Dunque, per la proprietà 3) del simbolo di Legendre e per la regola di calcolo di (2 / p) si ha:

(3/F

r

) = (F

r

/3) = (2/3) = (-1)

(9-1)/8

= -1 Per il criterio di Eulero si ha infine la tesi 3

r21

F

-1 (mod F

r

).

Riferimenti

Documenti correlati

Il test di primalità sopra esposto può essere reso più efficiente limitandosi per esempio ad input a dispari (un numero pari a non è primo tranne nel caso banale a=2) ed

Dimostriamo la (*): se ks allora è banale (in quanto ks&lt;rm dunque basta

Ricordiamo che un test di primalità probabilistico è un algoritmo tale che, dato in input un numero naturale n&gt;1, dopo una serie di calcoli che coinvolgono anche alcuni

In un campo A vale la legge di annullamento del prodotto: comunque dati a,bA, se ab=0 A si ha a=0 A oppure b=0 A (equivalentemente se a,b0 A allora ab0 A

Infatti basta per esempio scegliere m=minimo naturale ³j che sia multiplo di k-j : per tale scelta di m si ha allora b m =b 2m (perché m,2m³j, e perché 2mm (mod k-j),

[r]

Alcuni dei principali argomenti trattati nel corso saranno i seguenti: studio della Teoria dei Numeri (soprattutto l’aritmetica dei numeri interi e in particolare dei numeri

Quest’ultimo risultato dimostra che nella stima dell’ordine della somma di funzioni “prevale” quella di ordine maggiore (se gli ordini delle 2 funzioni sono confrontabili): se