Lezioni di Aritmetica Modulare Antonino Salibra Università Ca Foscari Venezia 31 Ottobre 2017 Nel seguito indicheremo con Z l insieme dei numeri interi. Scriveremo talvolta a b al posto di a divide b. Questo significa che esiste c Z tale che b = ac. Ricordiamo che ogni numero intero divide 0. 1. Massimo comun divisore Lemma 1.1. Dati due interi a e b con b 0, esiste un unica coppia di interi q (quoziente) ed r (resto) tali che a = bq + r con 0 r < b, dove b è il valore assoluto di b. Proof. Consideriamo l insieme A = {a bz : z Z}. Sia r il minimo elemento positivo di A. Allora esiste q Z tale che a = bq + r. Se fosse r > b, allora 0 < r b < r. Se b > 0, allora a = b(q + 1) + (r b), mentre se b < 0 allora a = b(q 1) + (r b ). In ogni caso, r non sarebbe il minimo elemento positivo di A. Contraddizione. Example 1.1. Se a = 17 e b = 3, allora 17 = ( 3)( 5) + 2. Se a = 17 e b = 3 allora 17 = ( 3)6 + 1. Se a 1,..., a n sono interi, allora a 1 Z + + a n Z denota l insieme di tutti gli interi che hanno la forma x 1 a 1 + + x n a n per opportuni x 1,..., x n Z. Se a Z, allora az = {ka : k Z} è l insieme dei multipli di a. L insieme a 1 Z + + a n Z si chiama ideale generato da a 1,..., a n. Consideriamo due esempi: 2Z + 3Z = Z perché 1 = 3 2 e quindi un arbitrario intero x si scrive come 3x + 2( x), mentre lasciamo al lettore la verifica che l ideale 4Z + 10Z è l insieme dei numeri pari. Lemma 1.2. 1. a b 1,..., a b n sse b 1 Z + + b n Z az. 2. a = ±b sse bz = az. In particolare, abbiamo: b è un multiplo di a sse bz az e a divide b sse az bz Lemma 1.3. Siano a e b numeri interi non entrambi nulli. Allora az + bz = dz, dove d è il minimo intero positivo che appartiene all ideale az + bz. 1
Lezioni di Aritmetica Modulare 2 Proof. Da d az + bz si ricava d = xa + yb per opportuni x, y Z. Quindi ogni multiplo di d si scrive come kd = (kx)a + (ky)b, da cui si ha dz az + bz. Viceversa, proviamo che az+bz dz. Sia c az+bz, ossia c = za+tb per opportuni z, t. Dividendo c per d si ottiene c = dq + r per opportuni q ed r tali che 0 r < d. Sostituendo c = za + tb e d = xa + yb si ricava: za + tb = qxa + qyb + r. Quindi r = (z qx)a + (t qy)b az + bz. Siccome d è il minimo intero positivo in az + bz, si deduce r = 0 e quindi c = dq dz. Lemma 1.4. Siano a e b numeri interi. Allora esiste un unico numero d 0 che verifica le seguenti proprietà: (i) d a e d b; (ii) Se c a e c b, allora c d. Se a, b sono non entrambi nulli, allora dz = az + bz. Proof. Se a = 0 oppure b = 0, allora d = 0, perché 0 è l unico numero intero che ammette come divisori tutti i numeri interi. Se a, b sono non entrambi nulli, applichiamo il Lemma 1.3 per ottenere dz = az + bz. Allora, (i) segue da a, b az + bz = dz. (ii) Dall ipotesi c a e c b segue che a, b cz e quindi dz = az + bz cz. Ossia c divide d. Si noti che, se non utilizzassimo la teoria degli ideali, non sarebbe banale provare la proprietà (ii) del precedente lemma. Definition 1.1. Il massimo comun divisore (MCD) di a e b è il più grande divisore comune di a e b. Il massimo comun divisore di a e b coincide con l unico numero determinato dal Lemma 1.4. Verrà indicato con MCD(a, b) oppure con (a, b). Abbiamo (a, b) = ( a, b ), dove a e b sono il valore assoluto di a e b rispettivamente. Dal Lemma 1.4 segue che (0, 0) = 0. Due numeri interi a, b si dicono relativamente primi se (a, b) = 1. Un metodo efficiente di calcolo del massimo comun divisore è l algoritmo di Euclide. Lemma 1.5. Siano a e b interi con b 0 e sia a = bq + r con 0 r < b. Allora (a, b) = (b, r). Proof. Abbiamo per ipotesi che bz + rz az + bz, perché r = a bq az + bz. L altra inclusione az + bz bz + rz vale, perché a = bq + r. Allora, applicando il Lemma 1.4 si ottiene la conclusione: (b, r)z = bz + rz = az + bz = (a, b)z. Euclide(int a, int b) : int {int r; while (b 0) do //ripetere finché non riduciamo b a zero begin r := a%b //resto della divisione di a per b;
Lezioni di Aritmetica Modulare 3 a := b; b := r; end; return a; //quando b diventa 0, il risultato è a L algoritmo consiste in una serie di divisioni con resto: a = b q 1 + r 2 0 r 2 < b b = r 2 q 2 + r 3 0 r 3 < r 2 r 2 = r 3 q 3 + r 4 0 r 4 < r 3 r 3 = r 4 q 4 + r 5 0 r 5 < r 4... r t 2 = r t 1 q t 1 + r t 0 r t < r t 1 r t 1 = r t q t Allora r t = (a, b) (1) Dati due naturali a, b con a > b, allora c(a, b) è il numero di volte che calcoliamo la divisione con resto nell algoritmo di Euclide per ottenere (a, b). Per esempio, c(a, 1) = 1 per ogni a > 1. Example 1.2. (134, 36) = (36, 26) = (26, 10) = (10, 6) = (6, 4) = (4, 2) = (2, 0). In tal caso, c(134, 36) = 6. Example 1.3. La successione di Fibonacci è definita ricorsivamente come segue: F 0 = 1; F 1 = 1; F n = F n 1 + F n 2. I primi elementi della successione sono: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,.... Il centesimo numero di Fibonacci è F 100 = 354224848179261915075. Se dividiamo F n+1 per F n otteniamo proprio la relazione F n+1 = F n + F n 1, cioé il quoto è 1 ed il resto è F n 1 < F n. F n+1 e F n sono relativamente primi: (F n+1, F n ) = (F n, F n 1 ) = (F n 1, F n 2 ) = = (F 2, F 1 ) = 1. n = c(f n+1, F n ) è il numero di volte che calcoliamo la divisione con resto. Per definizione log 2 (b) è uguale al numero reale x tale che 2 x = b. Lemma 1.6. Siano a > b interi positivi. Il numero di volte che iteriamo la divisione con resto nell algoritmo di Euclide è al più 2log 2 (b) + 1. Proof. Siano r 0 = a e r 1 = b e r 0 = r 1 q 1 + r 2 0 r 2 < r 1 r 1 = r 2 q 2 + r 3 0 r 3 < r 2 r 2 = r 3 q 3 + r 4 0 r 4 < r 3 r 3 = r 4 q 4 + r 5 0 r 5 < r 4... r t 2 = r t 1 q t 1 + r t 0 r t < r t 1 r t 1 = r t q t (2)
Lezioni di Aritmetica Modulare 4 Allora r i > 2r i+2, per ogni i 0. Infatti, (3) r i = r i+1 q i+1 + r i+2 0 r i+2 < r i+1 r i+1 + r i+2 r i > r i+1 da cui segue q i+1 1 > 2r i+2 r i+2 < r i+1 Iterando il procedimento si ottiene: b = r 1 > 2r 3 > 2 2 r 5 > > 2 k r 2k+1. Se 2 k > b segue che r 2k+1 < 1, ossia r 2k+1 = 0. In termini dell algoritmo di Euclide (2) si ha r t+1 = 0, così abbiamo t + 1 2k + 1, da cui t 2k. Inoltre vi sono esattamente t divisioni effettuate in (2), così l algoritmo di Euclide termina in al più 2k iterazioni. Consideriamo il più piccolo k tale che 2 k b > 2 k 1. Allora si ha: numero di iterazioni 2k = 2(k 1) + 2 < 2log 2 (b) + 2. Lemma 1.7. Siano a, b numeri interi non entrambi nulli. Allora esistono interi x e y tali che ax + by = (a, b). Proof. Dal Lemma 1.3 segue az + bz = (a, b)z, dove (a, b) è il massimo comun divisore di a, b. Osservazione: Siano a, b interi non entrambi nulli. Allora l equazione lineare ax + by = 0 rappresenta la retta dei vettori (x, y) che sono ortogonali al vettore (a, b). Il Lemma 1.3 afferma che la retta ax + by = c parallela alla retta ax + by = 0 passa attraverso dei punti che hanno coordinate intere sse c è un multiplo di (a, b). Theorem 1.1. (Proprietà di Bézout) Siano a, b, c numeri interi e sia d = (a, b) il massimo comun divisore di a, b. Allora l equazione lineare ax + by = c ha soluzioni intere sse d c. Proof. Dal Lemma 1.3 si ha az + bz = dz. Quindi c az + bz sse c dz. Example 1.4. Trovare una soluzione intera dell equazione 240x + 36y = 12. Possiamo dividere tutti i coefficienti per 12 ed ottenere 20x + 3y = 1. Siccome 20 e 3 sono relativamente primi (cioé (20, 3) = 1) allora le soluzioni intere di 20x + 3y = 1 esistono. Si vede facilmente che x = 1 e y = 7 è una soluzione di 20x + 3y = 1. La stessa soluzione risolve 240x + 36y = 12. Example 1.5. Trovare una soluzione intera dell equazione 120x + 81y = 12. Dividendo per 3 si ottiene 40x + 27y = 4. Siccome 40 e 27 sono relativamente primi (cioé (40, 27) = 1) allora le soluzioni intere di 40x + 27y = 1 esistono. Applichiamo l algoritmo di Euclide per il calcolo del massimo comun divisore: 40 = 27 + 13 e 27 = 13 2 + 1. Quindi 1 = 27 13 2 = 27 (40 27) 2 = 27 40 2 + 27 2 = ( 2)40 + 27 3. Quindi una soluzione intera dell equazione 40x + 27y = 4 è: x = 8, y = 12. Le stesse soluzioni funzionano per l equazione lineare 120x + 81y = 12. Example 1.6. Non esistono soluzioni intere dell equazione 6x + 2y = 5, perché 2 = (6, 2) non divide 5.
Lezioni di Aritmetica Modulare 5 1.1. Massimo comun divisore e matrici Ricordiamo che il minimo comune multiplo di due numeri interi a e b è il più piccolo naturale k tale che a k e b k. È denotato da mcm(a, b). Sia a > b > 0. Consideriamo il sistema lineare [ ] [ ] [ ] 1 0 x a = (4) 0 1 y b [ ] a Esso ammette banalmente come unica soluzione il vettore. Sappiamo anche che ogni b sistema lineare, che si ottiene dal sistema (4) applicando alla matrice completa [ ] 1 0 a A = 0 1 b le regole del metodo di eliminazione di Gauss (scambio di due righe; sostituzione di una riga con la somma della riga stessa [ ] con un altra moltiplicata per uno scalare r) ammette a come unica soluzione il vettore. b Se a = bq + r con 0 r < b, si sottrae alla prima riga q volte la seconda riga e poi si scambiano la prima e la seconda riga: [ ] [ ] [ ] [ ] 1 0 a 1 q a bq 1 q r 0 1 b = 0 1 b 0 1 b 0 1 b 1 q r Siccome b > r, si procede in maniera simile fino a quando nella terza colonna della matrice non appare uno 0 in posizione A 23. Alla fine otterremo una matrice [ c d ] n e f 0 per cui il sistema lineare [ c d e f [ ] a ha come unica soluzione il vettore. b [ ] [ ] c d a = e f b ] [ x y ] = [ ] n 0 [ ] ca + db = ea + fb [ ] n 0
Lezioni di Aritmetica Modulare 6 L algoritmo è il seguente. Matrice(nat a, nat b) {matrix [ A; nat] q, z} 1 0 a A := ; 0 1 b while (A 23 0) do //ripetere finché non riduciamo A 23 a zero begin q := A 13 A 23 //quoto della divisione A 13 = A 23 q + r con resto 0 r < A 23 ; for i := 1 to 3 do A 1i := A 1i qa 2i ; //Sottrai q volte la riga 2 dalla riga 1 di A ; for i := 1 to 3 do z := A 1i ; A 1i := A 2i ; A 2i := z; Scambia le righe 1 e 2 della matrice A; end; return A 13 = A 11 a + A 2 b; // A 23 = 0 implica (a, b) = A 13 = A 11 a + A 12 b return A 21 a = A 22 b; // A 23 = 0 implica mcm(a, b) = A 21 a = A 22 b Example 1.7. Calcoliamo il massimo comun divisore e il minimo comune multiplo di 53 e 71 con il metodo matriciale: [ ] [ ] [ ] 1 0 71 0 1 53 1 1 18 0 1 53 1 1 18 2 3 17 [ ] [ ] 2 3 17 3 4 1 3 4 1 53 71 0 Quindi, [ ] [ ] 3 4 71 53 71 53 da cui = [ ] 3 71 4 53 = 53 71 + 71 53 [ ] 1 0 (71, 53) = 1 = 3 71 4 53; mcm(71, 53) = 71 53. Example 1.8. (134, 36) = (26, 36) = (26, 10) = (6, 10) = (6, 4) = (2, 4) = (2, 0) perché [ ] [ ] [ ] [ ] 1 0 134 0 1 36 1 3 26 1 4 10 0 1 36 1 3 26 1 4 10 3 11 6 [ ] [ ] [ ] 3 11 6 4 15 4 7 26 2 4 15 4 7 26 2 18 67 0 Quindi, [ ] [ ] 7 26 134 18 67 36 da cui = [ ] 7 134 26 36 = 18 134 + 67 36 (134, 36) = 2 = 7 134 26 36; mcm(134, 36) = 67 36 = 18 134 = 2412. Example 1.9. Calcoliamo il massimo comun divisore di numeri di Fibonacci consecutivi (si veda esempio 1.3). Poniamo F 2 = 1 e F 1 = 0. [ ] [ ] [ ] [ ] 1 0 Fn 0 1 Fn 1 1 1 Fn 2 1 2 Fn 3 0 1 F n 1 1 1 F n 2 1 2 F n 3 2 3 F n 4 [ ] 2 0
Lezioni di Aritmetica Modulare 7 [ ] [ ] [ ] 2 3 Fn 4 3 5 Fn 5 5 8 Fn 6... 3 5 F n 5 5 8 F n 6 8 13 F n 7 Si noti che i numeri 2, 3, 5, 8, 13,... che compaiono nella matrice sono numeri di Fibonacci. In altri termini, [ ] [ ] [ ] [ ] F 2 F 1 F n F 1 F 0 F n 1 F0 F 1 F n 2 F1 F 2 F n 3 F 1 F 0 F n 1 F 0 F 1 F n 2 F 1 F 2 F n 3 F 2 F 3 F n 4 [ ] [ ] [ ] F2 F 3 F n 4 F3 F 4 F n 5 F4 F 5 F n 6... F 3 F 4 F n 5 F 4 F 5 F n 6 F 5 F 6 F n 7 Si noti che ad ogni passo abbiamo F 2i F n F 2i+1 F n 1 = F n (2i+2) ; F 2i 1 F n F 2i F n 1 = F n (2i+1) Se n è pari e 2i + 2 = n si ha Se n è dispari e 2i + 1 = n si ha 1 = F 0 = F n 2 F n F 2 n 1. F 2 n 1 F n 2 F n = 1 = (F n, F n 1 ); F n 1 F n F n F n 1 = F 1 = 0; mcm(f n, F n 1 ) = F n 1 F n L algoritmo di Euclide ed i numeri di Fibonacci sono collegati come segue. Siano r 0 = a > r 1 = b due numeri interi positivi arbitrari. Allora, r 0 = r 1 q 1 + r 2, 0 r 2 < r 1. Da r 1 = r 2 q 2 + r 3, 0 r 3 < r 2. e da q 2 > 0 si ottiene Similmente, Da q 3 > 0 si ottiene e quindi In generale abbiamo b = r 1 > r 2 + r 3 > 2r 3 r 2 = r 3 q 3 + r 4, 0 r 4 < r 3. r 2 > r 3 + r 4 > 2r 4 b = r 1 > r 2 + r 3 > 2r 3 + r 4 = F 2 r 3 + F 1 r 4 > 3r 4 = F 3 r 4. dove F n è l ennesimo numero di Fibonacci. b = r 1 > F n 1 r n + F n 2 r n+1 > F n r n+1,
Lezioni di Aritmetica Modulare 8 Figure 1. Aritmetica dell orologio 2. L aritmetica dell orologio L aritmetica modulare (o aritmetica dell orologio) è stata introdotta da Gauss ad inizio ottocento. Consideriamo un orologio con n > 0 tacche che corrispondono ad i numeri da 0 a n 1 (Si veda la figura per il caso n = 9). Indichiamo con Z n = {0, 1,..., n 1}. Scorriamo l orologio in senso orario partendo da 0. Una mossa +1 consiste nello spostarsi in senso orario dalla tacca in cui ci troviamo alla tacca successiva. La mossa +1 corrisponde all operazione di aggiungere 1. Quando arriviamo al numero n 1 ed eseguiamo una ulteriore mossa +1, scopriamo che (n 1) + 1 = 0 anziché (n 1) + 1 = n. Quindi, contrariamente ai numeri naturali, il numero 0 è il successore del numero n 1 e la funzione determinata dalle mosse +1 definisce una funzione bigettiva dall insieme Z n nell insieme Z n. Viceversa, scorriamo l orologio in senso antiorario partendo da 0. Una mossa 1 consiste nello spostarsi in senso antiorario dalla tacca in cui ci troviamo alla tacca precedente. La mossa 1 corrisponde a sottrarre 1. Quindi 0 1 = n 1 anziché essere indefinito come avviene nell aritmetica dei numeri naturali. La funzione determinata dalle mosse 1 definisce una funzione bigettiva dall insieme Z n nell insieme Z n. Essa è la funzione inversa della funzione determinata dalle mosse +1. Come possiamo rappresentare un intero a nell orologio? Adottiamo due strategie diverse se a è positivo oppure negativo. Se a è positivo, eseguiamo esattamente un numero di mosse +1 pari ad a volte partendo da 0. La tacca in cui ci troviamo rappresenta il numero intero positivo a nell orologio. Se a è negativo, eseguiamo esattamente un numero di mosse 1 pari a a volte partendo da 0. La tacca in cui ci troviamo rappresenta il
Lezioni di Aritmetica Modulare 9 numero intero negativo a nell orologio. In entrambi i casi la tacca del numero a rappresenta il numero mod n (a) che è il resto della divisione di a per n. Esso è un numero naturale compreso tra 0 e n 1. Notazione: Talvolta scriviamo a mod n al posto di mod n (a). Definiamo la somma + n (modulo n) ed il prodotto n (modulo n) sui numeri interi come segue: a + n b = mod n (a + b); a n b = mod n (ab). Il risultato della somma e del prodotto è sempre un valore compreso tra 0 e n 1, quindi rappresentabile nell orologio. Lemma 2.1. L insieme Z n = {0, 1,..., n 1} è chiuso rispetto alle operazioni di somma + n e prodotto n. Per semplificare i conti, utilizziamo la seguente proposizione Proposition 2.1. Valgono le seguenti uguaglianze (a, b Z): 1. mod n (a + b) = mod n (mod n (a) + mod n (b)); 2. mod n (ab) = mod n (mod n (a) mod n (b)). Example 2.1. Sia n = 9. Allora mod 9 (95 37) = mod 9 (mod 9 (95)+mod 9 (37)) = mod 9 (5 2) = mod 9 (10) = 1. Se non avessimo utilizzato la proposizione avremmo dovuto calcolare mod 9 (3515), che è più difficile specialmente se n è grande. Se ci restringiamo ad i numeri compresi tra 0 e n 1, possiamo anche definire la somma + n come segue (0 a, b < n): a se b = 0 a + n b = a + 1 se b = 1 (a + n (b 1)) + 1 se b 0, 1. Example 2.2. 7 + 9 3 = (7 + 9 2) + 1 = ((7 + 9 1) + 1) + 1 = ((7 + 1) + 1) + 1 = (8 + 1) + 1 = 0 + 1 = 1. Possiamo definire il prodotto n sui numeri tra 0 e n 1 utilizzando la somma modulare + n : 0 se b = 0 a n b = a se b = 1 (a n (b 1)) + n a se b 0, 1. Example 2.3. 7 9 3 = (7 9 2) + 9 7 = ((7 9 1) + 9 7) + 9 7 = (7 + 9 7) + 9 7 = 5 + 9 7 = 3. Nella parte finale abbiamo applicato la definizione della somma + 9 per arrivare al risultato finale 3. L aritmetica dell orologio è correlata alla teoria delle congruenze che introduciamo nella prossima sezione.
Lezioni di Aritmetica Modulare 10 3. Congruenze Le tacche numerate dell orologio della sezione precedente sono i rappresentanti delle n classi di equivalenza di una relazione di equivalenza n definita sugli interi. Nella prossima definizione definiamo la relazione n. Definition 3.1. Sia n > 0. Diciamo che a, b Z sono congruenti modulo n, e scriviamo se mod n (a) = mod n (b). a b (mod n) oppure a n b, Quindi abbiamo a n b se il resto della divisione di a per n è uguale al resto della divisione di b per n. Lemma 3.1. Sia n > 0 e siano a e b numeri interi. Allora, a n b sse n divide b a. Proof. Supponiamo che a n b. Allora, dividendo a e b per n, si ha: a = q 1 n + r e b = q 2 n + r con 0 r < n. Ne segue che b a è divisibile per n: b a = n(q 2 q 1 ). Per la direzione opposta, supponiamo che b a = nt per un opportuno t Z. Dividiamo sia a che b per n: a = q 1 n + r 1 e b = q 2 n + r 2 con 0 r 1, r 2 < n. Allora, b a = n(q 2 q 1 ) + (r 2 r 1 ) = nt, da cui segue r 2 r 1 = n(t + q 1 q 2 ). Ma r 2 r 1 < n. Quindi l unica possibilità è che r 1 = r 2. Lemma 3.2. La relazione n è una relazione di equivalenza su Z che è compatibile rispetto alle operazioni di addizione, moltiplicazione e esponenziazione di interi: (i) a n b c n d a + c n b + d. (ii) a n b c n d ac n bd. (iii) a n b a k n b k. Proof. Sia mod n (a) = mod n (b) e mod n (c) = mod n (d). (i) Sia Dalla Proposizione 2.1(1) e dall ipotesi si ha: mod n (a + c) = mod n (mod n (a) + mod n (c)) = mod n (mod n (b) + mod n (d)) = mod n (b + d). (ii) La prova è simile a quella del punto (i). (iii) La prova è per induzione su k utilizzando (ii). La relazione n partiziona Z in n classi di equivalenza. Se a è un intero scriveremo [a] n per la classe di equivalenza di a modulo l equivalenza n. Ecco la partizione determinata da n : [0] n = {kn : k Z}; [1] n = {1 + kn : k Z};... [n 1] n = {(n 1) + kn : k Z}. Scegliamo come rappresentanti delle classi di equivalenza i numeri 0, 1, 2,..., n 1. Questi numeri corrispondono alle tacche di un orologio che segna le ore da 0 sino ad n 1 (si veda la figura con n = 4). Le operazioni di somma + n e prodotto n, definite nella sezione precedente, agiscono sulle classi di equivalenza modulo n tramite i loro rappresentanti.
Lezioni di Aritmetica Modulare 11 Figure 2. Aritmetica dell orologio modulo 4 Proposition 3.1. L insieme Z n = {0, 1, 2,..., n 1} con le operazioni di somma + n e prodotto n modulo n (come definite nella sezione precedente nel caso n = 9) costituisce un anello commutativo con unità. (Z n, + n, 0) è un gruppo commutativo rispetto alla somma: Proprietà associativa: (x + n y) + n z = x + n (y + n z); Proprietà commutativa: x + n y = y + n x; Elemento neutro: x + n 0 = x = 0 + n x; Opposto: x + n ( x) = 0 = ( x) + n x. (Z n, n, 1) è un monoide commutativo rispetto al prodotto: Proprietà associativa: (x n y) n z = x n (y n z); Proprietà commutativa: x n y = y n x; Elemento neutro: x n 1 = x = 1 n x; Il prodotto distribuisce rispetto alla somma: x n (y + n z) = (x n y) + n (x n z). Nei prossimi due lemmi studiamo proprietà di cancellazione e periodicità delle potenze. Lemma 3.3. Proprietà di cancellazione: ac n bc (c, n) = 1 a n b.
Lezioni di Aritmetica Modulare 12 Proof. Dal Lemma 1.7 e dall ipotesi (c, n) = 1 esistono interi x e y tali che cx + ny = 1. Siccome cx = n( y) + 1, allora cx n 1. Dal Lemma 3.2(ii) si ricava acx n a e bcx n b. Dall ipotesi ac n bc segue che acx n bcx. Quindi a n b. Lemma 3.4. Sia n > 0 ed a un intero. La sequenze di potenze modulo n a 0 a 1 a 2 a 3 a 4 a 5 a 6... 1 mod n (a 1 ) mod n (a 2 ) mod n (a 3 ) mod n (a 4 ) mod n (a 5 ) mod n (a 6 )... è periodica a partire da un certo punto in poi: esistono k e p n tali che a k n a k+rp per ogni r 0. Example 3.1. Calcoliamo le potenze del 3 modulo 7: 3 0 3 1 3 2 3 3 3 4 3 5 3 6 1 3 2 6 4 5 1 Il periodo è 6. Per esempio 3 2 3 8. Infatti 3 8 = 3 2 3 6 7 3 2. Example 3.2. Calcoliamo le potenze del 2 modulo 8: Il periodo è 1 a partire da 2 3. 2 0 2 1 2 2 2 3 2 4 1 2 4 0 0 Concludiamo la sezione con una serie di esempi che provano l utilità della Proposizione 2.1 e dell aritmetica modulare. Example 3.3. Vogliamo calcolare qual è il resto della divisione di 95758 per 5. Siccome 10 è divisibile per 5, si ha che 95758 = 8 + 5 10 + 7 10 2 + 5 10 3 + 9 10 4 5 8 5 3. Example 3.4. Vogliamo calcolare qual è il resto della divisione di 95758 per 7. Siccome 10 è 3 modulo 7, si ha che 95758 = 8 + 5 10 + 7 10 2 + 5 10 3 + 9 10 4 7 1 + 5 3 + 0 3 2 + 5 3 3 + 2 3 4 7 1 + 15 + 5 3 2 3 + 2 3 2 3 2 7 1 + 1 + 5 2 3 + 2 2 2 7 2 + 2 + 1 = 5 Example 3.5. Vogliamo determinare mod 5 (95758 37988). Piuttosto che eseguire prima la moltiplicazione e poi il calcolo del resto della divisione per 5, calcoliamo direttamente il resto della divisione di 95758 per 5 ed il resto della divisione di 37988 per 5. Si ha: mod 5 (95758) = 3 e mod 5 (37988) = 3. Quindi mod 5 (95758 37988) = 4. Example 3.6. Calcoliamo 3 128 modulo 7. Siccome 3 3 = 27 7 1, allora 3 128 = 3 3 42+2 = (3 3 ) 42 3 2 7 ( 1) 42 2 = 2.
Lezioni di Aritmetica Modulare 13 4. Teoremi di Fermat e di Wilson Pierre de Fermat, uno dei matematici più importanti dell ultimo millennio, è nato il 17 agosto 1601 a Beaumont-de-Lomagne (Francia) ed è morto il 12 gennaio 1665 a Castres. Era magistrato di professione e si occupava di matematica nel tempo libero. Presentiamo qui di seguito uno dei suoi risultati più importanti. Theorem 4.1. (Piccolo Teorema di Fermat) Se p è un numero primo e p non divide a, allora a p 1 p 1. Proof. Consideriamo i seguenti multipli positivi di a: a, 2a, 3a,..., (p 1)a. Nessuno di questi numeri è congruente ad un altro modulo p: se na p ma allora dal Lemma 3.3 potremmo cancellare a ed ottenere m p n, che è impossibile in quanto 1 n, m p 1. Quindi i numeri a, 2a, 3a,..., (p 1)a modulo p corrispondono in un qualche ordine ai numeri 1, 2, 3,..., p 1. Si ha quindi: da cui a 2a 3a (p 1)a p 1 2 3 (p 1) a p 1 (p 1)! p (p 1)! Cancellando (p 1)!, che non è divisibile per p, da entrambi i membri otteniamo la conclusione 1. Corollary 4.1. Se p è primo, allora a p p a. Example 4.1. Vogliamo calcolare 5 236 modulo 13. Applicando il Piccolo Teorema di Fermat sappiamo che 5 12 13 1. Quindi 5 236 = 5 12 19+8 = (5 12 ) 19 5 8 13 1 19 5 8 = 5 8 = (5 2 ) 4 13 ( 1) 4 = 1 Theorem 4.2. Se p e q sono primi distinti tali che a p q a e a q p a, allora a pq pq a. Proof. Dal Corollario 4.1 si ha (a p ) q q a p e (a q ) p p a q. Per ipotesi a p q a e a q p a, quindi a pq q a e a pq p a. In conclusione p a pq a e q a pq a e quindi pq a pq a. 1 Un altra prova del Piccolo Teorema di Fermat si ottiene per induzione su a come segue. La base dell induzione a = 1 è ovvia. Supponiamo vero il teorema per a e dimostriamolo per a + 1: Siccome (a + 1) p = p! i!(p i)! p 0 per ogni 1 i p 1 si ha: perché per ipotesi di induzione a p p a. p p! ( i!(p i)! )ai i=0 (a + 1) p p a p + 1 p a + 1.
Lezioni di Aritmetica Modulare 14 Example 4.2. Consideriamo p = 11 e q = 31 numeri primi. Allora 2 11 = 2 2 10 = 2 2 5 2 5 31 2 1 1 = 2. Per il Piccolo Teorema di Fermat si ha anche: 2 31 = 2(2 10 ) 3 11 2 1 3 = 2. Applicando il teorema precedente si ha 2 11 31 11 31 2 che si può anche scrivere 2 341 341 2. Theorem 4.3. Se p è un numero primo, allora (Z p, + p, 0, p, 1) è un campo numerico. Proof. Dalla Proposizione 3.1 dobbiamo soltanto provare che ogni elemento a Z p ha un inverso. La conclusione segue dal Piccolo Teorema di Fermat perché Quindi a p 2 è l inverso di a. aa p 2 p 1. Theorem 4.4. (Teorema di Wilson) Se p è primo, allora (p 1)! p 1. Proof. Supponiamo p > 3 primo. Sia 1 a p 1. Consideriamo la congruenza lineare ax p 1. Siccome a e p sono relativamente primi, questa congruenza ammette un unica soluzione modulo p. Quindi esiste un unico a con 1 a p 1 tale che aa p 1. Dal fatto che p è primo segue che a = a soltanto per a = 1 e a = p 1. Infatti la congruenza quadratica a 2 p 1 si scrive a 2 1 = (a 1)(a + 1) p 0. Si ricava a = 1 oppure p a + 1 da cui a = p 1. Da tutto questo segue che 2 3 (p 2) p 1 che si scrive anche Quindi (p 2)! p 1. (p 1)! = (p 1) (p 2)! p p 1 p 1. Chiudiamo questa sezione con una applicazione del Teorema di Wilson allo studio delle congruenze quadratiche. Theorem 4.5. Sia p un numero primo dispari. La congruenza quadratica x 2 p 1 ammette una soluzione modulo p sse p 4 1.
Lezioni di Aritmetica Modulare 15 Proof. () Supponiamo che esista a tale che a 2 p 1. Ricordiamo che p 1 è un numero pari. Dal Piccolo Teorema di Fermat abbiamo: 1 p a p 1 = (a 2 ) p 1 2 p ( 1) p 1 2. Ne segue che p 1 è pari e quindi p 1 è divisibile per 4. In altri termini, p 2 4 1. ( ) Supponiamo che p 4 1. Dal Teorema di Wilson abbiamo (p 1)! p 1. Siccome p 1 è pari, allora possiamo dividere i numeri da 1 a p 1 in due parti equinumeriche: 2 i numeri da 1 a p 1 2 2,..., p+1 2 p p 1 p+1, ed i numeri da a p 1. Abbiamo che p 1 2 p 1, p 2 p. Quindi 2 1 p (p 1)! p ( p 1 p 1 )!( 1) 2 p 1 2 ( 2 )! = (p 1 2!)2. 5. Teorema di Eulero Leonhard Euler, noto in Italia come Eulero, è stato il più importante matematico del diciottesimo secolo. Eulero è nato il 15 aprile 1707 a Basilea in Svizzera ed è morto il 18 settembre 1783 a San Pietroburgo in Russia. Si definisca la seguente funzione di Eulero: φ(n) = numero di interi positivi n che sono relativamente primi con n. Example 5.1. Se n è primo, φ(n) = n 1. Ecco altri esempi: φ(8) = 4 e φ(14) = 6. Lemma 5.1. n è primo sse φ(n) = n 1. Proof. Se φ(n) = n 1 allora tutti i numeri da 1 a n 1 sono primi con n. Quindi, n è primo. Lemma 5.2. Se p è primo, allora φ(p k ) = p k p k 1 = p k (1 1 p ). Proof. Si ha: (a, p k ) = 1 sse p a. Vi sono p k 1 interi tra 1 e p k che sono divisibili per p: p, 2p, 3p,..., (p k 1 )p. Quindi l insieme {1, 2,..., p k } contiene p k p k 1 interi relativamente primi con p. Per esempio, φ(9) = φ(3 2 ) = 3 2 3 1 = 6. Lemma 5.3. Se a e b sono relativamente primi, allora φ(ab) = φ(a)φ(b). Proposition 5.1. Sia n > 0. L insieme degli interi relativamente primi con n è chiuso rispetto all operazione di moltiplicazione (modulo n) e costituisce un gruppo moltiplicativo. Proof. Sia (a, n) = 1 e (b, n) = 1. Allora si vede facilmente che (ab, n) = 1. Dal Lemma 1.7 esistono interi x, y tali che ax + ny = 1. Ne segue che ax n 1 ed x è l inverso di a.
Lezioni di Aritmetica Modulare 16 Theorem 5.1. (Teorema di Eulero) Se n è un intero positivo e (a, n) = 1, allora a φ(n) n 1. Proof. Siano b 1, b 2,..., b φ(n) i numeri minori di n che sono relativamente primi con n. Allora ab 1, ab 2,..., ab φ(n) sono congruenti a b 1, b 2,..., b φ(n) in qualche ordine. Ne segue che (ab 1 ) (ab 2 ) (ab φ(n) ) = a φ(n) (b 1 b 2 b φ(n) ) n b 1 b 2 b φ(n) Siccome ogni b i è primo con n possiamo dividere per b 1 b 2 b φ(n) ed ottenere la conclusione. Example 5.2. φ(100) = φ(2 2 5 2 ) = φ(2 2 )φ(5 2 ) = 100(1 1)(1 1 ) = 40. Dal teorema 2 5 di Eulero si ricava 3 40 100 1. Quindi, per esempio, 3 256 = 3 6 40+16 = (3 40 ) 6 3 16 100 3 16. Infine, 3 16 = (81) 4 100 ( 19) 4 = (361) 2 100 61 2 100 21. 6. Equazioni modulari Theorem 6.1. La congruenza lineare ax n b ha una soluzione sse (a, n) b. Proof. ax n b sse n (ax b) sse q(ax b = nq) sse q(ax nq = b). Dal Teorema 1.1 di Bézout otteniamo che ax n b sse (a, n) b. Example 6.1. Vogliamo trovare, se esiste, una soluzione all equazione modulare 124x 71 17. Siccome 124 71 53, l equazione si riduce a 53x 71 17. Calcoliamo il massimo comun divisore di 53 e 71 con il metodo matriciale: [ 1 0 71 0 1 53 ] [ 4 160 ] 1 36 107 17 [ 1 53 18 0 1 53 ] [ 1 53 18 36 107 17 [ 4 160 ] 1 104 107 + 160 17 0 Theorem 6.2. (Teorema cinese del resto) Siano n 1,..., n k interi positivi a due a due relativamente primi (i.e., (n i, n j ) = 1 per i j). Allora il sistema di congruenze lineari x a 1 (mod n 1 ) x a 2 (mod n 2 )............ x a k (mod n k ) ha una soluzione simultanea che è unica modulo n 1... n k. Diamo due differenti dimostrazioni del teorema. Proof. Per ogni 1 i k si definisca b i = n 1... n i 1 n i+1... n k. ]
Lezioni di Aritmetica Modulare 17 Si ha (b i, n i ) = 1. Allora la congruenza lineare b i x i ni 1 ha soluzione. Si noti che b i nj 0 per j i. Allora il numero x = a 1 b 1 x 1 + a 2 b 2 x 2 + + a k b k x k risolve il sistema di congruenze lineari. Per esempio, x n1 a 1 b 1 x 1 perché b 2, b 3,..., b k n1 0. Inoltre, da b 1 x 1 n1 1 si ottiene la conclusione x n1 a 1. Lo stesso discorso vale per gli altri n i. Supponiamo che oltre ad x vi sia un altra soluzione y. Allora si ricava facilmente che x ni y per ogni 1 i k. Quindi, n 1... n k divide x y (si ricordi che (n i, n j ) = 1 per i j). Si conclude x y mod n 1... n k. Diamo un altra prova del Teorema Cinese del resto utilizzando il Teorema di Eulero. Proof. Per ogni 1 i k si definisca b i = n 1... n i 1 n i+1... n k. Allora risolve il problema. 7. Congruenze quadratiche 8. Applicazione alla Crittografia x = a 1 (b φ(n 1) 1 ) + a 2 (b φ(n 2) 2 ) + + a k (b φ(n k) k ) Questa sezione è essenzialmente la Sezione 4.6 del libro Bellissima-Montagna, Matematica per l Informatica, Carrocci Editore, 2008. Vogliamo inviare un messaggio privato ad un nostro interlocutore. Come prima cosa codifichiamo il messaggio con un numero M tramite una codifica elementare. Supponiamo di avere un alfabeto di n caratteri α 1, α 2,..., α n. Associamo a ciascun carattere un numero in progressione evitando i numeri che nella rappresentazione in base 10 contengono degli zeri. Per ogni i, sia c i il numero che codifica il carattere α i. Allora una stringa α i1... α ik si codifica con il numero (in base 10) c i1 0... 0c ik. La cifra 0 è un separatore. Un messaggio scritto con la codifica elementare può essere facilmente decodificato purché il nostro interlocutore conosca l associazione carattere-numero. Questa associazione deve essere inviata al nostro interlocutore per mail e può quindi finire nelle mani di un intruso. Per evitare il problema, criptiamo il messaggio. Concordiamo con ciascuno dei nostri interlocutori una n-upla di numeri a 1,..., a n a due a due relativamente primi. Tali numeri sono conosciuti soltanto allo scrivente ed agli interlocutori. Metodo 1 basa to sul Teorema Cinese del Resto: Sia A = a 1... a n. Possiamo supporre che la codifica elementare M del nostro messaggio sia < A, altrimenti spezziamo il messaggio in più parti. Inviamo al nostro interlocutore non il numero M, ma i numeri b 1 a1 M, b 2 a2 M,..., b n an M. Chi riceve i numeri b 1,..., b n può ricostruire M dal teorema Cinese del resto perché conosce a 1,..., a n. Un eventuale intruso (che non conosce a 1,..., a n ) non potrebbe. Il metodo ha il problema di comunicare i numeri segreti a 1,..., a n ai nostri interlocutori. Metodo 2 : Questo metodo è stato inventato nel 1977 da Ron Rivest, Adi Shamir e Leon Adleman ed è indicato con la sigla RSA.
Lezioni di Aritmetica Modulare 18 Ogni utente dispone di una chiave pubblica nota a tutti e una chiave privata. L utente U si procura quattro numeri distinti p, q, n, e molto grandi tali che p, q, e sono numeri primi, n = p q ed inoltre e è relativamente primo con p 1 e q 1 (per esempio, e potrebbe essere un altro numero primo molto grande). I numeri p e q costituiscono la chiave privata nota solo all utente U, mentre i numeri n ed e costituiscono la chiave pubblica, utilizzata per inviare messaggi ad U. In linea di principio, chi riuscisse a scomporre in fattori primi n potrebbe decodificare il messaggio, ma non esistono algoritmi efficienti per la scomposizione in fattori primi. Il signor X vuole inviare un messaggio in codice ad U senza che nessuno lo possa decodificare. Il signor X considera la codifica elementare M del messaggio. Si può supporre che M < n, altrimenti si spezza il messaggio in tante parti e si spediscono separatamente. Possiamo supporre che M sia primo con n. Se no, si può renderlo primo con n aggiungendo un simbolo speciale in fondo. Il signor X cerca nella pagina web di U la chiave pubblica di U, ossia n ed e. Il signor X calcola mod n (M e ). Per calcolare questo numero si applicano le tecniche che abbiamo imparato nelle sezioni precedenti. Il numero N < n tale che N n M e costituisce il messaggio criptato che il signor X invia per email al signor U. SOLO U può decodificare N per ottenere M, quindi non è importante se qualcuno intercetta N. Come U decodifica N: U calcola la funzione di Eulero φ(n) = φ(pq) = (p 1)(q 1). Poi l utente U risolve la congruenza modulare ex φ(n) 1. Tale congruenza modulare ammette soluzione perché e è relativamente primo con φ(n) = (p 1)(q 1). Indichiamo con x 0 una soluzione di tale equazione modulare. Dopo U calcola mod n (N x 0 ). Tale numero è la codifica elementare M del messaggio criptato. Infatti N x 0 n (M e ) x 0 n M ex 0. Ora essendo ex 0 φ(n) 1, esiste un numero k tale che ex 0 = 1 + kφ(n). Allora N x 0 n (M e ) x 0 n M ex 0 n M 1+kφ(n) = M(M kφ(n) ) = M(M φ(n) ) k n M per il Teorema di Eulero. Un eventuale intruso per trovare M dovrebbe conoscere φ(n) = (p 1)(q 1), che è impossibile da calcolare se non si conosce la scomposizione in fattori primi di n. Difficilissima da calcolare.