流密码是在数据加密中使用的一种算法,在这种算法中,需要加密的源根据随机出现的密钥序列进行处理。这种类型的密码在某种程度上是灵活的,因为它可能会随着文本的处理而改变加密方式。它们有时也被称为状态密码,因为加密还...
流密码是在数据加密中使用的一种算法,在这种算法中,需要加密的源根据随机出现的密钥序列进行处理。这种类型的密码在某种程度上是灵活的,因为它可能会随着文本的处理而改变加密方式。它们有时也被称为状态密码,因为加密还取决于操作的当前状态。与块密码(一次处理64位的数据块)不同,流密码可以对单个位进行操作。因此,流可以以极低的处理能力高速处理

密钥序列是流密码的一部分。第一个流密码是吉尔伯特·韦纳姆在1917年发明的。后来,弗南也帮助创建了一种称为一次性密码,是一种流密码形式,使用一次性密钥对数据进行加密。在一次性密码中,生成的密钥与需要加密的数据长度相同,是完全随机的,不会在其他任何地方再次使用,因此得名当对要加密的数据(通常称为明文)进行处理时,没有密钥就无法解密得到的密文。一次性密码在大多数情况下很难处理,因此,但是,流密码通常被认为是有用的,所以密钥被缩短并变成伪随机的,这意味着它们在统计上是随机的,但实际上不是流密码具有动态加密的能力。这样,简单的流密码甚至很容易由人用笔和纸来执行,而分组密码通常需要使用计算机来处理。明文与密钥流一起通过加密过程,构成密钥的伪随机序列,在这里它被转换成密文的另一端。通常,这种加密是通过对单个比特进行异或(XOR)运算来实现的,这些位在通过密码时进行运算。一个简单的异或密码使用一种逻辑析取作为它的基础,这意味着如果其中一个操作数为真,则结果可以为真,但不能同时为真。例如,如果在加密过程中移动的位是0或1,并且成对的键流位不匹配,则结果输出为1。如果该位和成对的键流位匹配,则两者都是1,或两者都是0,结果是零。加密后的1和0流在传输的另一端被解密,使用相同的密钥流将比特转换回其原始明文一种同步方法,将密钥流与明文或密文分开创建,然后合并以提供加密或解密。使用这种方法,传输的发送端和接收端必须保持同步,它们在同一密钥和密钥中的同一位置操作如果出现问题,解密要么需要重新开始,要么在整个密文中断断续续地放置标志,指示新的起点。另一方面,自同步密码将根据密文中的某些先前数字更新密钥流RSA Data Security®创建了一种最常用的流密码,称为RC4,以及安全互联网通信中使用的安全套接字层(SSL)协议和无线设备使用的有线等效隐私(WEP)加密。另一个常用的密码是ORYX,IBM®还开发了一种称为SEAL的流加密方法,在硬盘加密中得到了应用。