一 点睛
和密码相比,伪随机数生成器实在是很少被人们所注意,因此我们很容易忘记伪随机数生成器也可以受到攻击的。然而,由于伪随机数生成器承担了生成密钥的重担,因此它经常成为攻击者的对象。
二 对种子进行攻击
伪随机数的种子和密码的密钥同等重要。如果攻击者知道了伪随机数的种子,那么他就能够知道这个伪随机数所生成的全部伪随机数列。因此,伪随机数的种子是不可以被攻击者知道。
要避免种子被攻击者知道,我们需要使用不可重现的真随机数作为种子。
三 对随机数池进行攻击
当然,我们一般不会到了需要的时候才当场生成真随机数,而是会事先在一个名为随机数池的文件中记录随机比特序列。当密码软件需要伪随机数种子时,可以从这个随机池中取出所需长度的随机比特序列来使用。
随机数池的内容不可以被攻击者知道,否则伪随机数的种子就有可能被预测出来。
随机数池本身并不存储任何有意义的信息。我们需要保护没有任何意义的比特序列,这一点违背常识,但其实却是非常重要的。