Questo metodo è il piú semplice tra quelli proposti. In esso un messaggio in chiaro
(dove ogni
rappresenta un blocco di 64 bit) viene
cifrato applicando ripetutamente ad ogni blocco
l'algoritmo DES, sempre con la stessa chiave
K, producendo un testo cifrato
.
Quindi i valori dei blocchi
sono dati da
Lo schema è illustrato in Figura 12.
Figura 12: Schema dell'Electronic Codebook Chaining.
L'unico problema con questo metodo si ha quando il messaggio è costituito da un numero di bit che non è un multiplo di 64, cioè quando l'ultimo blocco non contiene esattamente 64 bit, ma di meno. La soluzione per questo caso non è definita dallo standard, ma bisogna convenire su come risolverlo.
L'idea potrebbe essere quella di inserire del testo opportuno alla
fine del blocco, in modo tale che, in fase di decifratura, possa essere semplice distinguere il testo aggiunto
da quello originale.
Una possibile soluzione è quella di aggiungere al messaggio originale la sequenza , in modo
da completare l'ultimo
blocco a 64 bit. Naturalmente, questa operazione deve essere fatta anche quando l'ultimo blocco è già
di 64 bit, in modo
da stabilire un criterio generale.
Questo significa che, in fase di decifratura si sa con certezza che la stringa finale del messaggio
decifrato, cioè la stringa
, è stata aggiunta in fase di cifratura, e quindi non viene considerata come facente parte del
messaggio
originario.
L'operazione di decifratura considera un blocco alla volta del messaggio, cosí come accadeva per la cifratura, applicando però in questo caso l'algoritmo di decifratura DES.
Il vantaggio di questo metodo è che è abbastanza veloce.
Lo svantaggio è dato dal fatto che, durante la trasmissione del messaggio, potrebbe aversi sia la perdita di un blocco che l'attacco da parte di un nemico. In particolare, quest'ultimo potrebbe sostituire un blocco con un altro, senza la possibilità che colui che riceve il messaggio possa accorgersene. Per esempio egli potrebbe cambiare in un messaggio il blocco ``$1900'' con ''$9100'', oppure il blocco ``do'' con ``do not'' senza essere scoperto. Questo è dovuto alla mancanza di dipendenza tra i vari blocchi. Il primo metodo che evita questi inconvenienti è il Cipher Block Chaining.