Форум программистов, компьютерный форум, киберфорум
Криптография
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 22.07.2018
Сообщений: 1
1

Последовательность pi проходит тесты Diehared на качество гсч. Как обнаруживать подобные слабые гсч?

22.07.2018, 01:47. Показов 980. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Протестировал последовательность знаков после запятой в числе pi. Ни один тест не провален, почти все - успех и лишь один тест weak. Да и то из-за того что последовательность короткая: всего 32K знаков.
От человека скрыть последовательность тоже несложно. Возьми дробную часть от (100500*pi + 34) и никто ее навскидку не узнает. Не ожидал, что обмануть один из лучших наборов тестов будет так просто.

Собственно вопросы.
(1) Правильно ли я понимаю смысл отчета?
(2) Есть ли набор тестов, которые подобные вещи вылавливает
Если да - то где об этом почитать
Если нет - то как после этого вообще верить криптографии?


dieharder -f my.val -a


#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name | filename |rands/second|
mt19937| my.val| 1.04e+08 |
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.49289700| PASSED
diehard_operm5| 0| 1000000| 100|0.97916931| PASSED
diehard_rank_32x32| 0| 40000| 100|0.17526019| PASSED
diehard_rank_6x8| 0| 100000| 100|0.66379592| PASSED
diehard_bitstream| 0| 2097152| 100|0.91655337| PASSED
diehard_opso| 0| 2097152| 100|0.64918751| PASSED
diehard_oqso| 0| 2097152| 100|0.78917321| PASSED
diehard_dna| 0| 2097152| 100|0.81294467| PASSED
diehard_count_1s_str| 0| 256000| 100|0.42737455| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.63184628| PASSED
diehard_parking_lot| 0| 12000| 100|0.74074906| PASSED
diehard_2dsphere| 2| 8000| 100|0.44545927| PASSED
diehard_3dsphere| 3| 4000| 100|0.95171084| PASSED
diehard_squeeze| 0| 100000| 100|0.09044359| PASSED
diehard_sums| 0| 100| 100|0.01623831| PASSED
diehard_runs| 0| 100000| 100|0.48859815| PASSED
diehard_runs| 0| 100000| 100|0.43919013| PASSED
diehard_craps| 0| 200000| 100|0.65244520| PASSED
diehard_craps| 0| 200000| 100|0.80601362| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.44722446| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.03875522| PASSED
sts_monobit| 1| 100000| 100|0.75148206| PASSED
sts_runs| 2| 100000| 100|0.49113402| PASSED
sts_serial| 1| 100000| 100|0.50157505| PASSED
sts_serial| 2| 100000| 100|0.72430739| PASSED
sts_serial| 3| 100000| 100|0.67316510| PASSED
sts_serial| 3| 100000| 100|0.58046981| PASSED
sts_serial| 4| 100000| 100|0.92701809| PASSED
sts_serial| 4| 100000| 100|0.57817219| PASSED
sts_serial| 5| 100000| 100|0.33932738| PASSED
sts_serial| 5| 100000| 100|0.53861435| PASSED
sts_serial| 6| 100000| 100|0.40537460| PASSED
sts_serial| 6| 100000| 100|0.78815607| PASSED
sts_serial| 7| 100000| 100|0.22524888| PASSED
sts_serial| 7| 100000| 100|0.46164009| PASSED
sts_serial| 8| 100000| 100|0.36827686| PASSED
sts_serial| 8| 100000| 100|0.48665569| PASSED
sts_serial| 9| 100000| 100|0.86565974| PASSED
sts_serial| 9| 100000| 100|0.36074497| PASSED
sts_serial| 10| 100000| 100|0.13949667| PASSED
sts_serial| 10| 100000| 100|0.49081938| PASSED
sts_serial| 11| 100000| 100|0.04877805| PASSED
sts_serial| 11| 100000| 100|0.02155062| PASSED
sts_serial| 12| 100000| 100|0.09072019| PASSED
sts_serial| 12| 100000| 100|0.93380811| PASSED
sts_serial| 13| 100000| 100|0.64106730| PASSED
sts_serial| 13| 100000| 100|0.72473074| PASSED
sts_serial| 14| 100000| 100|0.87913534| PASSED
sts_serial| 14| 100000| 100|0.61812713| PASSED
sts_serial| 15| 100000| 100|0.94501350| PASSED
sts_serial| 15| 100000| 100|0.24982550| PASSED
sts_serial| 16| 100000| 100|0.75834639| PASSED
sts_serial| 16| 100000| 100|0.26513279| PASSED
rgb_bitdist| 1| 100000| 100|0.78552918| PASSED
rgb_bitdist| 2| 100000| 100|0.71441033| PASSED
rgb_bitdist| 3| 100000| 100|0.28521346| PASSED
rgb_bitdist| 4| 100000| 100|0.49639153| PASSED
rgb_bitdist| 5| 100000| 100|0.25855055| PASSED
rgb_bitdist| 6| 100000| 100|0.78316417| PASSED
rgb_bitdist| 7| 100000| 100|0.40515749| PASSED
rgb_bitdist| 8| 100000| 100|0.45942538| PASSED
rgb_bitdist| 9| 100000| 100|0.70062007| PASSED
rgb_bitdist| 10| 100000| 100|0.31869911| PASSED
rgb_bitdist| 11| 100000| 100|0.62186035| PASSED
rgb_bitdist| 12| 100000| 100|0.64660414| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.13330785| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.09264471| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.86734682| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.07470112| PASSED
rgb_permutations| 2| 100000| 100|0.28874088| PASSED
rgb_permutations| 3| 100000| 100|0.91430845| PASSED
rgb_permutations| 4| 100000| 100|0.98105118| PASSED
rgb_permutations| 5| 100000| 100|0.65578984| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.51514262| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.86108932| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.08370101| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.94356548| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.86466386| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.21125401| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.91442754| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.93440408| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.09863658| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.44505658| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.99496725| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.73232039| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.28072005| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.99955657| WEAK
rgb_lagged_sum| 14| 1000000| 100|0.79297089| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.50476802| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.66473799| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.68956743| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.97735332| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.88123590| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.82894255| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.56552855| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.39902264| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.28215348| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.74084841| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.37389431| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.59511169| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.82526229| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.69347124| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.13636243| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.41315699| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.30990140| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.71734342| PASSED
rgb_kstest_test| 0| 10000| 1000|0.89793502| PASSED
dab_bytedistrib| 0| 51200000| 1|0.68765748| PASSED
dab_dct| 256| 50000| 1|0.41265119| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.17838303| PASSED
dab_filltree| 32| 15000000| 1|0.90643428| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.34775177| PASSED
dab_filltree2| 1| 5000000| 1|0.69751383| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.76137942| PASSED
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2018, 01:47
Ответы с готовыми решениями:

