генератор случайных чисел

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: генератор случайных чисел

Непрочитанное сообщение Olej » 14 май 2021, 15:04

Olej писал(а):
14 май 2021, 14:38
Сервер DELL PowerEdge R420

Код: Выделить всё

olej@R420:~/2021/OWN_TEST.codes/thread$ aptitude search Havege*
p   haveged                                                                 - Linux entropy source using the HAVEGE algorithm                                   
p   libhavege-dev                                                           - entropy source using the HAVEGE algorithm - development files                     
p   libhavege1                                                              - entropy source using the HAVEGE algorithm - shared library                        
p   libhavege1-dbg                                                          - entropy source using the HAVEGE algorithm - debug symbols                         

Код: Выделить всё

olej@R420:~/2021/OWN_TEST.codes/thread$ aptitude show haveged
Пакет: haveged                                   
Версия: 1.9.1-6ubuntu1
Состояние: не установлен
Приоритет: дополнительный
Раздел: universe/misc
Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Архитектура: amd64
Размер в распакованном виде: 78,8 k
Зависит: lsb-base (>= 3.2-14), libc6 (>= 2.15), libhavege1 (>= 1.9.0)
Предлагает: apparmor
Описание: Linux entropy source using the HAVEGE algorithm
 haveged is a userspace entropy daemon which is not dependent upon the standard mechanisms for harvesting randomness for the system entropy pool. This is
 important in systems with high entropy needs or limited user interaction (e.g. headless servers). 
 
 haveged uses HAVEGE (HArdware Volatile Entropy Gathering and Expansion) to maintain a 1M pool of random bytes used to fill /dev/random whenever the supply of
 random bits in dev/random falls below the low water mark of the device. 
 
 More information about HAVEGE is available at http://www.irisa.fr/caps/projects/hipsor/
Домашняя страница: http://issihosts.com/haveged/

Код: Выделить всё

olej@R420:~/2021/OWN_TEST.codes/thread$ sudo apt install haveged
[sudo] пароль для olej:       
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libhavege1
Следующие НОВЫЕ пакеты будут установлены:
  haveged libhavege1
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 50,4 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 196 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://mirror.mirohost.net/ubuntu focal/universe amd64 libhavege1 amd64 1.9.1-6ubuntu1 [22,0 kB]
Пол:2 http://mirror.mirohost.net/ubuntu focal/universe amd64 haveged amd64 1.9.1-6ubuntu1 [28,4 kB]
Получено 50,4 kB за 0с (317 kB/s) 
Выбор ранее не выбранного пакета libhavege1:amd64.
(Чтение базы данных … на данный момент установлено 353793 файла и каталога.)
Подготовка к распаковке …/libhavege1_1.9.1-6ubuntu1_amd64.deb …
Распаковывается libhavege1:amd64 (1.9.1-6ubuntu1) …
Выбор ранее не выбранного пакета haveged.
Подготовка к распаковке …/haveged_1.9.1-6ubuntu1_amd64.deb …
Распаковывается haveged (1.9.1-6ubuntu1) …
Настраивается пакет libhavege1:amd64 (1.9.1-6ubuntu1) …
Настраивается пакет haveged (1.9.1-6ubuntu1) …
Created symlink /etc/systemd/system/default.target.wants/haveged.service → /lib/systemd/system/haveged.service.
Обрабатываются триггеры для systemd (245.4-4ubuntu3.6) …
Обрабатываются триггеры для man-db (2.9.1-1) …
Обрабатываются триггеры для libc-bin (2.31-0ubuntu9.2) …

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: генератор случайных чисел

Непрочитанное сообщение Olej » 14 май 2021, 15:12

Olej писал(а):
14 май 2021, 15:04

Код: Выделить всё

olej@R420:~/2021/OWN_TEST.codes/thread$ sudo apt install haveged
[sudo] пароль для olej:
Вот так было до установки haveged:

Код: Выделить всё

olej@R420:~$ time cat /dev/random | rngtest -c10
rngtest 5
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: 200032
rngtest: FIPS 140-2 successes: 10
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: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=77.585; avg=775.819; max=19065776.930)bits/s
rngtest: FIPS tests speed: (min=98.826; avg=128.875; max=138.214)Mibits/s
rngtest: Program run time: 257793833 microseconds

real	4m17,797s
user	0m0,007s
sys	0m0,030s
А так стало после:

Код: Выделить всё

