硬體隨機數字產生器

 計算中,硬體隨機數產生器HRNG)、真隨機數產生器TRNG)、非確定性隨機位元產生器NRBG[ 1 ]物理隨機數產生器[ 2 [ 3 ]是產生隨機數物理過程的能夠產生來自的設備(換句話說,設備始終可以訪問物理熵源[ 1 ]),這與利用確定性演算法[ 2 ]非物理非確定性隨機位元產生器,不包括專用於產生熵的硬體。[ 1 ]

許多自然現像都會產生低電平、統計上隨機的雜訊」訊號,包括雜訊和散粒雜訊、電子電路的抖動亞穩態、布朗運動大氣雜訊[ 4 ]研究者也使用了光電效應,涉及分束器,其他量子現象,[ 5 [ 6 [ 7 [ 8 [ 9 ]甚至核衰變(出於實際考慮後者,以及大氣噪聲,不可行)。[ 4 ]雖然「經典」(非量子)現象並不是真正隨機的,但不可預測的物理系統通常可以作為隨機性的來源,因此限定詞「真實」和「物理」可以互換使用。[ 10 ]

硬體隨機數產生器預計會輸出近乎完美的隨機數(“全熵”)。[ 1 ]物理過程通常不具有此屬性,實際的 TRNG 通常包括幾個區塊:[ 11 ]

  • 實現產生熵的物理過程的噪音源通常這個過程是模擬的,因此數位轉換器用於將類比來源的輸出轉換為二進位表示形式;
  • 提高隨機位元品質的調節器隨機性提取器);
  • 健康測試。 TRNG 主要用於密碼演算法,如果隨機數的熵較低,這些演算法就會被完全破解,因此通常包含測試功能。

硬體隨機數產生器通常每秒僅產生有限數量的隨機位元。為了提高可用的輸出資料速率,它們通常用於產生更快的 PRNG 的「種子」。 DRBG 也有助於噪音源「匿名化」(白化噪音源辨識特徵)和熵提取。透過選擇適當的 DRBG 演算法(加密安全偽隨機數產生器,CSPRNG),該組合可以滿足聯邦資訊處理標準通用標準的要求[ 12 ]

用途

硬體隨機數產生器可用於任何需要隨機性的應用程式。然而,在許多科學應用中,TRNG 的額外成本和複雜性(與偽隨機數產生器相比)並沒有帶來任何有意義的好處。 TRNG 對於資料科學和統計應用來說還有其他缺點:除非儲存一系列數字,否則無法重新運行它們,對類比物理實體的依賴可能會掩蓋來源的故障。因此,TRNG 主要用於其不可預測性和無法重新運行數字序列對於成功至關重要的應用:密碼學和賭博機。[ 13 ]

密碼學

硬體隨機數產生器的主要用途是資料加密領域,例如創建加密和簽署資料所需的隨機加密金鑰隨機數。除了隨機性之外,加密應用程式還至少提出了兩個附加要求:[ 14 ]

  1. 前向保密保證設備過去的輸出和內部狀態的知識不會使攻擊者能夠預測未來的資料;
  2. 向後保密保護「相反方向」:未來的輸出和內部狀態的知識不應洩露先前的資料。

滿足這些要求的典型方法是使用 TRNG 為加密安全偽隨機數產生器提供種子。[ 15 ]

歷史

數千年來,實體設備一直被用來產生隨機數,主要用於賭博。尤其是骰子,已經有 5000 多年的歷史了(在現代伊拉克和伊朗的一些地方發現過),而擲硬幣(從而產生隨機的位)至少可以追溯到古羅馬時代。[ 16 ]

高爾頓( Francis Galton,1890)首次將物理隨機數產生器用於科學目的。 [ 17 ]他設計了一種使用普通賭博骰子對機率分佈進行採樣的方法。除了最高數字之外,高爾頓還查看了離他最近的骰子的正面,從而產生了 6*4 = 24 個結果(大約 4.6 位隨機性)。[ 16 ]

Kendall 和 Babington-Smith (1938) [ 18 ]使用了一個快速旋轉的 10 扇區圓盤,該圓盤被週期性的光脈衝照亮。採樣是由一個人在光束下將數字寫在記事本上完成的。該設備用於產生 100,000 位隨機數字表(當時此類表用於統計實驗,例如現在的 PRNG)。[ 16 ]

1947 年 4 月 29 日,蘭德公司開始使用「電子輪盤賭輪」產生隨機數字,該輪盤賭輪由每秒約100,000 個脈衝的隨機頻率脈衝源組成,每秒以恆定頻率脈衝選通一次,並饋入五位二進位文件中。道格拉斯飛機公司建造了該設備,實施了塞西爾·黑斯廷關於噪音源的建議(蘭德 P-113)[ 19 ] (很可能是 6D4 微型氣體閘流管在置於磁場中時的眾所周知的行為[ 20 ])。 32 個可能的計數器值中的 20 個被對應到 10 個十進位數字,其他 12 個計數器值被丟棄。[ 21 ]蘭德機的長期運行結果,經過過濾和測試,被轉換成一個表格,該表格最初僅以一副打孔卡的形式存在,但後來於1955年作為一本書出版,50行50位數字每頁[ 16 ]一百萬個隨機數字,有 100,000 個正常偏差)。 RAND 表是提供隨機數的重大突破,因為以前從未有過如此大且精心準備的表。它是模擬、建模以及導出密碼演算法中的任意常數的有用來源,以證明這些常數沒有被惡意選擇(「沒有什麼秘密」)。[ 22 ]

自 20 世紀 50 年代初以來,TRNG的研究一直非常活躍,截至 2017 年已發表了數千篇研究論文,並授予了約 2000 項專利

具有隨機屬性的物理現象

隨著時間的推移,人們提出了多種不同的 TRNG 設計,其中包括各種噪音源和數位化技術(「收穫」)。然而,實際考量(尺寸、功率、成本、性能、穩健性)決定了以下理想的特性:[ 23 ]

  • 使用常見的廉價矽製程;
  • 獨家使用數位設計技術。這樣可以更輕鬆地進行系統單晶片整合並支援FPGA的使用
  • 緊湊和低功耗設計。這不利於類比組件(例如放大器)的使用;
  • 熵收集機制的數學論證。

Stipčević 和 Koç 在 2014 年將用於實施 TRNG 的物理現象分為四組:[ 3 ]

  • 電噪聲;
  • 自由運轉的振盪器;
  • 混亂;
  • 量子效應。

基於電噪聲的 RNG

基於雜訊的 RNG 通常遵循相同的輪廓:雜訊產生器的來源被饋送到比較器中。如果電壓高於閾值,則比較器輸出為 1,否則為 0。噪音源各不相同,包括:[ 24 ]

在 RNG 設計中使用雜訊源的缺點是:[ 25 ]

  • 噪音水平很難控制,它們會隨著環境變化和設備的不同而變化;
  • 確保確保熵量所需的校準過程非常耗時;
  • 雜訊等級通常較低,因此設計需要高功耗放大器。放大器輸入的敏感度使得攻擊者能夠進行操縱;
  • 位於附近的電路會產生大量非隨機噪聲,從而降低熵;
  • 由於涉及多個相互作用的物理過程,隨機性的證明幾乎是不可能的。[ 26 ]

基於混沌的 RNG

基於混沌的噪音的想法源於複雜系統的使用,該系統很難透過觀察其隨時間變化的行為來表徵。例如,雷射可以進入(在其他應用中不希望的)具有混沌波動功率的混沌模式,使用光電二極檢測功率並由比較器取樣。該設計可以非常小,因為所有光子元件都可以整合在晶片上。 Stipčević 和 Koç 將這種技術描述為“最令人反感的”,主要是因為混沌行為通常由微分方程控制,並且沒有引入新的隨機性,因此基於混沌的 TRNG 有可能產生有限的子集可能的輸出字串。[ 27 ]

基於自由運轉振盪器的 RNG

基於自由運轉振盪器 (FRO) 的 TRNG 通常使用一個或多個環形振盪器(RO),其輸出使用另一個振盪器進行取樣。由於形成 RO 的反相器可以被視為具有非常大增益的放大器,因此 FRO 輸出在頻域中表現出非常快速的相位振盪。基於 FRO 的 TRNG 由於使用標準數位邏輯而非常受歡迎,儘管存在隨機性證明和晶片間變異性的問題。[ 27 ]

基於量子的 RNG

量子隨機數產生技術已經成熟,2017年之前已提供8種商用量子隨機數產生器QRNG 產品。

Herrero-Collantes 和 Garcia-Escartin 將以下隨機過程列為「量子」:

為了降低成本並提高量子隨機數產生器的穩健性,[ 39 ]線上服務已經實現。[ 28 ]

多個量子隨機數產生器設計[ 40 ]本質上是不可測試的,因此可以被對手操縱。曼納拉特等人。稱這些設計為“可信”,是因為它們只能在完全受控、可信的環境中運作。[ 41 ]

性能測試

TRNG 的失敗可能非常複雜且微妙,不僅需要驗證結果(輸出位元流),還需要驗證熵來源的不可預測性。[ 10 ]應持續監控硬體隨機數產生器是否正常運行,以防止因自然原因和故意攻擊而導致熵源退化。FIPS Pub 140-2NIST Special Publication 800-90B [ 42 ]定義了可用於此目的的測試。 

認證機構規定的最小即時測試集並不大;例如,SP 800-90B 中的 NIST 只需要兩次連續的健康測試[ 43 ]

  1. 重複計數測試檢查相同數字的序列是否太長,對於一次數字化一位的 TRNG 的(典型)情況,這意味著沒有長字串 0 或 1;
  2. 自適應比例測試驗證任何隨機數字在資料流中不會出現太頻繁(低偏差)。對於面向位的熵源,這意味著位元流中 1 和 0 的數量大致相同。

攻擊

正如密碼系統的其他元件一樣,密碼隨機數產生器應設計為能夠抵禦某些攻擊。如果沒有硬體熵源,防禦這些攻擊是很困難的。[需要引用]

HRNG 中的物理過程引入了新的攻擊面。例如,可以使用頻率注入來攻擊基於自由運行振盪器的 TRNG [ 44 ]

估計熵

有一些數學技術可以估計符號序列的。沒有一個可靠到可以完全依賴他們的估計;總是有一些可能很難證實的假設。例如,這些對於確定種子池中是否有足夠的熵很有用,但通常它們不能區分真正的隨機來源和偽隨機產生器。保守地使用硬體熵源可以避免這個問題。

參見

沒有留言:

張貼留言

你發現了這篇網誌的留言板,在這留點什麼吧|д・)