密码学中,流密码是一种对称密钥密码,其中明文位与伪随机密码位流(密钥流)使用独占或(xor)操作相结合。在流密码中,明文位一次一个地进行加密,在加密状态下,连续位的变换是不同的。另一个名字是状态密码,因为每个数字的加密取决于当前的状态。在实践中,数字通常是单比特或字节。

流密码代表了一种不同于块密码的对称加密方法。块密码在固定长度的大块上运行。流密码的执行速度通常比块密码高,对硬件的要求也较低。然而,如果使用不当,流密码容易出现严重的安全问题;例如,特别是同一起始状态绝对不能使用两次。

流密码利用一个小得多、方便得多的加密密钥,例如128位密钥。基于这个密钥,它产生一个伪随机的密钥流,它可以与明文数字相结合,类似于一次性垫加密算法。然而,由于密钥流是伪随机的,而不是真正的随机的,所以不能应用一次性垫的相关安全性,流密码完全不安全是很有可能的。