Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm
AssigneeARRIS Enterprises LLC
InventorDileep Kumar Kotha
Life of this patent
Estimating the term…
Abstract
A method is provided for decrypting data encrypted according to a cipher key according the advanced encryption standard (AES). The method includes precomputing a product of each element value of an InvMixColumn matrix and each possible value of an input state array and deriving a set of round keys from the cipher key and the set of round keys. The deriving includes providing an initial round key and a plurality of further round keys, performing an initial decryption round, and performing N full decryption rounds at least in part using the precomputed product of each element value of an InvMixColumn matrix and each possible value of the input state array.
Claims12
A method of decrypting data encrypted according to a cipher key according the advanced encryption standard (AES), comprising:
- (a) deriving a set of round keys from the cipher key, the set of round keys comprising an initial round key and a plurality of ordered further round keys;
- (b) performing an initial decryption round, comprising:
- performing an exclusive OR round key operation (XorRoundKey) on a state array comprising the encrypted data to generate a first iterated state array;
- performing an inverse shift row operation (InvShiftRows) on the first iterated state array to generate a second iterated state array;
- performing an inverse substitute bytes operation (InvSubBytes) on the second iterated state array to generate a initially iterated state array;
- (c) performing N full decryption rounds, comprising:
- (i) performing the XorRoundKey operation on the initially iterated state array to generate a first further iterated state array;
- (ii) performing an inverse mix columns operation (InvMixColumn) on the first further iterated state array to generate a second further iterated state array;
- (iii) performing the InvShiftRows operation on the second further iterated state array to generate a third further iterated state array;
- (iv) performing the InvSubBytes operation on the third further iterated state array;
- (v) repeating steps (i)-(iv) with a next round key of the further round keys and the further iterated third array as the initially iterated state array;
- (vi) performing a final an exclusive OR round key operation (XorRoundKey) on a state array comprising the encrypted data to generate the decrypted data;
- wherein:
- an inverse of a Mix Column (InverseMixColumn) matrix in a finite field comprises elements having values selected from the group consisting of 09, 11, 13, and 14;
- performing the InvMixColumn operation on the first further iterated state array to generate a second further iterated state array comprises:
- precomputing a product of each of the element values of the InverseMixColumn matrix and each possible value of the first further iterated state array;
- and
- determining from the precomputed products, each element of the second further iterated state array.
An apparatus for decrypting data encrypted according to a cipher key according the advanced encryption standard (AES), comprising:
- a processor;
- a memory, communicatively coupled to the processor, the memory storing processor instructions comprising processor instructions for:
- (a) deriving a set of round keys from the cipher key, the set of round keys comprising an initial round key and a plurality of ordered further round keys;
- (b) performing an initial decryption round, comprising:
- performing an exclusive OR round key operation (XorRoundKey) on a state array comprising the encrypted data to generate a first iterated state array;
- performing an inverse shift row operation (InvShiftRows) on the first iterated state array to generate a second iterated state array;
- performing an inverse substitute bytes operation (InvSubBytes) on the second iterated state array to generate a initially iterated state array;
- (c) performing N full decryption rounds, comprising:
- (i) performing the XorRoundKey operation on the initially iterated state array to generate a first further iterated state array;
- (ii) performing an inverse mix columns operation (InvMixColumn) on the first further iterated state array to generate a second further iterated state array;
- (iii) performing the InvShiftRows operation on the second further iterated state array to generate a third further iterated state array;
- (iv) performing the InvSubBytes operation on the third further iterated state array;
- (v) repeating steps (i)-(iv) with a next round key of the further round keys and the further iterated third array as the initially iterated state array;
- (vi) performing a final an exclusive OR round key operation (XorRoundKey) on a state array comprising the encrypted data to generate the decrypted data;
- wherein:
- an inverse of a MixColumn (InverseMixColumn) matrix in a finite field comprises elements having values selected from the group consisting of 09, 11, 13, and 14;
- the processor instructions for performing the InvMixColumn operation on the first further iterated state array to generate a second further iterated state array comprise processor instructions for:
- precomputing a product of each of the element values of the InverseMixColumn matrix and each possible value of the first further iterated state array;
- and
- determining from the precomputed products, each element of the second further iterated state array.
An apparatus for decrypting data encrypted according to a cipher key according the advanced encryption standard (AES), comprising:
- means for deriving a set of round keys from the cipher key, the set of round keys comprising an initial round key and a plurality of ordered further round keys;
- means for performing an initial decryption round, comprising:
- performing an exclusive OR round key operation (XorRoundKey) on a state array comprising the encrypted data to generate a first iterated state array;
- performing an inverse shift row operation (InvShiftRows) on the first iterated state array to generate a second iterated state array;
- performing an inverse substitute bytes operation (InvSubBytes) on the second iterated state array to generate a initially iterated state array;
- means for performing N full decryption rounds, comprising:
- (i) performing the XorRoundKey operation on the initially iterated state array to generate a first further iterated state array;
- (ii) performing an inverse mix columns operation (InvMixColumn) on the first further iterated state array to generate a second further iterated state array;
- (iii) performing the InvShiftRows operation on the second further iterated state array to generate a third further iterated state array;
- (iv) performing the InvSubBytes operation on the third further iterated state array;
- (v) repeating steps (i)-(iv) with a next round key of the further round keys and the further iterated third array as the initially iterated state array;
- (vi) performing a final an exclusive OR round key operation (XorRoundKey) on a state array comprising the encrypted data to generate the decrypted data;
- wherein:
- an inverse of a Mix Column matrix (InvMixColumn matrix) in a finite field comprises elements having values selected from the group consisting of 09, 11, 13, and 14;
- performing the InvMixColumn operation on the first further iterated state array to generate a second further iterated state array comprises:
- precomputing a product of each of the element values of the InverseMixColumn matrix and each possible value of the first further iterated state array;
- and
- determining from the precomputed products, each element of the second further iterated state array.
Dependencies are inferred from the claim text.