Crittografia. Dalla storia antica ai computer quantistici

In questo articolo parleremo di Crittografia (o criprografia), della sua storia e dei principali ambiti di utilizzo, andando a riprendere, e quindi ad ampliare, la rubrica dedicata alla #websecurity. Dai geroglifici segreti degli antichi egizi alle moderne reti crittografiche che proteggono miliardi di transazioni online ogni giorno, la crittografia è sempre stata una battaglia tra chi cerca di custodire segreti (crittografi) e chi vuole svelarli (crittanalisti).Un’arte oscura e in continua evoluzione, nata sul campo di battaglia, perfezionata nei servizi segreti e oggi divenuta il pilastro della sicurezza digitale globale.

Ogni epoca ha visto innovazioni che hanno rivoluzionato il modo in cui proteggiamo le informazioni: dai cifrari spartani ai codici “indecifrabili” di Enigma, fino ai moderni algoritmi che resistono anche ai supercomputer più potenti. Ma con l’avvento dell’intelligenza artificiale e del calcolo quantistico, il futuro della crittografia potrebbe, dopo 50 anni, diventare incerto: riusciranno gli attuali sistemi di sicurezza a resistere alle nuove minacce? O siamo sull’orlo di una nuova rivoluzione?

In questo articolo provo a raccontare brevemente la storia della crittografia esplorando le tappe fondamentali di questa disciplina, dalle origini più antiche alle tecnologie che oggi proteggono i nostri dati più preziosi.

Indice

Let’s go !!!

Le Origini: Crittografia nell’antichità

La crittografia ha origini antichissime ed è nata dalla necessità di proteggere messaggi sensibili, principalmente in ambito militare, religioso e diplomatico. I primi metodi crittografici erano piuttosto rudimentali e si basavano su tecniche di trasposizione e sostituzione, che alteravano la forma del messaggio senza cambiarne il contenuto.

Geroglifici modificati (Egitto, 1900 a.C.)

Gli antichi Egizi utilizzavano forme criptiche della scrittura geroglifica per nascondere informazioni importanti. Alcuni geroglifici venivano deliberatamente alterati per essere comprensibili solo agli scribi di alto rango o ai sacerdoti. In particolare, documenti religiosi e iscrizioni funerarie a volte contenevano varianti simboliche o caratteri non convenzionali per nascondere significati esoterici o per impedire che certe conoscenze venissero diffuse tra i non iniziati.

La scitala spartana (V secolo a.C.)

Uno dei primi dispositivi crittografici conosciuti è la scitala spartana, utilizzata dall’esercito spartano per inviare ordini segreti ai propri generali. Ma come funzionava esattamente?

  • Il messaggio veniva scritto su una lunga striscia di pelle o pergamena, avvolta attorno a un bastone cilindrico di diametro specifico.
  • Una volta srotolata, la pergamena mostrava solo lettere sparse, prive di senso apparente.
  • Per decifrare il messaggio, il destinatario doveva avvolgere la striscia attorno a un bastone identico, ovvero della stessa circonferenza, facendo combaciare le lettere nel giusto ordine.

Questo metodo era efficace perché, senza il bastone giusto, il messaggio risultava incomprensibile. Tuttavia, se un nemico riusciva a ricostruire il diametro del bastone, il sistema diventava vulnerabile.

La scitala spartana è in realtà considerata stenografia piuttosto che crittografia perché non modifica il contenuto del messaggio, ma lo rende leggibile solo con il supporto fisico corretto (ovvero la chiave). La stenografia si concentra nel nascondere un messaggio senza alterarlo, mentre la crittografia lo trasforma in un formato cifrato, rendendolo incomprensibile senza una chiave di decodifica. La scitala, quindi, non applica una vera cifratura, ma nasconde il testo attraverso un metodo fisico.

Cifrario di Cesare (I secolo a.C.)

Il cifrario di Cesare prende il nome da Giulio Cesare, che lo utilizzava per proteggere le comunicazioni militari. Questo metodo consisteva in una sostituzione monoalfabetica, in cui ogni lettera del messaggio veniva traslata di un numero fisso di posizioni nell’alfabeto.

Esempio con una traslazione di 3:

  • Testo in chiaro: GATTO
  • Testo cifrato: JDWWR

Questo cifrario era semplice da applicare e garantiva una protezione basilare, soprattutto contro chi non conosceva il metodo. Tuttavia, era estremamente vulnerabile all’analisi delle frequenze, ovvero lo studio della ricorrenza delle lettere nel testo cifrato. Lingue come il latino e l’italiano hanno lettere più comuni di altre (es. la “E” è molto frequente), permettendo a un crittografo esperto di riconoscere gli schemi e risalire al messaggio originale.

Analisi delle frequenze

L’analisi delle frequenze è una tecnica fondamentale nella crittografia e nella linguistica computazionale, utilizzata per studiare la distribuzione delle lettere in una lingua. Ogni lingua ha una propria frequenza caratteristica delle lettere, e in italiano, ad esempio, le lettere più comuni sono la E, la A e la I, mentre quelle meno frequenti sono la Z, la J, la K, la We la X, spesso presenti solo in parole di origine straniera.

Questa tecnica è stata storicamente utilizzata per decifrare messaggi cifrati con metodi di sostituzione monoalfabetica, come, appunto, il Cifrario di Cesare, poiché la sostituzione fissa delle lettere mantiene le frequenze originali, rendendo il messaggio vulnerabile all’analisi statistica. Per contrastare questa debolezza, sono stati sviluppati metodi più complessi, come la crittografia polialfabetica, che alterano le frequenze per rendere più difficile l’individuazione degli schemi.

