Hacker News new | past | comments | ask | show | jobs | submit login

A very interesting feature of the Ivy Bridge architecture is a new digital random number generator code-named Bull Mountain, which uses teetering as an integral part of its workings. [1]

While consumer-oriented reviews rightfully ignore such things, I reckon that the HN crowd would be pleased to know more about such a nifty hardware solution.

[1] http://spectrum.ieee.org/computing/hardware/behind-intels-ne...




Teetering must be the marketing term they chose... the phenomenon in play has been known as metastability for as long as I've been a digital designer.

And generally speaking, it's something you want to avoid in your designs, not only because of the unpredictability of the final output (whether it resolves to a 1 or 0), but also because of the uncertainty in how long it will take to resolve.

But it seems perfect for generating randomness. Neat idea. The real trick here is that it's only theoretically unpredictable. In real life, due to "imperfections" in fabrication, the inverters will be biased to resolve one way more frequently. So you might end up with a 60/40 split, for example.

I see they do address this in the article, and have added some "conditioning" to eliminate the bias... I bet it's described in a patent somewhere.


It's a fairly well studied area, deriving unbiased randomness from a consistently biased source eg http://web.eecs.umich.edu/~qstout/abs/AnnProb84.html

The simplest approach I know of is to extract a random bit repeatedly until it transitions from 0 to 1 or 1 to 0, and then use the second result. 50/50 split, regardless of any (constant) bias in the generator.


Also, there is a bit set after executing RDRAND that tells you if you got a 'good' random number.


Does anyone else feel like that's the sort of thing that will become part of a vulnerability someday?


No. It's used as a measure to NOT become part of a vulnerability someday, i.e so the system recheck and ask for another random number.


If it's just a flag you can ignore, I think that someone will.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: