Ethical Hacker con AI

Crittografia

Crittografia a chiave pubblica: cos'e, come funziona e come si usa

Crittografia a chiave pubblica: cos'e, come funziona e come si usa

Hai mai notato il lucchetto vicino all indirizzo di un sito web Nel browser indica che stai usando una connessione sicura protetta da crittografia a chiave pubblica, una delle tecnologie fondamentali della sicurezza su internet.

In questo articolo vediamo:

  • che cosa si intende per crittografia a chiave pubblica, detta anche crittografia asimmetrica
  • come funziona in pratica
  • in quali contesti viene usata, per esempio HTTPS, email cifrate, firme digitali, criptovalute
  • perche e cosi importante per la sicurezza informatica moderna

❓ Che cosa e la crittografia a chiave pubblica

La crittografia a chiave pubblica e un tipo di crittografia asimmetrica. Asimmetrica significa che si basa su due chiavi diverse:

  • una chiave pubblica, che puo essere condivisa con chiunque
  • una chiave privata, che deve rimanere segreta

Queste due chiavi sono collegate da una relazione matematica: cio che viene cifrato con una, puo essere decifrato solo con la corrispondente chiave associata.

Differenza con la crittografia simmetrica

Per capire meglio la crittografia a chiave pubblica, conviene confrontarla con la crittografia simmetrica:

  • nella crittografia simmetrica si usa una unica chiave condivisa per cifrare e decifrare i dati
  • nella crittografia a chiave pubblica si usa una coppia di chiavi, una pubblica e una privata

Il problema principale della crittografia simmetrica e lo scambio sicuro della chiave segreta. Come faccio a inviare la chiave a un altra persona se non ho ancora un canale sicuro La crittografia a chiave pubblica nasce per risolvere proprio questo problema.

🔒 Come funziona la crittografia a chiave pubblica

Generazione della coppia di chiavi

Ogni utente genera una coppia di chiavi:

  • chiave pubblica, che puo essere distribuita liberamente
  • chiave privata, che deve essere custodita con attenzione e mantenuta segreta
Cifratura e decifratura dei messaggi

Un possibile scenario di comunicazione sicura e il seguente:

  • chi vuole inviarti un messaggio prende la tua chiave pubblica
  • usa la chiave pubblica per cifrare il messaggio
  • ti invia il messaggio cifrato attraverso la rete

Solo tu, che possiedi la chiave privata corrispondente, puoi decifrare quel messaggio e leggerne il contenuto.

Proprieta fondamentale

La caratteristica centrale della crittografia a chiave pubblica e la seguente:

  • un messaggio cifrato con la chiave pubblica puo essere decifrato solo con la chiave privata associata
  • e computazionalmente impraticabile ricavare la chiave privata a partire dalla sola chiave pubblica, se l algoritmo e moderno e la lunghezza delle chiavi e adeguata

Questa sicurezza si basa su problemi matematici difficili, per esempio:

  • fattorizzazione di numeri molto grandi, come nel caso dell algoritmo RSA
  • calcolo del logaritmo discreto, utilizzato in Diffie Hellman e in alcuni schemi a curve ellittiche

💻 A cosa serve la crittografia a chiave pubblica nella pratica

La crittografia a chiave pubblica e presente in moltissime applicazioni della sicurezza informatica. Di seguito alcuni casi d uso fondamentali.

HTTPS e sicurezza dei siti web

Quando navighi su un sito con indirizzo che inizia con HTTPS, il tuo browser e il server web:

  • usano la crittografia a chiave pubblica per autenticare il server tramite certificati digitali
  • stabiliscono in modo sicuro una chiave simmetrica di sessione da usare durante la navigazione

Dopo lo scambio iniziale, la comunicazione tra browser e server prosegue con crittografia simmetrica, molto piu veloce, ma resa possibile proprio dall uso iniziale di chiavi pubbliche e private.

Email cifrate con PGP o GPG

Strumenti come PGP e GPG si basano sulla crittografia a chiave pubblica per proteggere le email:

  • ogni utente dispone di una coppia di chiavi, pubblica e privata
  • chi invia un messaggio usa la chiave pubblica del destinatario per cifrare il testo
  • il destinatario decifra con la propria chiave privata

Inoltre e possibile firmare digitalmente le email con la chiave privata. Chi riceve puo verificare la firma usando la chiave pubblica del mittente, controllando autenticita e integrita.

Firma digitale di documenti

La firma digitale, usata anche in contesti legali e amministrativi, sfrutta lo stesso principio:

  • il documento viene firmato con la chiave privata di chi lo sottoscrive
  • chiunque puo verificare la firma con la corrispondente chiave pubblica

Questo meccanismo garantisce:

  • autenticita, cioe provenienza del documento
  • integrita, cioe assenza di modifiche dopo la firma
  • non ripudio, cioe impossibilita di negare la paternita della firma, in un contesto legale adeguato
Aggiornamenti software e verifiche di integrita

Molti aggiornamenti software sono accompagnati da una firma digitale:

  • il produttore firma il pacchetto con la propria chiave privata
  • il sistema dell utente verifica la firma con la chiave pubblica del produttore

In questo modo si ha la garanzia che il software provenga dalla fonte corretta e non sia stato manomesso.

Criptovalute e blockchain

Anche le criptovalute si basano sulla crittografia a chiave pubblica:

  • gli indirizzi pubblici del portafoglio derivano dalla chiave pubblica
  • le transazioni vengono firmate con la chiave privata del proprietario
  • la rete puo verificare le firme usando le chiavi pubbliche, senza pero poter spendere i fondi al posto dell utente

⚙ Come si usa la crittografia a chiave pubblica in un flusso tipico

1. Generazione della coppia di chiavi

L utente utilizza un software o una libreria crittografica, per esempio OpenSSL o GPG, per:

  • generare una coppia chiave pubblica, chiave privata
  • salvare la chiave privata in modo sicuro, spesso protetta da password
  • esportare la chiave pubblica per condividerla con altri
2. Condivisione della chiave pubblica

La chiave pubblica puo essere distribuita in vari modi:

  • inviata via email
  • pubblicata su un sito web personale o aziendale
  • caricata su un key server pubblico
  • inclusa in un certificato digitale rilasciato da una autorita di certificazione

Non importa se molte persone vedono la chiave pubblica, perche il suo compito e proprio quello di essere condivisa.

3. Cifratura di un messaggio

Chi vuole inviarti un messaggio riservato:

  • recupera la tua chiave pubblica
  • usa un software di crittografia per cifrare il contenuto
  • ti invia il testo cifrato
4. Decifratura del messaggio

Quando ricevi il messaggio cifrato:

  • apri il file o il testo con il programma di crittografia
  • inserisci la tua chiave privata, eventualmente protetta da password
  • il software usa la chiave privata per riportare il messaggio in chiaro
5. Firma digitale

In senso inverso, puoi utilizzare la chiave privata per firmare digitalmente un messaggio o un documento. Chiunque disponga della tua chiave pubblica puo:

  • verificare che la firma sia valida
  • controllare che il documento non sia stato modificato dopo la firma

Questo non serve a nascondere il contenuto, ma a garantire autenticita e integrita.

⚠ Vantaggi e limiti della crittografia a chiave pubblica

Vantaggi principali
  • nessuno scambio di chiavi segrete, perche la chiave pubblica puo essere distribuita liberamente
  • buona scalabilita, poiche chiunque puo comunicare con te in modo sicuro conoscendo solo la tua chiave pubblica
  • supporto a funzioni avanzate come firme digitali, autenticazione e controllo di integrita
Limiti principali
  • la crittografia a chiave pubblica e piu lenta rispetto alla crittografia simmetrica
  • gestire le chiavi richiede attenzione, soprattutto per la protezione della chiave privata
  • serve un sistema affidabile per collegare una chiave pubblica a una identita reale, per esempio tramite certificati
  • e necessario aggiornare periodicamente algoritmi e lunghezze di chiave per mantenere un buon livello di sicurezza

Per questi motivi, nella pratica si usa spesso un approccio ibrido:

  • la crittografia a chiave pubblica serve per scambiare in modo sicuro una chiave simmetrica
  • la crittografia simmetrica protegge il traffico vero e proprio, grazie a prestazioni migliori

📊 Algoritmi piu usati nella crittografia a chiave pubblica

Anche se i dettagli matematici possono essere complessi, e utile conoscere i principali algoritmi:

  • RSA: basato sulla fattorizzazione di numeri molto grandi. Storicamente e uno degli algoritmi piu diffusi per cifratura e firme digitali.
  • Diffie Hellman: progettato per lo scambio sicuro di chiavi su un canale insicuro.
  • ECDSA ed EdDSA: algoritmi a curve ellittiche che offrono un buon livello di sicurezza con chiavi piu corte rispetto a RSA, e prestazioni migliori in molti contesti.

Vedi le basi teoriche dell'Algoritmo RSA

📝 Domande frequenti sulla crittografia a chiave pubblica

Differenza tra chiave pubblica e chiave privata

La chiave pubblica e pensata per essere distribuita ad altri. Viene usata per cifrare messaggi verso di te e per verificare le firme digitali che crei.

La chiave privata invece deve restare segreta. Viene usata per decifrare i messaggi cifrati con la tua chiave pubblica e per firmare documenti o comunicazioni.

La crittografia a chiave pubblica e sicura

La sicurezza dipende da diversi fattori:

  • uso di algoritmi moderni e ben studiati
  • lunghezza adeguata delle chiavi
  • protezione della chiave privata con password robuste e, se possibile, hardware dedicato
  • aggiornamento regolare del software e dei protocolli di sicurezza

Nelle condizioni corrette, gli algoritmi a chiave pubblica sono considerati sicuri, perche si basano su problemi matematici ritenuti impraticabili da risolvere con la potenza di calcolo attualmente disponibile.

Posso usare solo la crittografia a chiave pubblica

In teoria si, ma in pratica e piu efficiente combinare la crittografia a chiave pubblica con quella simmetrica. La prima viene usata per stabilire un canale sicuro e scambiare una chiave simmetrica, la seconda per proteggere i dati durante la comunicazione vera e propria.

📌 Conclusioni

La crittografia a chiave pubblica e uno dei pilastri della sicurezza informatica. Permette di proteggere connessioni web, email, software, transazioni digitali e molto altro.

Capire che cosa e, come funziona e come si usa significa aumentare la consapevolezza su strumenti che utilizzi ogni giorno. Se ti occupi di sviluppo software o di sicurezza, questi concetti sono una base indispensabile per progettare e valutare sistemi sicuri.

Un semplice esempio

Vedi esempio crittografia con python e kaliLinux

Livio Bollini
Walter Livio Bollini

Matematico & Informatico · Intelligenza Artificiale · Sviluppo Web