D 软件包(请参阅/ pub/diehard/)。另一个适合此类测试的合理软件包是 pLab(请参阅http://random.mat.sbg.ac.at/tests/)。? (2)它是不可预测的。即使给出产生序列的算法或硬件和所有以前产生的比特流的全部知识,也不可能通过计算来预测下一个随机比特应是什么。? (3)它不能可靠地重复产生。如果用完全同样的输入对序列产生器操作两次将得到两个不相关的随机序列。Р2018/5/11Р8Р4.2 序列密码的概念及模型Р序列密码算法将明文逐位转换成密文,如下图所示。mР密钥流发生器(也称为滚动密钥发生器)输出一系列比特流:K1,K2,K3,……Ki 。密钥流(也称为滚动密钥)跟明文比特流,m1,m2,m3,……mi ,进行异或运算产生密文比特流。? 加密: C i =mi⊕K i? 在解密端,密文流与完全相同的密钥流异或运算恢复出明文流。? 解密: m i =C i⊕K i? 显然,mi⊕K i⊕K i =m iР2018/5/11Р9Р事实上,序列密码算法其安全性依赖于简单的异或运算和一次一密乱码本。密钥流发生器生成的看似随机的密钥流实际上是确定的,在解密的时候能很好的将其再现。密钥流发生器输出的密钥越接近随机,对密码分析者来说就越困难。Р如果密钥流发生器每次都生成同样的密钥流的话,对攻击来说,破译该算法就容易了。Р假的Alice得到一份密文和相应的明文,她就可以将两者异或恢复出密钥流。或者,如果她有两个用同一个密钥流加密的密文,她就可以让两者异或得到两个明文互相异或而成的消息。这是很容易破译的,接着她就可以用明文跟密文异或得出密钥流。? 现在,无论她再拦截到什么密文消息,她都可以用她所拥有的密钥流进行解密。另外,她还可以解密,并阅读以前截获到的消息。一旦Alice得到一明文/密文对,她就可以读懂任何东西了。Р2018/5/11Р10