La crit­to­gra­fia asim­me­tri­ca (crit­to­gra­fia a chiave pubblica) o a coppia di chiavi si utilizza per pro­teg­ge­re file, directory e intere unità da accessi non au­to­riz­za­ti, nonché per scambiare messaggi segreti. A questo scopo si uti­liz­za­no delle chiavi.

Consiglio

In­for­ma­zio­ni det­ta­glia­te sullo scambio sicuro di dati sono di­spo­ni­bi­li nella nostra pa­no­ra­mi­ca sui processi crit­to­gra­fi­ci.

A dif­fe­ren­za della crit­to­gra­fia sim­me­tri­ca, gli utenti non con­di­vi­do­no una chiave segreta comune (chiave privata). Ogni utente genera invece la propria coppia di chiavi, co­sti­tui­ta da una chiave segreta o privata e da una chiave pubblica. Chiunque disponga della chiave pubblica può inviare dati crit­to­gra­fa­ti al pro­prie­ta­rio della chiave privata, con­trol­lar­ne la firma digitale o au­ten­ti­car­lo. La chiave privata può a sua volta de­crit­ta­re i dati crit­to­gra­fa­ti, generare o au­ten­ti­ca­re firme digitali.

Di seguito, spie­ghia­mo il principio, le funzioni, le possibili ap­pli­ca­zio­ni e i vantaggi e svantaggi della crit­to­gra­fia asim­me­tri­ca.

Che cos’è la crit­to­gra­fia asim­me­tri­ca?

L’idea della crit­to­gra­fia a chiave pubblica è nata solo nel 1975. La crit­to­gra­fia asim­me­tri­ca è quindi un ambito molto recente della crit­to­gra­fia, la cui storia risale a più di 2.000 anni fa. Il maggior vantaggio della crit­to­gra­fia asim­me­tri­ca è allo stesso tempo il maggiore svan­tag­gio della crit­to­gra­fia sim­me­tri­ca: i partner della co­mu­ni­ca­zio­ne non devono con­cor­da­re una sola chiave comune, ma ciascuno dispone di una chiave privata.

Il problema di un metodo a chiave privata (crit­to­gra­fia sim­me­tri­ca) è in par­ti­co­la­re lo scambio delle chiavi. La chiave segreta deve rag­giun­ge­re il de­sti­na­ta­rio, ma più viene condivisa, più questa tra­smis­sio­ne diventa confusa, costosa e quindi poco sicura e vul­ne­ra­bi­le.

In questo senso, la crit­to­gra­fia asim­me­tri­ca rap­pre­sen­ta un’al­ter­na­ti­va pratica, dal momento che ogni utente ha la propria coppia di chiavi.

Il principio della crit­to­gra­fia a chiave pubblica

Nella crit­to­gra­fia asim­me­tri­ca, ogni partner di co­mu­ni­ca­zio­ne dispone di una coppia di chiavi co­sti­tui­ta da una chiave pubblica (public key) e da una chiave privata (private key). Allo stesso modo, le chiavi sono tenute insieme tramite un por­ta­chia­vi che unisce le due chiavi at­tra­ver­so un algoritmo ma­te­ma­ti­co: i dati crit­to­gra­fa­ti con la chiave pubblica possono essere de­crit­ta­ti solo con la chiave privata. Per la pro­te­zio­ne dei dati e l’ese­cu­zio­ne sicura della crit­to­gra­fia a chiave pubblica, è quindi es­sen­zia­le che la chiave privata rimanga segreta a tutti gli altri partner di co­mu­ni­ca­zio­ne.

In pratica, il mittente dei dati ha, dunque, sempre bisogno della chiave pubblica del de­sti­na­ta­rio. La chiave pubblica qui svolge una funzione uni­di­re­zio­na­le: può crit­to­gra­fa­re i dati, ma non de­co­di­fi­car­li nuo­va­men­te, perché questo può essere fatto soltanto il de­sti­na­ta­rio dei dati con la sua chiave privata. Tuttavia, la chiave pubblica non viene uti­liz­za­ta solo per la crit­to­gra­fia, ma consente anche di con­trol­la­re le firme digitali e i partner di co­mu­ni­ca­zio­ne.

