Patent ID: 8175265

Claim:
A non-transitory computer-readable storage medium having stored therein instructions which, when executed by a computing device, cause the computing device to perform steps comprising: storing a respective array of first tables having a first table for each of a plurality of bytes associated with a masked state; storing a plurality of second tables, each of the plurality of second tables comprising M*N N-byte entries, wherein the plurality of second tables and the respective array of first tables are based on a masking pattern that allows reuse of the plurality of second tables in an indexing operation; and performing a plurality of rounds of operations comprising: adding a portion of a round key to the masked state; performing a byte substitution operation comprising substituting the plurality of bytes for a second plurality of bytes associated with a different first table to yield a second masked state, wherein the second masked state retains the masking pattern; performing a row shifting operation on the second masked state to yield a third masked state; performing, for each of a plurality of columns associated with the third masked state, a polynomial multiplication portion of a column mixing operation to yield N intermediate columns for each of the plurality of columns, wherein the polynomial multiplication comprises indexing a selected second table from the plurality of second tables with each of a third plurality of bytes associated with the third masked state, the selected second table for each of the third plurality of bytes selected according to the masking pattern; and arithmetically performing an exclusive or portion of the column mixing operation on the N intermediate columns to yield a fourth masked state, wherein the exclusive or portion is performed without using look-up tables.