History of AHS-RNG

After a few attempts with the classic principles of the well-known PRNGs, I quickly realized that only a radically different approach could enable the generation of true random numbers. The smallest unit of random numbers is the individual bit. Ergo, one possible solution would be to try the much-vaunted coin toss as a basis. If it is possible to generate the individual bits with the best possible 50%/50% distribution and complete independence from the previous and subsequent bits, then the generation of genuine random numbers should be possible. The solution found must be described as creative programming and not as an arithmetic algorithm.

The main development work was carried out between 2004 and 2006. The first part was the definition of the "bit fishing table / BFT". In my first opinion the largest possible table seems desirable. I started to experiment with tables of 64 KB and 256 KB. The table had to contain a random distribution of 50% "0" and 50% "1". The possible variants through permutation are in unimaginable orders of magnitude, e.g. for a BFT of 64 KB there are more than 10exp157823 variants. At the moment we are only testing the applications with BFT 8 KB, where there are already more than 6*10exp19725 variations. Every single variation will generate a completely different random number series.

If we want to "fish" a single bit from this table, we still need a fishing rod, so to speak, in this case in the form of an address of a single bit. The solution to this task presented in the AHS-RNG demo is the 16th version of various programs that have slowly, improvement by improvement, led to the current structure. In addition to the logical structure to achieve the goal, the speed of the program execution had to be considered and optimized.

In the beginning, the speed on Pentium 3 and 4 computers with one core was a modest 124 megabits per second per computer, but through further optimization, e.g. through the two 32-bit calculations running in parallel in 64-bit registers, the speed could be increased for modern cores: to over 650 megabits per second and above, depending on the current speed of the core. Compared to good PRNGs (MT19937 or XOshiro256**), the speed is a considerable disadvantage. That is why we insist on recognizing it as a true random number generator, and anyone who does not want to recognize this should prove the deviation from true random numbers. According to our tests with the ID-Quantique (16 megabits/second), AHS-RNG has also a quality advantage over physical random number generators. We also disagree with the claim that computer-generated random numbers lack entropy and we are ready to carry out comparisons in this regard.

The best motivation for intensive research and programming until the breakthrough was a sentence in "Discrete event simulation in C, Kevin Watkins, 1993" page 67: "It is not a good idea, however, to try and design your own from scratch. The design of random number generators is full of nasty surprises for the unwary and is best left to established experts". Anyone who is familiar with me knows that such a statement is a challenge for me that I will try to refute.