随機數

随機數

統計學概念
随機數是專門的随機試驗的結果[1]。在統計學的不同技術中需要使用随機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在将實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模拟法計算的時候等等。産生随機數有多種不同的方法。這些方法被稱為随機數生成器。随機數最重要的特性是它在産生時後面的那個數與前面的那個數毫無關系。
    中文名:随機數 外文名:random number 适用領域: 所屬學科: 應用學科:統計學 應用:進行蒙特卡羅模拟法計算 方法:随機數發生器 特性:後面的數與前面的數毫無關系

密碼學範疇

根據密碼學原理,随機數的随機性檢驗可以分為三個标準:

統計學僞随機性。統計學僞随機性指的是在給定的随機比特流樣本中,1的數量大緻等于0的數量,同理,“10”“01”“00”“11”四者數量大緻相等。類似的标準被稱為統計學随機性。滿足這類要求的數字在人類“一眼看上去”是随機的。

密碼學安全僞随機性。其定義為,給定随機樣本的一部分和随機算法,不能有效的演算出随機樣本的剩餘部分。

真随機性。其定義為随機樣本不可重現。實際上隻要給定邊界條件,真随機數并不存在,可是如果産生一個真随機數樣本的邊界條件十分複雜且難以捕捉(比如計算機當地的本底輻射波動值),可以認為用這個方法演算出來了真随機數。

相應的,随機數也分為三類:

僞随機數:滿足第一個條件的随機數。

密碼學安全的僞随機數:同時滿足前兩個條件的随機數。可以通過密碼學安全僞随機數生成器計算得出。

真随機數:同時滿足三個條件的随機數。

随機數在密碼學中非常重要,保密通信中大量運用的會話密鑰的生成即需要真随機數的參與。如果一個随機數生成算法是有缺陷的,那麼會話密鑰可以直接被推算出來。若果真發生這種事故,那麼任何加密算法都失去了意義。

密碼學中大量利用僞随機數生成器的應用還有流密碼。流密碼的著名例子是RC4。流密碼的原理是利用一個密碼學安全的僞随機數生成器根據密鑰産生一串密碼學安全的僞随機比特列,再将消息與上述随機比特列按位異或運算。

沒有數學證明表示密碼學安全的僞随機數生成器是确實存在的。其存在性證明涉及到P和NP的數學難題。

運用

真正的随機數是使用物理現象産生的:比如擲錢币、骰子、轉輪、使用電子元件的噪音、核裂變等等,這樣的随機數發生器叫做物理性随機數發生器,它們的缺點是技術要求比較高。

使用計算機産生真随機數的方法是獲取cpu頻率與溫度的不确定性以及統計一段時間的運算次數每次都會産生不同的值,系統時間的誤差以及聲卡的底噪等。

在實際應用中往往使用僞随機數就足夠了。這些數列是“似乎”随機的數,實際上它們是通過一個固定的、可以重複的計算方法産生的。計算機或計算器産生的随機數有很長的周期性。它們不真正地随機,因為它們實際上是可以計算出來的,但是它們具有類似于随機數的統計特征。這樣的發生器叫做僞随機數發生器。

在真正關鍵性的應用中,比如在密碼學中,人們一般使用真正的随機數。

C語言、C++、C#、Java、Matlab、PHP、C51等程序語言和軟件中都有對應的随機數生成函數。

相關詞條

相關搜索

其它詞條