Oltre alla crittografia, l’analisi delle frequenze è impiegata anche nella linguistica forense, per identificare l’autore di un testo, e nell’intelligenza artificiale, per il riconoscimento automatico del linguaggio e la correzione ortografica.

Analisi delle frequenze delle lettere nella lingua italiana

LetteraFrequenza (%)
A11.74
B1.02
C4.5
D3.73
E11.79
F1.15
G1.64
H1.54
I11.28
J0.49
K0.01
L6.51
M2.51
N6.88
O9.83
P3.05
Q0.51
R6.37
S4.98
T5.62
U3.01
V2.1
W0.02
X0.05
Y0.02
Z0.49
analisi delle frequenze lingua italiana
analisi delle frequenze lingua italiana

Limiti della crittografia antica

Sebbene questi metodi fossero innovativi per l’epoca, presentavano gravi vulnerabilità:

  • L’uso di alfabeti fissi rendeva prevedibili le sostituzioni e permetteva la decrittazione con semplici tentativi.
  • L’analisi delle frequenze poteva rivelare il contenuto dei messaggi, soprattutto in testi lunghi.
  • L’assenza di chiavi variabili significava che, una volta scoperta la regola di cifratura, ogni messaggio poteva essere decifrato facilmente.

Con l’aumentare della complessità delle comunicazioni, queste tecniche primitive divennero rapidamente obsolete, spingendo gli studiosi medievali e rinascimentali a sviluppare cifrari più avanzati, come la crittografia polialfabetica e i primi metodi basati su chiavi segrete.

Dal medioevo al rinascimento: la crittografia si raffina

Con la crescente esigenza di proteggere le informazioni militari e diplomatiche, vennero introdotti sistemi più avanzati.

Il Cifrario di Vigenère (XVI secolo): un’illusione di sicurezza

Cifrario di Vigenère
Tabula recta – Cifrario di Vigenère

Uno dei più noti sviluppi della crittografia simmetrica fu il cifrario di Vigenère, descritto per la prima volta nel 1553 da Giovan Battista Bellaso, ma erroneamente attribuito più tardi a Blaise de Vigenère.

Come funziona il cifrario di Vigenère?

Il cifrario di Vigenère è una sostituzione polialfabetica, che utilizza più alfabeti di sostituzione per rendere l’analisi delle frequenze molto più difficile rispetto ai cifrari monoalfabetici come quello di Cesare. Ma come funziona? Vediamone un esempio pratico e i passi da seguire.

Il cifrario di Vigenère utilizza una parola chiave segreta per determinare come ogni lettera del messaggio verrà cifrata.
Esempio: scegliamo la chiave “LEONE”.

Supponiamo di voler cifrare il messaggio in chiaro:
“CRIPTOGRAFIA”

Poiché la chiave potrebbe essere più corta del messaggio, viene ripetuta più volte fino a coprirne l’intera lunghezza (vedi tabellina precedente):

Testo in chiaroCRIPTOGRAFIA
Chiave ripetutaLEONELEONELE

Il cifrario di Vigenère utilizza una tabella speciale, chiamata “tabula recta”, composta da 26 righe. Ogni riga rappresenta l’alfabeto sfalsato di una posizione rispetto alla precedente.

Per cifrare una lettera, si segue questo procedimento:

  1. Trova la riga corrispondente alla lettera della chiave.
    • Se la lettera della chiave è “L”, usiamo la riga che inizia con L.
  2. Trova la colonna corrispondente alla lettera del messaggio in chiaro.
    • Se la lettera del messaggio è “C”, cerchiamo la colonna C.
  3. L’intersezione tra la riga della chiave e la colonna del messaggio fornisce la lettera cifrata.
    • La riga L e la colonna C si incrociano nella lettera N.

Si ripete il processo per ogni lettera:

Testo in chiaroCRIPTOGRAFIA
Chiave ripetutaLEONELEONELE
Testo cifratoNVWCSSKFNJTE

Quindi, il messaggio cifrato finale è:
“NVWCSSKFNJTE”

Perché il cifrario di Vigenère sembrava sicuro?

  • Crittografia polialfabetica: Usando più alfabeti di sostituzione, l’analisi delle frequenze è più difficile rispetto ai cifrari monoalfabetici.
  • Chiavi più lunghe aumentano la sicurezza: Se la chiave fosse lunga quanto il messaggio (e casuale), il cifrario diventerebbe un one-time pad, un metodo in teoria inviolabile.

La debolezza del cifrario di Vigenère

Nel 1863, il crittografo Friedrich Kasiski scoprì un metodo per decifrare Vigenère senza conoscere la chiave, noto come attacco di Kasiski:

  1. Si cerca la ripetizione di sequenze di lettere nel testo cifrato.
  2. La distanza tra le ripetizioni suggerisce la lunghezza della chiave.
  3. Una volta nota la lunghezza della chiave, si può suddividere il testo in sezioni e trattarle come cifrari di Cesare separati, rendendo il sistema vulnerabile.

Per questo motivo, nonostante la sua popolarità, il cifrario di Vigenère divenne obsoleto con l’avanzare della crittografia moderna. Il cifrario di Vigenère è stato considerato sicuro per circa 300 anni. Fu descritto per la prima volta nel XVI secolo (circa 1553) e rimase uno dei sistemi crittografici più resistenti fino alla metà del XIX secolo

