<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Hi</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF">You want to marry your smart card as a source of entropy to a DBRG
and reseed the DBRG from the smart card fairly often. See NIST
SP800-90A for the general form for a DBRG.<br></div></blockquote><div><br></div><div>Since 2007 and 2013, the SP800-90A has been criticized ;)</div><div>All the controversy aside, the simultaneous use is a good idea, though.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF">Alternately, you can use multiple sources of entropy - a smart card,
a TPM, one of the TRNGs from above and use them to seed the DBRG.
That way you're not dependent on any of these being "trusted".
Simplest way to do this is XOR the N streams of TRNG data together
to provide the seed and reseed data. Oh yeah - most modern Intel
motherboards and processors support the RDRAND and RDSEED
instructions and there is software to expose those for use.
(<a class="gmail-m_-63490650965874880moz-txt-link-freetext" href="https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide" target="_blank">https://software.intel.com/<wbr>en-us/articles/intel-digital-<wbr>random-number-generator-drng-<wbr>software-implementation-guide</a>)<br>
<br>
As long as your TRNG can keep up with the reseed schedule, you can
get a *lot* of bits out of the DRBG.<br></div></blockquote><div><br></div><div>I'll dig into that some more</div><div> <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 bgcolor="#FFFFFF">WRT to the smart card, my guess is there is a TRNG backing a DBRG of
some sort. <br></div></blockquote><div><br></div><div>Again, this may be checked if I have the source code of the PKCS11 driver, yes? </div><div><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 bgcolor="#FFFFFF">I wouldn't trust a generic PKCS11 driver to do what you want.<br></div></blockquote><div><br></div><div>Do you mean "generic" as in a driver not provided by the vendor itself? (i.e. OpenSC or Charismatics) </div><div><br></div><div>Cheers</div></div><br></div></div>