ERREsoft1 Basi matematiche del sistema RSA Pierluigi Ridolfi Università di Roma La Sapienza marzo 2000
ERREsoft2 Richiami di aritmetica Resto, quoto, modulo e congruenza Numeri primi: –generazione dei numeri primi –distribuzione dei numeri primi Verifica se un numero è primo
ERREsoft3 Resto, quoto, modulo e congruenza a mod n = r a = k n + r es: 33 mod 8 = 1 33 = a mod n = b mod n es: 33 mod 8 = 25 mod 8 a b mod n es: mod 8
ERREsoft4 Generazione dei numeri primi Crivello di Eratostene
ERREsoft5 Distribuzione dei numeri primi = numero dei numeri primi contenuti nei primi n numeri naturali Formula di Gauss: (n) n : log n Es: (10 2 ) = 22 = 22% (10 3 ) = 145= 14% (10 6 ) = 72464= 7% ( ) = …= 0,4%
ERREsoft6 Verifica se un numero è primo Non esistono formule matematiche. Si procede per tentativi, dividendo il numero per tutti i primi compresi entro la sua radice quadrata. Es: n = è primo? Occorre provare a dividere n per tutti i primi minori di 316,4.. : si verifica che n è divisibile per 223, dunque n non è primo (n = 223·449) Es: n = è primo? Occorre provare a dividere n per tutti i primi minori di 316,2..: si verifica che n non è divisibile per nessuno di questi numeri, dunque è primo.
ERREsoft7 Teorema dellinverso Dati due numeri interi a e b, primi fra loro, esiste sempre un numero intero c tale che: c b mod a = 1 Pertanto: c b = k a + 1
ERREsoft8 Indicatore di Eulero Si indica con il simbolo F(n) E il numero dei numeri naturali < n, primi con n Es.:n = 7 Sono primi con 7: 1,2,3,4,5,6 F(7) = 6 Se n è primo, F(n) = n-1 Se n = p q, con p e q primi, F(n) = (p-1) (q-1) Es.: n = 3 7 = 21 F(21) = 2 6 = 12 (1,2,4,5,8,10,11,13,16,17,19,20)
ERREsoft9 Teorema di Fermat-Eulero Teorema di Eulero kF(n)+1 a mod n = a Come caso particolare, se n primo e k = 1, si ha il: Teorema di Fermat: n a mod n = a
ERREsoft10 Sistema di crittografia a due chiavi Codifica del messaggio Il mittente, utilizzando un certo algoritmo T, codifica m con la chiave pubblica h del destinatario ottenendo m che spedisce. m = T(h, m) Decodifica del messaggio Il destinatario riceve m e lo decodifica con lo stesso algoritmo T ma con la propria chiave j segreta, ottenendo nuovamente m. m = T(j, m)
ERREsoft11 Lalgoritmo del sistema RSA Problema: trovare un algoritmo T e delle coppie h e j per cui il sistema precedente funzioni. 1977: Rivest, Shamir, Adleman Sistema basato sul Teorema di Fermat-Eulero
ERREsoft12 Principio di funzionamento (1) E dato un intero n che identifica una comunità C di individui. A ogni individuo c di C si assegna una chiave h (numero intero scelto a caso) e si calcola la corrispondente chiave j come inversa di h modulo F(n). Vale pertanto la: hj = kF(n) + 1
ERREsoft13 Principio di funzionamento (2) m < n h m = m mod n [T(h,m)] j m= m mod n [T(j,m)] = m h j mod n kF(n)+1 = m mod n = m
ERREsoft14 Principio di invulnerabilità Se n è primo, è facile ottenere j dato h, perché è possibile calcolare F(n) = n-1 Ma se n è il prodotto di due primi p e q - che non sono noti -, è praticamente impossibile ottenere j dato h, perché non è noto F(n) = (p-1)( q-1)
ERREsoft15 Esempio Lunghezza di n: 128 bit Max n n (10 19 ) divisioni/secondo 10 8 secondi 3 anni
ERREsoft16 In pratica come si opera Esiste un Ente centrale E. E fissa h per una comunità C di utenti. E sceglie per ogni utente c due primi p e q. E calcola n, F(n), j. n chiave pubblica. j chiave privata.
ERREsoft17 Esempio h = 11 p = 3 q = 5 n = 15 F(n) = 8 j = 3 verifica: h j mod F(n) = 33 mod 8 = m = 2 h 11 m = m mod n = 2 mod 15 = 8 j 3 m = m mod n = 8 mod 15 = 2