Ad ogni utente del sistema
RSA viene
assegnata , tramite un ente che ne garantisce l'autenticità,una coppia di interi
positivi, (n, e), consultabile on-line in un
database pubblico.
Il primo intero n, detto modulo ,rappresenta il
prodotto di due numeri primi distinti, p, q che devono
essere grandi e tenuti segreti ;
il secondo numero e ,detto esponente pubblico, deve essere scelto dall'utente in modo
tale che (e, p -1) =1 e (e, q -1) =1
Osservazione:
-
la coppia (n, e) e di dominio
pubblico, ossia un qualunque utente che lo desideri può consultarla,
mentre non è di dominio pubblico la
fattorizzazione di n.
Si ipotizzi che un utente A debba inviare un messaggio M
ad un altro utente B consultando il database ufficiale.
L'utente A controlla innanzitutto la coppia di numeri relativa all'utente B,
cioè la coppia (nB, eB). Se il messaggio M da inviare è
maggiore del numero nB, allora l'utente A spezzerà M in vari blocchi
(messaggi unitari) in modo che risultino minori di nB. In definitiva si può supporre che il messaggio M soddisfi le
seguenti due condizioni:
M < nB, (M, nB) = 1.
Per codificare il messaggio M da inviare al destinatario
l'utente A, poi, eleva M alla potenza eB e poi la riduce modulo
nB
ossia:
M′ = (mod
nB).
Osservazioni:
1) L'utente B pubblica la
sua coppia (nB, eB), ma tiene per sé la chiave segreta
dB:
1 < d
b<
φ(nB) =
(pB - 1) (qB - 1),
che è soluzione della congruenza :
eB dB
(mod φ(nB))
dove φ è la
funzione di Eulero.
2) Il destinatario può decifrare
il messaggio M perchè è l' unico che è in possesso della fattorizzazione di
nB(che è equivalente alla funzione di Eulero).
3)Il problema della ricerca di due
numeri primi grandi ,in modo da produrre n ,si risolve
-
generando , a caso, un numero m
dispari dell'ordine di grandezza voluto.
-
sottoponendo m a un
test di primalità.
-
considerando l'intero m+2 ,se m non supera il
test
-
effettuando al massimo un numero
di tentativi, pari a ln(m),
in base al Teorema dei Numeri
Primi
Punti di forza
La sicurezza di questo sistema risiede nel fatto che
-
non vi è scambio di chiavi tra gli
utenti
-
dato l'elevato ordine di grandezza,10300
, dei numeri primi e delle chiavi , 1024 o 2048 bit,attualmente utilizzato, la fattorizzazione
,anche utilizzando i più sofisticati algoritmi e i calcolatori più
veloci, richiede tempi proibitivi
Osservazioni
Il sistema RSA viene utilizzato per:
Applicazione con
Derive
Applicazioni con
Excel
|