Enigma (XX secolo)

Enigma era una macchina elettromeccanica di crittografia usata dalla Germania nazista durante la Seconda Guerra Mondiale per proteggere le comunicazioni militari. Il suo funzionamento si basava su un complesso sistema di rotori intercambiabili che modificavano la codifica del messaggio a ogni pressione di tasto, generando milioni di combinazioni possibili. Ogni macchina Enigma era dotata di una tastiera, un pannello di connessione per ulteriori permutazioni e una serie di rotori che determinavano la trasformazione del testo. Il sistema di cifratura variava quotidianamente secondo chiavi segrete condivise tra gli operatori, rendendo quasi impossibile decifrare i messaggi senza conoscere la configurazione precisa. Tuttavia, grazie agli sforzi dei crittografi polacchi e, successivamente, di Alan Turing e del team di Bletchley Park, il codice di Enigma fu violato, permettendo agli Alleati di intercettare e comprendere le comunicazioni tedesche, influenzando significativamente l’esito della guerra. Questo straordinario lavoro di decrittazione è raccontato nel film The Imitation Game (2014), con Benedict Cumberbatch nel ruolo di Turing, che, seppur in modo romanzato e a volte distante dalla realtà, riesce a mostrare le difficoltà, le intuizioni geniali e il peso storico della scoperta.

Standard moderni di crittografia

Gli attuali standard di crittografia combinano algoritmi simmetrici, asimmetrici e funzioni di hashing per garantire sicurezza, velocità e resistenza agli attacchi informatici. Tra i più utilizzati troviamo AES, RSA, ECDSA, Diffie-Hellman e protocolli come TLS, fondamentali per la protezione delle comunicazioni online.

Crittografia simmetrica

La crittografia simmetrica utilizza la stessa chiave per cifrare e decifrare i dati. È veloce ed efficiente, ma richiede una gestione sicura delle chiavi. Il principale standard attuale è AES (Advanced Encryption Standard), che ha sostituito il vecchio DES e supporta chiavi da 128, 192 e 256 bit. AES è usato in VPN, TLS, Wi-Fi (WPA2/WPA3) e crittografia di file e database.

Un’alternativa moderna è ChaCha20, più veloce di AES su dispositivi a bassa potenza come smartphone e IoT, ed è adottato in TLS 1.3 e WireGuard VPN. Ancora presente in alcune applicazioni legacy, 3DES (Triple DES) è una versione migliorata del DES originale, ma oggi risulta lento e meno sicuro rispetto ad AES.

Crittografia asimmetrica

public key encription
public key encription

A differenza della crittografia simmetrica, quella asimmetrica utilizza una coppia di chiavi: una pubblica per cifrare e una privata per decifrare. Questo sistema è fondamentale per la sicurezza delle comunicazioni su Internet e la gestione delle firme digitali.

L’algoritmo RSA, basato sulla fattorizzazione di numeri primi, è ampiamente usato in HTTPS (TLS/SSL), crittografia delle email (PGP) e blockchain. Con l’avvento del quantum computing, chiavi RSA inferiori a 2048 bit non sono più considerate sicure.

Una soluzione più efficiente è ECDSA (Elliptic Curve Digital Signature Algorithm), che offre lo stesso livello di sicurezza di RSA-3072 bit con chiavi molto più piccole, rendendolo ideale per blockchain, certificati digitali e firme elettroniche.

Per lo scambio sicuro delle chiavi crittografiche, i protocolli Diffie-Hellman (DH) e la sua variante ECDH vengono impiegati in TLS, SSH e IPsec, con ECDH preferito per migliori prestazioni e sicurezza avanzata.

Funzioni di hashing

Le funzioni di hashing garantiscono l’integrità e la verifica dei dati, essenziali per firme digitali, protezione delle password e certificati digitali. SHA-256, appartenente alla famiglia SHA-2, è lo standard per blockchain, firme digitali e certificati di sicurezza. In alternativa, SHA-3, basato sull’algoritmo Keccak, offre un’architettura più sicura e sta guadagnando popolarità.

Per la protezione delle password, Argon2 è oggi la funzione di derivazione più sicura, vincitrice del Password Hashing Competition. Al contrario, MD5, un tempo usato per verificare l’integrità dei file, è ora considerato vulnerabile alle collisioni e sostituito da SHA-256 o SHA-3.

Protocolli di sicurezza

I protocolli di sicurezza combinano crittografia simmetrica e asimmetrica per proteggere i dati in transito. TLS 1.3 è lo standard per la crittografia delle comunicazioni su Internet, utilizzato in HTTPS, email e VPN. Rispetto alle versioni precedenti, elimina algoritmi insicuri come 3DES e RSA statico, affidandosi a cifrari più sicuri come AES-GCM e ChaCha20.

Per la crittografia delle email e della messaggistica, PGP (Pretty Good Privacy) e OpenPGP integrano RSA, AES e SHA-2 per proteggere le comunicazioni. IPsec, invece, viene utilizzato per cifrare le connessioni di rete e le VPN, sfruttando AES e lo scambio di chiavi Diffie-Hellman.

La crittografia moderna. Dall’asimmetrica al digitale

La crittografia ha attraversato secoli di evoluzione, passando dai semplici cifrari classici a sistemi sempre più sofisticati. L’avvento dell’informatica e delle reti globali ha reso necessaria l’adozione di tecniche avanzate, dando origine alla crittografia moderna, che garantisce sicurezza e autenticazione nell’era digitale.

