Randomness

拆分隨機數據會降低其安全性嗎?

  • March 31, 2020

假設我有一些安全生成的隨機數據,我想將其編碼為 32 位的單詞。我的單詞表是 2048 個單詞,所以每個單詞編碼 11 位資訊。我編寫了一個常式,將這 32 位打包到 3 個 16 位類型的低 11 位中,並將每個類型的高 5 位歸零。對於最後一個,我將剩餘的 10 位隨機數據打包,並將前 6 位歸零。然後,我在我的 wordlist 數組中查找每一個以獲取我的話。我想用這些詞。

這是我的問題:我正在做的事情是否會減少我在這些詞中編碼的安全隨機性的數量?我會在一個實際上只有一半大小的列表中查找最終單詞,因為第 11 位始終為零,所以這裡有一些“隨機性損失”嗎?我知道這有點令人困惑,但我會很感激一些指導。我懷疑可能有一些現有的指導,但我不確定要搜尋什麼才能找到它,而且我的Google搜尋都沒有產生結果。

編輯:澄清一下,我的直覺猜測是這不會造成問題,但我對此並不滿意。我最接近合理化的方法是 $ 2^{11} \times 2^{11} \times 2^{10} = 2^{32} $ .

考慮這一點的一種方法是您正在定義一種編碼,而這只是表示形式的變化。您將 32 位值表示為 3 個字,重要的是這是一個可逆過程。由於它是雙射映射,因此輸出中的熵與輸入中的熵一樣多。

確實,您所做的與以 9 個基數為 10 位數字表示 32 位值沒有根本不同。前導數字確實存在顯著偏差,但重要的是覆蓋了整個範圍並且它是可逆的。

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