加密系统的安全性取决于秘密保护的数据,这些数据应该对已授权者可知,但是对其他人不可知且不可预测。实现不可预测特征的方法就是部署随机化。现代加密协议通常需要频繁生成随机的数量,在这个过程中破坏或利用弱点的攻击被称为随机数生成器攻击。对于安全需求来说,高质量的随机数发生(RNG)的过程几乎总是有需要的。生成过程缺乏质量通常会导致受攻击时的脆弱性,因此导致密码系统缺乏安全性,甚至完全不安全。RNG的过程对于攻击者而言是特别有吸引力的,因为它通常位于一个孤立的易于定位的硬件或软件。 如果攻击者可以用一种他可以预测的伪随机数替换RNG过程,安全性就会受到完全损害,但是上游的测试对此通常是无法侦测到的。不仅如此,这种攻击只需要接入一次受攻击的系统,不需要向攻击者返回任何数据,换句话说,就是一个计算机病毒 ,偷取了密钥然后用电子邮件向一些接受点发送。人工生成的随机数通常极差。魔术师,职业赌徒和骗子,他们都依赖于预测人的行为。 在第二次世界大战中,德国代码文员被指示随机挑选三个字母作为恩尼格玛密码机中每条消息的转子初始设置。