Che cos’è e quali sono le tipologie della Cifratura a blocchi
Cifratura a flusso e cifratura a blocchi
In sicurezza informatica, la cifratura simmetrica si distingue in base all’applicazione dell’algoritmo sul testo in chiaro. Si parla di cifratura a flusso (stream cipher o state cipher) quando l’algoritmo di cifratura viene applicato ad un bit o ad un byte alla volta. Se l’algoritmo viene applicato a gruppi di bit o di byte organizzati in un blocco sempre della stessa dimensione, si parla di cifratura a blocchi (block cipher). La cifratura più utilizzata, nella crittografia moderna, è quella a blocchi.
Tipologie di cifratura a blocchi
Esistono vari tipi di cifratura a blocchi:
- ECB – Electronic CodeBook è la categoria che raccoglie la cifratura a blocchi più semplicema anche meno affidabile, ogni blocco viene cifrato sempre con la stessa chiave in successione. A questa categoria appartengono lo stragrande maggioranza degli algoritmi di cifratura utilizzati ad oggi;
- CBC – Cipher Block Chaining i metodi di cifratura che appartengono a questa categoria collegano i blocchi cifrati ai precedenti nel seguente modo: il blocco cifrato corrente viene ottenuto dalla cifratura del blocco di testo in chiaro in XOR con il blocco cifrato precedentemente;
- CFB – Cipher FeedBack anche gli algoritmi appartenenti a questa categoria collegano i blocchi con i precedenti ma lo fanno nel seguente modo: il blocco cifrato corrente viene ottenuto dal XOR di parte del blocco in chiaro considerato con il blocco cifrato precedente (l’idea è quella di elaborare i dati non appena sono disponibili anziché aspettare che sia completata l’elaborazione di un intero blocco);
- OFB – Output FeedBack a questa categoria appartengono le codifiche a blocchi più veloci: i blocchi sono sempre collegati con i precedenti, ma il collegamento avviene tra l’output del passo precedente ed il blocco considerato. Viene utilizzato nelle comunicazioni ad alta velocità (come quelle dei satelliti).
Cifratura iterata dei blocchi
Molti algoritmi sono basati su semplici funzioni che vengono combinate e iterate più volte come il cifrario del prodotto. Ogni iterazione viene chiamata round e normalmente gli algoritmi utilizzano più di 4 round ma meno di 64 per singolo blocco da cifrare. Molti algoritmi sono basati sulla rete di Feistel o più in generale sulla rete a sostituzione e permutazione. Operazioni aritmetiche, operazioni logiche (specialmente l’operazione di XOR), S-box e varie tecniche di permutazione sono tra i componenti più comuni di queste reti.