我正在使用openssl加密庫,我對所有這些加密的東西都很陌生,並且慢慢地我正在學習所有這些。我對隨機數發生器有疑問,我使用RAND_pseudo_bytes()
來產生一個僞隨機數。我用我所需的熵爲它提供種子。但我的疑問是,如果我們提供兩次相同的種子,隨機數發生器會生成相同的隨機數嗎?隨機數生成器和種子
1
A
回答
2
僞隨機數發生器是確定性的。但是,它們的構造方式很難生成循環(如果它達到之前的狀態,它將生成相同的隨機數,直到進入下一個循環,而沒有結束)。
如果你開始使用與它相同的種子的僞隨機數發生器將產生相同的輸出。這是Ubuntu中的一個問題,靜態代碼分析的響應導致在播種過程中刪除任何隨機數。
請注意,大多數僞隨機數發生器在混合在當前狀態的額外的種子/熵。所以一旦僞隨機數發生器播種良好,它將繼續產生隨機數。很多庫默認情況下都會通過一個好的熵源(例如/dev/random
或Linux系統上的預先播種/dev/urandom
)爲隨機數生成器播種。
當然,它不會受到傷害測試。
+0
我的回答有什麼問題,jithin? –
相關問題
- 1. 隨機種子生成
- 2. 隨機生成器,種子不工作
- 3. C++爲psudo隨機數生成器生成一個很好的隨機種子
- 4. 隨機數與種子生成
- 5. 生成隨機數字:更新種子
- 6. 在種子內生成隨機數
- 7. 隨機種子來產生隨機數
- 8. 播種隨機數生成器
- 9. 種子僞隨機數發生器
- 10. 種子隨機數發生器
- 11. 如何爲隨機生成器生成良好的隨機種子?
- 12. 在Java中爲隨機數生成器使用特定種子
- 13. 隨機數字生成器 - 爲什麼每次都要種子
- 14. Java隨機生成器的種子產生不同的輸出
- 15. 隨機生成器和CUDA
- 16. 隨機數生成器幫助不生成隨機數 - C
- 17. 64位隨機發生器的種子
- 18. 隨機數據生成器
- 19. Python隨機數生成器
- 20. 隨機數據生成器
- 21. 隨機數種子
- 22. 隨機生成器字母和整數
- 23. 隨機數生成器和驗證
- 24. 生成 「隨機」 數是相同的javascript每次(即種子隨機數)
- 25. 隨機數生成/哪種算法?
- 26. 隨機訪問種子3D白噪聲隨機發生器
- 27. 能否使用負數作爲隨機數生成的種子?
- 28. 使用固定種子的隨機密鑰生成器java
- 29. 基於種子的僞隨機序列生成器
- 30. 用已知種子創建ThreadLocal隨機生成器
您可能會在[crypto.stackexchange.com](http://crypto.stackexchange.com) – Joe
中找到知道此問題答案的人。如果種子相同,則應該生成相同的序列。 – doptimusprime
@Joe:這個問題對於crypto.SE來說並不是很合適,儘管在這裏被問到的方式讓人有點難以辨認:「加密PRNG如何工作?」對於crypto.SE來說是一個很好的問題(除了可能有點太寬泛); 「OpenSSL PRNG如何工作?」在主題上會略微有些變化,而「我如何使用OpenSSL PRNG?」將加密的主題。這裏問的這個問題看起來有點像第二種類型,但它背後的[真正的問題](http://crypto.stackexchange.com/q/9983)更接近最後一個。 –