An analysis of quality of random number generator of Flipper Zero
Based on the Hello World of zmactep
Flipper Zero has a true random number generator according his CPU datasheet : The devices embed a true RNG that delivers 32-bit random numbers generated by an integrated analog circuit.
I'd like verify the quality of random numbers generated by the Flipper Zero
Flipper Zero toolchain provides two functions to generate random numbers by using hardware generator :
- uint32_t furi_hal_random_get() : to obtain 32 bits of random data
- void furi_hal_random_fill_buf(uint8_t* buf, uint32_t len) : to fill a buffer of random data
I wrote a program that generates a file filled with 256MB of random data on the SD card (/random.dat)
Assuming the toolchain is already installed, copy flipper_random directory to applications_user
Plug your Flipper Zero and build the program :
./fbt launch_app APPSRC=applications_user/flipper_random
The program will automatically be launched after compilation :
The generation takes about 30 minutes. The program will automatically quit after generation
If you don't want to build the program, just simply copy flipper_random.fap on your Flipper Zero
dieharder is a testing and benchmarking tool for random number generators
Copy /random.dat file on your computer and launch the following command :
dieharder -a -g 201 -f random.dat
Click here to view results
diehard_birthdays| 0| 100| 100|0.55487123| PASSED
diehard_operm5| 0| 1000000| 100|0.79201568| PASSED
diehard_rank_32x32| 0| 40000| 100|0.59923892| PASSED
diehard_rank_6x8| 0| 100000| 100|0.92342072| PASSED
diehard_bitstream| 0| 2097152| 100|0.94159229| PASSED
diehard_opso| 0| 2097152| 100|0.00747132| PASSED
diehard_oqso| 0| 2097152| 100|0.18263591| PASSED
diehard_dna| 0| 2097152| 100|0.07915675| PASSED
diehard_count_1s_str| 0| 256000| 100|0.31495403| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.69912362| PASSED
diehard_parking_lot| 0| 12000| 100|0.82688871| PASSED
diehard_2dsphere| 2| 8000| 100|0.44704427| PASSED
diehard_3dsphere| 3| 4000| 100|0.52652864| PASSED
diehard_squeeze| 0| 100000| 100|0.51781721| PASSED
diehard_sums| 0| 100| 100|0.64623799| PASSED
diehard_runs| 0| 100000| 100|0.99573267| WEAK
diehard_runs| 0| 100000| 100|0.48267656| PASSED
diehard_craps| 0| 200000| 100|0.08522731| PASSED
diehard_craps| 0| 200000| 100|0.08212908| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.00000003| FAILED
marsaglia_tsang_gcd| 0| 10000000| 100|0.00053548| WEAK
sts_monobit| 1| 100000| 100|0.09876225| PASSED
sts_runs| 2| 100000| 100|0.44896009| PASSED
sts_serial| 1| 100000| 100|0.72550312| PASSED
sts_serial| 2| 100000| 100|0.14638226| PASSED
sts_serial| 3| 100000| 100|0.45251237| PASSED
sts_serial| 3| 100000| 100|0.77572552| PASSED
sts_serial| 4| 100000| 100|0.59680397| PASSED
sts_serial| 4| 100000| 100|0.87343622| PASSED
sts_serial| 5| 100000| 100|0.39471355| PASSED
sts_serial| 5| 100000| 100|0.24502794| PASSED
sts_serial| 6| 100000| 100|0.08909655| PASSED
sts_serial| 6| 100000| 100|0.10717243| PASSED
sts_serial| 7| 100000| 100|0.83451597| PASSED
sts_serial| 7| 100000| 100|0.97964565| PASSED
sts_serial| 8| 100000| 100|0.36201175| PASSED
sts_serial| 8| 100000| 100|0.65209729| PASSED
sts_serial| 9| 100000| 100|0.99071115| PASSED
sts_serial| 9| 100000| 100|0.17544767| PASSED
sts_serial| 10| 100000| 100|0.82309444| PASSED
sts_serial| 10| 100000| 100|0.68136773| PASSED
sts_serial| 11| 100000| 100|0.43365875| PASSED
sts_serial| 11| 100000| 100|0.97170671| PASSED
sts_serial| 12| 100000| 100|0.72900319| PASSED
sts_serial| 12| 100000| 100|0.99584984| WEAK
sts_serial| 13| 100000| 100|0.21530249| PASSED
sts_serial| 13| 100000| 100|0.79026626| PASSED
sts_serial| 14| 100000| 100|0.12890705| PASSED
sts_serial| 14| 100000| 100|0.55255830| PASSED
sts_serial| 15| 100000| 100|0.78891114| PASSED
sts_serial| 15| 100000| 100|0.98063270| PASSED
sts_serial| 16| 100000| 100|0.10522510| PASSED
sts_serial| 16| 100000| 100|0.07350635| PASSED
rgb_bitdist| 1| 100000| 100|0.98396352| PASSED
rgb_bitdist| 2| 100000| 100|0.72379672| PASSED
rgb_bitdist| 3| 100000| 100|0.01351080| PASSED
rgb_bitdist| 4| 100000| 100|0.95524449| PASSED
rgb_bitdist| 5| 100000| 100|0.05370261| PASSED
rgb_bitdist| 6| 100000| 100|0.44257180| PASSED
rgb_bitdist| 7| 100000| 100|0.03501509| PASSED
rgb_bitdist| 8| 100000| 100|0.39167067| PASSED
rgb_bitdist| 9| 100000| 100|0.99180288| PASSED
rgb_bitdist| 10| 100000| 100|0.82502082| PASSED
rgb_bitdist| 11| 100000| 100|0.10809183| PASSED
rgb_bitdist| 12| 100000| 100|0.49863013| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.59643869| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.60902822| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.32342827| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.97899401| PASSED
rgb_permutations| 2| 100000| 100|0.02271425| PASSED
rgb_permutations| 3| 100000| 100|0.28577729| PASSED
rgb_permutations| 4| 100000| 100|0.68895384| PASSED
rgb_permutations| 5| 100000| 100|0.38110847| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.00401051| WEAK
rgb_lagged_sum| 1| 1000000| 100|0.23456397| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.01699212| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.60478263| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.04943578| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.15648198| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.12214976| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.07300513| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.71916719| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.22802820| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.00123661| WEAK
rgb_lagged_sum| 11| 1000000| 100|0.29959817| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.25961032| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.11422352| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.16906362| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.00000005| FAILED
rgb_lagged_sum| 16| 1000000| 100|0.27559901| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.22432129| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.28340080| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.38629680| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.44523026| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.16320412| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.29625362| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.31001352| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.04436115| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.02613351| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.05809093| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.80853774| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.10499849| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.01814743| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.32979792| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.00085729| WEAK
rgb_lagged_sum| 32| 1000000| 100|0.02647133| PASSED
rgb_kstest_test| 0| 10000| 1000|0.08770174| PASSED
dab_bytedistrib| 0| 51200000| 1|0.49320605| PASSED
dab_dct| 256| 50000| 1|0.90718786| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.52041788| PASSED
dab_filltree| 32| 15000000| 1|0.97976842| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.61874327| PASSED
dab_filltree2| 1| 5000000| 1|0.74648222| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.65116997| PASSED
2 tests have failed and 6 tests are marked as weak
The same test has been done with 256MB of /dev/urandom data from a Linux computer :
Click here to view results
diehard_birthdays| 0| 100| 100|0.06228484| PASSED
diehard_operm5| 0| 1000000| 100|0.59723602| PASSED
diehard_rank_32x32| 0| 40000| 100|0.43907555| PASSED
diehard_rank_6x8| 0| 100000| 100|0.40014624| PASSED
diehard_bitstream| 0| 2097152| 100|0.17287854| PASSED
diehard_opso| 0| 2097152| 100|0.00246277| WEAK
diehard_oqso| 0| 2097152| 100|0.09822842| PASSED
diehard_dna| 0| 2097152| 100|0.11161138| PASSED
diehard_count_1s_str| 0| 256000| 100|0.49999119| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.23362439| PASSED
diehard_parking_lot| 0| 12000| 100|0.80220017| PASSED
diehard_2dsphere| 2| 8000| 100|0.94573686| PASSED
diehard_3dsphere| 3| 4000| 100|0.74577481| PASSED
diehard_squeeze| 0| 100000| 100|0.14916488| PASSED
diehard_sums| 0| 100| 100|0.06679183| PASSED
diehard_runs| 0| 100000| 100|0.98216693| PASSED
diehard_runs| 0| 100000| 100|0.68559357| PASSED
diehard_craps| 0| 200000| 100|0.61910448| PASSED
diehard_craps| 0| 200000| 100|0.05755020| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.00000001| FAILED
marsaglia_tsang_gcd| 0| 10000000| 100|0.00095699| WEAK
sts_monobit| 1| 100000| 100|0.69389179| PASSED
sts_runs| 2| 100000| 100|0.16671354| PASSED
sts_serial| 1| 100000| 100|0.68748875| PASSED
sts_serial| 2| 100000| 100|0.85633578| PASSED
sts_serial| 3| 100000| 100|0.94268391| PASSED
sts_serial| 3| 100000| 100|0.07086450| PASSED
sts_serial| 4| 100000| 100|0.39714210| PASSED
sts_serial| 4| 100000| 100|0.31252989| PASSED
sts_serial| 5| 100000| 100|0.95694002| PASSED
sts_serial| 5| 100000| 100|0.22962139| PASSED
sts_serial| 6| 100000| 100|0.98097919| PASSED
sts_serial| 6| 100000| 100|0.83795708| PASSED
sts_serial| 7| 100000| 100|0.93683159| PASSED
sts_serial| 7| 100000| 100|0.79020964| PASSED
sts_serial| 8| 100000| 100|0.69377516| PASSED
sts_serial| 8| 100000| 100|0.38116960| PASSED
sts_serial| 9| 100000| 100|0.65940032| PASSED
sts_serial| 9| 100000| 100|0.85500230| PASSED
sts_serial| 10| 100000| 100|0.19849855| PASSED
sts_serial| 10| 100000| 100|0.16446525| PASSED
sts_serial| 11| 100000| 100|0.24735793| PASSED
sts_serial| 11| 100000| 100|0.40482073| PASSED
sts_serial| 12| 100000| 100|0.42946863| PASSED
sts_serial| 12| 100000| 100|0.67986759| PASSED
sts_serial| 13| 100000| 100|0.31904715| PASSED
sts_serial| 13| 100000| 100|0.89958112| PASSED
sts_serial| 14| 100000| 100|0.03516112| PASSED
sts_serial| 14| 100000| 100|0.00572954| PASSED
sts_serial| 15| 100000| 100|0.25516910| PASSED
sts_serial| 15| 100000| 100|0.98134393| PASSED
sts_serial| 16| 100000| 100|0.22681525| PASSED
sts_serial| 16| 100000| 100|0.55438687| PASSED
rgb_bitdist| 1| 100000| 100|0.61526582| PASSED
rgb_bitdist| 2| 100000| 100|0.06936633| PASSED
rgb_bitdist| 3| 100000| 100|0.40179970| PASSED
rgb_bitdist| 4| 100000| 100|0.64740032| PASSED
rgb_bitdist| 5| 100000| 100|0.46472989| PASSED
rgb_bitdist| 6| 100000| 100|0.07941194| PASSED
rgb_bitdist| 7| 100000| 100|0.44461086| PASSED
rgb_bitdist| 8| 100000| 100|0.58109228| PASSED
rgb_bitdist| 9| 100000| 100|0.70960474| PASSED
rgb_bitdist| 10| 100000| 100|0.85137858| PASSED
rgb_bitdist| 11| 100000| 100|0.99935805| WEAK
rgb_bitdist| 12| 100000| 100|0.70354535| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.27460885| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.36311414| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.58342328| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.14794446| PASSED
rgb_permutations| 2| 100000| 100|0.50547110| PASSED
rgb_permutations| 3| 100000| 100|0.18354717| PASSED
rgb_permutations| 4| 100000| 100|0.84601710| PASSED
rgb_permutations| 5| 100000| 100|0.63598280| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.37287317| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.75416576| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.63961879| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.01077529| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.18887727| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.16337583| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.05431404| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.01679565| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.10235939| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.58127552| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.00843829| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.08131415| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.24835950| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.39861688| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.47914954| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.00002898| WEAK
rgb_lagged_sum| 16| 1000000| 100|0.98131072| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.80381793| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.47926388| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.05503440| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.31173700| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.96872067| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.88674529| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.16043397| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.61149972| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.75335182| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.98130242| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.03450865| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.01963495| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.75846016| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.44591545| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.00000137| WEAK
rgb_lagged_sum| 32| 1000000| 100|0.27222461| PASSED
rgb_kstest_test| 0| 10000| 1000|0.68380811| PASSED
dab_bytedistrib| 0| 51200000| 1|0.05530537| PASSED
dab_dct| 256| 50000| 1|0.88665003| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.15196603| PASSED
dab_filltree| 32| 15000000| 1|0.33800187| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.84766841| PASSED
dab_filltree2| 1| 5000000| 1|0.00464316| WEAK
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.69926158| PASSED
Only 1 test has failed and 6 tests are marked as weak
These tests have been done with a larger dataset : 4GB
Flipper Zero :
Click here to view results
diehard_birthdays| 0| 100| 100|0.11059818| PASSED
diehard_operm5| 0| 1000000| 100|0.46243241| PASSED
diehard_rank_32x32| 0| 40000| 100|0.94015510| PASSED
diehard_rank_6x8| 0| 100000| 100|0.06733267| PASSED
diehard_bitstream| 0| 2097152| 100|0.19395269| PASSED
diehard_opso| 0| 2097152| 100|0.88003794| PASSED
diehard_oqso| 0| 2097152| 100|0.94872400| PASSED
diehard_dna| 0| 2097152| 100|0.30016367| PASSED
diehard_count_1s_str| 0| 256000| 100|0.20777586| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.79506176| PASSED
diehard_parking_lot| 0| 12000| 100|0.25422977| PASSED
diehard_2dsphere| 2| 8000| 100|0.72884093| PASSED
diehard_3dsphere| 3| 4000| 100|0.95282276| PASSED
diehard_squeeze| 0| 100000| 100|0.04250899| PASSED
diehard_sums| 0| 100| 100|0.13981924| PASSED
diehard_runs| 0| 100000| 100|0.13508787| PASSED
diehard_runs| 0| 100000| 100|0.02455145| PASSED
diehard_craps| 0| 200000| 100|0.96194561| PASSED
diehard_craps| 0| 200000| 100|0.63547515| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.83452275| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.82545057| PASSED
sts_monobit| 1| 100000| 100|0.68486675| PASSED
sts_runs| 2| 100000| 100|0.91771409| PASSED
sts_serial| 1| 100000| 100|0.58359946| PASSED
sts_serial| 2| 100000| 100|0.92654385| PASSED
sts_serial| 3| 100000| 100|0.65764270| PASSED
sts_serial| 3| 100000| 100|0.98824281| PASSED
sts_serial| 4| 100000| 100|0.35597012| PASSED
sts_serial| 4| 100000| 100|0.53650061| PASSED
sts_serial| 5| 100000| 100|0.62396496| PASSED
sts_serial| 5| 100000| 100|0.36307390| PASSED
sts_serial| 6| 100000| 100|0.28946507| PASSED
sts_serial| 6| 100000| 100|0.28365471| PASSED
sts_serial| 7| 100000| 100|0.49950854| PASSED
sts_serial| 7| 100000| 100|0.13454074| PASSED
sts_serial| 8| 100000| 100|0.52850097| PASSED
sts_serial| 8| 100000| 100|0.72954489| PASSED
sts_serial| 9| 100000| 100|0.62072123| PASSED
sts_serial| 9| 100000| 100|0.99779751| WEAK
sts_serial| 10| 100000| 100|0.80344215| PASSED
sts_serial| 10| 100000| 100|0.54662822| PASSED
sts_serial| 11| 100000| 100|0.77730946| PASSED
sts_serial| 11| 100000| 100|0.72394364| PASSED
sts_serial| 12| 100000| 100|0.81524608| PASSED
sts_serial| 12| 100000| 100|0.94724026| PASSED
sts_serial| 13| 100000| 100|0.16490808| PASSED
sts_serial| 13| 100000| 100|0.64049681| PASSED
sts_serial| 14| 100000| 100|0.80427373| PASSED
sts_serial| 14| 100000| 100|0.68417802| PASSED
sts_serial| 15| 100000| 100|0.26721027| PASSED
sts_serial| 15| 100000| 100|0.26323260| PASSED
sts_serial| 16| 100000| 100|0.98447926| PASSED
sts_serial| 16| 100000| 100|0.15718959| PASSED
rgb_bitdist| 1| 100000| 100|0.04796896| PASSED
rgb_bitdist| 2| 100000| 100|0.67467531| PASSED
rgb_bitdist| 3| 100000| 100|0.73784137| PASSED
rgb_bitdist| 4| 100000| 100|0.26420347| PASSED
rgb_bitdist| 5| 100000| 100|0.81311612| PASSED
rgb_bitdist| 6| 100000| 100|0.57561992| PASSED
rgb_bitdist| 7| 100000| 100|0.38384323| PASSED
rgb_bitdist| 8| 100000| 100|0.01813294| PASSED
rgb_bitdist| 9| 100000| 100|0.66792440| PASSED
rgb_bitdist| 10| 100000| 100|0.53244433| PASSED
rgb_bitdist| 11| 100000| 100|0.98652471| PASSED
rgb_bitdist| 12| 100000| 100|0.65105991| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.23083645| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.70524844| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.48583046| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.30933062| PASSED
rgb_permutations| 2| 100000| 100|0.60895705| PASSED
rgb_permutations| 3| 100000| 100|0.21941196| PASSED
rgb_permutations| 4| 100000| 100|0.73590163| PASSED
rgb_permutations| 5| 100000| 100|0.07132175| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.38382409| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.70103574| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.32942564| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.16065528| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.04307075| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.36550579| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.76352715| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.70833381| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.40294697| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.63587058| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.44264782| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.68265712| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.09088674| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.73280871| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.91610269| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.52377183| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.54507432| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.12436072| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.75817359| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.92098590| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.24942670| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.90198906| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.29765028| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.64622982| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.32519153| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.78321779| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.99840916| WEAK
rgb_lagged_sum| 27| 1000000| 100|0.25324778| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.98251541| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.68916391| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.05570852| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.30522421| PASSED
rgb_lagged_sum| 32| 1000000| 100|0.99929872| WEAK
rgb_kstest_test| 0| 10000| 1000|0.67220840| PASSED
dab_bytedistrib| 0| 51200000| 1|0.64446712| PASSED
dab_dct| 256| 50000| 1|0.95202260| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.09593529| PASSED
dab_filltree| 32| 15000000| 1|0.46540473| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.34519652| PASSED
dab_filltree2| 1| 5000000| 1|0.24694486| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.93595240| PASSED
3 tests are marked as weak
/dev/urandom :
Click here to view results
diehard_birthdays| 0| 100| 100|0.04489731| PASSED
diehard_operm5| 0| 1000000| 100|0.98102302| PASSED
diehard_rank_32x32| 0| 40000| 100|0.80720399| PASSED
diehard_rank_6x8| 0| 100000| 100|0.25129153| PASSED
diehard_bitstream| 0| 2097152| 100|0.95556255| PASSED
diehard_opso| 0| 2097152| 100|0.55521693| PASSED
diehard_oqso| 0| 2097152| 100|0.91941987| PASSED
diehard_dna| 0| 2097152| 100|0.23352172| PASSED
diehard_count_1s_str| 0| 256000| 100|0.60912108| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.47545424| PASSED
diehard_parking_lot| 0| 12000| 100|0.61642584| PASSED
diehard_2dsphere| 2| 8000| 100|0.14367357| PASSED
diehard_3dsphere| 3| 4000| 100|0.45610233| PASSED
diehard_squeeze| 0| 100000| 100|0.53733260| PASSED
diehard_sums| 0| 100| 100|0.15714087| PASSED
diehard_runs| 0| 100000| 100|0.48694656| PASSED
diehard_runs| 0| 100000| 100|0.29615453| PASSED
diehard_craps| 0| 200000| 100|0.54351193| PASSED
diehard_craps| 0| 200000| 100|0.97340924| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.32038380| PASSED
marsaglia_tsang_gcd| 0| 10000000| 100|0.15966009| PASSED
sts_monobit| 1| 100000| 100|0.82780276| PASSED
sts_runs| 2| 100000| 100|0.66372170| PASSED
sts_serial| 1| 100000| 100|0.69690502| PASSED
sts_serial| 2| 100000| 100|0.54603984| PASSED
sts_serial| 3| 100000| 100|0.50169411| PASSED
sts_serial| 3| 100000| 100|0.07064586| PASSED
sts_serial| 4| 100000| 100|0.17334216| PASSED
sts_serial| 4| 100000| 100|0.13979783| PASSED
sts_serial| 5| 100000| 100|0.83695398| PASSED
sts_serial| 5| 100000| 100|0.07258805| PASSED
sts_serial| 6| 100000| 100|0.67304762| PASSED
sts_serial| 6| 100000| 100|0.64053099| PASSED
sts_serial| 7| 100000| 100|0.98244793| PASSED
sts_serial| 7| 100000| 100|0.05792291| PASSED
sts_serial| 8| 100000| 100|0.30146615| PASSED
sts_serial| 8| 100000| 100|0.07828512| PASSED
sts_serial| 9| 100000| 100|0.80119364| PASSED
sts_serial| 9| 100000| 100|0.44264581| PASSED
sts_serial| 10| 100000| 100|0.75981289| PASSED
sts_serial| 10| 100000| 100|0.93799740| PASSED
sts_serial| 11| 100000| 100|0.25279644| PASSED
sts_serial| 11| 100000| 100|0.52258261| PASSED
sts_serial| 12| 100000| 100|0.70168523| PASSED
sts_serial| 12| 100000| 100|0.20072352| PASSED
sts_serial| 13| 100000| 100|0.87050967| PASSED
sts_serial| 13| 100000| 100|0.76237414| PASSED
sts_serial| 14| 100000| 100|0.27272393| PASSED
sts_serial| 14| 100000| 100|0.80613522| PASSED
sts_serial| 15| 100000| 100|0.92176493| PASSED
sts_serial| 15| 100000| 100|0.87208395| PASSED
sts_serial| 16| 100000| 100|0.37388632| PASSED
sts_serial| 16| 100000| 100|0.15469900| PASSED
rgb_bitdist| 1| 100000| 100|0.28057802| PASSED
rgb_bitdist| 2| 100000| 100|0.68343411| PASSED
rgb_bitdist| 3| 100000| 100|0.44405469| PASSED
rgb_bitdist| 4| 100000| 100|0.90713693| PASSED
rgb_bitdist| 5| 100000| 100|0.49209205| PASSED
rgb_bitdist| 6| 100000| 100|0.75199988| PASSED
rgb_bitdist| 7| 100000| 100|0.74239445| PASSED
rgb_bitdist| 8| 100000| 100|0.53329955| PASSED
rgb_bitdist| 9| 100000| 100|0.91149445| PASSED
rgb_bitdist| 10| 100000| 100|0.74220741| PASSED
rgb_bitdist| 11| 100000| 100|0.04053006| PASSED
rgb_bitdist| 12| 100000| 100|0.15864202| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.93506783| PASSED
rgb_minimum_distance| 3| 10000| 1000|0.03035361| PASSED
rgb_minimum_distance| 4| 10000| 1000|0.01684604| PASSED
rgb_minimum_distance| 5| 10000| 1000|0.40535950| PASSED
rgb_permutations| 2| 100000| 100|0.73530875| PASSED
rgb_permutations| 3| 100000| 100|0.13793235| PASSED
rgb_permutations| 4| 100000| 100|0.80825360| PASSED
rgb_permutations| 5| 100000| 100|0.82976800| PASSED
rgb_lagged_sum| 0| 1000000| 100|0.30047172| PASSED
rgb_lagged_sum| 1| 1000000| 100|0.02522645| PASSED
rgb_lagged_sum| 2| 1000000| 100|0.25228513| PASSED
rgb_lagged_sum| 3| 1000000| 100|0.91017293| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.31593881| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.59018579| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.62145449| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.52971041| PASSED
rgb_lagged_sum| 8| 1000000| 100|0.69269041| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.92143793| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.70090470| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.96953878| PASSED
rgb_lagged_sum| 12| 1000000| 100|0.06517103| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.87917675| PASSED
rgb_lagged_sum| 14| 1000000| 100|0.79970530| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.73699022| PASSED
rgb_lagged_sum| 16| 1000000| 100|0.61585289| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.30133443| PASSED
rgb_lagged_sum| 18| 1000000| 100|0.97329715| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.09381675| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.57235026| PASSED
rgb_lagged_sum| 21| 1000000| 100|0.46045580| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.90887517| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.64358135| PASSED
rgb_lagged_sum| 24| 1000000| 100|0.94803867| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.40998866| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.81309099| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.61299561| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.74593506| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.73121448| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.25976969| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.00383725| WEAK
rgb_lagged_sum| 32| 1000000| 100|0.01261432| PASSED
rgb_kstest_test| 0| 10000| 1000|0.47923383| PASSED
dab_bytedistrib| 0| 51200000| 1|0.68448302| PASSED
dab_dct| 256| 50000| 1|0.08725468| PASSED
Preparing to run test 207. ntuple = 0
dab_filltree| 32| 15000000| 1|0.66495602| PASSED
dab_filltree| 32| 15000000| 1|0.43040524| PASSED
Preparing to run test 208. ntuple = 0
dab_filltree2| 0| 5000000| 1|0.72723941| PASSED
dab_filltree2| 1| 5000000| 1|0.01631449| PASSED
Preparing to run test 209. ntuple = 0
dab_monobit2| 12| 65000000| 1|0.12068832| PASSED
Only 1 test is marked as weak
In conclusion Flipper Zero hardware random number generator quality is comparable to /dev/urandom