流密码的思想来源于一次一密密码。
一次一密密码
一种理想的加密方案,叫做一次一密密码,它的密钥是随机产生的,而且只使用一次。一次一密算法的优点是密钥随机产生,仅使用一次;无条件安全;加密和解密为加法运算,效率较高。缺点是密钥长度至少与明文长度一样长,密钥共享困难,不太实用。
流密码
流密码也称为序列密码,是一种重要的密码体制,它的明文消息按字符或比特逐位加密。流密码在20世纪50年代得到了飞跃发展,密钥流可以用移位寄存器电路来产生,也促进了线性和非线性移位寄存器发展。流密码主要是基于硬件实现。流密码的基本思想是利用密钥k产生一个密钥流z=z0z1z2……,并使用如下规则对明文串x=x0x1x2……加密:y=y0y1y2……。密钥流由密钥流发生器f产生:zi=f(k,oi),oi是加密器中的记忆元件在时刻i的状态,f是由k,oi产生的函数。
根据加密器中的记忆元件oi的存贮状态是否依赖于明文字符,流密码可进一步分成同步和自同步两种。如果oi独立于明文字符则称为同步流密码,否则称为自同步流密码。因为同步流密码与明文字符无关,所以可将同步流密码的加密器分成密钥流产生器和加密变换器两个部分。一般我们使用的是同步流密码。