JP2022523294A - 暗号化構成要素を備えたメモリデバイス - Google Patents

暗号化構成要素を備えたメモリデバイス Download PDF

Info

Publication number
JP2022523294A
JP2022523294A JP2021542320A JP2021542320A JP2022523294A JP 2022523294 A JP2022523294 A JP 2022523294A JP 2021542320 A JP2021542320 A JP 2021542320A JP 2021542320 A JP2021542320 A JP 2021542320A JP 2022523294 A JP2022523294 A JP 2022523294A
Authority
JP
Japan
Prior art keywords
data
component
controller
error correction
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2021542320A
Other languages
English (en)
Inventor
アントニノ モンデッロ
カーメロ コンデミ
フランチェスコ トマイウオロ
トマーソ ゼリッリ
Original Assignee
マイクロン テクノロジー,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2022523294A publication Critical patent/JP2022523294A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Power Engineering (AREA)
  • Probability & Statistics with Applications (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

メモリシステム(例えば、NANDメモリシステム)などの装置は、第1のエラー訂正コード構成要素を備えたコントローラと、コントローラに結合されたメモリデバイス(例えば、NANDメモリデバイス)とを有することができる。メモリデバイスは、メモリセルのアレイと、アレイに結合され、アレイからのデータを訂正するように構成された第2のエラー訂正コード構成要素と、第2のエラー訂正コード構成要素から訂正されたデータを受信するように結合された暗号化構成要素とを有することができる。

Description

本開示は、一般に、メモリデバイスに関し、より具体的には、暗号化構成要素を備えたメモリデバイスに関する。
メモリシステムは、コンピュータ、携帯電話、ハンドヘルド電子デバイスなどといった電子システム内に実装され得る。ソリッドステートドライブ(SSD)、組み込みマルチメディアコントローラ(eMMC)デバイス、ユニバーサルフラッシュストレージ(UFS)デバイスなどのようないくつかのメモリシステムは、ホストからのホスト(例えば、ユーザ)データを記憶するための不揮発性ストレージメモリを含み得る。不揮発性ストレージメモリは、電源が入っていないときに記憶されたデータを保持することによって永続的データを提供し、数あるタイプのメモリの中でも、NANDフラッシュメモリ、NORフラッシュメモリ、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、ならびに相変化ランダムアクセスメモリ(PCRAM)、3次元クロスポイントメモリ(例えば、3DXPoint)、抵抗ランダムアクセスメモリ(RRAM)、強誘電体ランダムアクセスメモリ(FeRAM)、磁気抵抗ランダムアクセスメモリ(MRAM)及びプログラム可能な導電性メモリなどの抵抗変化型メモリを含み得る。
いくつかの例では、メモリデバイスは、セキュアな情報を記憶することができ、セキュアな情報を取得すること及び/または変えることを目的とした悪意のある攻撃を受けやすい可能性がある。このような攻撃には、リプレイ攻撃が含まれる可能性がある。例えば、このリプレイ攻撃は、セキュアな情報の悪意のある、または不正な繰り返しまたは遅延を伴う可能性があり、セキュアな情報の傍受及び再送を伴う可能性がある。
本開示のいくつかの実施形態による装置の簡略ブロック図である。 本開示のいくつかの実施形態によるデータ構造を示す。 本開示のいくつかの実施形態によるメモリデバイスによって計算されたECCデータを備えたデータ構造を示す。 本開示のいくつかの実施形態による(例えば、メモリシステムの形態をとった)装置のブロック図である。 本開示のいくつかの実施形態によるセキュアなメモリパーティションを示す。 本開示のいくつかの実施形態によるセキュアなコマンドを示す。 本開示のいくつかの実施形態によるメモリアレイの一部の概略図である。
メモリシステム(例えば、NANDメモリシステム)などの例示的な装置は、第1のエラー訂正コード構成要素を備えたコントローラと、コントローラに結合されたメモリデバイス(例えば、NANDメモリデバイス)とを有することができる。メモリデバイスは、メモリセルのアレイと、アレイに結合され、アレイからのデータを訂正するように構成された第2のエラー訂正コード構成要素と、第2のエラー訂正コード構成要素から訂正されたデータを受信するように結合された暗号化構成要素とを有することができる。
メモリデバイス上に暗号化構成要素を有することにより、メモリデバイスは、以前の手法で一般的に行われているように、メモリデバイスの外部にあるコントローラにデータを送信することなく、暗号化構成要素を介して、(例えば、メモリアレイ内に記憶されたデータがセキュアであるかどうかを判定するために)メモリアレイ内に記憶されたデータに対して暗号化動作を実行することができる。
例えば、いくつかの以前の手法では、暗号化構成要素が外部コントローラ内に存在することが可能であり、データをメモリデバイスから外部コントローラに送信してデータがセキュアかどうかを判定することが可能である。しかしながら、外部コントローラにデータを送信することは、非セキュアなプロセスである可能性があり、外部コントローラに送信されるデータのセキュリティが危険にさらされる可能性がある。外部コントローラにデータを送信することはまた、時間がかかる可能性がある。さらに、外部コントローラを介して提供されるセキュリティは、セキュリティ機能を提供するサードパーティへの料金の支払いを必要とし得るため、コストがかかる可能性がある。そのため、メモリデバイス上に暗号化構成要素を有することにより、外部コントローラ内に暗号化構成要素を有するときと比較して、セキュリティを向上させることができ、暗号化動作の実行に伴う時間及びコストを低減させることができる。
NANDメモリデバイスなどのいくつかのメモリデバイスは、ユーザデータがメモリアレイから読み出されるときに比較的高いビットエラーレート(BER)を有する可能性がある。結果として、このような高いBERを有するユーザデータに対して暗号化動作を実行するときに問題が発生する可能性がある。メモリアレイから読み出されたデータを訂正するために、エラー訂正方式が採用され得る。しかしながら、以前の手法では、データエラー訂正動作は、メモリデバイスから外部コントローラに送信されるユーザデータに対して外部コントローラによって実行され得る。これは、いくつかの例では、データが訂正のために外部コントローラに送信され、訂正されたデータが暗号化動作のためにメモリデバイスに返信される場合があることを意味する。しかしながら、メモリデバイスと外部コントローラとの間でデータを送信するやりとりは、非セキュアで時間がかかるプロセスとなる可能性がある。開示される実施形態は、メモリデバイス上にエラー訂正構成要素を配置し、そのエラー訂正構成要素を使用して、メモリデバイスの暗号化構成要素による使用のためにアレイからのデータを訂正することにより、これらの問題を解決する。
図1は、本開示のいくつかの実施形態によるコンピューティングシステム100の形態をとった装置の簡略ブロック図である。コンピューティングシステム100は、例えば、SSD、UFSデバイス、eMMCデバイスなどといったストレージシステムとすることができるメモリシステム102の形態をとった装置を含む。いくつかの例では、メモリシステム102は、NANDメモリシステムとすることができる。しかしながら、開示される実施形態は、特定のタイプのメモリシステムに限定されない。例えば、メモリシステム102は、システム100のためのメインメモリとして機能することが可能である。
図1に示したように、メモリシステム102は、コントローラ104を含むことができる。このコントローラは、コントローラ104が、コントローラ104に結合されたメモリデバイス106(例えば、NANDメモリデバイス)を制御することができるという点で、メモリシステムコントローラ(例えば、NANDコントローラ)と称され得る。コントローラ104は、メモリデバイス106の外部に存在することができ、したがって、外部ホストコントローラなどの、外部コントローラと称することができる。いくつかの例では、コントローラ104及びメモリデバイス106は、単一のチップ上に集積化することができる。
コントローラ104は、エラー訂正構成要素108(例えば、外部エラー訂正構成要素)を有する。メモリデバイス106は、アレイ109からのデータを訂正することができるエラー訂正構成要素110(例えば、内部エラー訂正構成要素)に結合されたメモリアレイ(例えば、NANDメモリアレイ)109を有する。例えば、アレイ109は、ページバッファとすることができるバッファ111(例えば、データバッファ)に結合することができる。バッファ111は、データパス112に結合することができ、このデータパスは、エラー訂正構成要素110に結合することができる。暗号化構成要素114は、訂正されたデータをエラー訂正構成要素110から受信するように結合することができる。本明細書でさらに論じられるように、暗号化構成要素114は、データがセキュアであるかどうかを判定するなどのために、訂正されたデータに対して暗号化動作を実行することができる。いくつかの例では、暗号化動作は、とりわけ、暗号化ハッシュ、メッセージ認証コード(MAC)、ハッシュMAC(HMAC)などの暗号化コードを計算することを含むことができる。
アレイ109は、論理パーティション116-1~116-Nとセキュアな論理パーティション117とに論理的にレイアウトすることができる。例えば、論理パーティションは、それぞれがグループとして共に消去されるように構成されたメモリセルのいくつかの物理ブロックを含むことができる。セキュアなパーティション117は、コントローラ104に結合されているホスト120によって発行されたセキュアなコマンドによってアクセスすることができる。論理パーティション116-1~116-Nは、非セキュアなパーティションとすることができ、これらの非セキュアなパーティションは、ホスト120からの非セキュアなコマンドによってアクセスすることができる。
いくつかの例では、論理パーティション116-1~116-Nに対応するメモリセルは、セルあたり単一のビットを、またはセルあたり2ビット、セルあたり3ビット、セルあたり4ビットなどといった、セルあたり複数のビットを記憶するようにプログラムすることができる。しかしながら、いくつかの実施形態では、セキュアな論理パーティション117に対応するメモリセルは、マルチビットセルと比較して相対的に低いBERを保証するために、セルあたり単一のビットのみを記憶するようにプログラムされ得る。セルあたり単一のビットを記憶するように構成されたメモリセルは、シングルレベルセル(SLC)と称することができ、セルあたり複数のビットを記憶するように構成されたメモリセルは、マルチレベルセル(MLC)と称することができる。
メモリセルは、2個のデータ状態のうちの1つにプログラムすることができ、mは、セルあたりのビット数である。それぞれのデータ状態は、異なる閾電圧Vt分布に対応することができ、メモリセルは、Vt分布のうちの1つに対応することができるVtにプログラムすることができる。例えば、セルあたり2ビットの場合、メモリセルは、4つのデータ状態11、10、01及び00のうちの1つに対応するVtにプログラムすることができ、セルあたり1ビットの場合、メモリセルは、2つのデータ状態0及び1のうちの1つに対応するVtにプログラムすることができる。
セキュアなコマンドは、例えば、認証を必要とする、コントローラ104を介してホスト120から受信したコマンドを指すことができる。セキュアなコマンドは、非セキュアなパーティション116に対応するアドレスに宛てられたコマンドとは違って、セキュアなパーティション117に対応するアドレスに宛てられたコマンドを指し得る。本明細書でさらに論じられるように、セキュアなコマンドは、動作コード、暗号化署名及び鮮度インジケータを含むことができる。対照的に、非セキュアなコマンドは、認証を必要としない場合があるため、署名も鮮度インジケータも含まない場合がある。
メモリデバイス106は、インターフェース121(例えば、メモリインターフェース)を介してコントローラ104に結合することができる。例えば、インターフェース121は、コントローラ104をメモリデバイス106の入力/出力(I/O)122に結合することができる。I/O122は、次にデータパス112に結合することができる。いくつかの例では、インターフェース121はデータバスを含むことができる。このデータバスは、様々な規格をサポートすること、及び/またはダブルデータレート(DDR)、オープンNANDフラッシュインターフェース(ONFI)、シリアルペリフェラルインターフェース(SPI)などといった様々なインターフェースタイプに準拠することができる。
コントローラ104は、ホスト120からのセキュア及び非セキュアな読み出し及び書き込みコマンドなどの、セキュア及び非セキュアなコマンドを受信することができる。コントローラ104は、例えば、メモリアレイ109に書き込まれるユーザデータをホスト120から(例えば、ホストインターフェース123を介して)受信することができる。例えば、コントローラ104は、セキュアなデータをセキュアな論理パーティション117にマッピングし、非セキュアなデータを論理パーティション116-1~116-Nにマッピングすることができる。
ホスト120は、例えば、様々な数あるタイプのホストの中でも、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、モバイルデバイス(例えば、携帯電話)、ネットワークサーバ、モノのインターネット(IoT)対応デバイス、またはメモリカードリーダなどのホストシステムとすることができる。例えば、ホスト120は、バスを含むことができるインターフェース123を経由して(例えば、コントローラ104を介して)メモリシステム102にアクセスすることが可能な1つ以上のプロセッサを含むことができる。インターフェース123は、様々な数ある中でも、シリアルアドバンストテクノロジーアタッチメント(SATA)、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)またはユニバーサルシリアルバス(USB)などの、規格化されたインターフェースであり得る。
図2Aは、本開示のいくつかの実施形態によるデータ構造225(例えば、管理されたユニット)を示す。コントローラ104は、データ構造225をアレイ109に書き込む書き込み(プログラミング)動作中にデータ構造225をメモリデバイス106に送信することができる。いくつかの例では、データ構造225は、コードワードと称することができる。データ構造225は、例えば、メモリセルのブロック内のデータのページに対応することができる。
データ構造225は、データのセグメント227-1~227-4を含むことができ、これらのセグメントは、それぞれ、Frame1~Frame4とすることができる。しかしながら、本開示はそのように限定されず、データ構造225内には任意の数のセグメントが存在することができる。いくつかの例では、各セグメント227-1~227-4は、各サブコードワードと称することができる。
セグメント227-1~227-4は、それぞれ、ユーザデータフィールド228-1~228-4と、スペアデータSPARE1~SPARE4をそれぞれ記憶することができるスペアデータフィールド229-1~229-4と、エラー訂正コード(ECC)データECC1~ECC4をそれぞれ記憶することができるECCフィールド230-1~230-4とを含むことができる。いくつかの例では、ユーザデータフィールド228-1~228-4のそれぞれは、4キロバイトのユーザデータを記憶することができ、スペアデータフィールド229-1~229-4のそれぞれは、16バイトのスペアデータを記憶することができ、エラー訂正コードフィールド230-1~230-4のそれぞれは、516バイトのECCデータを記憶することができる。しかしながら、本開示はそのように限定されない。
コントローラ104は、ホスト120からのユーザデータUSER1~USER4をユーザデータフィールド228-1~228-4内にそれぞれ置くことができる。ECC構成要素108は、ユーザデータUSER1~USER4からECCデータECC1~ECC4をそれぞれ計算することができ、コントローラ104は、ECCデータECC1~ECC4をユーザデータフィールド228-1~228-4内にそれぞれ置くことができる。例えば、ECCデータECC1~ECC4は、それぞれ、ユーザデータUSER1~USER4に対応する。
データ構造225は、Bose-Chaudhuri-Hocquenghem(BCH)コードなどの訂正コード231を含むことができる。この訂正コードは、データ構造225全体を訂正するために使用することができる。例えば、ECC1~ECC4は、内部訂正コードと称することができ、訂正コード231は、外部訂正コードと称することができる。いくつかの例では、訂正コード231は、ECC1~ECC4のうちの1つ以上が対応するユーザデータを訂正することができないときに使用することができる。訂正コード231は、いくつかの例では80バイトとすることができるが、本開示はそのように限定されない。
データ構造225が非セキュアであり、ユーザデータUSER1~USER4が非セキュアなデータであるとき、コントローラ104は、様々な目的のためにスペアデータフィールド229-1~229-4を使用することができる。例えば、コントローラ104は、スペアデータフィールド229-1~229-4内にそれぞれスペアデータSPARE1~SPARE4の様々なパターンをプログラムすることができる。コントローラ104は、非セキュアなデータ構造225をバッファ111に送信することができ、バッファ111内の非セキュアなデータ構造225は、非セキュアなパーティション116に書き込むことができる。例えば、非セキュアなデータ構造225は、非セキュアなパーティション116内のSLCまたはMLCのグループ(例えば、ページ)内に書き込むことができる。
ユーザデータUSER1~USER4がセキュアなデータであるとき、コントローラ104は、スペアデータフィールド229-1~229-4を使用しない場合がある。例えば、コントローラ104は、スペアデータフィールド229-1~229-4内に全て1または全て0のパターンとしてスペアデータSPARE1~SPARE4を書き込み得る。コントローラ104は、次いで、セキュアなデータ構造をデータバッファ111に送信することができる。
いくつかの例では、セキュアなユーザデータUSER1~USER4をECC構成要素110に送信することもでき、ECC構成要素110は、ユーザデータUSER1~USER4からECCデータを計算することができる。ECC構成要素110によってユーザデータUSER1~USER4から計算されたECCデータは、データ構造225がバッファ111内に存在する間にスペアデータフィールド229-1~229-4内にそれぞれ記憶させることができる。例えば、スペアデータSPARE1~SPARE4は、それぞれ、ユーザデータUSER1~USER4から計算されたECCとすることができる。いくつかの例では、各スペアデータSPARE1~SPARE4の全て1または0のパターンは、ユーザデータUSER1~USER4から計算された各ECCを用いて上書きすることができる。
図2Bは、本開示のいくつかの実施形態によるセキュアなユーザデータ及びメモリデバイス106によって計算されたECCデータを備えたデータ構造225’を示す。図2Bでは、ECCデータECC’1~ECC’4は、ECC構成要素110によってユーザデータUSER1~USER4からそれぞれ計算され、スペアデータフィールド229-1~229-4内にそれぞれ記憶される。例えば、各スペアデータSPARE1~SPARE4の全て1または0のパターンは、各ECCデータECC’1~ECC’4を用いて上書きすることができる。セキュアなデータ構造225’は、バッファ111内に存在することができ、セキュアなパーティション117内に書き込むことができる。例えば、図2Bのセキュアなデータ構造225’は、セキュアなパーティション117内のSLCのグループ内にのみプログラムすることができる。
ECC構成要素110は、例えば、ECC構成要素108よりも少ないECCビットを使用し得るため、「軽いECC」構成要素と称することができる。例えば、ECC’データは、軽いECCデータと称することができる。いくつかの例では、ECC’は、8ビットECCとすることができ、約10-8のBERを約10-15の最終目標BERに回復させることができる。例えば、セキュアなユーザデータをパーティション117内に記憶するSLCに関連したBERがより低いため、軽いECCで十分である可能性がある。ECC構成要素108は、ECC構成要素108を使用してパーティション116内のMLCからのユーザデータを訂正することができるため、ECC構成要素110よりも重いECC構成要素である可能性がある。MLCは、SLCよりも高いBERを有する可能性があることに留意されたい。
いくつかの例では、図2Bに図示されたセキュアなデータ構造225’は、セキュアなパーティション117からバッファ111に読み出すことができる。ユーザデータUSER1~USER4は、ECCデータECC’1~ECC’4を使用してECC構成要素110によってそれぞれ訂正することができる。暗号化構成要素114は、次いで、訂正された各ユーザデータUSER1~USER4から各暗号化コードを計算することができる。
図3Aは、本開示のいくつかの実施形態によるメモリシステム102とすることができるメモリシステム302の形態をとった装置の詳細なブロック図である。本明細書の図は、最初の数字(複数可)が図面の図番号に対応し、残りの数字が図面内の要素または構成要素を識別する番号付け規則に従う。異なる図の間の類似の要素または構成要素は、類似の数字を使用することによって識別され得る。例えば、番号117では、数字1は図1を指し、数字17は図1のセキュアなパーティションを識別する。同様に、番号317では、数字3は図3A及び3Bを指し、数字17は図3A及び3Bの類似のセキュアなパーティションを識別する。
メモリシステム302は、インターフェース321によってコントローラ304に結合されたメモリデバイス306を含むことができる。例えば、コントローラ304は、インターフェース321によってI/O322に結合することができる。コントローラ304は、コントローラ104とすることができ、ECC構成要素308を含むことができる。このECC構成要素は、ECC構成要素108とすることができる。コントローラ304は、ホストインターフェース323により、ホスト120などのホストに結合することができる。I/O322は、データパス312に結合することができる。データパス312は、バッファ311に結合することができる。このバッファは、読み出し/書き込み電子回路335に結合することができ、バッファ111とすることができる。
読み出し/書き込み電子回路335は、メモリアレイ309に結合することができる。アレイ309の各部(例えば、ブロックまたはブロックのグループ)は、非セキュアな論理パーティション316-1~316-Nならびにセキュアな論理パーティション317及び317’に対応することができる。
図3Bは、本開示のいくつかの実施形態によるセキュアなパーティション317を示す。セキュアなパーティション317は、いくつかのデータ構造325’(例えば、325’-1~325’-M)を記憶することができる。データ構造325’-1~325’-Mのそれぞれは、例えば、セキュアなデータ構造225’として構成することができる。データ構造325’-1~325’-Mは、それぞれ、アドレス(例えば、ページアドレス)Addr-1~Addr-Mによってアドレス指定することができる。
セキュアなパーティション317は、ユーザにとってアクセス不可能な可能性がある秘密領域332を含むことができる。例えば、秘密領域332は、ユーザにとってアクセス可能なアドレス空間の外側に位置することができる。秘密鍵(例えば、ルート鍵)333は、秘密領域332内に記憶させることができる。いくつかの例では、秘密鍵333は、メモリシステム302がユーザ(例えば、消費者)にリリースされる前に、製造施設にて秘密領域332内に記憶させることができる。あるいは、秘密鍵333は、本明細書でさらに論じられるように、メモリデバイス306によって生成することができる。
黄金基準(golden measure)334などの暗号化コードは、秘密領域332内に記憶させることができる。例えば、黄金基準334は、読み出し、書き込みまたは消去動作などの任意の動作が実行される前に、データがセキュアなパーティション317内に最初に記憶されたときにセキュアなパーティション317について計算することができる。黄金基準334は、例えば、メモリデバイス306の寿命の間、変えないままにすることができる。黄金基準334は、データ構造325’-1~325’-M内に記憶されたユーザデータに対応することができる。黄金基準334は、本明細書でさらに論じられるように、ユーザデータがセキュアであるかどうかを判定するために、データ構造325’-1~325’-M内に記憶されたユーザデータからメモリデバイス306によって計算された暗号化基準と比較することができる。
いくつかの例では、セキュアなパーティション317は、セキュアなサブパーティションとすることができ、そのようなサブパーティションのいくつかにより、より大きいセキュアなパーティションを構成することができる。このような例では、それぞれのサブパーティションは、各サブパーティションアドレスによってアドレス指定することができる。それぞれの各サブパーティションは、例えば、それぞれの数のデータ構造325’と、それぞれの数のデータ構造内のユーザデータに対応する各黄金基準334とを有することができる。しかしながら、秘密鍵333は、パーティション全体のためのものとすることができる。例えば、秘密鍵333は、様々なサブパーティションに対して実行される暗号化動作において使用することができる。
パーティション317’は、セキュアなパーティション317と同じデータを記憶することができる。パーティション317’は、パーティション317に対するバックアップパーティションとすることができる。このバックアップパーティションは、本明細書でさらに論じられるように、修復プロセス中にパーティション317と交換することができる。例えば、パーティション317及び317’内のデータは、データが最初にパーティション317及び317’内に記憶されたときには同じである可能性がある。しかしながら、パーティション317’内のデータは、当該データが依然としてその初期状態にあるように、変えない(例えば、決して更新されない)ままにすることができる。例えば、データがパーティション317’内に記憶された後、当該データに対して読み出し、書き込みまたは消去動作などの動作が実行されない場合がある。あるいは、パーティション317及び317’内のデータは、同じパターンを有するように共に更新することができる。いくつかの例では、パーティション317’は、パーティション317’がユーザにとってアクセス不可能となるようにユーザから隠すことができる秘密のパーティションとすることができる。
読み出し/書き込み電子回路335は、バッファ311からのセキュアなデータ構造225’などのセキュアなデータをセキュアなパーティション317内に書き込むことができる。読み出し/書き込み電子回路335は、セキュアなデータをセキュアなパーティション317からバッファ311内に読み出すことができる。
いくつかの例では、非セキュアなユーザデータを備えたフォーマットデータ構造225内の非セキュアなデータ構造などの非セキュアなデータは、非セキュアな書き込み動作中にインターフェース321、I/O322及びデータパス312を介してコントローラ304からバッファ311に送信することができ、読み出し/書き込み電子回路335は、その非セキュアなデータをパーティション316内に書き込むことができる。
読み出し/書き込み電子回路335は、非セキュアなデータ構造を、非セキュアな読み出し動作中に非セキュアな論理パーティション316からバッファ311内に読み出すことができる。読み出された非セキュアなデータは、コントローラ304に送信することができ、ユーザデータは、ECC構成要素308によって訂正することができる。
メモリデバイス306のデータセレクタ337は、データパス312に結合することができる。データセレクタ337は、ECC構成要素110とすることができるECC構成要素310(例えば、軽いECC構成要素)に結合することができる。ECC構成要素310は、マルチプレクサ339の入力に結合することができる。データパス312は、データバス341によってマルチプレクサ339の別の入力に(例えば、介在する構成要素なしで)直接結合することができる。
I/O322は、コマンドインターフェース342(例えば、コマンドユーザインターフェース)に結合することができる。コマンドインターフェース342は、メモリデバイス306のコントローラ345に結合することができる。コントローラ345は、マルチプレクサ339の別の入力に結合することができる。
コントローラ345は、メモリデバイス306の内部にあるため、コントローラ304がメモリデバイス306の外部にあるためにコントローラ304が外部コントローラであるのとは対照的に、内部コントローラと称することができる。いくつかの例では、コントローラ304は、メモリデバイス306を制御することができるためにメモリシステムコントローラとすることができ、コントローラ345は、組み込みコントローラと称することができる。
コントローラ345は、各制御信号を、ECC構成要素310、データセレクタ337、データパス312、バッファ311及び読み出し/書き込み電子回路335に送信することができる。例えば、各制御信号は、ECC構成要素310、データセレクタ337、データパス312、バッファ311及び読み出し/書き込み電子回路335をアクティブ化することができる。コントローラ345は、各制御信号をマルチプレクサ339に送信することができる。それぞれの各信号は、マルチプレクサ339に各入力を選択させることができる。
マルチプレクサ339の出力は、例えば、暗号化構成要素114とすることができる暗号化構成要素314の一部とすることができるデマルチプレクサ350の入力に結合することができる。暗号化構成要素314は、HMAC構成要素352などのメッセージ認証コード(MAC)構成要素を含むことができる。暗号化構成要素314はまた、HMAC構成要素352に結合された、SHA構成要素354などの暗号化ハッシュ構成要素を含むことができる。例えば、SHA構成要素354は、SHA-256HASHアルゴリズムを実装することができる。デマルチプレクサ350の各出力は、SHA構成要素354及びHMAC構成要素352にそれぞれ結合することができる。
暗号化構成要素314は、HMAC構成要素352及びSHA構成要素354に結合された制御ロジック356を含むことができる。制御ロジック356は、制御ロジック356をアクティブ化することができるコントローラ345からの制御信号を受信するように結合することができる。制御ロジック356は、制御信号をデマルチプレクサ350に出力することができる。例えば、制御信号は、デマルチプレクサ350に、HMAC構成要素352に結合された出力を選択させることができ、別の制御信号は、デマルチプレクサ350に、SHA構成要素354に結合された出力を選択させることができる。いくつかの例では、制御ロジック365は、様々な結果及び/またはフラグを、暗号化構成要素314によって実行される動作に関連したコントローラ345及び/またはコマンドインターフェース342に送信することができる。
メモリデバイス306は、コントローラ345に結合された単調カウンタ360、及びコントローラ345に結合された物理複製困難関数(PUF)構成要素362を含むことができる。単調カウンタ360は、セキュアなコマンドがコントローラ304からメモリデバイス306によって受信される度に、単調に増加するカウント(MTC)をインクリメントすることができる。いくつかの例では、単調カウンタ360は、メモリデバイス306のリセットの電源サイクルごとにMTCをインクリメントすることができる。MTCは、鮮度インジケータとすることができ、このインジケータは、セキュアなコマンドの鮮度を判定するためにセキュアなコマンドに組み込まれた対応する鮮度インジケータと比較することができる。これにより、リプレイの可能性を防ぐ(例えば、除去する)ことができる。
PUFは、温度、ノイズ、信号速度、構造的特性などといった、メモリデバイス306の物理的現象及び/または物理的特性に基づくことができる。PUF構成要素362は、例えば、乱数を生成することができる。いくつかの例では、PUF構成要素362によって生成されたPUFを使用して、暗号化動作のためにHMAC構成要素352によって使用することができる、秘密鍵333などの秘密鍵を生成することができる。
秘密鍵は、例えば、PUFとすることができる。いくつかの例では、コントローラ345は、マルチプレクサ339及びデマルチプレクサ350を介してPUF及びMTCをSHA構成要素354に送信することができるため、SHA構成要素354は、MTCを用いてPUFをハッシュすることによって秘密鍵を生成することができる(例えば、秘密鍵=HASH(PUF|MTC))。あるいは、コントローラ345は、PUF、MTC及びデータをコントローラ304からSHA構成要素354に送信することができるため、SHA構成要素354は、MTC及びデータを用いてPUFをハッシュすることによって秘密鍵を生成することができる(例えば、秘密鍵=HASH(PUF|MTC|データ))。
I/O322は、数あるプロトコルの中でも、SPIプロトコルまたはONFIプロトコルなどの特定のプロトコルに従ってコントローラ304からコマンドインターフェース342にコマンドをルーティングすることができる。コマンドインターフェース342は、非セキュアなコマンドを受信することができ、そのコマンドを評価して、そのコマンドが正しいかどうかを判定することができる。例えば、コマンドインターフェース342は、期待される動作コード及び期待されるコマンドパラメータをコマンドが含むかどうかを判定することによってコマンドが正しいかどうかを判定することができる。コマンドが正しいと判定したことに応答して、コマンドインターフェース342は、データパス312及びI/O322をアクティブ化してデータをルーティングするための制御信号を送信することができる。コマンドインターフェース342はまた、コマンドを実行するためにコントローラ345をアクティブ化することができる。
非セキュアな書き込みコマンドの場合、データパス312及びI/O322をアクティブ化すると、非セキュアな書き込みコマンドに対応するデータが、コントローラ304からバッファ311にI/O322及びデータパス312を介してルーティングされる。非セキュアな読み出しコマンドの場合、データパス312及びI/O322をアクティブ化すると、非セキュアな読み出しコマンドに対応するデータが、バッファ311からコントローラ304にデータパス312及びI/O322を介してルーティングされる。
図4は、本開示のいくつかの実施形態によるセキュアなコマンド470を示す。コマンド470は、動作コード(オペコード)フィールド471を含むことができ、このフィールドは、オペコード(例えば、16進コード0x9B)を記憶することができる。コマンド470は、コマンドタイプ(Cmdタイプ)フィールド472を含むことができ、このフィールドは、コマンドタイプとしてサブオペコードを記憶することができる。コマンド470は、コマンド引数フィールド473を含むことができる。このフィールドは、MTCまたはNONCE(例えば、一度のみ使用される任意の数)などの、コマンドの鮮度を記憶することができる鮮度フィールド474を含むことができる。コマンド引数フィールド473はまた、コマンドのパラメータを記憶することができるコマンドパラメータフィールド475、及びコマンドの署名を記憶することができるコマンド署名フィールドを含むことができる。コマンドペイロード477は、例えば、オペコード、サブオペコード、鮮度及びパラメータを含むことができる。
コマンドインターフェース342は、セキュアなコマンド470をコントローラ304から受信することができる。コマンドインターフェース342は、オペコードが正しいと判定したことに応答してコントローラ345をアクティブ化することができる。コントローラ345は、次いで、コマンド470を認証することができる。例えば、コントローラ345は、サブオペコード、ペイロード477内のバイト数、及び鮮度が正しいかどうかを判定することができる。これらのうちのいずれかが正しくない場合、コントローラ345は、コマンドを中止し、コマンドインターフェース342及びI/O322を通じてコントローラ304にエラーメッセージを送信することができる。コントローラ345は、例えば、コマンド470内のMTCを単調カウンタ360からのMTCと比較することによって鮮度を判定できることに留意されたい。サブオペコード、ペイロード477内のバイト数、及び鮮度が正しいことに応答して、コントローラは、コマンド470内の署名を検証することができる。
いくつかの例では、コントローラ345は、その署名を、暗号化構成要素314によって計算されたローカルな暗号化署名と比較することによって検証することができる。例えば、暗号化構成要素314は、ローカルな署名を、ペイロード477と秘密鍵333などの秘密鍵KとのMACとして計算することができる。ペイロード477は、例えば、マルチプレクサ339及びデマルチプレクサ350を介してコントローラ345から暗号化構成要素314に送信することができる。
暗号化構成要素314は、バス378を介してローカルな署名をコントローラ345に送信することができる。コントローラ345は、コマンド470内の署名がローカルな署名と一致したことに応答してコマンド470を実行することができ、またはコマンド470内の署名がローカルな署名と一致しないことに応答してコマンド470を中止することができる。
いくつかの例では、ローカルな署名は、ペイロード477及び秘密鍵KからHMAC構成要素352によって(例えば、HMAC(ペイロード,K)として)計算されたHMACとすることができる。例えば、コントローラ345は、制御信号を制御ロジック356に送信してHMACの計算を要求することができる。コントローラ345はまた、制御信号をマルチプレクサ339に送信することができる。これにより、マルチプレクサ339は、マルチプレクサ339からの出力のためにコントローラ345からの入力を選択し、その結果、マルチプレクサ339は、ペイロード477をデマルチプレクサ350に出力することができる。制御ロジック356は、制御信号をデマルチプレクサ350に送信することができ、これにより、デマルチプレクサ350は、ペイロード477をHMAC構成要素352に送る。コントローラ345は、制御信号を制御ロジック356に送信することができ、制御ロジック356は、制御ロジック356が制御信号を受信したことに応答してHMAC構成要素352にローカルな署名を計算させることができる。制御ロジック356は、バス378を経由してローカルな署名をコントローラ345に送信することができる。
いくつかの例では、ローカルな署名は、SHA構成要素354と連携してHMAC構成要素352を使用することによって計算することができる。例えば、HMAC構成要素352は、秘密鍵Kと内部パディング(ipad)とのXORをとること(例えば、K XOR ipad)などにより、Kをipadと組み合わせることができる。HMAC構成要素352は、XORの結果をペイロードと組み合わせて、(K XOR ipad)||ペイロードを作成することができる。SHA構成要素354は、次いで、(K XOR ipad)||ペイロードの暗号化ハッシュをHASH[(K XOR ipad)||ペイロード]として計算することができる。HMAC構成要素352は、次いで、Kと外側パディング(opad)とのXORをとり、そのXORの結果をHASH[(K XOR ipad)||ペイロード]と組み合わせて、(K XOR opad)||HASH[(K XOR ipad)||ペイロード]を作成することができる。SHA構成要素354は、次いで、(K XOR opad)||HASH[(K XOR ipad)||ペイロード]の暗号化ハッシュをHASH[(K XOR opad)||HASH[(K XOR ipad)||ペイロード]]として計算することができ、この暗号化ハッシュをローカルな署名とすることができる。この例では、SHA構成要素354が2回使用されることに留意されたい。
いくつかの例では、暗号化動作は、コントローラ304からのコマンドに応答して、暗号化構成要素314によってコントローラ304からの非セキュアなユーザデータに対して実行することができる。例えば、暗号化構成要素314は、コントローラ304からのMACコマンド、またはコントローラ304からのHASHコマンドに応答してコントローラ304から受信したユーザデータのHASHに応答して、コントローラ304から受信したユーザデータと鍵とのMAC(例えば、MAC(ユーザデータ、鍵))を計算することができる。計算されたMACまたはHASHは、次いでコントローラ304に返すことができる。
いくつかの例では、コマンド(例えば、MACまたはHASHコマンド)は、コントローラ304からコマンドインターフェース342にて受信することができ、コマンドインターフェース342は、コントローラ345をアクティブ化することができる。コントローラ345は、制御信号を介して、I/O322及びデータパス312をアクティブ化することができる。その結果、コマンドに対応する、データ構造225などのデータ構造は、コントローラ304からI/O322及びデータパス312を介してバッファ311に送信することができる。
コントローラ345は、制御信号を介して、バッファ311及びデータパス312をアクティブ化することができる。その結果、バッファ311内のデータ構造内のユーザデータは、バッファ311から、データバス341に結合されたマルチプレクサ339の入力に送信することができる。コントローラ345は、マルチプレクサ339に、デマルチプレクサ350に出力するためのユーザデータを選択させることができる。
コントローラ345は、制御ロジック356を(例えば、コントローラ354と制御ロジック356との間の「ハンドシェイク」動作を介して)アクティブ化することができる。アクティブ化された制御ロジック356は、HMAC構成要素352をアクティブ化することができ、デマルチプレクサ350に、ユーザデータをHMAC構成要素352に送らせることができる。コントローラ304が鍵を提供する例では、鍵は、コマンドと共にコントローラ345に送信することができ、コントローラ345は、バス378を介して制御ロジック356に鍵を送信することができる。
図2Aのデータ構造225内のユーザデータがセキュアであるとき、データ構造225は、前述したように、セキュアな書き込みコマンドが認証されたことに応答してデータバッファ311に書き込むことができる。例えば、コントローラ345は、書き込みコマンドを認証したことに応答してI/O322及びデータパス312をアクティブ化することができる。その結果、データ構造225を、I/O322及びデータパス312を介してデータバッファ311に送信することができる。
コントローラ345は、制御信号を介して、バッファ311、データパス312、データセレクタ337及びECC構成要素310をアクティブ化することができる。データ構造225の各フレームFrame1~Frame4は、次いで、バッファ311からデータセレクタ337に送信され得る。その結果、データセレクタ337は、各ユーザデータUSER1~USER4を選択し、各ユーザデータUSER1~USER4をECC構成要素310に送信することができる。ECC構成要素310は、各ユーザデータUSER1~USER4から各ECC’1~ECC’4を計算することができる。
ECC構成要素310は、各ECC’1~ECC’4をバッファ311に返信することができる。その結果、各ECC’1~ECC’4を、各スペアフィールド229-1~229-4内に書き込むことができる。例えば、各スペアデータSPARE1~SPARE4(例えば、全て1または0のデータパターンを有する)は、(例えば、データ構造225’を作成するために)各ECC’1~ECC’4を用いて上書きすることができる。データ構造225’は、コントローラ345が制御信号を介して読み出し/書き込み電子回路335をアクティブ化したことに応答して、読み出し/書き込み電子回路335によってバッファ311からセキュアなパーティション317内に書き込まれ得る。
セキュアなデータ構造225’などのセキュアなデータ構造は、前述したように、コントローラ304からのセキュアな読み出しコマンドが認証されたことに応答して、パーティション317から読み出すことができる。コントローラ345は、読み出しコマンドを認証したことに応答して読み出し/書き込み電子回路335をアクティブ化することができ、その結果、読み出し/書き込み電子回路335は、データ構造をデータバッファ311内に読み出すことができる。
コントローラ345は、バッファ311、データパス312及びI/O322をアクティブ化することができ、その結果、データ構造を、バッファ311からコントローラ304にルーティングすることができる。いくつかの例では、ECC構成要素308は、ECC1、ECC2、ECC3及びECC4などの各ECCデータを用いて、USER1、USER2、USER3及びUSER4(図2B)などのユーザデータを訂正することができる。
いくつかの例では、メモリデバイス306は、メモリデバイス306が電源投入またはリセットされる度に、セキュアなパーティション317内のユーザデータがセキュアであるかどうかを判定することができる。例えば、コントローラ304は、メモリシステム302が電源投入またはリセットされる度に、セキュアなコマンドをメモリデバイス306に送信することができ、これにより、メモリデバイス306は、パーティション317内のユーザデータがセキュアであるかどうかを判定することができる。
メモリデバイス306は、(例えば、メモリデバイス306が最後に電源切断されてから)ユーザデータが変更されたかどうかを判定することによってユーザデータがセキュアであるかどうかを判定することができる。これは、セキュアなパーティション317内のユーザデータの暗号化基準を計算し、その暗号化基準を黄金基準334と比較することによって実現することができる。
いくつかの例では、暗号化基準は、パーティション317内の全てのユーザデータのHMACとすることができる。HMACは、ローカルな署名と関連して前述したHMACと同様のものとすることができる(例えば、HMAC(ユーザデータ,K))。例えば、暗号化基準は、ペイロードであるユーザデータを用いてSHA構成要素354と連携してHMAC構成要素352によって計算されたローカルな署名HASHとすることができる。
セキュアなコマンドは、前述したように、コントローラ345によって認証することができる。コントローラ345は、認証されたコマンドを実行して、パーティション317のための暗号化基準を決定することができる。コントローラ345は、読み出し/書き込み電子回路335をアクティブ化して、データ構造325’-1~325’-Mをパーティション317からバッファ311内に1つずつ読み出すことができる。コントローラ345は、制御信号を介して、バッファ311、データパス312、データセレクタ337及びECC構成要素310をアクティブ化することができる。ECC構成要素310は、ECC構成要素310によって計算された各ECCデータを用いて、データ構造325’-1~325’-Mのそれぞれにおける各ユーザデータを訂正することができる。ECC構成要素310は、訂正されたユーザデータを暗号化構成要素314に送信することができ、暗号化構成要素314は、訂正されたユーザデータの暗号化基準を計算することができる。
コントローラ345は、制御信号をマルチプレクサ339に送信することができ、これにより、マルチプレクサ339は、ECC構成要素310に結合された入力を選択することができ、その結果、ECC構成要素310は、訂正されたユーザデータをデマルチプレクサ350に送信することができる。いくつかの例では、コントローラ345は、「ハンドシェイク」動作を介して、制御ロジック356をアクティブ化することができ、制御ロジック356は、信号をデマルチプレクサ350に送信することができる。これにより、デマルチプレクサ350は、訂正されたユーザデータをHMAC構成要素352に渡す。HMAC構成要素352は(例えば、SHA構成要素354と連携して)、次いで、訂正されたユーザデータから暗号化基準を計算することができる。
暗号化基準は、黄金基準334と比較することができる。暗号化基準が黄金基準334に等しい場合、パーティション内のユーザデータは変更されていないため、セキュアである。しかしながら、暗号化基準が黄金基準334に等しくない場合、パーティション内のユーザデータは(例えば、ハッカー攻撃によって)変更されているため、セキュアではないとみなされる。
各データ構造325’-1~325’-Mのそれぞれがデータ構造225’として構成される例の場合。各フレームFrame1~Frame4を、バッファ311からデータセレクタ337に送信することができ、その結果、データセレクタ337は、各ユーザデータUSER1~USER4及び~各ECCデータECC’1~ECC’4を選択し、USER1~USER4及び各ECCデータECC’1~ECC’4をECC構成要素310に送信することができる。ECC構成要素310は、各ECC’1~ECC’4を用いて各ユーザデータUSER1~USER4を訂正し、訂正されたユーザデータUSER1~USER4を暗号化構成要素314に送信することができる。このプロセスは、各データ構造325’-1~325’-Mのそれぞれについて繰り返すことができる。
いくつかの例では、黄金基準334は、暗号化基準について前述したように計算することができるが、ユーザデータがセキュアなパーティション317内に最初に記憶され、読み出し、書き込みまたは消去動作などの動作がパーティション317に対して実行されていないときにはパーティション317内のユーザデータ(例えば、初期ユーザデータ)の初期状態について計算することができる。例えば、黄金基準334は、HMACとすることができる。HMACは、ローカルな署名と関連して前述したHMACと同様のものとすることができる(例えば、HMAC(初期ユーザデータ,K))。例えば、黄金基準334は、ペイロードである初期ユーザデータを用いてSHA構成要素354と連携してHMAC構成要素352によって計算されたローカルな署名HASHとすることができる。
データ構造のフレーム内のユーザデータのエラーをECC構成要素310によって訂正することができないとき、内部コントローラ345が、例えば、読み出し/書き込み電子回路335にデータ構造を再度読み出させることができ、例えば、ECC構成要素310は、再度読み出されたデータ構造のそれぞれのフレーム内のユーザデータを訂正することができる。
いくつかの例では、コントローラ304は、ECC構成要素310がデータ構造のフレーム内のユーザデータを訂正することが不可能であることに応答してバッファ311内のデータ構造を読み出すことができる。例えば、ECC構成要素308は、USER1、USER2、USER3及びUSER4などの、データ構造の各フレーム内のデータを、ECC1、ECC2、ECC3及びECC4などの、ECC構成要素308によって計算された対応するECCデータを用いて訂正することができる。コントローラ304は、次いで、訂正されたユーザデータ(例えば、外部で訂正されたユーザデータ)を備えたデータ構造をデータバッファ311に送信することができる。コントローラ345は、次いで、データセレクタ337に、外部で訂正されたユーザデータを選択させることができる。コントローラ345は、いくつかの例では、ECC構成要素310をバイパスモードにすることができ、その結果、データセレクタ337は、ECC構成要素310による訂正なしに、外部で訂正されたユーザデータを暗号化構成要素314に対して選択することができる。これは、例えば、暗号化基準の計算中に行うことができる。
いくつかの例では、コントローラ304は、パーティション317内のデータのいずれかが変更されたときにのみ、パーティション317内のデータを訂正するように使用される場合がある。あるいは、パーティション317内のデータのいずれかが変更されたとき、修復手順を使用することができる。パーティション317内のデータは、ハッカー攻撃またはメモリデバイス306の動作における技術的障害の結果として変更される可能性がある。修復手順はまた、暗号化基準が黄金基準344と一致しないことに応答して実行することができる。修復手順は、例えば、コントローラ345がパーティション317をパーティション317’に置き換えることを含むことができる。
秘密鍵333を伴う様々な前述の例では、秘密鍵333が直接使用された。しかしながら、いくつかの例では、秘密鍵333の代わりにセッション鍵を使用することができる。例えば、メモリシステム302のそれぞれの電源投入(例えば、リセット)時に開始することができるメモリシステム302のそれぞれの電源サイクル中、新しい(例えば、異なる)セッション鍵を使用することができる。セッション鍵は、例えば、暗号化構成要素314により、先行する電源サイクルの終了時に電源サイクルについて計算され得る。例えば、セッション鍵は、秘密鍵333と、先行する電源サイクルの終了時のMTCとのMACとすることができる(例えば、セッション鍵=MAC(MTC、秘密鍵))。あるいは、例えば、セッション鍵=HMAC(MTC、秘密鍵)である。
メモリデバイス306は、メモリデバイス識別子(ID)を有することができる。いくつかの例では、コントローラ304からのメモリデバイス認証コマンドに応答して、コントローラ345は、IDを暗号化構成要素314に送信することができる。暗号化構成要素314は、暗号化コード(例えば、署名ID)を秘密鍵333とIDとのMACとして計算することができる(例えば、署名ID=MAC(秘密鍵、ID))。暗号化構成要素314は、署名IDをコントローラ345に返すことができ、コントローラ345は、署名IDをコントローラ304に送信することができる。コントローラ304は、署名IDをメモリデバイス306の正しい署名IDと比較することができ、その比較からメモリデバイスが本物であるかどうかを判定することができる。署名IDが一致する場合、メモリデバイス306は本物である。そうでなければ、メモリデバイス306は本物ではなく、例えば、複製である可能性がある。
図5は、309のアレイ109(例えば、NANDアレイ)の一部とすることができる不揮発性メモリセルのブロック580(例えば、NANDブロック)の概略図である。いくつかの例では、ブロック580は、非セキュアなパーティション116もしくは316、またはセキュアなパーティション117もしくは317に対応することができる。
ブロック580は、直列に結合されたメモリセルのグループ(例えば、NANDストリング581-1~581-I)を含む。NANDストリング581-1~581-Iのそれぞれは、選択トランジスタ583と選択トランジスタ584との間に直列に結合されたメモリセル582-1~582-Jを含むことができる。NANDストリング581-1~581-Iは、選択トランジスタ584のゲートに共通に結合された選択線586にアクティブ化信号が印加されたことに応答して、各選択トランジスタ584によってデータ線585-1~585-I(例えば、ビット線)にそれぞれ選択的に結合することができる。NANDストリング581-1~581-Iは、選択トランジスタ583のゲートに共通に結合された選択線588にアクティブ化信号が印加されたことに応答して、各選択トランジスタ583によって共通ソース587に選択的に結合することができる。
アクセス線590-1~590-J(例えば、ワード線)は、それぞれ、メモリセル582-1~582-Jの制御ゲートに共通に結合ことができる。例えば、NANDストリング581-1~581-N内の共通の位置でのメモリセル582のグループは、各アクセス線590に共通に結合することができる。いくつかの例では、アクセス線に共通に結合されたメモリセルのグループは、メモリセルのページとすることができる。例えば、アクセス線590-1~590-Jにそれぞれ共通に結合されたI個のメモリセルの各グループは、メモリセルの各ページとすることができる。そのため、ブロック580内には、それぞれがI個のメモリセルを有するJページのメモリセルが存在することができる。しかしながら、本開示は、そのように限定されず、アクセス線に共通に結合されたメモリセルの様々なグループ分けがページに対応することができる。いくつかの例では、データ構造225、225’または325’などのデータ構造は、ページ内に記憶させることができる。
ブロック580のメモリセル582の全ては、一般に、ブロック580がセキュアなパーティションまたは非セキュアなパーティションの一部であるかどうかに関係なく、消去プロセス中に消去できることに留意されたい。ブロック580がセキュアなパーティションの一部であるとき、ブロック580を、前述したように認証され得る、コントローラ304から受信したセキュアな消去コマンドに応答して消去することができる。ブロック580が非セキュアなパーティションの一部であるとき、ブロック580を、コントローラ304から受信した非セキュアな消去に応答して消去することができる。いくつかの例では、メモリセル582は、一度にページを書き込むか、または読み出すことができる。
メモリセル582のそれぞれは、とりわけフローティングゲートまたは電荷トラップ層などの電荷蓄積構造591、及び制御ゲート592を含むことができる。電荷蓄積構造378のプログラミングを通じたメモリセル358のVtの変化により、それぞれのセルのデータ状態を判定することができる。
メモリセル358は、セルあたり単一のビットを記憶することができるSLC、またはセルあたり2ビット、3レベルセル(TLC)などのセルあたり3ビット、4レベルセル(QLC)などのセルあたり4ビットなどといった、セルあたり複数ビットのMLCとすることができる。パーティション117及び317は、SLCのブロックのみを含むことができるが、パーティション116または316は、SLC及び/またはMLCのブロックを含むことができることに留意されたい。
いくつかの例では、ブロック580は、三次元NANDメモリアレイなどの、三次元(3D)メモリアレイと称することができる積層型メモリアレイの一部とすることができる。積層型メモリアレイでは、NANDストリング581は、半導体構造(例えば、垂直方向の半導体ピラー)に隣接することができ、NANDストリング581内のメモリセル582は、異なるレベル(例えば、垂直方向のレベル)に存在することができる。メモリセルのページなどの、アクセス線590に共通に結合されたメモリセル582は、例えば、共通のレベルに存在することができ、メモリセルのティアと称されることが多い、メモリセルのレベルを形成し得る。
本開示の前述の詳細な説明では、本明細書の一部を構成する添付図面への参照がなされ、それらの図面では、本開示のいくつかの実施形態がどのように実施され得るかが一例として示される。これらの実施形態は、当業者が本開示の実施形態を実施することが可能となるように十分詳細に説明されており、本開示の範囲から逸脱することなく、他の実施形態が利用されてよいこと、ならびにプロセスの変更、電気的変更及び/または構造的変更がなされてよいことが理解されよう。
本明細書で使用される「いくつかの(a number of)もの」、または「多数の(quantity of)もの」は、そのような1つ以上のものを指すことができる。例えば、いくつかのメモリセルまたは多数のメモリセルは、1つ以上のメモリセルを指すことができる。「複数の(plurality)もの」は、2つ以上を意図している。本明細書で使用されるように、用語「結合される(coupled)」は、電気的に結合されること、直接結合されること、及び/または(例えば、直接の物理的接触によって)介在要素なしで直接接続されること、介在要素と間接的に結合及び/または接続されること、または無線で結合されることを含み得る。用語「結合される」は、さらに、(例えば、因果関係にあるように)相互に協働または相互作用する2つ以上の要素を含み得る。
本明細書では特定の実施形態が示され説明されたが、示される特定の実施形態は、同じ結果を達成するように意図された構成と置き換えられ得ることを、当業者は理解するであろう。本開示は、本開示のいくつかの実施形態の適合形態または変形形態を含むことを意図する。上記説明は限定的ではなく例示的に行われていることが理解されよう。上記実施形態の組み合わせ、及び本明細書で特に説明されていない他の実施形態は、上記説明を検討した当業者にとって明らかであろう。本開示のいくつかの実施形態の範囲は、上記の構造及び方法が使用される他の用途を含む。したがって、本開示のいくつかの実施形態の範囲は、添付の特許請求の範囲と、添付の特許請求の範囲に権利を与えられた内容と同等物の全範囲とを参照して、特定されるべきである。
前述の発明を実施するための形態では、本開示を簡素化する目的で、いくつかの特徴が単一の実施形態にまとめられている。本開示のこの方法は、本開示の開示された実施形態が、各請求項に明確に列挙された特徴より多くの特徴を使用する必要があるという意図を反映するものとして、解釈されるべきではない。むしろ、下記の特許請求の範囲が反映するように、発明の主題は、開示された単一の実施形態の全ての特徴よりも少ない特徴で存在する。したがって、以下の請求項は、本明細書によって発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。

