自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何安裝pandom : 一個(gè)針對(duì)Linux的真隨機(jī)數(shù)生成器

系統(tǒng) Linux
本教程只針對(duì) amd64/x86_64 架構(gòu) Linux 內(nèi)核版本大于等于 2.6.9 的系統(tǒng)。本文將解釋如何安裝 pandom,這是一個(gè)由 ncomputers.org 維護(hù)的定時(shí)抖動(dòng)真隨機(jī)數(shù)生成器。

[[191582]]

本教程只針對(duì) amd64/x86_64 架構(gòu) Linux 內(nèi)核版本大于等于 2.6.9 的系統(tǒng)。本文將解釋如何安裝 pandom,這是一個(gè)由 ncomputers.org 維護(hù)的定時(shí)抖動(dòng)真隨機(jī)數(shù)生成器。

簡(jiǎn)介

在現(xiàn)在的計(jì)算機(jī)狀況下,比如說(shuō)配置了固態(tài)硬盤(SSD)的個(gè)人電腦和虛擬專用服務(wù)器(VPS)的環(huán)境中,Linux 內(nèi)核內(nèi)置的真隨機(jī)數(shù)發(fā)生器提供的吞吐量很低。

而出于各種不同的加密目的使得對(duì)真隨機(jī)數(shù)的需求持續(xù)增長(zhǎng),從而使得這個(gè)低吞吐量問(wèn)題在 Linux 實(shí)現(xiàn)中變得越來(lái)越嚴(yán)重。

在與上述相同的物理或者虛擬環(huán)境下,并假設(shè)沒有其它進(jìn)程以 root 身份向 /dev/random 進(jìn)行寫操作的話,64 ubits/64 bits 的 pandom 可以以 8 KiB/s 的速率生成隨機(jī)數(shù)。

1 pandom 的安裝

1.1 獲得 root 權(quán)限

Pandom 必須以 root 身份來(lái)安裝,所以在必要的時(shí)候請(qǐng)運(yùn)行如下命令:

  1. su - 

1.2 安裝編譯所需的依賴

為了下載并安裝 pandom,你需要 GNU as 匯編器、GNU make、GNU tar 和 GNU wget (***兩個(gè)工具通常已被安裝)。隨后你可以按照你的意愿卸載它們。

基于 Arch 的系統(tǒng):

  1. pacman -S binutils make 

基于 Debian 的系統(tǒng):

  1. apt-get install binutils make 

基于 Red Hat 的系統(tǒng):

  1. dnf install binutils make 
  2. yum install binutils make 

基于 SUSE 的系統(tǒng):

  1. zypper install binutils make 

1.3 下載并析出源碼

下面的命令將使用 wget 和 tar 從 ncomputers.org 下載 pandom 的源代碼并將它們解壓出來(lái):

  1. wget http://ncomputers.org/pandom.tar.gz 
  2. tar xf pandom.tar.gz 
  3. cd pandom/amd64-linux 

1.4 在安裝前進(jìn)行測(cè)試 (推薦)

這個(gè)被推薦的測(cè)試將花費(fèi)大約 8 分鐘的時(shí)間,它將檢查內(nèi)核支持情況并生成一個(gè)名為 checkme 的文件(在下一節(jié)中將被分析)。

  1. make check 

1.5 確定系統(tǒng)的初始化程序

在安裝 pandom 之前,你需要知道你的系統(tǒng)使用的是哪個(gè)初始化程序。假如下面命令的輸出中包含 running,則意味著你的系統(tǒng)使用了 systemd,否則你的系統(tǒng)則可能使用了一個(gè) init.d 的實(shí)現(xiàn)(例如 upstart、sysvinit)。

  1. systemctl is-system-running 
  2. running 

1.6 安裝 pandom

一旦你知道了你的系統(tǒng)使用何種 Linux 實(shí)現(xiàn),那么你就可以相應(yīng)地安裝 pandom 了。

使用基于 init.d 作為初始化程序(如: upstart、sysvinit)的系統(tǒng):

