一般來說隨機數在系統中用於生成對稱金鑰,所以隨機數在安全中的地位至關重要,由於系統或者硬體的因素,生成真實的隨機數存在著效能上的問題,對於服務端來說,一次生成大量的真隨機數比較困難,實際應用中都是把真隨機數作為種子+隨機數生成演算法生成大量的隨機數,稱為偽隨機數。
為了保證偽隨機數的安全性,防止被**,對於種子是由相應的要求的。
1)熵(entropy):在封閉系統中衡量無序、隨機或差異性的量度,在資訊理論中,乙個
離散隨機變數的熵定義為:
其中的pi是各事件發生的概率。
2)熵源(entropy source):不可**資料流的源。不一定滿足均勻分布,熵源包括噪
聲源,例如熱雜訊或者硬碟尋道時間,數位化過程,評估過程,選擇性條件化過程和健康
度測試等等。
3)健康度測試(health testing):在執行中或者之前測試和驗證演算法實現工作情況是
否符合預期設計要求。
4)內部狀態(internal state):確定性隨機數產生器初始化以後儲存在其中的資訊集合。
5)時間隨機數(nonce):乙個基於時間變化的變數,幾乎不可能重複,例如時間戳
等6)個性化字串(personalization string):乙個可選的字串,混合了秘密輸入和時
間隨機數,用於產生隨機數種子。
7)安全強度(security strength):乙個與破解密碼系統需要進行的運算元相關的數字。
在這個標準中,該數字為(112、128、192、256)集合中的乙個,需要進行的運算元為
2security_strength。
8)種子(seed):乙個字串用於確定性隨機數產生器系統的輸入,它決定了確定性
隨機數產生器的部分內部狀態,它的熵值必須足以滿足系統安全強度的要求。
關於隨機數
昨天去網易筆試,最後一道題實在沒有時間寫了,大概題目這樣的 床前明月 疑是地 霜,舉頭望 月,低頭思故 a.光 上 明 鄉 b.上 明 鄉 光 c.鄉 上 明 光 d.光 鄉 上 明 請你編寫一函式,隨機扣掉每一句的乙個字,然後生成3個錯誤選項,乙個正確選項,選項的字必須是詩裡所缺的字。請寫出資料結...
關於隨機數!
1 眾所周知,c語言的隨機函式 rand 每次執行的結果是一樣的。如下 那麼就需要設定隨機種子了,srand gettickcount 如下 2 從指定佇列取n個隨機數 借助stl的函式可以完成。templatevoid random shuffle randomaccessiterator fir...
關於隨機數
隨機數在現代社會應用不可謂少,我們可以在每天用到的手機驗證碼,網上博彩,網上鬥地主等等 中看到隨機數的影子下面是自己定義的線性求同法求隨機數 public class myrandom public intnext 線性同餘法 因為是線性,這種方法輸入相同種子每次輸出都是一樣的結果 所以我們要給他加...