IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インフィニオン テクノロジーズ エルエルシーの特許一覧

特表2022-541662個別にプログラミング可能なセキュアアクセス特徴を有する領域を備えた不揮発性メモリ装置、関連する方法およびシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-26
(54)【発明の名称】個別にプログラミング可能なセキュアアクセス特徴を有する領域を備えた不揮発性メモリ装置、関連する方法およびシステム
(51)【国際特許分類】
   G06F 12/14 20060101AFI20220915BHJP
   H04L 9/10 20060101ALI20220915BHJP
   G06F 21/44 20130101ALI20220915BHJP
【FI】
G06F12/14 510D
H04L9/10 A
G06F21/44 350
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022505367
(86)(22)【出願日】2020-07-24
(85)【翻訳文提出日】2022-03-25
(86)【国際出願番号】 US2020043361
(87)【国際公開番号】W WO2021016501
(87)【国際公開日】2021-01-28
(31)【優先権主張番号】62/878,404
(32)【優先日】2019-07-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/827,478
(32)【優先日】2020-03-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】522029730
【氏名又は名称】インフィニオン テクノロジーズ エルエルシー
【氏名又は名称原語表記】Infineon Technologies LLC
【住所又は居所原語表記】198 Champion Court, San Jose, CA 95134, United States of America
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ハンス ファン アントウェルペン
(72)【発明者】
【氏名】クリフォード ズィットロー
(72)【発明者】
【氏名】スティーヴン ロスナー
(72)【発明者】
【氏名】ヨアフ ヨゲフ
(72)【発明者】
【氏名】サンディープ クリシュネゴウダ
(72)【発明者】
【氏名】スティーヴン ウィルソン
【テーマコード(参考)】
5B017
【Fターム(参考)】
5B017AA01
5B017BA04
5B017BA06
5B017BB06
5B017CA11
(57)【要約】
装置は、各領域が複数の不揮発性メモリセルを含んでいる複数の領域と、各領域に対する少なくとも1つの許可値を含んでいる許可値セットを不揮発性に格納するように構成されている許可ストアと、アクセスコントロール回路とを含んでおり、アクセスコントロール回路は、領域に対する許可値に従って、各領域へのアクセスをコントロールするように構成されており、コントロールすることは、領域にアクセスするための認証を要求すること、領域から読み出されたデータを暗号化すること、および領域内に格納するためにデータを解読すること、のうちの1つまたは複数を含んでいる。関連する方法およびシステムが開示されている。
【特許請求の範囲】
【請求項1】
装置であって、前記装置は、
各領域が複数の不揮発性メモリセルを含んでいる複数の領域と、
各領域に対する少なくとも1つの許可値を含んでいる許可値セットを不揮発性に格納するように構成されている許可ストアと、
アクセスコントロール回路と、
を含んでおり、
前記アクセスコントロール回路は、前記領域に対する前記許可値に従って、各領域へのアクセスをコントロールするように構成されており、
コントロールすることは、
前記領域にアクセスするための認証を要求することと、
前記領域から読み出されたデータを暗号化することと、
前記領域内に格納するためにデータを解読することと、
のうちの1つまたは複数を含んでいる、
装置。
【請求項2】
各領域は、NOR型フラッシュアレイを含んでいる、
請求項1記載の装置。
【請求項3】
繰り返されない不揮発性のカウント値を生成するように構成されている少なくとも1つの不揮発性モノトニックカウンタ(NMC)をさらに含んでいる、
請求項1記載の装置。
【請求項4】
前記アクセスコントロール回路は、認証回路を含んでおり、
前記認証回路は、
少なくとも1つのNMCの前記カウント値で、受け取ったデータを認証し、
少なくとも1つのNMCの前記カウント値で、伝送のための認証値を生成する、
ように構成されている、
請求項3記載の装置。
【請求項5】
前記装置は、各領域に対して複数の領域キーを格納するように構成されている不揮発性キーストアをさらに含んでおり、
前記アクセスコントロール回路は、
領域に向けられた、受け取ったデータを、前記領域のためのキーで認証し、
前記領域へのアクセスに対する応答のために、前記領域のためのキーで、メッセージ認証コード(MAC)を生成し、
領域にアドレス指定された、受け取ったデータを、前記領域のための領域キーで解読し、
領域から読み出したデータを、前記領域のための領域キーで解読する、
ように構成されている、
請求項1記載の装置。
【請求項6】
前記許可ストアは、各領域に対する複数の不揮発性のインデックス値を含んでおり、各インデックス値は、前記領域キーのうちの1つを指し示すようにプログラミング可能である、
請求項5記載の装置。
【請求項7】
前記装置は、領域キーの再使用を制限するように構成されているデプリケータモジュールをさらに含んでいる、
請求項5記載の装置。
【請求項8】
前記許可ストアは、顧客に従って各領域のためのアクセスキーを選択的に格納するように構成されている製造業者ストアを含んでおり、各アクセスキーは、装置製造業者による、対応する領域へのアクセスを可能にする、
請求項1記載の装置。
【請求項9】
方法であって、前記方法は、
メモリ装置でリクエストを受け取るステップであって、前記メモリ装置は、複数の領域を有しており、各領域は、アクセス許可の異なる種類に対して個別に設定可能であるステップと、
前記メモリ装置のオペレーションによって、前記リクエストにおける情報からオペレーションのターゲット領域を決定するステップと、
各領域に対して個別のキー値を有しているアクセスストアを提供するステップと、
いくつかのアクセス許可から、前記ターゲット領域に対する前記キー値に基づいて前記ターゲット領域へのアクセスを調整するステップと、
を含んでおり、
領域に対する前記キー値は、不揮発性キーストア内に格納される、
方法。
【請求項10】
前記ターゲット領域へのアクセスを調整するステップは、前記ターゲット領域に対する前記キー値を含んでいる認証プロセスを用いて、前記受け取ったリクエストを認証するステップを含んでいる、
請求項9記載の方法。
【請求項11】
前記方法は、不揮発性モノトニックカウント値を生成するステップをさらに含んでおり、
前記認証プロセスは、前記キー値と前記モノトニックカウント値とを含んでいる、
請求項10記載の方法。
【請求項12】
前記ターゲット領域へのアクセスを調整するステップは、前記ターゲット領域に対する前記キー値を含んでいる解読プロセスを用いて、前記リクエストを解読するステップを含んでいる、
請求項9記載の方法。
【請求項13】
各領域に対する前記アクセス許可は
制限なく、読み出しおよび書き込みが許可されることと、
前記ターゲット領域に対する排他的なキーによる認証を要求する読み出しオペレーションと、
前記ターゲット領域に対する排他的なキーによる認証を要求するプログラミングオペレーションおよび消去オペレーションと、
前記ターゲット領域に対する排他的なキーによる暗号化を要求する読み出しオペレーションと、
前記ターゲット領域に対して排他的なキーによる解読を要求するプログラミングオペレーションおよび消去オペレーションと、
を含んでいる、
請求項9記載の方法。
【請求項14】
前記メモリ装置は、各領域に対して排他的な複数の不揮発性キー値記憶ロケーションを含んでおり、
前記ターゲット領域に対する前記キー値を選択することは、前記ターゲット領域に対して排他的な前記複数の不揮発性キー値記憶ロケーションから前記キー値を選択することをさらに含んでいる、
請求項9記載の方法。
【請求項15】
前記メモリ装置は、各領域に対して排他的な複数の不揮発性インデックス値を含んでおり、各インデックス値は、不揮発性キー記憶ロケーションを指し示し、
前記ターゲット領域のための前記キー値を選択することは、選択された前記インデックス値によって指し示された前記キー値にアクセスするために、前記ターゲット領域のためのインデックス値を選択することを含んでおり、
前記インデックス値は、同じ前記インデックス値が複数回使用されることを阻止する不揮発性のデプリケーティング値でアクセスされる、
請求項14記載の方法。
【請求項16】
少なくとも1つのホスト装置およびメモリ装置を含むシステムであって、
前記ホスト装置は、前記メモリ装置内の複数の領域のうちの1つを識別するアクセスリクエストを伝送するように構成されている、
前記メモリ装置は、通信バスによって前記ホスト装置に結合されており、前記メモリ装置は、
各領域が不揮発性メモリセルを含んでいる少なくとも2つの領域と、
各領域に対して排他的な複数のキー値を格納するように構成されている不揮発性キーストアと、
前記領域のためのキーに基づいて、前記ホスト装置による各領域へのアクセスを選択的に可能にするように構成されているアクセスコントロール回路と、
を含んでいる、
システム。
【請求項17】
前記アクセスコントロール回路は、前記リクエストによって識別された前記領域のためのキー値に基づいて、リクエストを認証するように構成されている認証回路を含んでいる、
請求項16記載のシステム。
【請求項18】
前記アクセスコントロール回路は、暗号化回路を含んでおり、
前記暗号化回路は、
前記リクエストによって識別された前記領域に対するキー値に基づいてリクエストにおいて受け取ったデータを解読し、
前記領域に対するキー値に基づいて前記リクエストによって識別された領域からのデータを暗号化する、
ように構成されている、
請求項16記載のシステム。
【請求項19】
相互認証オペレーションにおいて、
前記ホスト装置は、
リクエストメッセージ認証コード(MAC)を用いてチャレンジ値を前記メモリ装置に送り、
前記メモリ装置からの応答MACの受け取りに応答して、前記メモリ装置をマスタキーで認証し、
シークレットブート値を有する、前記メモリ装置から受け取った、暗号化されたチャレンジ値の解読に応答して、前記メモリ装置上のファームウェアを認証する、
ように構成されており、
前記メモリ装置は、
前記ホスト装置からの前記リクエストMACの受け取りに応答して、マスタキーで前記ホスト装置を認証し、
前記チャレンジ値を前記シークレットブート値で暗号化し、
暗号化された前記チャレンジ値を前記応答MACと共に前記ホスト装置に送る、
ように構成されている、
請求項16記載のシステム。
【請求項20】
前記システムは、少なくとも1つの領域に、前記領域に対するキーでアクセスするように構成されている少なくとも1つの第2の装置をさらに含んでおり、前記キーは、前記第1の装置によって格納されていない、
請求項16記載のシステム。
【請求項21】
前記システムは、前記ホスト装置は複数の処理要素を含んでおり、第1の処理要素は、第1の領域のためのキーにアクセスすることができ、第2の処理要素は、第2の領域のためのキーにアクセスすることができ、前記第1の領域にアクセスすることができない、
請求項16記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、2019年7月25日に出願された米国仮特許出願第62/878,404号の、米国特許法第119条(e)の定めによる優先権および利益を主張する、2020年3月23日に出願された米国非仮出願第16/827,478号の国際出願であり、その内容は参照により本明細書に組み込まれている。
【0002】
技術分野
本開示は、概して、不揮発性メモリ装置、特に、それぞれが独自のユーザ設定されたセキュリティ属性を有することができる複数の領域を有する不揮発性メモリ装置に関する。
【背景技術】
【0003】
フラッシュメモリ装置は、関連するプロセッサによる実行のためのファームウェアおよび/またはシステムのためのコンフィギュレーションデータのような、重要なデータを不揮発に格納するために、電子システムにおいて広く使用されている。したがって、不揮発性メモリにとって重要な特徴は、このような値を安全に格納できることである。一部のNANDフラッシュ装置は、再生保護メモリブロック(RPMB)を含むことができる。このような特徴は、メモリ装置内にセキュアセクションを提供することができるが、これは、制限されたサイズの領域に限られる。したがって、セキュアアクセスは1つの領域に制限され得る。
【0004】
NANDフラッシュ装置とは異なり、NORフラッシュ装置は、より高速なアクセスと並んで、細分性が高いアクセス(すなわちバイト単位のアクセス)を提供することができる。さらに、多くのNORフラッシュ装置は、インプレース実行(XIP)機能を有しており、これは、システムRAMにロードする必要なく、コードがメモリ装置から直接実行されることを可能にする。これらの理由から、NOR装置は、多くのシステムのファームウェア用の不揮発性のストレージソリューションとして好ましい場合がある。しかし、従来のNORフラッシュ装置は、セキュリティオプションをほとんど提供しない、または制限されてしか提供しない。
【図面の簡単な説明】
【0005】
図1】一実施形態による、個別にプログラミング可能なセキュリティ特徴を有する領域を備えたメモリ装置を有するシステムのブロック図である。
図2】一実施形態による、複数のプログラミング可能な不揮発性モノトニックカウンタを備えたNOR型不揮発性メモリ装置を有するシステムのブロック図である。
図3】一実施形態による、デプリケータを備えたメモリ装置のための領域キーのアクセスを示す図である。
図4】一実施形態による、不揮発性インデックスを有する領域キーのアクセスを示す図である。
図5A】実施形態による、メモリ装置の領域への製造業者アクセスをイネーブル化またはディスエーブル化するための方法を示す図である。
図5B】実施形態によるメモリ装置の領域への製造業者アクセスをイネーブル化またはディスエーブル化するための方法を示す図である。
図5C】実施形態によるメモリ装置の領域への製造業者アクセスをイネーブル化またはディスエーブル化するための方法を示す図である。
図6】一実施形態による、無効なアクセス試行に応答してメモリ装置の領域におけるデータを消去する方法のフローチャートである。
図7】別の実施形態による、個別にプログラミング可能なセキュリティ特徴を備えた領域を有するメモリ装置のブロック図である。
図8A】実施形態による、メモリ装置の異なる領域に対する異なるセキュリティアクセスタイプを可能にする装置および方法を示す図である。
図8B】実施形態による、メモリ装置の異なる領域に対する異なるセキュリティアクセスタイプを可能にする装置および方法を示す図である。
図8C】実施形態による、メモリ装置の異なる領域に対する異なるセキュリティアクセスタイプを可能にする装置および方法を示す図である。
図9A】実施形態に含まれ得る通信方法を示す図である。
図9B】実施形態に含まれ得る通信方法を示す図である。
図10】一実施形態による、パケットおよび対応するメッセージ認証コード(MAC)の生成を示す図である。
図11】一実施形態による、パケットの暗号化を示す図である。
図12A】実施形態による、メモリ装置に対する認証されたリクエストパケットを示す図である。
図12B】実施形態による、メモリ装置に対する認証された応答を示す図である。
図13】一実施形態による、メモリ装置のための不揮発性キー索引付けおよびストレージ構造の図である。
図14A】実施形態による、メモリ装置およびホスト装置とのセキュア通信のためのセッションキーの確立を示す図である。
図14B】実施形態による、メモリ装置およびホスト装置とのセキュア通信のためのセッションキーの確立を示す図である。
図15A】一実施形態による、メモリ装置の領域へのセキュアアクセスの方法のフローチャートである。
図15B】一実施形態による、メモリ装置の領域へのセキュアアクセスの方法のフローチャートである。
図16】一実施形態による、メモリ装置およびホスト装置とのセキュア通信のためのセッションキーを生成する方法のフローチャートである。
図17A】一実施形態による、ホスト装置とファームウェアを有するメモリ装置との間の相互認証方法を示す図である。
図17B】一実施形態による、ホスト装置とファームウェアを有するメモリ装置との間の相互認証方法を示す図である。
図18】一実施形態による、異なる装置および/またはコンピューティング要素によって安全にアクセスされ得る領域を有するメモリ装置を備えたシステムの図である。
図19】実施形態に含まれ得るメモリアレイの図である。
図20】一実施形態によるメモリ装置の図である。
図21】一実施形態による自動車関連システムの図である。
【発明を実施するための形態】
【0006】
実施形態によれば、不揮発性メモリ装置は、複数の異なる領域を含むことができ、各領域は、異なるセキュリティ特徴を用いて個別に設定可能である。セキュリティ特徴には、領域への特定のタイプのアクセス(例えば読み出し、プログラミングまたは消去)のディスエーブル化、またはこのようなアクセスの一部またはすべてがセキュリティオペレーションの対象になることの要求が含まれ得るが、これらに限定されない。セキュリティオペレーションは、認証および暗号化を含み得るが、これらに限定されない。
【0007】
いくつかの実施形態では、不揮発性メモリ装置の領域は、NORコンフィギュレーションを有していてよい。
【0008】
いくつかの実施形態では、不揮発性メモリ装置は、セキュリティオペレーションのためにワンタイムカウント値を生成するようにユーザによって設定可能な1つまたは複数の不揮発性モノトニックカウンタを含んでいてよい。
【0009】
いくつかの実施形態では、キーのプールからのキーが再使用されるのを阻止するデプリケータを用いて短命なキーを生成することができる。
【0010】
いくつかの実施形態では、このようなキーのプールからセキュアキーにアクセスするために、各領域に対する不揮発性インデックスが使用されてよい。
【0011】
いくつかの実施形態では、不揮発性メモリ装置は、ホスト装置を認証することができる。
【0012】
以降の種々の実施形態において、同様の部材は同じ参照符号によって参照されるが、先頭の桁は図番号に対応している。
【0013】
図1は、一実施形態によるシステム100のブロック図である。システム100は、通信経路106を介してホスト装置104と通信するメモリ装置102を含んでいてよい。メモリ装置102は、インタフェース(I/F)108、コマンドデコーダ110、アクセスコントロール回路112、不揮発性メモリセクション114、領域コンフィギュレーションストア116およびキーストア118を含んでいてよい。インタフェース108は、通信経路106を介したホスト装置104との通信を可能にすることができる。I/F108は、任意の適切なI/Fであってよく、これはパラレルI/F、シリアルI/FまたはワイヤレスI/Fを含んでいるが、これらに限定されない。通信経路106は、I/F108に適した形態を取ることができる。いくつかの実施形態では、I/F108は、パケット形式で通信を処理することができる。
【0014】
コマンドデコーダ110は、ホスト104から受け取ったコマンドを復号することができる。いくつかの実施形態では、コマンドデコーダ110は、読み出しコマンド、プログラミングコマンドおよび消去コマンドを区別することができる。さらに、これらのコマンドは、領域識別値を含んでいても、または領域識別値を伴っていてもよい。領域識別値は、不揮発性メモリセクション114内に位置する、コマンドによるオペレーションのターゲットとなる特定の領域(以降でより詳細に記述する)を識別することができる。
【0015】
アクセスコントロール回路112は、不揮発性メモリセクション114の異なる領域へのアクセスを、このような領域のセキュリティ特徴に従ってコントロールすることができる。アクセスコントロール回路112は、1つまたは複数の認証方法および/または暗号化方法を含んでいる任意の適切なセキュリティアルゴリズムを実行することができる。
【0016】
不揮発性メモリセクション114は、複数の領域120-0~120-nに編成された不揮発性メモリセルの1つまたは複数のアレイを含んでいてよい。領域(120-0~120-n)は、所定の制限を有していても、またはユーザによって設定可能であってもよい。いくつかの実施形態では、領域(120-0~120-n)を、NORコンフィギュレーションのフラッシュメモリセルで構成することができる。メモリセルは、バイト、ワードまたはダブルワードのような比較的小さいサイズでアドレス指定可能であってよい。
【0017】
領域コンフィギュレーションストア116はコンフィギュレーション値を格納することができ、コンフィギュレーション値は、不揮発性メモリセクション114内の領域(120-0~120-n)へのアクセスをコントロールすることができ、いくつかの実施形態では、不揮発性メモリセクション114内の領域(120-0~120-n)の範囲を規定することができる。領域コンフィギュレーションストア116は、不揮発性メモリセクション114の一部であっても、一部でなくてもよい不揮発性記憶回路を含んでいてよい。領域コンフィギュレーションストア116内に格納されている値は、安全に格納されていてよく、認証または解読を含んでいる所定の手順によってのみアクセス可能であってよい。図示の実施形態では、領域コンフィギュレーションストア116へのアクセスが、アクセスコントロール回路112によってコントロールされてよい。さらに、アクセスコントロール回路112は、領域(120-0~120-n)に対する任意のアクセス制限に基づいて、この領域に対するアクセスが可能であるか否かを判定するために、領域コンフィギュレーションストア116から値を読み出すことができる。
【0018】
領域コンフィギュレーションストア116は、領域のセキュリティ特徴を確立するために適切な値を格納することができるが、図示の実施形態では、領域コンフィギュレーションストア116は、各領域(0~n)に対するアクセス制限値を格納することができる。図示されているように、アクセス制限値は、特定の認証方法または暗号化方法を規定することができる。しかし、このような値は、オペレーションのタイプ(例えば読み出し、プログラミング、消去)に従ってアクセスを制限することもできる。したがって、アクセス制限値は、領域(120-0~120-n)が読み出し可能であるか否か、プログラミング可能であるか否か、消去可能であるか否か、認証が必要であるか否か、暗号化/解読が必要であるか否か、またはこれらの任意の組み合わせを示すことができる。上述したように、領域(120-0~120-n)がユーザによって規定されていてもよい。図示の実施形態では、領域(120-0~120-n)は、各領域(120-0~120-n)に対する物理アドレスに対応し得る範囲値(範囲0~範囲n)によって規定されていてよい。物理アドレスは、任意の適切な方法に従ってホスト装置104によって理解される論理アドレスにマッピングされていてよい。
【0019】
キーストア118は、領域(120-0~120-n)へのアクセスをコントロールするために使用可能なキー値を格納することができる。キーストア118は、不揮発性メモリセクション114の一部であっても、一部でなくてもよい不揮発性記憶回路を含んでいてよい。領域コンフィギュレーションストア116の場合のように、キーストア118は、キー値を安全に格納することができ、所定の手順によってのみアクセス可能であってよく、図示の実施形態では、アクセスコントロール回路112によってアクセス可能である。アクセスコントロール回路112は、領域(120-0~120-n)がアクセス可能であるか否かを判定する際に、キー値をキーストア118から読み出すことができる。キーストア118は、各領域(120-0~120-n)に対して複数のキー値を格納することができる。いくつかの実施形態では、このようなキーは、ホスト装置104とメモリ装置102との間のトランザクションのための短命なセッションキーの生成を可能にする、ワンタイムキーまたは制限された回数使用されるキーであってよい。
【0020】
図2は、別の実施形態によるシステム200のブロック図である。システム200は、図1に示されているように、メモリ装置202、ホスト装置204、通信経路206を含んでいてよい。図2は、ホスト装置204が、カウント値を使用し得る機能222を有することができ、メモリ装置202が、不揮発性モノトニックカウンタ(NMC)セクション226を有することができるという点で、図1と異なる。NMCセクション226は、1つまたは複数のNMC(228-0~228-i)を含んでいてよい。各NMC(228-0~228-i)は、不揮発性の、繰り返されないカウント値または実質的に繰り返されないカウント値を生成することができる。実質的に繰り返されないカウント値とは、その折り返し(最小値にリセットされる最大値を超えること)の後にのみ繰り返されるカウント値であってよい。NMC(228-0~228-i)は、アクティブ化されるごとに異なるカウント値を生成してよい。NMC(228-0~228-i)は、NMCコンフィギュレーション値230に従って個別に設定可能であってよい。このようなコンフィギュレーション値は、NMCの任意の適切な特徴を変更することができる。このような特徴は、カウント方向(例えばインクリメント/ディクリメント)、カウントスパン(例えば各カウント間の差)、カウント値サイズ、カウント値フォーマット、開始カウント値、およびどのオペレーションが新たなカウント値(例えば新たな通信セッション)のアクティブ化をトリガするかを含んでいてよいが、これらに限定されない。NMCコンフィギュレーション値230は、不揮発性メモリセクション114の一部であっても、一部でなくてもよい不揮発性記憶回路を含んでいてよい。
【0021】
NMC(228-0~228-i)によって生成されたカウント値は、メモリ装置202内部の機能およびメモリ装置202外部の機能を含んでいる任意の適切な機能のために使用されてよい。カウント値に対する、考えられる多数の機能のうちの2つが図2に示されている。第1の例として、NMC(228-0~228-i)からのカウント値が、ホスト装置204からのリプレイアタック、またはホスト装置204からであるように見えるリプレイアタックを阻止するために、認証機能によって使用されてよい。このような機能に対するカウント値の転送は232-0として示されている。次いで、カウント値が安全にホスト装置204(または他の装置)に伝送され、メッセージ認証コード(MAC)などを生成するために使用され得る。第2の例として、NMC(228-0~228-i)からの1つまたは複数のカウント値が、機能222(すなわち、ホストからのリプレイアタックの阻止以外の機能)による使用のために、ホスト装置204へ伝送されてよい。このような機能に対するカウント値の転送は232-1として示されている。このような転送232-1は、パケット化および/または暗号化されているカウント値を含んでいてよい。機能222は任意の適切な機能であってよく、一例にすぎないが、別の装置(図示されていない)との通信のためにホスト装置204に対して使用されてよい。
【0022】
図3は、一実施形態による、領域キーアクセスオペレーションを示すブロック図である。図3には、デプリケータ334、キーストア318および不揮発性メモリセクション314を含んでいるメモリ装置300の一部が示されている。不揮発性メモリセクション314は、本明細書に記載のいずれかの、またはそれと同等の任意の形態を取ることができる複数の領域320-0~320-nを含んでいてよい。
【0023】
キーストア318は、各領域に対応する複数のキー(m+1個のキー)を格納することができる。したがって、キー「region_0_key0」~「region_0_keym」が領域0 320-0に対応していることが理解される。図示の実施形態では、キーは、デプリケータ334を介してアクセスされる。デプリケータ334は、ある領域に対するキー値が繰り返されるのを阻止することができる。したがって、キーアクセスオペレーション336のたびに、デプリケータ334はそのキーへのアクセスをディスエーブル化するだろう。例えば、図示の実施形態では、領域0 320-0へのアクセスの場合、値region_0_key0は使用されてしまっており、領域0 320-0へのアクセスオペレーションのためにはもはや利用可能ではない。さらに、値region_n_key0およびregion_n_key1が使用されてしまっているため、領域320-nへのアクセスオペレーションのためにはもはや利用可能ではない。
【0024】
図3に示されているような能力によって、極めて高度なセキュリティのために、1つの通信セッションで使用され、その後、廃棄される短命なキーの生成が可能になる。
【0025】
図4は、別の実施形態による、領域キーアクセスオペレーションを示すブロック図である。図4は、インデックスストア438、キーストア418および不揮発性メモリセクション414を含んでいるメモリ装置400の一部を示している。不揮発性メモリセクション414は、本明細書に記載の、またはそれと同等の複数の領域420-0~420-nを含んでいてよい。
【0026】
キーストア418は、複数のキー「region_key0」~「region_keyk」を格納することができ、そのうちの任意のキーが、任意の領域(420-0~420-n)に割り当て可能である。図示の実施形態では、キーは、インデックスストア438を介してアクセスされる。インデックスストア438は、各領域(420-0~420-n)(このケースではm+1)に対応する複数のインデックス値を格納することができる。したがって、「index_region_0_key0」~「index_region_0_keym」が、領域0 420-0に対応していることが理解される。インデックスストア438は、不揮発性記憶回路を含んでいてよく、この不揮発性記憶回路は、キーストア418の一部であっても、一部でなくてもよく、インデックス値を安全に格納することができる。
【0027】
図4に示されているような能力によって、領域(420-0~420-n)へのキーの割り当てにおける高い柔軟性が得られ、この柔軟性は、ある領域に、別の領域よりも多くのキーが割り当てられること、ならびに一部の領域にはキーが割り当てられないことを含んでいる。
【0028】
いくつかの実施形態は、キー値を不揮発性メモリ装置の特定の領域に割り当てるための種々の方法および回路を含み得るが、いくつかの実施形態は、製造業者によって知られているキー(すなわちRMAキー)をイネーブル化またはディスエーブル化することによって、製造業者による領域へのアクセスを選択的にイネーブル化またはディスエーブル化することも含み得る。
【0029】
メモリ装置の製造業者にとって、顧客または他の者が返却した装置の保護領域へアクセスすることは価値を有し得る。このようなアクセスは、装置の修復、顧客のためのデータの検索ならびに故障分析を可能にするのに役立ち得る。同時に、顧客は、装置内に格納されている特定のデータを、高い価値を有するものとみなすことがあり、したがって、メモリ装置内にプログラミングされた後、このようなデータが安全なままであることを望んでいる。
【0030】
図5A図5Cは、製造業者による不揮発性メモリ装置の領域へのアクセスが、どのようにイネーブル化またはディスエーブル化され得るのかを示す図である。図5Aは、一実施形態による方法540のフローチャートである。方法540は、製造業者によるアクセスが不可能であるとする、1つまたは複数の領域の顧客による指定を含んでいてよい540-0。これらの領域は、本明細書において実施形態について記載された、またはそれと同等の不揮発性メモリ装置の領域であってよい。このようなアクションは、メモリ装置が製造業者に返却される場合、または返却される際に、機密情報にアクセスされないことを保証するために使用され得る。そのように指定された領域に対して、製造業者によって知られているキー(例えばRMAキー)が顧客によってディスエーブル化されてよい540-1。このようなアクションには、指定された領域に対する、製造業者によって知られているキーの顧客による消去、上書きまたは他の方法でのディスエーブル化が含まれていてよい。キーは、本明細書において示された、またはそれと同等の任意の実施形態に従って、このような変更のためにアクセスされ得る。
【0031】
図5Bは、別の実施形態による方法542のフローチャートである。方法542は、メモリ装置の領域に対する、顧客による製造業者コードの作成を含んでいてよい542-0。次いで、製造業者によってアクセス可能であるだろうそれらの領域が、生成されたコードによってプログラミングされてよい542-1。次いで、顧客によって生成された製造業者コードが製造業者に送られてよい542-2。このようにして、製造業者によるアクセス領域が、顧客によって完全にコントロールされてよい。
【0032】
図5Cは、製造業者によるアクセスを制限するためのプログラミングオペレーションの前後のメモリセクションの図を示している。図5Cは、領域520-0~520-nを有する初期の不揮発性メモリセクション514を示している。不揮発性メモリセクション514は、本明細書において開示されている、またはそれと同等の任意の形態を取ることができる。キープログラミングオペレーションの前に、領域(520-0~520-n)は、製造業者によるアクセスに関して、規定されていないセキュリティ特徴を有し得る。次に、図5Cには、キープログラミングオペレーション後の不揮発性メモリセクション514’が示されている。図示のように、領域0 520-0に対するアクセスキーには、いかなる製造業者キーも含まれていない(すなわちRMAキーはない)。したがって、製造業者に返却される対応するメモリ装置またはシステムにおいて、この領域に格納されているデータは、製造業者によってアクセス不可能である。
【0033】
いくつかの実施形態は、(例えば、不良なキーまたは資格情報によって)領域への無効なアクセスが試みられた場合に、データを消去するまたはその他の方法で読み出し不可能にすることができるセキュリティ特徴を備えたメモリ装置も含んでいてよい。図6は、一実施形態によるこのような方法646のフローチャートである。方法646は、不良なキーまたは資格情報によって領域へのアクセスが試みられたか否かを判定することを含んでいてよい646-0。このようなアクションは、メモリ装置の複数の領域のうちの1つの領域へのアクセス試行を含んでいてよい。不良なキーまたは資格情報は、(例えば廃止に起因する)期限切れのキーを含んでいる、この領域に対する有効なキーと一致しないキー、使用可能な最終的なキーを生成しない中間キー、有効な結果に復号されない認証コードのうちの任意のものを含み得るが、これらに限定されない。任意選択的に、方法646は、試行されたアクセスに応答して警告を返すことができる646-1。無効なアクセス試行(または任意選択的に無効な試行の継続)に応答して、方法646は、領域内のデータを消去すること、上書きすることまたはその他の方法で領域内のデータがアクセスされることを阻止することができる646-2。他の実施形態では、これは、アクセス回路などを介した(例えば読み出し不可能、プログラミング不可能または消去不可能な領域を指定して)、この領域へのアクセスのロックを含んでいてよい。
【0034】
択一的な実施形態では、方法は、製造業者アクセスコード(すなわちRMAコード)の製造業者による使用に応答して、646-2に示されているようなアクションを実行してよい。
【0035】
図7を参照すると、別の実施形態によるメモリ装置702がブロック図で示されている。いくつかの実施形態では、メモリ装置702は、図1図4に示された任意のメモリ装置のより詳細なバージョンであり得る。メモリ装置702は、NORフラッシュアレイ714、メモリインターコネクト(I/C)748、診断回路750、セーフブート回路752、I/FおよびデータCRC回路708、リセット回路754、ECC回路756、アレイコンフィギュレーション回路716、認証/暗号化(auth/crypt)回路724、カウンタ回路726、セキュアブート回路758、キーストア718、パケットバッファ760、プロセッサセクション762およびシリアル通信コントローラ764を含んでいてよい。NORフラッシュアレイ714は、セキュア領域714-0、714-1および汎用領域714-2を含んでいてよい。セキュア領域714-0/1は、本明細書に記載の、およびそれと同等の異なるアクセス/セキュリティ特徴を用いてプログラミングされ得る領域を含んでいてよい。このようなセキュリティ特徴は、認証および/または暗号化を要求することを含んでいてよい。セキュア領域714-0/1は、アクセスタイプ(読み出し、プログラミング、消去が許可されているまたは許可されていない)に対してプログラミングされていてもよい。汎用領域714-2は、セキュリティ特徴を含んでいない領域であってよい。いくつかの実施形態では、種々の領域714-0/1/2のサイズ/範囲が、プログラミング可能であってよい。さらに、領域タイプ714-0/1/2は、デフォルト設定を有していてよく、領域アクセス値をプログラミングすることによって変更されてよい(すなわち、任意の汎用領域714-2またはすべての汎用領域714-2が、セキュア領域になるようにプログラミング可能である)。
【0036】
メモリI/C748は、メモリ装置702の種々の部分を相互接続することができ、任意の適切なバスを含んでいてよい。診断回路750は、メモリ装置702の機能性を決定するための回路を含んでいてよく、いくつかの実施形態では、1つまたは複数のシリアルテストアクセスポート(例えばJTAG規格)を含んでいてよい。セーフブート回路752は、限られた能力を有している状態への、メモリ装置702のパワーアップを可能にすることができる。I/FおよびデータCRC回路708は、メモリ装置のためのインタフェースを提供することができ、これは、本明細書に記載された任意のものを含んでいる。いくつかの実施形態では、このインタフェースは、パケット処理インタフェースであってよい。I/FおよびデータCRC回路708は、データが破損したか否かを判定するために、受け取ったデータに対してCRCオペレーションを実行することもできる。リセット回路754は、メモリ装置702に対するリセットオペレーションをイネーブル化することができ、これは、コマンド、パワーオンまたは他の所定の状態に応答するものを含んでいる。ECC回路756は、インタフェース(例えば708)を介して受け取ったデータ値に対して、受け取ったデータに含まれているECC符号によって、エラー検出およびエラー訂正を実行することができる。
【0037】
アレイコンフィギュレーション回路716は、セキュア領域714-0/1を含んでいる、NORフラッシュアレイ714の領域のためのコンフィギュレーションデータを格納することができる。このようなコンフィギュレーションデータは、本明細書に記載の、およびそれと同等の任意のコンフィギュレーションデータを含んでいてよく、これは領域の範囲を規定するための物理アドレスデータ、アクセスタイプ許可、キーまたはキーへのインデックスを含んでいる。アレイコンフィギュレーション回路716は、このような値を格納するための不揮発性記憶回路を含んでいてよい。
【0038】
auth/crypt回路724は、メモリ装置702に対するトランザクションへの認証オペレーションおよび/または暗号化オペレーションを実行するための回路を含んでいてよい。いくつかの実施形態では、このようなオペレーションは、領域識別(すなわち、NORフラッシュアレイ714の特定の領域を識別する値)に基づいてキー値を取得するために、キーストア718にアクセスすることができる。auth/crypt回路724は、このようなオペレーションのためのカウント値を読み出すために、カウンタ回路726にアクセスすることもできる。カウンタ回路726は、本明細書において記載されたように、またはそれと同等に設定可能な1つまたは複数のNMCを含んでいてよい。
【0039】
セキュアブート回路758は、あらかじめ確立されている共有シークレット値に基づいて、メモリ装置702が要求側装置を認証することを可能にすることができる。さらに、セキュアブート回路738は、メモリ装置702に固有の、ならびにメモリ装置上に格納されているファームウェアに固有のコード値を生成することができる。
【0040】
キーストア718は、セキュリティ関連のオペレーションに関するキー値を安全に格納することができ、本明細書において開示されている、またはそれと同等の任意の形態を取ることができる。パケットバッファ760は、メモリ装置702による処理のために、I/F708を介して受け取ったパケットをバッファすることができる。
【0041】
プロセッサセクション762は、セキュリティ関連のオペレーションを含んでいる、メモリ装置702の種々のオペレーションを実行するための1つまたは複数のプロセッサを含んでいてよい。いくつかの実施形態では、プロセッサセクションは、低減された命令セットを有するプロセッサのような、より消費電力の低いプロセッサを含んでいてよい。シリアル通信コントローラ764は、任意の適切なプロトコルまたは規格に従って、メモリ装置702とのシリアル通信をコントロールすることができ、任意の適切なプロトコルまたは規格は、SPI、シリアルSPI、クワッドSPIまたはHyperBus(登録商標)を含んでいるが、これらに限定されない。
【0042】
図8Aは、一実施形態による、不揮発性アレイのユーザによって規定された区分化を示す図である。図8Aは、本明細書において開示されている、およびそれと同等のものを含んでいる、メモリ装置の不揮発性メモリアレイセクションの一部であり得るユーザアレイ部分866を示している。いくつかの実施形態では、ユーザアレイ部分866は、NORフラッシュ型アレイを含んでいてよい。ユーザアレイ部分866は、複数の異なる領域820-0~820-nに編成可能である。本明細書における他の実施形態のケースのように、領域は、あらかじめ設定されたサイズを有していてよい、またはユーザによって設定されたサイズを有していてよい。
【0043】
各領域(820-0~820-n)へのアクセスは、ユーザによって設定されてよい。各領域(820-0~820-n)に対して値が割り当てられていてよい。この値に基づいて、領域は、従来の様式でアクセスされてよい、またはセキュアアクセスを要求してよい。図示の実施形態では、「key_type」値が「0」である場合、領域は従来のアクセス用に設定され得る。「key_type」値が「1」である場合、領域はセキュアアクセス用に設定され得る。したがって、領域0、1および2(820-0,820-1,820-2)はセキュアアクセス領域814-0であり得るのに対し、領域3、4および5(820-3,820-4,820-5)は従来のアクセス領域814-2であり得る。
【0044】
図8Bは、一実施形態による、領域アクセスタイプを確立するために使用され得る領域タイプ値を示す表である。図8Bの構成は例示的なものであると理解されるべきであり、限定するものと解釈されるべきではない。図8Bの表において、列REGION_KEY_TYPEは、値によって規定される領域のタイプの一般的な記述を提供する。列キータイプ#は、アクセスタイプに割り当てられたキー番号を示しており、図8Aに示されている値に対応することができる。キータイプ#=0を有する領域については、この領域にアクセスするためにキーは必要ない。さらに、この領域は、ユーザアレイの一部とはみなされない(例えば、セキュアであるようにプログラミングされた領域を規定するユーザアレイアドレス空間に論理的にマッピングされていない)。対照的に、キータイプ#=1を有する領域については、アクセスは、メモリ装置と別の装置(例えばホスト装置)との間で共有される、格納されているキーの知識を必要とし得る。さらに、セッションキーが、暗号化オペレーションおよび/または認証オペレーションのためのメッセージ認証コード(MAC)の生成に使用され得る。
【0045】
残りの列は、「通常モード」と「暗号モード」との2つの部分に分けられる。通常モードは、読み出しオペレーション、プログラミングオペレーションおよび消去オペレーションを含んでいるセキュリティ特徴を有していないアクセスに対応する。暗号モードは、領域の3つの異なるセキュリティ特徴を記述し、これは、「認証されたロック/ロック解除」、「認証された読み出し/プログラミング/消去」および「暗号化された読み出し/プログラミング/消去」を含んでいる。「認証されたロック/ロック解除」は、領域が、この領域へのアクセスをロックおよびロック解除するための認証されたリクエストを要求していることを示す。このような認証されたリクエストは、この領域のための有効なキーの知識を有する別の装置(例えばホスト装置)によって生成されてよく、いくつかの実施形態では、有効なカウント値も生成されてよい(例えば、メモリ装置上のNMCによって生成されたカウント)。「認証された読み出し/プログラミング/消去」は、領域が、この領域に対して読み出しオペレーション、プログラミングオペレーションまたは消去オペレーションを実行するための認証されたリクエストを要求していることを示す。「暗号化された読み出し/プログラミング/消去」は、領域が、この領域へのアクセスオペレーションにおいて、暗号化および解読を要求していることを示す。このような暗号化および解読は、この領域のための有効なキーと、いくつかの実施形態では、有効なカウント値とを利用し得る。
【0046】
図8Cは、セキュア領域が、領域に対して許可されるアクセスタイプを規定する付加的な値をどのようにして有することができるかを示す表である。図8Cの表では、列「許可タイプ」が制限のタイプを記述している。列「アクセス♯」は、アクセス制限のタイプに数値を割り当てる。図8Bのケースのように、残りの列は、「通常モード」と「暗号モード」との2つの部分に分けられる。許可タイプが「制限されていない」の場合、通常モードでは、標準的な読み出しオペレーション、プログラミングオペレーションおよび消去オペレーションが許可されている。暗号モードでは、認証された読み出しオペレーション、プログラミングオペレーションおよび消去オペレーションは許可されているが、暗号化されたオペレーションは許可されていない。許可タイプが「READ_ONLY」の場合、通常モードでは、標準的な読み出しオペレーションは許可されているが、プログラミングオペレーションおよび消去オペレーションは許可されていない。暗号モードでは、認証された読み出しオペレーション、プログラミングオペレーションおよび消去オペレーションは許可されているが、暗号化されたオペレーションは許可されていない。許可タイプが「WRITE_PROTECTED」の場合、通常モードでは、標準的な読み出しオペレーションは許可されているが、プログラミングオペレーションおよび消去オペレーションは、はじめにこの領域がロック解除されていることを要求する。暗号モードでは、認証された読み出しオペレーション、プログラミングオペレーションおよび消去オペレーションは許可されているが、暗号化されたオペレーションは許可されていない。許可タイプが「READ_WRITE_PROTECTED」の場合、通常モードでは、読み出しオペレーション、プログラミングオペレーションおよび消去オペレーションは、はじめにこの領域がロック解除されていることを要求する。暗号モードでは、認証された読み出しオペレーション、プログラミングオペレーションおよび消去オペレーションは許可されているが、暗号化されたオペレーションは許可されていない。許可タイプが「ENCRYPTED_ONLY」の場合、通常モードでは、読み出しオペレーション、プログラミングオペレーションおよび消去オペレーション(すなわち、暗号化されていないオペレーション)は許可されていない。暗号モードでは、認証された読み出しオペレーション、プログラミングオペレーションおよび消去オペレーションは許可されていないが、暗号化された読み出しオペレーション、プログラミングオペレーションおよび消去オペレーションは許可されている。
【0047】
当然、図8A図8Cの例は、例示的なものであると理解される。択一的な実施形態によれば、許可の細分化の程度をより大きくまたはより小さくすることができる。例えば、暗号化された読み出しオペレーションまたはプログラミングオペレーションおよび認証された消去オペレーションを要求するアクセスタイプがあってよい。
【0048】
いくつかの実施形態は、任意の適切な形態のリクエストを受け取り、処理するメモリ装置を含んでいてよいが、いくつかの実施形態では、メモリ装置(およびその対応するシステム)は、パケット形態でリクエストを受け取り、処理することができる。図9Aおよび図9Bは、実施形態によるパケットフォーマットを示す図である。図9Aは、一実施形態による書き込み(すなわちプログラミング)パケット968の図である。書き込みパケット968は、コマンドフィールド968-0、ターゲットアドレスフィールド968-1および書き込みデータフィールド968-2を含んでいてよい。コマンドフィールド968-0は、メモリ装置内のコマンドデコーダによる処理のためのコマンドを規定するビット値を含んでいてよい。図示の実施形態では、コマンドは十六進法の値F2hを有しているが、このような値は限定と解釈されるべきではない。さらに、パケット968をSPIインタフェース上で受け取ることができるが、これも限定と解釈されるべきではない。パケット968を、任意の適切なインタフェース上で受け取ることができる。ターゲットアドレスフィールド968-1は、データが書き込まれる(例えばプログラミングされる)ロケーションを示すことができる。いくつかの実施形態では、ターゲットアドレスフィールド968-1によって、書き込みオペレーションが行われる領域の直接的または間接的な識別も可能である。直接的なケースでは、ターゲットアドレスフィールド968-1は、領域を識別するサブフィールド(すなわち領域番号)を含んでいてよい。メモリ装置は、この領域番号から、セキュリティ制限が存在する場合には、どのセキュリティ制限がこの領域にあるかを判定することができ、書き込みリクエストがこのような制限を満たすことを保証することができる。間接的なケースでは、メモリ装置は、ターゲット領域を決定するために、ターゲットアドレスを復号することができる。書き込みデータフィールド968-8は、メモリ装置に書き込まれる書き込みデータを含んでいてよい。本明細書における他の実施形態で示されるように、領域セキュリティ値によって要求される場合には、書き込みデータが暗号化されてよい。さらに、パケット968は、認証を要求するターゲット領域へのアクセスの場合にはMACを含んでいてもよい。
【0049】
図9Bは、一実施形態による読み出しパケット970の図である。読み出しパケット970は、コマンドフィールド970-0およびターゲットアドレスフィールド970-1を含んでいてよい。コマンドフィールド970-0は、コマンドを規定するビット値を含んでいてよく、図示の実施形態では、十六進法の値F1hを有している。パケット970をSPIインタフェース上で受け取ることができるが、インタフェースおよび特定のビット値が制限として解釈されるべきではない。ターゲットアドレスフィールド970-1は、データが読み出されるロケーションを示すことができるが、読み出しオペレーションが行われる領域の直接的または間接的な識別も可能にする。
【0050】
読み出しパケット970が有効である場合、レイテンシ期間972の後、メモリ装置は、ターゲットアドレスロケーションから読み出しデータ974を出力する(または取得のために利用できるようにする)ことができる。
【0051】
図10は、一実施形態による、認証されたパケット1076を示している。認証されたパケット1076は、複数のフィールドを含んでいてよい。コマンドコード応答フィールド1076-0は、応答タイプを示すことができ、図示の実施形態では、これは2バイトの値であってよい。結果フィールド1076-1は、受け取ったリクエストからの結果を示すことができ、図示の実施形態では、これは2バイトの値であってよい。サイズフィールド1076-3は、パケットのサイズ(例えば、ペイロードのサイズ)を示すことができ、図示の実施形態では、これは2バイトの値であってよい。カウンタフィールド1076-4は、NMCによって生成されるようなカウント値を提供することができ、図示の実施形態では、これは8バイトのフィールドであってよい。ノンスフィールド1076-5は、暗号ノンス値を提供することができ、図示の実施形態では、これは16バイトの値であってよい。データフィールド1076-6(応答タイプに応じて任意選択的であってよい)は、応答に関連するデータ(例えば読み出しデータ)を提供することができ、図示の実施形態では、これは最大で512バイトであってよい。MACフィールド1076-7は、図示の実施形態では64バイトの値であり得る、応答のためのMACを提供することができる。MACは、任意の適切な認証ルーチンを用いて生成されてよく、領域キー値(例えば、オペレーションに対応する領域に割り当てられたシークレットキーまたは他のセキュリティキー)を使用することができる。図10では、MACは、考えられる多数の例のうちの2つにすぎないHMAC-SHA2またはHMAC-SHA3のような、ハッシュベース認証コード(HMAC)アルゴリズム1080を用いて生成されてよい。HMACアルゴリズム1080は、フィールド1076-7のためのMACを生成するために、フィールド1076-0~1076-6およびセッションキー1078を利用することができる。セッションキー1078は、領域固有のキーを使用して生成されてよい。これによって、アクセスされる領域に固有のキーに基づいて、認証を行うことができる。
【0052】
図11は、一実施形態によるパケット暗号化オペレーションを示している。オペレーションは、暗号化されていないパケット1182を取得し、暗号化されたパケット1182Eを生成することができる。暗号化されていないパケット1182は、図10に示したようなフィールドを含んでいてよく、これは、コマンドコード応答フィールド1182-0、結果フィールド1182-1、サイズフィールド1182-3、カウンタフィールド1182-4、ノンスフィールド1182-5、データフィールド1182-6およびMACフィールド1182-7を含んでいる。図示の実施形態では、このようなフィールドは、図10のバイトサイズと同じバイトサイズを有し得る。
【0053】
暗号化されたパケット1182Eを生成するために、パケットのためのデータが暗号化され、次いで、暗号化されたペイロードとして伝送されてよい。図示の例では、暗号化アルゴリズム1188が、フィールド1182-0~1182-6を、セッションキー1178、初期値1184およびカウンタ値1186を使用して暗号化することができる。暗号化アルゴリズム1188は、考えられる多数の例のうちの2つにすぎないAES-GCMまたはAES-CBCのような任意の適切なアルゴリズムであってよい。暗号化オペレーションは、暗号化されたデータフィールド1182-6Eのために、暗号化されたデータを生成することができ、同様に、タグフィールド1182-7Eのために、結果として生じたタグビットを生成することができる。図10のケースのように、領域固有のキーを用いてセッションキー1178が生成されてよい。したがって、アクセスされる領域固有のキーに基づいて、暗号化認証を行うことができる。
【0054】
図12Aおよび図12Bは、一実施形態による、リクエストパケットおよび対応する応答を示している。特に、図12Aおよび図12Bは、プログラムリクエストおよび応答を示している。しかし、これらのパケットの記述から、当業者は、他の機能、例えば読み出しオペレーションまたは消去オペレーションに対するリクエストパケットおよび応答パケットを理解するであろう。
【0055】
図12Aは、以降のフィールドを含んでいる、認証されたリクエストパケット1284を示している。コマンドコードフィールド1284-0は、オペレーション(このケースではプログラミングオペレーション)を示すことができる。図示の実施形態では、このフィールドは、十六進法の値0004hを有する2バイトのフィールドであってよく、バイトロケーション[1:0]を占有し得る。アドレスフィールド1284-1は、このコマンドに対するターゲットアドレスを示すことができる。図示の実施形態では、このフィールドは、4バイトのフィールドであってよく、バイトロケーション[5:2]を占有し得る。サイズフィールド1284-2は、(バイト単位で)パケットデータのサイズを示すことができ、図示の実施形態では、これは、バイトロケーション[7:6]を占有している2バイトのフィールドであってよい。データフィールド1284-3は、関連するオペレーションに対するデータ(このケースでは、領域にプログラミングされるべきデータ)を含んでいてよい。図示の実施形態では、このフィールドは、最大で512バイトであってよく、バイトロケーション[size+7:8]を占有し得る。ここでsizeはサイズ値である。MACフィールド1284-4は、認証オペレーションのためのMACを格納することができる。MACは、要求側装置(例えばホスト装置)によって生成される。図示の実施形態では、これは64バイトのフィールドであってよく、バイトロケーション[size+71:size+8]を占有し得る。
【0056】
引き続き図12Aを参照する。この図は、MACを生成するために使用される値を示している。図示のように、認証アルゴリズム、このケースではHMACアルゴリズムは、region_session_key、コマンドコード(フィールド1284-0)、アドレス(フィールド1284-1)、データ(フィールド1284-3)およびCOUNTER値を使用することができる。region_session_keyは、アクセスされる領域(このケースでは、データがプログラミングされている領域)に特有の値であってよい。COUNTER値は、NMCによって生成されるような、ワンタイムカウント値であってよい。したがって、COUNTER値はMACに含まれているが、パケットにおいて伝送されない。このようにして、認証を、領域依存にすることができる。
【0057】
図12Bは、以降のフィールドを含んでいる認証された応答1286を示している。応答フィールド1286-0は、要求されたオペレーションに対する応答(このケースでは、表示は、プログラムリクエストに対する応答である)を示すことができる。結果フィールド1286-1は、リクエストの結果(例えば、プログラミングの成功、プログラミングの失敗、不成功の認証など)を示すことができる。MACフィールド1286-2は、メモリ装置によって生成されたMACを格納することができる。認証アルゴリズム、このケースでは、要求側装置のHMACアルゴリズムに対応するHMACアルゴリズムは、region_session_key、応答値(フィールド1286-0)、結果値(フィールド1286-1)およびCOUNTER値を利用することができる。COUNTER値は、NMCによって生成されるような、ワンタイムカウント値であってよい。
【0058】
図13は、一実施形態による、メモリ装置1302のためのキーストレージおよびアクセスアーキテクチャの図である。メモリ装置1302は、本明細書において開示されている、またはそれと同等の任意の形態を取ることができる。開示されているアーキテクチャは、図3および/または図4に示されているアーキテクチャの1つの特定の具現化形態であってよい。
【0059】
メモリ装置1302は、領域キーコンフィギュレーションセクション1392およびキーストレージセクション1388を含んでいてよい。メモリ装置は、シークレットキーを使用することによって、(例えば認証または暗号化を使用して)セキュアアクセスを行うように設定可能な8個の不揮発性記憶領域も含んでいると仮定される。両方のセクション1392および1388が、値を格納し、状態(例えばデプリケータの状態)を維持するために、不揮発性回路を含んでいてよい。
【0060】
領域キーコンフィギュレーションセクション1392は、領域キーインデックス1338および控えキー1394-0~1394-7を含んでいてよい。領域キーインデックス1338は、各領域に対するインデックス値のセットを含んでいる。図示のラベリングの手法では、領域キーインデックス「region_key 0.0 index」~「region_key 0.7 index」は、領域0に対する8個のインデックスであり、領域キーインデックス「region_key 1.0 index」~「region_key 1.7 index」は、領域1に対する8個のインデックス等々である。各領域キーインデックスは、キーストレージセクション1388内のシークレットキーを指し示すようにプログラミングされていてよい。インデックスの各グループへのアクセスは、対応する控えキー(1394-0~1394-7)に従ってコントロールされ得る。ある領域に対してシークレットキーがアクセスされた場合には、対応する控えキー(1394-0~1394-7)が変更されてよく、これによって、このグループからの次のインデックスが使用されている現下のインデックスとは違ったものになることが保証される(したがって次のキーも、違ったものになる)。図示の実施形態では、各控えキー(1394-0~1394-7)は、自身の対応する領域の各領域インデックスに対応する8個の値を有することができるが、これは、限定として解釈されるべきではない。
【0061】
キーストレージセクション1388は、シークレットキーストレージ1318および装置キーストレージ1390を含んでいてよい。シークレットキーストレージ1318は、領域キーインデックス1338をプログラミングすることによって、任意の、ユーザによって規定されたセキュア領域に割り当て可能な複数のシークレットキーを含んでいてよい。図13は、領域ごとに8個のキーを許可することができる64個のシークレットキー(「secret_key 0」~「secret_key 63」)を示しているが、これは、限定として解釈されるべきではない。メモリ装置は、64個より多いまたはより少ないキーを含んでいてよい。さらに、各領域に、異なる数のシークレットキーを割り当てることができる。各領域インデックス(「region_key 0.0 index」~「region_key 7.7 index」)は、任意のシークレットキー(「secret_key 0」~「secret_key 63」)を指し示すように設定されていてよい。このような指し示しの構成は、任意の適切な形態を取ることができ、これはシークレットキーを格納しているレジスタロケーションおよび/またはアドレスロケーションに対する指し示しを含んでいるが、これらに限定されない。
【0062】
記憶領域への、ユーザによって規定されたセキュアアクセスのためのシークレットキーの格納に加えて、キーストレージセクション1388は、装置キーストレージ1390における他の機能のためのシークレットキーを安全にすることもできる。図示の実施形態では、装置キーストレージ1390は、master_key、SB_secret keyおよびrma_keyを格納することができる。master_keyは、メモリ装置に対する一意のキーであってよく、認証オペレーションを可能にするホスト装置に既知であってよい。rma_keyは、製造業者が装置にアクセスすることを可能にすることができる。いくつかの実施形態では、rma_keyは、装置へのグローバルアクセスを可能にすることができる。しかし、本明細書において述べたように、rma_キーは領域別ベースで割り当てられていてよい。SB_secretは、メモリ装置1302ならびにメモリ装置1302によって格納されているファームウェアを認証することができるブートオペレーションを可能にするためのセキュアブートシークレットキーであってよい。
【0063】
いくつかの実施形態は、メモリ装置の個々の領域へのアクセスをコントロールするために、任意の適切なセキュリティプロセスを使用することができるが、ここでは、特定の実施形態について説明する。図14Aおよび図14Bは、一実施形態による、セッションキーを生成するためのリクエストパケットおよび応答パケットを示す図である。セッションキーは、認証プロセスのためのMACを生成するために、かつ/または暗号化プロセスにおいてデータを暗号化するために使用されてよい。セッションキーは、領域キーと共に生成されてよい。したがって、セッションキーは、アクセスされる領域に対して一意であってよい。このようにして、ホスト装置との通信を、メモリ装置の特定の1つの領域(または複数の領域)に制限することができる。
【0064】
図14Aを参照する。セッションキーを作成するためのリクエストパケットは、6個のフィールドを含んでいてよい。コマンドコードフィールドは、オペレーション(このケースでは、セッションキーを作成するためのリクエスト)を示すことができる。図示の実施形態では、このフィールドは、十六進法の値000Ahを有する2バイトのフィールドであってよく、バイトロケーション[1:0]を占有し得る。アルゴリズムフィールドは、使用されるアルゴリズムのタイプを示すことができる。図示の実施形態では、このフィールドは、2バイトのフィールドであってよく、バイトロケーション[3:2]を占有し得る。さらに、0000hの値は、MAC値を生成するためのHMAC認証アルゴリズムを示すことができる。0001hの値は、EDCH P-256タイプの暗号化を示すことができ、0002hの値は、EDCH 25519タイプの暗号化を示すことができる。アドレスフィールドは、セッションのターゲット領域を示すことができる。図示の実施形態では、このフィールドは2バイトのフィールドであってよく、バイトロケーション[5:4]を占有し得る。ノンスフィールドは、セッションに対して生成されたノンス値を格納することができる。図示の実施形態では、このフィールドは、16バイトのフィールドであってよく、バイトロケーション[21:6]を占有し得る。データフィールドは、(初期リクエストの場合)空であってよく、またはメモリ装置に伝送するためのホスト中間キーを含んでいてよい。後者のケースでは、データフィールドは、バイトロケーション[53:22]を占有する32バイトのフィールドであってよい。MACフィールドは、リクエストのためのMACを格納することができる。図示の実施形態では、これは64バイトのフィールドであってよく、ホスト中間キーが含まれているか否かに応じて、バイトロケーション[85:22]または[117:54]を占有し得る。
【0065】
引き続き図14Aを参照する。ここで、セッションキーの作成における特定の値の生成について記述する。図14Aの5番目の行に示されているように、HMACアルゴリズムのケースでは、MACはホスト装置によって生成されてよく、これは、region_key(アドレスフィールドに示された領域のためのシークレットキー)、コマンドコード、アルゴリズムコード、領域番号、ノンス値およびコマンドカウンタ値を使用するHMACアルゴリズムを備える。コマンドカウンタ値は、アクセスされるメモリ装置内のNMCによって提供されるカウント値であってよい。さらに、region_key、コマンドコード、領域番号、ノンス値およびコマンドカウンタ値を使用するHMACアルゴリズムでregion_session_keyが生成されてよい。
【0066】
図14Aの最後の行に示されているように、楕円曲線ディフィー・ヘルマン(ECDH)タイプのアルゴリズムのケースでは、MACはホスト装置によって生成されてよく、これは、region_key、コマンドコード、アルゴリズムコード、領域番号、ノンス値およびホスト中間値を使用するHMACアルゴリズムを備える。アクセスされるメモリ装置から受け取ったホスト中間値と装置初期値(device_dh_initial)とを使用するECDHアルゴリズムでregion_session_keyが生成されてよい。
【0067】
図14Bを参照する。セッションキーを作成するための応答パケットは、4個のフィールドを含んでいてよい。応答フィールドは、応答タイプ(このケースでは、セッションキーを作成するためのリクエストに対する応答)を示すことができる。図示の実施形態では、このフィールドは、十六進法の値0A00hを有する2バイトのフィールドであってよく、バイトロケーション[1:0]を占有し得る。結果フィールドは、このリクエストの結果(例えば成功した、失敗した)を示すことができる。図示の実施形態では、このフィールドは2バイトのフィールドであってよく、バイトロケーション[3:2]を占有し得る。データフィールドは空であってよく、またはホスト装置への伝送のための装置中間キーを含んでいてよい。後者のケースでは、データフィールドは、32バイトのフィールドであってよく、バイトロケーション[35:4]を占有し得る。MACフィールドは、応答のためのMACを格納することができる。図示の実施形態では、これは64バイトのフィールドであってよく、装置中間キーが含まれているか否かに応じて、バイトロケーション[67:4]または[99:36]を占有し得る。
【0068】
引き続き図14Bを参照する。ここで、セッションキーを作成するための応答に対する特定の値の生成について記述する。図14Bの5番目の行に示されているように、HMACアルゴリズムのケースでは、MACはメモリ装置によって生成されてよく、これは、region_key、応答コード、結果値およびコマンドカウンタ値を使用するHMACアルゴリズムを備える。ECDHアルゴリズムのケースでは、region_key、応答コード、結果値、装置中間値およびコマンドカウント値を使用するHMACアルゴリズムでMACが生成されてよい。
【0069】
上述の実施形態は、装置およびシステムに関連して種々の方法を記述してきたが、ここで、特定の方法を、フローチャートに関連して記述する。図15Aおよび図15Bは、メモリ装置の不揮発性記憶領域にアクセスする方法1596を示すフローチャートであり、各領域は、異なるセキュリティ特徴を用いてプログラミングされてよい。方法1596は、メモリ装置においてパケットを受け取ることを含んでいてよい1596-0。このようなアクションは、任意の適切なインタフェースを介してパケットを受け取ることを含んでいてよく、いくつかの実施形態では、シリアルインタフェースを介してパケットを受け取ることを含んでいてよい。パケットのコマンドコードフィールドは、メモリ装置によって復号されてよい1596-1。このようなアクションは、任意の適切なコマンド復号オペレーションを含んでいてよく、いくつかの実施形態では、パケットを含んでいるバッファの所定のロケーションを読み出すことを含んでいてよい。方法1596は、不揮発性領域が示されているか否かを判定し得る1596-2。このようなアクションは、多数の例のうちの2つにすぎない、アドレス値の復号またはパケット内の領域番号フィールドの検出を含んでいてよい。領域番号が示されていない場合(1596-2からの「いいえ」)、方法1596は、コマンドを実行することができ、必要であれば、応答を生成し、伝送する(または読み出しのために格納する)ことができる1596-4。
【0070】
領域番号が示されている場合(1596-2からの「はい」)、方法1596は、この領域がアクセス制限を有しているか否かを判定し得る1596-3。このようなアクションは、コンフィギュレーション値に対する任意の適切な参照を含んでいてよく、いくつかの実施形態では、識別された領域に対するセキュリティコンフィギュレーションを識別するビット値を含んでいるセキュア不揮発性記憶ロケーションにアクセスすることを含んでいてよい。不揮発領域が制限されていない場合(1596-3からの「いいえ」)、方法1596は、コマンドを実行して、応答を生成することができる1596-4(例えば、領域に対する従来の読み出しオペレーション、プログラミングオペレーションまたは消去オペレーションを実行する)。
【0071】
不揮発領域がアクセス制限の対象である場合(1596-3からの「はい」)、方法1596は、領域キーおよびモノトニックカウント値を有するセッションキーを生成することができる1596-5。方法1596は、領域が暗号化を要求しているか否かも判定し得る1596-6。領域が暗号化を要求している場合(1596-6からの「はい」)、方法1596は、セッションキーでパケットデータを解読することができる1596-7。
【0072】
方法1596は、受け取ったパケットのMACが有効か否かを判定し得る1596-8。MACが無効であると判定されない場合(例えば、復号された値が一致しない場合)、方法1596は、次に、あらかじめ定められた不良な認証応答を行うことができる1596-9。不良な認証応答は、全く応答がないことを含め、任意の適切な応答を含むことができる。MACが有効であると判定された場合(1596-8からの「はい」)、方法1596は、アクセスタイプに応じて種々のオペレーションを実行することができる1596-10。図示の実施形態では、アクセスタイプは、読み出し、プログラミングおよび消去を含んでいてよい。
【0073】
図15Aでは、丸で囲まれた文字A、B、CおよびDが、図15Bにおける対応する接続を示している。
【0074】
ここで図15Bを参照する。読み出しオペレーションにおいて、方法1596は、ターゲット領域からデータを読み出すことを含んでいてよい1596-11。
【0075】
プログラミングオペレーションにおいて、方法1596は、暗号化が要求されているか否かを判定し得る1596-15。暗号化が要求されている場合(1596-15からの「はい」)、セッションキーを用いてパケットデータを解読することができる1596-16。次いで、プログラムデータを、パケットによって示されたアドレスで、ターゲット不揮発性領域にプログラミングすることができる1596-17。このようなアクションは、任意の適切な様式に従ったプログラミングを含んでいてよく、いくつかの実施形態では、領域の一部を消去し、次いで、プログラムデータに従って、消去された部分のビットを選択的にプログラミングすることを含んでいてよい。
【0076】
消去オペレーションにおいて、方法1596は、パケットによって示された領域を消去し得る1596-19。
【0077】
示された読み出しオペレーション、プログラミングオペレーションまたは消去オペレーションが完了した後(または完了できない場合)、対応するMACで応答を生成することができる1596-18。応答は、示されたオペレーションの結果を示すことができる。読み出しオペレーションのケースでは、応答パケットは読み出しデータを含んでいてよい。方法1596は、アクセスされた不揮発性領域が暗号化を要求しているか否かを判定し得る1596-20。暗号化が要求されている場合(1596-20からの「はい」)、応答データを暗号化することができる1596-21。応答は、要求装置(例えばホスト)に伝送されても、または要求側装置によるその後の取得のために格納されてもよい1596-22。いくつかの実施形態では、応答は、パケットの形態を取ることができる。
【0078】
図16は、一実施形態による、セッションキーを生成する方法1698の図である。方法1698は、ホスト1604によって実行可能なアクションと、メモリ装置1602によって実行可能なアクションとを示している。
【0079】
方法1698は、ホスト1604がプライベートキーを生成することを含んでいてよい1698-0。ホストは、プライベートキーを用いてホスト中間キーを計算することができる1698-1。いくつかの実施形態では、ホスト中間キーは、ホスト1604とメモリ装置1602との両方に既知のホストプライベートキーおよびパラメータを使用するEDCHアルゴリズムによって生成されたキーであってよい。次いで、ホスト1604は、リクエストを生成することができる1698-2。このようなリクエストは、領域番号と、ホスト中間キーと、ターゲット領域に対する領域キーならびにカウント値で生成されたMACとを含んでいてよい。いくつかの実施形態では、リクエスト内のデータが暗号化されてもよい。セッションリクエストが、メモリ装置に送られてよい1698-3。このようなアクションは、任意の適切な方法を含んでいてよく、これは有線搬送および無線搬送の両方を含んでいる。いくつかの実施形態では、このリクエストは、パケット形式の有線シリアル接続を介して伝送可能である。
【0080】
メモリ装置1602は、リクエストにおいて受け取った領域キー値が、この領域に対する、格納されているシークレットキーと一致するか否かを判定し得る1698-4。このようなアクションは、領域キーを導出するためのリクエストにおけるMACの復号を含んでいてよい。受け取った領域キーが、格納されている領域キーと一致しない場合(1698-4からの「いいえ」)、方法1698は、エラー応答を生成してよい、または応答を生成しなくてよい1698-5。
【0081】
受け取った領域キーが、この領域に対する、格納されているキーと一致する場合(1698-4からの「はい」)、メモリ装置は、装置プライベートキーを生成してよい1698-6。いくつかの実施形態では、このようなアクションは、実質的に繰り返されない様式で(例えばデプリケータを用いて)、ターゲット領域のためのキーセットにアクセスすることを含んでいてよい。これには、本明細書に記載の、およびそれと同等のインデックス値を介した間接的なアクセスを含んでいても、含んでいなくてもよい。次いで、メモリ装置1602は、自身のプライベートキーを使用して、装置中間キーを計算することができる1698-7。ホスト装置のケースのように、いくつかの実施形態では、装置中間キーは、ホスト1604およびメモリ装置1602の両方に既知の装置プライベートキーおよびパラメータを使用するEDCHアルゴリズムによって生成されてよい。
【0082】
次いで、装置は、応答を生成することができる1698-8。このような応答は、装置中間キーと、領域キーおよびカウント値で生成されたMACとを含んでいてよい。カウント値は、メモリ装置1602のNMCを用いて生成されてよい。次いで、セッション応答がホスト装置に送られてよい1698-9。このようなアクションは、任意の適切な方法を含んでいてよく、これは、リクエスト後に応答を所定の遅延で送ること、またはホスト1604による別のリクエストに応答して応答を送ることを含んでいる。
【0083】
ホスト装置1604とメモリ装置1602との両方が他の装置の中間キーを有すると、装置1604および1602はセッションキーを生成することができる。このようなセッションキーは、メモリ装置内の示された領域に向けられた、ホスト装置とメモリ装置との間の通信を認証および/または暗号化するために使用されてよい。すなわち、セッションキーは領域キーから導出されるので、セッションはメモリ装置の特定の領域に制限され得る。
【0084】
いくつかの実施形態は、記憶装置の複数の領域へのセキュアアクセスを提供することができるが、いくつかの実施形態は、メモリ装置の付加的な特徴を認証するためのシステムおよび方法も含んでいてよい。
【0085】
図17Aおよび図17Bは、さらなる実施形態による認証オペレーションを示す図である。図17Aは、ホスト装置1704と、ホスト装置1704のためのファームウェア(FW)を格納するメモリ装置1702とを有するシステムのためのプロビジョニングオペレーション1799Pを示している。メモリ装置1702は、本明細書において開示されている、またはそれと同等の任意の形態を取ることができ、FWのための不揮発性記憶ロケーションを含んでいてよい。プロビジョニングオペレーション1799Pは、ホスト装置内にマスタキーを安全に格納すること1799-0およびメモリ装置内にマスタキーを安全に格納すること1799-1を含んでいてよい。このようなアクションは、ホスト装置1704がマスタキーをメモリ装置内にプログラミングすること、ホスト装置がマスタキーをメモリ装置から取得すること、またはマスタキーが各装置内に個別にプログラミングされることを含んでいてよい。マスタキーは、ホスト装置1704とメモリ装置1702との間で共有されるシークレットキーであってよい。
【0086】
次いで、ホスト装置1704は、ブートセットアップ値を選択し得る1799-2。ブートセットアップ値(CONST_P)は、メモリ装置に転送されてよい1799-3。いくつかの実施形態では、このようなアクションは、ホスト装置1704が所定のコマンド(例えばCreate_SB_Secret)を発出することを含んでいてよい。このようなコマンドは、コマンドを識別するコマンドフィールド(セキュアブート値を作成する)と、ブートセットアップ値を含んでいるデータフィールドとを備えたパケット形式であってよい。
【0087】
ブートセットアップ値を受け取ると、メモリ装置1702は、メモリ装置のハードウェア(HW)およびFWに対して一意の値を生成することができる1799-4。いくつかの実施形態では、これには、FW(FW_Code)を識別する第1の値と、メモリ装置(Dev_Code)(すなわちHW)を識別する第2の値とを用いて、値を生成することを含んでいてよい。図示の実施形態では、一意の値は、FW_CodeおよびDev_Codeで動作するハッシュ関数によって形成される「制約付きデータ項目(constrained data item)」(CDI)であってよい。
【0088】
一意のHW/FW値(例えばCDI)が生成されると、メモリ装置1702は、ホスト装置1704から受け取ったブートセットアップ値(例えばCONST_P)を使用して、セキュアブートコード(SB_Secret)を生成してよい。図示の実施形態では、このようなオペレーションは、一意のHW/FW値(SB_Secret=encrypt[CDI, CONST_P]での、ブートセットアップ値の暗号化を含んでいてよい。生成されたセキュアブートコードを、メモリ装置1702内に安全に格納することができる。
【0089】
このようにして、メモリ装置1702は、ホスト装置に既知のシークレット値を含んでいるセキュアブート値(CONST_P)を有することができ、これは、メモリ装置のHW/FWに一意の値(すなわちCDI)を用いてのみ解読可能である。
【0090】
図17Bは、図17Aに示されているようなシステムのためのセキュアブートオペレーション1799SBを示している。すなわち、図17Bは、図17Aに示されたプロビジョニングオペレーションの対象であったホスト装置1704およびメモリ装置1702を示している。セキュアブートオペレーション1799SBは、ホスト装置内の任意の適切な所定の条件に応答して発生し得る1799-7、またはメモリ装置内の任意の適切な所定の条件に応答して発生し得る1799-8。所定の条件は、多数の考えられる例のうち1つにすぎない、パワーオン条件またはリセット条件を含んでいる。
【0091】
セキュアブートオペレーション1799SBにおいて、ホスト装置は、チャレンジ値を生成することができる1799-9。チャレンジ値(R)は、任意の適切な値であってよく、いくつかの実施形態では、ホスト装置1704によって生成される乱数または擬似乱数であってよい。次いで、ホスト装置1704は、マスタキーおよびチャレンジ値を使用してMACを生成することができる。いくつかの実施形態では、MACは、メモリ装置1702によって生成される(および毎回更新される)NMC値であり得るカウント値も含んでいてよい。現下のカウント値は、メモリ装置1702との以前の通信によって確立されていても、または最初のカウント値であってもよい。次いで、ホスト装置は、対応するMACを伴うホストチャレンジをメモリ装置に伝送することができる1799-11。いくつかの実施形態ではこのようなアクションは、ホスト装置1704が所定のコマンド(例えばAuthenticate_SB)を発出することを含んでいてよい。このようなコマンドは、コマンドを識別するコマンドフィールドと、ホストチャレンジ値を含んでいるデータフィールドとを有するパケット形式であってよい。
【0092】
メモリ装置1702は、ホストチャレンジおよびMACを受け取り、MACが有効であるか否かを、自身の、安全に格納されているマスタキー(および使用される場合にはカウント値)を使用して判定することができる1799-12。MACが有効でない場合(1799-12からの「いいえ」)、メモリ装置1702は、ホスト装置1704自体が認証に失敗した(例えば有効なマスタキーを有していない)ので、この認証プロセスから退出してよい。MACが有効である場合(1799-12からの「はい」)、ホスト装置1704は、メモリ装置によって認証されたものとみなされてよい1799-13。これは、ホストのみが記憶装置のFWを認証するという従来のオペレーションとは対照的である。
【0093】
メモリ装置1702は、プロビジョニングオペレーション(例えば図17A)において確立されたブートセットアップ値を再生成することができる1799-14。いくつかの実施形態では、これは、メモリ装置のHW/FWに一意の値を有するブートセットアップ値を含んでいる暗号化された値を解読することを含んでいてよい。例えば、CDIは、FWおよびHWに一意の値で生成されてよい(例えば、CDI=hash[FW_Code][HW_Code])。CDI値は、SB_Secret値を解読して、ブートセットアップ値(CONST_P)に達するために使用されてよい。メモリ装置1702は、暗号化されたチャレンジ値(例えばR_encrypted=encrypt[CONST_P,R)を作成するために、再生成されたブートセットアップ値をチャレンジ値によって暗号化することができる1799-15。次いで、メモリ装置1702は、マスタキーと、暗号化されたチャレンジ値と、任意選択的にノンス値(例えば、MAC[Master_key,R_encrypted][Nonce])とを用いて、チャレンジ応答のためのMACを生成することができる1799-16。
【0094】
応答および対応するMACは、ホスト装置によって取得されてよい1799-17。このようなアクションは、任意の適切な応答オペレーションを含んでいてよい。これは、ホストからの認証リクエストを受け取った後、所定の時間で、またはホストからの別のコマンド/リクエスト(例えば、データの読み出しまたはコマンドの登録)に応答して、メモリ装置が応答を伝送することを含んでいるが、これに限定されない。
【0095】
ホスト装置1704は、応答および対応するMACをメモリ装置から受け取り、応答MACが有効か否かを判定することができる1799-18。いくつかの実施形態では、これは、ホスト装置1704が、安全に格納されている自身のマスタキーを使用することを含んでいてよい。MACが有効でない場合(1799-18からの「いいえ」)、ホスト装置1704は、メモリ装置1702が認証に失敗したと判定されるので、この認証プロセスから退出してよい。MACが有効である場合(1799-18からの「はい」)、メモリ装置1702は、認証されたものとみなされてよい1799-19。
【0096】
次いで、ホスト装置1704は、暗号化されたホストチャレンジを解読し得る1799-20。このようなアクションは、プロビジョニングオペレーションにおいて確立されたブートセットアップ値(例えばCONST_P)での解読を含んでいてよい。ホストチャレンジが無効である場合(1799-21からの「いいえ」)、FWが無効であると判定されるので、ホスト装置1704はこのオペレーションから退出してよい。ホストチャレンジが有効である場合(1799-21からの「はい」)、FWが認証されたと判定され得る1799-22。
【0097】
このようにして、メモリ装置1702は、相互認証(すなわち、ホストがメモリ装置を認証することができ、メモリ装置がホストを認証することができる)ならびにメモリ装置自体(すなわちHW)の認証およびメモリ装置によって格納されているファームウェアの認証を可能にすることができる。
【0098】
いくつかの実施形態は、ホスト装置が、キーに基づいてメモリ装置の種々の領域にアクセスするシステムおよび方法を開示しているが、他の実施形態では、種々のプロセスまたはホスト以外の装置によって領域がアクセスされてよい。図18は、一実施形態による、このようなシステムおよび方法の1つの例を示している。
【0099】
図18は、セキュアメモリ装置1802、ホスト装置1804、リモートアクセスシステム1895およびリモート装置1891を有しているシステム1800を示している。メモリ装置1802は、I/Fセクション1808と、アクセスコントロール回路1812と、不揮発性セクション1814とを含んでいてよい。I/Fセクション1808は、ホスト装置1804およびリモートアクセスシステム1895と通信するための1つまたは複数のインタフェースを含んでいてよい。不揮発性セクション1814は、複数の異なる領域1820-0~1820-nならびにセキュアキーストア1818を含んでいてよい。領域(1820-0~1820-n)は、本明細書に記載の、またはそれと同等の任意の形態を取ることができる。キーストア1818は、領域(1820-0~1820-n)のためのキーを不揮発性に格納することができ、本明細書に記載の、またはそれと同等の任意の形態を取ることができる。図18には3個のキー(Key_A、Key_B、Key_C)が示されているが、より多くのキーが存在していてもよく、さらにこのようなキーが(例えばデプリケータなどを用いて)時間の経過と共に変化してよいことが理解される。図示の実施形態では、領域0 1820-0へのアクセスはキーKey_Aを必要とし、領域1 1820-1へのアクセスはキーKey_Bを必要とし、領域2 1820-2へのアクセスはキーKey_Cを必要とする。
【0100】
アクセスコントロール回路1812は、領域(1820-0~1820-n)の各々へのアクセスを、この領域のセキュリティコントロールに基づいてコントロールすることができる。このようなコントロールは、本明細書に記載の、またはそれと同等の任意のコントロールを含んでいてよく、これは、この領域に割り当てられている1つまたは複数のキーを使用する認証オペレーションまたは暗号化/解読オペレーションを要求することを含んでいるが、これに限定されない。
【0101】
ホスト装置1804は、複数の処理要素1897-0~1897-3を含んでいてよく、各処理要素は、異なるアプリケーションまたは機能を実行することができる。処理要素(1897-0~1897-3)は、任意の適切な処理要素を含んでいてよく、これは処理コア、処理スレッド、またはプロセッサによって実行される異なるアプリケーションを含んでいるが、これに限定されない。図示の実施形態では、要素1897-2はKey_Bにアクセスすることができ、要素1897-3はKey_Cにアクセスすることができる。いくつかの実施形態では、要素(1897-0~1897-3)によるキーへのいくつかのアクセスまたはすべてのアクセスは排他的であり得る(例えば、要素1897-2は、Key_Bにアクセスすることができる唯一の要素である)。
【0102】
リモートアクセスシステム1895は、リモート装置(例えば1891)がメモリ装置1802にアクセスすることを可能にすることができる。いくつかの実施形態では、リモートアクセスシステム1895は、1つまたは複数の無線ワイドエリアネットワークプロトコルを介したアクセスを可能にすることができる。
【0103】
リモートアクセスシステム1895およびホスト装置1804は、1つまたは複数の通信リンク1806を介してメモリ装置1802にアクセスすることができる。通信リンク1806は、本明細書に記載の、およびそれと同等の任意の適切な通信リンクであってよく、これは有線リンクおよび無線リンクを含んでいる。1つの実施形態では、通信リンク1806は、1つまたは複数の高速シリアルデータバスを含んでいてよい。
【0104】
セキュアメモリ装置1802、ホスト装置1804、通信リンク1806およびリモートアクセスシステム1895はすべて、ローカルシステム1800Lの一部であってよい。ローカルシステム1800Lは、相互に近接した(例えば、同じ大型装置上にある)コンポーネントを有していてよい。
【0105】
ローカルシステム1800Lとは対照的に、リモート装置1891は、メモリ装置1802とは異なる物理的なロケーションに配置されていてよい。一例にすぎないが、リモート装置1891は、大規模のネットワーク1893を介してローカルシステム1800Lと通信するサーバを含んでいてよい。ネットワーク1893は、インターネットを含む、有線ネットワークまたは無線ネットワークであってよい。図示の実施形態では、リモート装置1891は、Key_Aにアクセスすることができる。いくつかの実施形態では、このようなアクセスは排他的であり得る(例えば、ホスト装置は、Key_Aを所持していない、あるいは他の方法でKey_Aにアクセスすることができない)。
【0106】
図示の実施形態では、別個のプロセスおよび装置は、メモリ装置1802の種々の領域にアクセスすることができる。キーアクセスが排他的であると仮定すると、要素1897-2がKey_Bを使用して領域1820-1にアクセスすることができるのに対し、他の装置および要素は領域1820-1にアクセスすることができない。同時に、同じ装置(ホスト装置1804)の要素1897-3はKey_Cを用いて領域2 1820-2にアクセスすることができるが、領域0 1820-0または領域1 1820-1にはアクセスすることができない。さらに、リモート装置1891は、Key_Aを使用して領域0 1820-0にアクセスすることができるが、ホスト装置1804内のいかなる要素も、この領域1820にアクセスすることができない。
【0107】
本明細書において開示されたメモリ装置は、任意の適切な不揮発性メモリセルタイプおよびアーキテクチャで形成された領域を含んでいてよい。しかし、いくつかの実施形態は、NOR型フラッシュアレイから形成されていてよく、このアレイは、高い細分化度合のアクセス、より高速なアクセス速度を提供することができ、装置に格納されているファームウェアからのシステムの起動を可能にする能力を有するように構成されていてよい。これはNANDアーキテクチャとは対照的である。
【0108】
図19は、実施形態に含まれ得るメモリ装置領域1920の一部の図である。領域1920は、同じワード線(1つが1983として示されている)に共通して接続されている複数の行および同じビット線(1つが1987として示されている)に共通して接続されている複数の列に配置されている複数のフラッシュメモリセル(1つが1985として示されている)を含んでいてよい。さらに、メモリセル1985のグループが同じソース線(1つが1987として示されている)に共通に接続されていてよく、これによって同じオペレーションにおいて複数のセルのフラッシュ消去を可能にすることができる。図19に示された領域は例として提供されており、限定するものとして解釈されるべきではないことが理解される。
【0109】
いくつかの実施形態は、1つの別の装置と協働して動作するメモリ装置を備えたシステムを含んでいてよいが、いくつかの実施形態は、各々が自身のセキュリティ特徴を有している複数の領域を提供することができるスタンドアローンメモリ装置を含んでいることもできる。このようなメモリ装置は、同じパッケージ内に形成されている複数の集積回路を含んでいてよいが、いくつかの実施形態では、メモリ装置は有利にはコンパクトな単一の集積回路(すなわちチップ)であってよい。図20は、パッケージ化された単一のチップメモリ装置2002を示している。メモリ装置2002は、複数のインタフェース接続を含んでいてよい(2つが2081として示されている)。インタフェース(例えば2081)は、1つまたは複数の通信経路(例えばシリアルバス)への接続を可能にすることができる。しかし、いくつかの実施形態によるメモリ装置が、回路基板表面上のメモリ装置チップのダイクレトボンディングを含む、任意の他の適切なパッケージングタイプを含んでいてよいことが理解される。
【0110】
いくつかの実施形態は、持ち運び可能な電子装置を含む、任意の適切なシステムを含んでいてよい。しかし、いくつかの実施形態は、より大きいシステムも含み得る。図21は、1つの実施形態によるシステム2100の図である。システム2100は、ローカルシステム2100Lを備えた自動車2179を含んでいてよい。ローカルシステム2100Lは、自動車コントロールシステムの全部または一部であってよく、本明細書に開示されている、またはそれと同等の実施形態によるセキュア不揮発性メモリ装置2102を含んでいてよい。ローカルシステム2100Lは、無線ネットワーク2193を介してサーバ2191と通信することができる。
【0111】
いくつかの実施形態では、サーバ2191は、メモリ装置2102の1つまたは複数の領域へのアクセスを可能にする1つまたは複数のキーを有することができる。サーバ2191は、本明細書の、またはそれと同等の実施形態によるメモリ装置2102のFW認証および/またはHW認証を実行することができる。さらに、メモリ装置2102自体は、サーバ2191からの通信を認証することができる。
【0112】
本明細書全体を通して「1つの実施形態」または「一実施形態」との言及は、この実施形態に関連して記載されている特定の特徴、構造または特性が本発明の少なくとも1つの実施形態に含まれていることを意味していることが理解されるべきである。したがって、本明細書のさまざまな部分での「一実施形態」または「1つの実施形態」または「択一的な実施形態」との2つ以上の言及は、必ずしもすべて、同じ実施形態を指しているわけではないことが強調され、理解されるべきである。さらに、特定の特徴、構造または特性は、本発明の1つまたは複数の実施形態において、適切であるように組み合わせられてよい。
【0113】
同様に、本発明の例示的な実施形態の上述の説明においては、さまざまな本発明の態様のうちの1つまたは複数の理解を助ける開示を簡素化する目的で、本発明のさまざまな特徴が、時に、単一の実施形態、図またはそれらの説明において一緒にグループ化されていることが理解されるべきである。しかし、特許請求の範囲が、各請求項において明示的に挙げられたものよりも多くの特徴を必要とするという意図を反映していると、この開示方法が解釈されるべきではない。むしろ、本発明の態様は、上述した単一の実施形態のすべての特徴よりも少ない特徴に係わっている。したがって、詳細な説明に続く特許請求の範囲は、これによって、各請求項が本発明の別個の実施形態として独立しながらも、この詳細な説明に明示的に組み込まれている。
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7
図8A
図8B
図8C
図9A
図9B
図10
図11
図12A
図12B
図13
図14A
図14B
図15A
図15B
図16
図17A
図17B
図18
図19
図20
図21
【国際調査報告】