Pseudo-Random-Generator
CSPRNG 獨特的種子
加密安全偽隨機數生成器的定義是否存在需要不同種子來生成不同(週期性)序列的條件?如果生成器具有兩個不同的種子生成相同序列的屬性,但生成器可證明是安全的怎麼辦?那麼這個屬性可以被忽略還是需要不同的種子生成不同的偽隨機序列?
對於 a
CSPRNG
,找到兩個生成相同序列的種子應該像找到兩個具有相同雜湊的字元串一樣困難。類似地,如果有人能找到這兩個字元串,那麼這CSPRNG
必須被棄用,因為熵應該足夠大,以至於找到這個“碰撞”的機率可以忽略不計。CSPRNG 應該實現兩個非常重要的屬性:
- 下一位測試:說明給定從生成器生成的 m 位序列,沒有可行的方法可以預測該
(m + 1)th
位的機率顯著高於一半。- 惡意播種阻力:即使攻擊(er)可以在
CSPRNG
一段時間(時間)內完全或部分控制CSPRNG
.不過,當您要使用 a
CSPRNG
時,請確保所有種子都盡可能是真正隨機的(例如,devrandom)。