Na criptografia, uma cifra de fluxo é uma cifra de chave simétrica onde bits de texto simples são combinados com um fluxo de bits de cifra pseudo-aleatória (keystream) usando uma operação exclusiva - ou (xor). Em uma cifra de fluxo, os dígitos Plaintext são criptografados um de cada vez, e a transformação de dígitos sucessivos varia durante o estado de criptografia. Um nome alternativo é uma cifra de estado, pois a criptografia de cada dígito depende do estado atual. Na prática, os dígitos são tipicamente bits simples ou bytes.
As cifras de fluxo representam uma abordagem diferente para a criptografia simétrica das cifras de bloco. As cifras de bloco operam em grandes blocos de comprimento fixo. As cifras de fluxo tipicamente executam a uma velocidade maior do que as cifras de bloco e têm requisitos de hardware menores. Entretanto, as cifras de fluxo podem ser suscetíveis a sérios problemas de segurança se usadas incorretamente; por exemplo, em particular, o mesmo estado inicial nunca deve ser usado duas vezes.
Uma cifra de fluxo faz uso de uma chave criptográfica muito menor e mais conveniente, por exemplo, chaves de 128 bits. Com base nesta chave, ela gera um fluxo de chaves pseudo-aleatória que pode ser combinado com os dígitos do texto em quadrado de forma semelhante ao algoritmo de criptografia de um único bloco de dados. Entretanto, como o fluxo de chaves é pseudo-aleatória e não verdadeiramente aleatória, a segurança associada ao bloco de tempo único não pode ser aplicada e é bem possível que uma cifra de fluxo seja completamente insegura.


