流加密

流加密,是对称加密算法的一种,加密和解密双方使用相同伪随机加密数据流(pseudo-randomstream)作为密钥,明文数据每次与密钥数据流顺次对应加密,得到密文数据流。实践中数据通常是一个位(bit)并用异或(xor)操作加密。
中文名
流加密
外文名
Stream cipher
性    质
对称加密算法
目    的
解决了对称加密完善保密性困难
用    途
加密
领    域
网络安全

简介

编辑
密码学中, 流加密(英语: Stream cipher),又译为 流加密数据流加密,是一种 对称加密算法,加密和解密双方使用相同伪随机加密数据流(pseudo-random stream)作为 密钥明文数据每次与密钥数据流顺次对应加密,得到 密文数据流。实践中数据通常是一个 (bit)并用 异或(xor)操作加密。
该算法解决了对称加密完善保密性(perfect secrecy)的实际操作困难。“完善保密性”由 克劳德·香农于1949年提出。由于完善保密性要求密钥长度不短于明文长度,故而实际操作存在困难,改由较短数据流通过特定算法得到密钥流。
伪随机密钥流(keystream)由一个随机的种子(seed)通过算法(称为:PRG,pseudo-random generator)得到,k作为种子,则G(k)作为实际使用的密钥进行加密解密工作。
为了保证流加密的安全性,PRG必须是不可预测的。弱算法包括glibc random()函数, 线性同余生成器(linear congruential generator)等。  [1]  

流加密过程

编辑
加密过程:首先生成一个对称秘钥,使用用户公钥加密这个对称秘钥后存储在文件头,然后用生成的对称秘钥加密文件数据存储。
解密过程:首先使用自己的私钥解密被加密的对称秘钥,再用该对称秘钥解密出数据原文。  [2]  

类型

编辑
流密码基于内部状态生成密钥流的连续元素。这种状态基本上以两种方式更新:如果状态独立于明文或密文消息而改变,则密码被分类为同步流密码。相比之下,自同步流密码根据以前的密文数字更新其状态。

同步流密码

在同步流密码中,独立于明文和密文消息生成一个伪随机数字流,然后与明文(加密)或密文(解密)组合。在最常见的形式中,使用 二进制数字比特),并且使用独占或操作(XOR)将密钥流与明文结合。这被称为二元加法流密码。
在同步流密码中,发送方和接收方必须准确地进行解密才能成功。如果在传输过程中将数字添加到消息中或从消息中删除数字,则同步丢失。为了恢复同步,可以系统地尝试各种偏移量以获得正确的解密。另一种方法是在输出中的标准点处用标记标记密文。
但是,如果一个数字在传输中被损坏而不是被添加或丢失,则明文中只有一个数字会受到影响,并且错误不会传播到消息的其他部分。当传输错误率很高时,此属性非常有用;然而,这样做不太可能在没有进一步机制的情况下检测到错误。而且,由于这个特性,同步流密码非常容易受到 主动攻击:如果攻击者可以改变密文中的数字,他可能能够对相应的明文位进行可预测的改变;例如,翻转密文中的一位会导致相同的位在明文中翻转。  [2]  

自同步流密码

另一种方法使用几个前 N个密文数字来计算密钥流。这种方案被称为自同步流密码,异步流密码或密文自动密钥(CTAK)。自同步的想法在1946年获得专利,其优点是接收器在接收到 N个密文数字后会自动与密钥流生成器同步,如果数字被丢弃或添加到消息流中,更容易恢复。一位数错误的效果有限,仅影响 N个明文数字。
自同步流密码的一个例子是密码反馈(CFB)模式中的分组密码。  [2]  

例子

编辑

WEP

一个失败的例子即 WEP网络传输协议。
  • 该协议中 服务器客户端共享同一密钥流,该密钥流由一段24位的数据 IV和一段密钥组成,表示为PRG(IV || k),通过异或操作对明文数据流加密。而IV最多组合情况为2个(约16M大小),因而攻击者可轻易暴力破解获取IV,或通过多次截取数据包(当数据流量足够大,密钥流必定多次重复)最终得到明文。
  • 另一个弱点在于,802.11网卡重启后自动设置IV为初始状态0。两种情况下都能表明WEP安全性并不尽如人意。
更好的解决方案是针对不同段的信息使用伪随机密钥(不同k值),例如 TLS所为。  [1]  

硬盘加密

硬盘使用流加密时,同样会使用同一密码本对不同文本进行加密,因而调换两个文本中少量信息,可以得到同样的冗余结果。避免这个问题的方案通常是避免使用流加密。  [1]  

CSS

内容扰乱系统英语:Content Scramble System,CSS),是通过种子生成密钥,对 DVD进行 流加密的技术。它也作为数字版权管理系统,曾应用于几乎所有的 DVD光盘。CSS有一个40-bit的流加密算法,1996年首次投入使用,1999年被首次破解。
CSS目前已被更高级的加密技术如运用于高清DVD(HD DVD)和 蓝光AESAACS所取代。它们分别拥有56和128个比特的密钥长度。  [1]  

猜你喜欢

转载自blog.csdn.net/bruce135lee/article/details/80737405