Random-Number-Generator

為什麼要為熵源建模以建構 TRNG?

  • March 24, 2019

有人斷言,在建構任何 TRNG 時必須創建無條件源的理論模型。這被認為是一項基本要求。所以出現了一些相關的問題:-

  1. 什麼是“模型”?例如,我們是在談論原始輸出分佈的簡單直方圖,還是類似 $ \sigma^2_{quantum} = \frac{\gamma}{\gamma + 1} \langle V(t)^2 \rangle $ 因此 $ \sim H_{Shannon} $ 在雷射相位干涉?更一般地說,它們是否意味著後驗(經驗總結統計、機率密度函式、 $ V_{RMS} $ , $ \delta^2_{signal} $ ) 或先驗(預測)建模,如 $ V \sim -C_1(1 - e^{-\frac{t - t_a}{C_2}}) $ 控制齊納二極體擊穿形狀和早期雷射方程的電容電荷曲線?主要區別在於經驗/後驗模型與任何物理學無關。然而,經常提到潛在的物理過程。
  2. 是否有任何原創的理論工作證明這種建模要求是合理的?我在詢問任何支持或證明人們在NIST / BSI AIS文件中可能讀到的內容的作品。
  3. 如果經驗測量的熵率與先驗(預測)建模不一致怎麼辦?說一個很嚴重的錯誤。來自不同製造商的兩種通用組件類型(例如BZX85C24齊納二極體)之間的測量雜訊信號可以輕鬆增加 100%。

更新:

現在有一個熱門的網路問題——模型適合數據還是數據適合模型?目前的答案傾向於經驗數據優先於理論。所以你會從示波器開始,然後在物理學的上游工作

$$ sic $$. 作為一名哲學經驗主義者,這對我來說似乎更直覺,但這裡似乎確實有一部分成員將數學優先於測量。這是一個柏拉圖訴亞里士多德的問題,我正試圖對這個問題持開放態度。

為什麼要使用模型?

科學模型的效用在於做出預測的能力。一個簡單模型的範例是基於牛頓運動定律和重力定律描述拋射體運動的模型。

你可以在戰場上使用兩種策略在你想要的地方製造砲彈。

您可以將大砲指向城堡和火災的大致方向。如果彈丸飛過目標,你再試一次,瞄準更低。如果它仍然越過城堡,你的目標再低一點。(或者如果它達不到目標,則目標更高一點。)您嘗試進行調整,直到獲得您想要的結果。

或者你可以確定你和目標之間的距離,目標比大砲高多少,砲彈的初始速度。您將砲彈建模為一個點質量。你忽略了阻力的影響。(這可能取決於砲彈的密度、大氣層的稀薄程度以及它需要行進多遠。)在這樣的環境中,牛頓定律的結果是可以從其初始位置確定彈丸的相對位置速度。您使用數字和公式來確定瞄準的位置。不是你的眼睛。

第一種方法不使用正式模型。這是不可取的,因為它會浪費資源,因為任何錯誤都會使您處於危險之中。第二種方法(可能)使您能夠在第一次嘗試時達到目標。

科學充滿了模型。你想找到一個足夠準確的,以便有信心事情會順利進行。您需要一個足夠簡單的模型以使其實用。牛頓砲彈模型並沒有準確描述現實世界的運作方式。它在保持有用的同時簡化了事情。對於某些應用程序,您需要更複雜的東西。所有型號都是這樣。


例子

如果您想建構一個使用放射性衰變作為不可預測性來源的 RNG,則首先使用半衰期模型對衰變過程進行建模。它使您可以將物理現象視為乾淨的數學抽象。

接下來,我們計算出您擁有多少材料以及我們可以檢測到的衰變事件的比例。然後我們利用半衰期衰減模型可以描述為Poisson過程的知識來創建統計模型。

該模型將告訴使用者我們在特定長度的任何給定時間片內檢測到事件的可能性有多大。如果半衰期足夠長並且我們有足夠的材料,那麼這個機率應該在很長一段時間內保持準確。

現在我們有一個伯努利過程。樣本是二元的(檢測或非檢測)、獨立的,並且將具有有效的恆定機率。

我們可以看看這兩種可能結果的機率。由此我們可以很容易地確定最小熵。這個數字可以告訴我們需要多少樣本來確保我們有足夠的熵。(因此也是我們需要等待多長時間來生成密鑰的下限。)

將您需要的樣本數量乘以 2 或 2000 只是保守和偏執。現在您知道在使用輸出生成密鑰之前要通過加密雜湊處理多少樣本。

一旦我們知道我們可以將檢測建模為Poisson過程而不計算機率,我們就可以停下來。在Poisson過程模型中,兩個不重疊的時間片在統計上是獨立的。出於這個原因,我們可以使用 von-Neumann 的去偏算法,而無需知道檢測機率,因為(假設硬體工作正常)我們擁有的樣本類型是獨立且同分佈的。

