随机数生成

随机数生成（英语：random number generator）是指产生一系列难以预测的数字或符号序列的过程，用于实现这一过程的数学算法或物理过程通常被称为随机数生成器（英语：random number generator）。

随机数生成器通过一些算法、物理訊號、環境噪音等来产生看起來似乎沒有關聯性的數列的方法或裝置，丟硬幣、丟骰子、洗牌就是生活上常見的隨機數產生方式。然而，在大部分计算机上通常使用的并非真正的随机数，而是按一定的算法和种子值生成的重复周期较大的数列，也即“伪随机数”。这意味着它们往往存在着某种规律，因而不能直接用于加密等领域对随机性要求较高的领域。而有些精心设计的密码学安全伪随机数生成器则是专门为了密码学用途而设计，它们的特性经过数学验证，因而能够保证很好地隐藏规律性。

 应用 

随机数生成器在博彩类游戏、抽样统计、计算机模拟、密码学、通信技术等领域均有广泛应用。

在密码学中，理论上使用一次一密等加密方法能够实现完美保密，即只有知道密钥才可能实现信息的破译，这意味着加密的安全性完全依赖于密钥的生成过程，因而生成随机数时的随机性便决定了通信的保密性。

不过，很多看似随机的应用实际上并非是完全随机，而是更加复杂。例如，音乐播放器中的随机播放通常会尽量避免连续播放相同歌曲的情况出现，此时就需要用到一些特殊的伪随机数的生成方法。

 生成方法 
 物理方法 

在Linux系统中，会将键盘、鼠标、中断和块设备的信息存入“熵池”，当用户需要生成真随机数时，再从熵池中取出。
 数学算法 

在通信领域中，m序列是一种常用的随机数序列。

相關條目
百萬亂數表
伪随机数生成器
密码学安全伪随机数生成器
硬件随机数生成器
Random.org

參考資料

 進階閱讀 




 NIST SP800-90A, B, C series on random number generation 

外部連結
Random and Pseudorandom on In Our Time at the BBC. 

Category:信息论
*