olej@R420:~$ cat /dev/random | rngtest -c100
rngtest 5
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: 2000032
rngtest: FIPS 140-2 successes: 100
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: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=1.915; avg=12.215; max=15.855)Mibits/s
rngtest: FIPS tests speed: (min=51.830; avg=124.298; max=146.719)Mibits/s
rngtest: Program run time: 171815 microseconds
P.S. Про haveged и то как тестировать качество энтропии - более-менее внятное описание: ИСПОЛЬЗОВАНИЕ ПРОСТОГО ДЕМОНА ЭНТРОПИИ HAVEGED

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: генератор случайных чисел

Непрочитанное сообщение Olej » 14 май 2021, 15:15

Olej писал(а):
27 сен 2018, 15:33
Теперь всё летает "в лёт"!
Устанавливаю на постоянкку (в автозагрузку):

Код: Выделить всё

olej@R420:~$ sudo systemctl status haveged
● haveged.service - Entropy daemon using the HAVEGE algorithm
     Loaded: loaded (/lib/systemd/system/haveged.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-05-14 15:04:50 EEST; 8min ago
       Docs: man:haveged(8)
             http://www.issihosts.com/haveged/
   Main PID: 111899 (haveged)
      Tasks: 1 (limit: 115842)
     Memory: 3.7M
     CGroup: /system.slice/haveged.service
             └─111899 /usr/sbin/haveged --Foreground --verbose=1 -w 1024

мая 14 15:04:50 R420 systemd[1]: Started Entropy daemon using the HAVEGE algorithm.
мая 14 15:04:50 R420 haveged[111899]: haveged starting up
мая 14 15:04:50 R420 haveged[111899]: haveged: ver: 1.9.1; arch: x86; vend: GenuineIntel; build: (gcc 8.3.0 ITV); collect: 128K
мая 14 15:04:50 R420 haveged[111899]: haveged: cpu: (L4 VC); data: 32K (L4 V); inst: 32K (L4 V); idx: 24/40; sz: 31410/52825
мая 14 15:04:50 R420 haveged[111899]: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B):  last entropy estimate 7.99877
мая 14 15:04:50 R420 haveged[111899]: haveged: fills: 0, generated: 0

Код: Выделить всё

olej@R420:~$ sudo systemctl enable haveged
Synchronizing state of haveged.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable haveged

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

генератор случайных чисел

Непрочитанное сообщение Olej » 11 апр 2023, 12:10

Код: Выделить всё

olej@R420:~/2023/ACCOUNTS/MAIL$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 21.1
Release:	21.1
Codename:	vera

Код: Выделить всё

olej@R420:~$ sudo systemctl status haveged
[sudo] пароль для olej:       
● haveged.service - Entropy Daemon based on the HAVEGE algorithm
     Loaded: loaded (/lib/systemd/system/haveged.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-04-11 09:57:11 EEST; 1h 30min ago
       Docs: man:haveged(8)
             http://www.issihosts.com/haveged/
   Main PID: 1105 (haveged)
      Tasks: 1 (limit: 115786)
     Memory: 4.2M
        CPU: 340ms
     CGroup: /system.slice/haveged.service
             └─1105 /usr/sbin/haveged --Foreground --verbose=1

апр 11 09:57:11 R420 systemd[1]: Started Entropy Daemon based on the HAVEGE algorithm.
апр 11 09:57:12 R420 haveged[1105]: haveged: command socket is listening at fd 3
апр 11 09:57:12 R420 haveged[1105]: haveged starting up
апр 11 09:57:12 R420 haveged[1105]: haveged: ver: 1.9.14; arch: x86; vend: GenuineIntel; build: (gcc 11.2.0 ITV); collect: 128K
апр 11 09:57:12 R420 haveged[1105]: haveged: cpu: (L4 VC); data: 32K (L4 V); inst: 32K (L4 V); idx: 23/40; sz: 31288/55167
апр 11 09:57:12 R420 haveged[1105]: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B):  last entropy estimate 7.99819
апр 11 09:57:12 R420 haveged[1105]: haveged: fills: 0, generated: 0

Код: Выделить всё

olej@R420:~$ cat /dev/random | rngtest -c100000
rngtest 5
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: 2000000032
rngtest: FIPS 140-2 successes: 99914
rngtest: FIPS 140-2 failures: 86
rngtest: FIPS 140-2(2001-10-10) Monobit: 12
rngtest: FIPS 140-2(2001-10-10) Poker: 13
rngtest: FIPS 140-2(2001-10-10) Runs: 42
rngtest: FIPS 140-2(2001-10-10) Long run: 19
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=70.643; avg=13694.249; max=19073.486)Mibits/s
rngtest: FIPS tests speed: (min=72.248; avg=160.287; max=168.792)Mibits/s
rngtest: Program run time: 12047079 microseconds
99914 успешных из 100000 - 0,086% "брака".

Значение качества и скорости генераторов случайных чисел возрастает годо от года: и всё что связано с шифрованием TLS/SSL, и всё что связано с майнингом в криптовалютных инструментах, и генерация надёжных IPv6 адресов в автономных mesh-сетях (майнинг IPv6 для сети Yggdrasil).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

генератор случайных чисел

Непрочитанное сообщение Olej » 10 сен 2023, 12:35

К вопросу скорости генераторов случайных чисел...
Это особенно проявляется в скорости загрузки больших блокчейнов в криптовалютах (да и вообще во всех задачах криптографии):
EmerCoin / EMC
Olej писал(а):
09 сен 2023, 21:43
время полной закачки блокчейна, "от нуля"

Здесь и далее развернулась дискуссия...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

генератор случайных чисел

Непрочитанное сообщение Olej » 10 сен 2023, 12:38

Olej писал(а):
10 сен 2023, 12:35
К вопросу скорости генераторов случайных чисел...
Обсуждение этого вопроса от 2017 года: Dude necessary time to do dd if=/dev/urandom of=/dev/sdx...
... и того, что это очень зависит от типа используемого процессора:
maybe it's an AMD thing? Ryzen 7 1800x with an NVMe drive only getting around 75MB/s
Любопытно...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

генератор случайных чисел

Непрочитанное сообщение Olej » 10 сен 2023, 12:41

Olej писал(а):
10 сен 2023, 12:38
Любопытно...

Код: Выделить всё

olej@R420:~$ grep 'model name' /proc/cpuinfo | tail -n1
model name	: Intel(R) Xeon(R) CPU E5-2470 v2 @ 2.40GHz

Код: Выделить всё

olej@R420:~$ grep 'model name' /proc/cpuinfo | wc -l
40

Код: Выделить всё

olej@R420:~$ time dd if=/dev/urandom of=/dev/null bs=1MB count=1000
1000+0 записей получено
1000+0 записей отправлено
1000000000 байт (1,0 GB, 954 MiB) скопирован, 3,94881 s, 253 MB/s

real	0m3,952s
user	0m0,001s
sys	0m3,945s

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

генератор случайных чисел

Непрочитанное сообщение Olej » 10 сен 2023, 12:46

Olej писал(а):
10 сен 2023, 12:38
Любопытно...

Код: Выделить всё

olej@esprimop420:~$ grep 'model name' /proc/cpuinfo | tail -n1 ; grep 'model name' /proc/cpuinfo | wc -l
model name	: Intel(R) Xeon(R) CPU E3-1240 v3 @ 3.40GHz
8

Код: Выделить всё

olej@esprimop420:~$ time dd if=/dev/urandom of=/dev/null bs=1MB count=1000
1000+0 records in
1000+0 records out
1000000000 bytes (1,0 GB, 954 MiB) copied, 2,20923 s, 453 MB/s

real	0m2,212s
user	0m0,000s
sys	0m2,211s

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

генератор случайных чисел

Непрочитанное сообщение Olej » 10 сен 2023, 12:48

Olej писал(а):
10 сен 2023, 12:38
Любопытно...

Код: Выделить всё

olej@nvidia:~$ grep 'model name' /proc/cpuinfo | tail -n1 ; grep 'model name' /proc/cpuinfo | wc -l
model name	: Intel(R) Core(TM) i5 CPU         660  @ 3.33GHz
4

Код: Выделить всё

olej@nvidia:~$ time dd if=/dev/urandom of=/dev/null bs=1MB count=1000
1000+0 записей получено
1000+0 записей отправлено
1000000000 байт (1,0 GB, 954 MiB) скопирован, 3,21744 s, 311 MB/s

real	0m3,220s
user	0m0,000s
sys	0m3,219s

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

генератор случайных чисел

Непрочитанное сообщение Olej » 10 сен 2023, 12:53

Olej писал(а):
10 сен 2023, 12:38
Любопытно...

Код: Выделить всё

olej@nvme:~$ grep 'model name' /proc/cpuinfo | tail -n1 ; grep 'model name' /proc/cpuinfo | wc -l
model name	: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
4

Код: Выделить всё

olej@nvme:~$ time dd if=/dev/urandom of=/dev/null bs=1MB count=1000
1000+0 записей получено
1000+0 записей отправлено
1000000000 байт (1,0 GB, 954 MiB) скопирован, 2,42313 s, 413 MB/s

real	0m2,433s
user	0m0,009s
sys	0m2,418s

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя