Modalità di funzionamento della crittografia a blocchi

In questo capitolo, discuteremo le diverse modalità di funzionamento di un cifrario a blocchi. Queste sono regole procedurali per un codice a blocchi generico. È interessante notare che le diverse modalità portano al raggiungimento di proprietà diverse che aumentano la sicurezza del codice a blocchi sottostante.

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

Modalità Electronic Code Book (ECB)

Questa modalità è il modo più semplice per elaborare una serie di blocchi di messaggi elencati in sequenza.

Operazione

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

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

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

Infatti, 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. Pertanto, l'operazione è analoga all'assegnazione di parole in codice in un codebook, e quindi ottiene un nome ufficiale - Electronic Codebook mode of operation (ECB). È illustrato come segue:

Analisi della modalità ECB

In realtà, i dati dell'applicazione di solito hanno informazioni parziali che possono essere indovinate. Ad esempio, è possibile indovinare la gamma di stipendio. Un testo cifrato della BCE può consentire a un utente malintenzionato di indovinare il testo in chiaro per tentativi ed errori se il messaggio di testo in chiaro è prevedibile.

Ad esempio, se un testo cifrato dalla modalità ECB è noto per crittografare una cifra di stipendio, un piccolo numero di prove consentirà a un utente malintenzionato di recuperare la cifra. In generale, non desideriamo utilizzare un cifrario deterministico e quindi la modalità ECB non dovrebbe essere utilizzata nella maggior parte delle applicazioni.

Modalità Cipher Block Chaining (CBC)

La modalità operativa CBC fornisce la dipendenza dal messaggio per la generazione di testo cifrato e rende il sistema non deterministico.

Operazione

Il funzionamento della modalità CBC è illustrato nella figura seguente. I passaggi sono i seguenti:

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

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

  • Crittografa il risultato dell'operazione XOR con il codice a blocchi sottostante con la chiave K.

  • Inserisci il blocco di testo cifrato nel registro superiore e continua l'operazione finché tutti i blocchi di testo in chiaro non vengono elaborati.

  • Per la decrittografia, i dati IV vengono XORed con il primo blocco di testo cifrato decrittografato. Il primo blocco di testo cifrato viene anche inserito per registrare la sostituzione di IV per decriptare il successivo blocco di testo cifrato.

Analisi della modalità CBC

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

Il vantaggio di CBC rispetto a ECB è che la modifica di IV produce un testo cifrato diverso per un messaggio identico. Sul lato svantaggio, l'errore nella trasmissione viene propagato a pochi ulteriori blocchi durante la decrittografia a causa dell'effetto concatenamento.

Vale la pena ricordare che la modalità CBC costituisce la base per un noto meccanismo di autenticazione dell'origine dei dati. Pertanto, presenta 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 "reinserito" nel processo di crittografia per crittografare il successivo blocco di testo in chiaro.

Operazione

Il funzionamento della modalità CFB è illustrato nella figura seguente. Ad esempio, nel sistema attuale, un blocco di messaggi ha una dimensione 's' bit dove 1 <s <n. La modalità CFB richiede un vettore di inizializzazione (IV) come blocco di input casuale iniziale di n bit. La flebo non deve essere segreta. Le fasi operative sono:

  • Carica l'IV nel registro superiore.

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

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

  • Inserisci il blocco di testo cifrato nel registro superiore spostando i dati già presenti a sinistra e continua l'operazione finché tutti i blocchi di testo in chiaro non vengono elaborati.

  • In sostanza, il blocco di testo cifrato precedente viene crittografato con la chiave, quindi il risultato viene XORed al blocco di testo normale corrente.

  • Passaggi simili vengono seguiti per la decrittografia. L'IV pre-deciso viene inizialmente caricato all'inizio della decrittografia.

Analisi della modalità CFB

La modalità CFB differisce significativamente dalla modalità ECB, il testo cifrato corrispondente a un dato blocco di testo in chiaro non dipende 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 decrittografa il testo cifrato utilizzando solo il processo di crittografia del cifrario a blocchi. L'algoritmo di decrittografia del codice a blocchi sottostante non viene mai utilizzato.

Apparentemente, la modalità CFB sta convertendo un cifrario a blocchi in un tipo di cifrario a flusso. L'algoritmo di crittografia viene utilizzato come generatore di flusso di chiavi per produrre un flusso di chiavi che viene inserito nel registro inferiore. Questo flusso di chiavi viene quindi sottoposto a XOR con il testo in chiaro come nel caso del cifrario a flusso.

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

Il rovescio della medaglia, l'errore di trasmissione viene propagato a causa del cambio di blocchi.

Modalità Output Feedback (OFB)

Implica il feed dei blocchi di output successivi dal codice a blocchi sottostante ad esso. Questi blocchi di feedback forniscono una stringa di bit per alimentare l'algoritmo di crittografia che funge da generatore di flusso di chiavi come nel caso della modalità CFB.

Il flusso di chiavi generato è XOR-ed con i blocchi di testo in chiaro. La modalità OFB richiede un IV come blocco iniziale di input casuale di n bit. La flebo non deve essere segreta.

L'operazione è illustrata nella figura seguente:

Modalità contatore (CTR)

Può essere considerata come una versione basata su contatore della modalità CFB senza feedback. In questa modalità, sia il mittente che il destinatario 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

Sia la crittografia che la decrittografia in modalità CTR sono illustrate nella figura seguente. I passaggi operativi sono:

  • Caricare il valore del contatore iniziale nel registro superiore è lo stesso sia per il mittente che per il destinatario. Svolge lo stesso ruolo dell'IV in modalità CFB (e CBC).

  • Crittografa il contenuto del contatore con la chiave e posiziona 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 ciò è C1. Invia C1 al destinatario e aggiorna il contatore. L'aggiornamento del contatore sostituisce il feedback del testo cifrato in modalità CFB.

  • Continua in questo modo fino a quando l'ultimo blocco di testo in chiaro non è stato crittografato.

  • La decrittografia è il processo inverso. Il blocco di testo cifrato viene sottoposto a XOR con l'output di contenuti crittografati del valore del contatore. Dopo la decrittografia di ogni blocco di testo cifrato, il contatore viene aggiornato come nel caso della crittografia.

Analisi della modalità contatore

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

Come la modalità CFB, la modalità CTR non coinvolge il processo di decrittografia del codice a blocchi. Questo perché la modalità CTR utilizza realmente il cifrario a blocchi per generare un flusso di chiavi, che viene crittografato utilizzando la funzione XOR. In altre parole, la modalità CTR converte anche un cifrario a blocchi in un cifrario a flusso.

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

Tuttavia, la modalità CTR presenta quasi tutti i vantaggi della modalità CFB. Inoltre, non propaga affatto l'errore di trasmissione.