何謂亂數(Random Number)
出自KMU Wiki
◆ 何謂亂數(Random Number )?
亂數可以說是「在任何給定範圍的數字中,一連串有明確分散性與明確或然性的獨立數字」,具有隨機性和不可預測性。
隨機性:平均分佈、獨立性(數字不能由其他數字推導而得);不可預測性:下一個數字無法由前一個數字推導而得。
◆何謂亂數產生器?
由亂數的定義可知,亂數產生器就是在有限的資料集裡,提供一連串平均分佈、不可預測、且獨立的位元資料。
◆好的亂數產生器的要件
1.長週期:週期長則不易發生重覆使用相同亂數數列的情形。
2.良好的統計性質:希望亂數產生器所產生的亂數數列能夠滿足統計上獨立且均勻分配的性質。
3.有效率的電腦執行:為了便於模擬,相同的亂數數列必須具有重覆執行(reproduce)的能力。
演算的速度快,亂數的產生過程中佔用較少的時間和記憶體。
◆什麼是夠亂的亂數?
一般而言,只要亂數產生器位元(Bit)數夠大,就能產生較亂的亂數。
◆一般而言,亂數的需求為:
1.隨機性
► 平均分佈:每一個數字的出現機率是大致相同的。
► 獨立性:在一連串數字中,沒有任何一個數字可以由其他數字推導而得。沒有任何測試證明獨立性,
通常使用數個這類型的測試, 直到我們願意相信其獨立性存在。(質數的選取)
2.不可預測性
►真正的亂數具有不可預測性,但不一定適合採用。
► 由已知的亂數取出一部份來使用,不符密碼學的需求(數量不足)。
► 典型的密碼學應用是利用演算法來產生亂數。(虛擬亂數產生器)