<?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: Haveged &#8211; A True Random Number Generator</title>
	<atom:link href="http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/feed/" rel="self" type="application/rss+xml" />
	<link>http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/</link>
	<description>Linux.  GNU.  Freedom.</description>
	<lastBuildDate>Fri, 17 May 2013 20:46:35 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6-beta2-24176</generator>
	<item>
		<title>By: Aaron Toponce</title>
		<link>http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/#comment-117014</link>
		<dc:creator>Aaron Toponce</dc:creator>
		<pubDate>Sat, 06 Oct 2012 14:15:06 +0000</pubDate>
		<guid isPermaLink="false">http://pthree.org/?p=2497#comment-117014</guid>
		<description><![CDATA[Because the entropy created from the standard system stuff day-to-day, is &quot;good enough&quot; for most users. If you want more, then haveged is available.]]></description>
		<content:encoded><![CDATA[<p>Because the entropy created from the standard system stuff day-to-day, is &#8220;good enough&#8221; for most users. If you want more, then haveged is available.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt Campbell</title>
		<link>http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/#comment-117004</link>
		<dc:creator>Matt Campbell</dc:creator>
		<pubDate>Thu, 04 Oct 2012 17:06:48 +0000</pubDate>
		<guid isPermaLink="false">http://pthree.org/?p=2497#comment-117004</guid>
		<description><![CDATA[So why isn&#039;t haveged yet a part of every GNU/Linux distro&#039;s base installation? Is it just too obscure, or is there some kind of trade-off?

Thanks for blogging about this.]]></description>
		<content:encoded><![CDATA[<p>So why isn&#8217;t haveged yet a part of every GNU/Linux distro&#8217;s base installation? Is it just too obscure, or is there some kind of trade-off?</p>
<p>Thanks for blogging about this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marc Deslauriers</title>
		<link>http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/#comment-116940</link>
		<dc:creator>Marc Deslauriers</dc:creator>
		<pubDate>Mon, 17 Sep 2012 23:05:11 +0000</pubDate>
		<guid isPermaLink="false">http://pthree.org/?p=2497#comment-116940</guid>
		<description><![CDATA[@guwertz: Interesting, thanks for clearing that up.]]></description>
		<content:encoded><![CDATA[<p>@guwertz: Interesting, thanks for clearing that up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Toponce</title>
		<link>http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/#comment-116939</link>
		<dc:creator>Aaron Toponce</dc:creator>
		<pubDate>Mon, 17 Sep 2012 19:46:25 +0000</pubDate>
		<guid isPermaLink="false">http://pthree.org/?p=2497#comment-116939</guid>
		<description><![CDATA[Marc Deslaureiers- I was going to correct your comment, but guwertz has already done so. http://www.issihosts.com/haveged/history.html#havege explains it fairly well. caching, interrupts, etc.

Jason- /dev/urandom uses the Yarrow PRNG. It too draws on entropy as /dev/random does, but when exhausted, will turn to Yarrow to generate the numbers. As will all performant PRNGs, a period is associated with Yarrow, and after so many have been generated, the rest can be predicted. In this case, it&#039;s a 128-bit period.]]></description>
		<content:encoded><![CDATA[<p>Marc Deslaureiers- I was going to correct your comment, but guwertz has already done so. <a href="http://www.issihosts.com/haveged/history.html#havege" rel="nofollow">http://www.issihosts.com/haveged/history.html#havege</a> explains it fairly well. caching, interrupts, etc.</p>
<p>Jason- /dev/urandom uses the Yarrow PRNG. It too draws on entropy as /dev/random does, but when exhausted, will turn to Yarrow to generate the numbers. As will all performant PRNGs, a period is associated with Yarrow, and after so many have been generated, the rest can be predicted. In this case, it&#8217;s a 128-bit period.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: guwertz</title>
		<link>http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/#comment-116938</link>
		<dc:creator>guwertz</dc:creator>
		<pubDate>Mon, 17 Sep 2012 17:40:15 +0000</pubDate>
		<guid isPermaLink="false">http://pthree.org/?p=2497#comment-116938</guid>
		<description><![CDATA[havege does not use TSC drift. havege relies on variations of execution timing - not the same thing at all. Execution timing in a modern processor depends on all sort of caching: l1 data, l1 instruction, translation look-aside buffers, branch predictors. In any realistic interrupt driven system, the elapsed time for execution a series of instructions in unpredictable - anyone who has ever bench marked code will agree. A high resolution timer is needed to scale this effect down to where the benchmark can be performed quickly enough to serve as a RNG. Actually it is not quite that simple because the signal is weak and highly skewed (log normal) and some art is needed to create uniformly distributed output.

The polar SSL link shows one of the few ways this can go wrong: a badly virtualized TSC. AFAIK, the only way to deal with this is to validate operation at run time. That is what the latest haveged now does. It uses the AIS-31 test suite used in German CC certification to verify correct operation at run time.]]></description>
		<content:encoded><![CDATA[<p>havege does not use TSC drift. havege relies on variations of execution timing &#8211; not the same thing at all. Execution timing in a modern processor depends on all sort of caching: l1 data, l1 instruction, translation look-aside buffers, branch predictors. In any realistic interrupt driven system, the elapsed time for execution a series of instructions in unpredictable &#8211; anyone who has ever bench marked code will agree. A high resolution timer is needed to scale this effect down to where the benchmark can be performed quickly enough to serve as a RNG. Actually it is not quite that simple because the signal is weak and highly skewed (log normal) and some art is needed to create uniformly distributed output.</p>
<p>The polar SSL link shows one of the few ways this can go wrong: a badly virtualized TSC. AFAIK, the only way to deal with this is to validate operation at run time. That is what the latest haveged now does. It uses the AIS-31 test suite used in German CC certification to verify correct operation at run time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/#comment-116933</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Sun, 16 Sep 2012 23:00:52 +0000</pubDate>
		<guid isPermaLink="false">http://pthree.org/?p=2497#comment-116933</guid>
		<description><![CDATA[I don&#039;t know where entropy falls into what I&#039;m about to say, but;
I&#039;ve heard for years that /dev/random&#039;s limitations are mostly overcome by /dev/urandom

Is entropy not included in that statement?]]></description>
		<content:encoded><![CDATA[<p>I don&#8217;t know where entropy falls into what I&#8217;m about to say, but;<br />
I&#8217;ve heard for years that /dev/random&#8217;s limitations are mostly overcome by /dev/urandom</p>
<p>Is entropy not included in that statement?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marc Deslauriers</title>
		<link>http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/#comment-116931</link>
		<dc:creator>Marc Deslauriers</dc:creator>
		<pubDate>Sun, 16 Sep 2012 22:31:01 +0000</pubDate>
		<guid isPermaLink="false">http://pthree.org/?p=2497#comment-116931</guid>
		<description><![CDATA[AFAIK, Havege uses TSC drift as a random source of entropy, but recent CPUs now have an accurate TSC, so havege hasn&#039;t been generating random numbers for a while now. This is also an issue in certain virtualized environments.

PolarSSL had to switch away from using Havege as the basis of their RNG because of this issue:
http://polarssl.org/trac/wiki/SecurityAdvisory201102]]></description>
		<content:encoded><![CDATA[<p>AFAIK, Havege uses TSC drift as a random source of entropy, but recent CPUs now have an accurate TSC, so havege hasn&#8217;t been generating random numbers for a while now. This is also an issue in certain virtualized environments.</p>
<p>PolarSSL had to switch away from using Havege as the basis of their RNG because of this issue:<br />
<a href="http://polarssl.org/trac/wiki/SecurityAdvisory201102" rel="nofollow">http://polarssl.org/trac/wiki/SecurityAdvisory201102</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jpope</title>
		<link>http://pthree.org/2012/09/14/haveged-a-true-random-number-generator/#comment-116926</link>
		<dc:creator>jpope</dc:creator>
		<pubDate>Sat, 15 Sep 2012 15:51:49 +0000</pubDate>
		<guid isPermaLink="false">http://pthree.org/?p=2497#comment-116926</guid>
		<description><![CDATA[Thanks for this post. My webserver had a ~160 bit average entropy according to munin. I hadn&#039;t even thought about looking to increase this but, after installing haveged, my server seems to average ~2000. 
And after a little more research, I&#039;ve found that &quot;hackers&quot; can utilize low entropy situations by guessing some bits. A higher available entropy will help security some by making it more difficult to randomly guess bits.]]></description>
		<content:encoded><![CDATA[<p>Thanks for this post. My webserver had a ~160 bit average entropy according to munin. I hadn&#8217;t even thought about looking to increase this but, after installing haveged, my server seems to average ~2000.<br />
And after a little more research, I&#8217;ve found that &#8220;hackers&#8221; can utilize low entropy situations by guessing some bits. A higher available entropy will help security some by making it more difficult to randomly guess bits.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