假如你的系統(tǒng)使用了一個(gè) init.d 的實(shí)現(xiàn)(如: upstart、sysvinit),請(qǐng)運(yùn)行下面的命令來(lái)安裝 pandom:

  1. make install-init.d 

以 systemd 作為初始化程序的系統(tǒng):

假如你的系統(tǒng)使用 systemd,則請(qǐng)運(yùn)行以下命令來(lái)安裝 pandom:

  1. make install-systemd 

2 checkme 文件的分析

在使用 pandom 進(jìn)行加密之前,強(qiáng)烈建議分析一下先前在安裝過(guò)程中生成的 checkme 文件。通過(guò)分析我們便可以知道用 pandom 生成的數(shù)是否真的隨機(jī)。本節(jié)將解釋如何使用 ncomputers.org 的 shell 腳本 entropyarray 來(lái)測(cè)試由 pandom 產(chǎn)生的輸出的熵及序列相關(guān)性。

注:整個(gè)分析過(guò)程也可以在另一臺(tái)電腦上完成,例如在一個(gè)筆記本電腦或臺(tái)式機(jī)上。舉個(gè)例子:假如你正在一個(gè)資源受到限制的 VPS 上安裝 pandom 程序,或許你更傾向于將 checkme 復(fù)制到自己的個(gè)人電腦中,然后再進(jìn)行分析。

2.1 獲取 root 權(quán)限

entropyarray 程序也必須以 root 身份來(lái)安裝,所以在必要時(shí)請(qǐng)運(yùn)行如下命令:

  1. su - 

2.2 安裝編譯所需的依賴

為了下載并安裝 entropyarray, 你需要 GNU g++ 編譯器、GNU make、GNU tar 和 GNU wget。在隨后你可以任意卸載這些依賴。

基于 Arch 的系統(tǒng):

  1. pacman -S gcc make 

基于 Debian 的系統(tǒng):

  1. apt-get install g++ make 

基于 Red Hat 的系統(tǒng):

  1. dnf install gcc-c++ make 
  2. yum install gcc-c++ make 

基于 SUSE 的系統(tǒng):

  1. zypper install gcc-c++ make 

2.3 下載并析出源碼

以下命令將使用 wget 和 tar 從 ncomputers.org 下載到 entropyarray 的源碼并進(jìn)行解壓:

  1. wget http://ncomputers.org/rearray.tar.gz 
  2. wget http://ncomputers.org/entropy.tar.gz 
  3. wget http://ncomputers.org/entropyarray.tar.gz 
  4. tar xf entropy.tar.gz 
  5. tar xf rearray.tar.gz 
  6. tar xf entropyarray.tar.gz 

2.4 安裝 entropyarray

注:如果在編譯過(guò)程中報(bào)有關(guān) -std=c++11 的錯(cuò)誤,則說(shuō)明當(dāng)前系統(tǒng)安裝的 GNU g++ 版本不支持 ISO C++ 2011 標(biāo)準(zhǔn),那么你可能需要在另一個(gè)支持該標(biāo)準(zhǔn)的系統(tǒng)中編譯 ncomputers.org/entropy 和 ncomputers.org/rearray (例如在一個(gè)你喜愛的較新的 Linux 發(fā)行版本中來(lái)編譯)。接著使用 make install 來(lái)安裝編譯好的二進(jìn)制文件,再接著你可能想繼續(xù)運(yùn)行 entropyarray 程序,或者跳過(guò)運(yùn)行該程序這一步驟,然而我還是建議在使用 pandom 來(lái)達(dá)到加密目地之前先分析一下 checkme 文件。

  1. cd rearray; make install; cd .. 
  2. cd entropy; make install; cd .. 
  3. cd entropyarray; make install; cd .. 

2.5 分析 checkme 文件