La chiave viene con­se­gna­ta al primo contatto. Allo stesso tempo, la chiave privata genera firme digitali e può quindi au­ten­ti­car­si presso altri partner di co­mu­ni­ca­zio­ne. In breve, la crit­to­gra­fia asim­me­tri­ca consente a chiunque di accedere a una chiave pubblica, ma per de­co­di­fi­car­la è ne­ces­sa­ria la chiave privata. Questo consente uno scambio molto sicuro dei dati.

Come funziona la crit­to­gra­fia asim­me­tri­ca?

Per iniziare, il de­sti­na­ta­rio genera la sua coppia di chiavi. Il de­sti­na­ta­rio conserva la sua chiave privata, mentre condivide quella pubblica con il partner di co­mu­ni­ca­zio­ne. Si tratta di una tra­smis­sio­ne semplice tramite autorità di cer­ti­fi­ca­zio­ne o co­sid­det­ti key server (ovvero server chiave) dove si può ar­chi­via­re la chiave. Il mittente codifica il suo messaggio con questa chiave pubblica e lo invia come “testo segreto” al de­sti­na­ta­rio. Dal momento in cui viene crit­to­gra­fa­to, questo messaggio può essere de­co­di­fi­ca­to solo dal de­sti­na­ta­rio con la sua chiave privata. Per questo motivo, il canale di scambio è in linea di principio li­be­ra­men­te se­le­zio­na­bi­le: se anche il messaggio crit­to­gra­fa­to viene in­ter­cet­ta­to, l’utente ma­lin­ten­zio­na­to non potrà accedere al suo contenuto.

Questa funzione uni­di­re­zio­na­le è il principio base della crit­to­gra­fia asim­me­tri­ca. Le due chiavi sono com­ple­ta­men­te in­di­pen­den­ti l’una dall’altra. Anche se la chiave pubblica è nota, un utente ma­lin­ten­zio­na­to non può risalire in nessun modo alla chiave privata. A tal fine, la chiave pubblica funziona con fattori primi chia­ra­men­te definiti, che vengono mol­ti­pli­ca­ti e danno un risultato ine­qui­vo­ca­bi­le. Quindi esegue ope­ra­zio­ni come la seguente:

23 x 199 = 4.577

La chiave privata, invece, funziona esclu­si­va­men­te con il risultato di questo calcolo (nell’esempio con il numero 4.577). È quasi im­pos­si­bi­le in­di­vi­dua­re i fattori di questa mol­ti­pli­ca­zio­ne, perché ci sono in­nu­me­re­vo­li modi per creare questo numero. Ad oggi, inoltre, non esistono metodi o algoritmi ma­te­ma­ti­ci in grado di sem­pli­fi­ca­re il ricalcolo.

N.B.

In questo esempio sono stati usati numeri primi molto piccoli. In pratica, la crit­to­gra­fia asim­me­tri­ca utilizza numeri molto più elevati, rendendo così la crit­to­gra­fia a chiave pubblica più sicura.

Campi d’ap­pli­ca­zio­ne della crit­to­gra­fia asim­me­tri­ca

La crit­to­gra­fia a chiave pubblica viene uti­liz­za­ta spesso nel traffico di posta elet­tro­ni­ca, ad esempio nello standard crit­to­gra­fi­co S/MIME, nelle firme digitali, ma anche nei pro­to­col­li crit­to­gra­fi­ci come SSL/TLS, SSH e HTTPS.

Consiglio

HTTPS è l’acronimo di Hypertext Transfer Protocol Secure, in cui i dati vengono crit­to­gra­fa­ti in modo asim­me­tri­co e quindi trasmessi in modo sicuro rispetto al noto e non protetto Hypertext Transfer Protocol, in breve HTTP.

I sistemi di crit­to­gra­fia asim­me­tri­ci possono anche essere combinati con processi sim­me­tri­ci. In questo caso, le chiavi vengono prima scambiate mediante crit­to­gra­fia asim­me­tri­ca, ma la suc­ces­si­va co­mu­ni­ca­zio­ne viene poi crit­to­gra­fa­ta sim­me­tri­ca­men­te. Questo sistema di crit­to­gra­fia ibrido si utilizza quando gli utenti vogliono avere la velocità della crit­to­gra­fia sim­me­tri­ca, ma allo stesso tempo la sicurezza della crit­to­gra­fia asim­me­tri­ca.

Esempi di crit­to­gra­fia asim­me­tri­ca

Pro­ba­bil­men­te il programma di crit­to­gra­fia più popolare è Pret­ty­Good Privacy, meglio co­no­sciu­to come PGP. Si basa sulla crit­to­gra­fia a chiave pubblica e viene uti­liz­za­to per crit­to­gra­fa­re le e-mail. Durante l’in­stal­la­zio­ne vengono generate una chiave pubblica e una privata. Suc­ces­si­va­men­te, la chiave pubblica può essere passata di persona o me­mo­riz­za­ta in un database centrale. In questo modo, chiunque può cercare le chiavi di de­ter­mi­na­ti pro­prie­ta­ri. Il mittente codifica i suoi dati con la chiave pubblica e iden­ti­fi­ca l’e-mail o il messaggio come crit­to­gra­fa­to PGP. Il de­sti­na­ta­rio può quindi renderlo nuo­va­men­te leggibile mediante la chiave privata.

N.B.

Un’al­ter­na­ti­va gratuita a PGP è OpenPGP svi­lup­pa­to nel 1997. Il software open source dispone ormai di molte esten­sio­ni che superano la gamma di fun­zio­na­li­tà di PGP.

Anche i metodi di firma sono stret­ta­men­te correlati alla crit­to­gra­fia a chiave pubblica. Lo standard RSA è il metodo più diffuso per le firme digitali. In questo caso, la firma cor­ri­spon­de alla codifica del messaggio con la chiave privata. “Firmando” il suo messaggio, il mittente lo codifica con RSA prima di inviarlo. L’au­ten­ti­ci­tà e l’identità del messaggio vengono con­trol­la­te dal de­sti­na­ta­rio con la sua chiave pubblica.

RSA è con­si­de­ra­to un metodo di firma vecchio ma col­lau­da­to. Al­ter­na­ti­ve che generano o ri­co­no­sco­no firme digitali con un metodo molto simile sono DSA (Digital Signature Algorithm) ed ElGamal.

Un esempio concreto di pro­to­col­li crit­to­gra­fi­ci è la crit­to­gra­fia tramite SSL/TLS. Il pro­to­col­lo di rete ga­ran­ti­sce una co­mu­ni­ca­zio­ne sicura, ad esempio tra il server web e il browser. Allo stesso tempo, ga­ran­ti­sce l’au­ten­ti­ci­tà del server. A questo scopo, il pro­to­col­lo SSL/TLS utilizza la crit­to­gra­fia ibrida, uti­liz­zan­do sia il metodo asim­me­tri­co che quello sim­me­tri­co. La chiave pubblica è firmata da un’autorità di cer­ti­fi­ca­zio­ne e il cer­ti­fi­ca­to ri­sul­tan­te è crit­to­gra­fa­to. Il cer­ti­fi­ca­to può quindi essere aperto solo dalla chiave pubblica dell’autorità di cer­ti­fi­ca­zio­ne. Ad esempio, il server web invia la chiave pubblica cer­ti­fi­ca­ta al browser che controlla il cer­ti­fi­ca­to. Se il cer­ti­fi­ca­to è valido, il browser genera una chiave sim­me­tri­ca e la invia al server web. Entrambi ora uti­liz­za­no questa chiave comune per la crit­to­gra­fia sim­me­tri­ca del traffico per il resto della sessione SSL/TLS.

Vantaggi e svantaggi della crit­to­gra­fia asim­me­tri­ca

Lo svan­tag­gio prin­ci­pa­le della crit­to­gra­fia a chiave pubblica è la sua lentezza. Inoltre, richiede una potenza di calcolo no­te­vol­men­te maggiore. Pertanto, come nel pre­ce­den­te esempio di crit­to­gra­fia SSL, è stato svi­lup­pa­to un sistema ibrido che combina sistemi sim­me­tri­ci e asim­me­tri­ci. Problemi del passato, come l’au­ten­ti­ca­zio­ne insicura e l’elevata vul­ne­ra­bi­li­tà a malware, sono già stati risolti da cer­ti­fi­ca­ti e firme digitali e da sistemi crit­to­gra­fi­ci basati su ID.

La crit­to­gra­fia ibrida è la soluzione ideale per sfruttare i vantaggi di entrambi i mondi. La crit­to­gra­fia asim­me­tri­ca assume il compito di di­stri­bu­zio­ne delle chiavi, eli­mi­nan­do il passaggio com­pli­ca­to del tra­sfe­ri­men­to delle chiavi private di un sistema di crit­to­gra­fia sim­me­tri­co. Il risultato: una crit­to­gra­fia sicura, veloce e pratica.

Vai al menu prin­ci­pa­le