Pages:
Author

Topic: I am going to build a true random number generator ... - page 3. (Read 7864 times)

legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
That sounds awful complex.  Wouldn't a simple piece of open source software and some easy to acquire hardware be a simpler and more reliable solution?
Depends on the application.  Generally, I'd rather use a code library than worry about hardware.


That doesn't sound like it would satisfy the desired result:

Proving a PRNG is secure is a very difficult task and is impossible when the operating system is not built from source.  Quantum mechanics are non-deterministic and thus provide an alternative method of generating randomness.

Perhaps.  Don't want to get into a long debate, just suggesting there is a lot of real time entropy available through the web as well.  Cheers.
legendary
Activity: 3472
Merit: 4801
That sounds awful complex.  Wouldn't a simple piece of open source software and some easy to acquire hardware be a simpler and more reliable solution?
Depends on the application.  Generally, I'd rather use a code library than worry about hardware.


That doesn't sound like it would satisfy the desired result:

Proving a PRNG is secure is a very difficult task and is impossible when the operating system is not built from source.  Quantum mechanics are non-deterministic and thus provide an alternative method of generating randomness.
legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
It could be combined with the entropy of the exact time a random number request was made, along with additional pseudo random number from the server, hash the result, grab some random parameters from that, go get some random feed from online that is also changing in real time, hash that, and you have a pretty doggone random number that no one could arrive at even if they had your source code. 

That sounds awful complex.  Wouldn't a simple piece of open source software and some easy to acquire hardware be a simpler and more reliable solution?

Depends on the application.  Generally, I'd rather use a code library than worry about hardware.
full member
Activity: 154
Merit: 100
There is certainly a market for something like the entropykey, though it may be small. Open hardware schematics that third parties can make and sell would be great.
legendary
Activity: 3472
Merit: 4801
It could be combined with the entropy of the exact time a random number request was made, along with additional pseudo random number from the server, hash the result, grab some random parameters from that, go get some random feed from online that is also changing in real time, hash that, and you have a pretty doggone random number that no one could arrive at even if they had your source code. 

That sounds awful complex.  Wouldn't a simple piece of open source software and some easy to acquire hardware be a simpler and more reliable solution?
legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
Sure... All I was saying is that making a PROVABLY unflawed rng isn't going to substantially help customer acquisition for reasons I won't bore you with...

What does acquiring customers have to do with this thread?

Thought you were developing it for some business purpose initially.

Btw, why do we need hardware , isn't there enough entropy on the internet that we can access?
It's public entropy, so if anyone knows what you are using, they can generate the same "random" numbers.  A true RNG would mean no one could reproduce the results.

It could be combined with the entropy of the exact time a random number request was made, along with additional pseudo random number from the server, hash the result, grab some random parameters from that, go get some random feed from online that is also changing in real time, hash that, and you have a pretty doggone random number that no one could arrive at even if they had your source code. 
legendary
Activity: 1400
Merit: 1005
Sure... All I was saying is that making a PROVABLY unflawed rng isn't going to substantially help customer acquisition for reasons I won't bore you with...

What does acquiring customers have to do with this thread?

Thought you were developing it for some business purpose initially.

Btw, why do we need hardware , isn't there enough entropy on the internet that we can access?
It's public entropy, so if anyone knows what you are using, they can generate the same "random" numbers.  A true RNG would mean no one could reproduce the results.
legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
Sure... All I was saying is that making a PROVABLY unflawed rng isn't going to substantially help customer acquisition for reasons I won't bore you with...

What does acquiring customers have to do with this thread?

Thought you were developing it for some business purpose initially.

Btw, why do we need hardware , isn't there enough entropy on the internet that we can access?
donator
Activity: 1218
Merit: 1079
Gerald Davis
Have you seen the Simtec Entropykey?

http://www.entropykey.co.uk/

I have a couple that I use for making sure that virtual machines have enough entropy. They appear to work really well.

Sadly I have heard people have been having lots of problems ordering from Simtec recently.

