În criptografie, un cifru de flux este un cifru cu cheie simetrică în care biții de text în clar sunt combinați cu un flux de biți de cifru pseudo-aleator (flux de chei) folosind o operație de tip xor (exclusiv-or). Într-un cifru de flux, cifrele de plaintext sunt criptate una câte una, iar transformarea cifrelor succesive variază în timpul stării de criptare. O denumire alternativă este cifrare de stare, deoarece criptarea fiecărei cifre depinde de starea curentă. În practică, cifrele sunt, de obicei, biți sau octeți unici.

Cifrele de flux reprezintă o abordare diferită de cifrarea simetrică față de cifrele în bloc. Cifrele în bloc operează pe blocuri mari de lungime fixă. Cifrele de flux se execută, de obicei, la o viteză mai mare decât cifrele în bloc și au cerințe hardware mai mici. Cu toate acestea, cifrele de flux pot fi susceptibile la probleme grave de securitate dacă sunt utilizate în mod incorect; de exemplu, în special, aceeași stare de pornire nu trebuie să fie utilizată niciodată de două ori.

Un cifru de flux utilizează o cheie criptografică mult mai mică și mai convenabilă, de exemplu chei de 128 de biți. Pe baza acestei chei, acesta generează un flux de chei pseudorandom care poate fi combinat cu cifrele din textul în clar într-un mod similar cu algoritmul de criptare cu un singur timp. Cu toate acestea, deoarece fluxul de chei este pseudo-aleator, și nu cu adevărat aleator, nu se poate aplica securitatea asociată cu one-time pad-ul și este foarte posibil ca un cifru de flux să fie complet nesigur.