# Triple DES

In crittografia, il Triple DES (DES triplo) è un cifrario a blocchi basato sulla ripetizione del Data Encryption Standard (DES) per tre volte.

## Algoritmo

Quando si scoprì che la chiave a 56 bit del DES non era abbastanza lunga da garantire la sicurezza contro attacchi a forza bruta, il TDES fu scelto come modo semplice per aumentare la lunghezza della chiave senza bisogno di cambiare algoritmo. L'uso di tre passaggi è essenziale per prevenire attacchi di tipo meet-in-the-middle che funzionano contro la doppia crittazione DES. Si noti che il DES non è un gruppo; se lo fosse, il TDES sarebbe equivalente al singolo DES, e non sarebbe più sicuro.

### Sequenza di operazioni

La più semplice variante del TDES opera come segue: ${\textrm {DES}}(k_{3};{\textrm {DES}}(k_{2};{\textrm {DES}}(k_{1};M)))$, dove $M$ è il blocco di messaggio da cifrare e $k_{1}$, $k_{2}$, e $k_{3}$ sono le chiavi DES. Questa variante è comunemente conosciuta come EEE perché tutte e tre le operazioni DES criptano ((E)ncription). Per semplificare l'interoperabilità tra il DES e il TDES il passaggio centrale è usualmente rimpiazzato con una decriptazione (modo EDE): ${\textrm {DES}}(k_{3};{\textrm {DES}}^{-1}(k_{2};{\textrm {DES}}(k_{1};M)))$ e quindi una singola criptazione DES con la chiave $k$ può essere rappresentata come TDES-EDE con $k_{1}=k_{2}=k_{3}=k$. La scelta della decriptazione per il passaggio centrale non influisce sulla sicurezza dell'algoritmo.

### Numero di chiavi

Siccome TDES utilizza tre passaggi di criptazione permette l'utilizzo di una, due o tre chiavi di criptazione. Il numero di chiavi adottate è indicato alla fine della notazione di ordine di esecuzione (es. DES-EEE1, DES-EEE2, DES-EEE3). L'utilizzo di un'unica chiave è il modo meno sicuro di implementare l'algoritmo in particolare se si utilizza la sequenza criptazione-decriptazione-criptazione (DES-EDE1) che, in realtà, si riduce ad un singolo ordine di criptazione perché i primi due passaggi si elidono a vicenda. L'utilizzo di tre chiavi differenti garantisce la migliore protezione come in DES-EEE3 e DES-EDE3.

## Sicurezza

In generale TDES con tre differenti chiavi (3TDES) ha una lunghezza della chiave di 168 bit: tre chiavi des da 56 bit ciascuna (con i bit di parità si arriva a una lunghezza di 192 bit), ma la sicurezza garantita è di soli 112 bit.
Una variante, chiamata TDES a due chiavi (2-key TDES) usa k$_1$ = k$_3$, riducendo così la lunghezza della chiave a 112 bit e la lunghezza effettiva a 128 bit. Tuttavia, questa modalità è suscettibile a certi attacchi con testo in chiaro scelto o testo in chiaro noto e quindi si è ufficialmente deciso che abbia solo 80 bit di sicurezza.
Il miglior attacco conosciuto alla criptazione TDES con tre chiavi distinte richiede circa 2$^{32}$ parole conosciute, 2$^{113}$ passi, 2$^{90}$ cifrature DES singole, e 2$^{88}$ memoria (l'articolo presenta altri confronti tra tempo e memoria). Questo non è attualmente fattibile. Se l'attaccante cerca di scoprire una qualunque delle molte chiavi crittografiche, c'è un attacco efficace in termini di memoria, che permette di scoprire una delle 2$^{28}$ chiavi, dando una quantità di parole da scegliere per chiave attorno alle 2$^{84}$ operazioni di cifrature. Questo attacco è altamente parallelizzabile e potrebbe situarsi in un orizzonte di praticabilità, ammessa la disponibilità di budget di milioni di dollari e la disponibilità di anni di tempo per portare a termine l'attacco, sebbene le circostanze per il quale questo sarebbe utile sono limitate.

## Utilizzo

Il TDES, praticamente in disuso, ora è rimpiazzato dal suo successore naturale, AES.
Per implementazione, il DES ed anche il TDES, soffrono di una bassa prestazione software; sui processori moderni, l'AES tende ad essere circa sei volte più veloce. Il TDES era adatto a implementazioni hardware su vari sistemi di cifratura ormai superati dall'efficienza e dalla scalabilità dell'AES che non richiede hardware dedicato.

## Varianti del 3-DES

* DES - EEE3: 3-DES con tre diverse chiavi di cifratura una per ogni passaggio
* DES - EDE3: 3 Chiavi di cifratura diverse : una per cifrare , una per decifrare , una per cifrare nuovamente
* DES - EEE2: Simile al DES-EEE3 ma la prima e la terza chiave sono uguali
* DES - EDE2: Simile al DES-EDE3 ma la prima e la terza chiave sono uguali