Operazioni con i blocchi
Analizziamo il problema di analizzare cifrari che lavorano su blocchi di dimensione limitata per cifrare messaggi lunghi; ricordando che ci sono 64 bit per DES ed 128 bit per AES. Ci sono 5 modalità diverse e possono essere usate per un qualunque cifrario a blocchi simmetrico.
ECB: Electronic Codebook
Il primo è il ECB, il meccanismo più semplice dove ogni blocco viene cifrato sempre con la stessa chiave in maniera indipendente dagli altri. Se il messaggio non è lungo un multiplo della lunghezza del blocco si aggiunge all’ultimo blocco degli zeri fino a quando non arriviamo alla lunghezza.
Proprietà del ECB
- Il meccanismo di cifratura è sempre lo stesso.
- Per quanto riguarda le dipendenze: le operazioni di mescolamento dei vari blocchi si manifestano ugualmente nei blocchi cifrati.
- Propagazione degli errori nella trasmissione: se c'è un errore nel testo cifrato in fase di trasmissione del segnale, si riflette solo nel corrispondente testo in chiaro.
Dal punto di vista della sicurezza
Se qualcuno riesce a sostituire un blocco cifrato, si ha un cambiamento solo in quel messaggio. Purtroppo, il fatto che testo in chiaro = testo cifrato fa sì che le irregolarità/ripetizioni del testo in chiaro si ritrovino nel testo cifrato: questo è suscettibile ad attacchi.
Problemi del ECB
- Propagazione degli errori: se abbiamo un tipo di errori, questi riguardano solamente il blocco che è stato trasmesso e non si ripercuotono sui blocchi successivi. La risposta è no, ossia gli errori non si propagano ma rimangono limitati al singolo blocco che stiamo trattando.
- Recupero degli errori: se ci sono questi errori, il meccanismo riesce ad aggiustarsi automaticamente?
- Diffusione: il cambio di un bit del testo in chiaro si deve ripercuotere sul maggior numero possibile di bit del testo cifrato.
- Sicurezza: vulnerabilità agli attacchi.
CBC: Cipher Block Chaining
Il secondo è il CBC che consiste nell’incatenamento di più blocchi cifrati dove i vari blocchi non sono più totalmente indipendenti. Quello che viene cifrato nel secondo blocco è il suo XOR con il testo cifrato precedente e dopo viene cifrato; nel primo blocco ci si inventa un vettore di bit di inizializzazione chiamato IV (Initialization Vector). Per scegliere l’IV lo devono conoscere sia il mittente che il destinatario, quindi l’IV si può mandare con l’ECB perché l’IV è il blocco di dimensione uguale al testo in chiaro; dopo di che si usa l’IV per implementare il CBC.
Metodi dell'IV
- Si cifra con la stessa chiave un nonce (blocco di dati che cambia continuamente).
- Usare un generatore di numeri casuali.