Il DES (Data Encryption Standard) è stato introdotto dal National Institute of Standards and Technology nel documento FIPS PUB 146 nel 1976, e successivamente perfezionato negli standard FIPS PUB 146-1 (1988), FIPS PUB 146-2 (1993) e FIPS PUB 146-3 (1998) [1].
Deriva dal cifrario LUCIFER, uno dei primi cifrari a blocchi civili, sviluppato all'IBM dal crittografo Horst Feistel. Quest'ultimo ideò un tipo di cifrari a blocchi con struttura simmetrica, detti Cifrari di Feistel, che a loro volta implementano le reti di sostituzione-permutazione introdotte da Claude Shannon nel 1949.
Descrizione
Vedere Descrizione del cifrario DES
Il DES è un cifrario a blocchi di tipo Feistel che opera su un blocco di input di 64 bit, produce un blocco in output di 64 bit e utilizza una chiave di 56 bit. Impiega 16 round, una funzione detta key scheduler, che genera 16 sottochiavi (da usare ad ogni round) e una funzione di Feistel.
Sicurezza
La chiave completa è di 64 bit, ma 8 bit sono impiegati per il controllo di parità, dunque non possono essere scelti. La lunghezza effettiva delle chiavi (56 bit) permette 256 chiavi diverse, pari a circa 7.2 1016 chiavi. Quando è stato introdotto, questo numero rendeva impraticabile un attacco a forza bruta, ovvero trovare la chiave che decifra un testo provando tutte le chiavi.
Anno | Proponente | Costo | Tempo | Tipo dispositivo |
---|---|---|---|---|
1977 | Diffie, Hellman | 20 milioni USD | 1 giorno | - |
1993 | Wiener | 1 milione USD | 7 ore | - |
1998 | EFF | 250 mila USD | 2 giorni | EFF DES cracker1, composto da 1856 chip ASIC dedicati |
2006 | Paar, Schimmler | 10 mila USD | 6,4 giorni | COPACOBANA2, composto da 120 chip FPGA (Xilinx Spartan3-1000) |
Già nel 1998 si era giunti ad una potenza di calcolo tale da minare la sicurezza del Data Encryption Standard. Si sono aggiunti inoltre altri attacchi più sofisticati con il trascorrere del tempo. Per aumentare la sicurezza sono state introdotte varianti del DES, come il Triple-DES, che impiegano due o più passaggi di cifratura o decifratura per aumentare il spazio delle chiavi.