'fastrand實現比crypto / rand快10倍,使用安全得分配內存'

算法 Sync 星集 2019-08-29
"
"
fastrand實現比crypto / rand快10倍,使用安全得分配內存


fastrand

實現了加密安全的偽隨機數生成器。 使用系統的默認熵源對發生器進行播種,然後通過重複散列生成隨機值。 因此,fastrand可以比crypto / rand更快地生成隨機性,並且在init()期間生成不會超過潛在的恐慌。

參照

"
fastrand實現比crypto / rand快10倍,使用安全得分配內存


fastrand

實現了加密安全的偽隨機數生成器。 使用系統的默認熵源對發生器進行播種,然後通過重複散列生成隨機值。 因此,fastrand可以比crypto / rand更快地生成隨機性,並且在init()期間生成不會超過潛在的恐慌。

參照

fastrand實現比crypto / rand快10倍,使用安全得分配內存

安全

fastrand使用類似於Fortuna的算法,這是/dev/randomFreeBSD中設備的基礎 。然而,儘管fastrand已知所使用的技術 是安全的,但是安全專業人員尚未審查具體實現。謹慎使用。

一般策略是crypto/rand在init處使用以獲得32字節的強熵。從那裡,熵被連接到計數器並重復散列,每次計數器遞增時提供64字節的隨機輸出。計數器為16個字節,這有力地保證了在程序的整個生命週期內都不會看到循環。

該sync/atomic包用於確保fastrand始終保證多個併發調用的線程 最終具有唯一的計數器。

安裝

go get github.com/awnumar/fastrand

fastrand實現加密安全的偽隨機數生成器。使用系統的默認熵源對發生器進行播種,然後通過重複散列生成隨機值。因此,fastrand 可以比生成隨機性更快crypto/rand,並且生成不會超過潛在的恐慌期間init()。

fastrand是分叉的gitlab.com/NebulousLabs/fastrand。此版本的軟件包使用安全分配的內存github.com/awnumar/memguard。

fastrand還可以進行擴展優於crypto/rand和math/rand並行調用時。實際上,在使用足夠的線程時fastrand甚至可以勝出math/rand。

更多更優質的資訊,請關注我,你的支持會鼓勵我不斷分享更多更好的優質文章。

"