Інструмент для вимірювання якості ентропії?


26

Чи доступний інструмент для систем Linux, який може виміряти "якість" ентропії в системі?

Я знаю, як рахувати ентропію:

cat /proc/sys/kernel/random/entropy_avail

І я знаю, що деякі системи мають "хороші" джерела ентропії (апаратні ентропійні ключі), а деякі ні (віртуальні машини).

Але чи є інструмент, який може надати метрику щодо "якості" ентропії в системі?


Мене цікавить, чому ви хочете обчислити ентропію системи?
whoami

Відповіді:


26

http://www.fourmilab.ch/random/ працює на мене.

sudo apt-get install ent
head -c 1M /dev/urandom > /tmp/out
ent /tmp/out

4
Класний інструмент. Ви можете перевірити пристрій лише в одній команді за допомогоюdd if=/dev/urandom bs=1M count=1 | ent
l0b0

7
Зауважте, що запускати оцінювач ентропії /dev/urandomповністю не даремно. /dev/urandomє результатом криптовалютного PRNG, і оцінювач ентропії завжди даватиме повну оцінку будь-якому напівпристойному PRNG. Потрібно запустити оцінювач ентропії в безумовному джерелі ентропії , який Linux не виставляє за межами ядра. Cc @DustinKirkland
"SO- перестань бути злим"

@Gilles немає способу?
Феліпе

@FelipeMicaroniLalli Нічого не робити? Оцініть ентропію за результатами /dev/urandom? Так. Вихід /dev/urandom(або /dev/randomтой самий випуск) - це вихід криптовалютного PRNG, який завжди матиме найвищі оцінки для оцінки ентропії. Якщо ви хочете оцінити ентропію, вам потрібно копатись у ядрі, з’ясувати, що воно використовує для джерел ентропії, і вимірювати ДУЖЕ довго.
Жил 'SO- перестань бути злим'

1
@FelipeMicaroniLalli Ні, джерело ентропії не впливає на PRNG способом, який можна виміряти. Це досить не тематично для Unix та Linux, але я знаю, що я бачив, як це обговорювалося на криптографії , спробуйте пошукати там теги [ентропія] та [випадковість].
Жил "ТАК - перестань бути злим"

6

"ent" - відмінний інструмент командного рядка для простої та швидкої оцінки ентропії.

Я використовував це, щоб допомогти дізнатися, як працюють лінійні конгрурентні генератори. Але якщо під "вимірюванням ентропії" ви маєте на увазі "вимірювання випадковості" ... проблема стає складнішою.

Для більш надійного тесту на випадковість слід перевірити набір тестів dieharder: http://www.phy.duke.edu/~rgb/General/dieharder.php

Використовувати це не так просто, як "ent", але він набагато суворіший.

Для більш глибокого вивчення «Шифр Ріттер» також пропонує хороший вибір посилань:

http://www.ciphersbyritter.com/NETLINKS.HTM#RandomnessLinks


3

Інструменти можуть коли-небудь дати вам верхню межу ентропії. Для більшості застосувань, зокрема використання, пов’язаних із безпекою, вас більше цікавить нижня межа.

Обчислити ентропію довільного файлу математично неможливо, тому не може бути інструменту, який би це зробив.

Я можу легко написати генератор файлів, який генерує дуже низькі файли ентропії, але все-таки пройдуть ваші тести на ентропію. Просто використовуйте криптовалюту PRNG з невеликим насінням.


0

Ви можете використовувати Binwalk з -Eопцією:

# binwalk -E data

DECIMAL       HEXADECIMAL     ENTROPY
--------------------------------------------------------------------------------
0             0x0             Falling entropy edge (0.000000)
2443264       0x254800        Rising entropy edge (0.988510)

Ви можете отримати вихідний код з його сховища GitHub .


0

ncomputers.org/entropyarray виконує швидший тест на ентропію, ніж entтести серійної кореляції 16, 32, 64, 128, 256 та 512 біт.

за допомогою інструменту ncomputers.org/entropy ви також можете виконувати візуальні тести частоти та розподілу, будуючи графіки виходів entropy.freq та entropy.gaus

як приклад, ви можете провести онлайн-тест до 1 Гб, використовуючи servertest.online/entropytest

entropy.freq entropy.gaus


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.