/dev/random の実装は、SHA-1 へのバインドから解放された Linux カーネル用に提案されています。

VPN WireGuard の作者である Jason A. Donenfeld は、Linux カーネルの /dev/random および /dev/urandom デバイスの操作を担当する RDRAND 擬似乱数ジェネレーターの更新された実装を提案しました。 XNUMX 月末に、Jason はランダム ドライバーのメンテナーに加わり、その処理に関する彼の作業の最初の結果を公開しました。

新しい実装は、エントロピー混合操作に SHA2 の代わりに BLAKE1s ハッシュ関数の使用に切り替えたことで注目に値します。 この変更により、問題のある SHA1 アルゴリズムが排除され、RNG 初期化ベクトルの上書きが排除されることで、擬似乱数ジェネレーターのセキュリティが向上しました。 BLAKE2s アルゴリズムはパフォーマンスにおいて SHA1 よりも優れているため、その使用は擬似乱数ジェネレーターのパフォーマンスにもプラスの効果をもたらしました (Intel i7-11850H プロセッサーを搭載したシステムでのテストでは 131% の速度向上が示されました)。 エントロピー混合を BLAKE2 に移行することのもう 2 つの利点は、使用されるアルゴリズムの統合です。BLAKEXNUMX は ChaCha 暗号で使用されており、ランダム シーケンスの抽出にすでに使用されています。

さらに、getrandom 呼び出しで使用される暗号化セキュアな擬似乱数ジェネレーター CRNG にも改良が加えられました。 改善の要点は、エントロピーを抽出する際の低速な RDRAND ジェネレーターへの呼び出しを制限することであり、これによりパフォーマンスが 3.7 倍向上します。 Jason は、RDRAND の呼び出しは CRNG がまだ完全に初期化されていない状況でのみ意味があるが、CRNG の初期化が完了していれば、その値は生成されたシーケンスの品質に影響を与えず、この場合は RDRAND の呼び出しに影響を与えないことを示しました。を省略することができます。

この変更は 5.17 カーネルに組み込まれる予定で、開発者の Ted Ts'o (ランダム ドライバーの 2 番目の保守者)、Greg Kroah-Hartman (Linux カーネルの安定したブランチの保守責任者)、および Jean-Philippe によってすでにレビューされています。 Aumasson (BLAKE3/XNUMX アルゴリズムの作者)。

出所: オープンネット.ru

コメントを追加します