In crittografia il Data Encryption Standard (DES, ) è un algoritmo di cifratura scelto come standard dal Federal Information Processing Standard (FIPS) per il governo degli Stati Uniti d'America nel 1976 e in seguito diventato di utilizzo internazionale. Si basa su un algoritmo a chiave simmetrica con chiave a 64 bit (ma solo 56 utili poiché 8 sono di controllo).
Questo algoritmo all'inizio ha suscitato molte discussioni per via della sua chiave di cifratura corta e per via di alcune scelte progettuali che erano segretate. Si supponeva che dietro queste scelte vi fosse la National Security Agency (NSA) e l'inserimento di una backdoor. Di conseguenza il DES è stato oggetto di un'intensa analisi di tipo accademico che ha contribuito in modo notevole allo sviluppo delle conoscenze che sono alla base dei moderni algoritmi di cifratura e delle moderne tecniche di crittoanalisi.
Attualmente DES è considerato insicuro per moltissime applicazioni. La sua insicurezza deriva dalla chiave utilizzata per cifrare i messaggi, che è di soli 56 bit. Nel gennaio del 1999 distributed.net ed Electronic Frontier Foundation collaborarono per rompere pubblicamente una chiave di crittazione, e ci riuscirono in 22 ore e 15 minuti. Con le potenze di calcolo disponibili al 2009 si può forzare una chiave DES in poche ore esaminando tutte le possibili combinazioni. L'algoritmo è ritenuto sicuro reiterandolo tre volte nel Triple DES, anche se in teoria così è esposto ad alcuni attacchi. Negli ultimi anni DES è stato sostituito dall'Advanced Encryption Standard (AES) un nuovo algoritmo che elimina molti dei problemi del DES.
In alcuni documenti parlando del DES si utilizza anche la sigla DEA (Data Encryption Algorithm), il nome originale dell'algoritmo così come fu ideato da IBM. Il nome DES si pronuncia (di-i-es, ) o come una singola sillaba (des).
Storia del DES Le origini del DES risalgono all'inizio degli anni settanta. Nel 1972 l'NBS (National Bureau of Standards), ora chiamato NIST, dopo aver concluso una serie di studi sulla sicurezza informatica per il governo statunitense, stabilì che era necessario individuare un algoritmo di cifratura per documenti senza alcuna classificazione di sicurezza, pubblico e comune in modo da favorire la comunicazione protetta tra le varie organizzazioni governative statunitensi. Dopo essersi consultata con la National Security Agency il 15 maggio 1972 venne presentata la prima richiesta pubblica di uno standard di cifratura definito secondo criteri rigorosi. Nessuno degli algoritmi presentati superò i test dell'NSA e quindi il 27 agosto 1974 fu diramato un secondo bando. In quel periodo IBM sottopose come candidato il DEA, sviluppato tra il 1973 e il 1974 e basato su un precedente algoritmo denominato Lucifer. Il gruppo di lavoro che a IBM era dedito allo studio degli algoritmi crittografici era capitanato da Horst Feistel: la struttura del Lucifer e del DEA era una novità del ricercatore e da lui prendeva il nome di rete di Feistel. Il gruppo era composto anche da Walter Tuchman, Don Coppersmith, Alan Konheim, Carl Meyer, Mike Matyas, Roy Adler, Edna Grossman, Bill Notz, Lynn Smith e Bryant Tuckerman.
Coinvolgimento dell'NSA Il 17 marzo 1975 il DES proposto fu pubblicato nel Federal Register. Furono richiesti commenti pubblici e l'anno seguente si tennero due congressi pubblici per discutere lo standard proposto. Pervennero critiche da varie parti, anche dai pionieri della crittografia a chiave pubblica Martin Hellman e Whitfield Diffie, che citarono la brevità della lunghezza della chiave e le misteriose S-box come prova di un'interferenza impropria da parte della NSA. Il sospetto che aleggiava era che l'algoritmo fosse stato indebolito di nascosto dall'agenzia di intelligence in modo che loro, ma nessun altro, potesse facilmente leggere i messaggi cifrati. Alan Konheim (uno dei progettisti del DES) rispose Il Select Committee on Intelligence del Senato degli Stati Uniti esaminò le azioni della NSA per determinare se ci fosse stato un coinvolgimento improprio. Nel resoconto delle indagini pubblicato nel 1978, il Comitato scrisse
A ogni modo, scoprirono che,
A un altro membro del gruppo di sviluppo del DES, Walter Tuchman, si attribuisce la seguente citazione: Questo, però, è in contrasto con quanto affermato in una pubblicazione non più top secret dell'NSA sull'evoluzione della crittografia:
Alcuni sospetti su possibili debolezze nascoste nelle S-box furono dissipati nel 1990 in seguito alla pubblicazione da parte di Eli Biham e Adi Shamir della crittanalisi differenziale, un metodo generale per violare i cifrari a blocchi. Le S-box del DES erano molto più resistenti agli attacchi che se fossero state scelte a caso, facendo fortemente sospettare che l'IBM conoscesse questa tecnica già negli anni '70. Quello che accadde veramente fu chiarito in parte nel 1994, quando Don Coppersmith pubblicò i criteri di progetto originali delle S-box. L'IBM aveva scoperto la crittanalisi differenziale negli anni '70 e, dopo aver reso sicuro il DES, gli fu richiesto dalla NSA di mantenere segreta questa tecnica. Come spiega Coppersmith, Levy, citando Walter Tuchman, disse:
L'algoritmo diventa uno standard Nonostante le critiche, il DES fu approvato come standard federale nel novembre del 1976 e pubblicato il 15 gennaio 1977 come FIPS PUB 46, certificato per l'uso su tutti i dati non classificati. È stato in seguito riconfermato come standard nel 1983, 1988 (riesaminato come FIPS-46-1), 1993 (FIPS-46-2) e nuovamente nel 1998 (FIPS-46-3), nel quale si prescrive il "Triple DES" (vedi più avanti). Il 26 maggio 2002, il DES è stato finalmente rimpiazzato dall'AES, l'Advanced Encryption Standard, in seguito a un confronto pubblico. Il 19 maggio 2005, lo standard FIPS 46-3 è stato ufficialmente ritirato, ma il NIST ha approvato l'uso di Triple DES fino all'anno 2030 per informazioni governative sensibili.
L'algoritmo è anche descritto nell'ANSI X3.92American National Standards Institute, ANSI X3.92-1981 American National Standard, Data Encryption Algorithm, nel NIST SP 800-67 e nell'ISO/IEC 18033-3 (come un componente di TDEA).
Un altro attacco teorico, la crittanalisi lineare, è stato pubblicato nel 1994 ma è stato un attacco a forza bruta nel 1998 a dimostrare che il DES può essere praticamente violato e che si rendeva pertanto necessario il rimpiazzo con un altro algoritmo. Questo e altri metodi di crittanalisi saranno discussi con maggiore dettaglio nel corso dell'articolo.
L'introduzione del DES è stato un catalizzatore per ricerche accademiche sulla crittografia, in particolare sui metodi di violazione dei cifrari a blocchi. In accordo con la visione NIST del DES
Cronologia Data Anno Evento 15 maggio 1973 L'NBS pubblica una prima richiesta per un algoritmo standard di cifratura 27 agosto 1974 L'NBS pubblica una seconda richiesta per un algoritmo di cifratura 17 marzo 1975 Il DES viene pubblicato nel Federal Register per avere dei commenti agosto 1976 Primo workshop sul DES settembre 1976 Secondo workshop, si discute sui fondamenti matematici del DES novembre 1976 Il DES è approvato come standard 15 gennaio 1977 Il DES è pubblicato come standard FIPS in FIPS PUB 46 1983 DES è confermato per la prima volta 1986 Videocipher II propone un sistema di crittazione di segnali TV satellitari analogici basato su DES 22 gennaio 1988 Il DES è confermato per la seconda volta come FIPS 46-1, in sostituzione di FIPS PUB 46 luglio 1990 Biham e Shamir (ri) scoprono la crittanalisi differenziale, e la applicano a un sistema di crittazione di tipo DES a 15 fasi. 1992 Biham e Shamir pubblicano il primo attacco teorico con complessità minore di uno con forza bruta: crittanalisi differenziale. A ogni modo, richiede l'irrealistico numero di 247 testi in chiaro (Biham e Shamir, 1992). 30 dicembre 1993 Il DES è confermato per la terza volta come FIPS 46-2 1994 La prima crittanalisi sperimentale del DES è attuata utilizzando la crittanalisi lineare (Matsui, 1994). giugno 1997 Il progetto DESCHALL riesce, per la prima volta in pubblico, a violare la crittazione DES di un messaggio. luglio 1998 Il DES cracker dell'EFF (Deep Crack) viola una chiave DES in 56 ore. gennaio 1999 Deep Crack e distributed.net in congiunzione violano una chiave DES in 22 ore e 15 minuti. 25 ottobre 1999 Il DES è confermato per la quarta volta come FIPS 46-3, dove si specifica che è raccomandato l'uso del Triple DES, il DES singolo è permesso solo per compatibilità col passato. 26 novembre 2001 L'Advanced Encryption Standard è pubblicato come FIPS 197 26 maggio 2002 Lo standard AES diventa effettivo 26 luglio 2004 Proposta di ritiro del FIPS 46-3 e altri standard correlati 19 maggio 2005 NIST ritira la FIPS 46-3 15 marzo 2007 Una macchina parallela FPGA denominata COPACOBANA dell'università di Bochum e Kiel in Germania viola una codifica DES in 6,4 giorni con un sistema dal costo di $10.000.
Algoritmi sostitutivi Alcune considerazioni sulla sicurezza e la relativa lentezza di alcune implementazioni software del DES hanno motivato i ricercatori a proporre un certo numero di progetti di cifrature a blocchi alternativi a cominciare dalla fine degli anni ottanta e i primi anni novanta, per esempio RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 e FEAL. La maggior parte di questi progetti hanno mantenuto la dimensione dei blocchi a 64 bit come nel DES per poterlo sostituire con minori modifiche; inoltre usano chiavi di 64 o 128 bit. In URSS fu introdotto l'algoritmo GOST 28147-89 con un blocco dalla dimensione di 64 bit e una chiave a 256 bit. Questo algoritmo, più tardi, è stato adottato come standard governativo anche dalla Russia.
Il DES stesso può essere adattato e riutilizzato secondo uno schema più sicuro. Molti dei precedenti utilizzatori del DES ora usano il Triple DES (TDES) che è stato analizzato e descritto nelle pubblicazioni ufficiali; questo schema implica l'applicazione dell'algoritmo DES tre volte. Questa operazione può avvenire utilizzando due chiavi diverse (questa variante di TDES è chiamata 2TDES) o tre chiavi diverse (3TDES). Il 3TDES è considerato adeguatamente sicuro, anche se abbastanza lento. Un'alternativa computazionalmente meno pesante è rappresentata dal DES-X che aumenta la lunghezza della chiave effettuando un'operazione di XOR con dei bit extra prima e dopo l'applicazione del DES. Il GDES è stata un'altra variante del DES proposta per avere un'alternativa più veloce ma si è dimostrata debole nei confronti degli attacchi mediante crittanalisi differenziale.
Nel 2001, dopo una competizione internazionale, il NIST ha selezionato un nuovo algoritmo di cifratura come sostituto del DES: l'Advanced Encryption Standard. L'algoritmo che è stato selezionato per diventare l'AES è stato proposto dai progettisti col nome di Rijndael. Gli altri finalisti della competizione per l'AES del NIST sono stati l'RC6, il Serpent (secondo classificato), il MARS e il Twofish (terzo classificato).
Descrizione
Il DES è l'archetipo della cifratura a blocchi, un algoritmo che prende in ingresso una stringa di lunghezza fissa di testo in chiaro e la trasforma con una serie di operazioni complesse in un'altra stringa di testo cifrato della stessa lunghezza. Nel caso del DES la dimensione del blocco è di 64 bit. Il DES usa inoltre una chiave per modificare la trasformazione in modo che l'operazione di decifratura possa essere effettuata solo conoscendo la chiave stessa. La chiave è lunga 64 bit ma solo 56 di questi sono effettivamente utilizzati dall'algoritmo. Otto bit sono utilizzati solo per il controllo di parità e poi scartati, per questo la lunghezza della chiave effettiva è riportata come di 56 bit.
Come altri algoritmi di cifratura a blocchi, il DES deve essere utilizzato secondo una modalità di cifratura se applicato a messaggi più lunghi di 64 bit. FIPS-81 specifica diverse modalità di utilizzo del DES, inclusa l'autenticazione. Ulteriori considerazioni sull'uso del DES sono presenti in FIPS-74.