Slashdot Mirror


LavaRnd: A Open Source Project for Truly Random Numbers

Phil Windley writes "Truly random numbers are crucial to good encryption. Most people have heard of Silicon Graphic's use of Lava Lamps to generate random numbers. There were some problems: it required special SGI hardware and software along with six lava lamps, and the solution wasn't portable. But the biggest drawback was that SGI patented the idea so it wasn't freely available. Now, some of the scientists behind the SGI random number system have create LavaRnd, an open source project for creating truly random numbers using inexpensive cameras, open source code, and inexpensive hardware. The system uses a saturated CCD in a light-tight can as a chaotic source to produce the seed. Software processes the result into truly random numbers in a variety of formats. The result is a random number that is crytographically sound, ranking at the top of its class in the NIST 800-22 Billion bit test. Its even portable, so the truly paranoid can take it with them when they travel."

23 of 549 comments (clear)

  1. Analog is the key by whatch+durrin · · Score: 3, Interesting
    Isn't the key to generating a truly random number having an essentially analog source?

    That being said, could you not measure the exact voltage on a CPU, or the ambient temperature to several decimals, or other environmental conditions, then use that as a base?

    --
    ***
    Radio Shack. You've got questions...we've got blank stares(TM).
    1. Re:Analog is the key by hackstraw · · Score: 2, Interesting

      Isn't the key to generating a truly random number having an essentially analog source?

      Not necessarily. Its best to have some kind of chaotic source. Also, being that the world we live in is analog, not digital, aren't all sources analog in nature?

      An interesting source for chaotic conditions would be weather. If one could pick a seed from an arbitrary date in history and a seed for some arbitrary extra weather condition (increase/decrease temp, humidity, pressure, etc) and feed that back into a weather simulator, you should get some nice chaos pretty quickly.

    2. Re:Analog is the key by MxTxL · · Score: 2, Interesting

      Isn't the key to generating a truly random number having an essentially analog source?

      Well, no. Just a strict analog source would be good if you could poll it at random intervals. Unfortuantely, most regular analog sources follow a sine curve when you get to looking closely enough. Temperature will tend to fluctuate within a X of a degree around a certain temperature. No matter what resolution you look to, it will do the same thing, go a little up, and a little down. Basically following a sine curve. Polling this at random to some number of decimals would be fine, but you can't define 'at random'... which is the whole point. If i told my computer to get the temperature at regular intervals, it would get predictable numbers.... and you can't use random intervals, if you had those you wouldn't have to go through this!

  2. other semiconductors by fortunatus · · Score: 5, Interesting

    audio circuits often use diode junctions in reverse-breakdown mode as a source of "white noise". couldn't we computer folks do the same? seems a similar idea to the the dark CCD technique.

    1. Re:other semiconductors by Anonymous Coward · · Score: 1, Interesting

      I thought the SID chip (audio chip in Commodor 64) used something like that, or other resistive load to generate its white/pink noise. You could also access it as an 8 bit value.

      That always seemed a very random, random number source.

  3. A mic listening to the environment? by van+der+Rohe · · Score: 4, Interesting

    I'm not a math guy. At all.
    So forgive me if this is dumb or not the right idea.
    But why not just use a sensitive microphone listening to the ambience in a room to "seed" some sort of algorithm?

    1. Re:A mic listening to the environment? by Anonymous Coward · · Score: 1, Interesting

      Even using mouse clicks, keystroke times, etc. is not random. Thats why its called "pseudo-random". Processing normal everyday sound through a PRNG (pseudo random number generator) is still only pseudo, not real.

      A pseudo random number generator is an algorithm which creates apparently random sequences of numbers but is in fact not random at all. Mouse clicks, keystroke times, etc. are not "pseudo random" but genuinely random. It's just that not every part of these signals is random. The randomness is modulated onto a non-random signal, but this does not disqualify them as pseudo-random. The real problem is that they contain relatively little randomness (random bits per second) and are therefore not suitable for applications which require a continuous and fast supply of random numbers (or can't rely on human interaction for randomness).

  4. what about audio output? by mbreitba · · Score: 5, Interesting

    I had a friend that 5 or 6 years ago used the "white noise" from his SB 16 to generate random numbers. Wouldn't this be much more portable than a lava lamp? -Matt

  5. cool idea for a case mod by kisrael · · Score: 3, Interesting

    going back to the original idea, how cool would it be to have a lava lamp inside the case, maybe helping out all those heatsinks by converting heat into lava-moving power...with a window so you can see it as it generated all the random numbers you needed.

    "Anyone who considers arithmetical methods of producing random numbers is, of course, in a state of sin."
    --John von Neumann

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
  6. Re:Bizarre sequences of random numbers by drewbradford · · Score: 4, Interesting

    What strikes me as odd is that the term "random numbers" is still used even among us, the excessively nerdy. Of course, pseudo-random is better, but I think that "unpredictable" would be the best term.

    All numbers generated are based on something, so they'll never be truly random. The best that we can do is make them truly unpredictable, such that it cannot be determined which specific factors they are based on.

    ===
    http://www.drewbradford.com/

  7. What about double-slit experiment? by dschuetz · · Score: 3, Interesting

    I've always wondered if the double-slit experiment, in a particle mode, would be a good way to generate random numbers.

    The phenomena (for those unfamilar with it) is putting two closely-spaced slits in a piece of paper and then shining a light through it. You end up with a spreading fringe of light and dark patterns, as the light waves coming through the slits interfere with each other.

    Where it gets spooky is when you drop the light source down to where it emits photons one at a time -- they *still* interfere with each other, even though there aren't any other photons present at any given point to interfere with.

    Anyway, I seem to recall that the place where each photon ends up is random. So why not put a low-power, stream-of-single-photons light source on one side of the double-slit, and a pair of sensors on the other side? Label one sensor "0" and the other "1" and interpret the strings as binary numbers. Convert (and optionally send them through a bit blender) and you're done.

    I'd think this could be manufactured in a small chip-like package, and made a standard motherboard component.

    Has anyone investigated this approach? If so, I'd be curious to hear what their results were (and if it turns out not to be as random as one would like).

  8. Why not use a simple ZENER DIODE by melted · · Score: 2, Interesting

    This will produce a truly random signal (white noise) which is completely unpredictable. $0.05 solution + $2-5 in external components is all you need.

  9. Randomness based on loss by phorm · · Score: 2, Interesting

    How about transmitting a signal through some form of changing medium? Really, with the lavalamp approach, all that fancy webcam stuff isn't needed. How about just using a lavalamp type setup with various different floating substances (density, reflectiveness, etc) and shooting some for of beam through it at various areas - calculating the number based on the returned signal?
    You don't really need a lavalamp for this either, passing an electrical signal over a short arc-gap, perhaps filling with a changing substance would probably also product random voltage fluxation.

    Of course, the real issue is making randomness with a large range (1-100% with many many decimal points) and a large enough variability (that is, any decimal number between 1-100% having an equal opportunity for occuring at any particular interval).

    I'm thinking that in electrical and biochemical reactions there would also be a lot of randomness, the wide-universe and entropy and all considered?.

  10. Re:Can't be done. by CyberGarp · · Score: 4, Interesting

    Ahh contrair, you assume hidden variables young grasshopper. Even Einstein had trouble believing that quantum physics depended on randomness. The hidden variable theory has been attacked from many angles, and noone has been able to prove yet that there are hidden variables, in fact there is much evidence that quantum mechnics depends on randomness.

    --

    I used to wonder what was so holy about a silent night, now I have a child.
  11. whatch_durrin vs. VIA by henele · · Score: 4, Interesting
    From an article on VIA's Antaur processor...

    "The Antaur also ships with Via's "Padlock" feature, a random-number generator that actually produces "true" random numbers by measuring random components of the thermal energy produced by the chip, according to its designer, Glenn Henry. RNG generators can be used to develop true randomized cryptographic keys."

  12. Re:Bizarre sequences of random numbers by malfunct · · Score: 2, Interesting
    What always bothers me is when people want uniformly distributed random numbers. I know why its valuable but if you make sure that your numbers are uniformly distributed they aren't really random anymore.

    Its just as likely to get all 0's or all 1's as it is to get any other single random number and yet 9 out of 10 people would probably say all 0's or all 1's isn't a random result, even when it comes from a random source.

    I guess the big misunderstanding is that once you have a number, its not random, you know what it is. A random pattern is probably better defined as one you can't predict, and once you have it, recreating it with the same process is not likely.

    --

    "You can now flame me, I am full of love,"

  13. Silly overkill by Phil+Karn · · Score: 3, Interesting
    Generating random bits with a lava lamp has always seemed like silly, impractical overkill to me. For years, the Linux kernel has had the /dev/random driver that distills entropy from external events, and now it can be seeded by the hardware random bit generators found in many modern CPUs.

    Nearly every PC also has a sound interface that could also be used as a rich source of random seed bits. You don't even need a microphone; just crank up the gain and digitize the analog noise in the microphone preamp.

  14. Re:Bizarre sequences of random numbers by Anonymous Coward · · Score: 1, Interesting

    THis is not true. It's a founding tenant of quantum physics that quantum fluctuations are truly, and completely random. Therefore any system that can be influenced by microscopic quantum fluctuations will have some element of true randomness. This is why people like chaotic systems for this, where a little tiny push wildly changes the results. That allows the true randomness from the microscopic world to seep in and eventually produce truly random numbers.

    -Tyler
    tjw19@columbia.edu

  15. complex solution to a simple problem by orb_fan · · Score: 2, Interesting

    High geek-factor aside, this seems way to complex for the simple task of generating random numbers.

    Why not have a simple electronic circuit (it's been years since I've done any circuit design) that's balanced so that thermal noise produce ticks. Stick a USB interface on it and there you have it. A device you could carry in your pocket.

  16. This is too cushy. by finallyHasANickname · · Score: 2, Interesting
    1. Put flock on a transducer (microphone).
    2. Play with it to discover what will turn out to be a normal distribution curve of frequency response.
    3. Connect an A/D/RS-232 converter to it.
    4. Blow at it, recording the white noise.
    5. Employ compensation for the resonance, shuffling and compression at will--all in software.
    6. Call it good.

    The hedonic value should be high enough to leverage OSS on sourceforge more quickly than pr0n (even). Neglecting software development costs and software "mass production costs" (smirk), the project should cost $30 in quantities of one.

    Hey, should we skip step one? (shrug) If we do, then I'm sorry I said this was too cushy. I lied. ;-)

  17. why the big can? by Anonymous Coward · · Score: 1, Interesting

    Why not spray paint or electrical tape?

  18. Re: Humans have trouble creating random numbers by big-magic · · Score: 3, Interesting

    When I was in grad school (for mathematics), I took a course on probability. On the first day, the Prof gave an assigment for half the class to create a list of 100 random numbers using dice (actually one die). The other half of the class was to create the same list (numbers between 1 and 6), but without using any dice. The Prof then put all the pages in a pile, and was able to perfectly separate the pile based on which method was used to create the page with only a quick glance at each page.

    We later learned that he was able to separate them by looking at runs of numbers. For a list of 100 uniformly distributed numbers (between 1 and 6), there is a very high probability (90% or greater) that there will be a consecutive run where the same number occurs 5 or 6 times in a row. But the people that manually created their list will almost never add such a run, because it doesn't seem "random" enough.

    What is really "random" is a very hard question that has occupied many brilliant people over the last century.

  19. Re:Bizarre sequences of random numbers by kasperd · · Score: 2, Interesting

    There is no test you can apply to determine that 25 is random, while 44 is not.

    Read the definition again, it actually does make some sense. The number 7^99 is not a random number because the description I just wrote is a lot shorter than the number itself. The number 61070941271139577504711647465813663675921309412553 1498031084978534953383702400017179 OTOH has the same length as the previous number, but I have no shorter description of this number. In fact I did get it from a random source, but I have no way to prove that this is a random number.

    --

    Do you care about the security of your wireless mouse?