Dopo quanto Data Encryption (AES-256) dovremmo cambiare chiave?

11

Considerando la crittografia AES-256, qual è la quantità massima di dati dovrebbe essere crittografata con una chiave? Anche le modalità di cifratura a blocchi / IV / contatori controllano il limite?

Se l'importo massimo è 50 GB, significa che l'unico file di 50 GB ha un limite o 5 file di 10 GB?

    
posta Deepesh M 02.02.2013 - 20:18
fonte

2 risposte

11

Un codice a blocchi è una Pseudocasuale permutazione : la chiave seleziona la funzione apparentemente a caso nell'insieme delle possibili permutazioni di lo spazio dei valori di blocco (che lo spazio ha dimensione 2 128 per AES, poiché ha blocchi a 128 bit). La maggior parte degli usi di un PRP va bene fintanto che sembra una funzione Pseudorandom . La differenza tra un PRP e un PRF è che il PRP non ti darà mai due uscite identiche per due input distinti, mentre il PRF potrebbe farlo. Tuttavia, una funzione selezionata casualmente ti darà una collisione di questo tipo solo a caso, e richiederà molte invocazioni: in media, 2 invocazioni N / 2 se l'elaborazione blocchi di dimensioni N.

Traduzione: quando crittografa più di 2 64 blocchi con AES (cioè 2 68 byte, poiché un blocco AES è 16 byte) AES inizia ad assomigliare più a un PRP che a un PRF e questo è il punto in cui dovresti fermarti. Questo è più di 250 milioni di terabyte, che è piuttosto una quantità notevole.

Non importa se la suddetta quantità di dati è stata elaborata come uno, dieci o 42 miliardi di qualsiasi cosa tu possa scegliere di chiamare un "file". L'AES elabora blocchi di 16 byte e non sa nient'altro. D'altro canto, non ha alcuna importanza, dal momento che non raggiungerai praticamente il limite di 2 68 byte: AES è stato definito con blocchi a 128 bit precisamente in modo da poter crittografare terabyte di dati senza preoccuparci su una chiave a corto di succo. Quando è stato specificato AES, è stato pensato per sostituire 3DES , la cui dimensione di blocco a 64 bit era in effetti preoccupante (2 32 blocchi di 8 byte, ovvero 32 gigabyte, che possono essere raggiunti abbastanza facilmente sulle macchine di oggi).

Le dimensioni della chiave non hanno nulla a che fare con questa faccenda. Si tratta di dimensione del blocco , e questo è 128 bit per AES (indipendentemente dalle dimensioni della chiave).

    
risposta data 02.02.2013 - 20:33
fonte
6

Thomas Pornin (l'altro orso) ha pubblicato una spiegazione eccellente di come le modalità di crittografia influiscono su questo aspetto del tuo cifrario . La risposta breve è che se si utilizza l'uscita del blocco precedente per impostare lo stato per il blocco successivo, si corre il rischio di ripetersi.

In particolare, nella modalità OFB, si entra in un ciclo quando il modello si ripete. Questo potrebbe essere un ciclo molto stretto, o c'è la possibilità che il ciclo non si ripeta affatto fino a quando tutti i possibili valori sono esplorati. La dimensione del ciclo medio è a N / 2 bit. In particolare, con 2 N stati possibili totali, in media, eseguirai 2 N / 2 di questi stati prima di ripetere. Poiché il tuo contatore di stati ha tipicamente le stesse dimensioni del tuo blocco, quindi con una dimensione di blocco di 128 bit, in media scorrerai attraverso 2 blocchi 64 (non bit, non byte) prima di ripetere.

Al contrario, l'operazione "counter mode" ("CTR") utilizza un semplice contatore come stato di cifratura. Ciò significa che hai la certezza di scorrere l'intero spazio possibile prima di ripetere. Quindi se il tuo stato è di 128 bit, allora passerai in rassegna tutti e 2 gli stati 128 prima di ripetere.

Vale la pena sottolineare che uno spazio di quelle dimensioni è effettivamente infinito. Si tratta di circa 5.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000 di byte prima di dover cambiare le chiavi. E questo è con un blocco di 128 bit; con un blocco a 256 bit, raddoppi il numero di zeri.

La modalità CBC (probabilmente la più comune) utilizza l'output di un determinato blocco di codice per impostare lo stato per il blocco successivo, il che significa che lo stato è pesantemente influenzato dal contenuto del blocco precedente crittografato . Ciò significa che la presenza e la dimensione dei cicli (se presenti) sarebbero in parte determinati dal fatto che il testo in chiaro sia crittografato. Ciò rende la matematica un po 'meno esatta, ma non dovresti eliminare le prestazioni peggiori rispetto alla modalità OFB.

TL; DR: usa la modalità CTR e non preoccuparti di cambiare tasti.

    
risposta data 03.02.2013 - 03:03
fonte

Leggi altre domande sui tag