用磁碟讀取等餵食 /dev/random
有沒有辦法以
/dev/random
足夠的熵餵食?數據不必是真正隨機的,即我可以用 pid 附加一天中的時間並將 27 添加到它,我只是想讓它執行得更快沒關係。我試圖讓球滾動
dd if=/dev/zero of=/dev/null
。我想知道是否有某種方法可以用來人工add_keystroke_randomness
輸入,這樣我就不會收到那些不可預測的阻塞呼叫。即我願意犧牲一些隨機性來換取速度。/linux/random.h``/dev/random
PS - 請不要建議使用
/dev/urandom
(我的回答適用於 Linux。一般原則適用於其他 unix 變體,但不適用於
random
/urandom
區別。)這已經在核心內部發生了。
注入額外的熵永遠不會有壞處。如果您有一堆偽隨機字節,只需將它們寫入
/dev/random
,它們將混合到熵池中。Havege是一個收集額外熵的流行程序。
dd if=/dev/zero of=/dev/null
不會導致任何硬體 I/O,因此不會增加任何熵。擊鍵包含少量的熵。請注意,如果您
/dev/random
在 Linux 下閱讀,那麼您做錯了。Linux 設計者弄錯了:他們宣稱熵是一種很快就會用完的東西,但事實並非如此。“/dev/random
塊”的解決方案不是“注入更多的熵”,而是“使用適當的設備”。不管你想不想听,你都應該從/dev/urandom
.
產生熵有多種解決方案。例如
haveged
(我對自己很滿意)、、、timer_entropyd
等等audio-entropyd
等等。它們通常會為大多數使用/dev/random
. 如果你想全力以赴,還有硬體隨機發生器,可作為 USB 記憶棒使用。儘管它們產生的熵可能比您想像的要少…儘管如此,
/dev/urandom
當您需要立即獲得數據時,它始終是一個不錯的選擇。對於海量數據(如覆蓋硬碟),無論可用熵如何,隨機設備都不適合速度;像這樣的基於 PRNG 的解決方案
shred
確實可以做得更好/更快。