Dalla crittografia classica agli algoritmi moderni
I cifrari classici — Cesare, Vigenère, Rail Fence — erano ingegnosi per la loro epoca, ma avevano uno spazio delle chiavi ridotto e strutture statisticamente attaccabili. Con l’avvento dell’informatica e l’aumento esponenziale della capacità di calcolo, divenne necessario progettare algoritmi radicalmente più robusti, efficienti e adatti all’implementazione hardware e software.
La risposta a questa esigenza si sviluppò in tre tappe storiche:
DES — Data Encryption Standard
Il DES (Data Encryption Standard) fu adottato nel 1977 come standard federale statunitense (FIPS 46) per la cifratura dei dati non classificati. Fu il primo algoritmo crittografico standardizzato a livello governativo e ha definito il paradigma dei cifrari a blocchi moderni per decenni.
Funzionamento del DES — schema completo
Perché il DES è diventato obsoleto
Una chiave da 56 bit genera 256 ≈ 72 miliardi di miliardi di combinazioni. Nel 1998 l’organizzazione EFF costruì Deep Crack, una macchina da 250.000$ che violava il DES in meno di 3 giorni con attacco brute force. Con hardware moderno e sistemi distribuiti, oggi bastano ore o minuti.
Il DES è oggi usato solo a scopo didattico. Il suo utilizzo in produzione è considerato una vulnerabilità critica.
Esempio di permutazione DES
La permutazione riordina i bit secondo un vettore prestabilito. Esempio su 8 bit con vettore [2, 0, 3, 4, 1, 5, 7, 6]:
Questa operazione garantisce la diffusione: ogni bit di output dipende da un bit di input in posizione diversa, distribuendo l’informazione su tutto il blocco.
3DES — Triple Data Encryption Standard
Il 3DES (Triple DES, TDEA) fu introdotto come soluzione di compromesso per prolungare la vita operativa del DES senza progettare da zero un nuovo algoritmo. Applica il DES tre volte consecutive sullo stesso blocco, con la sequenza Cifra–Decifra–Cifra (EDE: Encrypt-Decrypt-Encrypt).
Il 3DES è circa 3 volte più lento del DES e mantiene la dimensione del blocco a soli 64 bit. Con blocchi piccoli, cifrando grandi quantità di dati con la stessa chiave, emerge la vulnerabilità Sweet32 (attacco birthday): dopo circa 232 blocchi (~32 GB di dati), aumenta significativamente la probabilità di collisione. Per questo NIST ha deprecato il 3DES nel 2019 e lo ritirerà definitivamente nel 2024.
AES — Advanced Encryption Standard
L’AES (Advanced Encryption Standard) è l’algoritmo di crittografia simmetrica più usato al mondo. Fu selezionato nel 2001 dal NIST al termine di una competizione pubblica internazionale durata 5 anni, vinta dall’algoritmo Rijndael progettato dai crittografi belgi Joan Daemen e Vincent Rijmen.
Il round AES — quattro trasformazioni
AES opera su un blocco di stato di 128 bit visualizzato come una matrice 4×4 di byte. Ogni round applica quattro trasformazioni in sequenza, ispirate direttamente ai principi di Shannon:
Ogni byte della matrice viene sostituito con un altro byte tramite una S-box (tabella di sostituzione non lineare). Garantisce la confusione.
Le righe della matrice vengono ruotate circolarmente di un numero di posizioni crescente (0, 1, 2, 3). Sposta i byte tra colonne diverse.
Ogni colonna viene moltiplicata per una matrice fissa nel campo di Galois GF(28). Miscela i byte all’interno di ogni colonna — l’operazione più costosa computazionalmente.
La matrice di stato viene combinata con la sottochiave del round tramite XOR bit a bit. È la fase che “aggiunge” la chiave al testo — senza di essa le tre operazioni precedenti sarebbero reversibili.
Dalla chiave principale (128, 192 o 256 bit) vengono derivate le sottochiavi per ciascun round tramite l’algoritmo di Key Expansion. AES-128 genera 11 sottochiavi da 128 bit (una per il round iniziale + 10 round). La derivazione usa la stessa S-box di SubBytes per garantire che le sottochiavi siano crittograficamente indipendenti.
Dove viene usato l’AES oggi
Confronto finale — DES, 3DES e AES
- DES (1977): primo standard moderno, rete di Feistel, 56 bit di chiave — oggi violabile in ore, usare solo a scopo didattico
- 3DES (1998): applica DES tre volte (schema EDE), chiave 112/168 bit — soluzione transitoria, lenta, deprecata dal NIST nel 2019
- AES (2001): blocco 128 bit, chiave 128/192/256 bit, struttura SPN con SubBytes-ShiftRows-MixColumns-AddRoundKey — standard mondiale, accelerato in hardware
- I quattro passi di ogni round AES realizzano diffusione e confusione di Shannon in modo ottimale e misurabile
- AES-256 è approvato dalla NSA per informazioni classificate TOP SECRET — il riferimento per qualsiasi sistema che richieda sicurezza elevata