Patent ID: 8918650

Claim:
A method for cryptography, the method comprising: accepting input data with a first Direct Memory Access (DMA) module, the input data comprising a section that is to undergo a cryptographic operation and that starts at an offset with respect to a beginning of the input data; receiving, with the first DMA module, a notification of where the section that is to undergo the cryptographic operation starts with respect to the beginning of the input data so as to enable the first DMA module to align the input data; aligning, with the first DMA module, based on the received notification, the input data to cancel out the offset, wherein aligning the input data comprises forming one or more data blocks where at least one of the data blocks comprises data that was received at the first DMA module in two different data blocks; reading, with a cryptography module that is distinct from the first DMA module, the aligned input data out of the first DMA module; and performing, with the cryptography module, the cryptographic operation on the section of the aligned input data; accepting, with a second DMA module that is distinct from the first DMA module, an output of the cryptography module from the cryptography module; and re-introducing, with the second DMA module, the offset into the output of the cryptographic operation; wherein performing the cryptographic operation comprises performing the operation by at least first and second cryptography cores cascaded in a pipeline, the first cryptography core configured to perform decryption of the section of aligned input data and the second cryptography core configured to perform signature verification of the section of the aligned input data.