<div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 2, 2017 at 6:09 PM, Theodore Ts'o <span dir="ltr"><<a href="mailto:tytso@mit.edu" target="_blank">tytso@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Mon, Jan 02, 2017 at 08:21:16PM +0000, Jason Cooper wrote:<br>
> Well, I disagree.  I'd prefer not to give up just because the rest of it<br>
> is crappy.  It may not always be that way.  We should fix what we have<br>
> the power to fix as soon as we can.  Especially with the long deployment<br>
> cycles of embedded systems.<br>
<br>
</span>It's not a matter of giving up; I'm just questioning your assumption<br>
that there won't be regular clean shutdowns.  If the embedded device<br>
is getting regular security updates, it will very likely be doing<br>
clean shutdowns every month or so.  And if it's not getting regular<br>
security updates, you might as well give the Russian hackers free rein<br>
over the US Power Grid....  (Oh wait, they've already hacked computers<br>
on the US Power Grid.  Maybe fixing the gaping wide security holes<br>
should be higher priority, you think?)<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">​I don't see an issue.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">First, mark a random source as having been used before you use the data out of it.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Second, always put the source through a digest function and mix in a guaranteed monotonically increasing value, e.g. current time. </div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">At a practical level, SHA-2-512 (seed + counter + datetime) is pretty robust because what matters is not how much ergodicity ​is in the pool, it is how much unguessability is there.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Repeating use of a seed value kills unguessabilty but if the seed was unguessable, different calls to the digest function need only have their input vary by one bit to preserve unguessability.</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">There is often a tension between using formal methods and robustness. What you can prove to be secure and what is robustly secure in use are often very different.</div><br></div><div> </div></div><br></div></div>