Block Cipher Modes of Operation

Advertisements

In questo capitolo, discuteremo i diversi modi di funzionamento di un block cipher. Queste sono regole procedurali per un generico cifratore a blocchi. È interessante notare che le diverse modalità portano a diverse proprietà che si aggiungono alla sicurezza del cifratore a blocchi sottostante.

Un cifratore a blocchi elabora i blocchi di dati di dimensione fissa. Di solito, la dimensione di un messaggio è più grande della dimensione del blocco. Quindi, il messaggio lungo è diviso in una serie di blocchi di messaggi sequenziali, e il cifratore opera su questi blocchi uno alla volta.

Modo ECB (Electronic Code Book)

Questo modo è un modo più diretto di elaborare una serie di blocchi di messaggi elencati in sequenza.

Operazione

  • L’utente prende il primo blocco di testo in chiaro e lo codifica con la chiave per produrre il primo blocco di testo cifrato.

  • Prende poi il secondo blocco di testo in chiaro e segue lo stesso processo con la stessa chiave e così via.

La modalità ECB è deterministica, cioè, se i blocchi di testo in chiaro P1, P2,…, Pm sono criptati due volte con la stessa chiave, i blocchi di testo cifrato in uscita saranno gli stessi.

In effetti, per una data chiave tecnicamente possiamo creare un codebook di testi cifrati per tutti i possibili blocchi di testo in chiaro. La crittografia comporterebbe quindi solo la ricerca del testo in chiaro richiesto e la selezione del testo cifrato corrispondente. Così, l’operazione è analoga all’assegnazione di parole in codice in un cifrario, e quindi ottiene un nome ufficiale – Electronic Codebook mode of operation (ECB). È illustrato come segue –

Analisi del modo ECB

In realtà, qualsiasi dato applicativo ha di solito informazioni parziali che possono essere indovinate. Per esempio, la gamma di stipendi può essere indovinata. Un testo cifrato da ECB può permettere ad un attaccante di indovinare il testo in chiaro per tentativi ed errori se il messaggio in chiaro è prevedibile.

Per esempio, se un testo cifrato dal modo ECB è noto per criptare una cifra di stipendio, allora un piccolo numero di prove permetterà ad un attaccante di recuperare la cifra. In generale, non vogliamo usare un cifrario deterministico, e quindi il modo ECB non dovrebbe essere usato nella maggior parte delle applicazioni.

Modo CBC (Cipher Block Chaining)

Il modo di funzionamento CBC fornisce la dipendenza dal messaggio per generare il testo cifrato e rende il sistema non deterministico.

Operazione

Il funzionamento del modo CBC è rappresentato nella seguente illustrazione. I passi sono i seguenti –

  • Carica il vettore di inizializzazione (IV) a n bit nel registro superiore.

  • XOR il blocco di testo in chiaro a n bit con il valore dei dati nel registro superiore.

  • Codifica il risultato dell’operazione XOR con il cifratore a blocchi sottostante con chiave K.

  • Inserisci il blocco di testo cifrato nel registro superiore e continua l’operazione fino a quando tutti i blocchi di testo in chiaro sono processati.

  • Per la decrittazione, i dati IV sono XORed con il primo blocco di testo cifrato decrittato. Il primo blocco di testo cifrato è anche inserito nel registro sostituendo IV per decifrare il prossimo blocco di testo cifrato.

Analisi della modalità CBC

In modalità CBC, il blocco di testo in chiaro corrente è aggiunto al blocco di testo cifrato precedente, e poi il risultato è criptato con la chiave. La decrittazione è quindi il processo inverso, che comporta la decrittazione del testo cifrato corrente e poi l’aggiunta del blocco di testo cifrato precedente al risultato.

Il vantaggio di CBC rispetto a ECB è che cambiando IV si ottiene un testo cifrato diverso per un messaggio identico. Sul lato dello svantaggio, l’errore nella trasmissione si propaga a pochi altri blocchi durante la decrittazione a causa dell’effetto di concatenamento.

Va detto che la modalità CBC costituisce la base per un ben noto meccanismo di autenticazione dell’origine dei dati. Quindi, ha un vantaggio per quelle applicazioni che richiedono sia la crittografia simmetrica che l’autenticazione dell’origine dei dati.

Modalità Cipher Feedback (CFB)

In questa modalità, ogni blocco di testo cifrato viene ‘alimentato indietro’ nel processo di crittografia al fine di crittografare il successivo blocco di testo in chiaro.

Operazione

