Patent ID: 8553880

Claim:
A pseudorandom number generating apparatus, which outputs a cryptographically secure pseudorandom number sequence generated based on a sequence of numbers prepared ahead of time, the pseudorandom number generating apparatus comprising: a hardware processor configured to execute a pseudorandom number generating program, the pseudorandom number generating program instructing the hardware processor to execute: a step (a) of creating an accum by setting a word to an initial value, a step (b) of storing the accum in hardware memory, a step (c) of generating a pseudorandom number sequence based on the sequence of numbers, a step (d) of creating an extracted word by extracting a number of bits from the pseudorandom number sequence, a step (e) of creating a cut out word by setting the least significant bit in the extracted word to a value of 1, a step (f) of executing a formula to create a new accum, the formula being: the new accum ={the accum×the cut out word } mod 2 (a length of the extracted word) , a step (g) of replacing the value of the accum stored in the hardware memory with the value of the new accum, a step (h) of retrieving the new accum from the hardware memory, a step (i) of creating a secure pseudorandom number sequence, the secure pseudorandom number sequence by extracting some or all bits of the new accum, a step (j) of outputting the secure pseudorandom number sequence, wherein the pseudorandom number generating program instructs the hardware processor to repeat the steps (c)-(j).