System and method for generating pseudo-random numbers
First Claim
Patent Images
1. A system for generating a pseudo-random number, the system comprising:
- an entropy value collector for collecting entropy values, wherein the entropy value collector breaks obtained values into entropy values of a desired entropy value length when the obtained values are longer than the desired entropy value length;
a first data memory for storing at least one set of entropy values collected by the entropy value collector;
a second data memory for storing an internal state; and
a processor for;
transforming a first set of entropy values stored in the first data memory to form the internal state;
generating a pseudo-random number by transforming the internal state;
updating the internal state using the current value of the internal state and entropy values from the entropy value collector; and
refreshing the internal state by transforming a second set of entropy values stored in the first data memory and combining the result of the transformation of the second set of entropy values with the current value of the internal state, wherein the entropy value collector collects entropy values using at least one of a high performance counter model and a system timer.
2 Assignments
0 Petitions
Accused Products
Abstract
A process and system for generating a pseudo-random number is presented. Input data having entropy is gathered in an Entropy Pool and transformed once by a cryptographic hash function. The transformed data forms the internal state of the pseudo-random number generator. The generator forms the output by applying a second cryptographic hash function to this internal state. Finally, the generator updates the internal state by inputting the current internal state and data from the Entropy Pool into a third cryptographic hash function. The output of the third hash function forms the new internal state of the pseudo-random number generator.
-
Citations
17 Claims
-
1. A system for generating a pseudo-random number, the system comprising:
-
an entropy value collector for collecting entropy values, wherein the entropy value collector breaks obtained values into entropy values of a desired entropy value length when the obtained values are longer than the desired entropy value length; a first data memory for storing at least one set of entropy values collected by the entropy value collector; a second data memory for storing an internal state; and a processor for; transforming a first set of entropy values stored in the first data memory to form the internal state; generating a pseudo-random number by transforming the internal state; updating the internal state using the current value of the internal state and entropy values from the entropy value collector; and refreshing the internal state by transforming a second set of entropy values stored in the first data memory and combining the result of the transformation of the second set of entropy values with the current value of the internal state, wherein the entropy value collector collects entropy values using at least one of a high performance counter model and a system timer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 16)
-
-
8. A computer-implemented method for generating a pseudo-random number, the method comprising:
-
collecting data having entropy in a memory, wherein an entropy value collector breaks the collected data into entropy values of a desired entropy value length when the collected data is longer than the desired entropy value length; using a processor to transform a first set of entropy values using a first cryptographic hash function to form an internal state; using the internal state to generate a pseudo-random number by applying a second cryptographic hash function such that no correlation exists between the first cryptographic hash function and the second cryptographic hash function; updating the internal state by applying a third cryptographic hash function to newly collected entropy values and the internal state, wherein updating the internal state by applying a third cryptographic hash function to newly collected entropy values and the internal state includes appending an entropy value of the desired length to the internal state; and refreshing the internal state by transforming a second set of entropy values using the first cryptographic hash function and combining the result of the transformation of the second set of entropy values with the internal state. - View Dependent Claims (9)
-
-
10. A non-transitory computer-readable medium containing instructions for causing a computer to perform a method for generating a pseudo-random number, and the method comprising:
-
receiving data having entropy, wherein an entropy value collector breaks the received data into entropy values of a desired entropy value length when the received data is longer than a desired entropy value length; transforming at least some of the entropy values to form an internal state; using the internal state to generate a pseudo-random number; updating the internal state using data from at least one of entropy values having entropy and the internal state; and refreshing the internal state by transforming a new set of entropy values and combining the result of the transformation of the new set of entropy values with the internal state, wherein the entropy value collector collects entropy values using at least one of a high performance counter model and a system timer. - View Dependent Claims (11, 12, 13, 14, 15, 17)
-
Specification