<?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>Tue, 24 Jan 2012 19:58:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
	<item>
		<title>By: Tyler Oderkirk</title>
		<link>http://www.outflux.net/blog/archives/2009/10/22/tpm-as-rng/comment-page-1/#comment-890</link>
		<dc:creator>Tyler Oderkirk</dc:creator>
		<pubDate>Thu, 25 Mar 2010 03:45:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.outflux.net/blog/?p=255#comment-890</guid>
		<description>In his comment above Mirabilos has kindly summarized information from section 4.2.5 &quot;Random Number Generator&quot; in Part 1 &quot;Design Principles&quot; in the TPM spec v1.2 Level 2 Revision 103 [phew]. You can find it at http://www.trustedcomputinggroup.org/resources/tpm_main_specification if you want to read it yourself (Kees provided a link above).

Thanks for the informative post Kees!

-Tyler</description>
		<content:encoded><![CDATA[<p>In his comment above Mirabilos has kindly summarized information from section 4.2.5 &#8220;Random Number Generator&#8221; in Part 1 &#8220;Design Principles&#8221; in the TPM spec v1.2 Level 2 Revision 103 [phew]. You can find it at <a href="http://www.trustedcomputinggroup.org/resources/tpm_main_specification">http://www.trustedcomputinggroup.org/resources/tpm_main_specification</a> if you want to read it yourself (Kees provided a link above).</p>
<p>Thanks for the informative post Kees!</p>
<p>-Tyler</p>
]]></content:encoded>
	</item>
	<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">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/">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>

