このチュートリアルは、2.6.9以降のamd64 /x86_64Linuxカーネルバージョンを対象としています。 pandomのインストール方法について説明します。ncomputers.orgによって管理されているタイミングジッターの真の乱数ジェネレーター
組み込みのLinuxカーネルの真の乱数ジェネレーターは、ソリッドステートドライブ(SSD)や仮想プライベートサーバー(VPS)を備えたパーソナルコンピューターなど、現代の状況ではスループットが低くなります。
この問題は、主にさまざまな暗号化の目的で真の乱数の必要性が継続的に高まっているため、Linuxの実装で一般的になりつつあります。
Pandomは、64ビット/64ビットの約8KiB / sのエントロピーを出力し、物理環境および仮想環境と互換性があり、rootユーザーとして実行されている他のプロセスが/ dev/randomに書き込むことはないと想定しています。
1パンドムのインストール
1.1ルートアクセスを取得する
Pandomはrootとしてインストールする必要があります。必要に応じて、このコマンドを実行してください。
su -
1.2ビルドの依存関係をインストールする
pandomをダウンロードしてインストールするには、GNU as が必要です。 sembler、GNU make 、GNU tar およびGNUwget (最後の2つは通常すでにインストールされています)。後で自由にアンインストールできます。
pacman -S binutils make
apt-get install binutils make
RedHatベースのシステム
dnf install binutils make
yum install binutils make
SUSEベースのシステム
zypper install binutils make
1.3ソースのダウンロードと抽出
これらのコマンドは、 wget を使用して、ncomputers.orgからpandomのソースをダウンロードして抽出します。 およびタール 。
wget http://ncomputers.org/pandom.tar.gz
tar xf pandom.tar.gz
cd pandom/amd64-linux
1.4インストール前のテスト(推奨)
この推奨テストには約8分かかります。カーネルサポートをチェックし、 checkmeという名前のファイルを生成します (次のセクションで分析します。)
make check
1.5initシステムを決定する
pandomをインストールする前に、システムがどのinitソフトウェアを使用しているかを知る必要があります。次のコマンドがrunningという単語を出力する場合 、システムが systemdを使用していることを意味します 、そうでない場合は、システムが init.dを使用している可能性があります 実装(例:upstart、sysvinit)。いくつかの例外があるかもしれません。これらのunix.stackexchange.comの回答に詳細があります。
systemctl is-system-running
running
1.6pandomのインストール
Linux実装で使用されているシステムがわかれば、それに応じてpandomをインストールできます。
init.dベースのinitシステム(例:upstart、sysvinit)
システムがinit.dを使用している場合は、このコマンドを実行してpandomをインストールします 実装(例:upstart、sysvinit)。
make install-init.d
initシステムとしてのsystemd
システムでsystemdを使用している場合は、このコマンドを実行してpandomをインストールします 。
make install-systemd
2チェックミーファイルの分析
暗号化の目的でpandomを使用する前に、 checkmeを分析することを強くお勧めします。 このチュートリアルの前のセクションのインストールプロセス中に生成されたファイル。このタスクは、数字が本当にランダムであるかどうかを知るのに役立ちます。このセクションでは、チェックミーを分析する方法について説明します ncomputers.org/ entropyarrayを使用したファイル :入力のエントロピーとシリアル相関をテストするシェルスクリプト。
注 :この分析は、ラップトップまたはデスクトップコンピューターなどの別のコンピューターで実行される場合があります。例:リソースが制限された仮想プライベートサーバー(VPS)にpandomをインストールする場合は、 checkmeをコピーすることを選択できます。 そこで分析するために、パソコンにファイルします。
EntropyOnlineTesterを使用することもできます 。
2.1ルートアクセスを取得する
Entropyarrayはrootとしてインストールする必要があります。必要に応じて、このコマンドを実行してください。
su -
2.2ビルドの依存関係をインストールする
entropyarrayをダウンロードしてインストールするには、GNU g ++が必要です。 コンパイラ、GNU make 、GNU tar およびGNUwget (最後の2つは通常すでにインストールされています)。後で自由にアンインストールできます。
pacman -S gcc make
apt-get install g++ make
RedHatベースのシステム
dnf install gcc-c++ make
yum install gcc-c++ make
SUSEベースのシステム
zypper install gcc-c++ make
2.3ソースのダウンロードと抽出
これらのコマンドは、 wget を使用して、ncomputers.orgからentropyarrayのソースをダウンロードして抽出します。 およびタール 。
wget http://ncomputers.org/rearray.tar.gz
wget http://ncomputers.org/entropy.tar.gz
wget http://ncomputers.org/entropyarray.tar.gz
tar xf entropy.tar.gz
tar xf rearray.tar.gz
tar xf entropyarray.tar.gz
2.4entropyarrayのインストール
注 :-std =c ++ 11に関するエラーは、GNU g ++を意味します コンパイラバージョンはISOC++2011標準をサポートしていません。 ncomputers.org/エントロピーをコンパイルしてみてください およびncomputers.org/rearray それをサポートする別のシステム(例:お気に入りのLinuxディストリビューションの新しいバージョンのGNU g ++)で、 make installを使用してコンパイル済みバイナリをインストールします。 entropyarrayを実行するシステムで 、または checkme を分析することを強くお勧めしますが、この手順をスキップしてください 暗号化の目的でpandomを使用する前にファイルしてください。
cd rearray; make install; cd ..
cd entropy; make install; cd ..
cd entropyarray; make install; cd ..
2.5checkmeファイルの分析
注 :64 ubits / 64ビットのpandom実装は、 15.977を超えるエントロピーでこのテストを実行する必要があります および最大 70未満の頻度 。結果が大きく異なる場合は、このチュートリアルの5番目のセクションで説明されているように、pandomの実装の予測不可能性を高めようとすることがあります。最後のステップをスキップした場合は、疑似乱数シーケンステストなどの他のツールを使用できます。
entropyarray checkme
entropyarray in /tmp/tmp.mbCopmzqsg
15.977339
min:12
med:32
max:56
15.977368
min:11
med:32
max:58
15.977489
min:11
med:32
max:59
15.977077
min:12
med:32
max:60
15.977439
min:8
med:32
max:59
15.977374
min:13
med:32
max:60
15.977312
min:12
med:32
max:67
2.6 entropyarrayのアンインストール(オプション)
entropyarrayをこれ以上使用しない場合は、自由にアンインストールすることをお勧めします。
cd entropyarray; make uninstall; cd ..
cd entropy; make uninstall; cd ..
cd rearray; make uninstall; cd ..
3debianリポジトリを使用したインストール
Debianベースのシステムでpandomを最新の状態に保ちたい場合は、ncomputers.orgdebianリポジトリを使用してインストール/再インストールすることを選択できます。
3.1ルートアクセスを取得する
以下のDebianパッケージはrootとしてインストールする必要があります。必要に応じて、このコマンドを実行してください。
su -
3.2キーリングのインストール
このdebianパッケージには、ncomputers.orgdebianリポジトリの公開鍵が含まれています。
wget http://ncomputers.org/debian/keyring.deb
dpkg -i keyring.deb
rm keyring.deb
3.3ソースリストのインストール
これらのdebianパッケージには、最新のdebianディストリビューション(2017年)に従ったncomputers.orgdebianリポジトリのソースリストが含まれています。
注 :以下のコメント行を /etc/apt/sources.listに書き込むこともできます。 、debianディストリビューション用にそれぞれのdebianパッケージをインストールする代わりに、これらのソースが将来変更される場合は、手動で更新する必要があります。
Wheezy
#deb http://ncomputers.org/debian wheezy main
wget http://ncomputers.org/debian/wheezy.deb
dpkg -i wheezy.deb
rm wheezy.deb
#deb http://ncomputers.org/debian jessie main
wget http://ncomputers.org/debian/jessie.deb
dpkg -i jessie.deb
rm jessie.deb
#deb http://ncomputers.org/debian stretch main
wget http://ncomputers.org/debian/stretch.deb
dpkg -i stretch.deb
rm stretch.deb
3.4ソースリストの更新
キーリングとソースのリストがインストールされたら。
apt-get update
3.5パンダムのテスト
テストが完了したら、以下のパッケージを自由にアンインストールできます。
注 :Linux実装ですでにpandomをテストしている場合は、この手順をスキップできます。
apt-get install pandom-test
pandom-test
generating checkme file, please wait around 8 minutes ...
entropyarray in /tmp/tmp.5SkiYsYG3h
15.977366
min:12
med:32
max:57
15.977367
min:13
med:32
max:57
15.977328
min:12
med:32
max:61
15.977431
min:12
med:32
max:59
15.977437
min:11
med:32
max:57
15.977298
min:11
med:32
max:59
15.977196
min:10
med:32
max:57
3.6pandomのインストール
apt-get install pandom
4パンダムの管理
パンダムをインストールした後、それを管理することをお勧めします。
4.1パフォーマンステスト
Pandomは1秒あたり約8キロバイトを提供しますが、そのパフォーマンスは環境によって異なる場合があります。
dd if=/dev/random of=/dev/null bs=8 count=512
512+0 records in
512+0 records out
4096 bytes (4.1 kB, 4.0 KiB) copied, 0.451253 s, 9.1 kB/s
4.2エントロピーとシリアル相関テスト
ncomputers.org/entropyarrayの他に 、さらに多くのテストがあります。たとえば、IljaGerhardtによるNISTテストスイートです。
entropyarray /dev/random 1M
4.3システムサービス
Pandomはシステムサービスとして実行されます。
init.dベースのinitシステム(例:upstart、sysvinit)
/etc/init.d/random status
/etc/init.d/random start
/etc/init.d/random stop
/etc/init.d/random restart
initシステムとしてのsystemd
systemctl status random
systemctl start random
systemctl stop random
systemctl restart random
5予測不可能性またはパフォーマンスの向上
パンダム実装の予測不可能性またはパフォーマンスを向上させたい場合は、CPU時間の測定値を追加または削除してみてください。
5.1ソースファイルの編集
ソースファイル内test.s およびtRNG.s 測定ブロックを自由に追加または削除します。
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
5.2予測不可能性のテスト
暗号化の目的で使用する前に、パーソナライズされたpandomの実装を常にテストすることをお勧めします。
make check
5.3パーソナライズされたパンダムをインストールする
結果に満足している場合は、パーソナライズされたpandom実装をインストールできます。
make install
追加情報と更新:http://ncomputers.org/pandom