| CPC G06F 3/0623 (2013.01) [G06F 3/0659 (2013.01); G06F 3/0679 (2013.01)] | 18 Claims |

|
1. In a data storage device comprising a memory and an AES-XTS decryption engine, a method comprising:
receiving a read request comprising a read address;
reading encrypted data from the memory, wherein the encrypted data is read from a location in the memory associated with the read address;
while the encrypted data is being read from the memory:
generating a tweak value from the read address during latency associated with reading encrypted data from the memory; and
storing the tweak value in a buffer in the data storage device;
receiving the encrypted data read from the memory, wherein the encrypted data is received out-of-order with respect to read requests processed by the memory; and
after receiving the encrypted data from the memory:
identifying a location of the tweak value in the buffer using a current cycle pointer; and
sending the tweak value and the encrypted data to the AES-XTS decryption engine, wherein the encrypted data is decryptable by the AES-XTS decryption engine without the AES-XTS decryption engine having to wait for the tweak value to be generated.
|