注:64 ubits / 64 bits 的 pandom 實(shí)現(xiàn)所生成的結(jié)果中熵應(yīng)該高于 15.977 且 max 字段低于 70。假如你的結(jié)果與之相差巨大,或許你應(yīng)該按照下面第 5 節(jié)介紹的那樣增加你的 pandom 實(shí)現(xiàn)的不可預(yù)測(cè)性。假如你跳過(guò)了生成 checkme 文件的那一步,你也可以使用其他的工具來(lái)進(jìn)行測(cè)試,例如 偽隨機(jī)數(shù)序列測(cè)試。

  1. entropyarray checkme 
  2. entropyarray in /tmp/tmp.mbCopmzqsg 
  3. 15.977339 
  4. min:12 
  5. med:32 
  6. max:56 
  7. 15.977368 
  8. min:11 
  9. med:32 
  10. max:58 
  11. 15.977489 
  12. min:11 
  13. med:32 
  14. max:59 
  15. 15.977077 
  16. min:12 
  17. med:32 
  18. max:60 
  19. 15.977439 
  20. min:8 
  21. med:32 
  22. max:59 
  23. 15.977374 
  24. min:13 
  25. med:32 
  26. max:60 
  27. 15.977312 
  28. min:12 
  29. med:32 
  30. max:67 

2.6 卸載 entropyarray (可選)

假如你打算不再使用 entropyarray,那么你可以按照你自己的需求卸載它:

  1. cd entropyarray; make uninstall; cd .. 
  2. cd entropy; make uninstall; cd .. 
  3. cd rearray; make uninstall; cd .. 

3 使用 debian 的軟件倉(cāng)庫(kù)來(lái)進(jìn)行安裝

假如你想在你基于 debian 的系統(tǒng)中讓 pandom 保持更新,則你可以使用 ncomputers.org 的 debian 軟件倉(cāng)庫(kù)來(lái)安裝或者重新安裝它。

3.1 獲取 root 權(quán)限

以下的 debian 軟件包必須以 root 身份來(lái)安裝,所以在必要時(shí)請(qǐng)運(yùn)行下面這個(gè)命令:

  1. su - 

3.2 安裝密鑰

下面的 debian 軟件包中包含 ncomputers.org debian 軟件倉(cāng)庫(kù)的公匙密鑰:

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

3.3 安裝軟件源列表

下面這些 debian 軟件包含有 ncomputers.org debian 軟件倉(cāng)庫(kù)的軟件源列表,這些軟件源列表對(duì)應(yīng)***的 debian 發(fā)行版本(截至 2017 年)。

注:你也可以將下面的以 # 注釋的行加入 /etc/apt/sources.list 文件中,而不是為你的 debian 發(fā)行版本安裝對(duì)應(yīng)的 debian 軟件包。但假如這些源在將來(lái)改變了,你就需要手動(dòng)更新它們。

Wheezy:

  1. #deb http://ncomputers.org/debian wheezy main 
  2. wget http://ncomputers.org/debian/wheezy.deb 
  3. dpkg -i wheezy.deb 
  4. rm wheezy.deb 

Jessie:

  1. #deb http://ncomputers.org/debian jessie main 
  2. wget http://ncomputers.org/debian/jessie.deb 
  3. dpkg -i jessie.deb 
  4. rm jessie.deb 

Stretch:

  1. #deb http://ncomputers.org/debian stretch main 
  2. wget http://ncomputers.org/debian/stretch.deb 
  3. dpkg -i stretch.deb 
  4. rm stretch.deb 

3.4 升級(jí)軟件源列表

一旦密鑰和軟件源列表安裝完成,則可以使用下面的命令來(lái)更新:

  1. apt-get update 

3.5 測(cè)試 pandom

測(cè)試完畢后,你可以隨意卸載下面的軟件包。

注:假如你已經(jīng)在你的 Linux 中測(cè)試了 pandom , 則你可以跳過(guò)這一步。

  1. apt-get install pandom-test 
  2. pandom-test 
  3. generating checkme file, please wait around 8 minutes ... 
  4. entropyarray in /tmp/tmp.5SkiYsYG3h 
  5. 15.977366 
  6. min:12 
  7. med:32 
  8. max:57 
  9. 15.977367 
  10. min:13 
  11. med:32 
  12. max:57 
  13. 15.977328 
  14. min:12 
  15. med:32 
  16. max:61 
  17. 15.977431 
  18. min:12 
  19. med:32 
  20. max:59 
  21. 15.977437 
  22. min:11 
  23. med:32 
  24. max:57 
  25. 15.977298 
  26. min:11 
  27. med:32 
  28. max:59 
  29. 15.977196 
  30. min:10 
  31. med:32 
  32. max:57 

