Patent ID: 8396212

Claim:
A method of generating a key stream, the method being performed by a correspondent in a communication system, the correspondent including a counter i, an accumulator j, and a state information table S having state information stored in n entries therein, the method comprising: a) said correspondent using the counter i, the accumulator j, and the state information table S to: i) randomly distribute entries of the state information table S by swapping pairs of entries; and, ii) generate a pair of non-zero values a and b by, for each swapping pair, adding an entry to a and adding the other entry to b; b) said correspondent initializing the counter i with a and said correspondent initializing the accumulator j with b; c) said correspondent obtaining a constant odd value, c, greater than 1; d) said correspondent combining with a current value for the accumulator j, state information identified by entry i in the state information table S to obtain a next value for the accumulator j; e) said correspondent swapping in said state information table S said state information identified by entry i in the state information table S with state information identified by entry j in the state information table S using said next value for the accumulator j; f) said correspondent combining the entry i state information with the entry j state information swapped in step d) to generate a combined value t; g) said correspondent outputting state information identified by entry t in the state information table S as a byte of the key stream; and h) said correspondent combining said odd value c with the current value for the counter i to generate a next value for said counter i; wherein said correspondent repeats steps d) to h) to produce each byte of the key stream.