Scientists have created the world's first nanophotonic electron accelerator, which speeds negatively charged particles with mini laser pulses and is small enough to fit on a coin.
I’ve got an unconventional application idea for this particle accelerator on a chip.
True random number generation. There’s loads of random information that can be measured from such a device in a controlled manner.
If you could fit one of these on a motherboard then you wouldn’t even need to call a pseudo random number generator algorithm anymore, you can pull data directly from the chip.
There’s already hardware RNGs on computer chips – e.g. the RDRAND instruction on most x86 chips from the last decade or so uses a hardware entropy source as part of its behavior. The quality, of course, is one of those things people go “Uh, can I really trust this…?” about though.
Additionally, PRNGs still have uses even if you do trust hardware RNGs; determinism is a very useful property in software – it is way, way easier to debug something deterministic (by running a PRNG with a specific seed over and over while testing) even if you want the final version to be randomized unpredictably for users. They also tend to be faster.
I’ve heard that you could pull random numbers from a basic thermometer. Is a hardware RNG just based on measuring the random noise of some measurement like that?
This documentation from Intel says of the entropy source that “The ES runs asynchronously on a self-timed circuit and uses thermal noise within the silicon to output a random stream of bits at the rate of 3 GHz.” By thermal noise, I believe they mean this sort of noise but this is not my subject of expertise (I’m a programmer, not an EE or physicist). Not sure what AMD uses, but probably something similar, I’d expect.
While they may be as secure, I would not call that the same level of random. I’ll agree they are equal in almost every use case, but truly random is still “more random” in comparison.
Though I’ll concede that if it can’t be proven to be truly random, it’s not of much use.
How do you measure the amount of “true randomness”? CSPRNGs can use very little entropy to generate large amounts of random data. Mathematically speaking there isn’t any difference between that and what you call “true randomness” - if there was, they wouldn’t be CSPRNGs.
Truly random would be something that is impossible to reproduce. While you are correct that we can approximate randomness, the final calculation can always be replicated if the initial inputs are known. Just because something is exceedingly difficult to replicate, doesn’t mean it is truly random.
Think of it like cleaning your pool. You have a vacuum, chemicals, the system circulates, maybe a skimmer or a net. You can get the pool to the point that it is acceptable to swim in, but you’re never actually swimming in a clean pool. In a similar manner, current random number generators get you to a point that you are (usually) fine assuming the number is random, but it never really is.
Honestly you won’t be able to build a device with this thing in it for cheaper than alternatives. For home usage it’s about 50-100$. And a good enough PCI card like Quantis will be 3000$ with a bandwidth of 240Mbps.
And that’s not even discussing bandwidth. In most cases bandwidth (number of random bits generated per second) is the limiting factor in usage. You want them to be fast enough that when you need a number you’re not waiting for it.
I’ve got an unconventional application idea for this particle accelerator on a chip.
True random number generation. There’s loads of random information that can be measured from such a device in a controlled manner.
If you could fit one of these on a motherboard then you wouldn’t even need to call a pseudo random number generator algorithm anymore, you can pull data directly from the chip.
There’s already hardware RNGs on computer chips – e.g. the RDRAND instruction on most x86 chips from the last decade or so uses a hardware entropy source as part of its behavior. The quality, of course, is one of those things people go “Uh, can I really trust this…?” about though.
Additionally, PRNGs still have uses even if you do trust hardware RNGs; determinism is a very useful property in software – it is way, way easier to debug something deterministic (by running a PRNG with a specific seed over and over while testing) even if you want the final version to be randomized unpredictably for users. They also tend to be faster.
I’ve heard that you could pull random numbers from a basic thermometer. Is a hardware RNG just based on measuring the random noise of some measurement like that?
This documentation from Intel says of the entropy source that “The ES runs asynchronously on a self-timed circuit and uses thermal noise within the silicon to output a random stream of bits at the rate of 3 GHz.” By thermal noise, I believe they mean this sort of noise but this is not my subject of expertise (I’m a programmer, not an EE or physicist). Not sure what AMD uses, but probably something similar, I’d expect.
Sounds more complicated than what it’s worth tbh
You underestimate what a truly random number generator would be worth then.
There are easier ways to get the same level of randomness.
Removed by mod
The same level as locally truly random? What provides that same level of random?
Proovably secure PRNGs are as secure as TRNGs. All you need is enough entropy and that you can get from plenty of sources.
A single chip you rely on for entropy is a problem as you cant look inside. Therefore you cant trust it fully.
While they may be as secure, I would not call that the same level of random. I’ll agree they are equal in almost every use case, but truly random is still “more random” in comparison.
Though I’ll concede that if it can’t be proven to be truly random, it’s not of much use.
How do you measure the amount of “true randomness”? CSPRNGs can use very little entropy to generate large amounts of random data. Mathematically speaking there isn’t any difference between that and what you call “true randomness” - if there was, they wouldn’t be CSPRNGs.
Truly random would be something that is impossible to reproduce. While you are correct that we can approximate randomness, the final calculation can always be replicated if the initial inputs are known. Just because something is exceedingly difficult to replicate, doesn’t mean it is truly random.
Think of it like cleaning your pool. You have a vacuum, chemicals, the system circulates, maybe a skimmer or a net. You can get the pool to the point that it is acceptable to swim in, but you’re never actually swimming in a clean pool. In a similar manner, current random number generators get you to a point that you are (usually) fine assuming the number is random, but it never really is.
Agreed.
Honestly you won’t be able to build a device with this thing in it for cheaper than alternatives. For home usage it’s about 50-100$. And a good enough PCI card like Quantis will be 3000$ with a bandwidth of 240Mbps.
And that’s not even discussing bandwidth. In most cases bandwidth (number of random bits generated per second) is the limiting factor in usage. You want them to be fast enough that when you need a number you’re not waiting for it.
Yes. It isn’t hard to generate random numbers in hardware. It is hard to generate them very fast. This device would not help solve that problem.
deleted by creator