# How to reproduce seeds in Random Number Generator like WELL, KISS etc

(I am sure that terminology, padding the seeds, is not correct. If someone knows the proper word, please let me know :) )

## What is padding the seeds that I mentioned?

You know that Pseudo-Random Number generator need seed to do its job properly. For example, one of the most famous RNG, mt19937 need only one seed.

However, in KISS algorithm (George Marsaglia, 2011, 64bit version), you only just need 2 seeds, cng and xs. In the case of Wichmann_hill, you need 3 seeds, s1, s2, s3. In WELL19937 algorithm, you need 624 seeds.

In my opinion, it is easy to get 1 or 2 seeds. But, getting 624 seeds for WELL19937 would be difficult.

So, I think some algorithms would implement "Padding the seeds", which means generating one seeds to on-demand seeds like SHA256. In the case of SHA, if input message does not fit the length, we generate some messages which is called Padding.

## What I want to ask.

1. Is there any proper terminology of "Padding the seeds" in Random Number Generator?

2. How to "Padding the seeds"? Is there any standard?

• This stackexchange site is about cryptography. Cryptography uses Cryptographically Secure Pseudo Random Number Generators (CSPRNGs), which don't take a repeatable external seed. For a secure CSPRNG, reproducing the seed MUST be impossible. Sep 13 at 18:03
• @SAIPeregrinus Yes. I know this site is about Cryptography. And also, Pseudo Random Number (Not CSPRNG) is in bound of Cryptography. Because, one of the most famous textbook, Applied Cryptography, Bruce Schneier, introduces classic Pseudo-Random Number Generator like LCG, LFSR etc. Ok then, if you think this site is not proper to ask, could you recommend where should I ask? Sep 13 at 18:11
• If you're asking about programming such a PRNG you'd just pass in the inputs with whatever method the language used requires, eg pass a pointer to a struct for a C version. Padding would be determined by compiler and architecture. That'd be appropriate for Stackoverflow. Sep 13 at 20:18
• If you're asking about how to find the seed(s) from the output of the PRNG, that's relevant here but there's no such padding process. Sep 13 at 20:19
• A good seed is uniformly random data. It should have shannon entropy close to 1 bit/bit. The easiest way to get that is to use a hardware RNG which whitens its output with a CSPRNG, any other design will be worse for security or performance. If you're trying for a repeatable seed, eg for Monte Carlo simulations, then you just save some output from your csprng to a file and use whatever RNG you want with it, since you don't need security. Sep 16 at 18:51