<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: TPM as RNG</title>
	<atom:link href="http://www.outflux.net/blog/archives/2009/10/22/tpm-as-rng/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.outflux.net/blog/archives/2009/10/22/tpm-as-rng/</link>
	<description>code is freedom -- patching my itch</description>
	<lastBuildDate>Fri, 12 Mar 2010 03:50:35 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jo Shields</title>
		<link>http://www.outflux.net/blog/archives/2009/10/22/tpm-as-rng/comment-page-1/#comment-795</link>
		<dc:creator>Jo Shields</dc:creator>
		<pubDate>Fri, 23 Oct 2009 20:12:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=255#comment-795</guid>
		<description>&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542599&quot; rel=&quot;nofollow&quot;&gt;Bug #542599&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542599" rel="nofollow">Bug #542599</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mirabilos</title>
		<link>http://www.outflux.net/blog/archives/2009/10/22/tpm-as-rng/comment-page-1/#comment-793</link>
		<dc:creator>mirabilos</dc:creator>
		<pubDate>Fri, 23 Oct 2009 09:53:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=255#comment-793</guid>
		<description>I’ve written the same in shell, as a proof of concept, and will probably
be combining MirBSD cprng(8) (which does truerand as dæmon), tpmrng (the
shell prototype) and a *SIMPLE* (only read packets and put them into the
kernel pool, until the Lua dæmon can be run) http://www.entropykey.co.uk/
client into one dæmon that can even be put on the installer.

I’ve read through all the TPM specs I could find re. its RNG functions
and found that:

• output function is most probably SHA-1 for most of them; the standard
  specifies that the TPM is allowed to answer with blocks of the SHA-1
  output size even if requested larger blocks

• while a TPM *may* have a HW RNG on it, it *may* also be some different
  kind, even a PRNG, as long as the internal state can NEVER be recovered
  either by the user or by the manufacturer after it is sealed at the end
  of the production process, even with StirRandom

This basically means that, while it may not be a HW RNG, it’s good enough
for at least *some* bits during runtime of a system, and, when added to
the kernel main entropy pool, helps but can’t hurt (due to mixing).</description>
		<content:encoded><![CDATA[<p>I’ve written the same in shell, as a proof of concept, and will probably<br />
be combining MirBSD cprng(8) (which does truerand as dæmon), tpmrng (the<br />
shell prototype) and a *SIMPLE* (only read packets and put them into the<br />
kernel pool, until the Lua dæmon can be run) <a href="http://www.entropykey.co.uk/" rel="nofollow">http://www.entropykey.co.uk/</a><br />
client into one dæmon that can even be put on the installer.</p>
<p>I’ve read through all the TPM specs I could find re. its RNG functions<br />
and found that:</p>
<p>• output function is most probably SHA-1 for most of them; the standard<br />
  specifies that the TPM is allowed to answer with blocks of the SHA-1<br />
  output size even if requested larger blocks</p>
<p>• while a TPM *may* have a HW RNG on it, it *may* also be some different<br />
  kind, even a PRNG, as long as the internal state can NEVER be recovered<br />
  either by the user or by the manufacturer after it is sealed at the end<br />
  of the production process, even with StirRandom</p>
<p>This basically means that, while it may not be a HW RNG, it’s good enough<br />
for at least *some* bits during runtime of a system, and, when added to<br />
the kernel main entropy pool, helps but can’t hurt (due to mixing).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
