vuoi
o PayPal
tutte le volte che vuoi
Ecco le cinque modalità:
1. ECB – Electronic Code Book
Il messaggio in input viene suddiviso in blocchi da 64bit, ogni blocco viene cifrato indipendentemente
utilizzando però la medesima chiave (CodeBook sta a indicare che per ogni blocco di testo in chiaro vi è un
unico blocco di testo cifrato, e quindi la cifratura del messaggio non è altro che una sequenza di cifrature
dei blocchi).
n.b. Se nel testo in chiaro compare più volte lo stesso blocco, verrà prodotto sempre lo stesso testo cifrato
2. CBC – Cipher Block Chaining
Il primo blocco di testo in chiaro viene “xorato” con un Vettore di Inizializzazione (IV),il blocco ricavato
viene criptato con la chiave ottenendo il primo blocco cifrato, in seguito per ogni fase l’input è il blocco di
testo in chiaro combinato in XOR con il blocco cifrato del passo precedente, il testo ottenuto viene quindi
criptato con la medesima chiave per ogni blocco.
Nella decifratura ogni blocco viene prima decifrato con la chiave e il risultato viene composto in XOR con il
blocco criptato precedente.
Pregi (+) e Difetti (-) di CBC
+ Ogni blocco di testo cifrato dipende da tutti i blocchi di testo in chiaro precedenti
+ La decifratura può essere in parallelo
- La cifratura non può essere in parallelo
- Il messaggio deve avere una dimensione che sia un multiplo del blocco
- Un errore nel testo cifrato comporta una decifratura errata su due blocchi
3. CFB – Chiper FeedBack
E’ una modalità di cifratura a flussi, l’unità di trasmissione sono 8bit (per carattere quindi, 1 byte), ogni
carattere di testo cifrato dipende da tutto il testo in chiaro cifrato fino a quel momento.
Funzionamento:
In ogni fase il carattere di testo in chiaro (P) viene “xorato” con 8bit, questi ultimi sono i bit più significativi
del blocco da 64bit ottenuto dalla criptazione della chiave (K) con un blocco che viene generato per ogni
fase.
Questo blocco che di partenza è un IV (vettore di inizializzazione) viene generato di volta in volta facendo
scorrere i bit che contiene verso sinistra e aggiungendo in coda gli 8bit ottenuti dallo XOR tra carattere in
chiaro e gli 8bit più significativi del blocco (il carattere criptato C).
(il testo in chiaro non passa quindi dall’algoritmo di cifratura, l’algoritmo genera solo gli 8bit con cui
“xorare” il carattere)
Per la Decifratura:
- nella prima fase il vettore di inizializzazione viene criptato con la chiave e gli 8bit più significativi vengono
“xorati” con il primo carattere cifrato per ottenere il primo carattere in chiaro
- nelle fasi successive il blocco viene shiftato verso sinistra e in coda vengono inseriti gli 8bit cifrati del
carattere precedente (quelli usati nello XOR per ottenere il carattere in chiaro), il blocco viene poi criptato
con la chiave e gli 8bit più significativi vengono “xorati” con il carattere cifrato di quella determinata fase
Pregi (+) e Difetti (-) di CFB
+ la decifratura può essere eseguita in parallelo
+ il messaggio non dev’essere di dimensione multipla del blocco (non richiede padding)
- la cifratura non può essere eseguita in parallelo
- un errore nel testo cifrato (in chiaro), comporta una decifratura (cifratura) errata nei blocchi successivi
4. OFB – Output FeedBack
Come per CFB anche questa è una modalità di cifratura a flussi (sempre con unità di trasmissione di 8bit
solitamente) e ogni carattere di testo cifrato dipende da tutto il testo in chiaro cifrato fino a quel momento.
Il funzionamento è praticamente lo stesso del precedente, l’unica differenza è che gli 8bit, che vengono
inseriti in ogni fase in fondo al blocco a scorrimento, non sono quelli ottenuti dallo XOR con il testo in
chiaro, ma sono gli 8bit più significativi del blocco dopo la criptazione con la chiave.
Anche nella decifratura sono sempre gli 8 bit più significativi (l’output del blocco criptato con la chiave) ad
essere “xorati” con il carattere cifrato per ottenere il testo in chiaro e gli stessi vengono anche reinseriti in
coda nel blocco a scorrimento a sinistra successivo.
Pregi di OFB
+ computando in anticipo le cifrature del registro, si rende possibile la cifratura in parallelo del testo in
chiaro
+ la decifratura può essere eseguita in parallelo
+ un bit errato nel testo cifrato (in chiaro) NON si propaga nella decifratura (cifratura) del resto del
messaggio
+ il messaggio non deve avere una dimensione multipla del blocco (non richiede padding)
5. CTR – Counter
Così chiamato perché fa uso di un contatore, il valore di tale contatore deve essere diverso per ogni blocco
di testo da crittografare.
Funzionamento:
Ogni blocco di testo in chiaro viene combinato in XOR con un blocco ottenuto dalla criptazione della chiave
con un contatore, in questo modo si ottiene il blocco di testo cifrato.
Proprietà:
- ci deve essere un valore di counter diverso per ogni blocco;
- ci sono diversi modi per generare i valori del counter, una parte è incrementata con una funzione di
incremento, una parte fissa segreta (nonce):
- Diverse funzioni di incremento
- Diversi modi per generare nonce
Nella Decifratura ogni blocco di testo cifrato viene combinato in XOR con la cifratura del corrispondente
contatore.
Pregi del Counter
+ cifratura/decifratura in parallelo
+ errore non viene propagato
+ il messaggio non deve avere dimensioni multiple a quelle del blocco (non richiede padding)