1. A method for encryption processing using an encryption algorithm in an encryption processing system to provide output data, comprising: (a) storing a state array corresponding to the encryption algorithm wherein the state array comprises a plurality of array values each of which is indexed using one of a plurality of indexes; (b) reading a first array value from the state array using a first index; (c) reading a second array value from the state array using a second index; (d) reading a third array value from the state array using a third index; (e) writing a first input array value to the state array substantially in parallel with reading the third array value; (f) determining the output data by comparing the first index and the third index and by comparing the second index and the third index and: (f1) if the first index and the third index are identical, using the second array value in place of the third array value to determine the output data; (f2) if the second index and the third index are identical, using the first array value in place of the third array value to determine the output data; and (f2) if the first index and the third index are not identical, and if the second index and the third index are not identical, using the third array value to determine the output data; and (g) writing a second input array value to the state array substantially in parallel with determining the output data.