La crittografia a chiave simmetrica (o crittografia simmetrica) è un tipo di schema di crittografia in cui la stessa chiave viene utilizzata sia per crittografare che per decrittografare i messaggi. Tale metodo di codifica delle informazioni è stato ampiamente utilizzato negli ultimi decenni per facilitare la comunicazione segreta tra governi e forze armate. Al giorno d'oggi, gli algoritmi a chiave simmetrica sono ampiamente applicati in vari tipi di sistemi informatici per migliorare la sicurezza dei dati.
Come funziona la crittografia simmetrica?
Gli schemi di crittografia simmetrica si basano su un'unica chiave condivisa tra due o più utenti. La stessa chiave viene utilizzata per crittografare e decrittografare il cosiddetto testo in chiaro (che rappresenta il messaggio o il dato che viene codificato). Il processo di crittografia consiste nell'eseguire un testo in chiaro (input) attraverso un algoritmo di crittografia chiamato cifra, che a sua volta genera un testo cifrato (output).
Se lo schema di crittografia è sufficientemente potente, l'unico modo in cui una persona può leggere o accedere alle informazioni contenute nel testo cifrato è utilizzare la chiave corrispondente per decrittografarlo. Il processo di decrittazione consiste sostanzialmente nel riconvertire il testo cifrato in testo in chiaro.
La sicurezza dei sistemi di crittografia simmetrica si basa sulla difficoltà di indovinare casualmente la chiave corrispondente per forzarli. Una chiave a 128 bit, ad esempio, richiederebbe miliardi di anni per essere indovinata utilizzando l'hardware del computer comune. Più lunga è la chiave di crittografia, più difficile diventa decifrarla. Le chiavi lunghe 256 bit sono generalmente considerate altamente sicure e teoricamente resistenti agli attacchi di forza bruta dei computer quantistici.
Due degli schemi di crittografia simmetrica più comuni utilizzati oggi si basano su cifrari a blocchi e a flusso. I codici a blocchi raggruppano i dati in blocchi di dimensione predeterminata e ciascun blocco viene crittografato utilizzando la chiave e l'algoritmo di crittografia corrispondenti (ad esempio, il testo in chiaro a 128 bit viene crittografato in testo cifrato a 128 bit). D'altra parte, i codici a flusso non crittografano i dati di testo in chiaro per blocchi, ma piuttosto per incrementi di 1 bit (il testo in chiaro da 1 bit viene crittografato in testo cifrato da 1 bit alla volta).
Crittografia simmetrica e asimmetrica
La crittografia simmetrica è uno dei due principali metodi di crittografia dei dati nei moderni sistemi informatici. L’altra è la crittografia asimmetrica, che è la principale applicazione della crittografia a chiave pubblica. La differenza principale tra questi metodi è il fatto che i sistemi asimmetrici utilizzano due chiavi anziché quella impiegata dagli schemi simmetrici. Una delle chiavi può essere condivisa pubblicamente (chiave pubblica), mentre l'altra deve essere mantenuta privata (chiave privata).
L'uso di due chiavi invece di una produce anche una serie di differenze funzionali tra la crittografia simmetrica e asimmetrica. Gli algoritmi asimmetrici sono più complessi e più lenti di quelli simmetrici. Poiché le chiavi pubblica e privata impiegate nella crittografia asimmetrica sono in una certa misura matematicamente correlate, anche le chiavi stesse devono essere considerevolmente più lunghe per fornire un livello simile di sicurezza offerto da chiavi simmetriche più corte.
Usi nei moderni sistemi informatici
Gli algoritmi di crittografia simmetrica vengono utilizzati in molti sistemi informatici moderni per migliorare la sicurezza dei dati e la privacy degli utenti. L'Advanced Encryption Standard (AES), ampiamente utilizzato sia nelle applicazioni di messaggistica sicure che nell'archiviazione nel cloud, è un esempio importante di cifratura simmetrica.
Oltre alle implementazioni software, AES può essere implementato anche direttamente nell'hardware del computer. Gli schemi di crittografia simmetrica basati su hardware di solito sfruttano AES 256, che è una variante specifica dell'Advanced Encryption Standard che ha una dimensione della chiave di 256 bit.
Vale la pena notare che la blockchain di Bitcoin non fa uso della crittografia come molti tendono a credere. Utilizza invece un tipo specifico di algoritmo di firma digitale (DSA) noto come Elliptic Curve Digital Signature Algorithm (ECDSA) che genera firme digitali senza utilizzare la crittografia.
Un punto comune di confusione è che l'ECDSA si basa sulla crittografia a curva ellittica (ECC), che a sua volta può essere applicata per molteplici attività, tra cui crittografia, firme digitali e generatori pseudo-casuali. Tuttavia, l’ECDSA stesso non può essere utilizzato affatto per la crittografia.
Vantaggi e svantaggi
Gli algoritmi simmetrici forniscono un livello di sicurezza piuttosto elevato e allo stesso tempo consentono di crittografare e decrittografare rapidamente i messaggi. La relativa semplicità dei sistemi simmetrici è anche un vantaggio logistico, poiché richiedono meno potenza di calcolo rispetto a quelli asimmetrici. Inoltre, la sicurezza fornita dalla crittografia simmetrica può essere aumentata semplicemente aumentando la lunghezza della chiave. Per ogni singolo bit aggiunto alla lunghezza di una chiave simmetrica, la difficoltà di violare la crittografia tramite un attacco di forza bruta aumenta in modo esponenziale.
Sebbene la crittografia simmetrica offra un’ampia gamma di vantaggi, presenta un grave svantaggio ad essa associato: il problema intrinseco della trasmissione delle chiavi utilizzate per crittografare e decrittografare i dati. Quando queste chiavi vengono condivise su una connessione non protetta, sono vulnerabili all'intercettazione da parte di terzi malintenzionati. Se un utente non autorizzato accede a una particolare chiave simmetrica, la sicurezza di tutti i dati crittografati utilizzando tale chiave viene compromessa. Per risolvere questo problema, molti protocolli web utilizzano una combinazione di crittografia simmetrica e asimmetrica per stabilire connessioni sicure. Tra gli esempi più importanti di un tale sistema ibrido c’è il protocollo crittografico Transport Layer Security (TLS) utilizzato per proteggere ampie porzioni della moderna Internet.
Va inoltre notato che tutti i tipi di crittografia informatica sono soggetti a vulnerabilità dovute a un'implementazione impropria. Mentre una chiave sufficientemente lunga può rendere matematicamente impossibile un attacco di forza bruta, gli errori di implementazione commessi dai programmatori spesso creano punti deboli che aprono la strada agli attacchi informatici.
Pensieri conclusivi
Grazie alla sua relativa velocità, semplicità e sicurezza, la crittografia simmetrica è ampiamente utilizzata in applicazioni che vanno dalla protezione del traffico Internet alla protezione dei dati archiviati sui server cloud. Sebbene siano spesso abbinati alla crittografia asimmetrica per risolvere il problema del trasferimento sicuro delle chiavi, gli schemi di crittografia simmetrica rimangono una componente critica della moderna sicurezza informatica.



