Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.4. Random number Generator の使用

簡単に破損できない安全な暗号鍵を生成できるようにするには、ランダムな数字のソースが必要です。通常は、数字がランダムなほど、一意の鍵を取得する可能性が高くなります。通常、乱数を生成するエントロピー は、コンピューティング環境から「noise」またはハードウェア 乱数ジェネレーター を使用して取得されます。
rng-tools パッケージの一部である rngd デーモンは、環境侵害とハードウェア乱数ジェネレーターの両方を使用してエントロピーを抽出できます。デーモンは、ランダム性のソースによって提供されたデータが十分にランダムなものかどうかをチェックしてから、カーネルの random-number エントロピープールに保存します。生成されるランダムな数字は /dev/random、およびの /dev/urandom 文字デバイスから利用できます。
/dev/random との違いは、以前のデバイス /dev/urandom がブロックデバイスであることです。つまり、エントロピーの量が、正しくランダムな出力を生成するのに不十分であると判断すると、数字を提供しなくなります。逆に /dev/urandom、ブロック以外のソースで、カーネルのエントロピープールを再読み込みし、擬似アンダークラウド番号を無制限に提供でき、エントロピーが少なくなります。/dev/urandom したがって、は長期暗号鍵の作成に使用しないでください。
rng-tools パッケージをインストールするには、root で以下のコマンドを実行します。
~]# yum install rng-tools
rngd デーモンを起動するには、root で以下のコマンドを実行します。
~]# service rngd start
デーモンのステータスをクエリーするには、以下のコマンドを使用します。
~]# service rngd status
オプションのパラメーターを指定して rngd デーモンを起動するには、直接実行します。たとえば、(以外の /dev/hwrandom)random-number 入力の代替ソースを指定するには、以下のコマンドを使用します。
~]# rngd --rng-device=/dev/hwrng
上記のコマンドは、ランダムな数字が読み取られるデバイス /dev/hwrng として、で rngd デーモンを起動します。同様に、-o (または --random-device)オプションを使用して、ランダムな出力(デフォルト以外の /dev/random)のカーネルデバイスを選択できます。以下を参照してください。 rngd(8) 利用可能なすべてのオプションの一覧の man ページです。
rng-tools パッケージには、データのランダム性を確認するために使用できる rngtest ユーティリティーも含まれます。の出力のランダム性レベルをテストするには /dev/random、以下のように rngtest ツールを使用します。
~]$ cat /dev/random | rngtest -c 1000
rngtest 2
Copyright (c) 2004 by Henrique de Moraes Holschuh
This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

rngtest: starting FIPS tests...
rngtest: bits received from input: 20000032
rngtest: FIPS 140-2 successes: 1000
rngtest: FIPS 140-2 failures: 0
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 0
rngtest: FIPS 140-2(2001-10-10) Long run: 1
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=308.697; avg=623.670; max=730.823)Kibits/s
rngtest: FIPS tests speed: (min=51.971; avg=137.737; max=167.311)Mibits/s
rngtest: Program run time: 31461595 microseconds
rngtest ツールの出力で表示される多くの障害は、テストされたデータのランダム性が最適で、依存しないことを示しています。以下を参照してください。 rngtest(1) rngtest ユーティリティーで利用可能なオプションの一覧の man ページです。