Crittografia simmetrica: DES, 3DES, AES

📋 Obiettivi di apprendimento
Descrivere il funzionamento del DES indicando dimensione del blocco, lunghezza della chiave, struttura a rete di Feistel e numero di round
Spiegare perché il DES è diventato obsoleto e come il 3DES ne ha esteso la vita operativa con le sue modalità a due e tre chiavi
Descrivere l’AES indicando le varianti per lunghezza di chiave, le quattro trasformazioni per round e i principali contesti di utilizzo
Confrontare DES, 3DES e AES in una tabella riepilogativa e motivare perché AES è lo standard attuale
📄
Slides
slide complete con diagrammi
🔬
Lab
Openssl – crittografia simmetrica AES
GitHub →

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
1977 — standard USA
56 bit
chiave troppo corta
3DES
1998 — soluzione transitoria
112 / 168 bit
troppo lento
AES
2001 — standard attuale
128 / 192 / 256 bit

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.

Caratteristiche tecniche del DES
Tipo Cifrario simmetrico a blocchi
Blocco 64 bit
Chiave effettiva 56 bit (+ 8 bit di parità)
Struttura Rete di Feistel
Round 16 round
Stato ❌ Obsoleto
La rete di Feistel — come funziona un round DES

Il blocco da 64 bit viene diviso in due metà L e R da 32 bit. Ad ogni round:

Li+1 = Ri
Ri+1 = Li ⊕ F(Ri, Ki)

Dove F è la funzione di round (espansione, XOR con sottochiave, S-box, permutazione) e Ki è la sottochiave del round i derivata dalla chiave principale.

Funzionamento del DES — schema completo

Blocco input — 64 bit
Permutazione iniziale (IP)
16 Round Feistel
con sottochiavi K₁…K₁₆
Permutazione finale (IP⁻¹)
Crittogramma — 64 bit
La decifratura usa lo stesso schema con le sottochiavi in ordine inverso K₁₆…K₁ — proprietà elegante della rete di Feistel

Perché il DES è diventato obsoleto

⚠️ Il problema — 56 bit non sono abbastanza

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]:

Input: 1 1 0 0 1 0 1 0(posizioni: 0 1 2 3 4 5 6 7)
Vettore: [2, 0, 3, 4, 1, 5, 7, 6](il bit in pos. i va in pos. vettore[i])
Output: 1 1 1 0 0 0 0 1(bit[2]=0, bit[0]=1, bit[3]=0, bit[4]=1…)

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).

Schema EDE — Encrypt-Decrypt-Encrypt
Blocco T
E
DES con K₁
D
DES con K₂
E
DES con K₃
Crittog. X
La sequenza E-D-E è stata scelta per compatibilità: se K₁ = K₂ = K₃, il 3DES si riduce a un DES normale. Questo permetteva la retro-compatibilità con sistemi esistenti.
3DES a DUE chiavi (K₁ ≠ K₂, K₃ = K₁)
112 bit effettivi

Sicurezza reale ~80 bit per via dell’attacco meet-in-the-middle

3DES a TRE chiavi (K₁ ≠ K₂ ≠ K₃)
168 bit effettivi

Sicurezza reale ~112 bit — più sicuro ma anche più lento

⚠️ Limiti del 3DES

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.

Caratteristiche tecniche dell’AES
AES-128
128 bit
10 round
✅ Sicuro per uso generale
AES-192
192 bit
12 round
✅ Sicuro — uso professionale
AES-256
256 bit
14 round
✅ Top secret — quantum-safe
Tipo: Cifrario simmetrico a blocchi
Blocco: 128 bit (fisso per tutte le varianti)
Struttura: Rete di sostituzione-permutazione (SPN)
Stato: ✅ Standard attuale (FIPS 197)

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:

1
SubBytes

Ogni byte della matrice viene sostituito con un altro byte tramite una S-box (tabella di sostituzione non lineare). Garantisce la confusione.

Principio Shannon: confusione ✓
2
ShiftRows

Le righe della matrice vengono ruotate circolarmente di un numero di posizioni crescente (0, 1, 2, 3). Sposta i byte tra colonne diverse.

Principio Shannon: diffusione ✓
3
MixColumns

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.

Principio Shannon: diffusione massima ✓
4
AddRoundKey

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.

Introduce la chiave nel processo ✓
📌 Key Schedule — derivazione delle sottochiavi

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

🌐
Protocolli di rete
TLS 1.3, IPsec, WPA2/WPA3, SSH
💾
Cifratura disco
BitLocker (Win), FileVault (Mac), VeraCrypt
☁️
Cloud e storage
AWS S3, Google Drive, Dropbox (AES-256)
📱
Dispositivi mobili
Cifratura completa iOS e Android
🏛️
Uso governativo
NSA approva AES-256 per dati TOP SECRET
🔌
Embedded e IoT
Accelerazione hardware AES-NI su CPU Intel/AMD

Confronto finale — DES, 3DES e AES

Tabella riepilogativa
ParametroDES3DESAES
Anno adozione197719982001
Dimensione blocco64 bit64 bit128 bit
Lunghezza chiave56 bit112 / 168 bit128 / 192 / 256 bit
Struttura internaRete di Feistel3× Feistel (EDE)SPN (Sub.-Perm.)
Round1648 (3 × 16)10 / 12 / 14
PerformanceMediaLenta (~3× DES)Ottima (HW accel.)
Stato attuale❌ Obsoleto⚠️ Deprecato✅ Standard
📌 Riepilogo — Punti chiave
  • 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

Lascia un commento