La crittografia a chiave pubblica (PKC), chiamata anche crittografia asimmetrica, è un campo della crittografia che utilizza sia una chiave privata che una chiave pubblica, in contrapposizione alla chiave singola utilizzata nella crittografia simmetrica. L'uso di coppie di chiavi fornisce a PKC un insieme unico di caratteristiche e funzionalità che possono essere utilizzate per risolvere problemi inerenti ad altre tecniche crittografiche. Questa forma di crittografia è diventata una parte importante della moderna sicurezza informatica, nonché una parte essenziale dell’ecosistema delle criptovalute in continua evoluzione.


Come funziona la crittografia a chiave pubblica?

In uno schema PKC, la chiave pubblica viene utilizzata da un mittente per crittografare le informazioni, mentre la chiave privata viene utilizzata da un destinatario per decrittografarle. Poiché le due chiavi sono diverse, la chiave pubblica può essere condivisa in modo sicuro senza compromettere la sicurezza della chiave privata. Ogni coppia di chiavi asimmetriche è unica, garantendo che un messaggio crittografato utilizzando una chiave pubblica possa essere letto solo dalla persona che possiede la chiave privata corrispondente.

Poiché gli algoritmi di crittografia asimmetrica generano coppie di chiavi matematicamente correlate, la loro lunghezza è molto più lunga di quella utilizzata nella crittografia simmetrica. Questa lunghezza incrementata, in genere compresa tra 1.024 e 2.048 bit, rende estremamente difficile calcolare una chiave privata dal suo equivalente pubblico. Uno degli algoritmi più popolari per la crittografia asimmetrica utilizzati oggi è noto come RSA. Nello schema RSA, le chiavi vengono generate utilizzando un modulo ottenuto moltiplicando due numeri (spesso due grandi numeri primi). In altre parole, il modulo genera due chiavi: una pubblica che può essere condivisa e l'altra privata che deve essere mantenuta segreta). L'algoritmo RSA è stato descritto per la prima volta nel 1977 da Rivest, Shamir e Adleman (da qui RSA) e rimane un componente importante dei sistemi di crittografia a chiave pubblica.


PKC come strumento di crittografia

La crittografia a chiave pubblica risolve uno dei problemi ricorrenti degli algoritmi simmetrici, ovvero la comunicazione della chiave utilizzata sia per la crittografia che per la decrittografia. L'invio di questa chiave tramite una connessione non sicura rischia di esporla a terzi, che possono quindi leggere eventuali messaggi crittografati con la chiave condivisa. Sebbene esistano tecniche crittografiche (come il protocollo di scambio di chiavi Diffie-Hellman-Merkle) per affrontare questo problema, rimangono vulnerabili agli attacchi. Nella crittografia a chiave pubblica, invece, la chiave utilizzata per la crittografia può essere condivisa in modo sicuro su qualsiasi connessione. Di conseguenza, gli algoritmi asimmetrici forniscono un livello di protezione più elevato rispetto agli algoritmi simmetrici.


Utilizzare nella generazione di firme digitali

Un'altra applicazione degli algoritmi di crittografia asimmetrica è quella dell'autenticazione dei dati tramite firme digitali. Fondamentalmente, una firma digitale è un hash creato utilizzando i dati di un messaggio. Quando questo messaggio viene inviato, il destinatario può verificare la firma utilizzando la chiave pubblica del mittente per autenticare la fonte del messaggio e assicurarsi che non sia stato manomesso. In alcuni casi, le firme digitali e la crittografia vengono applicate insieme, con l'hash stesso eventualmente crittografato come parte del messaggio. È opportuno notare, tuttavia, che non tutti i sistemi di firma digitale utilizzano tecniche di crittografia.


Limiti

Sebbene possa essere utilizzata per migliorare la sicurezza del computer e consentire la verifica dell'integrità dei messaggi, la crittografia PKC presenta alcune limitazioni. A causa delle complesse operazioni matematiche coinvolte nella crittografia e decrittografia, gli algoritmi asimmetrici possono essere piuttosto lenti se costretti a elaborare grandi quantità di dati. Questo tipo di crittografia si basa fortemente anche sul presupposto che la chiave privata rimanga segreta. Se una chiave privata viene condivisa o esposta accidentalmente, la sicurezza di tutti i messaggi crittografati con la chiave pubblica corrispondente verrà compromessa. È anche possibile che gli utenti perdano accidentalmente le proprie chiavi private, nel qual caso diventa impossibile per loro accedere ai dati crittografati.


Applicazioni della crittografia a chiave pubblica

Questo tipo di crittografia viene utilizzato da molti sistemi informatici moderni per proteggere informazioni sensibili. I messaggi di posta elettronica, ad esempio, possono essere crittografati utilizzando tecniche di crittografia a chiave pubblica per mantenerne riservati i contenuti. Anche il protocollo Secure Sockets Layer (SSL) che rende possibile la connessione sicura ai siti Web utilizza la crittografia asimmetrica. I sistemi PKC sono stati addirittura esplorati come un modo per creare un ambiente di voto elettronico sicuro che consentirebbe potenzialmente agli elettori di partecipare alle elezioni dai propri computer di casa.

La tecnologia PKC occupa un posto importante anche nella tecnologia blockchain e criptovaluta. Quando viene configurato un nuovo portafoglio di criptovaluta, viene generata una coppia di chiavi (chiavi pubblica e privata). L'indirizzo pubblico viene generato utilizzando la chiave pubblica e può essere condiviso in modo sicuro con terze parti. La chiave privata, invece, serve per creare firme digitali e verificare le transazioni e deve quindi essere mantenuta segreta. Una volta che una transazione è stata verificata confermando l'hash contenuto nella firma digitale, tale transazione può essere aggiunta al registro blockchain. Questo sistema di verifica della firma digitale garantisce che solo la persona con la chiave privata associata al portafoglio di criptovaluta corrispondente possa rilasciare fondi. Va notato che le crittografie asimmetriche utilizzate nelle applicazioni di criptovaluta sono diverse da quelle utilizzate per scopi di sicurezza informatica. Bitcoin ed Ethereum, ad esempio, utilizzano una crittografia specializzata chiamata Elliptic Curve Digital Signature Algorithm (ECDSA) per verificare le transazioni.

Dalla sicurezza informatica alla verifica delle transazioni di criptovaluta, la crittografia a chiave pubblica svolge un ruolo importante nella protezione dei moderni sistemi digitali. Utilizzando chiavi pubbliche e private accoppiate, gli algoritmi di crittografia asimmetrica risolvono i problemi di sicurezza fondamentali presentati dalle cifre simmetriche. Sebbene la crittografia PKC sia utilizzata da molti anni, nuovi usi e applicazioni vengono regolarmente sviluppati, in particolare nei settori della blockchain e delle criptovalute.