Keystream
flusso di caratteri pseudo-casuali / Da Wikipedia, l'enciclopedia encyclopedia
In crittografia con il termine keystream si indica un flusso di caratteri pseudo-casuali che sono combinati con il messaggio in chiaro per produrre il messaggio cifrato. I "caratteri" nel keystream possono essere bit, byte, numeri o caratteri alfanumerici, a seconda dei casi.
I keystream sono alla base dei cifrari a flusso (stream cipher) ma sono di solito utilizzati anche nei cifrari one-time pad. I cifrari a blocchi possono essere impiegati per produrre dei keystream utilizzandoli in modalità CTR: in questa modalità il cifrario a blocchi si trasforma in un vero e proprio cifrario a flusso.
La cifratura/decifratura avviene sommando, sottraendo o combinando con un'operazione di XOR ogni carattere del testo in chiaro ad un carattere del keystream per generare un carattere cifrato. Nelle implementazioni informatiche gli algoritmi di cifratura operano a livello di bit per cui in genere il keystream viene combinato con il testo in chiaro utilizzando lo XOR dato che questa operazione logica ha la prerogativa di essere reversibile: questo significa che combinando un bit del testo in chiaro con un determinato bit di keystream si ottiene un bit cifrato che ricombinato tramite XOR con lo stesso bit di keystream restituisce il bit in chiaro iniziale.