Patent ID: 7571199

Claim:
A method comprising: collecting initial entropy data, wherein the initial entropy data includes central processing unit data and operating system data, wherein the central processing unit data comprises: (i) a timestamp counter; (ii) a number of cache misses per second; (iii) a number of branch mispredictions per second; (iv) power fluctuations; (v) a clock speed at which a central processing unit (CPU) is running; or (vi) CPU-specific counters; storing the initial entropy data in a nonvolatile memory; updating the initial entropy data stored in the nonvolatile memory with newly collected entropy data; and generating a string of random bits from the updated entropy data stored in the nonvolatile memory, wherein generating a string of random bits includes: (i) producing a first result by hashing the updated entropy data with a first hashing algorithm; (ii) producing a second result by hashing the updated entropy data with a second hashing algorithm that is different from the first hashing algorithm; and (iii) concatenating the first result with the second result.