Nella crittografia, un cifrario a flusso è un cifrario a chiave simmetrica in cui i bit in chiaro sono combinati con un flusso di bit di cifrario pseudorandom (keystream) utilizzando un'operazione esclusiva o (xor). In un cifrario a flusso le cifre in chiaro sono cifrate una alla volta e la trasformazione delle cifre successive varia durante lo stato di cifratura. Un nome alternativo è un cifrario di stato, poiché la cifratura di ogni cifra dipende dallo stato corrente. In pratica, le cifre sono tipicamente singoli bit o byte.

I cifrari a flusso rappresentano un approccio diverso alla cifratura simmetrica rispetto ai cifrari a blocco. I cifrari a blocchi operano su grandi blocchi di lunghezza fissa. I cifrari a flusso di solito eseguono ad una velocità più elevata rispetto ai cifrari a blocco e hanno requisiti hardware inferiori. Tuttavia, i cifrari a flusso possono essere suscettibili di gravi problemi di sicurezza se usati in modo non corretto; per esempio, in particolare, lo stesso stato di partenza non deve mai essere usato due volte.

Un cifrario a flusso fa uso di una chiave crittografica molto più piccola e conveniente, per esempio una chiave a 128 bit. Sulla base di questa chiave, genera un flusso di chiavi pseudorandom che può essere combinato con le cifre in chiaro in modo simile all'algoritmo di cifratura a tampone una tantum. Tuttavia, poiché il flusso di chiavi è pseudorandom, e non è veramente casuale, la sicurezza associata al one-time pad non può essere applicata ed è del tutto possibile che un cifrario a flusso sia completamente insicuro.