版权归原作者所有,如有侵权,请联系我们

[科普中国]-流加密

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

流加密,是对称加密算法的一种,加密和解密双方使用相同伪随机加密数据流(pseudo-randomstream)作为密钥,明文数据每次与密钥数据流顺次对应加密,得到密文数据流。实践中数据通常是一个位(bit)并用异或(xor)操作加密。

简介在密码学中,流加密(英语: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)和蓝光的AES,AACS所取代。它们分别拥有56和128个比特的密钥长度。1

本词条内容贡献者为:

宋春霖 - 副教授 - 江南大学