Anche in questa modalità si utilizza un vettore di inizializzazione IV. Essa presenta come primo passo la costruzione di una sequenza:
dove e
con chiave K segreta. Come si puó notare tale stringa
è completamente indipendente dal messaggio in chiaro, ed inoltre essa è utilizzata come un
one-time-pad. Sia
il
messaggio in chiaro; il messaggio cifrato è definito da
dove:
Per la fase di decifratura si calcola la sequenza allo stesso modo
del caso della cifratura. Quindi i blocchi del messaggio in chiaro sono definiti da:
Anche per tale metodo c'è la variante a j bit, in particolare per la cifratura abbiamo lo schema in Figura 17.
Figura 17: Schemi di cifratura e decifratura Output Feedback con j bit.
Questo schema è analogo a quello definito per il CFB, l'unica diversità stà nel fatto che il feed-back (cioè il riutilizzo di una certa parte dell'informazione) non riguarda j bit del testo cifrato, ma i j bit piú a sinistra della stringa in output prodotta dal DES.
Si puó notare che la parte superiore dello schema di cifratura è completamente indipendente
dai bit del messaggio in chiaro, ed inoltre per j=64 otteniamo lo schema generale per la
cifratura, descritto precedentemente nella (6). Infatti considerando inizialmente il valore
, ed
applicando ad esso l'algoritmo
, ottengo i 64 bit che costituiscono
, quindi considerando
tale stringa come input al DES ottengo la stringa
, cosí proseguendo definisco la
sequenza di chiavi
.
Queste chiavi verranno poi utilizzate per effettuare lo xor bit a bit con le stringhe del messaggio
in chiaro.
La decifratura ha come schema quello in Figura 17.
Come si puó notare, la prima parte di esso è uguale a quella che viene utilizzata per effettuare la cifratura (ciò è valido dal momento che la sequenza del messaggio in chiaro generata da questa prima parte è indipendente dal messaggio in chiaro, cosí\ come dal messaggio cifrato).
Quindi, ad ogni passo si considerano i j bit piú a sinistra delle stringhe fornite in output dall'algoritmo DES, e si effettua lo xor bit a bit con j bit del messaggio cifrato, ottenendo cosí j bit del messaggio in chiaro.
Tale metodo ha il vantaggio che la sequenza puó essere
computata indipendentemente dal messaggio in chiaro, e quindi puó essere precalcolata
(sfruttando per esempio dei tempi in cui la macchina è inattiva), in modo tale che quando
viene immesso il messaggio da cifrare, la cifratura puó essere eseguita immediatamente:
(lo stesso vale per la decifratura). Quindi in realtà le operazioni di
cifratura/decifratura vere è proprie consisteranno semplicemente di operazioni di
xor che come sappiamo sono estremamente veloci da realizzare.
Lo svantaggio rispetto al metodo precedente è dovuto al fatto che il cambiamento di un bit nel messaggio originario provoca il cambiamento di un solo bit nel testo cifrato e viceversa, e tutti gli altri bit che precedono e seguono questi rimangono inalterati.
In definitiva possiamo dire che per tale modalità non c'è dipendenza tra i vari blocchi del messaggio cifrato, e questo porta ai problemi già visti in precedenza.