PROTEZIONE LOGICA DEI DATI NEI SISTEMI DI COMUNICAZIONE a cura di Gianluca Di Tomassi

Cap 5

Tecniche per la riservatezza dei messaggi

Introduzione

Cifratori a blocchi
Cifratura ELECTRONIC CODEBOOK MODE (ECB)
Cifratura CIPHER BLOCK CHAINING (CBC)
Cifratura a flusso
Cifratura CHIPER FEEDBACK (CFB)
Cifratura OUTPUT FEEDBACK (OFB)
Confronto fra cifratura a blocchi e cifratura a flusso

 

Introduzione

L' uso della crittografia è essenziale per la protezione da intercettazioni attive e passive nei sistemi di comunicazione. Per questo scopo si utilizzano algoritmi crittografici simmetrici o asimmetrici. Per quanto riguarda la cifratura si distinguono:

CIFRATORI A BLOCCHI

CIFRATORI A FLUSSO

[Torna inizio pagina]

 

5.1 Cifratori a blocchi

I cifratori a blocchi operano su singoli blocchi di messaggio, di lunghezza prefissata. Un esempio visto è quello del DES. Il funzionamento di una cifratura a blocchi può essere così schematizzato

 

Il blocco di testo cifrato è legato al blocco di testo chiaro e alla chiave di cifratura. La lunghezza dei blocchi manipolati è una caratteristica del sistema e deve essere tale da scoraggiare attacchi di tipo esaustivo. Il DES può essere usato in vari modi di operazione. Il processo che, tramite la cifratura, permette di ottenere il testo cifrato a partire da un blocco di testo chiaro e da una chiave K può essere utilizzato con blocchi di 64 bit per volta. Quindi può essere usato anche per crittografare una chiave dello stesso algoritmo. Quando il messaggio da cifrare è di lunghezza arbitraria si utilizza un metodo di cifratura detto di concatenazione tra blocchi , in modo da aumentare la robustezza dell' algoritmo crittografico. Questa tecnica consiste nel rendere l'uscita del sistema dipendente dall' ingresso corrente e dagli ingressi (o uscite) precedenti. In questo modo si maschera la presenza di ripetizioni nei dati. La concatenazione si può ottenere con :

Ä chiavi variabili, cambiando la chiave ad ogni passo del processo di cifratura (ad esempio ricavandole come funzione della chiave e della cifratura del passo precedente)

Ä un blocco di testo chiaro in funzione dei precedenti testi chiaro e cifrato

[Torna inizio pagina]

 

 

5.1.1 Cifratura ELECTRONIC CODEBOOK MODE (ECB)

In questo tipo di cifratura i blocchi che costituiscono un messaggio vengono cifrati separatamente. La debolezza principale di questo tipo di cifratura risiede nel fatto che i blocchi cifrati risultano fra loro indipendenti e quindi si potrebbe risalire al testo chiaro grazie alle ripetizioni che si presentano nei dati. Questo problema viene superato grazie alla concatenazione.

[Torna inizio pagina]

 

5.1.2 Cifratura CIPHER BLOCK CHAINING (CBC)

Con questa metodologia si rende l' input del processo di cifratura dipendente, oltre che dal testo chiaro, dai precedenti blocchi di testo cifrato. Questo metodo può essere schematizzato come riportato nella figura della pagina successiva

Le operazioni vengono effettuate su 64 bit. La dipendenza di un blocco di testo cifrato dai precedenti è evidenziata da un cammino di feedback. Ad esclusione del primo, ad ogni blocco in input viene sommato (xor), prima della cifratura, il risultato ottenuto al passo precedente. La decifratura si può rappresentare nel seguente modo

Le operazioni del CBC possono essere espresse come

cifratura Cn = Ck (Pn xor Cn-1)

decifratura Qn = Dk (Cn) xor Cn-1

Il primo blocco di testo chiaro deve essere trattato diversamente, non avendo a disposizione blocchi di testo cifrato precedenti. Per questo all' inizio della trasmissione viene caricato nei due registri di 64 bit il vettore di inizializzazione. Se l' ultimo blocco da crittografare è costituito da un numero inferiore di bit, allora l' ultimo testo cifrato viene ricifrato e da questo si prelevano i bit necessari per la somma con il blocco da cifrare.

