<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 19, 2021 at 1:21 AM Kent Borg <<a href="mailto:kentborg@borg.org">kentborg@borg.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <div>On 5/13/21 8:48 AM, Ron Garret wrote:<br>
    </div>
    <blockquote type="cite">
      
      The hard part is not finding good sources of entropy.  The hard
      part is protecting that source against tempest attacks and other
      forms of eavesdropping.</blockquote>
    <p>No.</p>
    <p>The hard part about RNGs is that when they fail, they usually do
      so silently.</p></div></blockquote><div><div class="gmail_default" style="font-size:small">Amen. there is almost nothing you can do to prevent someone compromising a RNG in ways that you can't detect at the application level. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Also what we are after is not 'entropy' it is 'unguessability'. The seed can be perfectly random but that won't help if the seed can be leaked via a side channel. In the days of RSA, that nice big modulus was the perfect place to smuggle out the encrypted seed. Instead of picking p and q and calculating the modulus, pick a seed, use it to pick p then encrypt the seed in and that is the top 256 bits of the modulus and divide in p to get the rest just as Moti Yung taught us.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">So the way I (try) to look at it, I treat my RNG output as likely to be compromised and make sure that I never reveal the output to an adversary without passing it through a digest or a KDF. </div><br></div><div><br></div><div><br></div><div> </div></div></div>