Index: > A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Business Industries Finance Tax

Home > Hardware random number generator


First Prev [ 1 2 3 4 5 6 ] Next Last

In computing, a hardware random number generator is an apparatus which generates random numbers from a physical process. Such devices are typically based on microscopic phenomena such as thermal noise or the photoelectric effect or other quantum phenomena. These processes are, in principle, completely unpredictable. A hardware random number generator typically contains an amplifier to bring the output of the physical process into the macroscopic realm, and a transducer to convert the output into a digital signal.

There are also hardware random number generators based on macroscopic phenomena, such as cards, dice, and the roulette wheel. Although dice are mostly used for gambling, the Victorian scientist Francis Galton described a way to use dice to generate random numbers for scientific purposes. Macroscopic phenomena are not completely unpredictable, in principle. However, whether the predictability can be exploited for practical purposes (e.g., winning at craps) remains a topic of debate.

Although unpredictable, hardware random number generators may be relatively slow, and they may produce a biased sequence (that is, some numbers are more common than others). Whether a hardware random number generator is suitable for a particular application depends on the application.

1 Contrast with pseudo-random number generators

Most random number generators are not hardware, but are algorithmFlowcharts were often used to represent algorithms. An algorithm is a finite set of well-defined instructions for accomplishing some task which, given an initial state, will result in a corresponding recognisable end-state (contrast with heuristic). Algors, perhaps embedded in firmware (ie, in ROM), or even 'hardwired' as digital logic. These are actually pseudo-random number generators, and cannot produce truly random outputs on the deterministic computing systems we can currently build.

There are several different informal definitions of randomnessIn ordinary language, the word random is used to express apparent lack of purpose or cause. This suggests that no matter what the cause of something, its nature is not only unknown but the consequences of its operation are also unknown. In most technical, usually based on either a lack of discernible patternA pattern is a form or model (or, more abstractly, a set of rules) which can be used to make or to generate things or parts of a thing, especially if the things that are generated have enough in common for the underlying pattern to be inferred or discernes, or their unpredictability . Although output from common, easily implemented (ie, practical) random number generators is widely used, these PRNGs only appear to lack a discernible pattern. They may pass assorted statistical tests probing for non-randomness (see Knuth, Art of Programming, vol. 2, for details of many such tests), they may have very large repeat cycles in their output, and they may be found satisfactory for some purposes. However, pseudo-random number generators always have a pattern since the algorithm that generates them has a starting state, and when run on deterministic (ie, finite state ) mechanisms, will always return (eventually) to that state. As noted above, this includes all the computer systems we can build at the present time. Given the original state of the generator, and its algorithm, a pseudo-random number generator is totally predictable, and given even partial knowledge of that state, they are insecure for many purposes, if not entirely predictable.

2 Uses of "random" numbers

'Unpredictable' random numbers were first investigated in the context of gambling, and many randomizing devices such as dice, shuffling playing cards, and roulette wheels, were first developed for use in gambling.

'Random' numbers are also used for serious purposes such as draft lotteries, where "fairness" is approximated by randomization, and in research where some modeling and statistical methods require them.





Non User