Efficient stream cipher system and method
First Claim
1. A computer implemented system for generating a random output stream of bits, the system comprising:
- a processor; and
a memory, including a program executable by the processor, the program producing;
an initial evolving state produced from one or more initial keys;
one or more round functions, each round function being part of a step in a sequence of steps, each step applying the respective round function to a current evolving state to produce a respective new evolving state for processing by the next step in the sequence, the initial evolving state processed by the first step in the sequence; and
one or more mask tables produced from one or more of the initial keys, each of the mask tables having one or more masks, one or more of the masks being combined, in each respective step, with the respective new evolving state in a combination operation to create a respective step output, the random output stream being a concatenation of all the respective step outputs, and one or more of the masks in the mask tables being replaced by one or more replacement masks after the combination operation is performed a predetermined number of times, the replacement masks not being linear combinations of prior masks,wherein the random output stream of bits is for encrypting data.
3 Assignments
0 Petitions
Accused Products
Abstract
A computer system and method generates a random output stream of bits. The system comprises an initial evolving state produced from one or more initial keys, one or more round functions, and one or more mask tables. Each round function is part of a step in a sequence of steps. Each step applies the respective round function to a current evolving state to produce a respective new evolving state for processing by the next step in the sequence. The first step in the sequence starts b processing the initial evolving state. The mask tables are produced from one or more of the initial keys. Each of the mask tables has one or more masks. The masks are combined, in each respective step, with the respective new evolving state in a combination operation to create a respective step output. The random output stream bits is a concatenation of each of the respective step outputs. In one preferred embodiment, one or more of the masks in the mask tables are replaced by one or more replacement masks after a number of combination operations. The replacement masks not being linear combinations of prior masks. In an alternative embodiment, there are two or more mask tables produced from one or more of the initial keys. One or more of the masks from each table is combined, in each respective step, with the respective new evolving state in a combination operation to create a respective step output. There may or may not be replacement of the masks in this embodiment.
-
Citations
20 Claims
-
1. A computer implemented system for generating a random output stream of bits, the system comprising:
-
a processor; and a memory, including a program executable by the processor, the program producing; an initial evolving state produced from one or more initial keys; one or more round functions, each round function being part of a step in a sequence of steps, each step applying the respective round function to a current evolving state to produce a respective new evolving state for processing by the next step in the sequence, the initial evolving state processed by the first step in the sequence; and one or more mask tables produced from one or more of the initial keys, each of the mask tables having one or more masks, one or more of the masks being combined, in each respective step, with the respective new evolving state in a combination operation to create a respective step output, the random output stream being a concatenation of all the respective step outputs, and one or more of the masks in the mask tables being replaced by one or more replacement masks after the combination operation is performed a predetermined number of times, the replacement masks not being linear combinations of prior masks, wherein the random output stream of bits is for encrypting data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system for generating a random output stream of bits, the system comprising:
-
a processor; and a memory, including a program executable by the processor, the program producing; an initial evolving state produced from one or more initial keys; one or more round functions, each round function being part of a step in a sequence of steps, each step applying the respective round function to a current evolving state to produce a respective new evolving state for processing by the next step in the sequence, the initial evolving state processed by the first step in the sequence; and two or more mask tables produced from one or more of the initial keys, each of the mask tables having one or more masks, one or more of the masks from each table being combined, in each respective step, with the respective new evolving state in a combination of all the respective step outputs, wherein the random output stream of bits is for encrypting data. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer implemented method for generating a random output stream of bits comprising the steps of:
-
A. producing a current evolving state from one or more initial keys; B. producing one or more mask tables from one or more of the initial keys, each of the mask tables having one or more masks; C. applying a round function to a current evolving state to produce a respective new evolving state; D. replacing the current evolving state with the new evolving state; E. combining one or more of the masks with the current evolving state in a combination operation to create a respective step output; F. replacing one or more of the masks in the mask tables by one or more replacement masks after a number of combination operations, the replacement masks not being linear combinations of prior masks; G. repeating steps C through F one or more times; H. concatenating all the respective step outputs to create the random output stream; and I. using the random output stream of bits for encrypting data. - View Dependent Claims (18)
-
-
19. A computer program product stored on a computer readable medium for generating a random output stream of bits, which when executed by a computer performs the steps of:
-
A. producing a current evolving state from one or more initial keys; B. producing one or more mask tables from one or more of the initial keys, each of the mask tables having one or more masks; C. applying a round function to a current evolving state to produce a respective new evolving state; D. replacing the current evolving state with the new evolving state; E. combining one or more of the masks with the current evolving state in a combination operation to create a respective step output; F. replacing one or more of the masks in the mask tables by one or more replacement masks after a number of combination operations, the replacement masks not being linear combinations of prior masks; G. repeating steps C through F one or more times; H. concatenating all the respective step outputs to create the random output stream; and I. using the random output stream of bits is for encrypting data.
-
-
20. A computer system for generating a random output stream of bits, the system comprising:
-
A. means for producing a current evolving state from one or more initial keys; B. means for producing one or more mask tables from one or more of the initial keys, each of the mask tables having one or more masks; C. means for applying a round function to a current evolving state to produce a respective new evolving state; D. means for replacing the current evolving state with the new evolving state; E. means for combining one or more of the masks with the current evolving state in a combination operation to create a respective step output; F. means for replacing one or more of the masks in the mask tables by one or more replacement masks after a number of combination operations, the replacement masks not being linear combinations of prior masks; G. means for repeating steps C through F one or more times; H. means for concatenating all the respective step outputs to create the random output stream; and I. means for using the random output stream of bits for encrypting data.
-
Specification