KISS (algorithm)

From Wikipedia, the free encyclopedia

KISS (Keep it Simple Stupid) is a family of pseudorandom number generators introduced by George Marsaglia.[1][2][3] Starting from 1998 Marsaglia posted on various newsgroups including , comp.lang.c, and several versions of the generators. All KISS generators combine three or four independent random number generators with a view to improving the quality of randomness. KISS generators produce 32-bit or 64-bit random integers, from which random floating-point numbers can be constructed if desired. The original 1993 generator is based on the combination of a linear congruential generator and of two linear feedback shift-register generators. It has a period 295, good speed and good statistical properties; however, it fails the LinearComplexity test in the Crush and BigCrush tests of the TestU01 suite.[4] A newer version from 1999 is based on a linear congruential generator, a 3-shift linear feedback shift-register and two multiply-with-carry generators. It is 10–20% slower than the 1993 version but has a larger period 2123 and passes all tests in TestU01. In 2009 Marsaglia presented a version based on 64-bit integers (appropriate for 64-bit processors) which combines a multiply-with-carry generator, a Xorshift generator and a linear congruential generator.[5] It has a period of around 2250 (around 1075).

References[]

  1. ^ Marsaglia, George; Zaman, Arif (1993). "The KISS generator". Technical Report, Department of Statistics, Florida State University, Tallahassee, FL, USA.
  2. ^ Rose, Greg (2018). "KISS: A Bit Too Simple" (PDF). Cryptography and Communications. 10: 123–137. doi:10.1007/s12095-017-0225-x.
  3. ^ Kneusel, Ronald T. (2018). Random Numbers and Computers. Springer. ISBN 978-3-319-77696-5.
  4. ^ L'Ecuyer, Pierre; Simard, Richard (2007). "TestU01: A C Library for Empirical Testing of Random Number Generators". ACM Transactions on Mathematical Software. 33 (4): 22–es. doi:10.1145/1268776.1268777.
  5. ^ "64-bit KISS RNGs". Feb 28, 2009.

Further reading[]

Retrieved from ""