Crittografia a chiave simmetrica: definizione, esempi e funzionamento
Scopri la crittografia a chiave simmetrica: definizione, esempi (AES, Twofish, Blowfish), funzionamento, vantaggi e rischi. Guida pratica per capire sicurezza e prestazioni.
Gli algoritmi a chiave simmetrica sono un metodo in crittografia. Lo è quando le chiavi per la decrittazione e la crittografia sono esattamente lo stesso segreto condiviso. È possibile generare il segreto in modo casuale, o da una password, o attraverso una procedura di scambio di chiavi segrete come Diffie-Hellman.
Cos'è e perché è importante
La crittografia a chiave simmetrica usa una singola chiave per trasformare dati leggibili (plaintext) in dati illeggibili (ciphertext) e viceversa. Poiché la stessa chiave serve per cifrare e decifrare, entrambe le parti devono conoscere e proteggere quel segreto condiviso. Questo modello è estremamente utile quando si richiede elevata velocità e efficienza, per esempio nel cifrare grandi quantità di dati in tempo reale o file di grandi dimensioni.
Gli algoritmi a chiave simmetrica sono molto importanti perché sono più veloci sui computer rispetto all'altro tipo: gli algoritmi a chiave pubblica. Nella crittografia a chiave pubblica (crittografia a chiave asimmetrica) la chiave per la crittografia può essere data al pubblico senza problemi e tutti possono inviare messaggi segreti. La chiave per la crittografia è "aperta" perché, in pratica, non può essere usata per ottenere la chiave per la decrittazione. Questo è molto utile, ma gli algoritmi di crittografia a chiave pubblica sono molto lenti sui computer, quindi vengono utilizzati solo per inviare una chiave segreta. Quindi gli algoritmi a chiave simmetrica sono usati per tutto il resto, perché sono più veloci.
Tipi di cifrari simmetrici
Esistono due grandi famiglie di algoritmi a chiave simmetrica: i cifrari a flusso e i cifrari a blocco.
- Cifrari a flusso: cifrano i dati bit o byte per bit/byte, generando un flusso di chiavi (keystream) che viene combinato con il plaintext. Sono adatti a flussi di dati continui e sistemi con risorse limitate. Un esempio storico è RC4, anche se oggi non è più raccomandato per molte applicazioni.
- Cifrari a blocco: lavorano su blocchi di dimensione fissa (per esempio 64 o 128 bit) trasformando ogni blocco con la chiave. Possono essere usati insieme a diverse modalità d'operazione (ECB, CBC, CFB, OFB, CTR) che ne influenzano la sicurezza e l'uso pratico.
I blocchi di 64 bit sono stati comunemente usati; anche se i moderni cifratori come l'Advanced Encryption Standard usano blocchi di 128 bit.
Modalità d'uso dei cifrari a blocco
Le modalità d'operazione (mode of operation) determinano come i blocchi vengono concatenati e come viene gestita la ridondanza o la sensibilità agli errori. Alcune modalità comuni:
- ECB (Electronic Codebook): ogni blocco è cifrato indipendentemente — semplice ma vulnerabile a pattern ripetuti.
- CBC (Cipher Block Chaining): ogni blocco è XORato con il blocco cifrato precedente; richiede un vettore di inizializzazione (IV) casuale per il primo blocco.
- CTR (Counter): trasforma il blocco in un flusso crittografico basato su un contatore — permette cifratura parallela e operazioni random-access.
- Altre modalità (CFB, OFB, GCM) forniscono vari compromessi tra integrità, parallelismo e resistenza agli attacchi.
Esempi di algoritmi
Esempi di cifrari simmetrici popolari sono Twofish, Serpent, AES (aka Rijndael), Blowfish, CAST5, RC4, TDES e IDEA. Tra questi, AES è lo standard moderno raccomandato per la maggior parte delle applicazioni grazie al buon equilibrio tra sicurezza, performance e supporto hardware.
La scelta dell'algoritmo e della lunghezza della chiave (ad es. 128, 192, 256 bit per AES) influisce direttamente sulla resistenza contro attacchi di forza bruta: chiavi più lunghe aumentano la sicurezza ma possono richiedere più risorse.
Sicurezza e attacchi noti
Nella storia, alcuni metodi di crittoanalisi sfruttavano la simmetria, per cui i sistemi simmetrici erano meno sicuri. Alcuni attacchi sono chiamati attacchi in chiaro conosciuti, attacchi in chiaro scelti, criptanalisi differenziale e criptanalisi lineare.
Oggi la sicurezza pratica non dipende solo dall'algoritmo, ma anche da:
- gestione sicura e distribuzione della chiave (key management);
- uso corretto delle modalità (evitando, per esempio, ECB per dati strutturati);
- generazione di IV e nonce realmente casuali quando richiesto;
- aggiornamento dagli algoritmi obsoleti (es. RC4, TDES) verso alternative più resistenti (es. AES-GCM).
Vantaggi e svantaggi
Vantaggi:
- Alta velocità ed efficienza, adatti a grandi volumi di dati e a dispositivi con risorse limitate.
- Implementazioni hardware e ottimizzazioni diffuse (es. AES-NI).
Svantaggi:
- Problemi di distribuzione e gestione della chiave: entrambe le parti devono condividere lo stesso segreto in modo sicuro.
- Se la chiave è compromessa, l'intera comunicazione è violata.
Terminologia
Altri termini per la crittografia a chiave simmetrica sono la crittografia a chiave segreta, a chiave singola, a chiave condivisa, a chiave singola ed eventualmente a chiave privata. Quest'ultimo termine non ha lo stesso significato che ha il termine chiave privata nella crittografia a chiave pubblica, quindi bisogna usare i termini con attenzione per evitare confusioni.
Best practice e raccomandazioni
- Usare algoritmi moderni e standardizzati (ad es. AES) con chiavi di lunghezza adeguata.
- Adottare modalità che offrano anche autenticazione dell'integrità (es. AES-GCM o AES-CCM) per prevenire manomissioni dei dati.
- Proteggere e ruotare regolarmente le chiavi; evitare di riutilizzare IV o nonce quando la modalità lo richiede.
- Combinare la crittografia simmetrica con la crittografia a chiave pubblica per la distribuzione sicura delle chiavi (ad es. TLS usa crittografia asimmetrica per scambiare una chiave simmetrica, che poi cifra i dati).
Applicazioni comuni
La crittografia a chiave simmetrica è impiegata in molte aree: cifratura di file e dischi, VPN, protocolli di comunicazione (TLS/SSL per la parte di sessione), crittografia dei database, sistemi di backup, e in molti dispositivi embedded dove le risorse sono limitate.
In sintesi, mentre la crittografia a chiave pubblica risolve il problema della distribuzione delle chiavi, la crittografia a chiave simmetrica resta lo strumento pratico e performante per proteggere i dati in uso quotidiano. Una progettazione attenta, uso di algoritmi moderni e gestione sicura delle chiavi sono essenziali per mantenerne l'efficacia.

