Memory System and Method for Writing Data to a Block of an Erased Page
US-2017103025-A1 · Apr 13, 2017 · US
US10587590B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10587590-B2 |
| Application number | US-201715620270-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 12, 2017 |
| Priority date | Jun 12, 2017 |
| Publication date | Mar 10, 2020 |
| Grant date | Mar 10, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method includes adding a key version tag to an encryption key store that stores encryption keys. The key version tag is inserted into a data stream. The data stream including the key version tag is written to media. The data in the data stream is erased by scrambling the encryption keys and incrementing the key version tag in the encryption store by a digit. The data stream is replaced with a replacement data pattern when the key version tag stored in the encryption store and the key version tag located in the data stream mismatch.
Opening claim text (preview).
What is claimed is: 1. A method comprising: writing a data stream with protection information (PI) to memory including: encrypting data including user data in the data stream using encryption keys stored in an encryption key store; inserting a key version tag stored in the encryption key store into the data stream with the encrypted data and the PI; calculating input output error detection code (IOEDC) over the encrypted data and the inserted key version tag and appending the IOEDC in the data stream; storing the data stream including the encrypted data, the PI, the inserted key version tag and the IOEDC to media; performing data erasure on the data stream stored in the media by changing the encryption keys in the encryption key store to new encryption keys and the key version tag in the encryption key store to a new key version tag; reading the erased data stream including: comparing the inserted key version tag located in the data stream with the key version tag stored in the encryption key store; in response to comparing the inserted key version tag to the key version tag stored in the encryption key store, checking correctness of the IOEDC and if the IOEDC is in error then rereading the IOEDC or reporting the error to a host; in response to checking the IOEDC, stripping the IOEDC and the key version tag; and in response to stripping the IOEDC and the key version tag, replacing some or all of the data in the data stream with one or more predetermined data patterns when the key version tag that was stored with the encrypted data stream mismatches the key version tag stored in the encryption key store. 2. The method of claim 1 , wherein reading the erased data stream further comprises decrypting the encrypted data in the data stream using the new encryption keys before replacing some or all of the data in the data stream with the one or more predetermined data patterns. 3. The method of claim 1 , wherein the data stream comprises blocks of user data and the corresponding protection information (PI) comprises corresponding PI fields. 4. The method of claim 3 , wherein the PI fields that correspond with the blocks of user data that have been erased are selectively replaced with the predetermined data pattern when their corresponding blocks of user data are read. 5. The method of claim 4 , wherein the PI fields comprise a logical block guard (LBG) data field, an application tag field and a reference tag field. 6. The method of claim 5 , further comprising recalculating the LBG data field after replacing the blocks of user data, the LBG data field, the application tag field and the reference tag field with the predetermined data pattern. 7. The method of claim 1 , wherein the key version tag stored in the encryption key store is incremented whenever the corresponding data stream is erased. 8. A method comprising: adding a key version tag to an encryption key store that stores encryption keys; inserting the key version tag into a data stream with data including user data encrypted with the encryption keys; calculating input output error detection code (IOEDC) over the encrypted data and the inserted key version tag and appending the IOEDC to the data stream; writing the data stream including the encrypted data, the inserted key version tag and the IOEDC to media; erasing data in the data stream by changing or scrambling the encryption keys and changing the key version tag in the encryption store; comparing the inserted key version tag located in the data stream with the key version tag stored in the encryption key store; in response to comparing the inserted key version tag to the key version tag stored in the encryption key store, checking correctness of the IOEDC and if the IOEDC is in error then rereading the IOEDC or reporting the error to a host; in response to checking the IOEDC, stripping the IOEDC and the key version tag; and in response to stripping the IOEDC and the key version tag, replacing the data stream with a replacement data pattern when the key version tag stored in the encryption store and the key version tag located in the data stream mismatch. 9. The method of claim 8 , wherein the data stream comprises blocks of data. 10. The method of claim 8 wherein the replacement data pattern comprises a default or known data pattern. 11. The method of claim 8 , wherein adding the key version tag to the encryption key store comprises adding the key version tag to the encryption key store before encrypting the data in the data stream using the encryption keys. 12. The method of claim 8 , wherein inserting the key version tag into the data stream comprises inserting the key version tag into the data stream after encrypting data in the data stream using the encryption keys. 13. The method of claim 8 , further comprising decrypting the encrypted data stream after comparing the key version tag located in the data stream with the key version tag stored in the encryption key store. 14. The method of claim 8 , wherein the inserted key version tag is compared to the key version tag stored in the encryption key store upon a request to read data in the data stream stored on the media. 15. A device comprising: an encryption key store having encryption keys and a key version tag; an encryption/decryption circuit configured to encrypt/decrypt data including user data in a data stream using the encryption keys and configured to insert the key version tag into the data stream after encryption; and a controller configured to: append input output error detection code (IOEDC) to the data stream that was calculated over the encrypted data and the inserted key version tag; write the data stream including the encrypted data and the inserted key version tag to media; erase data in the data stream by changing or scrambling the encryption keys in the encryption key store and changing the key version tag in the encryption key store; compare the inserted key version tag located in the data stream with the key version tag stored in the encryption key store; in response to comparing the inserted key version tag to the key version tag stored in the encryption key store, check correctness of the IOEDC and if the IOEDC is in error then rereading the IOEDC or reporting the error to a host; in response to checking the IOEDC, strip the IOEDC and the key version tag; and in response to stripping the IOEDC and key version tag, replace some or all of the data stream with one or more predetermined patterns upon determining that the key version tag stored in the encryption store and the key version tag located in the data stream mismatch. 16. The device of claim 15 , wherein the encryption/decryption circuit is configured to decrypt the encrypted data stream after the controller compares the key version tag located in the data stream with the key version tag stored in the encryption key store before. 17. The device of claim 15 , wherein the controller is configured to compare the key version tag located in the data stream with the key version tag stored in the encryption key store upon a request to read data in the data stream stored on the media.
wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption (cryptographic mechanisms or cryptographic arrangements for stream encryption H04L9/065) · CPC title
to a system of files or objects, e.g. local or distributed file system or database · CPC title
for key exchange, e.g. in peer-to-peer networks (cryptographic mechanisms or cryptographic arrangements for key agreement H04L9/0838) · CPC title
Clearing memory, e.g. to prevent the data from being stolen · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.