Software-efficient pseudorandom function and the use thereof for encryption
First Claim
1. A method for transforming a table of pseudorandom numbers into a pseudorandom bit string useful for data encryption, the table being precomputed from a key, comprising the steps of:
- (a) using an index and a set of values from the table of pseudorandom numbers to generate initial values for a set of registers;
(b) mixing at least some of the register values by taking a current value of a register and replacing the current value with a function of the current value and a value retrieved from the table;
(c) concatenating into the pseudorandom bit string a function of the register values as modified in step (b); and
(d) repeating steps (b)-(c) a predetermined number of times until the pseudorandom bit string reaches a desired length.
1 Assignment
0 Petitions
Accused Products
Abstract
A software-efficient pseudorandom function maps an index and an encryption key to a pseudorandom bit string useful for constructing a stream cipher. The method begins by preprocessing the encryption key into a table of pseudorandom values. The index and a set of values from the table is then used to generate a set of initial values for the registers. At least some of the register values are modified in part by taking a current value of a register and replacing the current value with a function of the current value and a value retrieved from the table, the latter value being determined by the values in one or more other registers. After modifying the register values in this fashion, the values are masked using other values from the table and the results then concatenated into the pseudorandom bit string. The modification step is repeated and a new masked function of the register values is then concatenated into the pseudorandom bit string. The modification and concatenation steps are repeated to continue growing the pseudorandom bit string until the string reaches some desired length.
-
Citations
17 Claims
-
1. A method for transforming a table of pseudorandom numbers into a pseudorandom bit string useful for data encryption, the table being precomputed from a key, comprising the steps of:
-
(a) using an index and a set of values from the table of pseudorandom numbers to generate initial values for a set of registers; (b) mixing at least some of the register values by taking a current value of a register and replacing the current value with a function of the current value and a value retrieved from the table; (c) concatenating into the pseudorandom bit string a function of the register values as modified in step (b); and (d) repeating steps (b)-(c) a predetermined number of times until the pseudorandom bit string reaches a desired length.
-
-
2. A method for encrypting a data string relative to an index and a key, comprising the steps of:
-
(a) preprocessing the key into first, second and third tables of pseudorandom values; (b) using the index and a first set of values from the first table to map values from the third table into first and second sets of register values; (c) mixing the first set of register values by taking a current value of a register and replacing the current value with a function of the current value and a value retrieved from the third table; (d) using a first set of values from the second table to mask the register values as mixed in step (c); (e) concatenating into a pseudorandom bit string a function of the masked register values; (f) repeating steps (c)-(e) using a second set of values from the second table; and (g) repeating steps (b)-(f) using a second set of values from the first table until the pseudorandom bit string reaches a desired length. - View Dependent Claims (3, 4)
-
-
5. A method for encrypting a data string relative to an index and an encryption key, comprising the steps of:
-
(a) using the index and a set of values from a table of pseudorandom numbers to generate initial values for a set of registers, the table having been precomputed from the encryption key; (b) mixing at least some of the register values by taking a current value of a register and replacing the current value with a function of the current value and a value retrieved from the table; (c) concatenating into a pseudorandom bit string a function of the register values as modified in step (b); (d) repeating steps (b)-(c) a predetermined number of times until the pseudorandom bit string reaches a desired length; and (e) encrypting the data string by combining the pseudorandom bit string and the data string. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A cryptographic system for encrypting a data string, comprising:
-
means for preprocessing an encryption key into a table of pseudorandom values; means for generating initial values of a set of words using values derived from the table; means for modifying at least some of the initial values of the set of words to create modified words; means responsive to the modifying means for repeatedly concatenating into a pseudorandom bit string a function of the modified words until the pseudorandom bit string reaches a desired length; and means for encrypting the data string by combining the data string and the pseudorandom bit string.
-
-
17. A computer, comprising:
-
means for interfacing a physical device to an operating system of the computer; and means for encrypting a data string associated with the physical device, comprising; means for preprocessing an encryption key into a table of pseudorandom values; means for generating initial values of a set of words using values derived from the table; means for modifying at least some of the initial values of the set of words to create modified words; means responsive to the modifying means for repeatedly concatenating into a pseudorandom bit string a function of the modified words until the pseudorandom bit string reaches a desired length; and means for combining the data string and the pseudorandom bit string.
-
Specification