前言
計算機必須有一個科學穩定的隨機數來源,才能得到隨機數。這個來源稱為隨機數生成器(Random number generators,RNG)。
第一個真隨機數生成器是在1955年由Rand公司創造,Rand公司在1955年出版了一本《A Million Random Digits with 100,000 Normal Deviates》,用作隨機數表。
1999年,Intel發布了Intel810芯片組時,就配備硬件隨機數生成器,原理是電阻和振蕩器產生的熱噪聲。目前,大部分芯片都集成了硬件隨機數生成器,使用非常方便。
常見的隨機數生成器有三種:
真隨機數生成器(True Random Number Generator,TRNG),通過物理方法模擬自然界中的隨機過程,真隨機數無法預測且無周期性。
偽隨機數生成器(Pseudo Random Number Generator,PRNG),通過數學方法生成和真隨機數具有相似以統計特征的偽隨機數。如果能夠通過統計檢驗,就可以當成真隨機數使用。
隨機數表法,即用真隨機數生成大量隨機數,存到數據庫中,使用時再從數據庫中調用。在20世紀早期,這種方法被大量使用,現在因為需要占用大量存儲空間,已經很少被使用。
1.真隨機數生成器(TRNG)
基于電路的TRNG:
振蕩器采樣:如Intel810RNG芯片,利用熱噪聲放大后,影響一個電壓控制的振蕩器,再通過一個高頻振蕩器來收集數據,得到隨機數。
直接放大電路噪聲:直接以熱噪聲等電路噪聲為隨機源,通過運放放大,統計一定時間內達到閾值的信號數以此得到隨機數。
電路亞穩態:2010年德國研究團隊利用計算機內存雙態觸發器作為隨機的一個額外層,觸發器可以在0和1狀態切換。在切換之前,觸發器處于無法預測的亞穩態,內存中內容為完全隨機值。
混沌電路:混沌電路的輸出結果對初始條件很敏感,不可預測,且在IC易于集成,可產生效果不錯的真隨機數。
2.偽隨機數生成器(PRNG)
TRNG生成的隨機數是無周期性、不可預測、分布均勻,然而TRNG技術要求高,生成速度低,難以滿足計算機高速計算需要。
因此為了提高數據產生率,TRNG的結果往往作為PRNG種子值,并以此生成偽隨機的輸出序列。
偽隨機數算法:
線性同余法
N[i+1]=(A * N[i]+B) mod M
1. B、M互質
2. M所有質因數都能整除(A-1)
3. 若M是4的倍數,A-1也是
4. A、B、N[0]都比M小
5. A、B是正整數·
梅森旋轉法Mersenn Twister)
1. 基于二進制字段上的矩陣線性遞歸,可以快速產生高質量的偽隨機數。隨機數范圍[0,2*k),k=19937,32,64。計算機各種語言常用的偽隨機數算法。
2. 參數選擇和梅森素數有關。2**n-1是素數(梅森素數)。
3.隨機數檢測標準
3.1 檢測標準
中國:GB/T 32915-2016 信息安全技術 二元序列隨機性檢測方法
美國:NIST SP800-22r1a
德國:A1S31標準
3.2 檢測方法
比特分布檢測:n個比特內0和1的個數
跟隨分布檢測:n個比特內00、01、10、11的概率是否相等
游程檢測:游程由連續的0或者1組成,并且其前后元素與游程元素不同。游程數目為序列長度一半時,隨機性比較好。
碰撞檢測
撲克檢測:先將序列劃分成長度為m的二進制子序列,長度為的二進制子序列由2m中類型,然后檢測這2m中子序列類型數目是否相同。
此外,還有相關性檢測、線性復雜度檢測以及長游程檢測等。
4.Feature驗證
![]()
墑源:四路獨立墑源。每一路獨立熵源有8路RO環,由一個獨立時鐘進行采樣。
后處理:采用密碼AES算法。
健康度檢測:NIST SP800-90B標準中列出的重復計數測試(Repetition Counter Test)和自適應比例測試(Adaptive Proportion Test)。
輸出:一次輸出4*32-bit。
墑源質量驗證:生成1000*1Mb數據,然后用NIST工具進行墑源質量分析。
1. 采集隨機數,用16進制輸出32位隨機數
2. 用腳本轉換成二進制文件,比特流
3. 用NIST軟件對比特流文件進行分析,并且得到報告。如果某個項目測試結果有問題,該項目的P-VALUE和PROPORTION旁邊會出現*號。
5.應用場景
密碼學:隨機數用于生成加密密鑰,并確保加密安全性。
數學模擬:隨機數可以用于模擬不確定性的系統,如隨機運動,隨機行為等。
游戲開發:隨機數可以用于生成游戲中的隨機事件,如游戲難度、隨機道具等。
計算機圖形學:隨機數可以用于生成隨機的圖形,如隨機分布的點、隨機生成的紋理。
統計學:隨機數可以用于統計學的模擬和分析,如隨機化試驗、隨機抽樣等。
邀請函(報名倒計時)
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.