Storage device and memory controller thereof
US-2015235056-A1 · Aug 20, 2015 · US
US9811477B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9811477-B2 |
| Application number | US-201514877614-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 7, 2015 |
| Priority date | Oct 7, 2015 |
| Publication date | Nov 7, 2017 |
| Grant date | Nov 7, 2017 |
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.
In one embodiment, a memory system stores data encrypted with a cipher key in a block of a page in non-volatile memory, reads the cipher key version number associated with the page, determines whether the cipher key version number associated with the page is different from a cipher key version number of the cipher key used to encrypt the data and, if it is, writes a data pattern encrypted with the cipher key into the other blocks of the page, and stores the cipher key version number of the cipher key used to encrypt the data in the storage space in the non-volatile memory. Other embodiments are provided.
Opening claim text (preview).
What is claimed is: 1. A memory system comprising: a non-volatile memory comprising a page, wherein the page comprises a plurality of blocks, and wherein the non-volatile memory is configured with storage space for storing a cipher key version number associated with the page; and a controller in communication with the non-volatile memory, wherein the controller is configured to perform the following in response to a write command: store data encrypted with a cipher key in one of the blocks of the page in the non-volatile memory; read the cipher key version number associated with the page from the storage space in the non-volatile memory; determine whether the cipher key version number associated with the page is different from a cipher key version number of the cipher key used to encrypt the data; in response to determining that the cipher key version number associated with the page is different from the cipher key version number of the cipher key used to encrypt the data, write a data pattern encrypted with the cipher key into the other blocks of the page, wherein the data pattern indicates data previously stored in the other blocks of the page was previously made unreadable by a change in the cipher key; and store the cipher key version number of the cipher key used to encrypt the data in the storage space in the non-volatile memory; wherein the controller is further configured to perform the following in response to a request to read the one of the blocks of the page: read the cipher key version number associated with the page from the storage space in the non-volatile memory; determine whether the cipher key version number read from the storage space in the non-volatile memory is out of date; and in response to determining that the cipher key version number read from the storage space in the non-volatile memory is out of date, return a second data pattern instead of returning data read from the one of the blocks, wherein the second data pattern indicates data previously stored in the one of the blocks was previously made unreadable by a change in the cipher key. 2. The memory system of claim 1 , wherein the storage space is a metadata field for the page. 3. The memory system of claim 1 , wherein the cipher key is stored in the controller. 4. A memory system comprising: a non-volatile memory comprising a page, wherein the page comprises a plurality of blocks, and wherein the non-volatile memory is configured with storage space for storing a cipher key version number associated with the page; and a controller in communication with the non-volatile memory, wherein the controller is configured to perform the following in response to a write command: store data encrypted with a cipher key in one of the blocks of the page in the non-volatile memory; read the cipher key version number associated with the page from the storage space in the non-volatile memory; determine whether the cipher key version number associated with the page is different from a cipher key version number of the cipher key used to encrypt the data; in response to determining that the cipher key version number associated with the page is different from the cipher key version number of the cipher key used to encrypt the data, write a data pattern encrypted with the cipher key into the other blocks of the page, wherein the data pattern indicates data previously stored in the other blocks of the page was previously made unreadable by a change in the cipher key; and store the cipher key version number of the cipher key used to encrypt the data in the storage space in the non-volatile memory; wherein the page is part of one of a plurality of virtual drives in the non-volatile memory, wherein each virtual drive is associated with its own cipher key. 5. The memory system of claim 1 , wherein the non-volatile memory comprises a three-dimensional memory. 6. The memory system of claim 1 , wherein the memory system is embedded in a host. 7. The memory system of claim 1 , wherein the memory system is removably connected to a host. 8. A method for writing data to memory, the method comprising: performing the following in a memory system having non-volatile memory: in response to a write command: storing data encrypted with a cipher key in a subset of a set of memory cells in the non-volatile memory; reading a cipher key version number associated with the set of memory cells; determining whether the cipher key version number associated with the set of memory cells is different from a cipher key version number of the cipher key used to encrypt the data; in response to determining that the cipher key version number associated with the set of memory cells is different from the cipher key version number of the cipher key used to encrypt the data, writing a data pattern encrypted with the cipher key into other subsets of the set of memory cells, wherein the data pattern indicates data previously stored in the other subsets of the set of memory cells was previously made unreadable by a change in the cipher key; storing the cipher key version number of the cipher key used to encrypt the data; in response to a command to read the sub-set of memory cells: reading the cipher key version number associated with the set of memory cells: determining whether the cipher key version number is out of date; and in response to determining that the cipher key version number is out of date, returning a second data pattern, wherein the second data pattern indicates data previously stored in the sub-set of memory cells was previously made unreadable by a change in the cipher key. 9. The method of claim 8 , A method for writing data to memory, the method comprising: performing the following in a memory system having non-volatile memory: in response to a write command: storing data encrypted with a cipher key in a subset of a set of memory cells in the non-volatile memory; reading a cipher key version number associated with the set of memory cells: determining whether the cipher key version number associated with the set of memory cells is different from a cipher key version number of the cipher key used to encrypt the data; in response to determining that the cipher key version number associated with the set of memory cells is different from the cipher key version number of the cipher key used to encrypt the data, writing a data pattern encrypted with the cipher key into other subsets of the set of memory cells, wherein the data pattern indicates data previously stored in the other subsets of the set of memory cells was previously made unreadable by a change in the cipher key; and storing the cipher key version number of the cipher key used to encrypt the data; wherein the set of memory cells is part of one of a plurality of virtual drives in the non-volatile memory, wherein each virtual drive is associated with its own encryption key. 10. The method of claim 8 , wherein the non-volatile memory comprises a three-dimensional memory. 11. The method of claim 8 , wherein the memory system is embedded in a host. 12. The method of claim 8 , wherein the memory system is removably connected to a host. 13. A memory system comprising: a non-volatile memory organized into a plurality of bands, wherein each band is associated with its own encryption key; means for, in response to a write command: storing data encrypted with a cipher key in a band that has been previously erased by changing a cipher key associated with the band; reading the cipher key version number associated with the band; determining whether the cipher key version number is different from a cipher key version nu
Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation · CPC title
Key scheduling, i.e. generating round keys or sub-keys for block encryption · CPC title
Security improvement · CPC title
by using cryptography (for digital transmission H04L9/00) · CPC title
Details relating to cryptographic hardware or logic circuitry · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.