Cifrari a flusso: una breve panoramica

Fino ad ora mi sono soffermato a descrivere alcuni esempi di cifrari a blocchi, quali DES o 3DES, che suddividono il plaintext in blocchi di lunghezza fissa per poi processarli. Questa tipologia di cifrari però possiede diversi punti deboli, tra i quali una certa difficoltà di implementazione a livello software ed una certa lentezza. Ecco allora che quando l’obbiettivo principale della cifratura è, oltre alla segretezza delle informazioni criptate, anche un buon grado di efficienza, conviene utilizzare i cosiddetti cifrari a flusso.

Sostanzialmente i cifrari a flusso operano in continuo su un byte di plaintext per volta (anche se esistono alcune implementazioni che agiscono su unità superiori al byte). Essi utilizzano una chiave da dare in pasto ad un generatore di byte pseudocasuali, il quale, a sua volta, produrrà in output una chiave di flusso, detta appunto keystream. Quest’ultima verrà “xorata” byte per byte con il plaintext (che, come detto in precedenza, viene processato un byte per volta).

La fase di cifratura può essere schematizzata nel modo seguente:

flusso.jpg

 

mentre quella di decifraturà apparirà nel modo seguente:

 

Flusso-1.jpg

dove M è il messaggio in chiaro, C è il messaggio cifrato.

Bene, ora sappiamo che i cifrari a flusso sono in genere più efficienti di quelli a blocchi, e soprattutto richiedono meno codice per la loro implementazione. Ma quali sono i possibili punti deboli dei cifrari in questione? Ovviamente, uno dei punti deboli di maggior rilevanza potrebbe essere il periodo associato al generatore di byte pseudocasuali. Infatti, se i byte generati si ripetono in un periodo troppo breve, la crittoanalisi diviene un’operazione piuttosto semplice da effettuare. Discorso analogo riguarda lo pseudo random byte generator in quanto tale: se i byte generati non hanno tutta l’apparenza di byte completamente casuali, allora gli attacchi di crittoanalisi diverranno molto meno complessi. Infine, la chiave da dare in pasto al generatore di byte pseudocasuali deve essere di almeno 128 bit, poichè sappiamo che chiavi di dimensioni maggiori riescono a garantire una maggiore robustezza nei confronti di attacchi a forza bruta.

Nel prossimo post parlerò del cifrario a flusso attualmente più utilizzato, ovvero RC4. A presto.

Cifrari a flusso: una breve panoramicaultima modifica: 2009-01-21T19:02:20+01:00da nazarenolatella
Reposta per primo quest’articolo