Random-Number-Generator

是否可以壓縮具有高熵的隨機序列?

  • July 19, 2021

我有一個算法可以生成一個長度為 100k 且熵高的偽隨機序列。我想檢查其隨機性的質量。因此,我使用了一個流行的軟體程序來壓縮生成的文件,將其縮小到原始大小的三分之一。

我遇到過一些隨機測試套件,但我不知道為什麼可以像這樣壓縮大容量的隨機序列。

我的問題是壓縮生成的文件是否是正確的測試?算法失敗是因為生成的文件可以壓縮嗎?

任何評論表示讚賞。

隨機數據無法壓縮。好的偽隨機數據不能被壓縮(使用通用算法)。正如 Paul 所評論的,如果您使用低效的編碼(例如十六進製或十進制 ASCII 字元),您將使用完整的 8 位字元來表示較少的資訊。十六進制可壓縮為 50%,十進制可壓縮為 $ \log_2(10)/8 $ 這大約是 41%。如果您的數據是二進製或壓縮比使用的繼承編碼要多得多。這是您的隨機數生成器中的一個重大缺陷。使用基於 Lempel-Ziv 的壓縮算法的壓縮測試是一項非常重要但不充分的測試。它本質上是測試任意長度的重複序列。所以它可以在你的算法中找到各種偏差。

但是,對於密碼安全性,即使您的自主算法通過了所有通用統計測試,其安全的可能性也很小。

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