Diffie-Hellman e la nascita della crittografia asimmetrica (1976)

Il problema della distribuzione delle chiavi

Fino agli anni ‘70, la crittografia era basata su sistemi simmetrici, in cui mittente e destinatario dovevano condividere una chiave segreta prima di poter comunicare in sicurezza. Eppure, scambiare la chiave su un canale insicuro era rischioso.

Whitfield Diffie e Martin Hellman risolsero questo problema introducendo un metodo per generare una chiave segreta condivisa senza trasmetterla direttamente.

Il funzionamento del protocollo Diffie-Hellman

Il protocollo si basa su un principio della matematica chiamato problema del logaritmo discreto, che rende difficile risalire a una base esponenziale a partire dal risultato di una potenza modulare. Vediamo come funziona a grandi linee:

  1. Scelta di un numero pubblico: Due persone (Alice e Bob) scelgono un numero grande e una base, entrambi pubblici.
  2. Calcolo delle chiavi private: Ognuno sceglie un numero segreto (privato) e lo combina con i numeri pubblici usando una formula matematica.
  3. Scambio delle chiavi pubbliche: Alice e Bob si scambiano il risultato di questa operazione, ma senza rivelare il numero segreto.
  4. Calcolo della chiave condivisa: Usando la chiave ricevuta dall’altro, ciascuno può calcolare la stessa chiave segreta finale, che servirà per criptare i messaggi.

Se siete curiosi e volete approfondire i calcoli alla basse di Diffie-Hellman potete visitare la pagina dedicata.

Applicazioni di Diffie-Hellman

  • SSL/TLS: usato per stabilire connessioni sicure su internet.
  • VPN: per negoziare chiavi di crittografia tra client e server.
  • Protezione della messaggistica istantanea: in protocolli come Signal e WhatsApp.

L’unico difetto di DH è che non protegge da attacchi Man-in-the-Middle (MitM): senza un meccanismo di autenticazione, un attaccante potrebbe sostituirsi a uno dei due interlocutori. Per questo motivo, oggi viene combinato con firme digitali.

Il Data Encryption Standard (DES): la prima crittografia standardizzata (1977)

Negli anni ’70, con l’aumento della potenza di calcolo, era necessario un sistema crittografico standardizzato per proteggere i dati governativi e aziendali. Il governo USA adottò il Data Encryption Standard (DES), sviluppato da IBM e modificato dalla NSA.

Il Funzionamento di DES

DES è un algoritmo di crittografia simmetrica basato su una chiave di 56 bit, suddiviso in più fasi:

  1. Mescolamento iniziale – I bit del messaggio vengono riorganizzati secondo una regola fissa.
  2. 16 passaggi di modifica – In ogni passaggio:
    • I dati vengono mescolati con una parte della chiave.
    • Vengono sostituiti alcuni valori per rendere il codice più difficile da decifrare.
    • I bit vengono riorganizzati di nuovo.
  3. Mescolamento finale – I bit vengono sistemati un’ultima volta per ottenere il messaggio cifrato.

L’idea è rendere il testo illeggibile in modo che solo chi ha la chiave possa decifrarlo.

Ogni round utilizza una sottochiave derivata dalla chiave principale, generata da un algoritmo di permutazione e rotazione.

Vulnerabilità di DES

Nonostante la sua sicurezza iniziale, con il tempo DES divenne vulnerabile a brute force a causa della chiave di soli 56 bit.

  • Nel 1997, la Electronic Frontier Foundation costruì un computer capace di decifrare DES in meno di 24 ore.
  • Per contrastare questo problema, venne introdotto il Triple DES (3DES), che applica l’algoritmo tre volte con chiavi diverse, aumentando la sicurezza.
  • Nel 2001, il DES venne sostituito dall’AES (Advanced Encryption Standard), che usa chiavi da 128, 192 o 256 bit.

RSA: la rivoluzione della crittografia a chiave pubblica (1977)

Introduzione alla crittografia a chiave pubblica

Fino agli anni ’70, la crittografia si basava principalmente su algoritmi simmetrici, in cui mittente e destinatario dovevano condividere una chiave segreta prima di poter comunicare in modo sicuro. Questo poneva un problema fondamentale: come scambiarsi la chiave senza che un attaccante potesse intercettarla?

Per risolvere questo problema, nel 1976, come abbiamo visto, Diffie e Hellman introdussero un metodo per generare una chiave condivisa su un canale insicuro. Il vero salto di qualità avvenne nel 1977, quando Ron Rivest, Adi Shamir e Leonard Adleman svilupparono RSA, il primo algoritmo pratico di crittografia a chiave pubblica (o asimmetrica).

Per funzionare, RSA aveva bisogno di un’operazione matematica che fosse facile da eseguire in un verso e quasi impossibile da invertire senza un’informazione segreta. Era necessario un sistema in cui il procedimento fosse matematicamente valido per ogni messaggio possibile e che un messaggio cifrato con la chiave pubblica potesse essere decifrato solo con la chiave privata.

Si è trovato che moltiplicare due numeri primi grandi è facile, ma scomporre il loro prodotto per risalire ai fattori è estremamente difficile (problema della fattorizzazione dei numeri primi).

Questo sistema risolve il problema dello scambio sicuro delle chiavi e permette l’implementazione di firme digitali (di cui parleremo più avanti).

L’innovazione di RSA risiede nel concetto di chiave pubblica e chiave privata:

  • Ogni utente possiede due chiavi: una pubblica, che può essere diffusa liberamente, e una privata, che deve essere mantenuta segreta.
  • I messaggi cifrati con la chiave pubblica possono essere decifrati solo con la corrispondente chiave privata.
  • Viceversa, i messaggi firmati con la chiave privata possono essere verificati con la chiave pubblica, garantendo autenticità.

Il principio matematico dietro RSA

L’algoritmo RSA si basa su un problema matematico noto come fattorizzazione dei numeri primi. La sua sicurezza dipende dalla difficoltà di trovare i due fattori primi di un numero molto grande, un’operazione che richiede un’enorme quantità di tempo computazionale.

Come Funziona RSA

L’algoritmo RSA si compone di tre fasi: generazione delle chiavi, cifratura e decifratura.

Per generare le chiavi, si scelgono due numeri primi molto grandi e si moltiplicano tra loro per ottenere un numero detto modulo. Ad esempio, scegliendo 61 e 53, il modulo sarà 3233. Si calcola poi un valore chiamato φ(n), che dipende dai due numeri primi e serve per il passo successivo. Nel nostro esempio, φ(n) = 3120.

A questo punto si sceglie un numero e, detto esponente pubblico, che deve essere coprimo con φ(n). Un valore comune è 65537, ma nell’esempio useremo 17. Infine, si calcola d, l’esponente privato, che è l’inverso di e modulo φ(n). In questo caso, d = 2753. Ora la chiave pubblica sarà composta da (e, n) e la chiave privata da (d, n).

Per cifrare un messaggio, questo deve essere prima convertito in un numero. Supponiamo che il nostro messaggio sia il numero 65 (che può rappresentare una lettera in ASCII). Per cifrarlo si usa la formula c = m^e mod n. Applicando i valori scelti, otteniamo c = 2790. Questo numero è il messaggio cifrato che può essere inviato al destinatario.

Chi riceve il messaggio, conoscendo la chiave privata, può decifrarlo con la formula m = c^d mod n. Nel nostro caso, calcolando 2790^2753 mod 3233, si ottiene di nuovo 65, che corrisponde al messaggio originale.

Applicazioni di RSA

RSA viene usato per proteggere le comunicazioni online. Anche se è più lento di altri algoritmi, è ideale per cifrare le chiavi di sessione di sistemi più veloci come AES. Un’altra applicazione importante è la firma digitale, che garantisce autenticità e integrità dei messaggi. Il mittente genera un hash del messaggio e lo cifra con la propria chiave privata, mentre il destinatario lo verifica con la chiave pubblica. Questo meccanismo è alla base della sicurezza di certificati SSL/TLS, email crittografate e blockchain.

RSA è essenziale anche per il protocollo HTTPS, che protegge le connessioni tra browser e siti web, rendendo sicure le transazioni online.

PGP (Pretty Good Privacy): la crittografia per tutti (1991) e il conflitto con il governo

Negli anni ‘90, con la diffusione di Internet, proteggere le comunicazioni digitali divenne una necessità sempre più urgente. Fino ad allora, la crittografia era stata un’esclusiva di governi e istituzioni militari, mentre gli utenti comuni non avevano strumenti adeguati per proteggere la propria privacy.

Nel 1991, Phil Zimmermann sviluppò PGP (Pretty Good Privacy), un software che permetteva di cifrare e firmare digitalmente i messaggi con un alto livello di sicurezza. L’idea alla base di PGP era semplice ma potente: combinare crittografia simmetrica e asimmetrica per garantire sia velocità che protezione. Il sistema utilizzava RSA per la gestione delle chiavi, IDEA per la cifratura dei dati e SHA-1 per assicurare l’integrità del messaggio. Questo modello permetteva agli utenti di proteggere le proprie comunicazioni senza la necessità di scambiare chiavi segrete in anticipo.

Come Funziona PGP?

Quando un utente invia un messaggio con PGP, il sistema esegue tre passaggi. Per prima cosa, il messaggio viene cifrato con un algoritmo simmetrico come AES o IDEA, utilizzando una chiave di sessione generata casualmente. Poiché la crittografia simmetrica è veloce, questo metodo garantisce prestazioni ottimali. La chiave di sessione viene poi cifrata con la chiave pubblica RSA del destinatario, assicurando che solo il proprietario della chiave privata corrispondente possa decifrarla. Infine, il mittente può firmare digitalmente il messaggio con la propria chiave privata, consentendo al destinatario di verificare l’autenticità del mittente e l’integrità del messaggio.

Il conflitto con il governo degli Stati Uniti

Il successo di PGP attirò rapidamente l’attenzione del governo statunitense. All’epoca, la crittografia avanzata era considerata una tecnologia strategica e soggetta alle stesse restrizioni dell’esportazione di armamenti militari. Zimmermann si ritrovò presto sotto indagine per aver reso disponibile PGP a livello globale, eludendo le restrizioni sulle esportazioni. L’inchiesta durò diversi anni, ma alla fine non si arrivò a un’accusa formale. Il caso evidenziò il timore delle autorità che una crittografia forte potesse essere utilizzata da criminali e terroristi, ostacolando le attività di sorveglianza governativa.

