Cascaded data encryption dependent on attributes of physical memory
First Claim
1. A method comprising:
- receiving input data to be secured in a non-volatile memory against unauthorized access by an attacker;
encrypting the input data in relation to a first auxiliary data value to provide first level ciphertext, the first auxiliary data value comprising a logical block address (LBA) value associated with the input data;
subsequently encrypting the first level ciphertext in relation to a second auxiliary data value associated with a selected physical location in the non-volatile memory to provide second level ciphertext, the second auxiliary data value comprising a physical block address (PBA) of the selected physical location in the non-volatile memory;
storing the second level ciphertext to said selected physical location in the non-volatile memory to secure the input data from said unauthorized access by an attacker; and
subsequently migrating the secured input data from the selected physical location to a second selected physical location in the non-volatile memory by partially decrypting the second level ciphertext to recover the first level ciphertext from the selected physical location without recovering the corresponding input data in an unencrypted form, re-encrypting the recovered first level ciphertext using a third auxiliary data value associated with the second selected physical location to provide third level ciphertext, and storing the third level ciphertext in the second selected physical location while the second level ciphertext remains stored in the selected physical location in the non-volatile memory.
1 Assignment
0 Petitions
Accused Products
Abstract
Apparatus and method for providing data security through cascaded encryption. In accordance with various embodiments, input data are encrypted in relation to a first auxiliary data value to provide first level ciphertext. The first level ciphertext are encrypted using a second auxiliary data value associated with a selected physical location in a memory to produce second level ciphertext, which are thereafter stored to the selected physical location. In some embodiments, migration of the stored data to a new target location comprises partial decryption and re-encryption of the data using a third auxiliary data value associated with a new target physical location to produce third level ciphertext, and the storage of the third level ciphertext to the new target physical location.
59 Citations
15 Claims
-
1. A method comprising:
-
receiving input data to be secured in a non-volatile memory against unauthorized access by an attacker; encrypting the input data in relation to a first auxiliary data value to provide first level ciphertext, the first auxiliary data value comprising a logical block address (LBA) value associated with the input data; subsequently encrypting the first level ciphertext in relation to a second auxiliary data value associated with a selected physical location in the non-volatile memory to provide second level ciphertext, the second auxiliary data value comprising a physical block address (PBA) of the selected physical location in the non-volatile memory; storing the second level ciphertext to said selected physical location in the non-volatile memory to secure the input data from said unauthorized access by an attacker; and subsequently migrating the secured input data from the selected physical location to a second selected physical location in the non-volatile memory by partially decrypting the second level ciphertext to recover the first level ciphertext from the selected physical location without recovering the corresponding input data in an unencrypted form, re-encrypting the recovered first level ciphertext using a third auxiliary data value associated with the second selected physical location to provide third level ciphertext, and storing the third level ciphertext in the second selected physical location while the second level ciphertext remains stored in the selected physical location in the non-volatile memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising sequential steps of:
-
receiving from a host device input data to be secured in a non-volatile memory against unauthorized access by an attacker, the input data presented as unencrypted plaintext; applying multi-level encryption to the input data in relation to a first auxiliary data value associated with a first physical address in the non-volatile memory to generate a first set of ciphertext, wherein the multi-level encryption comprises applying a first level of encryption using a logical block address (LBA) value associated with the input data and then applying a second level of encryption using a physical block address (PBA) value associated with the first physical address in the non-volatile memory; storing the first set of ciphertext to said first physical address in the non-volatile memory to secure the input data from said unauthorized access by an attacker; decrypting the first set of ciphertext using the first auxiliary value to provide partially decrypted ciphertext that remains encrypted by at least one level of said multi-level encryption; re-encrypting the partially decrypted ciphertext in relation to a different, second auxiliary data value associated with a different, second physical address in the non-volatile memory to generate a second set of ciphertext; and writing the second set of ciphertext to the second physical address in the non-volatile memory responsive to the first set of ciphertext remaining stored in the first physical address in the non-volatile memory to secure the second set of ciphertext from unauthorized access by an attacker, wherein the input data is not decrypted into the presented unencrypted plaintext until a request for the input data is subsequently received from the host device. - View Dependent Claims (10, 11, 12)
-
- 13. An apparatus comprising a non-volatile memory and a controller adapted to, responsive to receipt of input user data from a host device in the form of unencrypted plaintext for secure storage in the non-volatile memory against unauthorized access by an attacker, apply a first level encryption to said input user data in relation to a first auxiliary data value provided by the host device to generate first set of ciphertext, to apply a second level encryption to the first set of ciphertext in relation to a second auxiliary data value associated with a first physical location in the non-volatile memory to generate a second set of ciphertext as double-encrypted data, and to direct storage of the second set of ciphertext to said first physical location in the non-volatile memory, wherein the first auxiliary data value comprises a logical block address (LBA) value associated with the input data and the second auxiliary data value comprises a physical block address (PBA) value associated with the first physical location in the non-volatile memory, wherein the controller is further adapted to subsequently perform a migration operation to store encrypted data corresponding to the input user data to a different, second location by decrypting the second set of ciphertext using the second auxiliary data value to provide the first set of ciphertext, re-encrypting the decrypted first set of ciphertext in relation to a different, third auxiliary data value associated with a different, second physical location in the non-volatile memory to generate a third set of ciphertext, and to direct storage of the third set of ciphertext to the second physical location in the non-volatile memory, wherein the received unencrypted plaintext is not recovered during the generation and storage of the third set of ciphertext.
Specification