web-dev-qa-db-ja.com

UNIXシステムで利用可能な正しいエントロピーは何ですか?

UNIXシステムのエントロピーに関して3つの質問があります。

  1. Linuxでエントロピーを確認するには、cat /proc/sys/kernel/random/entropy_availを使用します。これは、POSIXで定義されている利用可能なエントロピーに関する情報を備えた標準的な場所ですか?
  2. 私が期待できる正しい利用可能なものは何ですか?エントロピーは100以上である必要があり、エントロピーが常に100未満である場合は問題が発生する可能性があると聞きました。
  3. このエントロピーは/dev/randomによって使用されますか、それとも/dev/urandomと何か関係がありますか?
13
syntagma

/dev/randomは標準化されていません。 POSIXは暗号で安全なランダムデータを生成する方法を提供せず、エントロピーの概念もありません。

Linuxカーネルのエントロピー計算は、実用に関連しないエントロピーの情報理論モデルに対応しています。これが関係する唯一のケースは、エントロピーを蓄積する時間がなかった新しいデバイス上です(これにはライブ配布が含まれます。インストールされたシステムは、エントロピーをブート間で保存します)。この状況とは別に、エントロピーは減少しないため、常に十分なエントロピーがあります。 Linuxの/dev/randomは、十分なエントロピーがないと思われるときにブロックするため、ブロックしない/dev/urandomを使用します。 /dev/urandomの使用は、暗号化キーの生成を含むすべてに適しています (上記のように、新しく作成されたデバイスを除く)。

要約すれば:

  1. いいえ、これは標準ではありません。
  2. あなたは気にしません。
  3. /dev/urandomを使用

すべてではありませんが、多くのUNIXシステムには/dev/urandom/dev/randomがあります。より詳細な議論については Wikipedia page を参照してください。