[Torna inizio pagina]

 

5.2 Cifratura a flusso

Questo tipo di cifratura si basa sull' idea di generare il testo cifrato come combinazione del testo chiaro e di una sequenza segreta, detta bit stream (BS). Indicando con M il testo chiaro e con M' il corrispondente testo cifrato, allora

M' = M ++ BS

M = M' ++-1 BS

dove ++ indica una generica combinazione e ++-1 la sua inversa. Se la sequenza di bit BS è completamente casuale allora il sistema è inattacabile. Ciò però comporta problemi di comunicazione della chiave. Per questo BS viene generata algoritmicamente tramite una chiave. Spesso si sceglie xor come operatore di combinazione.

La sicurezza viene aumentata generando sempre nuove sequenze di bit BS, cambiando le condizioni iniziali del processo che li genera. Ciò non è necessario in una cifratura a blocchi, in quanto la chiave non è ricostruibile dal testo chiaro e cifrato. Per generare le diverse sequenze BS si usa un vettore di inizializzazione. I valori che questo assume possono essere generati casualmente o pseudo-casualmente.

Il vettore viene solitamente generato presso la stazione trasmittente, per essere trasmesso in chiaro al ricevente su un dispositivo sicuro. Generalmente viene inviato un solo vettore di inizializzazione all' inizio della trasmissione, che viene usato sia per cifrare il primo blocco di testo chiaro, sia per generare i successivi vettori.

 

Mentre nella cifratura a blocchi l' uso di procedure di concatenazione è fondamentale per mascherare le ripetizioni fra i dati, nella cifratura a flusso il problema è risolto dalla sequenza di bit stream (casuale).

[Torna inizio pagina]

 

5.2.1 Cifratura CHIPER FEEDBACK (CFB)

Questa cifratura, in cui viene utilizzato il DES, può essere così schematizzata

La cifratura viene eseguita nel cammino di feedback. Il DES viene usato per cifrare, sia dal mittente sia dal ricevente, allo scopo di generare una stringa di bit pseudo-casuale (la stessa stringa è generata in entrambe le stazioni). Tale stringa viene sommata (xor) con quella dei dati. I bit che si ottengono, oltre ad essere trasmessi, vengono caricati nel registro di input del DES, che opera come uno shift register. All' inizio della trasmissione è richiesto un vettore di inizializzazione da caricare nei due registri di input.

[Torna inizio pagina]

 

5.2.2 Cifratura OUTPUT FEEDBACK (OFB)

Osservando il diagramma di questo tipo di cifratura a flusso

si nota che questa differisce dalla cifratura CFB per i dati inseriti nei registri di input. Anche in questo caso il testo cifrato è dato dalla somma fra i caratteri del testo chiaro e quelli selezionati dall' output del DES, ma il carattere trasmesso non viene caricato nei registri di input (gli errori di trasmissione non si propagano fra i blocchi). Lo svantaggio principale di questo metodo è il fatto che il testo cifrato corrente non dipende da blocchi precedenti, ma solo dal testo chiaro corrente e dalla stringa pseudo-casuale, ricavata dall' output del DES.

Si deve evitare l' uso di uno stesso vettore di inizializzazione con la stessa chiave per messaggi diversi, poichè altrimenti si ottiene la stessa stringa pseudo-casuale.

[Torna inizio pagina]

 

5.3 Confronto fra cifratura a blocchi e cifratura a flusso

Una cifratura a blocchi non richiede vettori di inizializzazione e basa la sua robustezza sulla dimensione dei blocchi (fissata). Quando i dati presentano ripetizioni si utilizzano procedure di concatenazione. La cifratura a flusso utilizza un vettore di inizializzazione, senza vincoli sulle dimensioni dei blocchi. Eventuali ripetizioni dei dati sono mascherate dal vettore. In entrambe i casi per utilizzare la propagazione degli errori per l' autenticazione si usa la concatenazione. La cifratura a blocchi crea difficoltà nel caso di blocchi di dati molto corti, che devono essere completati per raggiungere la dimensione minima richiesta. Questo svantaggio non si presenta con la cifratura a flusso.

 

INDICE