Decrittografia su AES quando si utilizzano la stessa chiave e IV

6

Diciamo che ho tre messaggi crittografati da AES-128 con la stessa chiave e IV ogni volta. È possibile decifrare la chiave utilizzata? E, ancora più importante, è possibile decodificare il testo di lamentela di quei messaggi?

    
posta geraldgreen 10.10.2012 - 08:02
fonte

2 risposte

10

Ciò che accade qui dipende dalla modalità di funzionamento . Come regola di base, la conoscenza dei messaggi non ti permetterà di ricalcolare la chiave stessa, ma potrebbe darti abbastanza informazioni per (istantaneamente) violare qualsiasi altro messaggio crittografato con la stessa chiave e IV.

Con la modalità CTR, un flusso dipendente dalla chiave viene prodotto crittografando i valori successivi di un contatore e il contatore inizia al valore indicato nella IV. La crittografia dei dati effettiva viene eseguita da XORing di questo flusso con i dati da crittografare. Se si utilizzano la stessa chiave e IV, si ottiene lo stesso flusso, quindi ci si trova nelle condizioni del (in) famoso pad due volte . Senza conoscere la chiave, è ancora possibile calcolare lo XOR di due messaggi, che è spesso sufficiente per craccarli, sfruttando la loro struttura interna. Una volta che uno dei messaggi è noto, questo rivela il flusso dipendente dalla chiave (fino alla lunghezza del messaggio) e ciò consente la decrittazione immediata di qualsiasi altro messaggio (fino a quella lunghezza) crittografato con lo stesso tasto + IV.

La modalità OFB si trova in una situazione simile: produce un flusso pseudo-casuale dipendente dalla chiave. Quindi può essere rotto con lo stesso livello di facilità del CTR.

Con la modalità CBC, le cose sono un po 'più difficili per l'attaccante. Se i messaggi iniziano con gli stessi byte, allora sarai in grado di vederlo. Dopo i primi byte distinti, la decifrazione diventa molto più difficile. Questo perché, in effetti, ogni blocco nella crittografia CBC viene utilizzato come IV per il resto del messaggio e la crittografia dei dati con un codice a blocchi tende a produrre IV correttamente distribuito per CBC. Generalmente, CBC richiede un IV uniformemente casuale che è imprevedibile dall'attaccante, ma nella tua situazione prevedi un attaccante passivo, e contro un simile avversario, un IV selezionato da un blocco di dati noto crittografato è abbastanza buono per CBC, a lungo poiché la sorgente IV non viene riutilizzata; questo è ciò che ottieni con i tuoi messaggi, iniziando dal primo blocco in cui i messaggi differiscono.

La modalità CFB è una via di mezzo. Se due messaggi iniziano con gli stessi n byte, anche i messaggi crittografati inizieranno con gli stessi n byte; quindi, per il resto del blocco contenente il n + 1 -th byte, questo è il doppio pad. Per i byte successivi, i flussi sono biforcati e gli arresti di potere dell'attaccante.

Importante: sebbene i paragrafi precedenti sembrino indicare che CBC o CFB sarebbero sicuri per riutilizzare la chiave + IV purché includi un contatore nell'intestazione di ciascun messaggio, ricorda che questo è per solo un attaccante passivo . In molti (molti) scenari, l'hacker può anche incorporare un po 'di dati personali nei messaggi che devono essere crittografati e / o modificare i byte crittografati e vedere cosa succede quando vengono decodificati. Per questi scenari, che sono realistici ( molti attacchi recenti di nuovo SSL sono tutto ciò), riutilizzo IV e persino la selezione IV prevedibile (con CBC), sono irrimediabilmente deboli . Non riutilizzare IV .

L'unica situazione in cui una IV fissa va bene è quando i tasti non vengono mai riutilizzati, cioè ogni chiave viene usata solo per un singolo messaggio. Questo è, in pratica, più difficile da ottenere rispetto a un nuovo IV per messaggio, poiché le chiavi devono essere mantenute riservate: è già difficile avere una chiave conosciuta sia dal mittente che dal ricevente, ma da nessun altro. Almeno, IV non ha questo requisito di riservatezza e quindi può essere trasmesso insieme al messaggio stesso.

    
risposta data 10.10.2012 - 11:43
fonte
2

Usare lo stesso IV e la stessa chiave per più di un messaggio non mette a repentaglio la chiave, ma rende più facile per un utente malintenzionato ottenere il testo normale. Il modo in cui funziona dipende dalla modalità operativa utilizzata.

Se la modalità di funzionamento è un codice di streaming (come Counter mode o OFB), usare lo stesso IV e key per due messaggi è come usare lo stesso "one time pad" per due messaggi - l'attacker può ottenere un XOR dei messaggi semplicemente eseguendo XOR dei messaggi crittografati. Questo dovrebbe essere abbastanza informazioni per un aggressore competente per ottenere i messaggi chiari. Per ulteriori dettagli, consulta Usufruendo del riutilizzo delle chiavi del pad monouso? .

Ma anche se la modalità di funzionamento non è un codice di flusso (ad esempio CBC) riutilizzando lo stesso IV e la chiave verranno perse informazioni sui messaggi, ad esempio se iniziano con gli stessi dati.

Quindi la regola è: non riutilizzare le IV.

    
risposta data 10.10.2012 - 10:44
fonte

Leggi altre domande sui tag