ГСЧ
А подскажите пожалуйста, как сгенерировать числа от 10 до 1000000 ? и какой тип переменной...

Пример по ГСЧ
Доброго времени суток. Решил собрать генератор случайных чисел от 1 до 6 включительно. Вроде бы...

К ГСЧ прилипить TChart
всем доброго времени суток. Сиделя я делал лабу по Компьютерному моделированию, практически все...

Массивы и ГСЧ - хэлп!!
Нужно срочно решить такую задачу, которая мне уже взорвала мозг!! "Создать квадратную матрицу...

2
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
22.07.2018, 02:54 2
Цитата Сообщение от olki Посмотреть сообщение
Не ожидал, что обмануть один из лучших наборов тестов будет так просто.
Я не понял, что именно Вы понимаете под обманом.
Последовательность знаков после запятой в числе pi - достаточно хорошая, что и показали тесты.
0
6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,047
23.07.2018, 21:39 3
Цитата Сообщение от olki Посмотреть сообщение
Если нет - то как после этого вообще верить криптографии?
Надо просто уяснить чем отличаются случайные числа от псевдослучайных. Последовательность десятичных цифр числа Пи - типичная последовательность псевдослучайных чисел. Псевдослучайные числа не случайны, они детерминированы, но имеют равномерное распределение, такое-же как и у истинно случайных. А тесты-то как раз равномерность распределения проверяют.

Cобственно тут http://webhome.phy.duke.edu/~r... harder.php так и написано (если я правильно понял этот головоломный английский)
Dieharder is a random number generator (rng) testing suite. It is intended to test generators, not files of possibly random numbers as the latter is a fallacious view of what it means to be random.
Это тест генераторов случайных чисел, в т.ч. генераторов псевдослучайных чисел, надо полагать. Тест насколько они хороши. Он не может определять являются ли числа на самом деле случайными, не имеет такой цели, не для этого написан. Если такое вообще возможно определять, не только в сторону "нет".
0
23.07.2018, 21:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.07.2018, 21:39
Помогаю со студенческими работами здесь

ГСЧ в шаблонной функции
Всем здрасти. Реализую шаблонную функцию, для заполнения массива случайными числами, в которой...

Тестирование ГСЧ DieHard
Кто нибудь подскажет как проверить Генератор случайных чисел при помощи теста Дайхард? В сети я...

Плохо работает ГСЧ
Подскажите, пожалуйста, как изменить программу, чтоб ГСЧ работал хорошо? Мне нужно, чтоб на каждой...

ГСЧ, одинаковые значения
Подскажите, почему при каждом запуске программы генератор случайных чисел выдает одни и те же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru