Random-Number-Generator

TRNG 與 PRNG - 熵?

  • November 3, 2021

與偽隨機數生成器相比,硬體隨機數生成器或真隨機數生成器的熵增加了多少?

我知道這取決於使用哪個 TRNG,但我一般都在考慮。TRNG 通常比 PRNG 提供更多的安全性嗎?

資訊論和密碼學中定義的熵是一個困難的概念。最常見的謬誤之一是一段數據本身俱有或“包含”熵。誤解這一點的人談論比特流具有熵,或測量一段數據的熵。或測量RNG的熵。

要測量熵,您需要一個數據源和一個模型。您將模型給出的預測(通常是某些結果的先驗機率)與數據源的結果(收到的實際值,以及模型在您查看之前提供的獲得該結果的機率)進行比較,以評估數據源相對於模型生成的熵*。這意味著您獲得的熵值取決於您建構模型的方式。

在考慮系統的安全性時,您可以尋找一種“攻擊”模型,該模型試圖通過預測其結果來降低其測量的系統的熵。一個成功的攻擊模型對其目標系統的熵度量很低。

通常,在研究攻擊加密 RNG 系統時,我們會尋找可能的最佳模型,並聲明被攻擊的源在該模型下具有 X 熵。這有時會被混為一談,說一個源(或密碼)有這麼多的熵。

根據這種觀點,優質 PRNG 和 TRNG 之間存在明顯的差異。也就是說,如果您的 PRNG 模型是準確的並且包含正確的種子,那麼 PRNG 的熵實際上為零。但是如果沒有種子,並且假設 PRNG 質量很好,那麼我們不知道任何可以區分 PRNG 和 TRNG 的*實用模型(也假設後者被適當地白化)。*也就是說,所有已知模型的輸出來自具有未知種子的 PRNG 或 TRNG 將測量相同的熵(在預期範圍內具有統計變化) 理論模型可以區分,因為您可以通過執行例如來證明有限狀態 $ 2^{256} $ 迭代和看到重複。

這部分是自定義的。如果發現一個實用模型可以將用於加密的 PRNG 與 TRNG 分開,並且通過顯示較低的熵度量來證明,那麼 PRNG 很可能會被放棄用於加密。

TRNG 通常比 PRNG 提供更多的安全性嗎?

在一個理論模型中,您可以進行足夠的觀察以找出 PRNG 的某些狀態,然後一個本質上與 PRNG 相同的 TRNG加上從不可預測的來源定期重新播種將對該模型具有更高的熵。

需要注意的是有一個不可預測的來源。TRNG 源是對物理過程的測量,這些物理過程被選擇為非常難以預測(或者對於熱雜訊或量子源,迄今為止最好的理論將它們建模為固有隨機)。關於來源不可預測的斷言可能會被證明是錯誤的。或者更可能的問題是源或測量過程可能被篡改或攔截。

因此,帶有警告的簡短回答可能是“是的,典型的 TRNG 設計可以被認為比其自己的 PRNG 組件更安全,因為對它的成功攻擊將涉及更多工作。”

然而,這與說“這個 PRNG 提供的熵比這個 TRNG 少”是不一樣的——沒有一個合格的模型,這個陳述是沒有意義的。


*可以估計一段數據中包含的熵,但這沒有很好的定義,並且通常基於一些假設,例如與 TRNG 的簡單模型比較、可壓縮性等。使用這些是不明智的處理更正式的隨機性定義時的各種估計。

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