1. A method of generating a key stream by an apparatus comprising: selecting at least five input words from a first array of words by a non-linear filter module, wherein each input word comprises two or more bytes; mixing at least two words of the at least five input words to generate at least five primary mixed words by the non-linear filter module; performing a byte-wise substitution of at least one byte of each of the five primary mixed words to generate, respectively, at least five primary intermediate words by the non-linear filter module; mixing at least two bytes of each of the at least five primary intermediate words to generate, respectively, at least five secondary intermediate words by the non-linear filter module; mixing at least two words of the at least five secondary intermediate words to generate at least five output words by the non-linear filter module; selecting at least five mask words from a second array of words by a linear feedback shift register; and combining the at least five output words with the at least five mask words to generate a key stream block for the key stream by a combining module; wherein the first and second arrays are finite.