但是計算機率讓我們有機會測試事情是否按預期工作。(使用更好的模型來建構更安全的 HWRNG。)如果 CPU 發現檢測的頻率比預期的要高得多,那麼可能有人正在使用另一個放射源來試圖偏向我們的 RNG。如果我們看到太少的檢測或太多相同的連續樣本,則可能電路已損壞。

注意:我確信我不知道現實世界中每個基於放射性的 HWRNG 如何以 100% 的準確度工作。可能存在具有不同設計理由的不同設計。物理學不是我打算進一步學習的東西。而且我絕對不會為逆向工程專有的東西而煩惱。


其他問題

使用直方圖?

不,不要使用直方圖。使用機率質量函式。

創建直方圖需要採樣。直方圖只能用於估計機率。如果您不知道要尋找什麼,那麼您肯定無法區分正常工作的系統和損壞的系統。

您也不想僅根據經驗結果校準系統。重要的是要知道組件發生故障的可能性有多大,要知道組件老化是否會導致校準無效。

校準到實驗室條件是危險的,因為您使用的熵源的特性在不同的溫度、不同的環境中、隨著組件的老化、在不同的電源上暴露於不同強度和頻率的電磁雜訊時可能會有所不同。

使用基於物理過程知識的設計是一個更好的主意,該物理過程足夠健壯,在未來在不同條件下仍然是不可預測的(並且可以預見的不可預測)。

理論必要性?

為什麼不需要理論的理論?也許。我不知道有多少理論研究人員對這個利基感興趣。

結果與理論不符?

你的型號是錯誤的或者你的硬體壞了。如果一個設備沒有按照預期的方式工作,並且如果它壞了會有任何安全隱患,那麼為什麼不修復它或使用不同的設備呢?如果您的模型是錯誤的並且您的硬體很好,那麼為什麼不找到一個可以解釋事情的模型呢?

50%的錯誤?

不知道你用的是什麼指標。這聽起來真的很高。

為什麼要為熵源建模以建構 TRNG?

我在我的密碼學商店出售兩個帶有曲柄和輸出顯示器的黑匣子。您可以選擇一個帶回家用於密碼學。

  • 一個盒子裡有一個小鬼,他盡職盡責地計算 $ \operatorname{AES}_0(0) \mathbin| \operatorname{AES}_0(1) \mathbin| \operatorname{AES}_0(2) \mathbin| \cdots $ 轉動曲柄時顯示在輸出上。
  • 一個盒子裡有一個小精靈,它會扔硬幣並在你轉動曲柄時顯示結果。

這些盒子標有 AES GREMLIN 和 COIN-FLIPPING GREMLIN,因此通過窗戶觀察商店的對手知道您選擇了哪個盒子。但是,您故意忽略標籤,任意選擇一個,並將輸出提供給 NIST 套件等通用統計測試。無論哪種情況,它都會返回一個快樂的結果,所以你接受它並繼續你快樂的方式。

如果您使用 AES GREMLIN 盒子,無論您使用哪種花哨的密碼術來生成密鑰,您都會輸給對手。如果你拿了擲硬幣的小精靈盒子,那麼,你是否能戰胜對手取決於你使用它的密碼學——而且取決於你使用它的密碼學,因為這個小精靈就像他們得到的一樣不可預測。

這就是為什麼你應該注意你所擁有的關於這個世界的資訊,而不是故意忽視它!

  1. 什麼是“模型”?例如,我們是在談論原始輸出分佈的簡單直方圖,還是類似 $ \sigma^2_{quantum} = \frac{\gamma}{\gamma + 1} \langle V(t)^2 \rangle $ 因此 $ \sim H_{Shannon} $ 在雷射相位干涉?

模型是對輸出機率分佈的描述,它代表您對它們可能是什麼的知識狀態。 在 AES GREMLIN 模型中,經過短暫的計算,任何人都可以準確地知道輸出將是什麼。在 COIN-FLIPPING GREMLIN 模型中,每個可能的結果都是同樣可能的:沒有人有任何理由懷疑下一個輸出將是 0 而不是 1,反之亦然。它可能是具有參數的模型族,也可能是具有貝氏模型選擇的複合模型等。

