next up previous contents
Successivo: Critiche al DES Su: Descrizione del DES Precedente: Schedulazione delle chiavi

La decifratura del DES

Vogliamo trovare l'algoritmo di decifratura DES con chiave K, che indicheremo con tex2html_wrap_inline2786 per cui valga la seguente proprietà:

displaymath2788

per ogni messaggio in chiaro x e per ogni chiave K. Sebbene DES possa apparire complicato come metodo per cifrare un messaggio in chiaro, nasconde in sé una caratteristica molto importante. tex2html_wrap_inline2786 è lo stesso algoritmo tex2html_wrap_inline2796 eccezion fatta per la schedulazione delle chiavi, che è invertita (le chiavi vengono prodotte inordine inverso). Vediamo perché.

Consideriamo il messaggio cifrato tex2html_wrap_inline2602 a meno della permutazione finale tex2html_wrap_inline2550 . Riguardando lo schema della 16-esima iterazione di cifratura (Figura 8) si ricavano le seguenti relazioni:

   figure456
Figura 8: L'iterazione 16 della cifratura DES.

displaymath2802

e

displaymath2804

Da qui riscrivendo le due equazioni possiamo ricavare il blocco precedentegif:

displaymath2810

e

displaymath2812

In conclusione: da tex2html_wrap_inline2604 e tex2html_wrap_inline2606 abbiamo ricavato tex2html_wrap_inline2818 ed tex2html_wrap_inline2820 come si vede in Figura 9.

   figure482
Figura 9: Prima iterazione della decifratura DES.

Quindi, invertendo il ruolo di R ed L e utilizzando le chiavi in maniera inversa, da tex2html_wrap_inline2822 a tex2html_wrap_inline2824 , si puó ritornare al messaggio in chiaro passando attraverso le seguenti coppie:

displaymath2826

Questo è il motivo per cui alla fine dell'algoritmo si effettua lo scambio tra le parti L e R.

Le iterazioni della codifica e della decodifica sono le stesse, ma quello che cambia passando dalla cifratura alla decifratura è l'ordine con cui vengono schedulate le chiavi. Alla prima iterazione servirà la chiave tex2html_wrap_inline2822 , alla seconda la chiave tex2html_wrap_inline2834 e cosí via. Dal momento che per la fase di decifratura, le chiavi devono essere schedulate in ordine inverso alla cifratura, dobbiamo effettuare delle variazioni al dispositivo di schedulazione definito in precedenza.

In particolare dobbiamo fare in modo che pur prendendo in input la chiave K, tale dispositivo produca le chiavi nell'ordine desiderato. Il passo principale per ottenere ciò è quello di invertire lo shift che veniva applicato alle metà tex2html_wrap_inline2838 effettuando uno shift ciclico a destra (anziché a sinistra) di due posizioni eccetto all'iterazione 16 (la prima per la decifratura), all'iterazione 9 (l'ottava per la decifratura), all'iterazione 2 e 1 (quindicesima e sedicesima) in cui lo shift è di una posizione. Ci sono state molte implementazioni sia hardware che software e molti sono stati gli sforzi per velocizzare al massimo le operazioni di cifratura e decifratura [2] [14] [15]. Per il momento la piú veloce implementazione hardware è stata quella prodotta dalla Digital Equipment Corporation: il chip, che supporta le modalità ECB e CBC (vedi Modalità operative del DES) è costruito con 50K transistor e puó cifrare o decifrare alla velocità di un Gbit/secondo ossia 15.6 milioni di blocchi di 64 bit al secondo [13].

Un'implementazione software del DES su IBM 3090 mainframe puó effettuare 32.000 cifrature al secondo. Riportiamo di seguito i tempi di alcuni microcomputer in particolare Motorola e Intel (il software è stato scritto in linguaggio C e assembler) [24].

 

Processore Frequenza Parola Numero di
del clock macchina blocchi DES
(Mhz) (in bits) (per second)
8088 4.7 8 370
68000 7.6 16 900
80286 6.0 16 1.100
68020 16.0 32 3.500
68030 16.0 32 3.900
80286 25.0 16 5.000
68030 50.0 32 9.600
68040 25.0 32 16.000
68040 40.0 32 23.200
80486 33.0 32 40.600
Tabella 7: Prestazioni del DES su vari processori.

 


next up previous contents
Successivo: Critiche al DES Su: Descrizione del DES Precedente: Schedulazione delle chiavi

Aniello Castiglione e Gerardo Maiorano < anicas,germai@zoo.diaedu.unisa.it >