2 Cifrari a blocco e loro modalità operative

Un cifrario a blocco (block cipher) opera su blocchi di dati in ingresso producendo blocchi di dati in uscita (esitono anche i cifrari a flusso (stream ciphers), che operano invece su un flusso di dati in maniera continua). Il più noto cifrario a blocco è probabilmente il DES (con la variante del triplo DES), altri sono ad esempio IDEA, Blowfish, CAST-128 e RC5. Il modo più semplice di utilizzare un cifrario a blocco è quello di cifrare singolarmente (e indipendentemente) ogni blocco in ingresso: in questo modo (noto come modalità Electronic CodeBook -- ECB) blocchi uguali in ingresso (cioè nel testo in chiaro) producono blocchi uguali in uscita (cioè nel testo cifrato). Questa proprietà, in presenza di ridondanze note, può essere d'aiuto per la crittoanalisi del testo cifrato, inoltre facilita operazioni quali la sostituzione di uno o più blocchi. Si utilizzano allora delle modalità operative diverse. Una di esse è detta Cipher Block Chaining (CBC), e funziona nel modo seguente. Siano $E_{K}$ la funzione di cifratura del singolo blocco (parametrizzata dalla chiave $K$), $P_{i}$ l'i-esimo blocco di testo in chiaro e $C_{i}$ l'i-esimo blocco di testo cifrato; allora $C_{i}$ viene calcolato come

\begin{displaymath}C_{i} = E_{K}\left[C_{i-1} \oplus P_{i}\right] \end{displaymath}

dove il simbolo $\oplus$ indica la disgiunzione esclusiva (XOR) bit a bit. In questo modo si crea una catena, in quanto la cifratura di un blocco è effettuata tenendo in considerazione anche il blocco precedente. Se la funzione di decifratura sul singolo blocco è $D_{K}$, la decifraura è allora effettuata nel modo seguente:

\begin{displaymath}P_{i} = C_{i-1} \oplus D_{K}\left[C_{i}\right] \end{displaymath}

Per ottenere il primo blocco si deve utilizzare il cosiddetto vettore di inizializzazione (IV), che deve essere segreto e noto ad entrambe le parti, per cui:

\begin{displaymath}C_{1} = E_{K}\left[IV \oplus P_{1}\right] \end{displaymath}


\begin{displaymath}P_{1} = IV \oplus D_{K}\left[C_{1}\right] \end{displaymath}

Esistono altre modalità operative per i cifrari a blocco, quali ad esempio la modalità Cipher FeedBack (CFB).
©2001 Davide Cerri