摘要 |
A method of performing encryption and decryption includes implementing a block cipher algorithm, generating encryption and decryption round keys for an accelerator module, and implementing the accelerator module using shared logic for one or more round key sizes, wherein the decryption uses a stored expanded key word to initialize subsequent block decryptions. The block cipher algorithm can be the Rijndael algorithm. Only a first block decryption requires expansion overhead. All subsequent block decryptions utilize a prior key to initialize a key expansion engine for a plurality of subsequent blocks. The subsequent block decryptions are performed at a same rate as block encryptions. An apparatus includes a plurality of logic gates configured to reuse expanded round keys from a prior decryption round, the logic gates complete one round of data decryption per clock cycle after an initial round of data decryption, and a plurality of decoders configured to convert the decrypted data to usable data.
|