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 ) +1n= 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