Random-Number-Generator

PracRand 是否有可能沒有檢測到生成器的循環?

  • January 15, 2022

我正在測試我自己的 PRNG 生成器,它應該有句點 $ 2^{38} $ 字節。所以在準確之後 $ 2^{38} $ 它應該開始重複的字節。但是 PractRand 之後沒有發現異常 $ 2^{39} $ 字節。

會不會是 PractRand 沒有檢測到這一點,或者我算錯了某些東西並且生成器在該字節數之後沒有循環?

我不能代表你的發電機說話,因為我沒有看到它。它在密碼學上是否安全(因為編寫起來有點棘手,並且僅僅因為您無法恢復種子並不意味著其他人不能)。

PractRand 沒有檢測到大於 275 GB 的循環,我一點也不感到驚訝(見註釋)。我對 PractRand 沒有直接經驗,但不管它的血統很低,所有的“標準”測試都有問題。NIST 的 STS 具有非常狹窄的內部統計數據集,這嚴重限制了其可接受的樣本量。頑固分子有臭名昭著的總和測試和其他弱測試。最近發現頑固分子具有 Kolmogorov-Smirnov 測試偏差(約 8 TB 樣本)。它僅限於約 250 GB 的數據。ent 完全缺少幾個 p 值。FIPS 140 相當薄弱。測試 U01 必須符合可以調整的參數(為什麼?)。PractRand 不會有任何不同,特別是考慮到開發它的開發人員數量有限。

總之,沒有可用的測試套件是完美的,隨機性令人討厭。這是我們目前所擁有的。我建議對 <275 GB 的樣本使用另一個測試套件並進行比較。建議三局兩勝。無論如何,從一個種子中提取 275 GB 的密鑰材料對於大多數案例來說應該足夠了


筆記:

為了測試 PractRand 測試,只需從 /dev/urandom 生成 100 GB,複製它並連接起來,形成一個翻轉。看看你會發生什麼。

我剛剛從 /dev/urandom 頑固地將一個連接文件作為 2 x 10 GB 並通過了兩個 WEAK:-

  sts_serial|   6|    100000|     100|0.99995833|   WEAK
 diehard_dna|   0|   2097152|     100|0.99637872|   WEAK

這就是生活。

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