Teoria dei numeri e Crittografia: lezione del 30 novembre 2011

Teoria dei numeri e Crittografia: lezione del 30 novembre 2011
Possiamo notare che il teorema di Proth-Pocklington fornisce un test di primalità deterministico
(anche se solo per un input n dispari tale che n-1=2mh con h naturale dispari e con 2m>h): tuttavia il
test non ha complessità polinomiale, perché, benché testare la congruenza a(n-1)/2≡ -1 (mod n) sia
equivalente a testare che a(n-1)/2modn≡n-1 (test che si può effettuare con l’algoritmo
dell’esponenziazione modulare, di complessità polinomiale), la ricerca dell’esistenza di un valore a
che soddisfi tale congruenza ha complessità esponenziale (perché il numero dei valori a da testare è
di ordine O(n) quindi di ordine esponenziale O(2x), se x=L(n)).
Esamineremo però in seguito il caso particolare in cui il numero n>1 dispari sia tale che n-1=2mh
ma con h=1 (cioè il caso n=2m+1), ossia il caso in cui il numero n sia un numero di Fermat: in
questo caso è ovvio che 2m>h=1, quindi si può applicare il Teorema di Proth-Pocklington.
In questo caso particolare Pepin ha dimostrato che la condizione necessaria e sufficiente del
Teorema diventa (almeno nel caso m>1, quindi con n>3):
n è primo ⇔ 3(n-1)/2≡ -1 (mod n)
(criterio di Pepin)
Otteniamo in tal modo un test di primalità deterministico valido solo per i numeri>3 della forma
n=2m+1 (appunto i numeri di Fermat), e di complessità (polinomiale) uguale a quella
dell’algoritmo di esponenziazione modulare.
Studiamo dunque i numeri naturali n>1 della forma n=2m+1, con m>0 (quindi n è dispari).
Fermat dimostrò che:
Teorema.
Se n=2m+1 (con m>0), e se n è primo, allora necessariamente l’esponente m è una potenza di 2
della forma m=2r, con r≥ 0.
Dimostrazione:
Per assurdo supponiamo n=2m+1 primo, e l’esponente m non potenza di 2. Se 2r (con r≥0) è la
massima potenza di 2 che divide r (al limite r=0), si ha m=2rs, con s>1, s dispari.
Per ogni naturale s>1 si ha (x-y)(xs-ys) (dimostrazione per induzione, Ia forma)..
r
r
r
Applicando tale proprietà con x= 2(2 ) , y=-1, si ha che x-y= 2 (2 ) +1n= 2(2 ) s +1: ma tale divisore
r
r
x-y= 2 (2 ) +1 di n è >1 (perché 2 (2 ) >0) ed è <n= 2(2 ) s +1 (perché 2rs>2r, essendo s>1), in
contraddizione con l’ipotesi che n è primo.
r
r
Visto il risultato precedente, studieremo solo i numeri di Fermat della forma Fr = 2(2 ) +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
r
Fermat congetturò che per ogni intero r≥ 0 il numero Fr = 2(2 ) +1 fosse primo.
In effetti per r<5 i valori F0=3, F1=5, F2=17, F3=257, F4=65.537 sono numeri primi.
Ma per r=5 il numero F5=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 Fr che sia primo, e si
congettura che un tale Fr non esista (F33 è 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 Fr, 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 Zp* degli elementi
invertibili di Zp.
Diremo che a è un resto quadratico modulo p se esiste un naturale b tale che a≡b2 (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] ∈ Zp* e si ha [a]=[b2]=[b] 2: in pratica a è resto quadratico modulo p se e
solo se [a] è un quadrato perfetto in Zp* (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 Z7* = {[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].
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 Z2*={[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] ∈ Zp* 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 Zp* è ciclico, generato da un elemento [x] di periodo uguale
alla cardinalità (p-1) di Zp*.
Ogni elemento di Zp* è 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)/2modp=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)/2b(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.
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 = p1k1 p2 k2 .... pr kr (notare che ogni pi ≠ p dunque pi non è multiplo di p, ed esiste (pi / p))
Per la 2) si ha :
r
∏ ( p / p)
(a / p) =
i =1
ki
i
Ma nella formula precedente: se ki è pari ( pi / p )ki = (±1) k i =+1, e se ki è dispari ( pi / p )ki =(pi / p)
(sempre perché (pi / p)=± 1) , dunque in totale si ha :
r
(a / p) =
∏
i =1
ki dispari
( pi / 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.
2
Se p è primo >2 si ha: (2 / p) = (−1)( p −1)/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:
2
(1⋅ 2⋅ ….⋅ (p-1)/2) ⋅ (-1)1+2+3+….+(p-1)/2 = [(p-1)/2]! (−1)( p −1)/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
2(p-1)/2[(p-1)/2]! ≡ [(p-1)/2]! (−1)( p −1)/8 (mod p)
Da ciò si ha che:
2
p è divisore di [(p-1)/2]![ 2(p-1)/2 - (−1)( p −1)/8 ]
ma p non è divisore di [(p-1)/2]! (perché [(p-1)/2]! é un prodotto di naturali tutti <p dunque tutti
2
non multipli di p), e allora p è divisore della differenza [ 2(p-1)/2 - (−1)( p −1)/8 ], ossia :
2(p-1)/2 ≡ (−1)( p −1)/8 (mod p)
Per la proprietà 1) del simbolo di Legendre, si ha
2
(2 / p) ≡ (−1)( p −1)/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.
2