• Status: Solved
• Priority: Medium
• Security: Public
• Views: 352

# Random number generation

Hi, not sure if this is the best place to ask, but anyway, my problem is this:

We are trying to build a scalable piece of hardware, each hardware element consisting of some logic (likely a VertexII pro or two), memory, maybe a disk, etc.  This hardware connects up and implements a scientific algorithm (ideally execution time will be proportional to number of elements), the details of which are unimportant.  As a starting point, this parallel computer will consist of perhaps 20 elements.  Now the simulations this computer runs relies heavily of the generation of 'good' random numbers.

My first task in this project (for my thesis) is to investigate the implementation of these random number generators.  They will be hardware based, and must be fast.  One of the identified obstacles is that the numbers generated in one bit of hardware must not be correlated with numbers generated in another bit of hardware.  It is not sufficient to seed each random number generator with a different number (they will use the same sequence).  For this reason, I am thinking about designing a pure random number generator (not pseudo).

Can anyone point me in the direction of papers, etc discussing the design of such hardware?  Can anyone think of other ways around my problem (parallel generation of many uncorrelated bits of hardware from separate pieces of 'identical' hardware?

Thanks in advance for the input.

Michael.
0
SilentBob
• 3
• 2
• 2
• +3
1 Solution

Commented:
I would argue that there is no pure random number generator.  Have you considered using differnt algorithems for each randome number, maybe randomizing which one is used.  That would at least make it more randome.
0

Commented:
"there is no pure random number generator"

There is for practical purposes; hook the thing up to a radio circuit set to a 'snow' channel and pull a sample when you want a random number.
0

Commented:
You still may get a patern over long periods of time...
But it should be fairly random.  The snow paterns are after all caused by randome radio,tv, mircowav, ect...
0

Commented:
The best random number generators are always low level radioactive alpha sources. These can be rigged up pretty easy in micro technology (so I am told) for real randomness this is definately the way to go.
0

Commented:
If a basic radio receiver is not random enough, plug it into a X-ray frequency parabolic dish aimed at deep space to capture cosmic background radiation noise.
0

Commented:
Seems like alot of work to me to get numbers.  And again you might have some paterns even from space.  Pick a nice big nebula, with lots of young stars.  That should keep things randome.
0

Author Commented:
As far as solutions, I was looking for something more practical.  Perhaps a readily available ASIC that capatilises on the entropy of thermal noise?  What would be great is if it is possible to get a 'true' (not psuedo random) generator that can be implementefd on an FPGA.  Perhaps sampling the difference between two high frequency clocks at f and f + delta.  The jitter might work.

Anyway, I'm still looking.
0

Commented:
have many random generator alogs at hand..use a random number to choose one of them at random and then use the randomly chosen random number genrator to choose the next random number. you can repeat to use this random algorithm for random times and then change to next random genrator after a random amount of time...

0

Commented:
Do not expect to find a one paragraph solution. Just type "random number generator" into google, and sift through the results.
Pure hardware generators are often less random than digital designs due to a/d conversion artifacts. Many cryptographic grade digital generators have been implemented in fpgas.
0

Author Commented:
Cryptographic grade random number generators in FPGAs sound promissing.  Can you provide some links that elaborate?
0

Commented:
0

## Featured Post

• 3
• 2
• 2
• +3
Tackle projects and never again get stuck behind a technical roadblock.