3

I have a source which generates secrets at $8-10 bits $ per second. I need to use this secret to feed another generator every second. I am wondering how long should I wait while I am concatenating 8 bits every second and then use longer bits as input to hash.

I have two options:

  1. Use 8 bit that I get every second, hash it and send to next level every second.

  2. Wait for say 10 seconds then hash the final say 100 bit. In between for 9 seconds keep sending hashed value of previous 100 bit using public informations.

Which one is more secure? I am using HKDF for hashing.

Jay
  • 195
  • 10
  • What do you mean that your source generates secrets? Do you possibly mean entropy as input for a PRNG / DRBG, i.e. random number generator? In that case, why not use a DRBG algorithm instead of HKDF? Those have specific methods to update the entropy. Secret bits are bits that you tend to distribute and store so that you can reuse them, e.g. as key for a symmetric cipher. – Maarten Bodewes Jun 19 '17 at 10:19
  • By source generating secrets I mean I have a shared randomness between two parties which is quantized to generate secret string of $1's & 0's$, 8-10 bits per sec.

  • I am using this secret string to drive PRNG. Since there is a minimum requirement of length of PRNG and I cannot use same seed for each time to drive PRNG I planned to use hashed values in each turn.

  • So dilema is whether to give longer bit stream to hash or give short string each time.

    – Jay Jun 19 '17 at 10:43
  • 3
    I suggest you read the Fortuna paper and following works. It speaks to your situation quite well. – Thomas M. DuBuisson Jun 19 '17 at 13:38