I own one of their keys.  It does seem difficult to order more at the current time for some reason (maybe creator moved on to other projects).  However the simtec is a black box.  I am interested in an open source implementation.  
donator
Activity: 1218
Merit: 1079
Gerald Davis
Sure... All I was saying is that making a PROVABLY unflawed rng isn't going to substantially help customer acquisition for reasons I won't bore you with...

What does acquiring customers have to do with this thread?
full member
Activity: 154
Merit: 100
Have you seen the Simtec Entropykey?

http://www.entropykey.co.uk/

I have a couple that I use for making sure that virtual machines have enough entropy. They appear to work really well.

Sadly I have heard people have been having lots of problems ordering from Simtec recently.
legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
Lol.  No way you're going to steal my coins based on an "only" pseudo random key.
Anyway, not trying to rain on the parade here,  carry on!   Grin

I think you miss the point.  If a PRNG is secure then you have no problems.  Are you SURE your PRNG implementation is secure?  Coins have be stolen in the past due to flawed PRNG implementations.  Now it is unknown if it was just a flaw or an intentional weakness (put there by 3 letter agencies which know they can break unbreakable ciphers when they rely on weak random numbers).  Still it doesn't matter the coins were stolen just the same.

This isn't a commercial project just something I want to do as a hobby and I will make the hardware and software open source.  Hopefully it leads to other open and transparent designs.


Sure... All I was saying is that making a PROVABLY unflawed rng isn't going to
substantially help customer acquisition for reasons I won't bore you with...
Just making a business comment, hope you don't mind! 
donator
Activity: 1218
Merit: 1079
Gerald Davis
Lol.  No way you're going to steal my coins based on an "only" pseudo random key.
Anyway, not trying to rain on the parade here,  carry on!   Grin

I think you miss the point.  If a PRNG is secure then you have no problems.  Are you SURE your PRNG implementation is secure?  Coins have be stolen in the past due to flawed PRNG implementations.  Now it is unknown if it was just a flaw or an intentional weakness (put there by 3 letter agencies which know they can break unbreakable ciphers when they rely on weak random numbers).  Still it doesn't matter the coins were stolen just the same.

http://arstechnica.com/security/2013/08/google-confirms-critical-android-crypto-flaw-used-in-5700-bitcoin-heist/

Even if it was intentionally crippled it may have been for reasons other than Bitcoin, and some Bitcoin users just ended up in the crypto crossfire.  

Of course that isn't the only example not even recently:
http://en.wikipedia.org/wiki/Dual_EC_DRBG
http://www.nytimes.com/2012/02/15/technology/researchers-find-flaw-in-an-online-encryption-method.html?
http://dl.acm.org/citation.cfm?id=1496724
http://eprint.iacr.org/2007/419.pdf

This isn't a commercial project, just something I want to do as a hobby.  If it goes anywhere I intend to make the hardware and software open source.  Hopefully that leads to other open and transparent designs.
legendary
Activity: 1302
Merit: 1008
Core dev leaves me neg feedback #abuse #political
Sounds like a fun project.  Very cool.  But why do you need to prove randomness?
It is unlikely to provide any business advantage in my opinion.

Security. If your private key ain't truly random. I may be able to guess it and steal your bitcoins.

Lol.  No way you're going to steal my coins based on an "only" pseudo random key.
Anyway, not trying to rain on the parade here,  carry on!   Grin
donator
Activity: 1218
Merit: 1079
Gerald Davis
Following what I said above, I think it should be possible to use only one event per bit. Just check whether an interval is shorter or longer than the median of the exponential distribution, which is ln2 divided by the rate parameter (which can be estimated given the half-life).

This will create independent bits but there will be a bias towards 1 or 0, depending on the details of your particular setup.  You need to compare two intervals created by the same process within the same system, instead of replacing one of them with an external constant.

