🔑 Crittografia

AES spiegato semplice: come funziona lo standard di cifratura

Cos'è AES, come trasforma i dati in blocchi da 128 bit, che differenza c'è tra chiavi da 128 e 256 bit e perché resta lo standard di cifratura più usato.

Se un dato viene cifrato oggi, è molto probabile che di mezzo ci sia AES, l'Advanced Encryption Standard. Lo usano i dischi cifrati, le connessioni HTTPS, le reti Wi-Fi protette, gli archivi compressi con password e un'infinità di applicazioni. Vale la pena capire, senza formule, come funziona e perché è considerato affidabile.

Da dove nasce AES

Alla fine degli anni Novanta il vecchio standard DES, con la sua chiave da 56 bit, non era più adeguato. L'ente statunitense di standardizzazione NIST organizzò allora una competizione pubblica e aperta: chiunque poteva proporre un algoritmo, e chiunque poteva provare ad attaccare quelli degli altri.

Vinse Rijndael, progettato da due crittografi belgi, Joan Daemen e Vincent Rijmen. Fu pubblicato come standard nel 2001 con il nome di AES. Il fatto che la scelta sia avvenuta in modo trasparente, con anni di analisi da parte della comunità internazionale, è uno dei motivi principali della fiducia di cui gode.

Un cifrario a blocchi

AES è un cifrario a blocchi simmetrico: prende i dati in blocchi di 128 bit (16 byte) e, usando una chiave segreta, trasforma ogni blocco in un blocco cifrato della stessa dimensione. La stessa chiave serve per tornare indietro.

La chiave può avere tre lunghezze:

Variante Lunghezza chiave Numero di round
AES-128 128 bit 10
AES-192 192 bit 12
AES-256 256 bit 14

Un "round" è un giro completo di trasformazioni. Più la chiave è lunga, più giri vengono eseguiti.

Cosa succede dentro un round

Immagina i 16 byte del blocco disposti in una griglia di 4 righe per 4 colonne, chiamata stato. Ogni round applica quattro operazioni, ciascuna con uno scopo preciso.

  1. SubBytes (sostituzione): ogni byte viene sostituito con un altro secondo una tabella fissa, detta S-box. È la parte non lineare dell'algoritmo, quella che impedisce di descriverlo con semplici equazioni.
  2. ShiftRows (scorrimento delle righe): le righe della griglia vengono fatte scorrere di un numero diverso di posizioni. Così i byte di una colonna si mescolano con quelli delle altre.
  3. MixColumns (mescolamento delle colonne): ogni colonna viene trasformata con un'operazione matematica che fa dipendere ciascun byte da tutti e quattro i byte della colonna.
  4. AddRoundKey (aggiunta della chiave): lo stato viene combinato con una sottochiave del round tramite l'operazione XOR.

Le sottochiavi derivano dalla chiave principale attraverso una procedura chiamata espansione della chiave, che ne produce una diversa per ogni round.

Confusione e diffusione

Queste operazioni realizzano due principi formulati da Claude Shannon a metà del Novecento:

  • confusione: il rapporto tra chiave e testo cifrato deve essere il più complicato possibile;
  • diffusione: cambiare un solo bit del testo in chiaro deve alterare circa metà dei bit del testo cifrato.

Dopo pochi round, ogni bit di uscita dipende da ogni bit di ingresso e da ogni bit della chiave. È questo "effetto valanga" che rende inutile cercare schemi nel testo cifrato.

AES da solo non basta: la modalità operativa

AES cifra un singolo blocco di 16 byte. Per cifrare un file, un messaggio o un flusso di rete serve una modalità operativa, che stabilisce come concatenare i blocchi. È un aspetto spesso trascurato, ma fondamentale.

  • La modalità ECB, che cifra ogni blocco in modo indipendente, è da evitare: blocchi uguali producono blocchi cifrati uguali e lasciano trasparire la struttura dei dati.
  • Le modalità moderne come GCM cifrano e allo stesso tempo autenticano i dati, cioè permettono di accorgersi se qualcuno li ha modificati.

Quando senti dire "cifrato con AES-256", chiediti sempre anche quale modalità viene usata e come viene gestita la chiave.

AES-128 o AES-256?

Entrambe le varianti sono considerate sicure. Provare tutte le chiavi da 128 bit è al di fuori della portata di qualsiasi tecnologia esistente o prevedibile. AES-256 offre un margine aggiuntivo, ed è la scelta comune quando si vuole tenere conto di possibili futuri computer quantistici: l'algoritmo di Grover ridurrebbe in teoria lo sforzo della forza bruta, ma con 256 bit il margine resta ampio.

Non esiste oggi un attacco pratico che rompa AES completo. Gli attacchi riusciti nel mondo reale colpiscono altro: password deboli da cui viene derivata la chiave, chiavi lasciate in memoria o in file non protetti, implementazioni che rivelano informazioni attraverso i tempi di esecuzione, modalità operative usate male.

Veloce anche grazie all'hardware

La maggior parte dei processori moderni, per PC e smartphone, include istruzioni dedicate ad AES. Ciò significa che la cifratura di un intero disco ha un impatto quasi impercettibile sulle prestazioni, e che non c'è più alcuna scusa per lasciare i dati in chiaro. Sui dispositivi privi di queste istruzioni si usa spesso ChaCha20, un algoritmo alternativo progettato per essere veloce anche solo in software.

In sintesi

  • AES è un cifrario a blocchi simmetrico scelto nel 2001 al termine di una competizione pubblica.
  • Lavora su blocchi da 128 bit, con chiavi da 128, 192 o 256 bit e 10, 12 o 14 round.
  • Ogni round combina sostituzione, scorrimento, mescolamento e aggiunta della chiave per ottenere confusione e diffusione.
  • La sicurezza reale dipende anche dalla modalità operativa e dalla gestione della chiave.
  • Non esistono attacchi pratici contro AES completo: i punti deboli sono quasi sempre intorno all'algoritmo.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche