私は仮想マシンで作業をたくさんしていますが、通常はエントロピーが低いようです(マウスや他のエントロピー生成入力はありません)。私のソフトウェアにエラーがあり、私は考えるエントロピーが枯渇したからだ。これをテストしたいのですが、この現象は時々発生し、再現するのは難しいです。
ソフトウェアが枯渇したときにどのように動作するかをテストするためにエントロピープールを空にするにはどうすればよいですか?
(注:他の人が使用しているコードを呼び出しているdev/random
ので、dev/urandom
ブロックを防ぐために使用することはオプションではありません。)
答え1
まず、ソフトウェアのバグの原因が実際にランダムプールの枯渇であることを確認する必要があります。実行すると、cat /proc/sys/kernel/random/entropy_avail
システムで使用可能なエントロピーをテストしてゼロであることを確認できます。
第二に、私が知っている限り(まだこのコマンドをテストしていない)、/procに適切な変数を設定してエントロピープールを減らすことができます。 32ビットに設定するには:
echo 32 > /proc/sys/kernel/random/poolsize
または
sysctl -w kernel.random.poolsize=32
答え2
cat /dev/random
エントロピーは使用可能になるにつれて継続的に消費され、エントロピーをゼロまたはゼロに近づけます。完璧ではありませんが、簡単です。