Il funzionamento della modalità CFB è raffigurato nella seguente figura. Per esempio, nel presente sistema, un blocco di messaggio ha una dimensione ‘s’ bit dove 1 < s < n. La modalità CFB richiede un vettore di inizializzazione (IV) come blocco di input iniziale casuale a n bit. L’IV non deve essere segreto. I passi dell’operazione sono –

  • Carica il IV nel registro superiore.

  • Codifica il valore dei dati nel registro superiore con il cifratore a blocchi sottostante con la chiave K.

  • Prendi solo ‘s’ numero di bit più significativi (bit di sinistra) dell’output del processo di crittografia e XOR con ‘s’ bit del blocco del messaggio in chiaro per generare il blocco del testo cifrato.

  • Inserisce il blocco di testo cifrato nel registro superiore spostando i dati già presenti a sinistra e continua l’operazione fino a quando tutti i blocchi di testo sono processati.

  • In sostanza, il precedente blocco di testo cifrato è criptato con la chiave, e poi il risultato è XORed al blocco di testo corrente.

  • Passi simili sono seguiti per la decriptazione. La IV predeterminata è inizialmente caricata all’inizio della decrittazione.

Analisi della modalità CFB

La modalità CFB differisce significativamente dalla modalità ECB, il testo cifrato corrispondente ad un dato blocco di testo in chiaro dipende non solo da quel blocco di testo in chiaro e dalla chiave, ma anche dal blocco di testo cifrato precedente. In altre parole, il blocco di testo cifrato dipende dal messaggio.

CFB ha una caratteristica molto strana. In questa modalità, l’utente decifra il testo cifrato utilizzando solo il processo di crittografia del cifratore a blocchi. L’algoritmo di decrittazione del cifratore a blocchi sottostante non viene mai usato.

Apparentemente, la modalità CFB sta convertendo un cifratore a blocchi in un tipo di cifratore a flusso. L’algoritmo di crittografia è usato come un generatore di flusso di chiavi per produrre un flusso di chiavi che è posto nel registro inferiore. Questo flusso chiave è poi XORed con il testo in chiaro come nel caso del cifrario a flusso.

Convertendo un cifrario a blocchi in un cifrario a flusso, il modo CFB fornisce alcune delle proprietà vantaggiose di un cifrario a flusso pur mantenendo le proprietà vantaggiose di un cifrario a blocchi.

Sul rovescio della medaglia, l’errore di trasmissione si propaga a causa del cambiamento dei blocchi.

Modalità di feedback in uscita (OFB)

Si tratta di alimentare i blocchi in uscita successivi dal cifratore a blocchi sottostante. Questi blocchi di feedback forniscono una stringa di bit per alimentare l’algoritmo di crittografia che agisce come il generatore del flusso di chiavi come nel caso della modalità CFB.

Il flusso di chiavi generato è XOR-ed con i blocchi di testo in chiaro. Il modo OFB richiede un IV come blocco iniziale di input casuale a n bit. L’IV non deve essere segreto.

L’operazione è rappresentata nella seguente illustrazione –

Modalità contatore (CTR)

Può essere considerata come una versione basata sul contatore della modalità CFB senza il feedback. In questa modalità, sia il mittente che il ricevitore devono accedere a un contatore affidabile, che calcola un nuovo valore condiviso ogni volta che viene scambiato un blocco di testo cifrato. Questo contatore condiviso non è necessariamente un valore segreto, ma la sfida è che entrambe le parti devono mantenere il contatore sincronizzato.

Operazione

La crittografia e la decrittografia in modalità CTR sono rappresentate nella seguente illustrazione. I passi nel funzionamento sono –

  • Carica il valore iniziale del contatore nel registro superiore è lo stesso sia per il mittente che per il ricevitore. Ha lo stesso ruolo del IV in modalità CFB (e CBC).

  • Codifica il contenuto del contatore con la chiave e metti il risultato nel registro inferiore.

  • Prendi il primo blocco di testo in chiaro P1 e XOR questo al contenuto del registro inferiore. Il risultato di questo è C1. Invia C1 al ricevitore e aggiorna il contatore. L’aggiornamento del contatore sostituisce il feedback del testo cifrato in modalità CFB.

  • Continuate in questo modo fino a quando l’ultimo blocco di testo in chiaro è stato criptato.

  • La decriptazione è il processo inverso. Il blocco di testo cifrato è XORed con l’uscita del contenuto cifrato del valore del contatore. Dopo la decrittazione di ogni blocco di testo cifrato il contatore viene aggiornato come nel caso della crittografia.

Analisi del Counter Mode

Non ha dipendenza dal messaggio e quindi un blocco di testo cifrato non dipende dai precedenti blocchi di testo in chiaro.

Come il modo CFB, il modo CTR non comporta il processo di decrittazione del cifratore a blocchi. Questo perché la modalità CTR sta realmente utilizzando il cifratore a blocchi per generare un flusso di chiavi, che viene criptato utilizzando la funzione XOR. In altre parole, la modalità CTR converte anche un cifratore a blocchi in un cifratore a flusso.

Il grave svantaggio della modalità CTR è che richiede un contatore sincrono al mittente e al ricevitore. La perdita di sincronizzazione porta al recupero errato del testo in chiaro.

Tuttavia, il modo CTR ha quasi tutti i vantaggi del modo CFB. Inoltre, non propaga affatto l’errore di trasmissione.

Avvisi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.