RSA

Con l'acronimo RSA, derivato dalle iniziali dei nomi dei suoi inventori, si indica un sistema di crittografia asimmetrica che permette sia la cifratura che la firma digitale. RSA è stato inventato nel 1977 da Ronald Rivest, Adi Shamir e Leonard Adleman.

RSA è basato sul problema complesso della fattorizzazione in numeri primi. Il suo funzionamento base è il seguente: si parte da due numeri primi, p e q, si calcola il loro prodotto n = pq, che viene chiamato modulo (dato che tutta l'aritmetica seguente è modulo n). Si sceglie poi un numero e (chiamato esponente pubblico), più piccolo di n e primo rispetto a (p − 1)(q − 1). Da questo si calcola poi il numero d (chiamato esponente privato) tale che e d \equiv 1 \pmod{(p-1)(q-1)}. La chiave pubblica è (n,e), mentre la chiave privata è (n,d). I fattori p e q possono essere distrutti, anche se spesso vengono mantenuti all'interno della chiave privata.

La forza dell'algoritmo è che per calcolare d da e (così come il contrario) non basta la conoscenza di n, ma serve il numero (p − 1)(q − 1); questa operazione è molto lenta, se n è un numero grande a sufficienza, proprio per il fatto che non si conoscono algoritmi efficienti per la fattorizzazione di numeri grandi.

Un messaggio cifrato con c = me(mod n) può essere decifrato con cd = med = m1(mod n). Questo funziona ovviamente solo se la chiave utilizzata per cifrare e la chiave utilizzata per decifrare sono legate tra loro dalla relazione e d \equiv 1 \pmod{n}, e quindi quando un messaggio viene cifrato con una delle due chiavi può essere decifrato solo utilizzando l'altra.

La firma digitale non è altro che l'inverso: il messaggio viene crittato con la chiave privata, in modo che chiunque possa, utilizzando la chiave pubblica conosciuta da tutti, decifrarlo e, oltre a poterlo leggere in chiaro, essere certo che il messaggio è stato mandato dal possessore della chiave privata corrispondente a quella pubblica utilizzata per leggerlo. Per motivi di efficenza e comodità normalmente viene inviato il messaggio in chiaro con alllegata la firma digitale di un hash del messaggio stesso; in questo modo il ricevente può direttamente leggere il messaggio (che è in chiaro) e può comunque utilizzare la chiave pubblica per verificare che l'hash ricevuto sia uguale a quello calcolato localmente sul messaggio ricevuto. Se i due hash corrispondono anche il messaggio completo corrisponde (questo, ovviamente, solo se l'hash utilizzato è crittograficamente sicuro).

Collegamenti esterni

See also: RSA, 1977, Acronimo, Chiave privata, Chiave pubblica, Crittografia asimmetrica, Fattorizzazione, Hash, Numero primo, Ronald Rivest