UNIXシステムのエントロピーに関して3つの質問があります。
cat /proc/sys/kernel/random/entropy_avail
を使用します。これは、POSIXで定義されている利用可能なエントロピーに関する情報を備えた標準的な場所ですか?/dev/random
によって使用されますか、それとも/dev/urandom
と何か関係がありますか?/dev/random
は標準化されていません。 POSIXは暗号で安全なランダムデータを生成する方法を提供せず、エントロピーの概念もありません。
Linuxカーネルのエントロピー計算は、実用に関連しないエントロピーの情報理論モデルに対応しています。これが関係する唯一のケースは、エントロピーを蓄積する時間がなかった新しいデバイス上です(これにはライブ配布が含まれます。インストールされたシステムは、エントロピーをブート間で保存します)。この状況とは別に、エントロピーは減少しないため、常に十分なエントロピーがあります。 Linuxの/dev/random
は、十分なエントロピーがないと思われるときにブロックするため、ブロックしない/dev/urandom
を使用します。 /dev/urandom
の使用は、暗号化キーの生成を含むすべてに適しています (上記のように、新しく作成されたデバイスを除く)。
要約すれば:
/dev/urandom
を使用 。すべてではありませんが、多くのUNIXシステムには/dev/urandom
と/dev/random
があります。より詳細な議論については Wikipedia page を参照してください。