Seleziona un tasto TripleDES in modo che si comporti efficacemente come DES normale

6

Sto lavorando con una smartcard (DESFire) che supporta sia TripleDES che DES. Nelle specifiche si afferma che entrambe le modalità operative utilizzano 16 byte chiavi. Quando i primi 8 byte nella chiave sono identici agli 8 byte finali, viene utilizzata la modalità DES. In caso contrario, viene selezionato l'algoritmo TDEA.

Questo è uno shock per me dal momento che ho capito che Triple DES utilizza un pacchetto chiave di 56 bit * 3 = 168 bit (21 byte). Che tipo di crittografia Triple DES potrebbe supportare? C'è un altro modo per selezionare un tasto per TDEA in modo che si comporti come un singolo DES, a parte selezionare un pacchetto chiave k1k2k3 dove k1 = k2 = k3?

EDIT: Sembra che ci sia una "opzione di codifica 2", dove k1 = k3! = K2.

Questa è l'unica opzione TDEA supportata da DESFire, immagino. Il più recente DESFire ev1 supporta l'opzione di codifica completa 3 TDEA insieme a AES.

    
posta Mister Smith 15.11.2011 - 10:01
fonte

1 risposta

5

DES è definito per utilizzare una chiave a 64 bit. Solo 56 di questi bit sono realmente utilizzati, quindi la "lunghezza della chiave effettiva" (per la resistenza contro la ricerca esauriente) è quella di una chiave a 56 bit. Tuttavia, qualsiasi implementazione si aspetterà una sequenza di 64 bit (quindi, 8 byte, non 7).

Triple-DES (alias "3DES") è costituito da tre istanze DES in sequenza. L'istanza DES "centrale" viene utilizzata in modalità di decodifica, proprio così che un motore che implementa 3DES può anche eseguire DES semplice. Se dai il nome ai tre tasti successivi K 1 , K 2 e K 3 , quindi, quando K 1 = K 2 , le prime due istanze DES si annullano a vicenda (il secondo DES essendo in modalità decrittografia, inverte ciò che il primo DES ha fatto), quindi questo è equivalente al semplice DES con il tasto K 3 . Allo stesso modo, se K 2 = K 3 , è equivalente al semplice DES con la chiave K 1 .

3DES utilizza nominalmente una chiave a 192 bit (tre chiavi DES a 64 bit), di cui 168 bit vengono effettivamente utilizzati. Tuttavia, c'è un attacco "accademico" contro 3DES con costo 2 112 , quindi si dice spesso che la sicurezza complessiva di 3DES è simile a quella offerta da un teoricamente perfetto crittografia a blocchi con una chiave a 112 bit. Quindi, esiste una modalità di utilizzo diffusa di 3DES in cui utilizziamo una chiave a 128 bit: 64 bit per K 1 e 64 bit per K 2 , quindi imposta K 3 = K 1 . In parole semplici, cripta il blocco con K 1 , quindi decrittalo con K 2 , quindi cripta di nuovo con < em> K 1 . Questo sembra sufficiente per raggiungere il livello di sicurezza a 112 bit (dei 128 bit chiave, solo 112 sono realmente usati) e l'attacco accademico dimostra che non si può andare oltre quel livello (112 bit sono già molto al di là di ciò che è tecnologicamente breakable in questo momento, quindi non preoccuparti) ( Modifica: DW sottolinea che esiste un attacco migliore, a condizione che tu possa raccogliere parecchie coppie di testo in chiaro / cifrate, tuttavia il costo dell'attacco è ancora troppo alto da usare in pratica). Questo è ciò che implementa la tua smartcard.

Si noti che esistono protocolli che utilizzano 3DES e richiedono realmente la chiave a 192 bit e non possono funzionare con un'implementazione che supporta solo chiavi a 128 bit; un primo esempio è SSL .

    
risposta data 15.11.2011 - 16:00
fonte

Leggi altre domande sui tag