. RSA: Calcolo della chiave privata 1
1. Come si cifra e come si decifra Sappiamo che RSA cifra dei numeri. Ad esempio prende il numero n e mediante il modulo di una potenza lo trasforma in c. c = n e mod m. n.. c 2. Come si cifra e come si decifra Per decifrare si usa un altro esponente E ma lo stesso modulo, questo E viene scelto in modo che possa svolgere il compito contrario; cioà da c si riottiene n: n.. c n = c E mod m 3. Come si calcola l esponente di decifratura E Come si può notare dal grafico il modulo di decifratura è lo stesso di quello della cifratura invece l esponente cambia. Ma come dunque deve essere congeniato E perchè sia abile in questo ruolo di invertitore? In breve si calcola come inverso di e modulo φ(m): e E 1 (mod φ(m)) Questo calcolo lo proveremo a fare a volte sfruttando il teorema di Eulero, a volte usando l algoritmo esteso di Euclide, a volte usando un metodo esaustivo, che poi sono i tre metodi di inversione spiegati nelle lezioni precedenti. In questo capitolo faremo esercizi dunque per il calcolo di tale esponente, nella prossima lezione spiegheremo perchè E scelto nel siffatto modo permette la decifratura. 2
4. Calcolo dell esponente di decifratura appoggiandosi al teorema di Eulero Determiniamo l esponente di decifratura nel seguente caso appoggiandoci al teorema di Eulero. chiave pubblica modulo m = 21 chiave pubblica esponente e = 17 E si calcola come inverso di e in modulo φ(m): e E 1 (mod φ(m)) È meglio sostituire subito nell equazione il 17 e calcolare il toziente del modulo che viene 12. L equazione dunque da risolvere diventa: 17 E 1 (mod 12) Occorre ora impostare il calcolo di E sfruttanto il teorema di Eulero: E 17 φ(12) 1 (mod 12) Ora bisogna procedere nei calcoli fino a trovare E E 17 φ(12) 1 (mod 12) E 17 4 1 (mod 12) E 17 3 (mod 12) 17 1 5 (mod 12) 17 2 289 1 (mod 12) E 17 3 17 2 17 1 1 5 5 (mod 12) L esponente è trovato, completo la tabella delle chiavi chiave pubblica modulo m = 21 chiave pubblica esponente e = 17 chiave privata esponente E = 5 3
5. Calcolo dell esponente di decifratura con il metodo esaustivo chiave pubblica modulo m = 21 chiave pubblica esponente e = 17 imposto il calcolo sostituendo i numeri nell equazione e E 1 (mod φ(m)) 17 E 1 (mod 12) procedo con i tentativi fino a trovare l inverso E Completo la tabella delle chiavi 17 1 5 (mod 12) 17 2 10 (mod 12) 17 3 3 (mod 12) 17 4 8 (mod 12) 17 5 1 (mod 12) chiave pubblica modulo m = 21 chiave pubblica esponente e = 17 chiave privata esponente E = 5 4
6. Calcolo dell esponente di decifratura con il metodo esteso di Euclide chiave pubblica modulo m = 21 chiave pubblica esponente e = 17 imposto il calcolo sostituendo i numeri nell equazione e E 1 (mod φ(m)) 17 E 1 (mod 12) Procedo con l algoritmo esteso di Euclide fino a trovare E 17 =1 12+ 5 12 =2 5 +2 5 =2 2 +1 Sostituendo il 12 con m e 17 con a, e riversando tali lettere fino all ultima riga: a = 1m + 5 5=a m m = 2 (a m) +2 2=3m 2a a m =2 (3m 2a)+1 1=5a 7m dall ultima equazione ottenuta a destra sostituendo i valori di a ed m otteniamo 5a 1(mod m) 5 17 1(mod 12) Dunque l inverso moltiplicativo di 17 modulo 12 risulta E = 5. Una rapida verifica: 5 17 85 1(mod 12) 5
7. Altro esempio completo chiave pubblica modulo m = 221 chiave pubblica esponente e = 7 Dobbiamo determinare E che deve essere l inverso di e modulo φ(221). Determineremo ora tale inverso, e lo faremo in tre modi differenti: Con il metodo esteso di Euclide Appoggiandoci al teorema di Eulero Facendo una ricerca esaustiva dell inverso di E Nelle prossime tre pagine vengono applicati questi medoti. 6
8. Qui usiamo l algoritmo esteso di Euclide: chiave pubblica modulo m = 221 chiave pubblica esponente e = 7 Siccome 221 = 13 17 allora φ(221) = 192. inverso di 7 modulo 192. Dobbiamo trovare dunque E come 192 =27 7+ 3 7 =2 3 +1 Sostituendo il 192 con m e 7 con a, e riversando tali lettere fino all ultima riga: m = 27a + 3 3=m 27a a =2 (m 27a)+1 1=55a 2m otteniamo che 55a 1(mod 192). Dunque l inverso moltiplicativo di 55 modulo 192 risulta E = 55. Una rapida verifica: 55 7 385 1(mod 192) 7
9. Qui sfruttiamo il teorema di Eulero: chiave pubblica modulo m = 221 chiave pubblica esponente e = 7 Ora: E = e φ(φ(m)) 1 mod φ(m) φ(m) =192=2 6 3 φ(φ(192)) 1 = 192 1 2 2 3 1=63 Calcoliamo ora 7 63 mod 192: 7 1 7 mod 192 7 2 49 mod 192 7 4 97 mod 192 7 8 1 mod 192 7 16 1 mod 192 7 32 1 mod 192 7 63 7 32 7 16 7 8 7 4 7 2 7 1 1 1 1 97 49 7 55 mod 192 Abbiamo ottenuto E = 55. 8
10. Qui facciamo una ricerca sistematica: Dobbiamo trovare E in modo tale che E 7 1 mod 192. Basta usare un calcolatore e provare a far crescere E da 1 fino a 192 ed arrestarsi al primo E che verifica l uguaglianza. Vediamo nella prossima pagina che appunto il primo E che verifica tale uguaglianza è proprio 55. 1 7 7 7 mod 192 2 7 14 14 mod 192 3 7 21 21 mod 192 4 7 28 28 mod 192 5 7 35 35 mod 192 6 7 42 42 mod 192 7 7 49 49 mod 192 8 7 56 56 mod 192 9 7 63 63 mod 192 10 7 70 70 mod 192 11 7 77 77 mod 192 12 7 84 84 mod 192 13 7 91 91 mod 192 14 7 98 98 mod 192 15 7 105 105 mod 192 16 7 112 112 mod 192 17 7 119 119 mod 192 18 7 126 126 mod 192 19 7 133 133 mod 192 20 7 140 140 mod 192 21 7 147 147 mod 192 22 7 154 154 mod 192 23 7 161 161 mod 192 24 7 168 168 mod 192 25 7 175 175 mod 192 26 7 182 182 mod 192 27 7 189 189 mod 192 28 7 196 4 mod 192 29 7 203 11 mod 192 30 7 210 18 mod 192 31 7 217 25 mod 192 32 7 224 32 mod 192 33 7 231 39 mod 192 34 7 238 46 mod 192 35 7 245 53 mod 192 36 7 252 60 mod 192 37 7 259 67 mod 192 38 7 266 74 mod 192 39 7 273 81 mod 192 40 7 280 88 mod 192 41 7 287 95 mod 192 42 7 294 102 mod 192 43 7 301 109 mod 192 44 7 308 116 mod 192 45 7 315 123 mod 192 46 7 322 130 mod 192 47 7 329 137 mod 192 48 7 336 144 mod 192 49 7 343 151 mod 192 50 7 350 158 mod 192 51 7 357 165 mod 192 52 7 364 172 mod 192 53 7 371 179 mod 192 54 7 378 186 mod 192 55 7 385 1 mod 192 9
Ovviamente quest ultimo metodo di ricerca sistematica è proibitivo se m è grande nei termini richiesti da RSA. 10
11. Esercizi Esercizio 1. Si consideri m =3 17 = 51 ed e = 3. Si determini E nei tre metodi esposti prima. [E = 11] Esercizio 2. Verifica che se e =17em =11 13 = 143 l esponente di decifratura risulta E = 113. 11