I wanted to spot check the quality of the random numbers generated by
NOISE.SYS
I read that:
> Statistically testing a PRNG requires quite a lot (10 or even 100 GB)
AND
> All tests of RNGs are based on a "null hypothesis", meaning if they
> fail, they show the RNG may be flawed. But if they pass, it does
> not mean it is good.
Keeping these in mind, i decided that ENT was good enough for me.
ENT home page
<
https://www.fourmilab.ch/random/>
ENT DJGPP build
<
gopher://tilde.pink/9/~bencollver/files/dos386/util/gnupg/ent14.zip>
Comparing the resulting Chi-square percentages:
* Linux has 93.44% (almost suspect) and
* NOISE.SYS has 97.88% (suspect).
This seems to indicate a problem in NOISE.SYS.
I'm a hacker not a cryptographer, so i don't know how to fix it.
Linux
=====
$ dd if=/dev/random of=linux.dat bs=1024 count=1024
$ ent <linux.dat
Entropy = 7.999848 bits per byte.
Optimum compression would reduce the size
of this 1048576 byte file by 0 percent.
Chi square distribution for 1048576 samples is 221.79, and randomly
would exceed this value 93.44 percent of the times.
Arithmetic mean value of data bytes is 127.4089 (127.5 = random).
Monte Carlo value for Pi is 3.143658232 (error 0.07 percent).
Serial correlation coefficient is 0.001572 (totally uncorrelated = 0.0).
FreeDOS
=======
C:\NOISE>busy.bat
C:\NOISE>sample.exe noise.dat 1048576 -ar
Repeat this hundreds of times until noise.dat reaches the desired size.
C:\ENT>ent <C:\NOISE\NOISE.DAT
Entropy = 7.999855 bits per byte.
Optimum compression would reduce the size
of this 1048576 byte file by 0 percent.
Chi square distribution for 1048576 samples is 211.27, and randomly
would exceed this value 97.88 percent of the times.
Arithmetic mean value of data bytes is 127.5550 (127.5 = random).
Monte Carlo value for Pi is 3.146267495 (error 0.15 percent).
Serial correlation coefficient is 0.000964 (totally uncorrelated = 0.0).