我自己很好奇,所以我继续编写了一个程序来测试它。您需要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
.