隨機數生成
外觀

隨機數生成(英語:random number generator)是指產生一系列難以預測的數字或符號序列的過程,用於實現這一過程的數學算法或物理過程通常被稱為隨機數生成器(英語:random number generator)。
隨機數生成器通過一些算法、物理訊號、環境噪音等來產生看起來似乎沒有關聯性的數列的方法或裝置,丟硬幣、丟骰子、洗牌就是生活上常見的隨機數產生方式。然而,在大部分計算機上通常使用的並非真正的隨機數,而是按一定的算法和種子值生成的重複周期較大的數列,也即「偽隨機數」。這意味著它們往往存在著某種規律,因而不能直接用於加密等領域對隨機性要求較高的領域。而有些精心設計的密碼學安全偽隨機數生成器則是專門為了密碼學用途而設計,它們的特性經過數學驗證,因而能夠保證很好地隱藏規律性。
應用
[編輯]隨機數生成器在博彩類遊戲、抽樣統計、計算機模擬、密碼學、通信技術等領域均有廣泛應用。
在密碼學中,理論上使用一次一密等加密方法能夠實現完美保密,即只有知道密鑰才可能實現信息的破譯,這意味著加密的安全性完全依賴於密鑰的生成過程,因而生成隨機數時的隨機性便決定了通信的保密性。[1]
不過,很多看似隨機的應用實際上並非是完全隨機,而是更加複雜。例如,音樂播放器中的隨機播放通常會儘量避免連續播放相同歌曲的情況出現,此時就需要用到一些特殊的偽隨機數的生成方法。
生成方法
[編輯]物理方法
[編輯]在Linux系統中,會將鍵盤、滑鼠、中斷和塊設備的信息存入「熵池」,當用戶需要生成真隨機數時,再從熵池中取出。
數學算法
[編輯]在通信領域中,m序列是一種常用的隨機數序列。
相關條目
[編輯]參考資料
[編輯]- ^ 薛英花; 呂述望; 郭聖權. 随机数发生器分析及其在安全信息系统中的应用. 計算機工程. 2003, 29 (3): 42-44.
進階閱讀
[編輯]- Donald Knuth. Chapter 3 – Random Numbers. The Art of Computer Programming. Vol. 2: Seminumerical algorithms 3. 1997.
- Kroese, D. P.; Taimre, T.; Botev, Z.I. Chapter 1 - Uniform Random Number Generation. Handbook of Monte Carlo Methods. New York: John Wiley & Sons. 2011: 772. ISBN 0-470-17793-4.
- Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP. Chapter 7. Random Numbers. Numerical Recipes: The Art of Scientific Computing 3rd. New York: Cambridge University Press. 2007 [2012-12-29]. ISBN 978-0-521-88068-8. (原始內容存檔於2011-08-11).
- NIST SP800-90A, B, C series on random number generation (頁面存檔備份,存於網際網路檔案館)
外部連結
[編輯]![]() | 這是一篇關於數學的小作品。您可以透過編輯或修訂擴充其內容。 |