Parallelamente, PGP dovette affrontare anche problemi di licenza con RSA Security, l’azienda che deteneva i diritti sul brevetto dell’algoritmo RSA negli Stati Uniti. Poiché PGP utilizzava RSA per la gestione delle chiavi, la sua distribuzione senza una licenza ufficiale portò a una disputa legale. Zimmermann risolse il problema creando OpenPGP, un’alternativa basata su standard aperti che eliminava la dipendenza da tecnologie brevettate.

L’impatto e l’eredità di PGP

Nonostante le controversie, PGP si affermò rapidamente come uno strumento essenziale per la protezione delle email e delle comunicazioni digitali. La sua architettura decentralizzata e la robustezza della crittografia lo resero popolare tra attivisti, giornalisti e utenti attenti alla privacy, proteggendoli da intercettazioni governative e cybercriminali.

Con il tempo, il software evolse in GnuPG (GPG), una versione open-source conforme allo standard OpenPGP, che oggi viene utilizzata per firme digitali, crittografia end-to-end e sicurezza informatica avanzata. Nonostante la crescente diffusione di nuovi protocolli crittografici, PGP rimane uno dei metodi più affidabili per garantire la privacy delle comunicazioni digitali, segnando una svolta nella democratizzazione della crittografia.

Applicazioni moderne della crittografia: sicurezza digitale, firme digitali e SSL/TLS

Nell’era digitale, la crittografia è fondamentale per proteggere informazioni sensibili in settori come finanza, comunicazioni, sanità e commercio elettronico. Gli algoritmi moderni garantiscono riservatezza, integrità, autenticità e non ripudio sia nelle comunicazioni sia nei dati archiviati. Tra le applicazioni più importanti spiccano la firma digitale e il protocollo SSL/TLS, elementi chiave della sicurezza informatica.

Firma digitale: autenticità e non ripudio

La firma digitale è un sistema crittografico che permette di verificare l’autenticità di un messaggio o di un documento elettronico. Basata sulla crittografia asimmetrica, garantisce che il messaggio provenga realmente dal mittente, assicura che il contenuto non sia stato alterato e impedisce al firmatario di negare di averlo sottoscritto.

Il processo di firma avviene in tre fasi. Per prima cosa, il mittente genera un hash del documento tramite una funzione crittografica come SHA-256. Questo hash viene poi cifrato con la chiave privata del mittente, ottenendo così la firma digitale, che viene allegata al documento prima di essere inviato. Quando il destinatario lo riceve, calcola nuovamente l’hash del documento ricevuto e decifra la firma digitale usando la chiave pubblica del mittente. Se i due hash coincidono, il documento è autentico e non è stato modificato; in caso contrario, il contenuto potrebbe essere stato alterato o la firma potrebbe essere fraudolenta.

Le applicazioni della firma digitale sono molteplici. Viene utilizzata per la firma di contratti elettronici, conferendo valore legale ai documenti digitali in molti paesi. Nel settore delle criptovalute, blockchain come Bitcoin ed Ethereum la impiegano per autenticare le transazioni. Anche la Posta Elettronica Certificata (PEC) sfrutta la firma digitale per garantire autenticità e non ripudio dei messaggi. Inoltre, software e aggiornamenti di sistema vengono firmati digitalmente da aziende come Microsoft, Apple e Google per assicurare che non siano stati alterati da terze parti.

SSL/TLS: protezione delle comunicazioni online

SSL (Secure Sockets Layer) e il suo successore TLS (Transport Layer Security) garantiscono la sicurezza delle comunicazioni su internet, proteggendo transazioni online, navigazione web e scambio di dati sensibili. Cifrano le informazioni trasmesse, impedendo intercettazioni e modifiche non autorizzate.

SSL/TLS utilizza un handshake crittografico tra client (ad esempio un browser) e server (un sito web). Il client invia una richiesta HTTPS, il server risponde con un certificato digitale contenente la chiave pubblica e l’identità del sito, verificata da un’autorità di certificazione come DigiCert o Let’s Encrypt. Se il certificato è valido, il client genera una chiave di sessione, la cifra con la chiave pubblica del server e la invia. Il server la decifra con la propria chiave privata, stabilendo così una connessione sicura basata su algoritmi di cifratura come AES o ChaCha20.

SSL/TLS è alla base del protocollo HTTPS, che protegge la connessione tra utenti e siti web. I browser mostrano un lucchetto nella barra degli indirizzi per indicare un sito sicuro, mentre Google penalizza quelli privi di HTTPS. Il settore finanziario si affida a SSL/TLS per proteggere transazioni su piattaforme come Amazon, PayPal e Stripe, oltre che nei servizi di home banking. Anche VPN, email (con STARTTLS) e cloud computing lo utilizzano per garantire sicurezza. Aziende come AWS, Google Cloud e Microsoft Azure lo adottano per proteggere i dati scambiati tra server e utenti.

Confronto tra firma digitale e SSL/TLS

CaratteristicaFirma DigitaleSSL/TLS
ObiettivoAutenticare e proteggere documentiProteggere la comunicazione tra dispositivi
MeccanismoCrittografia asimmetrica e hashCrittografia simmetrica e asimmetrica
Chiave utilizzataPrivata per firmare, pubblica per verificarePubblica per handshake, simmetrica per sessione
Esempi d’usoContratti, PEC, blockchainHTTPS, email, VPN, transazioni finanziarie

La crittografia moderna è alla base della sicurezza digitale. Le firme digitali garantiscono autenticità e integrità nei documenti e nelle transazioni online, mentre SSL/TLS protegge la trasmissione di dati sensibili su internet. Con l’aumento delle minacce informatiche, l’adozione di questi protocolli è essenziale per garantire privacy e sicurezza nelle comunicazioni moderne.