Claims (23)

  1. 第1のエラー訂正コード構成要素を含むコントローラと、
    前記コントローラに結合されたメモリデバイスであって、前記メモリデバイスが、
    メモリセルのアレイと、
    前記アレイに結合され、前記アレイからのデータを訂正するように構成された第2のエラー訂正コード構成要素と、
    前記第2のエラー訂正コード構成要素に結合され、前記第2のエラー訂正コード構成要素から前記訂正されたデータを受信するように構成された暗号化構成要素と、を含む前記メモリデバイスと、
    を含む、装置。
  2. 前記第1のエラー訂正コード構成要素が、第1のエラー訂正コードを計算し、前記第1のエラー訂正コードを使用して前記アレイからの前記データを訂正するように構成され、
    前記第2のエラー訂正コード構成要素が、第2のエラー訂正コードを計算し、前記第2のエラー訂正コードを使用して前記アレイからの前記データを訂正するように構成される、請求項1に記載の装置。
  3. 前記暗号化構成要素が、前記受信したデータから第1の暗号化コードを計算するように構成され、
    前記メモリデバイスが、前記第1の暗号化コードを前記アレイ内に記憶された第2の暗号化コードと比較するように構成される、請求項1に記載の装置。
  4. 前記第1及び第2の暗号化コードが、前記アレイ内に記憶された秘密鍵に基づく、請求項3に記載の装置。
  5. 前記第1及び第2の暗号化コードが、第1及び第2の暗号化ハッシュである、請求項3に記載の装置。
  6. 前記コントローラが、前記メモリデバイスの外部にある外部コントローラであり、メモリインターフェースを介して前記メモリデバイスに結合され、ホストインターフェースを介してホストに結合され、
    前記メモリデバイスが内部コントローラを含む、請求項1~3のいずれか1項に記載の装置。
  7. 前記メモリデバイスが、前記内部コントローラに結合された単調カウンタを含み、
    前記内部コントローラが、前記単調カウンタからの単調カウントを第1のコントローラから受信したコマンドの単調カウントと比較して前記コマンドの鮮度を判定するように構成される、請求項6に記載の装置。
  8. 前記メモリデバイスが、前記内部コントローラに結合された物理複製困難関数構成要素を含む、請求項6に記載の装置。
  9. 前記暗号化構成要素が、
    ハッシュメッセージ認証コード構成要素に結合されたSHA構成要素と、
    前記SHA構成要素及び前記ハッシュメッセージ認証コード構成要素に結合された制御ロジックと、を含む、請求項1~3のいずれか1項に記載の装置。
  10. 前記暗号化構成要素が、
    前記第2のエラー訂正コード構成要素を用いてデータを訂正せずに前記コントローラから前記データを受信し、
    前記データから暗号化コードを計算するように構成される、請求項1~3のいずれか1項に記載の装置。
  11. セキュアなパーティションに対応する部分を含むメモリセルのアレイと、
    前記アレイに結合されたバッファであって、データの複数の各セグメントを含むデータ構造を前記セキュアなパーティションから受信するように構成され、前記各セグメントのそれぞれが、各ユーザデータと、メモリデバイスの外部で計算された各第1のエラー訂正コードデータとを含む、前記バッファと、
    前記バッファに結合されたエラー訂正コード構成要素であって、前記バッファ内の前記データ構造から前記各ユーザデータを受信し、前記各ユーザデータから各第2のエラー訂正コードデータを計算し、前記各第2のエラー訂正コードデータを前記データ構造の前記各セグメントに追加するように構成された前記エラー訂正コード構成要素と、
    前記各第2のエラー訂正コードデータが前記データ構造の前記各セグメントに追加された後、前記バッファから前記セキュアなパーティションに前記データ構造を書き込むように構成されたコントローラと、
    前記第2のエラー訂正コード構成要素に結合された暗号化構成要素と、を含むメモリデバイスであって、
    前記エラー訂正コード構成要素が、前記各第2のエラー訂正コードデータを使用して前記各ユーザデータを訂正し、前記訂正された各ユーザデータを前記暗号化構成要素に送信するように構成される、
    前記メモリデバイス。
  12. 前記コントローラが、第1のコントローラであり、前記メモリデバイスが、前記第1のコントローラに結合されたコマンドユーザインターフェースをさらに含み、前記コマンドユーザインターフェースが、前記メモリデバイスの外部にある第2のコントローラからコマンドを受信したことに応答して前記第1のコントローラをアクティブ化するように構成される、請求項11に記載のメモリデバイス。
  13. 前記第1のコントローラが、アクティブ化されたことに応答して、
    前記コマンドの鮮度を判定することと、
    前記コマンドが新しいと判定したことに応答して前記暗号化構成要素に署名を計算させることと、
    前記計算された署名を前記コマンド内の署名と比較することと、により、
    前記コマンドを認証するように構成される、請求項12に記載のメモリデバイス。
  14. 前記計算された署名が、前記アレイ内に記憶された秘密鍵と、前記第1のコントローラから前記暗号化構成要素にて受信した前記コマンドのペイロードとに基づくハッシュメッセージ認証コードである、請求項13に記載のメモリデバイス。
  15. 前記計算された署名が、鍵と、前記第1のコントローラから前記暗号化構成要素にて受信した前記コマンドのペイロードとに基づくハッシュメッセージ認証コードであり、
    前記鍵が、前記アレイ内に記憶された秘密鍵のメッセージ認証コード及び前記メモリデバイスの単調カウンタの単調カウントであるセッション鍵である、請求項13に記載のメモリデバイス。
  16. メモリデバイスのメモリアレイからデータを読み出すこととであって、前記データが、ユーザデータと、前記ユーザデータから外部コントローラによって計算された第1のエラー訂正データと、前記ユーザデータから前記メモリデバイスのエラー訂正コード構成要素によって計算された第2のエラー訂正データとを含む、前記読み出すことと、
    前記エラー訂正コード構成要素により、前記第2のエラー訂正データを用いて前記ユーザデータを訂正することと、
    前記訂正されたユーザデータを前記エラー訂正コード構成要素から前記メモリデバイスの暗号化構成要素に送信することと、
    前記暗号化構成要素により、前記訂正されたユーザデータに対して暗号化動作を実行することと、
    を含む、方法。
  17. 前記ユーザデータを前記第2のエラー訂正データを用いて訂正する前に、
    前記メモリアレイから前記メモリデバイスのデータセレクタに前記データを送信することと、
    前記データセレクタにより、前記データから前記ユーザデータ及び前記第2のエラー訂正データを選択することと、
    前記ユーザデータ及び前記第2のエラー訂正データを前記データセレクタから前記エラー訂正コード構成要素に送信することと、をさらに含む、請求項16に記載の方法。
  18. 前記暗号化構成要素により、前記訂正されたユーザデータに対して暗号化動作を実行することが、前記暗号化構成要素によって前記訂正されたデータから暗号化基準を計算することを含み、前記方法が、
    前記計算された暗号化基準を前記メモリアレイ内に記憶された黄金基準と比較することをさらに含む、請求項16に記載の方法。
  19. 前記メモリアレイから前記データを読み出すことが、第1の論理パーティションに対応する前記メモリアレイの一部から前記データを読み出すことを含み、
    前記方法が、前記計算された暗号化基準が前記黄金基準と一致しないことに応答して、データの前記第1の論理パーティションをデータの第2の論理パーティションで置き換えることをさらに含む、請求項18に記載の方法。
  20. 前記エラー訂正コード構成要素が、前記第2のエラー訂正データを用いて前記ユーザデータを訂正することに失敗したことに応答して、
    前記メモリデバイスの内部コントローラにより、前記メモリアレイから前記データを再度読み出すことと、
    前記エラー訂正コード構成要素により、前記再度読み出されたデータの前記ユーザデータを前記再度読み出されたデータの前記第2のエラー訂正データを用いて訂正することをさらに含む、請求項16~18のいずれか1項に記載の方法。
  21. 前記エラー訂正コード構成要素が、前記第2のエラー訂正データを用いて前記ユーザデータを訂正することに失敗したことに応答して、
    前記外部コントローラにより、前記アレイから前記データを読み出すことと、
    前記外部コントローラにより、前記外部コントローラによって読み出された前記データの前記ユーザデータを前記第1のエラー訂正データを用いて訂正することと、をさらに含む、請求項16~18のいずれか1項に記載の方法。
  22. 前記外部コントローラによって訂正された前記ユーザデータが、外部で訂正されたユーザデータであり、前記方法が、
    前記外部で訂正されたユーザデータを前記メモリデバイスの前記エラー訂正コード構成要素によって訂正せずに、前記外部で訂正されたユーザデータを前記暗号化構成要素に送信することをさらに含む、請求項21に記載の方法。
  23. 前記外部コントローラから受信したコマンドの暗号化署名を、前記コマンドの前記暗号化署名を前記コマンド及び前記アレイ内に記憶された暗号化鍵から前記暗号化構成要素によって計算された暗号化署名と比較することによって検証することをさらに含む、請求項16~18のいずれか1項に記載の方法。
