3.2. Existing Hardware Can Be Used For Randomness (既存ハードウェアのランダム性への利用)
3.2. Existing Hardware Can Be Used For Randomness (既存ハードウェアのランダム性への利用)
以下に説明するように, 多くのコンピュータには, 注意を払えば真にランダムな量を生成するために使用できるハードウェアが付属しています。
3.2.1. Using Existing Sound/Video Input (既存のサウンド/ビデオ入力の使用)
多くのコンピュータは, マイクからのサウンドやカメラからのビデオ入力などの実世界のアナログソースをデジタル化する入力を備えて構築されています。ソースが接続されていないサウンドデジタイザーからの "入力", またはレンズキャップをしたカメラからの入力は, 本質的に熱雑音です。システムが何かを検出するのに十分なゲインを持っている場合, そのような入力は合理的に高品質のランダムビットを提供できます。この方法は, ハードウェア実装に非常に依存します。
たとえば, 一部の UNIX ベースのシステムでは, マイクロフォンジャックに何も接続されていない状態, またはマイクロフォンが低レベルのバックグラウンドノイズのみを受信している状態で, /dev/audio デバイスから読み取ることができます。そのようなデータは本質的にランダムノイズですが, ハードウェア障害の場合に備えて確認なしに信頼すべきではなく, スキュー除去する必要があります。
このアプローチをスキュー除去のための圧縮と組み合わせる (セクション 4 を参照) と, UNIX スタイルのコマンドラインで大量の中品質のランダムデータを生成できます:
cat /dev/audio | compress - >random-bits-file
このタイプのランダム性ソースの詳細な検討は [TURBID] に記載されています。
3.2.2. Using Existing Disk Drives (既存のディスクドライブの使用)
ディスクドライブには, カオス的な空気の乱流によって回転速度に小さなランダムな変動があります [DAVIS, Jakobsson]。低レベルのディスクシーク時間計測の追加により, このランダム性を含む一連の測定値が生成されます。このようなデータは通常高度に相関しているため, 以下のセクション 5.2 で説明されているように, 重要な処理が必要です。それにもかかわらず, 10 年前の実験では, そのような処理により, 当時の遅いコンピュータ上の遅いディスクドライブでさえ, 1 分あたり 100 ビット以上の優れたランダムデータを簡単に生成できることが示されました。
プロセッサ速度の増加はすべて, ディスクの動きをタイミングできる解像度を向上させるか, ディスクシークの速度を向上させ, この技術で可能なランダムビット生成速度を向上させます。このペーパーの時点で最新のハードウェアを使用すると, ランダムビット生成のより典型的な速度は 1 秒あたり 10,000 ビットを超えます。この技術は, 多くのオペレーティングシステムライブラリに含まれる乱数生成器で使用されています。
注意: ディスクコントローラーにキャッシュメモリが含まれている場合, キャッシュヒットを表す非常に短いシーク時間を単純に無視すれば, この技術への影響はほとんどありません。