AES256 è più sicuro di AES128? Qual è la differenza?
Come Bakhtiyar Farayev ha notato correttamente nella loro risposta, AES può prendere tre diverse dimensioni di chiave 128 bit, 192 e 256. Quando si guarda alla forza bruta di una chiave (semplicemente indovinando ogni possibile chiave), ci vogliono [math]2^{128}[/math] ipotesi per provare ciascuna delle possibili chiavi a 128 bit, e [math]2^{256}[/math] ipotesi per provare ciascuna delle possibili chiavi a 256 bit. L'ultimo numero di tentativi è enormemente più grande del primo, quindi in questo senso AES256 è enormemente più forte.
Ma migliora la vostra sicurezza?
Il fatto è che semplicemente non c'è modo che qualcuno possa forzare una chiave a 128 bit scelta correttamente. Le possibilità che qualcuno la forzi sono effettivamente zero. Quindi usare una chiave a 256 bit non vi difende da nessun rischio plausibile da cui una chiave a 128 bit non vi difenderebbe.
Le possibilità che qualcuno forzi la chiave a 128 bit sono effettivamente zero. Certo è enormemente più difficile forzare una chiave a 256 bit, ma c'è poco guadagno per la maggior parte degli scopi nel ridurre un rischio già "effettivamente zero". E la differenza tra effettivamente zero e effettivamente zero è effettivamente zero. Quindi c'è effettivamente zero riduzione del rischio.
Come ho detto in Indovina perché stiamo passando a chiavi AES a 256 bit, che parla di Molly, uno dei miei cani, che nasconde i giocattoli di Patty (altro cane) in uno dei [math]2^{128}[/math] nascondigli,
Le possibilità che Patty e tutti i suoi amici super veloci trovino il nascondiglio di Molly è il più vicino allo zero possibile. Chiamiamo le possibilità di Patty in questo caso [math]\epsilon_1[/math], un numero davvero piccolo. Se Molly usa [math]2^{256}[/math] possibili nascondigli invece di [math]2^{128}[/math], le probabilità che Patty e i suoi amici trovino quello con i giocattoli è un altro numero così vicino allo zero come potremmo desiderare. Chiameremo queste probabilità [math]\epsilon_2[/math]. Certo, [math]\epsilon_2[/math] è molte volte più piccolo di [math]\epsilon_1[/math], ma sia [math]\epsilon_1[/math] che [math]\epsilon_2[/math] sono già vicini allo zero come potremmo desiderare. Il guadagno pratico di sicurezza di Molly nell'usare un numero maggiore di spazi di occultamento è praticamente la differenza tra [math]\epsilon_1[/math] e [math]\epsilon_2[/math]. Questa differenza, per tutti gli scopi significativi, è zero.
L'unico accenno a una possibile eccezione
Se un computer quantistico abbastanza grande e abbastanza stabile fosse costruito in modo da poter eseguire l'algoritmo di Grover' allora dovremmo raddoppiare le dimensioni delle nostre chiavi. E raddoppiare da 128 a 256 sarebbe la cosa giusta. Negli ultimi 25 anni, i progressi sui giusti tipi di computer quantistici sono stati più lenti di quanto ci si aspettasse. E quindi non sono preoccupato per questo.
Se pensate che tali computer quantistici possano apparire entro i prossimi 30 anni (io no), e avete bisogno di criptare dati ora che dovranno rimanere sicuri tra 30 anni, allora usate 256 bit.
256-bit AES richiede tempo ed energia, ma ...
Bakhtiyar era anche corretto nel dire che AES256 è più lento. Consuma anche più energia. Quindi, in particolare su dispositivi a bassa potenza o su cose che devono criptare/decriptare molti dati velocemente, ci sono buone ragioni per attenersi alle chiavi AES a 128 bit.
Ma se state producendo un'applicazione consumer, non siamo solo preoccupati dei requisiti di tempo ed energia dell'applicazione attuale, ma anche del vostro tempo ed energia. Se usate chiavi a 128 bit, spenderete molto tempo ed energia per spiegare tutto questo alle persone che (erroneamente) insistono sulle chiavi a 256 bit. Quindi, se il costo delle prestazioni dell'uso di chiavi a 256 bit non è un problema reale, potete risparmiare (voi stessi) un sacco di tempo ed energia andando semplicemente con chiavi a 256 bit.
Una vera debolezza delle chiavi a 256 bit
C'è solo un altro colpo di scena in tutto questo. C'è in realtà un difetto nella progettazione del programma di chiavi per AES256 che non vale per AES128. Questo rende AES256 vulnerabile agli attacchi alle chiavi correlate. (Vedi: Distintivo e attacco a chiave correlata sull'AES-256 completo). Finora questo non rende AES256 più debole di AES128, ma è un motivo di preoccupazione. È anche importante che voi progettiate la vostra crittografia per non dipendere dalla resistenza agli attacchi alle chiavi correlate in AES. Cioè, tutte le vostre chiavi di crittografia dovrebbero essere scelte a caso ed essere indipendenti l'una dall'altra.
Ad ogni modo, gran parte di ciò che ho scritto in questa risposta è tratto da qualcosa che ho scritto nel 2013 per il blog AgileBits: Guess why we're moving to 256-bit AES keys Date un'occhiata a questo. Fornisce più background e ha storie sui cani.
Articoli simili
- Qual è più sicuro: Wi-Fi (privato sicuro o pubblico) o dati cellulari?
- Telegram messenger è sicuro? È più sicuro di WhatsApp?
- E' sicuro far arrivare la marijuana attraverso la posta in modo sicuro in Pakistan o in qualsiasi altro posto?
- Qual è il più sicuro e il più basso sito di trading di criptovalute in India?