Crittografia AES-256 spiegata: cosa significa per i tuoi dati
AES-256 spiegato: come funziona il cifrario, perché le chiavi a 256 bit contano, cosa aggiunge la modalità GCM e cosa verificare quando un'app dichiara di usare la crittografia AES-256.
Che cos'è AES-256?
AES-256 è un cifrario simmetrico a blocchi: l'Advanced Encryption Standard usato con una chiave a 256 bit. Una sola chiave cifra e decifra. Elabora i dati in blocchi da 128 bit in 14 round, e il NIST lo ha standardizzato come FIPS 197 nel 2001.
Il nome mette insieme tre informazioni. AES indica l'algoritmo, scelto dal NIST nel 2001 a partire dalla proposta Rijndael. 256 è la lunghezza della chiave in bit, che fissa quante chiavi un attaccante a forza bruta deve provare. Una modalità come GCM o CBC, di solito scritta dopo il nome come AES-256-GCM, decide come si concatenano i blocchi e se il testo cifrato viene controllato contro le manomissioni. AES-256 da solo ti dice il cifrario e la dimensione della chiave. Non ti dice la modalità, né chi detiene la chiave.
AES-256 è l'Advanced Encryption Standard con chiave a 256 bit, standardizzato dal NIST come FIPS 197 nel 2001. È l'algoritmo di crittografia simmetrica usato dal governo degli Stati Uniti per le informazioni classificate, dalle banche per le transazioni finanziarie e dalle applicazioni orientate alla sicurezza per proteggere i dati a riposo e in transito. AES-256 ha 2^256 chiavi possibili -- un numero più grande della stima degli atomi nell'universo osservabile. Nessun attacco noto riduce questo spazio di chiavi a una ricerca computazionalmente fattibile.
Questa guida spiega cosa fa davvero AES-256, perché la dimensione della chiave conta, cosa significano le diverse modalità (ECB, CBC, GCM), e cosa cercare quando un'app dichiara di usare la crittografia AES-256.
Cosa fa davvero AES
AES è un cifrario a blocchi simmetrico. "Simmetrico" significa che la stessa chiave cifra e decifra. "Cifrario a blocchi" significa che elabora i dati in blocchi di dimensione fissa di 128 bit (16 byte).
L'algoritmo prende i tuoi dati (testo in chiaro), li combina con una chiave e produce un output rimescolato (testo cifrato) attraverso una serie di trasformazioni matematiche. Queste trasformazioni -- sostituzione, spostamento, miscelazione e aggiunta della chiave -- si ripetono per un numero fisso di round. AES-256 usa 14 round.
Ogni round applica quattro operazioni:
- SubBytes: Ogni byte viene sostituito usando una tabella di sostituzione fissa (S-box), introducendo non-linearità.
- ShiftRows: I byte di ogni riga vengono spostati di offset diversi, distribuendo i dati tra le posizioni.
- MixColumns: Le colonne vengono mescolate tramite moltiplicazione matriciale in un campo finito, diffondendo le modifiche tra i byte.
- AddRoundKey: La chiave di round (derivata dalla chiave principale) viene messa in XOR con i dati.
Dopo 14 round, il testo in chiaro è completamente rimescolato. Invertire queste operazioni con la chiave corretta recupera i dati originali. Senza la chiave, il testo cifrato è indistinguibile dal rumore casuale.
Perché i 256 bit contano
Il "256" in AES-256 si riferisce alla lunghezza della chiave: 256 bit. Questo determina il numero di chiavi possibili che un attaccante deve provare per violare la crittografia con forza bruta.
| Dimensione Chiave | Chiavi Possibili | Tempo per Forza Bruta (1 trilione tentativi/sec) |
|---|---|---|
| 56 bit (DES) | 7,2 x 10^16 | ~20 ore |
| 128 bit (AES-128) | 3,4 x 10^38 | 10^13 anni (10 trilioni di anni) |
| 256 bit (AES-256) | 1,16 x 10^77 | 10^51 anni |
Per contesto: l'universo ha circa 1,38 x 10^10 anni. Violare AES-256 con forza bruta richiederebbe circa 10^41 volte l'età dell'universo, anche a un trilione di tentativi al secondo.
AES-128 è già computazionalmente infeasibile da violare con forza bruta. AES-256 fornisce un margine aggiuntivo contro i progressi futuri nel computing, incluso il quantum computing. L'algoritmo di Grover (un attacco di quantum computing) dimezza effettivamente la lunghezza della chiave -- riducendo AES-256 all'equivalente di AES-128, che rimane comunque infeasibile. AES-128 sarebbe ridotto a una sicurezza effettiva di 64 bit, che è potenzialmente vulnerabile. Ecco perché le applicazioni critiche per la sicurezza preferiscono AES-256.
Modalità AES: perché contano
AES da solo cifra solo un blocco di 128 bit alla volta. Per dati reali (foto, documenti, video), hai bisogno di una "modalità operativa" che gestisca dati più grandi di 16 byte. La modalità determina come i blocchi vengono concatenati e ha implicazioni significative per la sicurezza.
ECB (Electronic Codebook) -- Da non usare
Ogni blocco è cifrato indipendentemente con la stessa chiave. Blocchi di testo in chiaro identici producono blocchi di testo cifrato identici. Questo rivela pattern nei dati. La dimostrazione classica: cifrare un'immagine bitmap con ECB preserva la struttura dell'immagine nel testo cifrato, rendendo il contenuto riconoscibile. ECB è incluso nello standard ma non dovrebbe mai essere usato per dati che hanno struttura o pattern ripetuti (il che include praticamente tutti i dati reali).
CBC (Cipher Block Chaining) -- Legacy
Ogni blocco viene messo in XOR con il blocco di testo cifrato precedente prima della cifratura. Questo elimina la perdita di pattern di ECB. CBC era la modalità standard per decenni ma è stata superata da GCM per la maggior parte delle applicazioni. CBC richiede un vettore di inizializzazione (IV) casuale e non fornisce autenticazione integrata (non puoi rilevare se il testo cifrato è stato manomesso).
GCM (Galois/Counter Mode) -- Standard attuale
GCM combina la cifratura in modalità contatore con l'autenticazione del campo di Galois. Fornisce crittografia autenticata: cifra i dati E produce un tag di autenticazione che rileva qualsiasi modifica al testo cifrato. Se anche un solo bit viene modificato, la decifratura fallisce invece di produrre testo in chiaro corrotto.
NIST ha standardizzato GCM in SP 800-38D (2007). È la modalità raccomandata per le nuove implementazioni.
AES-256-GCM è AES con chiave a 256 bit in modalità Galois/Counter Mode. È ciò che le applicazioni critiche per la sicurezza dovrebbero usare e ciò che Vaultaire usa per cifrare il contenuto di foto e file.
| Modalità | Perdita di Pattern | Autenticazione | Raccomandazione Attuale |
|---|---|---|---|
| ECB | Sì (grave) | No | Non usare |
| CBC | No | No (richiede MAC separato) | Legacy; accettabile con HMAC |
| GCM | No | Sì (integrata) | Raccomandato per nuove implementazioni |
Cosa significa AES-256 per l'archiviazione delle foto
Quando un'app vault per foto dichiara "crittografia AES-256", tre cose dovrebbero essere vere:
I contenuti del file sono cifrati con AES-256. I dati grezzi della foto (pixel, metadati, anteprima) vengono trasformati in testo cifrato usando una chiave a 256 bit.
Ogni file usa un vettore di inizializzazione (IV) unico. Se due foto identiche vengono cifrate con la stessa chiave, il testo cifrato dovrebbe essere diverso. Questo richiede un IV unico per file. Senza di esso, l'analisi statistica può rivelare pattern.
La modalità fornisce autenticazione (GCM o equivalente). Senza autenticazione, un attaccante potrebbe modificare il testo cifrato senza rilevamento. Il risultato decifrato sarebbe dati corrotti invece di un errore.
Cosa non ti dice "AES-256" su una pagina di marketing
AES-256 è necessario ma non sufficiente. Diversi fattori critici determinano se la crittografia protegge davvero i tuoi dati:
La derivazione della chiave conta. Come viene generata la chiave a 256 bit? Se deriva da un PIN di 4 cifre con una KDF debole, la sicurezza effettiva è quella di 4 cifre (10.000 combinazioni), non di 256 bit. Un'implementazione solida usa PBKDF2 con molte iterazioni o Argon2 con parametri di memoria e tempo adeguati. Vaultaire usa PBKDF2 con HMAC-SHA512 e 600.000 iterazioni per derivare una chiave locale della cassaforte dalla sequenza 5x5 scelta e da un salt del dispositivo. PBKDF2 rende ogni tentativo più costoso; non porta l'entropia della sequenza a 256 bit.
La conservazione della chiave conta. Dove si trova la chiave? Se è salvata in chiaro nella sandbox dell'app, un malware con accesso ai file può leggerla. Il Secure Enclave di Apple supporta specifiche operazioni con chiavi non esportabili, non chiavi AES arbitrarie fornite dall'app. I progetti a chiave simmetrica possono invece affidarsi al Keychain e alla protezione dei dati, quindi la documentazione dovrebbe indicare l'API esatta e la classe di protezione, non solo «supportato dall'hardware».
Cosa viene cifrato conta. Alcune app cifrano i contenuti dei file ma lasciano nomi dei file, anteprime e metadati non cifrati. Un esaminatore forense potrebbe non vedere la tua foto, ma può vedere "vacanza-spiaggia-2025.jpg" nell'elenco dei file. La crittografia completa copre i metadati separatamente.
Il ciclo di vita conta. Per quanto tempo resta disponibile la chiave decifrata? Vaultaire elimina lo stato della cassaforte attiva e della chiave master quando si blocca o si chiude e richiede un nuovo sblocco. I byte delle chiavi simmetriche esistono per forza nella memoria dell'app mentre una cassaforte è aperta, e Swift e iOS non permettono a un'app di dimostrare che ogni copia temporanea sia stata sovrascritta.
AES-256 in pratica: chi lo usa
| Entità | Caso d'Uso | Modalità |
|---|---|---|
| Governo USA (NSA) | Informazioni classificate | GCM (o CTR con autenticazione separata) |
| Apple (iCloud ADP) | Crittografia end-to-end iCloud | GCM |
| Signal | Crittografia messaggi | CBC (con HMAC per autenticazione) |
| Banche | Crittografia transazioni finanziarie | GCM |
| 1Password | Vault password | GCM |
| Vaultaire | Vault foto e file | GCM |
| VeraCrypt | Crittografia disco | XTS (ottimizzato per blocchi disco) |
Equivoci comuni
"Crittografia di grado militare" non significa nulla di specifico. Le pagine di marketing usano questa frase perché suona impressionante. AES-256 è usato dai militari. Lo è anche AES-128. La frase non ti dice la modalità, la derivazione della chiave, l'archiviazione della chiave, o quali dati vengono effettivamente cifrati.
"Crittografia a 256 bit" potrebbe non significare AES-256. Altri cifrari usano anch'essi chiavi a 256 bit (ChaCha20, Twofish, Serpent). Verifica quale algoritmo è specificato. AES-256-GCM è lo standard attuale.
AES-256 non protegge contro una password debole. Se la tua password è "1234" e la derivazione della chiave è debole, la crittografia è effettivamente a sicurezza di 4 cifre indipendentemente dalla robustezza del cifrario. La catena si rompe nel punto più debole.
AES-256 non protegge i dati in uso. Quando visualizzi una foto, deve essere decifrata in memoria. In quel momento, esiste in chiaro nella RAM. Le implementazioni corrette minimizzano questa finestra e cancellano prontamente i dati decifrati.
Domande frequenti
Che cosa significa AES-256?
Advanced Encryption Standard, usato con una chiave a 256 bit. AES è il cifrario che il NIST ha standardizzato come FIPS 197 nel 2001, dopo aver scelto il progetto Rijndael. Il 256 è la lunghezza della chiave in bit. Un suffisso come AES-256-GCM aggiunge la modalità operativa, una scelta separata dal cifrario e dalla dimensione della chiave.
AES-256 può essere violato?
Nessun attacco noto viola AES-256 riducendo l'intero spazio delle chiavi. Il miglior attacco noto (un attacco biclique di Bogdanov, Khovratovich e Rechberger, 2011) riduce AES-256 da 2^256 operazioni a 2^254,4 -- un miglioramento teorico che è computazionalmente irrilevante in pratica. AES-256 rimane inviolato.
AES-256 è resistente al quantum?
In sostanza, sì. L'algoritmo quantistico di Grover dimezza la lunghezza effettiva della chiave: AES-256 diventa equivalente a una sicurezza di 128 bit contro attacchi quantistici. AES-128 scenderebbe a una sicurezza effettiva di 64 bit, potenzialmente vulnerabile. Una ricerca di Grover contro AES-256 richiederebbe comunque circa 2^128 operazioni, un numero non praticabile.
Qual è la differenza tra AES-128 e AES-256?
AES-128 usa una chiave a 128 bit (10 round). AES-256 usa una chiave a 256 bit (14 round). Entrambi sono considerati sicuri contro gli attacchi attuali. AES-256 offre un margine maggiore contro i progressi futuri, in particolare nel quantum computing. AES-256 è circa il 40% più lento di AES-128 a causa dei round aggiuntivi, ma l'accelerazione hardware lo rende trascurabile sui dispositivi moderni.
La crittografia AES-256 rallenta il mio telefono?
Non in modo percepibile nell'uso normale. I processori Apple moderni offrono accelerazione hardware per AES tramite le librerie crittografiche di sistema. Questo non significa che l'operazione AES di un'app avvenga nel Secure Enclave. Il tempo dipende comunque dalla dimensione del file, dal dispositivo, dallo storage e dall'implementazione, quindi un'affermazione sulla sicurezza dovrebbe basarsi su misure reali, non su una cifra universale in millisecondi.
Come faccio a sapere se un'app usa davvero AES-256?
Controlla la documentazione sulla sicurezza dell'app, non solo la pagina di marketing. Cerca l'algoritmo e la modalità esatti, la gerarchia delle chiavi, i parametri di derivazione, l'uso preciso del Keychain o del Secure Enclave, la gestione dei nonce, il percorso di ripristino e se anche i metadati sono cifrati. Codice open source e audit indipendenti rendono queste affermazioni più facili da verificare.
Conclusione
AES-256 è un cifrario simmetrico molto diffuso, standardizzato dal NIST, senza attacchi pratici noti; un computer quantistico con l'algoritmo di Grover dovrebbe comunque affrontare circa 2^128 operazioni. Quando valuti app che dichiarano la crittografia AES-256, guarda oltre il cifrario: verifica la modalità (GCM), la derivazione della chiave (PBKDF2/Argon2 con alto numero di iterazioni), l'archiviazione della chiave (hardware-backed), e quali dati vengono effettivamente cifrati (contenuti + metadati).
Vaultaire usa AES-256-GCM per contenuto dei file, intestazioni, metadati, indici e miniature. PBKDF2 con HMAC-SHA512 deriva una chiave locale della cassaforte dalla sequenza e da un salt del Keychain a livello di dispositivo; quella chiave sblocca una chiave master casuale usata per cifrare i file. Le operazioni simmetriche avvengono con CryptoKit nel processo dell'app, mentre il Keychain e la protezione dei dati di iOS proteggono lo stato di ripristino quando il dispositivo è bloccato. La gerarchia completa è documentata nel modello di sicurezza.