3.6 安裝 pandom

  1. apt-get install pandom 

4 管理 pandom

在 pandom 安裝完成后,你可能想對(duì)它進(jìn)行管理。

4.1 性能測(cè)試

pandom 提供大約 8 kB/s 的隨機(jī)數(shù)生成速率,但它的性能可能根據(jù)環(huán)境而有所差異。

  1. dd if=/dev/random of=/dev/null bs=8 count=512 
  2. 512+0 records in 
  3. 512+0 records out 
  4. 4096 bytes (4.1 kB, 4.0 KiB) copied, 0.451253 s, 9.1 kB/s 

4.2 熵和序列相關(guān)性檢驗(yàn)

除了 ncomputers.org/entropyarray,還存在更多的測(cè)試,例如 Ilja Gerhardt 的 NIST 測(cè)試套件。

  1. entropyarray /dev/random 1M 

4.3 系統(tǒng)服務(wù)

pandom 還可以以系統(tǒng)服務(wù)的形式運(yùn)行。

基于 init.d 的初始化系統(tǒng)(如 upstart、sysvinit):

  1. /etc/init.d/random status 
  2. /etc/init.d/random start 
  3. /etc/init.d/random stop 
  4. /etc/init.d/random restart 

以 systemd 作為初始化程序的系統(tǒng):

  1. systemctl status random 
  2. systemctl start random 
  3. systemctl stop random 
  4. systemctl restart random 

5 增強(qiáng)不可預(yù)測(cè)性或者性能

假如你想增加你編譯的 pandom 程序的不可預(yù)測(cè)性或者性能,你可以嘗試增加或刪減 CPU 時(shí)間測(cè)量選項(xiàng)。

5.1 編輯源文件

請(qǐng)按照自己的意愿,在源文件 test.s 和 tRNG.s 中增加或者移除 measurement blocks 字段。

  1. #measurement block 
  2. mov $35,%rax 
  3. syscall 
  4. rdtsc 
  5. [...] 
  6. #measurement block 
  7. mov $35,%rax 
  8. syscall 
  9. rdtsc 
  10. [...] 

5.2 測(cè)試不可預(yù)測(cè)性

我們總是建議在使用個(gè)人定制的 pandom 實(shí)現(xiàn)來(lái)用于加密目地之前,先進(jìn)行一些測(cè)試。

  1. make check 

5.3 安裝定制的 pandom

假如你對(duì)測(cè)試的結(jié)果很滿意,你就可以使用下面的命令來(lái)安裝你的 pandom 實(shí)現(xiàn)。

  1. make install 

更多額外信息及更新詳見 http://ncomputers.org/pandom 。

(題圖:Pixabay,CC0)

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2024-11-01 15:51:06

2022-06-17 11:04:46

生成器計(jì)算

2014-07-23 10:07:34

2017-05-29 09:56:25

2018-11-19 10:10:51

Python數(shù)據(jù)庫(kù)隨機(jī)生成器

2021-08-12 17:13:28

漏洞IoT設(shè)備網(wǎng)絡(luò)攻擊

2020-09-08 11:21:48

SQL生成器跨庫(kù)

2022-10-17 18:29:55

2019-01-24 09:46:38

PelicanPython生成器

2023-08-08 10:15:18

2024-05-29 09:05:17

2024-10-07 08:52:59

分布式系統(tǒng)分布式 IDID

2022-05-22 13:59:27

Go編程語(yǔ)言

2024-12-09 00:00:03

Vue3項(xiàng)目表單

2009-12-02 17:01:01

PHP隨機(jī)數(shù)rand()

2020-12-20 10:04:44

Qrcode二維碼生成器QR Code

2022-08-28 19:10:37

JavaScript二維碼源碼

2022-09-07 08:37:34

DCGAN圖片AI

2023-02-07 16:11:41

2022-07-25 10:27:36

背景生成器工具前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)