Patent ID: 6490354
Filing Date: 2002-12-03
Classification: H04L

Abstract:
A word-oriented method for cryptographically converting, through a stream cipher, an input stream into an output stream, wherein the input stream is either an incoming plaintext message (P) or ciphertext (C) and the output stream is either the ciphertext or a recovered plaintext message ({circumflex over (P)}), wherein the stream cipher comprises a word-oriented pseudo-random keystream, the method being performed in a computer system having a processor and a memory, the memory storing computer executable instructions, wherein the method comprises the steps, performed by the processor in response to execution of the instructions, of:(A) receiving each one of a plurality of words in the input stream over an input signal bearing medium, said each one word being either a word in either the incoming plaintext message or in the ciphertext; (B) establishing, in the memory, first and second arrays (S and G, respectively) containing first and second pluralities of elements, respectively, wherein the elements in the arrays S and G are initialized in a predefined manner; (C) forming a corresponding word (K) in the keystream for each successive word in the input stream by: (C1) first updating a first value, stored in a first counter (i), by a predefined increment; (C2) second updating a second value, stored in a second counter (j), by a value stored in a first element (Si) in the array S, the first element being specified by the first value; (C3) swapping values stored in two elements in the array S, the two elements being the element Si and a second element (Sj), the second element being specified by the second value; (C4) combining contents of the elements Si and Sj so as to define a third value (t); (C5) determining the corresponding word in the keystream, as a first predefined function of a current value stored in a third element (St) in the first array and a value of a first variable, the third element being specified by the third value; (C6) third updating the value of the first variable by a value of one of the elements (Gt), specified by the third value, in the array G; and (C7) fourth updating the value stored in St, in response to a second predefined function of both the value stored in the element St and the value of said one of the elements (Gt) in the array G; (D) combining the corresponding word in the keystream with said each successive word in the input stream to yield a corresponding word in the output stream, wherein, if the input stream is formed of words of the incoming plaintext message or the ciphertext, the output stream is formed of corresponding words of the ciphertext or the recovered plaintext message, respectively; and (E) applying the corresponding word in the output stream onto an output signal bearing medium.