Added the collision test.
Improved the runs test and the blocks and gaps test.
Included the autocorrelation test in its windowed version (which gives the same result when the block size is 1 bit).
Also improved the parameter error checking.
Download the new Windows
which includes the new parameters.
Added an improved version of the AMLS test. The old version was good only for few hundred sequences (NT in the source code). With the new statistics, the test is good for any number of sequences.
Changed the DFT test with a 2-D version; now it's even more sensitive.
Added three parameters (KSmin, ADmin and SLmax) to control whether the sequences are failing the tests while RaBiGeTe is running (please, refer to the documentation).
Download the new GUI
which includes the new parameters (and other improvements).
This new version of RaBiGeTe can be stopped by pressing the escape key. This way the program will show the overall results for the tested sequences and there won't be any memory leakage (which happens when CTRL-C is pressed).
Source code: added #define _PROVA_ to easily include/exclude all the generators and the debug code; slightly changed the module "RBG.cpp" to facilitate the inclusion of the hard coded generators to test (also added some remark); added the macro _FASTCALL_ (defined in the module "defi.h") for the calling convention which can be #defined as __fastcall to speed-up the executable (if the compiler support it).
2005-02-21 IMPORTANT UPDATE
The function to compute the discrete Fourier transform (used in the DFT test) gives wrong results when the sequence length is of some particular form (like, for example 4,671,488 bits) and the float type is used (which is the default in RaBiGeTe).
How to fix the problem
The easiest way is to change the module "REAL.h" writing only:
typedef double REAL;
but I can't guarantee that with that change the DFT function will work for any sequence length because I haven't written the DFT function and I don't know how it works.
The best way is to download the new version of RaBiGeTe which includes the fast and reliable FFTW library.
To take full advantage of FFTW speed, I introduced a new test parameter: DFToptimize (please, refer to the RaBiGeTe manual for a detailed description).
The new version of RaBiGeTe includes many other improvements; please, see the documentation for the complete list and details.
Fixed the module "gamma.cpp" to run on both little-endian and big-endian CPU's.
Added the coupon collector's test.
Improved NOTM test: block size form 2 to 31 bits, templates created on the fly (with no memory allocation), changed the hard coded test parameters to be more stringent.
Released new source code by Valerio Gionco which can be compiled under Windows, Linux and Solaris.
Released the executables for Windows, Linux/x86 and Solaris/SPARC.
Added the permutation test and few minor improvements.
New release: C++ source code, executable, documentation and test vector.
C source code withdrawn because of some bug.
C source code by Dr. Brian Gladman available.
C++ source code available.
What my program does
With RaBiGeTe the user can test a random or pseudo-random bit or number generator to see whether it has the characteristics expected in a true random generator.
RaBiGeTe runs under Windows (in the DOS prompt).
It includes the following tests:
Runs (a stronger and generalized version);
Blocks'n'gaps (an improved version of the FIPS140 Runs test);
Windowed autocorrelation (which now includes the 1-bit block size version);
AMLS (an improved version of the old AMLS test);
DFT (the new 2-D version of my very sensitive test);
Non overlapping template matchings (improved version of the NIST test);
Short blocks generalized variant (my test. A generalized version of the poker and monobit tests);
Sparse occupancy bitstream (derived from the gorilla test of the Diehard suite);
Maurer (improved version of the Maurer's universal statistical test);
Serial two-bit (FIPS140);
Long blocks (NIST BlockFrequency);
Cumulative sum (NIST);
Rank for 6x8 matrices (Diehard);
Rank for 31x31 matrices (Diehard);
Rank for 32x32 matrices (Diehard);
Tough birthday spacings (Diehard).
RaBiGeTe is highly configurable along with the test parameters.
RaBiGeTe needs one or more binary file (supplied by the user) containing the bits to test. It is possible to use the wildcards to test several files.
The user enables the tests he likes and he changes the test parameters using a configuration file (I included "paraTST").
In a DOS prompt the user writes: "rabigete paraTST" (without quotation marks).
The program will save the p-values and the overall results in the file specified by the parameter "OutFile" (the default name is "_RaBiGeTe.txt").
all the needed files to run
RaBiGeTe (1.41 MB).