Crittografia a Curve Ellittiche (ECC): sicurezza con efficienza

La crittografia a curve ellittiche (ECC) è un metodo avanzato per proteggere i dati. Rispetto a sistemi come RSA, offre la stessa sicurezza con chiavi più corte, riducendo il consumo di risorse e rendendola ideale per dispositivi con poca potenza, come smartphone e dispositivi IoT.

Come funziona ECC?

ECC si basa sulle proprietà matematiche delle curve ellittiche. Un punto sulla curva può essere sommato a sé stesso più volte, creando una relazione difficile da invertire. Questa difficoltà è alla base della sicurezza di ECC: trovare il numero esatto di volte in cui un punto è stato sommato (moltiplicazione scalare) è praticamente impossibile senza la chiave segreta.

Perché ECC è vantaggiosa?

A parità di sicurezza, ECC usa chiavi molto più piccole rispetto a RSA. Ad esempio, una chiave ECC da 256 bit offre lo stesso livello di protezione di una chiave RSA da 3072 bit. Questo significa meno consumo di memoria, meno calcoli e maggiore velocità nelle operazioni di crittografia.

Dove viene utilizzata ECC?

ECC è usata in molte applicazioni di sicurezza. Il protocollo ECDH permette a due dispositivi di creare una chiave segreta condivisa senza trasmetterla direttamente, rendendolo essenziale in SSL/TLS, VPN e messaggistica sicura (come Signal e WhatsApp). L’algoritmo ECDSA invece è usato per firme digitali, proteggendo transazioni in Bitcoin ed Ethereum, certificati SSL/TLS e aggiornamenti software firmati da aziende come Apple e Google.

Sfide e futuro

ECC è molto sicura, ma potrebbe essere vulnerabile ai computer quantistici, che in futuro potrebbero decifrare i suoi algoritmi. Per questo motivo, si stanno studiando nuove soluzioni crittografiche per resistere a questa minaccia. Grazie alla sua efficienza e sicurezza, ECC è oggi una delle tecnologie più utilizzate per proteggere le comunicazioni digitali.

Il futuro della crittografia e la minaccia del Quantum Computing

L’arrivo dei computer quantistici rappresenta una svolta nella crittografia, mettendo a rischio la sicurezza degli attuali algoritmi. A differenza dei computer tradizionali, che elaborano dati in bit con valori 0 o 1, i computer quantistici utilizzano qubit, che possono trovarsi in più stati contemporaneamente. Questa caratteristica consente loro di risolvere problemi matematici complessi con una velocità esponenzialmente superiore.

Uno dei principali pericoli riguarda la crittografia a chiave pubblica, in particolare algoritmi come RSA, Diffie-Hellman ed ECC, che si basano su problemi matematici difficili da risolvere per i computer classici. Tuttavia, un computer quantistico potrebbe scomporre rapidamente numeri primi e risolvere il problema del logaritmo discreto, compromettendo la sicurezza di questi sistemi. Ad esempio, un sistema RSA-2048, attualmente considerato sicuro, potrebbe tendialmente essere violato da un computer quantistico. Anche ECC-256, utilizzato in blockchain, TLS e certificati digitali, sarebbe vulnerabile.

La crittografia Post-Quantistica: soluzioni per il futuro

Per proteggere i dati in un mondo in cui i computer quantistici diventeranno realtà, i ricercatori stanno sviluppando nuovi algoritmi in grado di resistere a questo tipo di attacchi. Una delle soluzioni più promettenti è la crittografia basata su reticoli, che sfrutta strutture matematiche complesse e problemi estremamente difficili da risolvere, anche per i computer quantistici. Algoritmi come Kyber per lo scambio di chiavi e Dilithium per le firme digitali sono tra i principali candidati a sostituire RSA ed ECC.

La transizione alla crittografia Post-Quantistica

Per prepararsi a questa nuova era, il NIST (National Institute of Standards and Technology) sta lavorando alla selezione dei nuovi standard crittografici resistenti ai computer quantistici. Tra i candidati principali ci sono Kyber, Dilithium e SPHINCS+, che nei prossimi anni potrebbero diventare i nuovi pilastri della sicurezza digitale. Si prevede che, entro il 2030, gran parte delle infrastrutture crittografiche globali sarà aggiornata con tecnologie quantum-safe, rendendo la crittografia attuale obsoleta.

L’evoluzione della crittografia è inevitabile e richiederà un’azione coordinata da parte di governi, aziende e istituzioni. Mentre i computer quantistici continueranno a progredire, la ricerca nella crittografia post-quantistica sarà fondamentale per garantire la sicurezza delle comunicazioni digitali nei decenni a venire.


Crittografia, Supercomputer e Intelligenza Artificiale: un nuovo equilibrio

L’aumento della potenza di calcolo non è dovuto solo ai computer quantistici, ma anche ai supercomputer, all’High-Performance Computing (HPC) e all’Intelligenza Artificiale (IA). Queste tecnologie stanno trasformando la crittografia, creando nuove opportunità e sfide per la sicurezza digitale.

supercomputer vengono utilizzati per testare la sicurezza degli algoritmi esistenti e sviluppare nuovi schemi crittografici. Le simulazioni su larga scala permettono di individuare vulnerabilità e migliorare le prestazioni della crittografia in settori come blockchain, finanza e cloud computing. La stessa potenza computazionale può essere impiegata per attacchi informatici avanzati. Gli attacchi brute force contro chiavi di cifratura a lunghezza ridotta stanno accelerando l’obsolescenza di vecchi standard come RSA-1024 e DES, spingendo verso l’adozione di chiavi più lunghe e algoritmi più sicuri.

