[successivo] [precedente] [inizio] [fine] [indice generale] [parte]


Capitolo 11.   DES (Data Encryption Standard)

11.1   Introduzione al DES

Il DES consiste in un algortimo ed una chiave. La chiave occupa 64 bit, dove i primi 56 corrispondono alla chiave, i rimanenti 8 bit sono per il controllo di parità (viene perso un bit ogni blocco da otto). Con una lunghezza di 56 bit le chiavi sono possibili in totale 256.

La procedura di cifratura viene completata in due passaggi; il primo consiste nella generare la chiave lunga otto caratteri dove l'ultimo byte rappresenta la parità;. Il secondo passaggio è la cifratura del messaggio richiesto con l'utilizzo della chiave precedente. Per decifrare il messaggio in codice è necessario utilizzare la stessa chiave utilizzata per la cifratura per questo il DES viene detto a chiave simmetrica.

Il funzionamento dell'algoritmo utilizzato nel DES consiste nel suddividere i dati da cifrare in blocchi da 64 bit (8 byte). Il blocco di bit viene trasformato da testo in chiaro a testo in codice . Il primo passo nel DES consiste nel permutare l'ordine dei bit, successivamente i 64 bit vengono suddivisi a metà ossia in due blocchi da 32 bit i quali subiscono sedici trasformazioni consecutive.

La cifratura del testo può essere ottenuta con metodi differenti. Un metodo semplice, ma poco sicuro, consiste nel trasformate consecutivamente e indipendentemente ogni blocco da 8 bit; un altro metodo consiste nel trasformare consecutivamente ma dipendentemente dalle trasformazioni precedenti, ogni blocco da 8 bit.

Nel primo tipo possiamo trovare il metodo ECB; nel secondo tipo i metodi CBC, CFB e OFB.

11.2   Modelli di cifratori

I metodi usati per la crittogrfia si differenziano per le applicazioni cui sono destinati. Questi metodi si dividono altresì in due famiglie: cifratori a blocchi e cifratori a flusso.

I primi eseguono la trasformazione quando il blocco stabilito è caricato in memoria. Se il blocco non è completo si procede terminando la serie inserendo un numero di bit quasi sempre pseudo casuali. La cifratura avviene utilizzando la chiave fornita e il testo in chiaro. In questa famiglia vi sono il metodo ECB ed il metodo CBC.

I secondo non impongono una dimensione fissa al blocco, quindi possono operare con qualsiasi numero di bit e cifrare senza aspettare che vi sia il dato completo presente in memoria. La cifratura avviene utilizzando la combinazione del testo in chiaro e da un flusso segreto di bit; questi ultimo viene generato partendo da un vettore di inizializzazione del tutto casuale. In questa famiglia vi sono il metodo CFB ed il metodo OFB.

ECB (Electronic Codebook Mode)

Quest'algoritmo è sensibile agli attacchi basati sul tipo dictionary attack; questo perché la stessa chiave sullo stesso testo genera lo stesso testo cifrato. La stessa chiave viene usata in tutti i blocchi da 8 bit.

La cifratura opera su blocchi fissi da 64 bit di lunghezza. Ogni blocco viene cifrato in modo indipendente dagli altri, rendendo il metodo poco sicuro.

Se ci sono errori durante la cifratura, questi vengono propagati in tutti i successivi blocchi.

CBC (Cipher Block Chaining Mode)

La cifratura viene eseguita su blocchi multipli di 64 bit di lunghezza e con l'ultilizzo contemporaneo di una chiave e di un vettore di inizializzazione. Il vettore ha la funzione di fornire una prima trasformazione sul primo blocco di testo da cifrare (viene eseguito un OR esclusivo).

Ad ogni successivo passo di cifratura, il vettore di inizializzazione viene sostiutio con il blocco precedente di testo in codice. In questo modo avviene un altro OR esclusivo tra il blocco di testo da cifrare e quello precedente. Dopo questo passaggio avviene la cifratura del blocco.

Il testo cifrato è lo stesso se si usa la stessa chiave con lo stesso vettore di inizializzazione.

Se ci sono errori durante la cifratura di un blocco, questi vengono propagati in tutti i successivi.

CFB Cipher Feedback Mode

La cifratura viene eseguita su blocchi con lunghezza minore o uguale a 64 bit e con l'ultilizzo contemporaneo di una chiave e di un vettore di inizializzazione.

Ad ogni passo, il blocco in chiaro viene cifrato con una chiave che considera come una variabile il precedente testo in codice (l'operazione svolta è un OR esclusivo).

Il testo cifrato è lo stesso se si usa la stessa chiave con lo stesso vettore di inizializzazione.

Scegliendo un numero molto piccolo di bit sono necessari più passaggi di cifratura e quindi un costo maggiore in termini computazionali.

Se ci sono errori durante la cifratura di un blocco, questi vengono propagati in tutti i successivi.

OFB Output Feedback Mode

La cifratura viene eseguita su blocchi di lunghezza minore o uguale a 64 bit e con l'ultilizzo contemporaneo di una chiave e di un vettore di inizializzazione.

L'algoritmo è più debole del precedente in quanto manca la variabile che lega il testo in codice del blocco precedente con la procedura di trasformazione della chiave, come avviene con il metodo CFB. Viene utlizzato solo per linee particolarmente sensibili al rumore (tipo la trasmissione satellitare) o dove ci sia bisogno di alte velocità di comunicazione.

Il testo cifrato è lo stesso se si usa la stessa chiave con lo stesso vettore di inizializzazione.

Scegliendo un numero molto piccolo di bit sono necessari più passaggi di cifratura e quindi un costo maggiore in termini computazionali.

Se ci sono errori durante la cifratura di un blocco, questi non si propagano nei blocchi successivi.

Triple ECB

La cifratura del testo in chiaro avviene con tre chiavi consecutive. La prima serve per cifrare, la seconda per decifrare e la terza per cifrare nuovamente.

La chiave intera raggiunge la lunghezza di 168 bit.

Utilizzando due chiavi identiche, la prima e l'ultima, la lunghezza della chiave intera raggiunge i 112 bit. Utilizzando tre chiavi identiche l'algoritmo è equivalente allo ECB standard.

Triple CBC

La cifratura del testo in chiaro avviene con tre chiavi consecutive. La prima serve per cifrare, la seconda per decifrare e la terza per cifrare nuovamente.

La chiave intera raggiunge la lunghezza di 168 bit.

Utilizzando due chiavi identiche, la prima e l'ultima, la lunghezza della chiave intera raggiunge i 112 bit. Utilizzando tre chiavi identiche l'algoritmo è equivalente allo ECB standard.


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome des_data_encryption_standard.html

[successivo] [precedente] [inizio] [fine] [indice generale]