Triple DES

Da Wikipedia, l'enciclopedia libera.
Triple Data Encryption Standard
3des-overall-view.png
Tre cifrature consecutive col DES
Generale
Progettisti IBM
Prima pubblicazione 1978
Derivato da DES
Successori -
Dettagli
Dimensione chiave 168 bit
Dimensione blocco 64 bit
Struttura Rete di Feistel
Numero di passaggi equivalente a 48 passaggi del DES
Migliore crittanalisi
Lucks: 232 testi in chiaro , 2113 operazioni incluse 290 cifrature DES, 288 memoria; Biham: trova una delle 228 possibili chiavi con un testo in chiaro prescelto per ogni chiave e 284 cifrature.

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

Algoritmo[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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.[1]

Sicurezza[modifica | modifica wikitesto]

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 anche con soli 112 bit.

Una variante, chiamata TDES a due chiavi (2-key TDES) usa k1 = k3, 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 [2] [3] e quindi si è ufficialmente[4] deciso che abbia solo 80 bit di sicurezza.

Il miglior attacco conosciuto alla criptazione TDES con tre chiavi distinte richiede circa 232 parole conosciute, 2113 passi, 290 cifrature DES singole, e 288 memoria[5] (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 228 chiavi, dando una quantità di parole da scegliere per chiave attorno alle 284 operazioni di cifrature[6]. 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[modifica | modifica wikitesto]

Il TDES sta lentamente andando in disuso, largamente rimpiazzato dal suo successore naturale, AES. Un'eccezione di larga scala è all'interno del piano elettronico industriale, il quale continua ad utilizzare 2TDES estensivamente e continua a sviluppare e promuovere standard basati su di esso (ad esempio EMV, disponibile sul sito dell'EMVCo). Questo garantisce che il TDES rimarrà uno standard crittografico attivo nel futuro.

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 è piuttosto adatto per implementazioni hardware, ed effettivamente dove è ancora utilizzato tende ad esserlo tramite implementazioni hardware (come applicazioni VPN e le reti di dati cellulari Nextel), ma anche in questi campi l'AES lo supera in prestazioni. Infine, AES offre effettivi margini di sicurezza maggiori: una dimensione del blocco maggiore (block size), chiavi potenzialmente più lunghe, e (per il 2005), è rimasto inviolato da attacchi crittografici.

Varianti del 3-DES[modifica | modifica wikitesto]

  • 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

Note[modifica | modifica wikitesto]

  1. ^ (EN) CISSP Open Study Guide on domain 5 cryptography
  2. ^ (EN) Ralph Merkle, Martin Hellman: On the Security of Multiple Encryption (PDF), Communications of the ACM, Vol 24, No 7, pp 465-467, July 1981
  3. ^ (EN) Paul van Oorschot, Michael Weiner, A known-plaintext attack on two-key triple encryption, EUROCRYPT'90, LNCS 473, 1990, pp. 318--325.
  4. ^ (EN) NIST, Recommendation for Key Management — Part 1: general, NIST Special Publication 800-57
  5. ^ (EN) Stefan Lucks: Attacking Triple Encryption (PDF). Fast Software Encryption 1998: pp 239-253
  6. ^ (EN) Eli Biham: How to Forge DES-Encrypted Messages in 228 Steps (PostScript). 1996.

Voci correlate[modifica | modifica wikitesto]