已為 Linux 核心提出了 /dev/random 的實現,擺脫了與 SHA-1 的綁定

VPN WireGuard 的作者 Jason A. Donenfeld 提出了 RDRAND 偽隨機數產生器的更新實現,負責 Linux 核心中 /dev/random 和 /dev/urandom 裝置的操作。 XNUMX 月底,Jason 被納入隨機驅動程式的維護者數量中,現在已經發布了他處理該驅動程式的第一個結果。

新實作的值得注意之處在於它轉而使用 BLAKE2s 雜湊函數而不是 SHA1 進行熵混合操作。 此變更透過消除有問題的 SHA1 演算法並消除 RNG 初始化向量的覆蓋來提高偽隨機數產生器的安全性。 由於 BLAKE2s 演算法在性能上優於 SHA1,因此它的使用也對偽隨機數產生器的性能產生了積極影響(在採用 Intel i7-11850H 處理器的系統上進行測試顯示速度提高了 131%)。 將熵混合轉移到 BLAKE2 的另一個優點是所使用演算法的統一 - BLAKE2 用於 ChaCha 密碼,已用於提取隨機序列。

此外,也對 getrandom 呼叫中使用的加密安全偽隨機數產生器 CRNG 進行了改進。 這些改進歸結為在提取熵時限制對慢速 RDRAND 生成器的調用,從而將效能提高了 3.7 倍。 Jason 表明,呼叫 RDRAND 僅在 CRNG 尚未完全初始化的情況下才有意義,但如果 CRNG 初始化完成,其值不會影響生成序列的質量,在這種情況下調用 RDRAND可以省去。

這些變更計畫包含在 5.17 核心中,並且已經由開發人員 Ted Ts'o(隨機驅動程式的第二維護者)、Greg Kroah-Hartman(負責維護 Linux 核心的穩定分支)和 Jean-Philippe 進行了審核Aumasson (BLAKE2/3 演算法的作者)。

來源: opennet.ru

添加評論