Pseudorandom number generator
First Claim
1. A method for pseudorandomly generating numbers capable of use in a cryptographic system, comprising the steps of:
- storing a nonrepeating current time-dependent value;
storing a current secret value;
generating an updated secret value as a function of said current secret value and other information;
replacing said current secret value with said updated secret value, said updated secret value becoming a new current secret value; and
generating a pseudorandom number as a one-way function of said current time-dependent value and said current secret value.
2 Assignments
0 Petitions
Accused Products
Abstract
Pseudorandom numbers are generated in a cryptographic module in a cryptographically strong manner by combining a time-dependent value with a secret value and passing the result through a one-way hash function to generate a hash value from which a random number is generated. The secret value is continually updated whenever the cryptographic module is idle by a first feedback function that generates an updated secret value as a one-way function of the current secret value and the time-dependent value. In addition, the secret value is updated on the occurrence of a predetermined external event by a second feedback function that generates an updated secret value as a one-way function of the current secret value, the time-dependent value and an externally supplied value. Upon power-on reset, if the pseudorandom number generator has not been previously initialized, it initializes itself by resetting the time-dependent and secret values and requiring the second feedback function to perform a predetermined number of updates of the secret value in response to external events. Otherwise, the time-dependent and secret values are restored using values stored in backup registers. A hash of the current secret value that is different from either feedback function is used as a backup secret value to minimize the possibility that restoration will result in repetition of pseudorandom numbers.
150 Citations
24 Claims
-
1. A method for pseudorandomly generating numbers capable of use in a cryptographic system, comprising the steps of:
-
storing a nonrepeating current time-dependent value; storing a current secret value; generating an updated secret value as a function of said current secret value and other information; replacing said current secret value with said updated secret value, said updated secret value becoming a new current secret value; and generating a pseudorandom number as a one-way function of said current time-dependent value and said current secret value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A pseudorandom number generator capable of use in a cryptographic system, comprising:
-
means for storing a nonrepeating current time-dependent value; means for storing a current secret value; and means for generating an updated secret value as a function of said current secret value and other information; means for replacing said current secret value with said updated secret value, said updated secret value becoming a new secret value; and means for generating a pseudorandom number as a one-way function of said current time-dependent value and said current secret value. - View Dependent Claims (18, 19)
-
-
20. A method for pseudorandomly generating numbers capable of use in a cryptographic system, comprising the steps of:
-
storing a current time-dependent value; storing a current secret value; generating a first updated secret value as a first function of said current secret value and other information; generating a second updated secret value as a second function of said current secret value and other information; replacing said current secret value with said second updated secret value, said updated secret value becoming a new current secret value; and generating a pseudorandom number as a one-way function of said current time-dependent value and said current secret value. - View Dependent Claims (21, 22, 23)
-
-
24. A pseudorandom number generator capable of use in a cryptographic system, comprising:
-
means for storing a current time-dependent value; means for storing a current secret value; and means for generating first updated secret value as a first function of said current secret value and other information; means for generating a second updated secret value as a second function of a current secret value and other information; and means for replacing said current secret value with said second updated secret value, said updated secret value becoming a new secret value; and means for generating a pseudorandom number as a one-way function of said current time-dependent value and said current secret value.
-
Specification