伪随机生成器具体实现——密码法

一 点睛

可以使用密码来编写能够生成强伪随机数的伪随机数生成器。既可以使用AES等对称密码,也可以使用RSA等公钥密码。

伪随机生成器具体实现——密码法

二 密码法生成伪随机数生成器的工作方式

1 初始化内部状态(计数器)。

2 用**加密计数器的值。

3 将密文作为伪随机数输出。

4 计数器加1。

5 根据需要的伪随机数数量重复2到4的步骤。

假设攻击者获得了这样的伪随机数生成器所生成的过去的伪随机数列,他是否能够预测出下一个伪随机数呢?

攻击者要预测下一个伪随机数,需要知道计数器的当前值。然而,由于之前所输出的伪随机列相对于密文,因此要知道计数器的值,就需要破译密码,这是非常困难的,因此攻击者无法预测出下一个伪随机数。总而言之,在这种伪随机数生成器中,密码的机密性是支撑伪随机数生成器不可预测性的基础。

三 伪代码实现

伪随机生成器具体实现——密码法