La crittografia a chiave privata (o crittografia simmetrica) è un tipo di schema di cifratura usato sia per cifrare che per decifrare messaggi. Questo metodo di codifica è stato utilizzato ampiamente negli ultimi decenni per facilitare la comunicazione segreta tra enti governativi e organizzazioni militari. Attualmente, diversi algoritmi a chiave privata vengono applicati in numerose tipologie di sistemi informatici per aumentare la sicurezza dei dati.
Come funziona la cifratura simmetrica?
Uno schema di cifratura simmetrica si basa su una singola chiave condivisa tra due o più utenti. La stessa chiave viene usata sia per cifrare che per decifrare il cosiddetto testo semplice (che rappresenta il messaggio o l’informazione che viene codificata). Il processo di cifratura consiste nel trasformare un testo semplice (input) attraverso un algoritmo di cifratura chiamato cifrario, il quale genera un testo cifrato (output).
Se lo schema di codifica è abbastanza forte, l’unico modo per leggere o accedere alle informazioni contenute nel testo cifrato è usare la chiave corrispondente per decifrarlo. Il processo di decifrazione prevede in pratica la conversione da testo cifrato a testo semplice.
La sicurezza dei sistemi a crittografia simmetrica è dovuta alla difficoltà dell’indovinare casualmente la chiave corrispondente per forzarli. Per indovinare una chiave a 128 bit, per esempio, utilizzando computer comuni servirebbero miliardi di anni. Più lunga è la chiave crittografica, più difficile sarà forzarla. Le chiavi di lunghezza 256 bit sono in genere considerate altamente sicure e teoricamente resistenti agli attacchi di forza bruta da parte di computer quantistici.
Due degli schemi di crittografia simmetrica più comuni usati attualmenti si basano su cifrari a blocchi e cifrari a flusso. I cifrari a blocchi raggruppano i dati in blocchi di dimensioni predeterminate, e ciascuno di essi viene cifrato usando la chiave e l’algoritmo corrispondente (ad es., 128 bit di testo semplice viene codificato in 128 bit di testo cifrato). Invece, i cifrari a flusso non codificano i dati del testo semplice in blocchi, ma secondo incrementi di 1 bit (1 bit di testo semplice viene codificato in 1 bit di testo cifrato alla volta).
Crittografia simmetrica vs. asimmetrica
L’uso di due chiavi invece di una sola porta anche a una varietà di differenze funzionali tra la crittografia simmetrica e quella asimmetrica. Gli algoritmi asimmetrici sono più complessi e più lenti di quelli simmetrici. Dato che le chiavi pubbliche e private impiegate nella crittografia asimmetrica sono in una certa misura matematicamente correlate, le chiavi stesse sono notevolmente più lunghe per fornire un livello di sicurezza simile a quello garantito dalle chiavi, più corte, proprie della crittografia simmetrica.
Utilizzi nei sistemi informatici moderni
Attualmente, gli algoritmi di cifratura simmetrica vengono usati in diversi sistemi informatici per rafforzare la sicurezza dei dati e la privacy degli utenti. Un esempio molto importante di cifrario simmetrico è l’Advanced Encryption Standard (AES), usato ampiamente nella protezione di applicazioni di messaggistica e archiviazione su cloud.
Oltre a implementazioni software, l’AES può anche essere implementato direttamente in dispositivi hardware. Gli schemi di cifratura simmetrica basati su hardware sfruttano in genere l’AES 256, una variante specifica dell’Advanced Encryption Standard che utilizza chiavi con dimensioni di 256 bit.
Un aspetto che genera spesso confusione è il fatto che l’ECDSA si basa su crittografia ellittica (ECC), la quale può essere applicata a diverse funzioni, tra cui crittografia, firme digitali e generatori pseudocasuali. Tuttavia, l’ECDSA in sé non può essere usato per la cifratura.
Vantaggi e svantaggi
Gli algoritmi simmetrici offrono un livello di sicurezza piuttosto elevato, consentendo allo stesso tempo di cifrare e decifrare messaggi rapidamente. La relativa semplicità dei sistemi simmetrici rappresenta anche un vantaggio a livello logistico, in quanto richiedono una minore potenza di calcolo rispetto a quelli asimmetrici. Inoltre, la sicurezza garantita dalla cifratura simmetrica può essere incrementata semplicemente aumentando la lunghezza delle chiavi. Per ogni singolo bit aggiunto alla lunghezza di una chiave simmetrica, la difficoltà di decifrazione attraverso attacco di forza bruta cresce in modo esponenziale.