Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

New random number generator!

"The brightness of the object also varies dramatically, by a factor of 100, and the signal switches on and off apparently at random. We've never seen anything like it."



Cloudfare famously uses images of a wall of lava lamps as a random number generator (https://blog.cloudflare.com/randomness-101-lavarand-in-produ...)

Makes me wonder if photos of the sky are sufficiently random to be used this way? Does the image vary enough and does an attacker see a sufficiently different view even if really physically close? Etc.


It’s more useful to take a sensitive detector and crank the sensitivity to maximum and put it in the dark. The randomness inherent in high iso noise on a cmos camera sensor is actually quite random. Adding actual stars to it might only decrease the randomness you might be able to see from the night sky without a telescope, in this case a radio telescope.


Camera sensors have the same amount of noise regardless of ISO. It's just that bigger or better-engineered sensors have less noise period, so less is revealed as you raise the gain (ISO). I might have written a little about this: https://ko-fi.com/post/What-the-heck-is-ISO-A-sensitive-ques...

The ideal for this would be an old sensor with lots of noise since anything new would have very little visible at any ISO. Maybe even the sensor in the camera they use for the lava lamps!

A lava lamp has the benefit of being fully analog. There's no way to exploit it to make it predictable without physical access to mess with the chemistry to make the blobs stop moving around, and you'd have to do it to all of them without anyone noticing the blobs stopped blubbing. The camera on it 24/7 would make this a bit hard.


The source of your randomness matters much less than insuring that your adversary doesn't have access to it, and that you collect enough entropy from it. As long as you have a good lower bound on the amount of entropy per unit time that your source generates, and the source is secure, the physical details of the source don't really matter.


That sounds like a non-trivial energy expenditure. Hopefully it's part of their office heating plan.


It looks like there's 100 lamps. If they have regular 20W bulbs in them like any lava lamp, then that's just 2kW being used for this. Not nothing, but in an office it might as well be. That's less than a single AC unit. If you want to save energy in an office start by switching off equipment at night.


It also helps serve the needs of millions of websites. This is like the mileage of a freight train: you have to look at how many tons it carries in that distance compared to alternatives. That's 2KW for easy true randomness. They have to get it some way, and this is probably the most efficient option for their purposes.


From the end of the blog post, the LavaRand project was never actually used as a primary source of random numbers.

>Hopefully we’ll never need it. Hopefully, the primary sources of randomness used by our production servers will remain secure, and LavaRand will serve little purpose beyond adding some flair to our office. But if it turns out that we’re wrong, and that our randomness sources in production are actually flawed, then LavaRand will be our hedge, making it just a little bit harder to hack Cloudflare.

So, no, it isn't serving a purpose for millions of websites. It's 2kW of lamps running as a backup in an office nobody is going into right now to even look at.


Yes, it is. I'm not sure what you think that post says, but it means LavaRand is currently serving a purpose in production. The whole point is to add more randomness to their other methods to protect against exploits or failures in the implementation of those methods. This is like the drives in a RAID setup. All those drives are a waste of power if you only care about when things work right. The point is to provide safety when things break.

The previous paragraph:

>> "LavaRand is a system that uses lava lamps as a secondary source of randomness for our production servers. A wall of lava lamps in the lobby of our San Francisco office provides an unpredictable input to a camera aimed at the wall. A video feed from the camera is fed into a CSPRNG, and that CSPRNG provides a stream of random values that can be used as an extra source of randomness by our production servers. Since the flow of the “lava” in a lava lamp is very unpredictable,1 “measuring” the lamps by taking footage of them is a good way to obtain unpredictable randomness. Computers store images as very large numbers, so we can use them as the input to a CSPRNG just like any other number."


But unfortunately it's not. In the analogy given in the comment I responded to, these lava lamps are a locomotive burning fuel while not actually moving any load. Sure it's there to "serve a purpose" if the primary breaks, but that doesn't mean it's doing any work when the primary is functioning just fine.


This is the check on the primary. It moots the concern of whether or not the primary is working. You could turn them off, but then the system is open to all the vulnerabilities known and unknown this mitigates.


It’s probably not literally the most efficient, but it is very good publicity. It is deliberately displayed behind the reception as a talking point.


It's definitely not the most efficient. Let's get that straight. Even within the space of "cameras pointed at chaotic systems", it's trivial to imagine less energy intensive chaotic systems than a rack of heaters convecting molten wax.


2kW still seems like a lot compared to just putting the cameras in a lightless cardboard box, which will work just as well.

This is energy spent because it looks cool, not because it's effective.


Why even use a camera? Use an avalanche diode and sample the noise.


Of course. I'm just pointing out the inefficiency by noting a minimal modification that would use less power.

An even more minimal modification would be to use those USB-powered "glitter" lava lamps. The idea that 2 kilowatts of heat being dumped into molten wax represents some kind of efficiency optimum is completely absurd.


Stop using your computer, its a non trivial energy expenditure


If they use heating at all (and not just AC) and have a thermostat as everyone else it would automatically account for the extra heat and not run the furnace as much. This is also why a blanket ban on incandescent lightbulbs is silly.


A blanket ban on incandescents is not at all silly. Your underlying assumption, that 100% is the peak efficiency for electricity to heat, is false.

Heat pumps.


Fair enough, I haven’t considered that. I would still prefer a tax or something over an all out ban but that’s a different conversation.


why tho? given that there are more efficient ways to produce light and heat and there are drop in replacements for incandescents?

Do you just prefer blackbody spectrums?


Yes on spectrums, I’m also sensitive to flicker and it’s hard to find LEDs that consistently don’t (I understand that it can be done with some circuitry - but then again I could just not use LEDs).


Late to the party, but using low watt incandescent bulbs to stop small compartments from freezing in winter is a classic off grid cabin and camper van trick.


IANAC but any sufficiently secure RNG implementation should be inherently wasteful.


It doesn't need to be inherently wasteful. A reverse-biased diode provides a completely unpredictable source of noise while also taking extremely little power.

Or cranking up the sensitivity of a sensor.

Or reading the low bit of an ADC.

All of these provide good entropy sources without being wasteful.


it's not _actual_ lava you know? Probably not significant


You can never be sure... https://dilbert.com/strip/2001-10-25


I like to tell people who play the lottery they should go for 1 2 3 4 5 6 as it's just as likely to come up.


That is not a good strategy. That pattern is just as likely to come up. However, should it come up, you are almost guaranteed to split the pot.

The best strategy is to not play. The second best strategy is to minimize the chance of splitting the pot.


But it's bad advice compared to a random selection because these are all numbers with meaning for people. Many people who enter lotteries use meaningful numbers such as days of birth. So 1 2 3 4 5 6 is just as likely as any set of numbers to come up but if you do win you're more likely to be sharing the jackpot with other people who chose the same set.


But does it really matter? If you selected another number on that basis and then 1 2 3 4 5 6 won, you would still be kicking yourself as splitting the pot is better than no pot at all.


You have the same chance of hitting right combination if you enter 12345 or a random number chosen by a wall of lava lamps. But you have lower expected return since more people will use 12345 than your particular random number.

Expected return being size of the pot you can win multiplied by probability of winning. It's the first number that is lower when everybody has the same bright idea at once.


It does really matter. It's certainly better to have x% chance to win y, than x% change to win z, for z < y. Psychologically, if you assume you lose (and you're "kicking yourself") then avoid betting on popular sets, because it's better to miss a chance to win $100 000 (10 way split) that you would get by betting on a popular set, than to miss a chance to win $1 000 000 that you would get by betting on a unique set.


My favourite of the Dilberts!



It’s sending pi, but we missed the first quadrillion digits.


All compressed data looks like random noise. If it didn’t, then it wasn’t compressed enough.


An RNG that all your friends and enemies also have access to


If that's intelligent life, they could then attack our encryption!


Oh, haha, is THAT what's going to do it? :)


Yes - They want our Bitcoins!


And here I thought intelligent life meant actual intelligence.


What if other people use the same signal?




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

Search: