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 .