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
la funzione di cifratura del
singolo blocco (parametrizzata
dalla chiave
),
l'i-esimo blocco di testo in chiaro e
l'i-esimo
blocco di testo cifrato; allora
viene calcolato come
dove il simbolo
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 è
, la decifraura è
allora effettuata nel modo seguente:
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:
Esistono altre modalità operative per i cifrari a blocco, quali ad esempio
la modalità Cipher FeedBack (CFB).
©2001 Davide Cerri