其他型號包括:

  • 計算來自輻射源的一秒內電離事件的數量。在很短的時間內,每個這樣的數字都會有某個固定比率的Poisson分佈 $ \lambda $ 取決於輻射源。隨著時間的推移,輻射源會衰減,所以Poisson率 $ \lambda_t $ 有時 $ t $ 如果半衰期短,會迅速減少;慢慢來,如果沒有。
  • 報告 0 或 1,具體取決於來自非偏振單光子發射器的光子通過分束偏振器的哪一側。每個樣本的 0 或 1 機率取決於分束器的結構和像差,以及發射器的特性。如果貓通過跳到實驗台上並將發射器指向分離器來干擾設置,0 的機率可能會達到 100%。
  1. 是否有任何原創的理論工作證明這種建模要求是合理的?我在詢問任何支持在 FIPS/BSI AIS 文件中閱讀內容的作品。

第一原則。

您對物理設備了解得越多,就可以更好地對其進行預測,例如輻射源的半衰期和純度,或者分束器的像差和發射器的偏振分佈。 如果您塞住耳朵並遮住眼睛,這並不會降低聰明的對手的可預測性!

作為設計者、實施者或密碼學家,你的工作是盡可能利用最先進的物理和工程技術來預測設備的結果。那麼一個對手——至少和你一樣擅長物理學,並且足夠聰明不會忽略相關資訊——可能沒有更好的機會來預測它。

此外,作為一名工程師,您知道系統會發生故障:鈾衰變,貓跳到桌子上並撞倒分束器,矽晶體在雪崩擊穿的壓力下降解,對手向您的光子探測器發出強光,工程 知識使您能夠預測合理的故障模式,並編寫在所有故障模式下發出警報的可能性很高的測試,但當設備按預期工作時錯誤警報的可能性很低。

  1. 如果經驗測量的熵率與所述模型預測的不符怎麼辦?說> 50%的錯誤。

背景:每個模型都有一個確定的熵。有時模型族是相關的。比如下面以一個參數來描述很多相關的模型 $ p $ :

  • 一個盒子,裡面有一個小鬼,他會獨立但有偏見地拋硬幣,並以機率出現正面 $ p $ ,並在您轉動曲柄時顯示結果。

該模型的單個結果的最小熵是 $ -\log_2 p $ . 通用的“熵估計器”假設像這樣的非常簡單的模型族;憑經驗猜測 $ p $ 基於數據樣本;然後用他們的猜測解析計算模型的熵 $ p $ .

假設您根據您對系統的物理、工程和鳥類學的理解,計算模型的熵,該模型涉及輻射源、光子發射器、分束器、雪崩二極體和鸚鵡的 Rube Goldberg 機器。這個系統每比特輸出提供盡可能高的熵並不重要。重要的是你要很好地計算每比特輸出的熵是多少,即使每比特輸出只有 0.1 比特的熵。

假設一個愚蠢的熵估計器,它是在不了解你的系統的情況下設計的,因為 NIST 的某個人在你遇到鸚鵡之前十年就寫了它,它猜測的熵比你計算的要低。這表明一個愚蠢的對手,甚至不知道設備是如何工作的,在預測輸出方面可以做得比你更好。

這意味著你不擅長物理,你應該更加努力。

現在有一個熱門的網路問題——模型適合數據還是數據適合模型?目前的答案傾向於經驗數據優先於理論。所以你會從示波器開始,然後在物理學的上游工作

$$ sic $$. 作為一名哲學經驗主義者,這對我來說似乎更直覺,但這裡似乎確實有一部分成員將數學優先於測量。這是一個柏拉圖訴亞里士多德的問題,我正試圖對這個問題持開放態度。

HNQ 是關於一個相當普通的措辭問題,而不是該片語的含義;那裡沒有什麼深奧的。提問者發現 Wolfram 的一篇文章描述了使用一組數據在一系列模型中查找參數的標準過程(如估計 $ p $ 在上面 $ p $ -加權小鬼);Wolfram 文章說“將數據擬合到模型”,即使觀察到的數據是固定的並且模型參數是可變的,而其他文章則說“將模型擬合到數據”;提問者詢問措辭的差異。

顯然,在研究一個不為人知的物理系統以了解它時,明智的科學家會考慮許多可能的模型並使用測試來決定首選哪些模型,並根據經驗觀察中看到的模式假設新的模型。

這個問題不是關於如何科學地進入量子引力的大統一理論。 關於經驗推理的實踐和哲學基礎以及執行它的形式框架,如常客統計和假設檢驗或貝氏推理,有很多話要說——其中一些已經說過 更廣泛的話題是遠遠不夠的在 crypto.se 範圍之外。

相反,這個問題是關於如何建構TRNG。為此,您可以將許多已經很好理解的科學用作建構塊。 如果你有意識地忽略這一切,並且坐在頑固的跑步者的桂冠上,那麼你在工程方面做得很糟糕。輻射源會衰減嗎?矽會降解嗎?溫度、壓力和濕度會影響結果嗎?Dieharder 不能告訴你這些。

引用自:https://crypto.stackexchange.com/questions/68166