Patent ID: 8494155

Claim:
An encryption device configured to encrypt an array of data blocks, the encryption device comprising: a tweaking value manager configured to generate, based on a tweaking encryption key, an array of tweaking values corresponding to the array of data blocks, the tweaking value manager including: an AES-ECB engine configured to encrypt an initial tweaking value with the tweaking encryption key to generate an encrypted initial tweaking value, and a tweaking value generator configured to calculate the array of tweaking values based on the encrypted initial tweaking value; a key expansion hardware module configured to expand a data encryption key into a first set of round keys and a second set of round keys; a memory configured to store the first set of round keys and the second set of round keys; a first encryption unit configured to encrypt a first portion of the array of data blocks into a first portion of encrypted data blocks based on corresponding tweaking values and the first set of round keys, the first encryption unit including: a first tweaking unit configured to calculate a first tweaked data block based on a first data block in the first portion of the array of data blocks and the corresponding tweaking value; and a first AES-ECB engine configured to encrypt the first tweaked data block into a first encrypted tweaked data block based on the first set of round keys; a second encryption unit configured to encrypt a second portion of the array of data blocks into a second portion of encrypted data blocks based on corresponding tweaking values and the second set of round keys; and a data block combiner configured to combine the first portion of encrypted data blocks and the second portion of encrypted data blocks into an array of encrypted data blocks.