Section 4.9.2 of FIPS PUB 140-2 specifies, amongst other things, a "Continuous random number generator test." Here are the relavant bits:
- If each call to a[n] RNG produces blocks of n bits (where n > 15), [...] Each subsequent generation of an n-bit block shall be compared with the previously generated block. The test shall fail if any two compared n-bit blocks are equal.
- If each call to a[n] RNG produces fewer than 16 bits, [...] (for some n > 15) [...] Each subsequent generation of n bits shall be compared with the previously generated n bits. The test fails if any two compared n-bit sequences are equal.
Isn't (n > 15) too small?
I am concerned about their choice of 16 being the minimum for 'n'. At 16-bits, one would expect to see the test fail, inappropriately, about every 64,000 iterations. That is rather frequent! Even an 'n' of 32 will lead to noticeable false positives if the RNG is being used very frequently.
In my specific case, I have a 32-bit TRNG, and would much rather stretch 'n' to 64 to prevent false positives.
Thoughts?