1. 程式人生 > >偽隨機生成器具體實現——密碼法

偽隨機生成器具體實現——密碼法

一 點睛

可以使用密碼來編寫能夠生成強偽隨機數的偽隨機數生成器。既可以使用AES等對稱密碼,也可以使用RSA等公鑰密碼。

二 密碼法生成偽隨機數生成器的工作方式

1 初始化內部狀態(計數器)。

2 用金鑰加密計數器的值。

3 將密文作為偽隨機數輸出。

4 計數器加1。

5 根據需要的偽隨機數數量重複2到4的步驟。

假設攻擊者獲得了這樣的偽隨機數生成器所生成的過去的偽隨機數列,他是否能夠預測出下一個偽隨機數呢?

攻擊者要預測下一個偽隨機數,需要知道計數器的當前值。然而,由於之前所輸出的偽隨機列相對於密文,因此要知道計數器的值,就需要破譯密碼,這是非常困難的,因此攻擊者無法預測出下一個偽隨機數。總而言之,在這種偽隨機數生成器中,密碼的機密性是支撐偽隨機數生成器不可預測性的基礎。

三 虛擬碼實現