JP2021542320A 2019-01-23 2019-10-30 暗号化構成要素を備えたメモリデバイス Ceased JP2022523294A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/255,142 2019-01-23
US16/255,142 US11514174B2 (en) 2019-01-23 2019-01-23 Memory devices with cryptographic components
PCT/US2019/058812 WO2020154006A1 (en) 2019-01-23 2019-10-30 Memory devices with cryptographic components

Publications (1)

Publication Number Publication Date
JP2022523294A true JP2022523294A (ja) 2022-04-22

Family

ID=71608361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021542320A Ceased JP2022523294A (ja) 2019-01-23 2019-10-30 暗号化構成要素を備えたメモリデバイス

Country Status (7)

Country Link
US (2) US11514174B2 (ja)
EP (1) EP3915035A4 (ja)
JP (1) JP2022523294A (ja)
KR (1) KR20210107148A (ja)
CN (1) CN113348456B (ja)
TW (1) TWI738097B (ja)
WO (1) WO2020154006A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11514174B2 (en) * 2019-01-23 2022-11-29 Micron Technology, Inc. Memory devices with cryptographic components
US11237732B2 (en) * 2019-08-06 2022-02-01 Intel Corporation Method and apparatus to improve write bandwidth of a block-based multi-level cell nonvolatile memory
US11782610B2 (en) * 2020-01-30 2023-10-10 Seagate Technology Llc Write and compare only data storage
FR3118268B1 (fr) 2020-12-23 2024-01-12 St Microelectronics Sa Mémoire sécurisée
US20230057004A1 (en) * 2021-08-17 2023-02-23 Micron Technology, Inc. Secure Collection of Diagnostics Data about Integrated Circuit Memory Cells
US12007912B2 (en) * 2022-06-01 2024-06-11 Micron Technology, Inc. NAND page buffer based security operations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081776A (ja) * 2009-09-11 2011-04-21 Sony Corp 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム
JP2012252557A (ja) * 2011-06-03 2012-12-20 Mega Chips Corp メモリコントローラ
JP2013545340A (ja) * 2010-10-04 2013-12-19 イントリンシツク・イー・デー・ベー・ベー 開始挙動が改善された物理的複製不可能関数
JP2014191372A (ja) * 2013-03-26 2014-10-06 Mega Chips Corp 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1265195A (en) 1993-12-06 1995-06-27 Telequip Corporation Secure computer memory card
AU2002229714A1 (en) 2002-01-18 2003-07-30 Mentor Graphics (Holdings) Ltd. System and method of clocking an ip core during a debugging operation
EP2506486A1 (en) 2004-02-23 2012-10-03 Lexar Media, Inc. Secure compact flash
KR100743253B1 (ko) 2006-04-11 2007-07-27 엠텍비젼 주식회사 코드 데이터 에러 정정 방법 및 장치
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
US8184812B2 (en) 2009-06-03 2012-05-22 Freescale Semiconductor, Inc. Secure computing device with monotonic counter and method therefor
US8943313B2 (en) 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
TWI596486B (zh) 2011-11-04 2017-08-21 群聯電子股份有限公司 記憶體儲存裝置、記憶體控制器及資料串傳送與識別方法
WO2013095387A1 (en) * 2011-12-20 2013-06-27 Intel Corporation Secure replay protected storage
CN104704768B (zh) 2012-10-04 2018-01-05 本质Id有限责任公司 用于从用作物理不可克隆功能的存储器中生成密码密钥的系统
US8996951B2 (en) 2012-11-15 2015-03-31 Elwha, Llc Error correction with non-volatile memory on an integrated circuit
US9367391B2 (en) * 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
US9804979B2 (en) * 2014-12-29 2017-10-31 Sandisk Technologies Llc Ring bus architecture for use in a memory module
US9613714B1 (en) * 2016-01-19 2017-04-04 Ememory Technology Inc. One time programming memory cell and memory array for physically unclonable function technology and associated random code generating method
US10404478B2 (en) 2016-08-04 2019-09-03 Macronix International Co., Ltd. Physical unclonable function using divided threshold distributions in non-volatile memory
US10911229B2 (en) * 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
KR102557993B1 (ko) * 2018-10-02 2023-07-20 삼성전자주식회사 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법
US11514174B2 (en) * 2019-01-23 2022-11-29 Micron Technology, Inc. Memory devices with cryptographic components

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081776A (ja) * 2009-09-11 2011-04-21 Sony Corp 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム
JP2013545340A (ja) * 2010-10-04 2013-12-19 イントリンシツク・イー・デー・ベー・ベー 開始挙動が改善された物理的複製不可能関数
JP2012252557A (ja) * 2011-06-03 2012-12-20 Mega Chips Corp メモリコントローラ
JP2014191372A (ja) * 2013-03-26 2014-10-06 Mega Chips Corp 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム

Also Published As

Publication number Publication date
EP3915035A1 (en) 2021-12-01
CN113348456B (zh) 2024-10-22
US11514174B2 (en) 2022-11-29
US11868488B2 (en) 2024-01-09
TWI738097B (zh) 2021-09-01
TW202101215A (zh) 2021-01-01
CN113348456A (zh) 2021-09-03
EP3915035A4 (en) 2022-11-16
US20200233967A1 (en) 2020-07-23
US20230086754A1 (en) 2023-03-23
KR20210107148A (ko) 2021-08-31
WO2020154006A1 (en) 2020-07-30

Similar Documents

Publication Publication Date Title
TWI738097B (zh) 具有密碼學組件的記憶體裝置
JP7101318B2 (ja) メモリ内のデータアテステーション
US11683155B2 (en) Validating data stored in memory using cryptographic hashes
US11669643B2 (en) Block chain based validation of memory commands
US11228443B2 (en) Using memory as a block in a block chain
WO2020197775A1 (en) Over-the-air update validation
US20220138114A1 (en) Using memory as a block in a block chain

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210917

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221115

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221129

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20230328