如何安装pandom:一个真正的随机数生成器为Linux

本教程适用于大于等于2.6.9的amd64 / x86_64 linux内核版本。 它解释了如何安装pandom :由ncomputers.org维护的定时抖动真随机数发生器

介绍

内置的Linux内核真随机数生成器在现代情况下提供了低吞吐量,例如:具有固态硬盘(SSD)和虚拟专用服务器(VPS)的个人计算机。

这个问题在linux实现中变得越来越流行,因为对于真正的随机数的需求不断增加,主要是通过不同的加密目的。

Pandom输出大约8位KiB / s熵64位/ 64位,与物理和虚拟环境兼容,并假设没有其他作为root用户运行的进程写入/ dev / random。

1安装pandom

1.1获得根访问权限

Pandom必须以root身份安装,如果需要,请运行此命令。

su -

1.2安装构建依赖项

为了下载和安装pandom,您需要:GNU 作为 sembler,GNU make ,GNU tar和GNU wget (最后两个通常已经安装)。 您可以随意卸载它们。

拱形系统

pacman -S binutils make

基于Debian的系统

apt-get install binutils make

基于红帽的系统

dnf install binutils make
yum install binutils make

基于SUSE的系统

zypper install binutils make

1.3下载并提取资料

这些命令使用wgettar从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.5确定init系统

在安装pandom之前,您需要知道系统使用哪个init软件。 如果以下命令输出运行的字,则表示您的系统正在使用systemd ,否则可能是系统正在使用init.d实现(例如:upstart,sysvinit)。 可能有一些例外,这些unix.stackexchange.com答案中有更多的信息。

systemctl is-system-running
running

1.6安装熊猫

一旦你知道你的linux实现使用哪个系统,那么你可以相应地安装pandom。

基于init.d的init系统(例如:upstart,sysvinit)

如果您的系统正在使用init.d实现(例如:upstart,sysvinit),请安装运行此命令的pandom。

make install-init.d

systemd作为init系统

如果您的系统正在使用systemd ,请安装运行此命令的pandom。

make install-systemd

2检查文件分析

在使用pandom进行加密之前,强烈建议在本教程前一部分中分析在安装过程中生成的checkme文件。 这个任务对于知道数字是否真的是随机的是有用的。 本节介绍如何使用ncomputers.org/ entropyarray来分析checkme文件:一个shell脚本,用于测试其输入的熵和串行相关性。

注意 :此分析可能会在另一台计算机上运行,​​如笔记本电脑或台式机。 例如:如果您在受限资源虚拟专用服务器(VPS)中安装pandom,则可以选择将checkme文件复制到个人计算机,以便在那里进行分析。

2.1获得根访问权限

Entropyarray必须以root身份安装,如果需要,请运行此命令。

su -

2.2安装构建依赖项

为了下载和安装entropyarray,您需要:GNU g ++编译器,GNU make ,GNU tar和GNU wget (最后两个通常已经安装)。 您可以随意卸载它们。

拱形系统

pacman -S gcc make

基于Debian的系统

apt-get install g++ make

基于红帽的系统

dnf install gcc-c++ make
yum install gcc-c++ make

基于SUSE的系统

zypper install gcc-c++ make

2.3下载并提取资料

这些命令使用wgettar从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.4安装entropyarray

注意 :关于-std = c ++ 11的错误意味着GNU g ++编译器版本不支持ISO C ++ 2011标准。 您可以尝试在支持它的另一个系统中编译ncomputers.org/ 和ncomputers.org/ rearray (例如:在最喜欢的linux发行版的较新版本中使用GNU g ++),然后使用系统中的make install安装编译的二进制文件想要运行entropyarray ,或跳过这一步,尽管强烈建议您在使用pandom进行任何加密目的之前分析checkme文件。

cd rearray; make install; cd ..
cd entropy; make install; cd ..
cd entropyarray; make install; cd ..

2.5分析检查文件

注意 :64 ubits / 64位pandom实现应该导致这个测试,熵高于15.977最大频率低于70 。 如果您的结果差异太大,您可能会尝试增加您的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 ..

3使用debian存储库安装

如果您希望在您的基于debian的系统上更新pandom,您可以选择使用ncomputers.org debian存储库安装/重新安装。

3.1获得根访问权限

以下debian软件包必须以root身份安装,如果需要,请运行此命令。

su -

3.2安装密钥环

这个debian软件包包括ncomputers.org debian存储库的公共密钥。

wget http://ncomputers.org/debian/keyring.deb
dpkg -i keyring.deb
rm keyring.deb

3.3安装源列表

这些debian软件包包括根据最新debian发行版(2017年)的ncomputers.org debian存储库的源列表。

注意 :还可以在/etc/apt/sources.list中写下以下注释行,而不是为您的debian发行版安装相应的debian软件包,但是如果以后这些资源发生变化,那么您需要更新它们手动

会议

#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.6安装熊猫

apt-get install pandom

4管理熊猫

安装pandom之后,您可能需要管理它。

4.1性能测试

Pandom每秒提供约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 之外 ,还有更多的测试,例如Ilja Gerhardt的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

systemd作为init系统

systemctl status random
systemctl start random
systemctl stop random
systemctl restart random

5增加不可预测性或性能

如果您想尝试增加您的pandom实现的不可预测性或性能,您可以尝试添加或删除CPU时间测量。

5.1编辑源文件

在源文件test.stRNG.s中随意添加或删除测量块。

#measurement block
mov $35,%rax
syscall
rdtsc
[...]

#measurement block
mov $35,%rax
syscall
rdtsc
[...]

5.2测试不可预测性

我们建议在将其用于加密目的之前,始终测试任何个性化的pandom实现。

make check

5.3安装个性化的pandom

如果您对结果感到满意,那么您可以安装个性化的pandom实现。

make install

附加信息和更新: http : //ncomputers.org/pandom

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