rng-toolsを使用すると、カタツムリの「エントロピー生成」速度は大幅に増加しません。

rng-toolsを使用すると、カタツムリの「エントロピー生成」速度は大幅に増加しません。

私のシステム(Linux 4.13.0-38-generic、16.04.1-Ubuntu、Intel®Celeron(R)CPU G3930 @ 2.90GHz×2、プライマリディスクはSSD)の「エントロピー生成」速度が非現実的に遅いです。 1未満の秒あたりのビット。

注:エントロピーの生成速度を決定するには、次のコマンドを使用します。

watch -n1 cat /proc/sys/kernel/random/entropy_avail

一方、デフォルトのLinux CSPRNGは、毎秒約187Mbの良い速度でデータを生成します。

$ dd if=/dev/urandom of=/dev/null bs=1M count=1024 iflag=fullblock  
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.74347 s, 187 MB/s

インストールしましたが、期待どおりに動作していrng-toolsます。/dev/hwrng

% systemctl status rng-tools
● rng-tools.service
   Loaded: loaded (/etc/init.d/rng-tools; bad; vendor preset: enabled)
   Active: active (running) since Sat 2018-04-28 13:17:17 PDT; 33s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 15840 ExecStop=/etc/init.d/rng-tools stop (code=exited, status=0/SUCC
  Process: 23876 ExecStart=/etc/init.d/rng-tools start (code=exited, status=0/SU
   CGroup: /system.slice/rng-tools.service
           └─23878 /usr/sbin/rngd -r /dev/hwrng

ただし、エントロピーの速度はほとんど変化せず、依然として1秒あたり1ビットよりはるかに低いです。

ハードウェアRNGによって生成されるデータの量は、1秒あたり1ビットよりはるかに大きい場合があります。それでは、なぜエントロピー生成速度が大幅に増加しないのでしょうか?

ベストアンサー1

私は答えを見つけました。

サービスrnd-toolsはプログラムを呼び出します/usr/sbin/rngd。このコンテンツを探すUbuntuドキュメントパラメータがあることがわかります。

-W n, --fill-watermark=nnn

      この作業を開始したら、エントロピーを提供してください。ランダム機器少なくとも透かしを埋める エントロピープールには使用可能なエントロピービットがあります(デフォルト:2048)。高すぎると rngdエントロピープールの内容を制御します。低い値は、エントロピー欠損期間中にシステム性能を低下させる可能性がある。未設定 透かしを埋めるエントロピープールのサイズ(通常は4096ビット)より大きい。

したがって、「エントロピー生成」レートのテストは、バッファが半分以上満たされたときにのみ行われたため、バッファは増加しませんでした。

次のコマンドを使用すると、バッファの空きを簡単に確認できます。

dd if=/dev/random of=/dev/null bs=256 count=1 iflag=fullblock

これにより、2048ビットのエントロピーがクリアされ、バッファは1秒以内にサイズの半分以上に戻ります。

おすすめ記事