1
$\begingroup$

I need a set of seeds $S=\{s_1,..., s_n\}$, for pseudo-random function where seed $s_i$ is used to generate a set of pseudo-random values. Obviously I need to be able to regenerate the sets of pseudo-random values, but I do not want to keep the seeds. Thus, I'd like to use a master seed to generate the other seeds.

Question: Would it be secure if I generate a seed for pseudo-random function and then use it to generate a set of seeds?

If not what a solution would be?

By secure I mean the pseudo-random values should not be distinguished from random values.

$\endgroup$
  • 4
    $\begingroup$ That's the job for a KDF $\endgroup$ – fgrieu Oct 20 '15 at 20:12
1
$\begingroup$

I believe it seems similar to random and urandom function in unix/Linux system. Once the physical entropy/seed is not enough, one would block and the other would generate the seed based on current ones. From security point of view, pure random entropy should be better choice, but in practical, I don't see the problem with seed generation. It should be indistinguishable to some extent if your initial seeds are pure random.. like from physical entropy.

$\endgroup$
  • $\begingroup$ Thank you for the answer. you said "... if your initial seeds are pure random...". The problem is that only the initial seed is purely random and the other seeds are derived from it. $\endgroup$ – user153465 Oct 21 '15 at 8:57
  • $\begingroup$ @user153465 As long as your initial seed is purely random, and secure from being obtained from attackers, you should be fine in most cases. Only when your application need high level security like bank transaction and regulation compliance, you need feed more initial pure random seed. Once it is “random enough” with initial seed, attacker would be impractical to figure out the pattern. Suggest to read the talk in BlackHat'15. $\endgroup$ – mitkook Oct 21 '15 at 15:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.