Università degli Studi di Milano Polo Didattico e di Ricerca di Crema I Numeri Primi Prof.ssa Laura Citrini Filippo Gandaglia Massimo Manara Andrea Gardoni Luigi Margheritti 6 Settembre 2006 657228 656814 656751 660216 Cosa è un numero primo? Definizione Storia Applicazioni Conclusione Un numero primo, in matematica, è un numero naturale divisibile unicamente per sé stesso e per l’unità, e diverso, per convenzione, dall’unità. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 2 / 17 Cosa è un numero primo? Definizione Storia Applicazioni Conclusione Un numero primo, in matematica, è un numero naturale divisibile unicamente per sé stesso e per l’unità, e diverso, per convenzione, dall’unità. L’insieme dei numeri primi è un sottoinsieme dei numeri naturali. 2 - 3 - 5 - 7 - 11 - 13 - 17 . . . Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 2 / 17 Un po’ di storia Definizione Storia Applicazioni Conclusione I numeri primi sono infiniti. La più antica dimostrazione pervenutaci è quella fornita da Euclide. I numeri primi sono più di una qualsiasi assegnata moltitudine di numeri primi. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 3 / 17 Un po’ di storia Definizione Storia Applicazioni Conclusione I numeri primi sono infiniti. La più antica dimostrazione pervenutaci è quella fornita da Euclide. I numeri primi sono più di una qualsiasi assegnata moltitudine di numeri primi. La sua dimostrazione parte da un qualunque insieme di numeri primi p1 , p2 , · · · , pn , e costruisce un numero primo diverso da tutti i pi . Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 3 / 17 Applicazioni Definizione Storia Applicazioni Conclusione ■ Matematica Scoperta di nuovi numeri primi, molto grandi Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 4 / 17 Applicazioni Definizione Storia Applicazioni Conclusione ■ Matematica Scoperta di nuovi numeri primi, molto grandi ■ Informatica u Sicurezza informatica u Crittografia (RSA. . . ) u Applicazione sicure Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 4 / 17 Numero primo di Fermat Definizione Storia Applicazioni Numero primo di Fermat Conclusione ■ Alla base c’è il cosiddetto piccolo teorema di Fermat ■ Se p è un numero primo, allora per ogni numero naturale b appartenente all’intervallo aperto (0, p) è: bp (mod p) = b Un numero primo di Fermat è un numero primo esprimibile come: Fn = 2 2n +1 con n intero positivo. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 5 / 17 Numero primo di Fermat Definizione Storia Applicazioni Numero primo di Fermat Conclusione ■ Alla base c’è il cosiddetto piccolo teorema di Fermat ■ Se p è un numero primo, allora per ogni numero naturale b appartenente all’intervallo aperto (0, p) è: bp (mod p) = b Un numero primo di Fermat è un numero primo esprimibile come: Fn = 2 2n +1 con n intero positivo. 20 F0 = 2 + 1 = 3, 1 F1 = 22 + 1 = 5, 23 F3 = 2 + 1 = 257 Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 5 / 17 Teorema di Mersenne Definizione Storia Applicazioni Teorema di Mersenne Conclusione Un numero primo di Mersenne è un numero primo esprimibile come: Mn = 2 n − 1 con n intero positivo. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 6 / 17 Teorema di Mersenne Definizione Storia Applicazioni Teorema di Mersenne Conclusione Un numero primo di Mersenne è un numero primo esprimibile come: Mn = 2 n − 1 con n intero positivo. M2 = 22 − 1 = 3, M3 = 23 − 1 = 7, M4 = 25 − 1 = 31 ■ Se Mn è primo, allora anche n è primo. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 6 / 17 Teorema di Mersenne Definizione Storia Applicazioni Teorema di Mersenne Conclusione Un numero primo di Mersenne è un numero primo esprimibile come: Mn = 2 n − 1 con n intero positivo. M2 = 22 − 1 = 3, M3 = 23 − 1 = 7, M4 = 25 − 1 = 31 ■ Se Mn è primo, allora anche n è primo. Invece n primo non garantisce che Mn sia primo. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 6 / 17 Teorema di Mersenne Definizione Storia Applicazioni Teorema di Mersenne Conclusione Un numero primo di Mersenne è un numero primo esprimibile come: Mn = 2 n − 1 con n intero positivo. M2 = 22 − 1 = 3, M3 = 23 − 1 = 7, M4 = 25 − 1 = 31 ■ Se Mn è primo, allora anche n è primo. Invece n primo non garantisce che Mn sia primo. ■ Se Mn non è un numero primo, viene detto semplicemente numero di Mersenne. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 6 / 17 Test di Lucas-Lehmer Definizione Storia Applicazioni Test di Lucas-Lehmer Conclusione ■ Verifica della primalità dei primi di Mersenne ■ Dato Mp = 2p − 1, p-esimo numero di Mersenne ■ Esso è primo se e solo se divide Lp − 1, dove Ln è una successione ricorsiva ■ u Ln+1 = L2n − 2 u A partire da L1 = 4 Ne esistono anche versioni ottimizzate Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 7 / 17 Teorema di Wilson Definizione Storia Applicazioni Teorema di Wilson Conclusione ■ Dato numero primo p > 1 ■ (p − 1)! ≡ −1(mod p) u Ovvero, l’intero n ≥ 2 è primo se e solo se n divide (n − 1)! + 1. u Tale condizione è necessaria e sufficiente per stabilire se un numero n ≥ 2 è un numero primo. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 8 / 17 Teorema di Wilson Definizione Storia Applicazioni Teorema di Wilson Conclusione ■ Dato numero primo p > 1 ■ (p − 1)! ≡ −1(mod p) ■ u Ovvero, l’intero n ≥ 2 è primo se e solo se n divide (n − 1)! + 1. u Tale condizione è necessaria e sufficiente per stabilire se un numero n ≥ 2 è un numero primo. Limite per n grande è inutilizzabile Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 8 / 17 Solovay-Strassen P.T. (1/3) Definizione Storia Applicazioni Solovay-Strassen primality test (1/3) Conclusione ■ È un test di primalità ■ Sviluppato da Robert M.Solovay e Volker Strassen ■ È un test probabilistico per determinare se un numero è composto oppure probabilmente primo ■ Utilizzato nel sistema crittografico RSA ■ È poco utilizzato a vantaggio del test di Miller-Rabin Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 9 / 17 Solovay-Strassen P.T. (2/3) Definizione Storia Applicazioni Solovay-Strassen primality test (2/3) Conclusione Algoritmo 1. n è un numero dispari. Vogliamo sapere se n è primo Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 10 / 17 Solovay-Strassen P.T. (2/3) Definizione Storia Applicazioni Solovay-Strassen primality test (2/3) Conclusione Algoritmo 1. n è un numero dispari. Vogliamo sapere se n è primo 2. Scegliamo un numero casuale a, 1 < a < n. Se M CD(a, n) 6= 1 allora n non è primo Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 10 / 17 Solovay-Strassen P.T. (2/3) Definizione Storia Applicazioni Solovay-Strassen primality test (2/3) Conclusione Algoritmo 1. n è un numero dispari. Vogliamo sapere se n è primo 2. Scegliamo un numero casuale a, 1 < a < n. Se M CD(a, n) 6= 1 allora n non è primo 3. Calcoliamo i valori (n − 1) (mod n) ≡a 2 Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 10 / 17 Solovay-Strassen P.T. (2/3) Definizione Storia Applicazioni Solovay-Strassen primality test (2/3) Conclusione Algoritmo 1. n è un numero dispari. Vogliamo sapere se n è primo 2. Scegliamo un numero casuale a, 1 < a < n. Se M CD(a, n) 6= 1 allora n non è primo 3. Calcoliamo i valori (n − 1) (mod n) ≡a 2 J(a, n) oppure a n = e 1 a p1 ... Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti e k a pk Matematica del Discreto – 10 / 17 Simbolo di Jacobi Definizione Storia Applicazioni Simobolo di Jacobi Conclusione ■ ■ ■ Viene indicato con J(a, n) definito per una coppia di qualsiasi interi a, n è una funzione definita su un insieme ridotto di residui dei divisori di n, viene calcolato come 1. Se n è primo ed a è un residuo quadratico modulo n allora J(a, n) = 1 2. Se n è primo ed a non è un residuo quadratico modulo n allora J(a, n) = −1 3. Se n è composto allora J(a, n) = J(h, p1 ) × · · · J(h, pm ) dove p1 , . . . , pm sono i fattori primi di n. J(a, n) = k Y J(a, pi )ei i=0 Dove n è un intero positivo dispari mentre pe11 . . . pekk rappresentano la fattorizzazione di n. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 11 / 17 Solovay-Strassen P.T. (3/3) Definizione Storia Applicazioni Solovay-Strassen primality test (3/3) Conclusione Algoritmo cont. 4 Se 6= J allora n è composto Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 12 / 17 Solovay-Strassen P.T. (3/3) Definizione Storia Applicazioni Solovay-Strassen primality test (3/3) Conclusione Algoritmo cont. 4 Se 6= J allora n è composto 5 Altrimenti n è probabilmente primo con una probabilità maggiore o uguale del 50% Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 12 / 17 Solovay-Strassen P.T. (3/3) Definizione Storia Applicazioni Solovay-Strassen primality test (3/3) Conclusione Algoritmo cont. 4 Se 6= J allora n è composto 5 Altrimenti n è probabilmente primo con una probabilità maggiore o uguale del 50% 6 Esecuzione dei passi precedenti m volte: Se come output si ottiene “Composto” almeno una volta: output è “Composto” ■ Se come output si ottiene “Probabilmente primo” in tutti le m prove; output è “Primo” ■ Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 12 / 17 Miller-Rabin primality test (1/2) Definizione Storia Applicazioni Miller-Rabin primality test (1/2) Conclusione ■ Prova se un numero è primo o composto ■ Il risultato ottenuto è associato ad un certo grado di probabilità ■ La dimostrazione si basa su Fermat Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 13 / 17 Miller-Rabin primality test (2/2) Definizione Storia Applicazioni Miller-Rabin primality test (2/2) Conclusione Algoritmo Inputs: n un valore intero dispari da testare Output: composto se n è composto, altrimenti probabilmente primo Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 14 / 17 Miller-Rabin primality test (2/2) Definizione Storia Applicazioni Miller-Rabin primality test (2/2) Conclusione Algoritmo Inputs: n un valore intero dispari da testare Output: composto se n è composto, altrimenti probabilmente primo ■ esprimi n - 1 come 2s · d fattorizzando le potenze da 2 a n - 1 Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 14 / 17 Miller-Rabin primality test (2/2) Definizione Storia Applicazioni Miller-Rabin primality test (2/2) Conclusione Algoritmo Inputs: n un valore intero dispari da testare Output: composto se n è composto, altrimenti probabilmente primo ■ esprimi n - 1 come 2s · d fattorizzando le potenze da 2 a n - 1 ■ ripeti per tutte le a comprese [2, min(n − 1, b2(ln n)2 c)]: Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 14 / 17 Miller-Rabin primality test (2/2) Definizione Storia Applicazioni Miller-Rabin primality test (2/2) Conclusione Algoritmo Inputs: n un valore intero dispari da testare Output: composto se n è composto, altrimenti probabilmente primo ■ esprimi n - 1 come 2s · d fattorizzando le potenze da 2 a n - 1 ■ ripeti per tutte le a comprese [2, min(n − 1, b2(ln n)2 c)]: u d 2r ·d Se ((a mod n 6= 1) ∧ (a mod n 6= −1)) per ogni intero r compreso nell’intervallo [0, s-1] allora ritorna composto Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 14 / 17 Miller-Rabin primality test (2/2) Definizione Storia Applicazioni Miller-Rabin primality test (2/2) Conclusione Algoritmo Inputs: n un valore intero dispari da testare Output: composto se n è composto, altrimenti probabilmente primo ■ esprimi n - 1 come 2s · d fattorizzando le potenze da 2 a n - 1 ■ ripeti per tutte le a comprese [2, min(n − 1, b2(ln n)2 c)]: d 2r ·d u Se ((a mod n 6= 1) ∧ (a mod n 6= −1)) per ogni intero r compreso nell’intervallo [0, s-1] allora ritorna composto u altrimenti ritorna (probabilmente primo); Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 14 / 17 Numeri Buoni Definizione Storia Applicazioni Numeri Buoni Conclusione ■ Introdotti da Erdös e Strauss ■ Un numero primo p(n) è buono se: p(n) 2 > p(n − i)p(n + i) per tutti i valori di i da 1 a n − 1 ■ L’infinita sequenza di numeri primi buoni comincia con: 5 − 11 − 17 − 29 · · · Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 15 / 17 Numeri Sexy Definizione Storia Applicazioni Numeri Sexy Conclusione ■ Un numero è tale quando n e n + 6 sono entrambi primi ■ “Sexy” proviene dal latino “sex” ■ Le prime coppie di numeri sexy sono: 5 − 11 − 11 − 17 − 13 − 19 − 17 − 23 − · · · ■ Si possono inoltre trovare le coppie di numeri sexy ma anche le triple e quadruple; ma non esistono sextuple. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 16 / 17 Conclusione Definizione Storia Applicazioni Conclusione Il progetto comprendente: ■ ■ ■ Presentazione Relazione Applet JAVA è stato realizzato per l’esame di matematica del discreto; docente: Laura Citrini, durante l’anno accademico 2005-2006. Andrea Gardoni, Filippo Gandaglia, Luigi Margheritti, Massimo Manara. Filippo Gandaglia - Massimo Manara - Andrea Gardoni - Luigi Margheritti Matematica del Discreto – 17 / 17