摘要 |
A word-oriented technique for generating a pseudo-random sequence, e.g., a keystream (17) for use in a stream cipher. Specifically, the technique utilizes two different arrays (653, 657) with each array having illustratively 256 32-bit elements. One array (653) contains a 256 element 32-bit S-box. An output stream generated by the S-box, i.e., St, is applied as one input to a first hash function. This hash function, in response to input St multiplied by a variable, C, provides the output keystream. S-box element St is then updated through a second hash function having, as its input, the current value of St multiplied by the variable C. The variable, C, initially a random variable, is itself updated, for use during a next iteration, through an additive combination, of its current value and a corresponding element in the second array (G), i.e., Gt. Both the S-box and G array can be initialized by, e.g., entirely filling each of these arrays with random 32-bit values. This technique, when used to generate a keystream for a stream cipher, appears to be just as secure as a conventional RC4 cipher and, by operating on a word- rather than a byte-level, is considerably faster than an RC4 keystream generator. Hence, this technique, when used in cryptographic applications, is particularly well suited for use in devices that have limited computational resources and would not be amenable to use of the RC4 stream cipher.
|