Мне было любопытно, поэтому я решил написать программу , чтобы проверить это.Вам понадобится Crypto ++ для компиляции кода.
Отказ от ответственности: Когда дело доходит до криптографии или даже математики в целом, я знаю, что достаточно, чтобы выстрелить себе в ногу.Итак, возьмите следующие результаты с небольшим количеством соли и имейте в виду, что у меня есть только поверхностное знание инструментов, которые я использую.
Я выбрал только три подстроки: первые 8 байтов, средние 8байтов, а последние 8 байтов.Короче говоря, они одинаково случайны.
Однако при использовании меньшего выборочного пространства кажется, что последние 8 битов немного более случайны.Чем больше пространство выборки, тем ближе все три подстроки приближаются к полной случайности.
1000 итераций:
First: 0.995914
Middle: 0.996546
Last: 0.998104
5000 итераций:
First: 0.998387
Middle: 0.998624
Last: 0.999501
10000 итераций:
First: 0.999614
Middle: 0.999457
Last: 1
30000 итераций:
First: 1
Middle: 1
Last: 1
"Случайность" измеряется классом Crypto ++ MaurerRandomnessTest .Для справки: исполняемый файл, скомпилированный из приведенного выше кода, имеет значение случайности 0.632411
, а копия Маккета Шекспира, загруженная из Project Gutenburg, имеет значение случайности 0.566991
.