introduzione

La crittografia a chiave pubblica (PKC), nota anche come crittografia asimmetrica, è un framework che utilizza sia una chiave privata che una pubblica, in contrapposizione alla chiave singola utilizzata nella crittografia simmetrica. L'uso di coppie di chiavi conferisce a PKC un insieme unico di caratteristiche e capacità che possono essere utilizzate per risolvere le sfide inerenti ad altre tecniche crittografiche. Questa forma di crittografia è diventata un elemento importante della moderna sicurezza informatica, nonché una componente fondamentale del crescente ecosistema delle criptovalute.


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 tra loro, la chiave pubblica può essere condivisa tranquillamente senza compromettere la sicurezza di quella 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 collegate matematicamente, le lunghezze delle loro chiavi sono molto più lunghe di quelle utilizzate nella crittografia simmetrica. Questa lunghezza maggiore, in genere compresa tra 1.024 e 2.048 bit, rende estremamente difficile calcolare una chiave privata dalla sua controparte pubblica. Uno degli algoritmi più comuni per la crittografia asimmetrica in uso oggi è noto come RSA.

Nello schema RSA, le chiavi vengono generate utilizzando un modulo che si ottiene moltiplicando due numeri (spesso due grandi numeri primi). In termini semplici, il modulo genera due chiavi (una pubblica che può essere condivisa e una privata che deve essere tenuta 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 di vecchia data 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 risolvere questo problema, sono ancora vulnerabili agli attacchi. Nella crittografia a chiave pubblica, al contrario, la chiave utilizzata per la crittografia può essere condivisa in modo sicuro su qualsiasi connessione. Di conseguenza, gli algoritmi asimmetrici offrono un livello di protezione più elevato rispetto a quelli simmetrici.


Generazione di firme digitali

Un'altra applicazione degli algoritmi di crittografia asimmetrica è quella dell'autenticazione dei dati tramite l'uso delle firme digitali. Fondamentalmente, una firma digitale è un hash creato utilizzando i dati contenuti in un messaggio. Quando il messaggio viene inviato, la firma può essere verificata dal destinatario utilizzando la chiave pubblica del mittente. In questo modo, possono autenticare la fonte del messaggio e assicurarsi che non sia stato manomesso. In alcuni casi, le firme digitali e la crittografia vengono applicate insieme, il che significa che l'hash stesso potrebbe essere crittografato come parte del messaggio. Va notato, tuttavia, che non tutti gli schemi di firma digitale utilizzano tecniche di crittografia.


Limitazioni

Sebbene possa essere utilizzato per migliorare la sicurezza del computer e fornire la verifica dell'integrità dei messaggi, 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 gestire grandi quantità di dati. Questo tipo di crittografia dipende fortemente anche dal presupposto che la chiave privata rimanga segreta. Se una chiave privata viene condivisa o esposta accidentalmente, la sicurezza di tutti i messaggi che sono stati 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 garantire la sicurezza delle informazioni sensibili. Le e-mail, ad esempio, possono essere crittografate utilizzando tecniche di crittografia a chiave pubblica per mantenerne riservati i contenuti.

Anche il protocollo Secure Sockets Layer (SSL) che rende possibili connessioni sicure ai siti Web utilizza la crittografia asimmetrica. I sistemi PKC sono stati anche esplorati come mezzo per fornire un ambiente di voto elettronico sicuro che consentirebbe potenzialmente agli elettori di partecipare alle elezioni dai propri computer di casa.

PKC ha un posto di rilievo 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 del portafoglio viene generato utilizzando la chiave pubblica e può essere condiviso in modo sicuro con altri. La chiave privata, invece, viene utilizzata per creare firme digitali e verificare le transazioni e, pertanto, deve 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 che possiede la chiave privata associata al portafoglio di criptovaluta corrispondente possa spostare i fondi.

Va notato che la crittografia asimmetrica utilizzata nelle applicazioni di criptovaluta è diversa da quelle utilizzate per scopi di sicurezza informatica. Bitcoin ed Ethereum, ad esempio, utilizzano un algoritmo specifico per verificare le transazioni, noto come Elliptic Curve Digital Signature Algorithm (ECDSA). Inoltre, l'ECDSA crea firme digitali senza l'uso della crittografia. Ciò significa che la blockchain non ha bisogno di crittografia, contrariamente a quanto molti tendono a credere.


Pensieri conclusivi

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 dai codici simmetrici. Sebbene PKC sia in uso da molti anni, vengono regolarmente sviluppati nuovi usi e applicazioni, in particolare nello spazio blockchain e criptovaluta.