In un algoritmo a chiave simmetrica la chiave utilizzata per la cifratura è la stessa di quella utilizzata per la decifratura. Per questo motivo, deve essere tenuta segreta.
Algoritmi simmetrici vs. asimmetrici
A differenza degli algoritmi simmetrici, gli algoritmia chiave asimmetrica utilizzano una chiave diversa per la cifratura rispetto alla decifratura. Ciò significa che un utente che conosce la chiave di cifratura di un algoritmo asimmetrico può cifrare i messaggi, ma non può calcolare la chiave di decifratura e non può decifrare i messaggi cifrati con quella chiave. Di seguito si riporta un breve confronto tra questi due tipi di algoritmi:
Velocità
Gli algoritmi a chiave simmetrica sono generalmente molto meno intensivi dal punto di vista computazionale rispetto agli algoritmi a chiave asimmetrica. In pratica, gli algoritmi a chiave asimmetrica sono in genere da centinaia a migliaia di volte più lenti degli algoritmi a chiave simmetrica.
Gestione delle chiavi
Uno svantaggio degli algoritmi a chiave simmetrica è il requisito di una chiave segreta condivisa, con entrambe le parti in possesso della stessa copia ad ogni estremità. Per garantire la sicurezza delle comunicazioni tra tutti i membri di un gruppo di n persone è necessario un totale di n(n - 1)/2 chiavi, che è il numero totale dei possibili canali di comunicazione. Per limitare l'impatto di un potenziale ritrovamento da parte di un aggressore crittografico, queste devono essere cambiate regolarmente e mantenute sicure durante la distribuzione e il servizio. Il processo di selezione, distribuzione e memorizzazione delle chiavi è noto come gestione delle chiavi, ed è difficile da realizzare in modo affidabile e sicuro.
Criptosistema ibrido
Nei moderni sistemi di crittografia, sia gli algoritmi asimmetrici (chiave pubblica) che simmetrici sono utilizzati per sfruttare il meglio di entrambi. Gli algoritmi asimmetrici sono usati per distribuire chiavi simmetriche all'inizio di una sessione. Una volta che una chiave simmetrica è nota a tutte le parti della sessione, gli algoritmi a chiave simmetrica più veloci che utilizzano tale chiave possono essere utilizzati per crittografare il resto della sessione. Questo semplifica il problema della distribuzione delle chiavi, perché le chiavi asimmetriche devono essere distribuite solo in modo autentico, mentre le chiavi simmetriche devono essere distribuite sia in modo autentico che confidenziale.
I sistemi che utilizzano un tale approccio ibrido includono SSL, PGP e GPG, ecc.
Pagine correlate
- Algoritmi a chiave asimmetrica
Domande e risposte
D: Cosa sono gli algoritmi a chiave simmetrica?
R: Gli algoritmi a chiave simmetrica sono un metodo di crittografia in cui le chiavi per la decifrazione e la cifratura sono esattamente lo stesso segreto condiviso.
D: Come può generare il segreto?
R: Il segreto può essere generato in modo casuale, o da una password, o attraverso una procedura di scambio di chiavi segrete come Diffie-Hellman.
D: Perché gli algoritmi a chiave simmetrica sono importanti?
R: Gli algoritmi a chiave simmetrica sono molto importanti perché sono più veloci sui computer rispetto agli algoritmi a chiave pubblica.
D: Che cos'è la crittografia a chiave pubblica (crittografia a chiave asimmetrica)?
R: Nella crittografia a chiave pubblica (crittografia a chiave asimmetrica) la chiave per la crittografia può essere fornita al pubblico senza problemi e tutti possono inviare messaggi segreti. La chiave per la crittografia è 'aperta' perché, in pratica, non può essere utilizzata per ottenere la chiave per la decrittografia.
D: Quali sono i due tipi di cifrari simmetrici?
R: Due tipi di cifrari simmetrici sono i cifrari a flusso e i cifrari a blocco. I cifrari a flusso criptano un messaggio come un flusso di bit uno alla volta, mentre i cifrari a blocco prendono blocchi di bit, li criptano come un'unica unità e talvolta utilizzano anche la risposta in un secondo momento.
D: Che dimensioni hanno i blocchi moderni?
R: I cifrari moderni, come l'Advanced Encryption Standard, utilizzano blocchi di 128 bit.
D: Quali tipi di attacchi sono stati utilizzati per sfruttare la simmetria nella storia?
R:Nella storia alcuni metodi di crittoanalisi hanno sfruttato la simmetria, per cui i sistemi simmetrici erano meno sicuri. Alcuni attacchi che sono stati utilizzati includono gli attacchi di testo in chiaro, gli attacchi di testo in chiaro scelto, la crittoanalisi differenziale e la crittoanalisi lineare.
Cerca nell'enciclopedia