Capitolo 1 Congruenze Lineari 1.1 Prerequisiti Identita di Bezout: M.C.D.(a, b) = αa + βb con α e β opportuni interi. In altre parole il M.C.D.(a, b) é combinazione lineare di a e b. Quando la combinazione lineare esiste essa non é unica. Esempio Per cui α = 36 e β = 395 M.C.D.(3522, 321) = 3 = ( 36) 3522 + (395) 321 Coppia Preliminarmente introduciamo la nozione di coppia (x, y) e le operazione su questa entitá Somma (x, y) + (t, u) = (x + t, y + u) Esempio (2, 5) + (4, 9) = (6, 14) Prodotto t(x, y) = (tx, ty) Esempio 4(5, 6) = (20, 24) Esempio di calcolo: Si deniscano i parametri α e β per il M.C.D.(3522, 321). posto αa + βb = (α, β) per cui a = 1 a + 0 b = (1, 0) e b = 0 a + 1 b = (0, 1) Seguendo l'algoritmo di Euclide si ha: 3522 = 321(10) + 312 1
321 = 312(1) + 9 312 = 9(34) + 6 9 = 6(1) + 3 6 = 3(2) + 0 e quindi M.C.D.(3522, 321) = 3, esprimendo i resti si ha: r 1 = 312 = a + b( 10) r 2 = 9 = b + 312( 1) r 3 = 6 = 312 + 9( 34) r 4 = 3 = 9 + 6( 1) Scrivendo con le notazioni di coppia otteniamo 312 = a + b( 10) = (1, 0) + (0, 1)( 10) = (1, 10) 9 = b + 312( 1) = (0, 1) + (1, 10)( 1) = ( 1, 11) 6 = 312 + 9( 34) = (1 10) + ( 1, 11)( 34) = (35, 384) 3 = 9 + 6( 1) = ( 1, 11) + (35, 384)( 1) = ( 36, 395) Quindi l'identitá di Bezout cercata è la seguente 3 = ( 36)3522 + (395)321 1.2 Equazioni lineari diofantee L'equazione ax + by = c con a, b, c Z e non nulli, viene detta equazione lineare diofantea, e possiede una sola soluzione intera (x, y) se e solo se il massimo comun divisore di a e b divide c 1.3 Congruenze lineari Denizione Sia n un intero positivo ssato, si dice relazione di congruenza modulo n la realzione denita in Z nel modo seguente: a b (mod n) Se e solo se a b = nh per un certo intero h, ovvero a b (mod n) se e solo se n (a b) L'insieme dei numeri congrui ad a modulo n é detta classe di equivalenza di a e é indicata con [a] oppure ā, in tale classe vi sono tutti e soli gli interi che hanno 2
lo stesso resto di a nella divisione con n. [a] = {x/x = a + kn, k Z} 1.4 Risoluzione di congruenze lineari Si vogliono trovare tutti i numeri interi x che soddisfano una relazione di congruenza del tipo ax b (mod n) dove a, b, m sono numeri interi. Tale congruenza viene detta congruenza lineare. La seguente proposizione ci dice tutto sulla risoluzione di tale congruenza. Proposizione La congruenza ax b (mod n) ammette soluzioni se e solo se d = MCD(a, n) divide b. La proposizione che segue permette di stabilire il numero di soluzioni. Proposizione Sia ax b (mod n) una congruenza tale che sia d b dove d = MCD(a, n). Indicata con x 0 una soluzione, tutte e sole le soluzioni sono del tipo x 0 + hm con h Z, dove m = n/d tra queste, le soluzioni x 0, x 0 + n, x 0 + 2n,..., x 0 + (d 1)n sono tutte non congruenti fra loro e ogni altra é congruente ad una di queste. Quindi la congruenza ammette esattamente d soluzioni non congruenti modulo n. Esercizio 1.Risolvere la seguente congruenza lineare: 6x 3 (mod 15) É una congruenza lineare con a = 6, b = 3, n = 15. Sia d = MCD(a, n) = MCD(6, 15) = 3. d b pertanto la congruenza ha soluzioni e ne ha esattamente d = 3 non equivalenti (ossia non congruenti modulo 15). Cerco una soluzione x 0 nel modo seguente: x 0 deve soddisfare l'equazione diofantea 6x 0 + 15y = 3, per un certo y Z. Dividendo per d = 3 ottengo 2x 0 + 5y = 1 e posso trovare una coppia di interi che soddisno tale equazione con l'algoritmo di Euclide: 5 = 2 2 + 1 2 = 1 2 + 0 Pertanto 1 = 5 1 2 2, ossia x 0 = 2, y = 1 /'e una soluzione di 2x 0 +5y = 1. Quindi una soluzione della congruenza é x 0 = 2 13 (mod15). Le altre soluzioni sono x 1 = x 0 + n d x 2 = x 0 + 2 n d = 13 + 15 3 = 13 + 15 3 = 13 + 5 = 18 3 (mod 15) = 13 + 10 = 23 8 (mod 15) 3
Esercizio Risolvere le seguenti congruenze lineari: 1.5 Risultati 6x 5 (mod 9) 4x 16 (mod 10) 3x 2 (mod 11) Proposizione Se ac bc (mod n) e se c é relativamente primo con n allora a b (mod n). Proposizione Se ac bc (mod n) posto d = MCD(c, n) e m = n/d allora a b (mod m). Proposizione Se a b (mod n) e d n allora a b (mod d). Proposizione Se a b (mod n) e a b (mod d) allora a b (mod mcm(n, m). Proposizione Se a é relativamente primo con n allora la congruenza ax b (mod n) ammette un'unica soluzione. Proposizione Per ogni numero primo p e ogni x e y in Z vale la seguente congruenza (x + y) p x p + y p (mod p) Teorema (Piccolo teorema di Fermat) se a é un intero e p un primo allora Corollario Se MCD(a, p) = 1 allora a p a (mod p) a p 1 1 (mod p) Teorema di Wilson Se p é un intero e p un primo allora (p 1)! 1 (mod p) Teorema inverso Se (n 1)! 1 (mod n) allora n é primo. Funzione di Eulero Per ogni n si indica ϕ(n) il numero degli interi positivi minori di n e primi con n Teorema: Per ogni p primo accade che ϕ(p) = p 1 Teorema: Per ogni p primo accade che ϕ(p h ) = p h p h 1 Teorema: La funzione di Eulero è moltiplicativa cioè ϕ(ab) = ϕ(a)ϕ(b) 4
Esempi: ϕ(7) = 7 1 = 6 ϕ(2 5 ) = 2 5 2 4 ϕ(2 6 3 5 ) = ϕ(2 6 )ϕ(3 5 ) =... Teorema di Eulero: Per ogni n e a tale che MCD(a, n) = 1 accade che a ϕ(n) 1 (mod n) Si noti che il teorema di Eulero é una generalizzazione del teorema di Fermat. 1.6 L'algoritmo RSA L'algoritmo RSA é stato descritto nel 1977 da Ron Rivest, Adi Shamir e Len Adleman al MIT; le lettere RSA vengono proprio dalle iniziali dei cognomi. Nel 1983 l'algoritmo fu brevettato negli Stati Uniti dal MIT (brevetto 4.405.829). Il brevetto é scaduto il 21 settembre 2000. Fatto abbastanza rilevante è che RSA é computazionalmente impegnativo, soprattutto per quanto riguarda una eventuale realizzazione hardware. Di conseguenza un attuale buon utilizzo é quello di sfruttare RSA per codicare un unico messaggio contentene una chiave segreta, tale chiave verrá poi utilizzata per scambiarsi messaggi tramite un algoritmo di cifratura a chiave segreta (ad esempio DES). RSA é basato sulla fattorizzazione in numeri primi. Il suo funzionamento é il seguente: 1. Si scelgono a caso due numeri primi p e q, l'uno indipendentemente dall'altro 2. Si calcola il loro prodotto N = pq, chiamato modulo (dato che tutta l'aritmetica seguente é modulo n) 3. Si sceglie poi un numero e (chiamato esponente pubblico) coprimo con b = ϕ(n), cioé MCD(e, ϕ(n)) = 1 4. Si calcola il numero d (chiamato esponente privato) tale che de 1 mod ϕ(n), l'inverso di e modulo ϕ(n) 5. La chiave pubblica é (N, e), mentre la chiave privata é (N, d). Codica del mittente a cui é nota la chave pubblica (N, e): il numero m da inviare diviene c m e mod N quindi invia c al destinatario. Decodica del destinatario a cui é nota la chiave privata (N, d) e c ricevuto dal mittente m c d mod N ESEMPIO p = 5, q = 11 N = pq = 55 5
b = ϕ(n) = ϕ(55) = (5 1)(11 1) = 40 Scelgo e = 3 poiché MCD(3, 40) = 1 Scelgo d tale che 3d 1 mod 40, per cui d = 27 La chiave pubblica é (55, 3), mentre la chiave privata é (55, 27), solo la chiave pubblica verrá trasmessa ad un mittente. Codica del mittente a cui é nota la chave pubblica (55, 3): il numero 7 da tramette diviene c 7 3 mod 55 quindi invia c = 13 al destinatario. Decodica del destinatario a cui é nota la chiave privata (55, 27) e c = 13 ricevuto dal mittente m 13 27 mod 55, per cui m = 7 La forza dell'algoritmo é che per calcolare p, q da N il costo computazionale é alto se si utilizzano p e q dell'ordine di 512 o 1024 bit. 6