Lezioni di Aritmetica Modulare Antonino Salibra Università Ca Foscari Venezia 2 Novembre 2016 Nel seguito scriveremo talvolta a b al posto di a divide b. Ricordiamo che, 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 modulo di b. 0.1. Massimo comun divisore Il massimo comun divisore MCD(a, b) di due interi a, b non entrambi nulli è il più grande numero naturale positivo che divide sia a che b. Quindi abbiamo MCD(a, b) = MCD( a, b ), dove a e b sono il modulo di a e b rispettivamente. Si estende la definizione di MCD a tutti gli interi con MCD(0, 0) = 0. Due numeri interi a, b si dicono primi fra di loro se MCD(a, b) = 1. Nel seguito supponiamo a, b > 0. Per calcolare il massimo comun divisore di a e b si considerino i numeri primi p 1,..., p n che sono minore di max(a, b) e poi si definisca MCD(a, b) = p k 1 1... p kn n, dove p k i i a e pk i i b, mentre p k i+1 i non divide a oppure non divide b, oppure non divide entrambi. Un metodo più efficiente di calcolo del massimo comun divisore è l algoritmo di Euclide. Lemma 0.1.1. Sia b a. Se b a allora MCD(a, b) = b. Se b non divide a allora MCD(a, b) = MCD(b, r), dove r è il resto della divisione di a per b Proof. Sia a = bq + r con 0 r < b. Se d a e d b allora d (a bq) = r. L inverso è anche vero. Il principio di induzione completa giustifica la seguente definizione ricorsiva: { b se a b; MCD(a, b) = MCD(b, r) se a = bq + r con 0 r < b. Example 0.1.1. MCD(134, 36) = MCD(36, 26) = MCD(26, 10) = MCD(10, 6) = MCD(6, 4) = MCD(4, 2) = 2. Lemma 0.1.2. Siano a, b 0 numeri interi. Allora esistono interi x e y tali che ax+by = MCD(a, b). Proof. Possiamo supporre a, b > 0. La prova è per induzione completa sul valore di b. Se b = 1, allora MCD(a, 1) = 1 e a0 + 1 = MCD(a, 1). Se b > 1, abbiamo due casi: MCD(a, b) = b. Allora a0 + b = MCD(a, b). 1
2 Antonino Salibra Università Ca Foscari Venezia 2 Novembre 2016 MCD(a, b) = MCD(b, r) con a = bq + r e 0 r < b. Siccome r < b, possiamo applicare l ipotesi d induzione per ottenere due valori x, y tali che Ma r = a bq e sostituendo si ha: bx + ry = MCD(b, r) = MCD(a, b). bx + (a bq)y = b(x qy) + a = MCD(a, b). Osservazione: Siano a, b 0 interi. Allora l equazione lineare ax + by = 0 rappresenta la retta dei vettori (x, y) che sono ortogonali al vettore (a, b). Il Lemma 0.1.2 afferma che la retta ax + by = MCD(a, b) parallela alla retta ax + by = 0 passa attraverso dei punti che hanno coordinate intere. Theorem 0.1.1. (Proprietà di Bézout) Siano a, b, c 0 numeri interi. Allora l equazione lineare ax + by = c ha soluzioni intere sse MCD(a, b) c. Proof. ( ) MCD(a, b) divide ogni combinazione lineare di a e b. In particolare, divide la combinazione lineare ax + by = c. ( ) Sia d = MCD(a, b). Per ipotesi c = dq per un opportuno q. Dal Lemma 0.1.2 esistono x e y tali che ax + by = d. Moltiplicando ambo i membri per q si ottiene: a(xq) + b(yq) = dq = c. Example 0.1.2. 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 primi tra loro (cioé MCD(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 0.1.3. Trovare una soluzione intera dell equazione 120x + 81y = 12. Dividendo per 3 si ottiene 40x+27y = 4. Siccome 40 e 27 sono primi tra loro (cioé MCD(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 0.1.4. Non esistono soluzioni intere dell equazione 6x + 2y = 5, perché 2 = MCD(6, 2) non divide 5. 0.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
Lezioni di Aritmetica Modulare 3 Figure 1. Aritmetica dell orologio 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 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).
4 Antonino Salibra Università Ca Foscari Venezia 2 Novembre 2016 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 0.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 0.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 0.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 0.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 0.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 5 0.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 0.3.1. Sia n > 0. Diciamo che a, b Z sono congruenti modulo n, e scriviamo a b (mod n) oppure a n b, se mod n (a) = mod 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 0.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 0.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 0.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.
6 Antonino Salibra Università Ca Foscari Venezia 2 Novembre 2016 Figure 2. Aritmetica dell orologio modulo 4 Proposition 0.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 0.3.3. Proprietà di cancellazione: ac n bc MCD(c, n) = 1 a n b.
Lezioni di Aritmetica Modulare 7 Proof. Dal Lemma 0.1.2 e dall ipotesi MCD(c, n) = 1 esistono interi x e y tali che cx+ny = 1. Siccome cx = n( y) + 1, allora cx n 1. Dal Lemma 0.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 0.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 0.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 0.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 0.2.1 e dell aritmetica modulare. Example 0.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 0.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 0.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 0.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.
8 Antonino Salibra Università Ca Foscari Venezia 2 Novembre 2016 0.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 0.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 0.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 0.4.1. Se p è primo, allora a p p a. Example 0.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 0.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 0.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 9 Example 0.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 0.4.3. Se p è un numero primo, allora (Z p, + p, 0, p, 1) è un campo numerico. Proof. Dalla Proposizione 0.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 0.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 primi tra loro, 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. In fatti 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.
10 Antonino Salibra Università Ca Foscari Venezia 2 Novembre 2016 0.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 0.5.1. Se n è primo, φ(n) = n 1. Ecco altri esempi: φ(8) = 4 e φ(14) = 6. Lemma 0.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 0.5.2. Se p è primo, allora φ(p k ) = p k p k 1 = p k (1 1 p ). Proof. Si ha: MCD(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 0.5.3. Se a e b sono relativamente primi tra loro, allora φ(ab) = φ(a)φ(b). Proposition 0.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 MCD(a, n) = 1 e MCD(b, n) = 1. Allora si vede facilmente che MCD(ab, n) = 1. Dal Lemma 0.1.2 esistono interi x, y tali che ax + ny = 1. Ne segue che ax n 1 ed x è l inverso di a. Theorem 0.5.1. (Teorema di Eulero) Se n è un intero positivo e MCD(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 0.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.
Lezioni di Aritmetica Modulare 11 0.6. Equazioni modulari Theorem 0.6.1. La congruenza lineare ax n b ha una soluzione sse MCD(a, n) b. Proof. ax n b sse n (ax b) sse q(ax b = nq) sse q(ax nq = b). Dal Teorema 0.1.1 di Bézout otteniamo che ax n b sse MCD(a, n) b. Theorem 0.6.2. (Teorema cinese del resto) Siano n 1,..., n k interi positivi a due a due primi fra loro (i.e., MCD(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. Proof. Per ogni 1 i k si definisca b i = n 1... n i 1 n i+1... n k. Si ha MCD(b i, n i ) = 1. Allora la congruenza lineare b i x i ni b i nj 0 per j i. Allora il numero 1 ha soluzione. Si noti che 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 MCD(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. Siano n 1,..., n k interi positivi a due a due primi fra loro (i.e., MCD(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. Si consideri b i = (n 1...n k ) n i. Allora risolve il problema. x = a 1 (b 1 ) φ(n 1) + a 2 (b 2 ) φ(n 2) + + a k (b k ) φ(n k)
12 Antonino Salibra Università Ca Foscari Venezia 2 Novembre 2016 0.7. Applicazione alla Crittografia Questa sezione è essenzialmente la Sezione 4.6 del libro Bellissima-Montagna, Matematica per l Informatica, Carrocci Editore. 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 primi fra loro. Tali numeri sono conosciuti soltanto allo scrivente ed agli interlocutori. Metodo 1 : 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. 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. 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 M e modulo n. Per calcolare questo numero si applicano le tecniche che abbiamo imparato nelle sezioni precedenti! Il numero 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.
Lezioni di Aritmetica Modulare 13 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). Sia x 0 una soluzione di tale equazione modulare. Dopo U calcola N x 0 modulo n. 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.