I will use the first blogpost to remove one item off my backlog: publish the results of FUCKGOATS (FG) testing.
FG is, as you all certainly know, the republican RNG, and perhaps the only one that works1. While the FG shop has been closed for quite some time already, you can still rent FUCKGOATS from Pizarro, and there are some signs that it might open one day again. I got my FG from danielpbarron back in the days before entering the WoT.
The standard suite for performing RNG tests includes two utilities, ent and dieharder. Both work2 by reading RNG samples from a file, which must be rather large; I used 849M worth of random data as input3.
So, here are the results for ent:
% ./ent ../fg.bin Entropy = 8.000000 bits per byte. Optimum compression would reduce the size of this 889678745 byte file by 0 percent. Chi square distribution for 889678745 samples is 244.21, and randomly would exceed this value 67.55 percent of the times. Arithmetic mean value of data bytes is 127.5007 (127.5 = random). Monte Carlo value for Pi is 3.141574371 (error 0.00 percent). Serial correlation coefficient is -0.000031 (totally uncorrelated = 0.0).
And for dieharder:
% ./dieharder -a -g 201 -f ../../fg.bin #=============================================================================# # dieharder version 3.31.1 Copyright 2003 Robert G. Brown # #=============================================================================# rng_name | filename |rands/second| file_input_raw| ../../fg.bin| 2.67e+07 | #=============================================================================# test_name |ntup| tsamples |psamples| p-value |Assessment #=============================================================================# diehard_birthdays| 0| 100| 100|0.44399854| PASSED diehard_operm5| 0| 1000000| 100|0.57088270| PASSED # The file file_input_raw was rewound 1 times diehard_rank_32x32| 0| 40000| 100|0.63557220| PASSED # The file file_input_raw was rewound 1 times diehard_rank_6x8| 0| 100000| 100|0.48779850| PASSED # The file file_input_raw was rewound 1 times diehard_bitstream| 0| 2097152| 100|0.86096311| PASSED # The file file_input_raw was rewound 2 times diehard_opso| 0| 2097152| 100|0.63444572| PASSED # The file file_input_raw was rewound 3 times diehard_oqso| 0| 2097152| 100|0.88107917| PASSED # The file file_input_raw was rewound 3 times diehard_dna| 0| 2097152| 100|0.27976628| PASSED # The file file_input_raw was rewound 3 times diehard_count_1s_str| 0| 256000| 100|0.86569068| PASSED # The file file_input_raw was rewound 3 times diehard_count_1s_byt| 0| 256000| 100|0.54850592| PASSED # The file file_input_raw was rewound 3 times diehard_parking_lot| 0| 12000| 100|0.25249632| PASSED # The file file_input_raw was rewound 3 times diehard_2dsphere| 2| 8000| 100|0.99053937| PASSED # The file file_input_raw was rewound 3 times diehard_3dsphere| 3| 4000| 100|0.89209704| PASSED # The file file_input_raw was rewound 5 times diehard_squeeze| 0| 100000| 100|0.57180801| PASSED # The file file_input_raw was rewound 5 times diehard_sums| 0| 100| 100|0.07499925| PASSED # The file file_input_raw was rewound 5 times diehard_runs| 0| 100000| 100|0.66839857| PASSED diehard_runs| 0| 100000| 100|0.53363069| PASSED # The file file_input_raw was rewound 5 times diehard_craps| 0| 200000| 100|0.90406082| PASSED diehard_craps| 0| 200000| 100|0.49188643| PASSED # The file file_input_raw was rewound 14 times marsaglia_tsang_gcd| 0| 10000000| 100|0.05577585| PASSED marsaglia_tsang_gcd| 0| 10000000| 100|0.00704987| PASSED # The file file_input_raw was rewound 14 times sts_monobit| 1| 100000| 100|0.13669553| PASSED # The file file_input_raw was rewound 14 times sts_runs| 2| 100000| 100|0.16559827| PASSED # The file file_input_raw was rewound 14 times sts_serial| 1| 100000| 100|0.58788749| PASSED sts_serial| 2| 100000| 100|0.74321831| PASSED sts_serial| 3| 100000| 100|0.99831050| WEAK sts_serial| 3| 100000| 100|0.84737426| PASSED sts_serial| 4| 100000| 100|0.93110407| PASSED sts_serial| 4| 100000| 100|0.83324035| PASSED sts_serial| 5| 100000| 100|0.94421934| PASSED sts_serial| 5| 100000| 100|0.81289554| PASSED sts_serial| 6| 100000| 100|0.53951612| PASSED sts_serial| 6| 100000| 100|0.82451508| PASSED sts_serial| 7| 100000| 100|0.12968066| PASSED sts_serial| 7| 100000| 100|0.96902381| PASSED sts_serial| 8| 100000| 100|0.62914226| PASSED sts_serial| 8| 100000| 100|0.40809649| PASSED sts_serial| 9| 100000| 100|0.81970315| PASSED sts_serial| 9| 100000| 100|0.23650429| PASSED sts_serial| 10| 100000| 100|0.15824512| PASSED sts_serial| 10| 100000| 100|0.05486414| PASSED sts_serial| 11| 100000| 100|0.68102644| PASSED sts_serial| 11| 100000| 100|0.75858013| PASSED sts_serial| 12| 100000| 100|0.62086200| PASSED sts_serial| 12| 100000| 100|0.84430970| PASSED sts_serial| 13| 100000| 100|0.50871448| PASSED sts_serial| 13| 100000| 100|0.73534490| PASSED sts_serial| 14| 100000| 100|0.45199677| PASSED sts_serial| 14| 100000| 100|0.99864346| WEAK sts_serial| 15| 100000| 100|0.41340272| PASSED sts_serial| 15| 100000| 100|0.70736625| PASSED sts_serial| 16| 100000| 100|0.63218512| PASSED sts_serial| 16| 100000| 100|0.50342633| PASSED # The file file_input_raw was rewound 14 times rgb_bitdist| 1| 100000| 100|0.07190867| PASSED # The file file_input_raw was rewound 15 times rgb_bitdist| 2| 100000| 100|0.09507940| PASSED # The file file_input_raw was rewound 15 times rgb_bitdist| 3| 100000| 100|0.13197759| PASSED # The file file_input_raw was rewound 15 times rgb_bitdist| 4| 100000| 100|0.33878767| PASSED # The file file_input_raw was rewound 16 times rgb_bitdist| 5| 100000| 100|0.97356278| PASSED # The file file_input_raw was rewound 16 times rgb_bitdist| 6| 100000| 100|0.49599651| PASSED # The file file_input_raw was rewound 17 times rgb_bitdist| 7| 100000| 100|0.52390961| PASSED # The file file_input_raw was rewound 18 times rgb_bitdist| 8| 100000| 100|0.56247751| PASSED # The file file_input_raw was rewound 18 times rgb_bitdist| 9| 100000| 100|0.89189295| PASSED # The file file_input_raw was rewound 19 times rgb_bitdist| 10| 100000| 100|0.65423810| PASSED # The file file_input_raw was rewound 20 times rgb_bitdist| 11| 100000| 100|0.13240810| PASSED # The file file_input_raw was rewound 21 times rgb_bitdist| 12| 100000| 100|0.63913354| PASSED # The file file_input_raw was rewound 21 times rgb_minimum_distance| 2| 10000| 1000|0.00573313| PASSED # The file file_input_raw was rewound 22 times rgb_minimum_distance| 3| 10000| 1000|0.29971515| PASSED # The file file_input_raw was rewound 22 times rgb_minimum_distance| 4| 10000| 1000|0.84618427| PASSED # The file file_input_raw was rewound 22 times rgb_minimum_distance| 5| 10000| 1000|0.44583486| PASSED # The file file_input_raw was rewound 22 times rgb_permutations| 2| 100000| 100|0.96942781| PASSED # The file file_input_raw was rewound 22 times rgb_permutations| 3| 100000| 100|0.89138511| PASSED # The file file_input_raw was rewound 22 times rgb_permutations| 4| 100000| 100|0.65305616| PASSED # The file file_input_raw was rewound 23 times rgb_permutations| 5| 100000| 100|0.66828334| PASSED # The file file_input_raw was rewound 23 times rgb_lagged_sum| 0| 1000000| 100|0.30365013| PASSED # The file file_input_raw was rewound 24 times rgb_lagged_sum| 1| 1000000| 100|0.99471846| PASSED # The file file_input_raw was rewound 25 times rgb_lagged_sum| 2| 1000000| 100|0.98328939| PASSED # The file file_input_raw was rewound 27 times rgb_lagged_sum| 3| 1000000| 100|0.65811353| PASSED # The file file_input_raw was rewound 29 times rgb_lagged_sum| 4| 1000000| 100|0.90999393| PASSED # The file file_input_raw was rewound 32 times rgb_lagged_sum| 5| 1000000| 100|0.90755735| PASSED # The file file_input_raw was rewound 35 times rgb_lagged_sum| 6| 1000000| 100|0.37747152| PASSED # The file file_input_raw was rewound 39 times rgb_lagged_sum| 7| 1000000| 100|0.96116962| PASSED # The file file_input_raw was rewound 43 times rgb_lagged_sum| 8| 1000000| 100|0.63557385| PASSED # The file file_input_raw was rewound 47 times rgb_lagged_sum| 9| 1000000| 100|0.84620009| PASSED # The file file_input_raw was rewound 52 times rgb_lagged_sum| 10| 1000000| 100|0.22309746| PASSED # The file file_input_raw was rewound 58 times rgb_lagged_sum| 11| 1000000| 100|0.97905456| PASSED # The file file_input_raw was rewound 63 times rgb_lagged_sum| 12| 1000000| 100|0.40789997| PASSED # The file file_input_raw was rewound 70 times rgb_lagged_sum| 13| 1000000| 100|0.99502738| WEAK # The file file_input_raw was rewound 77 times rgb_lagged_sum| 14| 1000000| 100|0.66531832| PASSED # The file file_input_raw was rewound 84 times rgb_lagged_sum| 15| 1000000| 100|0.99726778| WEAK # The file file_input_raw was rewound 91 times rgb_lagged_sum| 16| 1000000| 100|0.62953343| PASSED # The file file_input_raw was rewound 99 times rgb_lagged_sum| 17| 1000000| 100|0.79626906| PASSED # The file file_input_raw was rewound 108 times rgb_lagged_sum| 18| 1000000| 100|0.76906633| PASSED # The file file_input_raw was rewound 117 times rgb_lagged_sum| 19| 1000000| 100|0.64242791| PASSED # The file file_input_raw was rewound 126 times rgb_lagged_sum| 20| 1000000| 100|0.35872780| PASSED # The file file_input_raw was rewound 136 times rgb_lagged_sum| 21| 1000000| 100|0.75769227| PASSED # The file file_input_raw was rewound 147 times rgb_lagged_sum| 22| 1000000| 100|0.25849858| PASSED # The file file_input_raw was rewound 157 times rgb_lagged_sum| 23| 1000000| 100|0.86224195| PASSED # The file file_input_raw was rewound 169 times rgb_lagged_sum| 24| 1000000| 100|0.99944663| WEAK # The file file_input_raw was rewound 180 times rgb_lagged_sum| 25| 1000000| 100|0.73249761| PASSED # The file file_input_raw was rewound 193 times rgb_lagged_sum| 26| 1000000| 100|0.93039082| PASSED # The file file_input_raw was rewound 205 times rgb_lagged_sum| 27| 1000000| 100|0.95635141| PASSED # The file file_input_raw was rewound 218 times rgb_lagged_sum| 28| 1000000| 100|0.45029993| PASSED # The file file_input_raw was rewound 232 times rgb_lagged_sum| 29| 1000000| 100|0.79591709| PASSED # The file file_input_raw was rewound 246 times rgb_lagged_sum| 30| 1000000| 100|0.23515616| PASSED # The file file_input_raw was rewound 260 times rgb_lagged_sum| 31| 1000000| 100|0.96924535| PASSED # The file file_input_raw was rewound 275 times rgb_lagged_sum| 32| 1000000| 100|0.70167206| PASSED # The file file_input_raw was rewound 275 times rgb_kstest_test| 0| 10000| 1000|0.17174273| PASSED # The file file_input_raw was rewound 276 times dab_bytedistrib| 0| 51200000| 1|0.76625095| PASSED # The file file_input_raw was rewound 276 times dab_dct| 256| 50000| 1|0.34018369| PASSED Preparing to run test 207. ntuple = 0 # The file file_input_raw was rewound 276 times dab_filltree| 32| 15000000| 1|0.55623971| PASSED dab_filltree| 32| 15000000| 1|0.17330907| PASSED Preparing to run test 208. ntuple = 0 # The file file_input_raw was rewound 276 times dab_filltree2| 0| 5000000| 1|0.61793921| PASSED dab_filltree2| 1| 5000000| 1|0.35896612| PASSED Preparing to run test 209. ntuple = 0 # The file file_input_raw was rewound 277 times dab_monobit2| 12| 65000000| 1|0.24267987| PASSED
Mazel tov!