I agree the later is a better solution but using a Von Neumann filter, the bias of independent bits can be removed.  For example in the setup proposed say the system was biased toward producing 0s over 1s.  Since a 00 sequence (or 11 sequence) is discarded and a 01 and 10 sequence are equally likely the bias can be easily removed (01 = 1 and 10 = 0).  Still you end up using at least 2 counts per bit after filtering.  The actual number of counts required will depend on the amount of bias.  The more biased the source the more counts it will take to produce the "rare" 1 needed to complete the sequence.  For example if a system was biased 70%/30% in favor of zeroes then it will require on average 2.38 counts for each bit that passes out of the filter.
legendary
Activity: 1204
Merit: 1002
using radiation is risky.. it has a known half-life which a mathematician could possibly abuse to work out the base number used to then create randomness..
It won't be measuring anything against a base number.  It will be measuring the time between TWO particle detections (if time between this interval is larger than prior interval that is a "1" and if it is shorter it is a "0" and if it is equal we throw it out). 
That's the right way to do it. Von Neumann figured that out around 1950.
hero member
Activity: 1008
Merit: 531
Following what I said above, I think it should be possible to use only one event per bit. Just check whether an interval is shorter or longer than the median of the exponential distribution, which is ln2 divided by the rate parameter (which can be estimated given the half-life).

This will create independent bits but there will be a bias towards 1 or 0, depending on the details of your particular setup.  You need to compare two intervals created by the same process within the same system, instead of replacing one of them with an external constant.
legendary
Activity: 872
Merit: 1010
Coins, Games & Miners
I agree of course. For any practical purpose, you don't even need E. coli - any classical method of inputting external entropy (like moving your mouse around) will probably be more than enough. I was just pointing out why OP's use of radioactive decay is really cool  Smiley

Indeed! it is very cool!

As for Brownian motion, it is random insofar as statistical mechanics is affected by quantum phenomena. You could say that in principle, Brownian motion should be truly random, but in practice the motion of particles is affected by multiple environmental factors that could completely overwhelm the true Brownian component. When we let undergrads peek through a microscope and show them lots of little things moving around, we tell them this is called Brownian motion, but in fact much of this motion could be caused by all sorts of external forces. I suppose you'd need some kind of entirely isolated and adiabatic system to observe true Brownian motion...

Also i'm aware that Brownian motion is completely correlated to the physical properties of the material/specimen/sample being observed, i was expanding over the fact that to obtain a "good enough" TRNG you don't have to go full Quantum (for now, what future holds, i don't know). Also, it would be nice to have a multisource TRNG that is publicly available like Random.org but for cryptocurrencies at large.
member
Activity: 84
Merit: 10
Correct Horse Battery Staple
Sounds like a fun project.  Very cool.  But why do you need to prove randomness?
It is unlikely to provide any business advantage in my opinion.

Security. If your private key ain't truly random. I may be able to guess it and steal your bitcoins.

full member
Activity: 187
Merit: 109
Converting information into power since 1867
Although the "predictability" of E.Coli is provable, the computational power needed to predict every and each movement of an E.Coli on a petri dish would be very high, and even then, the computational power needed to predict that TRNG would probably have a lot more of the power needed to break ECDSA.

You could also use Brownian Motion [1] which is a random phenomena that also exhibits the qualities desirable on a TRNG, and has much more bandwidth than decaying atoms. (Again, low bandwidth is desirable on some TRNGs, so it is a trade-off)

[1] http://en.wikipedia.org/wiki/Brownian_motion


I agree of course. For any practical purpose, you don't even need E. coli - any classical method of inputting external entropy (like moving your mouse around) will probably be more than enough. I was just pointing out why OP's use of radioactive decay is really cool  Smiley

As for Brownian motion, it is random insofar as statistical mechanics is affected by quantum phenomena. You could say that in principle, Brownian motion should be truly random, but in practice the motion of particles is affected by multiple environmental factors that could completely overwhelm the true Brownian component. When we let undergrads peek through a microscope and show them lots of little things moving around, we tell them this is called Brownian motion, but in fact much of this motion could be caused by all sorts of external forces. I suppose you'd need some kind of entirely isolated and adiabatic system to observe true Brownian motion...
Pages:
Jump to: