Crittografia AES-256 Spiegata: Cosa Significa per i Tuoi Dati

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.


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:

  1. SubBytes: Ogni byte viene sostituito usando una tabella di sostituzione fissa (S-box), introducendo non-linearità.
  2. ShiftRows: I byte di ogni riga vengono spostati di offset diversi, distribuendo i dati tra le posizioni.
  3. MixColumns: Le colonne vengono mescolate tramite moltiplicazione matriciale in un campo finito, diffondendo le modifiche tra i byte.
  4. 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é 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) -- 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 Foto

Quando un'app vault per foto dichiara "crittografia AES-256", tre cose dovrebbero essere vere:

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

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

  3. 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 "AES-256" su una Pagina di Marketing Non Ti Dice

AES-256 è necessario ma non sufficiente. Diversi fattori critici determinano se la crittografia protegge davvero i tuoi dati:

La derivazione chiave è importante. Come viene generata la chiave a 256 bit? Se deriva da un PIN di 4 cifre utilizzando un KDF debole, la sicurezza effettiva è di 4 cifre (10.000 combinazioni), non di 256 bit. Un'implementazione forte utilizza PBKDF2 con un numero elevato di iterazioni o Argon2 con parametri di memoria e tempo appropriati. Vaultaire utilizza PBKDF2 con HMAC-SHA512 e 600.000 iterazioni per derivare una chiave dell'archivio locale dal modello 5x5 scelto e un sale del dispositivo. PBKDF2 rende ogni ipotesi più costosa; non aumenta l'entropia del modello a 256 bit.

L'archiviazione delle chiavi è importante. Dove vive la chiave? Se la chiave è archiviata in testo non crittografato nella sandbox dell'app, il malware con accesso ai file può leggerla. Quello di Apple Secure Enclave supporta operazioni chiave specifiche non esportabili, non chiavi AES arbitrarie fornite dall'app. I progetti a chiave simmetrica possono invece fare affidamento su Keychain e protezione dei dati, quindi la documentazione dovrebbe indicare l'API esatta e la classe di protezione anziché indicare solo "supportato da 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 è importante. Per quanto tempo rimane disponibile il materiale della chiave decrittografata? Vaultaire perde il suo stato di cassaforte attiva e chiave principale quando si blocca o si chiude e richiede un nuovo sblocco. I byte di chiave simmetrica esistono necessariamente nella memoria dell'app mentre un vault è aperto e Swift e iOS non lasciare che un'app dimostri che ogni copia transitoria è 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

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?

Sostanzialmente, sì. L'algoritmo quantistico di Grover dimezza la lunghezza effettiva della chiave: AES-256 diventa equivalente a una sicurezza a 128 bit contro gli attacchi quantistici. AES-128 sarebbe ridotto a una sicurezza effettiva di 64 bit, che è potenzialmente vulnerabile. NIST raccomanda AES-256 per la sicurezza a lungo termine contro i progressi nel quantum computing.

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 percettibilmente nell'uso normale. I moderni processori Apple forniscono l'accelerazione hardware per AES tramite librerie crittografiche di sistema. Ciò non significa che l'operazione AES di un'app venga eseguita all'interno Secure Enclave. Il tempo dipende ancora dalla dimensione del file, dal dispositivo, dall'archiviazione e dall'implementazione, quindi una richiesta di sicurezza dovrebbe basarsi su misurazioni piuttosto che 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 sua pagina di marketing. Cerca l'algoritmo e la modalità specifici, la gerarchia delle chiavi, i parametri di derivazione, l'esatto Keychain o Secure Enclave utilizzo, gestione del nonce, percorso di ripristino e se anche i metadati sono crittografati. Il codice open source e gli audit indipendenti rendono queste affermazioni più facili da verificare.

Conclusione

AES-256 è il gold standard per la crittografia simmetrica, standardizzato da NIST, usato da governi e istituzioni finanziarie, e resistente a tutti gli attacchi noti incluso il quantum computing. 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).

Voltaire usi AES-256-GCM per contenuto di file, intestazioni, metadati, indici e miniature. PBKDF2 con HMAC-SHA512 deriva una chiave dell'insieme di credenziali locale dal modello e una chiave a livello di dispositivo Keychain sale; quella chiave apre una chiave master casuale utilizzata per la crittografia dei file. Le operazioni simmetriche vengono eseguite nel processo dell'app CryptoKit, mentre iOS Keychain e la protezione dei dati proteggono lo stato di ripristino quando il dispositivo è bloccato. La gerarchia completa è documentata nel modello di sicurezza.