L’Intelligenza Artificiale rappresenta un’altra arma a doppio taglio. Da un lato, il machine learning viene usato per ottimizzare gli algoritmi di cifratura, rilevare anomalie nelle reti informatiche e migliorare i sistemi di autenticazione. Dall’altro, l’IA può essere utilizzata per sviluppare nuovi modelli di attacco crittografico, analizzando grandi quantità di dati e identificando schemi invisibili ai metodi tradizionali. Gli attacchi basati su deep learning potrebbero, ad esempio, velocizzare la decifratura di chiavi crittografiche sfruttando le imperfezioni nei tempi di esecuzione degli algoritmi.

Nei prossimi anni, la combinazione tra HPC, IA e crittografia post-quantistica sarà essenziale per garantire la sicurezza digitale globale. Gli algoritmi crittografici dovranno adattarsi a un mondo in cui le capacità computazionali continuano a crescere, sviluppando modelli flessibili e resistenti sia agli attacchi brute force sia a quelli avanzati generati dall’Intelligenza Artificiale e dai supercomputer di nuova generazione.

Insomma, come sempre, la guerra tra crittografia e crittoanalisti … continua

Testi consigliati

Codici e segreti
Scritto da Simon Singh esplora la storia e l’evoluzione della crittografia, dai cifrari antichi alle moderne tecniche di crittografia digitale. Il libro svela come la scienza dei codici abbia influenzato guerre, politica e tecnologia nel corso dei secoli.

La crittografia da Cesare ai quanti. Un percorso formativo su algoritmi, sicurezza e blockchain
Scritto da Mario Rossano, questo libro offre un percorso formativo che copre dagli algoritmi classici fino alle moderne applicazioni in blockchain.

Manuale di crittografia. Teoria, algoritmi e protocolli
Autori: Alessandro Languasco e Alessandro Zaccagnini. Il testo presenta il linguaggio della crittografia moderna, includendo storia, matematica, algoritmi e applicazioni pratiche. 

Segreti, Spie, Codici Cifrati
Scritto da Giustozzi, Monti e Zimuel, questo volume del 1999 offre dettagli sulla storia della crittografia in Italia. 

Nella terra dei qubit. La fisica quantistica e i confini dell’informatica
Autore: Simone Severini. Il libro esplora l’intersezione tra fisica quantistica e informatica, offrendo una panoramica sulle potenzialità dei computer quantistici. 

Dalla teoria della relatività al computer quantistico
Curato da Carmine Granata, questo libro del 2024 propone un viaggio nel mondo della fisica moderna, dalla teoria della relatività alle applicazioni dei computer quantistici. 

Questi testi offrono una panoramica approfondita sia sulla crittografia che sul calcolo quantistico, fornendo sia basi teoriche che applicazioni pratiche.

Conclusione

La crittografia ha accompagnato l’umanità nell’evoluzione della sicurezza delle informazioni, adattandosi continuamente per contrastare intercettazioni e frodi. Dalle prime tecniche basate su sostituzioni e trasposizioni agli algoritmi avanzati di oggi, ha sempre trovato nuove strategie per proteggere i dati. Il passaggio dai cifrari classici alla crittografia simmetrica ha segnato un progresso significativo, ma la crittografia asimmetrica ha rivoluzionato la sicurezza, eliminando la necessità di scambiare chiavi segrete. Algoritmi come RSA, Diffie-Hellman e le curve ellittiche proteggono attualmente la maggior parte delle comunicazioni digitali.

I computer quantistici minacciano questi sistemi, rendendo necessarie soluzioni più avanzate. La crittografia post-quantistica propone nuovi metodi, come la distribuzione quantistica delle chiavi, che offre sicurezza a livello fisico ma richiede infrastrutture complesse. Anche l’intelligenza artificiale gioca un ruolo cruciale: da un lato, aiuta a migliorare gli algoritmi crittografici, dall’altro, sviluppa modelli di attacco sempre più sofisticati.

La crittografia continuerà a evolversi per proteggere le comunicazioni e i dati nell’era digitale. Con l’espansione del 6G, del cloud computing e dell’Internet of Things, la sicurezza diventerà ancora più centrale. La sfida sarà bilanciare protezione e accessibilità, garantendo la privacy senza compromettere i diritti degli utenti. In un mondo sempre più connesso, la crittografia non è solo una tecnologia, ma un pilastro fondamentale della sicurezza globale.

Ultime note

L’articolo offre una panoramica generale sulla crittografia e la sua evoluzione storica, scritto per essere rivolto a chi voglia approcciare alla crittografia per la prima volta. Per un approfondimento, vi consiglio di consultare i libri segnalati.

I paragrafi sul quantum computing e sui calcoli alla base del funzionamento dell’RSA, essendo gli aspetti che conosco meno, sono stati sviluppati con il supporto dell’intelligenza artificiale.

Spero che l’articolo vi sia risultato utile, in tal caso, potreste condividerlo 🙂 .

Se avete dei dubbi o se volete condividere il vostro punto di vista, scrivete nei commenti e cercherò di rispondere al più presto.

Se volete restare in contatto, vi lascio anche il link della mia newsletter di LinkedIn.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *