Статистическое исследование энтропии тестом FIPS 140-2 от 2001-10-10, rngtest из пакета rng-tools.Как говорят ложь делится на три категории: 1 ложь, 2 циничная ложь, 3 статистика.
По этому, чтобы никого не обмануть, где статистических данных было мало для точного определения цифры, поставил знак: "?".Первая колонка - источник энтропии. Вторая колонка - качество энтропии, количество девяток определено всегда точно. Третья колонка - скорость.
Ниже приведены результаты теста.Вопрос: Если допустить, что мир идет от худшего к лудшему, почему тогда качество энтропии полученой от SHA3 хуже чем от SHA2, а качество энтропии полученой от SHA2 хуже чем от SHA1?
/dev/urandom | rngtest 99.99?% 10.3 MB/s
rngtest: FIPS 140-2 successes: 999932
rngtest: FIPS 140-2 failures: 68
rngtest: FIPS 140-2(2001-10-10) Monobit: 11
rngtest: FIPS 140-2(2001-10-10) Poker: 32
rngtest: FIPS 140-2(2001-10-10) Runs: 25
rngtest: FIPS 140-2(2001-10-10) Long run: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
/dev/urandom 99.92% 72.9 MB/s
rngtest: FIPS 140-2 successes: 999230
rngtest: FIPS 140-2 failures: 770
rngtest: FIPS 140-2(2001-10-10) Monobit: 103
rngtest: FIPS 140-2(2001-10-10) Poker: 90
rngtest: FIPS 140-2(2001-10-10) Runs: 293
rngtest: FIPS 140-2(2001-10-10) Long run: 288
rngtest: FIPS 140-2(2001-10-10) Continuous run: 1
openssl rand (/dev/urandom) 99.9?% 72.9 MB/S
rngtest: FIPS 140-2 successes: 99921
rngtest: FIPS 140-2 failures: 79
rngtest: FIPS 140-2(2001-10-10) Monobit: 17
rngtest: FIPS 140-2(2001-10-10) Poker: 10
rngtest: FIPS 140-2(2001-10-10) Runs: 30
rngtest: FIPS 140-2(2001-10-10) Long run: 23
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
gpg --gen-random 0 99.9?% 4.2 MB/s
rngtest: FIPS 140-2 successes: 99927
rngtest: FIPS 140-2 failures: 73
rngtest: FIPS 140-2(2001-10-10) Monobit: 8
rngtest: FIPS 140-2(2001-10-10) Poker: 5
rngtest: FIPS 140-2(2001-10-10) Runs: 28
rngtest: FIPS 140-2(2001-10-10) Long run: 33
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
gpg --gen-random 1 99.9?% 2.7 MB/s
rngtest: FIPS 140-2 successes: 99919
rngtest: FIPS 140-2 failures: 81
rngtest: FIPS 140-2(2001-10-10) Monobit: 12
rngtest: FIPS 140-2(2001-10-10) Poker: 9
rngtest: FIPS 140-2(2001-10-10) Runs: 27
rngtest: FIPS 140-2(2001-10-10) Long run: 34
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
gpg --gen-random 2 99.9?% 5.2 kB/s
rngtest: FIPS 140-2 successes: 99947
rngtest: FIPS 140-2 failures: 53
rngtest: FIPS 140-2(2001-10-10) Monobit: 7
rngtest: FIPS 140-2(2001-10-10) Poker: 8
rngtest: FIPS 140-2(2001-10-10) Runs: 18
rngtest: FIPS 140-2(2001-10-10) Long run: 21
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
/dev/random + haveged 99.?% 84.8 kB/s !!!!!!!!!!!!!!!
rngtest: FIPS 140-2 successes: 9900
rngtest: FIPS 140-2 failures: 100
rngtest: FIPS 140-2(2001-10-10) Monobit: 6
rngtest: FIPS 140-2(2001-10-10) Poker: 21
rngtest: FIPS 140-2(2001-10-10) Runs: 13
rngtest: FIPS 140-2(2001-10-10) Long run: 62
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
aich 99.9?%
rngtest: FIPS 140-2 successes: 9990
rngtest: FIPS 140-2 failures: 10
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 4
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
btih 99.9?%
rngtest: FIPS 140-2 successes: 9991
rngtest: FIPS 140-2 failures: 9
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
crc32 99.9?%
rngtest: FIPS 140-2 successes: 9993
rngtest: FIPS 140-2 failures: 7
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0ed2k 99.9?%
rngtest: FIPS 140-2 successes: 9988
rngtest: FIPS 140-2 failures: 12
rngtest: FIPS 140-2(2001-10-10) Monobit: 3
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
edon-r256 99.9?%
rngtest: FIPS 140-2 successes: 9991
rngtest: FIPS 140-2 failures: 9
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
edon-r512 99.9?%
rngtest: FIPS 140-2 successes: 9994
rngtest: FIPS 140-2 failures: 6
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
gost 99.9?%
rngtest: FIPS 140-2 successes: 9991
rngtest: FIPS 140-2 failures: 9
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 4
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
gost-cryptopro (md_gost94) 99.9?%
rngtest: FIPS 140-2 successes: 9993
rngtest: FIPS 140-2 failures: 7
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
has160 99.9?%
rngtest: FIPS 140-2 successes: 9993
rngtest: FIPS 140-2 failures: 7
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
md4 99.9?%
rngtest: FIPS 140-2 successes: 9994
rngtest: FIPS 140-2 failures: 6
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 1
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
md5 99.9?%
rngtest: FIPS 140-2 successes: 9992
rngtest: FIPS 140-2 failures: 8
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 0
rngtest: FIPS 140-2(2001-10-10) Long run: 6
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
ripemd160 99.9?%
rngtest: FIPS 140-2 successes: 9992
rngtest: FIPS 140-2 failures: 8
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha1 99.9?%
rngtest: FIPS 140-2 successes: 9997
rngtest: FIPS 140-2 failures: 3
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 1
rngtest: FIPS 140-2(2001-10-10) Long run: 1
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha224 99.9?%
rngtest: FIPS 140-2 successes: 9996
rngtest: FIPS 140-2 failures: 4
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: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 1
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha256 99.9?%
rngtest: FIPS 140-2 successes: 9990
rngtest: FIPS 140-2 failures: 10
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 5
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha384 99.9?%
rngtest: FIPS 140-2 successes: 9988
rngtest: FIPS 140-2 failures: 12
rngtest: FIPS 140-2(2001-10-10) Monobit: 3
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 5
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha512 99.9?%
rngtest: FIPS 140-2 successes: 9994
rngtest: FIPS 140-2 failures: 6
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha3-224 99.9?%
rngtest: FIPS 140-2 successes: 9987
rngtest: FIPS 140-2 failures: 13
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 8
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha3-256 99.9?%
rngtest: FIPS 140-2 successes: 9989
rngtest: FIPS 140-2 failures: 11
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 6
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha3-384 99.9?%
rngtest: FIPS 140-2 successes: 9990
rngtest: FIPS 140-2 failures: 10
rngtest: FIPS 140-2(2001-10-10) Monobit: 3
rngtest: FIPS 140-2(2001-10-10) Poker: 3
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 1
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha3-512 99.9?%
rngtest: FIPS 140-2 successes: 9992
rngtest: FIPS 140-2 failures: 8
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sm3 99.9?%
rngtest: FIPS 140-2 successes: 9990
rngtest: FIPS 140-2 failures: 10
rngtest: FIPS 140-2(2001-10-10) Monobit: 3
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
snefru128 99.9?%
rngtest: FIPS 140-2 successes: 9992
rngtest: FIPS 140-2 failures: 8
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: 5
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
snefru256 99.?% !!!!!!!!!!!!!!!
rngtest: FIPS 140-2 successes: 9984
rngtest: FIPS 140-2 failures: 16
rngtest: FIPS 140-2(2001-10-10) Monobit: 3
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 6
rngtest: FIPS 140-2(2001-10-10) Long run: 6
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
streebog256 99.9?%
rngtest: FIPS 140-2 successes: 9989
rngtest: FIPS 140-2 failures: 11
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 7
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
streebog512 99.9?%
rngtest: FIPS 140-2 successes: 9991
rngtest: FIPS 140-2 failures: 9
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 5
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
tiger 99.9?%
rngtest: FIPS 140-2 successes: 9997
rngtest: FIPS 140-2 failures: 3
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 1
rngtest: FIPS 140-2(2001-10-10) Long run: 1
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
tth 99.?% !!!!!!!!!!!!!!!
rngtest: FIPS 140-2 successes: 9980
rngtest: FIPS 140-2 failures: 20
rngtest: FIPS 140-2(2001-10-10) Monobit: 4
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 10
rngtest: FIPS 140-2(2001-10-10) Long run: 4
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
whirlpool 99.9?%
rngtest: FIPS 140-2 successes: 9995
rngtest: FIPS 140-2 failures: 5
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 1
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
>Статистическое исследование
>не описана методика
>Первая колонка - источник энтропии
>названия алгоритмов хэшированияХэширование вообще-то энтропию не создает. Часто даже уменьшает.
>не описана методикаИдея: https://www.opennet.dev/openforum/vsluhforumID3/128276.html#42
Создаем файл
entropy-time-hash
#!/bin/bash
# Free for not commercial usage.
# Свободна для некомерческого использования, комерческое использование может быть разрешено только c письменного согласия.hash=$1
while [ True == True ]
do
date +%-N%s |openssl dgst -binary -"${hash}"
# В реальном тесте здесь было чуть больше энтропии. Думаю, того что выше, для подтверждения статистики должно хватить.
doneНадо пакет rng-tools поставить.
Для запуска теста:
bash entropy-time-hash sha1 |rngtest -c 100В реалиях запускался совсем другой тест, но этот должен дать тот-же результат. Интересна статистика с других тестов энтропии, не rngtest.
> Хэширование вообще-то энтропию не создает. Часто даже уменьшает.
На безрыбьи и рак рыба.
Почему старые хеши sha1 и tiger победили? Это самый неожиданный результат. Второе место sha224 тоже удевляет.
Здравствуйте, нашей компании очень понравился ваш скрипт, хотим его использовать в коммерческих целях. Зарабатывать на нем миллионы, а к концу этого квартала -- миллиарды долларов. Вышлите пожалуйста письменное согласие, чтоб мы могли его использовать. Если что - можем договориться о вашей доле, предлагаю для начала 60% как автору идеи этого скрипта.
Зачем стебать непризнанного гения
> Здравствуйте, нашей компании очень понравился ваш скрипт, хотим его использовать в коммерческих
> целях. Зарабатывать на нем миллионы, а к концу этого квартала --
> миллиарды долларов. Вышлите пожалуйста письменное согласие, чтоб мы могли его использовать.
> Если что - можем договориться о вашей доле, предлагаю для начала
> 60% как автору идеи этого скрипта.Так одному пекарю работу дали.
> Здравствуйте, нашей компании оченьРеквизиты компании...
Новая версия:https://www.opennet.dev/openforum/vsluhforumID3/134208.html#92
Для хеш-сумм главное коллизии. Энтропия, конечно, тоже важна, но измерять её инструментом для анализа генераторов случайных чисел - некорректно.И даже так - ваш эксперимент показывает, что энтропия хеш-сумм заметно ниже чем у рандома. А разница между хэш-суммами незначительна и не влияет на их предназначение (плюс не забываем про некорректность инструмента измерения). ИМХО это успех.
> энтропия хеш-сумм заметно нижеТ.е. выше...
> Для хеш-сумм главное коллизии. Энтропия, конечно, тоже важна,Хорошая энторпия ведет к исключению колизий. Это взаимосвязанные понятия.
> но измерять её инструментом для анализа генераторов случайных чисел - некорректно.
Энтропия измерялась инструментом, для измерения энтропии. Здесь все корректно. Но можно придратся к самим тестам в rngtest.
> А разница между хэш-суммами незначительна и не влияет на их предназначение (плюс не забываем про некорректность инструмента измерения).
А вот здесь не соглашусь. Явно в статистике усматривается уменишение энтропии в современных контрольных сумах по сравнению со старыми. А значит прямо влияет на их предназначение. Усматривается вероятность закладок в современных хешах!
> ИМХО это успех.
Да: sha1, tiger, sha224, whirlpool победили ВСЕ стандартные, програмные, источники энтропии в системе! Даже 'gpg --gen-random 2' повержен. Это безусловно большой успех.
Проиграли только искуственному источнику энтропии с коррекцией под проводимый тест:
dd if=/dev/urandom status=none |rngtest --pipeНо почему победили старые контрольные сумы sha1 и tiger, а не новые?!! Чем новее контрольная сума тем хуже у нее энтропия. И это ИМХО ПРОВАЛ... ;)
> Хорошая энторпия ведет к исключению колизий. Это взаимосвязанные понятия.Вот коллизии и измеряйте.
> Энтропия измерялась инструментом, для измерения энтропии.
Сферический конь в вакууме.
> Явно в статистике усматривается уменишение энтропии в
В пределах погрешности измерений.
> Усматривается вероятность закладок в современных хешах!
Предоставьте это решать специалистам в данной области, которых на опеннете не водится.
>> Хорошая энторпия ведет к исключению колизий. Это взаимосвязанные понятия.
> Вот коллизии и измеряйте.Меня интересовала именно энтропия.
>> Энтропия измерялась инструментом, для измерения энтропии.
> Сферический конь в вакууме.Тестом энтропии определённый FIPS 140-2 от 2001-10-10, rngtest из пакета rng-tools.
(Note that these tests are defined on FIPS 140-1 and FIPS 140-2 errata of 2001-10-10. They were removed in FIPS 140-2 errata of 2002-12-03)>> Явно в статистике усматривается уменишение энтропии в
> В пределах погрешности измерений.На счет погрешности не спорю, чтобы точно назвать цифру после трёх девяток необходимо провести 1 000 000 тестов, а проведено всего 10 000. Но данные результаты не будут сильно отличатся от истеных.
У кого в доме нет отопления может запустить:
bash entropy-time-hash sha224 |rngtest -c 1000000
bash entropy-time-hash sha384 |rngtest -c 1000000
И убедится в совпадении цыфр после 9 в пределах погрешности +-1 .. +-2>> Усматривается вероятность закладок в современных хешах!
> Предоставьте это решать специалистам в данной области, которых на опеннете не водится.Лично усматриваю вероятность закладок в современных хешах на основании представленных статистических данных. А то что напишут проплаченные "крыптологи" не внушает доверия.
> И убедится в совпадении цыфр после 9 в пределах погрешности +-1 ..
> +-2Ну провёл вот пару тестов, только на вход подавал не время, а последовательность с шагом 1 начиная с единицы:
$ bash entropy-sequence-hash.sh sha1 |rngtest -c 10000
rngtest: FIPS 140-2 successes: 9994
rngtest: FIPS 140-2 failures: 6
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=19.277; avg=23.093; max=36.944)Kibits/s
$ bash entropy-sequence-hash.sh sha3-384 |rngtest -c 10000
rngtest: FIPS 140-2 successes: 9996
rngtest: FIPS 140-2 failures: 4
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: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 1
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=38.232; avg=53.090; max=89.004)Kibits/sИ что дальше?...
> Лично усматриваю вероятность закладок в современных хешах на основании представленных
> статистических данных. А то что напишут проплаченные "крыптологи" не внушает доверия.Найдите непроплаченных или проплаченных вами. Всё лучше, чем _ценное_ мнение доморощенного "крыптоаналитега" одной программой и с ограниченным бюджетом.
> только на вход подавал не время, а последовательность с шагом 1 начиная с единицыВ рекомендациях по написанию PRNG 1980-тых, в случае полного отсутствия энтропии в системе, разрешалось, для первоначального seed-ирования алгоритма PRNG брать "контрольну суму от времени".
"PRNG" на основе контрольной сумы последовательности натуральных чисел явно перебор. Но не для энтропии, а для исследования самих контрольных сум и обеспечении повторяемости результата, допускаю использование последовательности натуральных чисел. Сделайте пожалуйста ещё ваш тест для sha224.
А я повторно выложу свои результаты тестов для sha1, sha224, sha384.
FIPS 140 определяет допустимый минимум для информационных систем.FIPS 140-1 с тестами был опубликован 1994.01.11. И эти тесты почему-то были удалены с FIPS 140-2 от 2002.12.03 !
SHA-1 приняли 1995.04.17 когда тесты были действующими.
SHA-2 приняли в 2002.08.01 и тесты FIPS 140-2 в редакции от 2001.10.10 были ещё действующими.
Предполагаю, что кто-то из любопытства запустил, тесты с FIPS 140-1 от 1994.01.11 и FIPS 140-2 от 2001.10.10 для тестирования SHA-2.
По результатам тестирования в АНБ отправили письмо с вопросом: "почему энтропия полученыа из нового SHA-2 хуже чем получается из старого SHA-1 ?!!"
Получив письмо, АНБ, для скрытия своих закладок в SHA-2, 2002.12.03 удалила тесты с стандарта FIPS 140-2.
> Статистическое исследование энтропии тестом FIPS 140-2 от 2001-10-10, rngtest из пакета
> rng-tools.
> Как говорят ложьВероятно все дело в том, что все ваши тесты - тестировали по сути один источник, который зависит от вашей активности за компом...
SHA1 не берет данные из воздуха... он берет их все из того же источника что и все остальные.
"RNG генерит случайные числа на основе данных из пула энтропии(entropy pool) в ядре Linux. Наполнением этого пула так же занимается RNG и делается это на основе случайных событий в системе таких как: тайминги клавиатуры и дисков, движения мыши, прерывания(interrupts), сетевой трафик.
"
Поэтому ваш эксперимент нужно проводить не единоразово, а прогонять один и тот же тест по кругу в течении недели...и усреднить значения.
> Вероятно все дело в том, что все ваши тесты - тестировали по сути один источник,Естественно, что для тестирования контрольных сум был выбран один источник энтропии:
https://www.opennet.dev/openforum/vsluhforumID10/5638.html#2> который зависит от вашей активности за компом...
Нет.
> SHA1 не берет данные из воздуха... он берет их все из того
> же источника что и все остальные.Нет. Для теста энтропии из контрольных сум брался отдельный источник энтропии.
> "RNG генерит случайные числа на основе данных из пула энтропии(entropy pool) в ядре Linux. Наполнением этого пула так же занимается RNG и делается это на основе случайных событий в системе таких как: тайминги клавиатуры и дисков, движения мыши, прерывания(interrupts), сетевой трафик.
Всё это влияет на первые тесты стандартных источников энтропии в системе. Их тоже привёл для сравнения результатов.
> Поэтому ваш эксперимент нужно проводить не единоразово, а прогонять один и тот же тест по кругу в течении недели...и усреднить значения.
Вот выше предложил прогнать тест:
bash entropy-time-hash sha224 |rngtest -c 1000000
bash entropy-time-hash sha384 |rngtest -c 1000000
получить точную цифру после 9 и разъяснить всем почему энтропия от sha384 хуже чем от sha224.Это же две контрольные сумы одного стандарта SHA2 !
Статистическое исследование зависимости энтропии из контрольных сум от входных данных.Первый тест в этой теме получен из входных данных следующего типа:
original (Pseudo entropy file: "ASCII text, with very long lines" ~75K)
Like:
dd if=/dev/urandom status=none |tr -dc 0-9A-Za-z_+\-:\.,\ /\[\]\<\>\(\)\#\\n |dd bs=1b count=150 status=none
Контрольные сумы с подозрительными результатами sha1, sha224, sha384 и tiger перепроверил с разными входящими данными.
В статистическом исследовании проводилось всего 10 000 тестов, чего явно недостаточно чтобы дать точную цифру после трёх девяток!
Отмечаем, что sha384 победил со следующими входными данными:
1. date +%-N%s
2. date +%-N%s |b2sum |sed 's/[ -]//g'
4. dd if=/dev/urandom status=none |tr -dc 0-9 |dd bs=1b count=3 status=none
5. dd if=/dev/urandom status=none |tr -dc 0-9a-f |dd bs=1172c count=1 status=none
И опять проиграл в тесте с входными данными:
3. dd if=/dev/urandom status=none |tr -dc 0-9A-Za-z_+\-:\.,\ /\[\]\<\>\(\)\#\\n |dd bs=1b count=200 status=none
в котором sha1 и tiger опять удержали два первых места, причём tiger подтвердил лучший результат.То что сума ошибок в тестах больше "failures" означает что ошибки случились в одном и томже тестируемом блоке.
Такие результаты tiger в 4 тесте возможно из-за временной большой нагрузки на комп, load average: ~201.
date +%-N%ssha1
rngtest: FIPS 140-2 successes: 9989
rngtest: FIPS 140-2 failures: 11
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 5
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha224
rngtest: FIPS 140-2 successes: 9992
rngtest: FIPS 140-2 failures: 8
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha384
rngtest: FIPS 140-2 successes: 9992
rngtest: FIPS 140-2 failures: 8
rngtest: FIPS 140-2(2001-10-10) Monobit: 3
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 1
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
tiger
rngtest: FIPS 140-2 successes: 9991
rngtest: FIPS 140-2 failures: 9
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 02.
date +%-N%s |b2sum |sed 's/[ -]//g'sha1
rngtest: FIPS 140-2 successes: 9990
rngtest: FIPS 140-2 failures: 10
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 5
rngtest: FIPS 140-2(2001-10-10) Long run: 4
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha224
rngtest: FIPS 140-2 successes: 9993
rngtest: FIPS 140-2 failures: 7
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 1
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha384
rngtest: FIPS 140-2 successes: 9994
rngtest: FIPS 140-2 failures: 6
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: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
tiger
rngtest: FIPS 140-2 successes: 9994
rngtest: FIPS 140-2 failures: 6
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 03.
original (Pseudo entropy file: "ASCII text, with very long lines" ~100K)
Like:
dd if=/dev/urandom status=none |tr -dc 0-9A-Za-z_+\-:\.,\ /\[\]\<\>\(\)\#\\n |dd bs=1b count=200 status=nonesha1
rngtest: FIPS 140-2 successes: 9994
rngtest: FIPS 140-2 failures: 6
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: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha-224
rngtest: FIPS 140-2 successes: 9993
rngtest: FIPS 140-2 failures: 7
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 4
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha-384
rngtest: FIPS 140-2 successes: 9991
rngtest: FIPS 140-2 failures: 9
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
tiger
rngtest: FIPS 140-2 successes: 9997
rngtest: FIPS 140-2 failures: 3
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: 1
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 04.
integer (Pseudo entropy integer: >1500 digits)
Like:
dd if=/dev/urandom status=none |tr -dc 0-9 |dd bs=1b count=3 status=nonesha1
rngtest: FIPS 140-2 successes: 9989
rngtest: FIPS 140-2 failures: 11
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 4
rngtest: FIPS 140-2(2001-10-10) Long run: 5
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha-224
rngtest: FIPS 140-2 successes: 9988
rngtest: FIPS 140-2 failures: 12
rngtest: FIPS 140-2(2001-10-10) Monobit: 3
rngtest: FIPS 140-2(2001-10-10) Poker: 2
rngtest: FIPS 140-2(2001-10-10) Runs: 5
rngtest: FIPS 140-2(2001-10-10) Long run: 2
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha-384
rngtest: FIPS 140-2 successes: 9995
rngtest: FIPS 140-2 failures: 5
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 1
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
tiger
rngtest: FIPS 140-2 successes: 9988
rngtest: FIPS 140-2 failures: 12
rngtest: FIPS 140-2(2001-10-10) Monobit: 2
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 6
rngtest: FIPS 140-2(2001-10-10) Long run: 6
rngtest: FIPS 140-2(2001-10-10) Continuous run: 15.
hashed (Pseudo entropy hexadecimal: <=1172 symbols)
Like:
dd if=/dev/urandom status=none |tr -dc 0-9a-f |dd bs=1172c count=1 status=nonesha1
rngtest: FIPS 140-2 successes: 9990
rngtest: FIPS 140-2 failures: 10
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 3
rngtest: FIPS 140-2(2001-10-10) Long run: 6
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha-224
rngtest: FIPS 140-2 successes: 9991
rngtest: FIPS 140-2 failures: 9
rngtest: FIPS 140-2(2001-10-10) Monobit: 3
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 4
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
sha-384
rngtest: FIPS 140-2 successes: 9995
rngtest: FIPS 140-2 failures: 5
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: 2
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
tiger
rngtest: FIPS 140-2 successes: 9989
rngtest: FIPS 140-2 failures: 11
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 1
rngtest: FIPS 140-2(2001-10-10) Runs: 6
rngtest: FIPS 140-2(2001-10-10) Long run: 3
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
> 4. dd if=/dev/urandom status=none |tr -dc 0-9 |dd bs=1b count=3 status=none
> Такие результаты tiger в 4 тесте возможно из-за временной большой нагрузки на комп, load average: ~20Во время этого теста жестко ребутился комп и в файл с энтропией записалась последовательность "нулей": ^@^@^@^@^@^... которая испортила два блока. Без испорченых блоков результат теста для tiger:
4.
integer (Pseudo entropy integer: >1500 digits)
Like:
dd if=/dev/urandom status=none |tr -dc 0-9 |dd bs=1b count=3 status=nonetiger
rngtest: FIPS 140-2 successes: 9990
rngtest: FIPS 140-2 failures: 10
rngtest: FIPS 140-2(2001-10-10) Monobit: 1
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 5
rngtest: FIPS 140-2(2001-10-10) Long run: 4
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0