Cipher Block Chaining

Dato un messaggio in chiaro x1x2 ... xn ed una chiave nascosta k, in questa modalità un generico yi è dato da:

yi = DESk(yi-1 Å xi), 1 £ i £ n (*)

con y0 = IV(vettore di inizializzazione a 64 bit).

Il funzionamento di questa modalità è definito dallo schema di figura 4.2.1

Figura 4.2.1: Schema di cifratura col Cipher Block Chaining.

Il procedimento di cifratura considera inizialmente il vettore IV, di 64 bit, quindi effettua lo xor bit a bit tra questi ed i primi 64 bit del messaggio in chiaro, infine applica alla stringa così ottenuta l'algoritmo di cifratura DES con chiave k, ottenendo il blocco cifrato y1. Quest'ultimo viene poi utilizzato per fare lo xor bit a bit col blocco successivo del messaggio in chiaro x2, quindi si applica alla stringa così ottenuta l'algoritmo DES sempre con la stessa chiave k, ottenendo il blocco cifrato y2 e così via. Con questo metodo, si definisce in qualche modo un legame tra yi ed il blocco precedente yi-1.

Nota: Il vettore di inizializzazione IV potrebbe essere scelto a caso e tenuto nascosto per una maggiore sicurezza, tuttavia in molte implementazioni esso viene addirittura reso pubblico.

Per decifrare si utilizza lo schema di Figura 4.2.2.

Figura 4.2.2: Schema di decifratura col Cipher Block Chaining.

Dal momento che y1, come è noto, è il primo blocco in output del processo di cifratura, ottenuto come output all'algoritmo DES (Figura 4.2.1), per ottenere x1 possiamo ragionare all'inverso del caso della cifratura, cioè si applica y1 come input del DES-1 (algoritmo di decifratura) con la stessa chiave k, ottenendo quindi la stringa che precedentemente definiva lo xor bit a bit tra x1 ed IV, che costituiva l'input del DES. Ora poiché si vuole calcolare x1 si effettua l'operazione inversa, cioè lo xor bit a bit del valore in output del DES-1 con IV e ottenendo x1. In generale, dalla (*) si ricava:

xi = yi-1 Å DESk-1(yi) per 1 £ i £ n

Il vantaggio di questo schema è che se si cambia un solo bit del messaggio originario cambia di conseguenza anche la parte rimanente del messaggio. Questa caratteristica elimina la possibilità di un attacco tramite sostituzione di un blocco. Infatti, in una tale evenienza il messaggio sarebbe irrimediabilmente compromesso.

Questo legame (dipendenza) esistente tra i vari blocchi del messaggio è alla base del funzionamento del Message Autentication Code (MAC) che verrà analizzato nella sezione Applicazioni del DES Applicazioni del DES.

Lo svantaggio di tale metodo è che in esso vengono eseguite più operazioni rispetto all'ECC, e quindi rispetto ad esso è più lento.


Pagina precedente | Torna in cima | Pagina successiva