/dev/random, /dev/urandom: カーネル乱数ソースデバイス


前提


ドキュメント


乱数

過去の数から将来の数を予測できるかどうか。


rngdサービス

rndgサービスにより、環境ノイズ等はエントロピー・プールに貯められ、ここから乱数を生成する。

systemctl status rngd

/dev/random


/dev/urandom


エントロピー・プールのサイズ

現在の値

# 1秒間隔で値をチェック
watch --interval 1 cat /proc/sys/kernel/random/entropy_avail

読み出しを試す

# 10000バイト分を10進数で表示

# プール不足なら途中待ちあり: 
hexdump -d -n 10000 /dev/random

# 待ち時間なし: 
hexdump -d -n 10000 /dev/urandom

乱数の品質テスト(FIPS 140-2)

cat /dev/random | rngtest --blockcount 1