Abstract
This work investigates the potential of evolving an initial seed with Grammatical Evolution (GE), for the construction of cryptographically secure (CS) pseudo-random number generator (PRNG). We harness the flexibility of GE as an entropy source for returning initial seeds. The initial seeds returned by GE demonstrate an average entropy value of 7.920261600000001 which is extremely close to the ideal value of 8. The initial seed combined with our proposed approach, control_flow_incrementor, is used to construct both, GE-PRNG and GE-CSPRNG.The random numbers generated with CSPRNG meet the prescribed National Institute of Standards and Technology (NIST) SP800-22 requirements. Monte Carlo simulations established the efficacy of the PRNG. The experimental setup was designed to estimate the value for pi, in which 100,000,000 random numbers were generated by our system and which resulted in returning the value of pi to 3.146564000, with a precision up to six decimal digits. The random numbers by GE-PRNG were compared against those generated by Python’s rand() function for sampling. The sampling results, when measured for accuracy against twenty-nine real world regression datasets, showed that GE-PRNG had less error when compared to Python’s rand() against the ground truths in seventeen of those, while there was no discernible difference in the remaining twelve.