Memory system and method for writing data to a block of an erased page

US9811477B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9811477-B2
Application numberUS-201514877614-A
CountryUS
Kind codeB2
Filing dateOct 7, 2015
Priority dateOct 7, 2015
Publication dateNov 7, 2017
Grant dateNov 7, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9811477B2 cover?
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 …
Who is the assignee on this patent?
Sandisk Technologies Inc, Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/1408. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 07 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).