Entropy

可以將壞熵添加到好熵中,使系統不安全嗎?

  • May 6, 2019

例如,

如果我需要生成一個隨機數。我使用良好的熵源來生成r.

然後我添加值ab以及c從壞熵中生成的人,使得new entropy = r + a + b + c

整體熵會是什麼樣子?

加號表示添加而不是連接。我相信如果我們連接起來,那麼這將導致一個整體的壞熵,因為如果我們假設每個a,b,c,r都貢獻 64 位到 256 位的熵。我們實際上只有 64 位的好熵r。這是我對串聯的直覺。

如果您有一個具有最大熵的變數,並且您使用 Xor 或模加法將它與具有較少熵的自變數結合起來,您仍然會擁有最大熵。

如果您有兩個低熵的自變數,並以上述方式將它們組合起來,則結果將是一個熵大於原始變數的變數

然而,如果變數是相關的,那麼所有的賭注都會被取消。即使將兩個最大熵變數組合在一起,在添加/異或時也可能導致 0 熵(常數變數)。

我假設加法是 mod 2^64。在這種情況下,變數 new entropy = r + a+ b+c 將具有與 r 相同的熵(我們假設 r 已經具有最大熵)。

相反,如果加法是在整數上,並且 a,b,c, 被限制為 64 位,您將得到一個最多 67 位的隨機變數,它不是均勻分佈的,並且沒有對 a,b,c 的任何假設,它可能只有 64 位熵。(例如,a、b、c 可以相互關聯,因此總和始終等於 452441。)

更好的方法是使用靈活的雙源提取器,其中兩個源是 a|b|c(串聯)和 r,或者出於實際原因,只需使用 SHA256 對串聯(a|b|c|r)進行散列。

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