Claims
- 1. A forward secure ANSI X9.17 pseudorandom number generator, comprising:
an iteration integer i, wherein i is defined in accordance with a relationship i 0; a processor; a key K; a current state Asi−1 for each iteration integer i calculated by the processor; an enhanced keyed block cipher F′K, wherein the enhanced block cipher F′K does not require re-keying and is non-invertible even if the key K is known; an enhanced next state As′i for each iteration integer i, wherein the enhanced next state As′i is calculated by the processor such that previous states remain secret even when the key K and the enhanced next state As′i become known; and an enhanced pseudorandom number generator output Ay′i for each iteration integer i, wherein the enhanced pseudorandom number generator output Ay′i is a function of at least one auxiliary input ti.
- 2. A forward secure ANSI X9.17 pseudorandom number generator, as claimed in claim 1, further comprising an input device, wherein the enhanced next state As′i is defined in accordance with a relationship: As′i=F′K (As′i−1) and is calculated by the processor, and wherein the at least one auxiliary input ti for each iteration integer i is received by the processor via the input device and the enhanced pseudorandom number generator output Ay′i is defined in accordance with a relationship Ay′i=F′K(F′K(ti)⊕(As′i−1) and is calculated by the processor.
- 3. A forward secure ANSI X9.17 pseudorandom number generator, as claimed in claim 1, wherein the enhanced keyed block cipher F′K is defined, for all of at least one input x, in accordance with a relationship: F′K(x)=FK(x)⊕x.
- 4. A forward secure ANSI X9.17 pseudorandom number generator, comprising:
a seed generating function ANSI; a processor, wherein the processor, using the seed generating function ANSI, returns a key K and an initial state As0; an input device; an iteration integer i, wherein i is defined in accordance with a relationship: i 0; at least one auxiliary input ti for each iteration integer ti wherein the at least one auxiliary input ti is received by the processor via the input device; a current state As′i−1 for each iteration integer i, wherein the current state As′i−1 is calculated by the processor; a seeded block cipher FK, wherein FK is keyed by the key K; an enhanced keyed block cipher F′K, wherein the enhanced seeded block cipher F′K is keyed by the key K, does not require re-keying, is non-invertible even if the key K is known, and for all of at least one input x, is defined in accordance with a relationship F′K(x)=FK(x)⊕x; an enhanced next state As′i for each iteration integer i, wherein As′i is calculated by the processor and defined in accordance with a relationship As′i=F′K(As40i−1)=FK(As′i−1)⊕As′i−1; and an enhanced pseudorandom generator output Ay′i for each iteration integer i, wherein Ay′i is calculated by the processor and defined in accordance with a relationship Ay′i=F′K(F′K(ti)⊕As′i−1.
- 5. A computer readable storage medium storing computer readable program code implementing a forward secure ANSI X9.17 pseudorandom number generator, the computer readable program code comprising:
a first computer code implementing an enhanced keyed block cipher F′K, wherein the enhanced block cipher F′K does not require re-keying and is noninvertible even if the key K is known; data encoding an iteration integer i, wherein i is defined in accordance with a relationship: i 0; a second computer code implementing a current state Asi−1 for each iteration integer i; a second computer code implementing an enhanced next state As′i for each iteration integer i, wherein the enhanced next state As′i is calculated by the processor such that previous states remain secret even when the key K and the enhanced next state As′i become known; and a third computer code implementing an enhanced pseudorandom number generator output Ay′i for each iteration integer i, wherein the enhanced pseudorandom number generator output Ay′i is a function of at least one auxiliary input ti.
- 6. A forward secure FIPS 186 pseudorandom number generator, comprising:
a processor; a seeded hash function HK; an iteration integer i, wherein i is defined in accordance with a relationship: i 0; an enhanced next state Fs′i for each iteration integer i, wherein the enhanced next state Fs′i is non-invertible; and an enhanced pseudorandom number generator output Fy′i for each iteration integer i, wherein the enhanced pseudorandom number generator output Fy′i is calculated by the processor and is a function of at least one auxiliary input ti.
- 7. A forward secure FIPS 186 pseudorandom number generator, as claimed in claim 6, further comprising:
a pseudorandom number generator block length n wherein n is defined in accordance with a relationship: n=|Fy′i|; and an input device, wherein the at least one auxiliary input ti is received by the processor via the input device, Fy′i is defined in accordance with a relationship Fy′i=HK((Fs′i−1+ti) mod 2n) and Fs′i is defined in accordance with a relationship: Fs′i=(HK((Fs′i−1+Fy′i+1+ti) mod 2n)+Fs′i−1+Fy′i+2) mod 2n) and is calculated by the processor.
- 8. A forward secure FIPS 186 pseudorandom number generator, comprising:
a seed generating function FIPS; a processor, wherein the processor, using the seed generating function FIPS, returns at least one key K and an initial state Fs0; a keyed hash function HK; an iteration integer i, wherein i is defined in accordance with a relationship i 0; an input device; at least one auxiliary input ti for each iteration integer i, wherein the at least one auxiliary input ti is received by the processor via the input device; an enhanced current state Fs′i−1 for each iteration integer i; an enhanced pseudorandom generator output Fy′i for each iteration integer i; a pseudorandom number generator block length n wherein n is defined in accordance with a relationship n=|Fy′i|, and wherein Fy′i is defined in accordance with the relationship Fy′i=HK((Fs′i−1+ti) mod 2n); and an enhanced next state Fs′i for each iteration integer i, wherein the enhanced next state Fs′i is calculated by the processor and defined in accordance with a relationship: Fs′i=(HK((Fs′i−1+Fy′i+1+ti) mod 2n)+Fs′i−1+Fy′i+2) mod 2n).
- 9. A computer readable storage medium storing computer readable program code implementing a forward secure FIPS 186 pseudorandom number generator, the computer readable program code comprising:
a first computer code implementing a keyed hash function HK; data encoding an iteration integer i, wherein i is defined in accordance with a relationship: i 0; a second computer code implementing an enhanced next state Fs′i for each iteration integer i, wherein the enhanced current state Fs′i is non-invertible; and a third computer code implementing an enhanced pseudorandom number generator output Fy40i for each iteration integer i, wherein the enhanced pseudorandom number generator output Fy′i is a function of at least one auxiliary input ti.
- 10. A method for producing forward secure pseudorandom numbers by altering an ANSI X9.17 pseudorandom number generator, comprising:
defining an iteration integer i, wherein i is defined in accordance with a relationship i 0; replacing a keyed block cipher FK with an enhanced keyed block cipher F′K, wherein the enhanced keyed block cipher F′K is non-invertible even if the key K is known; replacing a current state with an enhanced current state As′i−1; and replacing a next state Asi with an enhanced next state As′i, wherein As′i is defined for each iteration integer i, as a function of the enhanced current state As′i−1, and allows previous states to remain secret even if the key K and the enhanced next state As′i become known.
- 11. A method for producing pseudorandom numbers, as claimed in claim 10, further comprising defining the enhanced keyed block cipher F′K as a function of a block cipher FK.
- 12. A method for producing pseudorandom numbers, as claimed in claim 11, further comprising:
defining F′K as a function of at least one input x in accordance with a relationship F′K(x)=FK(x)⊕x for all of the at least one inputs x.
- 13. A method for producing pseudorandom numbers, as claimed in claim 10, further comprising defining the enhanced next state As′i in accordance with a relationship: As′i=F′K(As′i−1).
- 14. A method for producing pseudorandom numbers, as claimed in claim 11, further comprising:
defining an iteration integer, wherein the iteration integer is defined in accordance with a relationship i 1; enabling at least one auxiliary input ti for each iteration integer i; and defining an enhanced pseudorandom generator output Ay′i for each iteration integer i, and wherein Ay′i is defined in accordance with a relationship Ay′i=F′K (F′K(ti)⊕As′i−1.
- 15. A method for producing pseudorandom numbers by altering an ANSI X9.17 pseudorandom number generator, comprising:
defining an iteration integer, wherein the iteration integer is defined in accordance with a relationship i 1; enabling at least one auxiliary input ti for each iteration integer i; defining an enhanced keyed block cipher F′K seeded with a key K, for all of at least one input x in accordance with a relationship F′K(x)=FK(x)⊕x; replacing a keyed block cipher FK with the enhanced keyed block cipher F′K, wherein the enhanced keyed block cipher F′K is a non-invertible function even if the key K is known; replacing a current state Asi−1 with an enhanced current state As′i−1; replacing a next state Asi with an enhanced next state As′i, wherein As′i is defined as a function of the keyed block cipher FK and the current state As′i−1 for each iteration integer i in accordance with a relationship As′i=F′K(As′i−1)=FK(As′i−1)⊕As′i−1; and defining an enhanced pseudorandom generator output Ayi′ for each iteration integer i, wherein Ay′i is defined in accordance with a relationship Ay′i=F′K(F′K (ti)⊕As′i−1.
- 16. A method for producing pseudorandom numbers, comprising altering a FIPS 186 pseudorandom number generator, wherein altering a FIPS 186 pseudorandom number generator comprises replacing a next state Fsi with an enhanced next state Fs′i, wherein the computation of the enhanced next state Fs′i is non-invertible.
- 17. A method for producing pseudorandom numbers, as claimed in claim 16, wherein replacing a next state Fsi with an enhanced next state Fs′i further comprises defining the enhanced next state Fs′i as a function of a keyed hash function HK and an enhanced current state Fs′i−1.
- 18. A method for producing forward secure pseudorandom numbers, as claimed in claim 17, further comprising defining:
an iteration integer i, wherein i is defined in accordance with a relationship i 0; an auxiliary input ti for each iteration integer i; an enhanced pseudorandom number generator output Fy′i for each iteration integer i; a pseudorandom number generator block length n wherein n=|Fy′i; an enhanced current state Fs′i−1; wherein defining the enhanced next state Fs further comprises defining the enhanced next state Fs′i for each iteration integer i, wherein Fs′i is defined in accordance with a relationship Fs′i=(HK((Fs′i−1+Fy′i+1+ti) mod 2n)+Fs′i−1+Fy′i+2) mod 2n); and wherein defining the enhanced pseudorandom generator output Fy′i further comprises defining Fy′i in accordance with a relationship Fy′i=HK((Fs′i−1+ti) mod 2n).
RELATED APPLICATIONS
[0001] The application claims priority based on the US provisional patent application entitled “Security and Efficiency Improvements for the ANSI X9.17 and FIPS 186 Pseudorandom Number Generators,” application serial No. 60/344,732 filed Nov. 6, 2001, which is incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60344732 |
Nov 2001 |
US |