Questo sito contribuisce alla audience di

Algoritmo del DES

La sequenza di opeazioni che illustra la cifratura dell'algoritmo del DES. L'articolo è tratto dalla tesi di laurea in "Applicazione delle tecniche di crittografia nella trasmissione ed elaborazione dati" redatta dall'ingegnere Federico Gennari nell'anno accademico 2000/2001.

6.2 – algoritmo del DES

Come abbiamo già anticipato, il DES è essenzialmente un cifratore a blocco di tipo Feistel che lavora su blocchi di 64 bit. Tutta la segretezza risiede nella chiave, che essendo di 56 bit (+8 bit di parità probabilmente usati per indebolire l’algoritmo [1] ) implementa, al massimo, 256 delle 264! possibili mappe invertibili su 64 bit (ovvero 256 trasformazioni, una per ogni chiave, reversibili dallo spazio dei messaggi allo spazio delle chiavi).

La cifratura consiste nella seguente sequenza di operazioni:

i) una permutazione iniziale sul blocco di 64 bit.

ii) Divisione del singolo blocco di 64 bit in due sotto blocchi da 32 bit, L0 e R0. Generazioni dalla chiave K di sedici sotto chiavi Ki da 48 bit ciascuna.

iii) Esecuzione del seguente ciclo (reiterazione di 16 volte):

per Dove L0,R0 sono i blocchi iniziali sinistro e destro,

Li = Ri-1; Il simbolo “^” significa XOR, La funzione F è una

Ri = Li-1^F(Ri-1, Ki) funzione di Feistel (si veda appendice 2) che combina i

Sotto blocchi di testo Ri con i sottoblocchi della chiave Ki come segue: F(Ri-1; Ki) =P(S( E(Ri-1) ^ Ki)) con E una permutazione fissa che espande Ri-1 da 32 a 48 bit, P un’altra permutazione fissa, S è l’insieme di otto mappatori a sostituzione da 6 a 4 bit, fissi e scelti con cura.

iv) una permutazione finale sul blocco di 64 bit (inversa di quell’iniziale).

Un stadio di Feistel. A sx un stadio di cifraz. A dx un stadio di decifraz.

La sequenza delle sottochiavi Ki, chiamato prospetto delle chiavi (key schedule), è di generazione abbastanza laboriosa ed esula dagli scopi di questo scritto. Naturalmente la letteratura su questo cifratore è più che sterminata, ma un semplice approccio è dato dai testi citati nella bibliografia.

La decifratura è molto semplice, basta riapplicare tutto il processo ma invertendo la sequenza delle sottochiavi Ki, da K16 a K1.

[1] Tale indebolimento è stato richiesto dalla NSA che non vede di buon occhio l’esistenza di cifratori troppo potenti che neppure lei stessa può violare, in quanto servizio segreto di spionaggio.