A pseudorandom number generator (PRNG), is a computer program algorithm for generating sequences of numbers that appear random in their inception. Pseudorandom numbers are an important practice for simulations (e.g. of physical systems with the Monte Carlo method - such computer simulation methods are especially useful in studying systems with a large number of degrees of freedom, such as fluids, disordered materials, strongly coupled solids, and cellular structures), and are central in the practice of cryptography (practice and study of hiding information) and procedural generation.
A Pseduorandom number can be started from an arbitrary starting state using a seed. It will always produce the same sequence thereafter when initialized with that state. The maximum length of the sequence before it begins to repeat is determined by the size of the state, measured in bits. However, since the length of the maximum period potentially doubles with each bit of 'state' added, it is easy to build Pseudorandom numbers with periods long enough for many practical applications. Although PRNGs will repeat their results after they reach the end of their period, a repeated result does not imply that the end of the period has been reached, since its internal state may be larger than its output.
Most pseudorandom generator algorithms produce sequences which are uniformly distributed by any of several tests. It is an open question, and one central to the theory and practice of cryptography, whether there is any way to distinguish the output of a high-quality pseudorandom number from a truly random sequence without knowing the algorithm(s) used and the state with which it was initialized. The security of most cryptographic algorithms and protocols using PRNGs is based on the assumption that it is infeasible to distinguish use of a suitable PRNG from use of a truly random sequence.
A Pseduorandom number can be started from an arbitrary starting state using a seed. It will always produce the same sequence thereafter when initialized with that state. The maximum length of the sequence before it begins to repeat is determined by the size of the state, measured in bits. However, since the length of the maximum period potentially doubles with each bit of 'state' added, it is easy to build Pseudorandom numbers with periods long enough for many practical applications. Although PRNGs will repeat their results after they reach the end of their period, a repeated result does not imply that the end of the period has been reached, since its internal state may be larger than its output.
Most pseudorandom generator algorithms produce sequences which are uniformly distributed by any of several tests. It is an open question, and one central to the theory and practice of cryptography, whether there is any way to distinguish the output of a high-quality pseudorandom number from a truly random sequence without knowing the algorithm(s) used and the state with which it was initialized. The security of most cryptographic algorithms and protocols using PRNGs is based on the assumption that it is infeasible to distinguish use of a suitable PRNG from use of a truly random sequence.
No comments:
Post a Comment