Crittografia a chiave pubblica, l'algoritmo RSA

La società umana trova tra i propri fondamenti il segreto, cioè l'informazione che alcuni controllano ed è esclusa ad altri. Per assicurarsi che questa colonna non crolli abbiamo inventato mezzi sempre più sofisticati per rendere i nostri messaggi illeggibili agli altri.

Avatar di Valerio Porcu

a cura di Valerio Porcu

Senior Editor

Crittografia a chiave pubblica, l'algoritmo RSA

Tutti i sistemi citati finora hanno la stessa debolezza. Noto il sistema usato, è sufficiente possedere la chiave per decodificare il messaggio. Questo significa che il trasferimento sicuro della chiave tra mittente e destinatario diventa l'anello debole. Un anello debolissimo se parliamo di comunicazioni elettroniche (o radio), perché è molto semplice intercettare un messaggio che contenga la chiave, sicuramente più che intercettare un corriere esperto in tecniche di spionaggio che si muove nell'ombra.

La risposta a questo problema arriva nel 1997 con il lavoro di Whitfield Diffie e Martin E. Hellman, che è valso agli autori il Premio Turing 2015. In effetti loro proposero l'idea, ma fu poi qualcun altro a metterla in pratica. L'idea è di abbandonare la chiave simmetrica, cioè la stessa chiave che serve per codificare e decodificare il messaggio. E sostituirlo con l'innovativo concetto di chiave pubblica.

chiave pubblica schema

In estrema sintesi, chi vuole spedire un messaggio ha due chiavi: una è diffusa pubblicamente, l'altra è riservata a una sola persona. La chiave privata può decodificare i messaggi protetti dalla chiave pubblica, ma non viceversa. Ed è qui la genialità dell'idea: se Tizio vuole mandare un messaggio a Caio, non dovrà far altro che usare la chiave pubblica dello stesso Caio. Solo quest'ultimo potrà leggere il messaggio, perché solo lui possiede la chiave privata necessaria. Nemmeno Tizio può decrittare il messaggio. Chiunque può vedere la chiave pubblica di entrambi, ma sono inutili.

Furono i matematici Ron Rivest, Adi Shamir e Leonard Adleman a capire come mettere in pratica questa idea, e a loro si deve il nome RSA. Si affidarono alla fattorizzazione dei numeri primi: moltiplicare tra loro dei numeri primi molto grandi è semplice, ma risalire agli stessi numeri primi partendo dal risultato praticamente impossibile.

Oggi il sistema RSA è applicato a praticamente tutte le comunicazioni sicure che avvengono su Internet, con i certificati digitali per esempio. Navigando il Web, notiamo la sua presenza se nella barra degli indirizzi è scritto HTTPS.

Dietro la crittografia RSA si nasconde una matematica davvero molto complessa, le cui radici sono antiche di migliaia di anni. Anche per questo quello del crittografo e del criptoanalista sono mestieri che richiedono competenze matematiche di altissimo livello. Sono pochissimi quelli che possono svolgere queste mansioni, sono generalmente pagati profumatamente, e spesso sono persone fuori dall'ordinario. Alcuni sono sotto stretta sorveglianza da parte dei servizi segreti.

hash crypto wikipedia
Funzione hash crittografica (Wikimedia)

Prima di passare alla prossima pagina, merita almeno qualche parola il concetto di funzione hash in crittografia. È anch'essa un sistema per trasformare i dati, ma pensato più per la memorizzazione che per la comunicazione.

Quando inseriamo una password sul PC o lo smartphone, come fa la macchina a sapere che è quella giusta? D'istinto verrebbe da pensare che da qualche parte la nostra password è salvata come un qualsiasi file di Word, ma non è così (anche se a volte succede). Il computer memorizza una speciale versione della password detta hash. Quando noi inseriamo la password, viene generato un nuovo hash, ed è questo ad essere confrontato con quello memorizzato. Se sono uguali la porta si apre, altrimenti "accesso negato".

Perché è sicuro? Perché non è possibile, matematicamente, risalire dall'hash alla vera password. Se qualcuno sbirciasse sul nostro PC vedremo un'inutile sequenza di simboli, che di certo non potrebbe riciclare sul sito della banca o cose del genere.