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

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

▶ マイクロン テクノロジー, インク.の特許一覧

<>
  • 特表-メモリ内のデータアテステーション 図1
  • 特表-メモリ内のデータアテステーション 図2
  • 特表-メモリ内のデータアテステーション 図3
  • 特表-メモリ内のデータアテステーション 図4
  • 特表-メモリ内のデータアテステーション 図5
  • 特表-メモリ内のデータアテステーション 図6
  • 特表-メモリ内のデータアテステーション 図7
  • 特表-メモリ内のデータアテステーション 図8
  • 特表-メモリ内のデータアテステーション 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-25
(54)【発明の名称】メモリ内のデータアテステーション
(51)【国際特許分類】
   G06F 21/44 20130101AFI20220317BHJP
   G06F 21/12 20130101ALI20220317BHJP
   G06F 21/51 20130101ALI20220317BHJP
【FI】
G06F21/44
G06F21/12 310
G06F21/51
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021557310
(86)(22)【出願日】2020-03-16
(85)【翻訳文提出日】2021-11-22
(86)【国際出願番号】 US2020022943
(87)【国際公開番号】W WO2020197824
(87)【国際公開日】2020-10-01
(31)【優先権主張番号】16/362,916
(32)【優先日】2019-03-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー,インク.
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】トロイア アルベルト
(72)【発明者】
【氏名】モンデッロ アントニノ
(57)【要約】
本開示は、メモリ内のデータアテステーションのための装置、方法、及びシステムを含んでいる。一実施形態は、メモリと、装置の電源オフを検出することと、ランタイム暗号学的ハッシュを生成することと、電源オフの検出に応じてランタイム暗号学的ハッシュを暗号学的ハッシュと比較することであって、暗号学的ハッシュがメモリの一部に貯蔵されている、比較することと、を行うように構成された、回路構成と、を含んでいる。
【特許請求の範囲】
【請求項1】
装置であって、
メモリと、
回路構成であって、
前記装置の電源オフを検出することと、
ランタイム暗号学的ハッシュを生成することと、
前記電源オフの検出に応じて前記ランタイム暗号学的ハッシュを暗号学的ハッシュと比較することであって、前記暗号学的ハッシュが前記メモリの一部に貯蔵されている、前記比較することと、
を行うように構成された、前記回路構成と、を備えている、前記装置。
【請求項2】
前記回路構成が、前記メモリの前記一部に貯蔵されたデータを読み取ること、及び、前記データをハッシュ化するためにハッシュ関数を使用することにより、前記ランタイム暗号学的ハッシュを生成するように構成されている、請求項1に記載の装置。
【請求項3】
前記メモリの前記一部が、前記メモリの安全な部分である、請求項1に記載の装置。
【請求項4】
前記メモリの前記部分が、1つまたは複数のレジスタによって規定される、請求項1から請求項3のいずれか一項に記載の装置。
【請求項5】
第1のカウンタ及び第2のカウンタをさらに含む、請求項1に記載の装置。
【請求項6】
前記第1のカウンタが、前記装置の電源オンのたびにインクリメントされ、前記第2のカウンタが、前記装置の電源オフのたびにインクリメントされる、請求項5に記載の装置。
【請求項7】
前記第1のカウンタ及び前記第2のカウンタが単調カウンタである、請求項4から請求項6のいずれか一項に記載の装置。
【請求項8】
メモリ内のデータアテステーション方法であって、
前記メモリの電源オフを検出することと、
ランタイム暗号学的ハッシュを生成することと、
前記電源オフの検出に応じて、前記ランタイム暗号学的ハッシュが暗号学的ハッシュに等しいかを判定することであって、前記暗号学的ハッシュが前記メモリの一部に貯蔵されている、前記判定することと、
前記ランタイム暗号学的ハッシュと前記暗号学的ハッシュとが等しいことに応じて、電源オフカウンタをインクリメントすることと、を含む、前記方法。
【請求項9】
前記メモリの前記一部を、前記電源オフカウンタのインクリメントに応じて、前記装置の電源オフの前に、リードオンリーモードに設定することをさらに含む、請求項8に記載の方法。
【請求項10】
前記装置の電源オンに応じて電源オンカウンタをインクリメントすることをさらに含む、請求項8または請求項9に記載の方法。
【請求項11】
前記電源オンカウンタのインクリメントに応じて、前記電源オンカウンタが前記電源オフカウンタに等しいかを判定することをさらに含む、請求項10に記載の方法。
【請求項12】
前記電源オンカウンタと前記電源オフカウンタとが等しいことに応じて、前記メモリの前記一部を読取り及び書込みモードに設定することをさらに含む、請求項11に記載の方法。
【請求項13】
前記電源オンカウンタと前記電源オフカウンタとが異なっていることに応じて、エラーフラグを提供することをさらに含む、請求項11または請求項12に記載の方法。
【請求項14】
メモリ内のデータアテステーション方法であって、
ホストがアイドリング状態であることを検出することと、
前記ホストに結合されたメモリの一部に貯蔵されたデータからランタイム暗号学的ハッシュを生成することと、
前記ホストがアイドリング状態であることの検出に応じて前記ランタイム暗号学的ハッシュを暗号学的ハッシュと比較することであって、前記暗号学的ハッシュが前記メモリの前記一部に貯蔵されている、前記比較することと、を含む、前記方法。
【請求項15】
前記メモリの前記一部に貯蔵された前記データの前記暗号学的ハッシュが、SHA-256の暗号学的ハッシュを含む、請求項14に記載の方法。
【請求項16】
前記ランタイム暗号学的ハッシュと前記暗号学的ハッシュとが等しいことに応じて、認証フラグを引き起こすことをさらに含む、請求項14に記載の方法。
【請求項17】
前記メモリの電源をオンにすることをさらに含む、請求項14に記載の方法。
【請求項18】
前記メモリの電源をオンにすることに応じて、前記認証フラグを消去することをさらに含む、請求項17に記載の方法。
【請求項19】
ホストと、
メモリと、
回路構成であって、
前記ホストがアイドリング状態であることを検出することと、
前記ホストがアイドリング状態であることの検出に応じて、前記メモリの一部に貯蔵されたデータを読み取ること、及び、前記データをハッシュ化するためにハッシュ関数を使用することにより、ランタイム暗号学的ハッシュを生成することと、
前記ランタイム暗号学的ハッシュの生成に応じて前記ランタイム暗号学的ハッシュを暗号学的ハッシュと比較することであって、前記暗号学的ハッシュが前記メモリの前記一部に貯蔵されている、前記比較することと、
をするように構成された前記回路構成と、を備えたシステム。
【請求項20】
前記システムの電源をオフにする前に、前記メモリの前記一部への書込操作に応じて、認証フラグが除去される、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、半導体メモリ及び方法に関し、より詳細には、メモリ内のデータアテステーションに関する。
【背景技術】
【0002】
メモリデバイスは、通常、コンピュータまたは他の電子デバイスの、内部の、半導体の、集積回路、及び/または外部のリムーバブルデバイスとして提供される。揮発性メモリ及び不揮発性メモリを含む、多くの様々なタイプのメモリが存在する。揮発性メモリには、そのデータを維持するために電力が必要とされ得、いくつかあるものの中で、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、及び、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)を含むことができる。不揮発性メモリは、電力が与えられていない場合に貯蔵されたデータを保持することによって永続データを提供することができ、いくつかあるものの中で、NANDフラッシュメモリ、NORフラッシュメモリ、リードオンリメモリ(ROM)、ならびに、相変化ランダムアクセスメモリ(PCRAM)、抵抗変化型ランダムアクセスメモリ(RRAM)、及び磁気ランダムアクセスメモリ(MRAM)などの抵抗変化型メモリを含むことができる。
【0003】
メモリデバイスは、ソリッドステートドライブ(SSD)、埋込み型マルチメディアカード(e.MMC)、及び/またはユニバーサルフラッシュストレージ(UFS)デバイスを形成するように、ともに合わせることができる。SSD、e.MMC、及び/またはUFSデバイスは、いくつかのタイプがある不揮発性メモリ及び揮発性メモリの中で、不揮発性メモリ(たとえば、NANDフラッシュメモリ及び/またはNORフラッシュメモリ)を含むことができ、及び/または、揮発性メモリ(たとえば、DRAM及び/またはSDRAM)を含むことができる。不揮発性メモリは、いくつかあるものの中で、パーソナルコンピュータ、ポータブルメモリスティック、デジタルカメラ、セル電話、MP3プレーヤなどのポータブルミュージックプレーヤ、ムービープレーヤなどの、幅広い範囲の電子アプリケーションで使用される場合がある。
【0004】
フラッシュメモリデバイスは、たとえばフローティングゲートなどの電荷貯蔵構造にデータを貯蔵するメモリセルを含むことができる。フラッシュメモリデバイスは、通常、高いメモリ密度、高い信頼性、及び低い電力消費を可能にする、1トランジスタのメモリセルを使用する。抵抗変化型メモリデバイスは、貯蔵要素(たとえば、可変抵抗を有する抵抗変化型メモリ要素)の抵抗状態に基づき、データを貯蔵することができる抵抗変化型メモリセルを含むことができる。
【0005】
メモリセルは、アレイ状に配置することができ、アレイアーキテクチャのメモリセルは、ターゲットの(たとえば、所望の)状態にプログラムされ得る。たとえば、特定のデータ状態にセルをプログラムするように、フラッシュメモリセルの電荷貯蔵構造(たとえば、フローティングゲート)に電荷を配置するか、電荷を除去することができる。セルの電荷貯蔵構造に貯蔵された電荷は、セルの閾値電圧(Vt)を示すことができる。フラッシュメモリセルの状態は、セルの電荷貯蔵構造上の貯蔵された電荷(たとえば、Vt)を検知することによって判定され得る。
【0006】
メモリデバイスは、電源がオンにされると、特定の機能を実施することができる。いくつかのメモリデバイスは、たとえば、電源オンにされると、データの完全性のチェック(たとえば、データアテステーション)をするようにプログラムされている。データアテステーションは、デバイスが、ユーザによって使用されるための準備をするためにかかる時間を増大させ得る。この待ち時間は、ユーザの経験に負の影響を与え得る。
【図面の簡単な説明】
【0007】
図1】本開示の一実施形態に係る、複数の物理ブロックを有するメモリアレイの一部の図である。
図2】本開示の一実施形態に係る、ホスト、及びメモリデバイスの形態の装置を含むコンピュータシステムのブロック図である。
図3】本開示の一実施形態に係る、例示的なデータアテステーションプロセスのブロック図である。
図4】本開示の一実施形態に係る、ホスト及びメモリデバイスを含む例示的なシステムのブロック図である。
図5】本開示の一実施形態に係る、複数のパラメータを判定するための例示的プロセスのブロック図である。
図6】本開示の一実施形態に係る、複数のパラメータを判定するための例示的プロセスのブロック図である。
図7】本開示の一実施形態に係る、証明を確認する例示的プロセスのブロック図である。
図8】本開示の一実施形態に係る、シグネチャーを確認する例示的プロセスのブロック図である。
図9】本開示の一実施形態に係る、例示的なメモリデバイスのブロック図である。
【発明を実施するための形態】
【0008】
本開示は、メモリ内のデータアテステーションのための装置、方法、及びシステムを含んでいる。一実施形態は、メモリと、装置の電源オフを検出することと、ランタイム暗号学的ハッシュを生成することと、電源オフの検出に応じてランタイム暗号学的ハッシュを暗号学的ハッシュと比較することであって、暗号学的ハッシュがメモリの一部に貯蔵されている、比較することと、を行うように構成された、回路構成と、を含んでいる。いくつかの実施例では、電源オフを検出することには、限定ではないが、装置の電源をオフにする命令(たとえば、コマンド)を受領することが含まれ得る。
【0009】
多くの脅威が、メモリ(たとえば、メモリデバイス)に貯蔵されたデータに影響し得る。たとえば、欠陥が、メモリのアレイ及び/または回路構成に生じる場合がある。このことは、エラーがデータ内で生じることに繋がり得る。さらなる実施例として、ハッカーまたは他の悪意のあるユーザが、悪意のある目的のために、認可されていない変更をデータに行う動作を実施することを試みる場合がある。たとえば、悪意のあるユーザは、いくつかのタイプがあるハッキング動作の中で、(たとえば、支払を確認するコードをスキップすることにより、提供されているサービスに関して支払が行われたことを不正に示すように)メモリを使用して実施されている商業輸送に悪影響を与える(たとえば、フローをそらす)ため、(たとえば、ライセンスを確認するコードをスキップすることにより、メモリのソフトウェアに適切にライセンスが付されたことを不正に示すように)メモリ上で実施されているソフトウェアのライセンスのチェックに悪影響を与える(たとえば、フローをそらす)ため、または、(たとえば、パートの真実性のチェック、環境のチェック、または不調のアラームのチェックをスキップするように)メモリを使用して実施されている自動制御に悪影響を与えるために、メモリ内に貯蔵されたデータを変更することを試みる場合がある。そのようなハッキング動作(たとえば、攻撃)は、かなりの金銭上の損失を生じ得、及び/または、かなりの安全性及び/またはセキュリティの課題を与え得る。
【0010】
したがって、安全なメモリシステムを確実にするために、メモリ内に貯蔵されたデータが本物であり(たとえば、最初にプログラムされたものと同じであり)、ハッキング動作または他の認可されていない変化によっては変更されていないことを認証(たとえば、オーセンティケーション及び/または立証)することが重要である。しかし、メモリに貯蔵されたデータが本物であることの認証は、メモリデバイスの始動時に待ち時間を生じ得る。データの完全性を認証することは、メモリデバイスが、ユーザによって使用されるための準備をするためにかかる時間を増大させ得る。この待ち時間は、ユーザの経験に負の影響を与え得る。
【0011】
本開示の実施形態は、デバイスの電源がオフにされた場合、及び/または、ホストがアイドリング状態である場合に、始動時の待ち時間を低減及び/または除去し、メモリデバイスの全体のユーザの経験を向上させるためにデータアテステーションを実施することができる。たとえば、本開示の実施形態は、電源オフ、及び/またはアイドリング状態のホストを検出し、電源オフ、及び/またはアイドリング状態のホストの検出に応じて、ランタイム暗号学的ハッシュを、メモリの一部に貯蔵された暗号学的ハッシュと比較することができる。いくつかの実施例では、電源オフを検出することには、ホストから電源オフのコマンドを受領することを含むことができ、アイドリング状態を検出することには、特定の期間にわたってホストからコマンドが受領されていないことが含まれる。
【0012】
本明細書で使用される場合、「a」、「an」、または「a number of(複数の)」は、1つまたは複数の何かに言及することができ、「a plurality of(複数の)」は、2つ以上のそのようなものに言及することができる。たとえば、メモリデバイスは1つまたは複数のメモリデバイスに言及することができ、複数のメモリデバイスは、2つ以上のメモリデバイスに言及することができる。さらに、「R」、「B」、「S」、及び「N」の指定子は、本明細書で使用される場合、特に図面の参照符号に関し、そのように指定された複数の特定の特徴が、本開示の複数の実施形態に含まれ得ることを示している。その数は、指定子間で同じであるか異なる場合がある。
【0013】
本明細書における数字は、最初の1つの数または複数の数が、図面の番号に対応し、残りの数が、図中の要素または構成要素を識別する、ナンバリングの慣習に従っている。異なる図の間の同様の要素または構成要素は、同様の数を使用することによって識別される場合がある。たとえば、101は、図1における要素「01」を参照する場合があり、同様の要素は、図2では201として参照される場合がある。
【0014】
図1は、本開示の一実施形態に係る、複数の物理ブロックを有するメモリアレイ101の一部の図である。メモリアレイ101は、たとえば、NANDフラッシュメモリアレイなどのフラッシュメモリアレイとすることができる。さらなる実施例として、メモリアレイ101は、いくつかあるものの中で、PCRAM、RRAM、MMRAM、またはスピントルク注入(STT)アレイなどの抵抗変化型メモリアレイとすることができる。しかし、本開示の実施形態は、特定のタイプのメモリアレイには限定されない。さらに、メモリアレイ101は、本明細書にさらに記載されるように、安全なメモリアレイとすることができる。さらに、図1には示されていないが、メモリアレイ101は、その動作に関連する様々な周囲の回路構成とともに、特定の半導体ダイ上に配置され得る。
【0015】
図1に示すように、メモリアレイ101は、メモリセルの複数の物理ブロック107-0(BLOCK 0)、107-1(BLOCK 1)、…、107-B(BLOCK B)を有している。メモリセルは、単一レベルセル、及び/または、たとえば2レベルセル、3レベルセル(TLC)、もしくは4レベルセル(QLC)などのマルチレベルセルとすることができる。一実施例として、メモリアレイ101内の物理ブロックの数は、128ブロック、512ブロック、または1,024ブロックである場合があるが、各実施形態は、メモリアレイ101の、2の特定の累乗、または任意の特定の数の物理ブロックに限定されない。
【0016】
メモリセルの複数の物理ブロック(たとえば、ブロック107-0、107-1、…、107-B)は、メモリセルのプレーンに含まれ得、メモリセルの複数のプレーンは、ダイ上に含まれ得る。たとえば、図1に示す実施例では、各物理ブロック107-0、107-1、…、107-Bは、単一のダイの一部とすることができる。すなわち、図1に示されるメモリアレイ101の一部は、メモリセルのダイとすることができる。
【0017】
図1に示すように、各物理ブロック107-0、107-1、…、107-Bは、アクセスライン(たとえば、ワードライン)に結合されたメモリセルの複数の物理列(たとえば、103-0、103-1、…、103-R)を含んでいる。各物理ブロック内の列(たとえば、ワードライン)の数は、32とすることができるが、各実施形態は、物理ブロック毎の特定の数の列103-0、103-1、…、103-Rに限定されない。さらに、図1には示されていないが、メモリセルは、読出し線(たとえば、データライン及び/または桁線)のカラムに結合され得る。
【0018】
当業者には、各列103-0、103-1、…、103-Rが、メモリセルの複数のページ(たとえば、物理的ページ)を含むことができることを理解されたい。物理的ページは、プログラミング及び/または読出しの単位(たとえば、機能的グループとしてともにプログラミング及び/または読出しされる複数のメモリセル)に関する。図1に示す実施形態では、各列103-0、103-1、…、103-Rは、メモリセルの1つの物理的ページを含んでいる。しかし、本開示の実施形態は、そのようには限定されない。たとえば、一実施形態では、各列は、メモリセルの複数の物理的ページを含むことができる(たとえば、偶数番目のデータラインに結合されたメモリセルの1つまたは複数の偶数のページ、及び、奇数番目のデータラインに結合されたメモリセルの1つまたは複数の奇数のページ)。さらに、マルチレベルセルを含む実施形態に関し、メモリセルの物理的ページは、データの複数のページ(たとえば、論理ページ)を貯蔵することができる(たとえば、データの上方ページとデータの下方ページとであり、物理的ページ内の各セルが、1つまたは複数のビットをデータの上方ページに貯蔵し、1つまたは複数のビットをデータの下方ページに貯蔵する)。
【0019】
図1に示すように、メモリセルのページは、複数の物理セクター105-0、105-1、…、105-S(たとえば、メモリセルのサブセット)を含むことができる。セルの各物理セクター105-0、105-1、…、105-Sは、データの複数の論理セクターを貯蔵することができる。さらに、データの各論理セクターは、データの特定のページの一部に対応することができる。一実施例として、特定の物理セクターに貯蔵されたデータの第1の論理セクターは、データの第1のページに対応する論理セクターに対応し、特定の物理セクターに貯蔵されたデータの第2の論理セクターは、データの第2のページに対応し得る。各物理セクター105-0、105-1、…、105-Sは、システム及び/またはユーザデータを貯蔵することができ、及び/または、エラー修正コード(ECC)データ、論理ブロックアドレス(LBA)データ、及びメタデータなどのオーバーヘッドデータを含むことができる。
【0020】
論理ブロックアドレッシングは、データの論理セクターを識別するために、ホストによって使用され得るスキームである。たとえば、各論理セクターは、特有の論理ブロックアドレス(LBA)に対応し得る。さらに、LBAは、メモリ内のデータのその論理セクターの物理的位置を示す場合がある、物理ブロックアドレス(PBA)などの物理アドレスに対応する(たとえば、動的にマッピングする)場合もある。データの論理セクターは、データの複数のバイト(たとえば、256バイト、512バイト、1,024バイト、または4,096バイト)とすることができる。しかし、各実施形態はこれら実施例には限定されない。
【0021】
物理ブロック107-0、107-1、…、107-B、列103-0、103-1、…、103-R、セクター105-0、105-1、…、105-S、及びページの他の構成が可能であることに留意されたい。たとえば、物理ブロック107-0、107-1、…、107-Bの列103-0、103-1、…、103-Rは、各々が、たとえば512バイトより多いか少ないデータを含むことができる単一の論理セクターに対応するデータを貯蔵することができる。
【0022】
図2は、本開示の一実施形態に係る、ホスト202、及びメモリデバイス206の形態の装置を含むコンピュータシステム200のブロック図である。本明細書で使用される場合、「装置」は、限定ではないが、たとえば、回路または複数の回路、ダイまたは複数のダイ、モジュールまたは複数のモジュール、デバイスまたは複数のデバイス、システムまたは複数のシステムなどの様々な構造または構造の組合せのいずれかに言及することができる。さらに、一実施形態では、コンピュータシステム200は、メモリデバイス206に類似の複数のメモリデバイスを含むことができる。
【0023】
図2に示す実施形態では、メモリデバイス206は、メモリアレイ201を有するメモリ216を含むことができる。メモリアレイ201は、図1に関して前述したメモリアレイ101に類似とすることができる。さらに、メモリアレイ201は、本明細書にさらに記載されるように、安全なアレイとすることができる。1つのメモリアレイ201が図2に示されているが、メモリ216は、メモリアレイ201に類似の任意の数のメモリアレイを含むことができる。
【0024】
図2に示すように、ホスト202は、インターフェース204を介してメモリデバイス206に結合することができる。ホスト202及びメモリデバイス206は、インターフェース204上で通信する(たとえば、コマンド及び/またはデータを送信する)ことができる。ホスト202及び/またはメモリデバイス206は、いくつかあるホストシステムの中で、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタルレコーディング及びプレイバックデバイス、移動電話、PDA、メモリカードリーダ、インターフェースハブ、または、たとえば自動車(たとえば、輸送機関及び/または交通のインフラストラクチャ)のモノのインターネット(IoT)対応デバイスもしくは医療用(たとえば、埋込み式及び/またはヘルスモニタリング)のIoT対応デバイスなどの、IoT対応デバイスとすることができるか、その一部とすることができ、また、メモリアクセスデバイス(たとえば、プロセッサ)を含むことができる。当業者には、「プロセッサ」が、パラレルプロセッシングシステム、複数のコプロセッサなどの、1つまたは複数のプロセッサを意図することができることを理解されたい。
【0025】
インターフェース204は、標準化された物理インターフェースの形態とすることができる。たとえば、メモリデバイス206がコンピュータシステム200内の情報ストレージのために使用される場合、インターフェース204は、いくつかある物理コネクタ及び/またはインターフェースの中で、シリアルアドバンスドテクノロジーアタッチメント(SATA)の物理インターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)の物理インターフェース、ユニバーサルシリアルバス(USB)の物理インターフェース、または小型コンピュータシステムインターフェース(SCSI)とすることができる。しかし、通常は、インターフェース204は、インターフェース204に適合するレセプタを有するメモリデバイス206とホスト(たとえば、ホスト202)との間で、制御、アドレス、情報(たとえば、データ)、及び他の信号を受け渡すためのインターフェースを提供することができる。
【0026】
メモリデバイス206は、ホスト202及びメモリ216(たとえば、メモリアレイ201)と通信するために、コントローラ208を含んでいる。たとえば、コントローラ208は、いくつかある操作の中で、データの読出し(たとえば、読取り)、プログラミング(たとえば、書込み)、移動、及び/または消去のための操作を含む、メモリアレイ201上での操作を実施するためにコマンドを送信することができる。
【0027】
コントローラ208は、メモリ216と同じ物理デバイス(たとえば、同じダイ)上に含まれ得る。代替的には、コントローラ208は、メモリ216を含む物理デバイスに通信可能に結合された別の物理デバイス上に含めることができる。一実施形態では、コントローラ208の構成要素は、分散されたコントローラとして、複数の物理デバイスにわたって散在させることができる(たとえば、いくつかの構成要素はメモリと同じダイ上にあり、いくつかの構成要素は異なるダイ、モジュール、またはボード上にある)。
【0028】
ホスト202は、メモリデバイス206と通信するためのホストコントローラ(図2には示されていない)を含むことができる。ホストコントローラは、メモリデバイス206にインターフェース204を介してコマンドを送信することができる。ホストコントローラは、いくつかある操作の中で、データの読取り、書込み、及び/または消去のために、メモリデバイス206及び/またはメモリデバイス206上のコントローラ208と通信することができる。さらに、一実施形態では、ホスト202は、本明細書で前述したように、IoT通信能力を有する、IoT対応デバイスとすることができる。
【0029】
メモリデバイス206上のコントローラ208及び/またはホスト202上のホストコントローラは、制御回路及び/またはロジック(たとえば、ハードウェア及びファームウェア)を含むことができる。一実施形態では、メモリデバイス206上のコントローラ208及び/またはホスト202上のホストコントローラは、物理インターフェースを含む、プリント回路基板に結合された特定用途向け集積回路(ASIC)とすることができる。同様に、メモリデバイス206及び/またはホスト202は、揮発性及び/または不揮発性メモリのバッファ、ならびに1つまたは複数のレジスタを含むことができる。
【0030】
たとえば、図2に示すように、メモリデバイスは回路構成210を含むことができる。図2に示す実施形態では、回路構成210は、コントローラ208に含まれる。しかし、本開示の実施形態は、そのようには限定されない。たとえば、一実施形態では、回路構成210は、(コントローラ208内の代わりに)メモリ216内(たとえば、メモリ216と同じダイ上)に含まれる場合がある。回路構成210は、たとえば、ハードウェア、ファームウェア、及び/またはソフトウェアを含むことができる。
【0031】
回路構成210は、メモリ216内(たとえば、メモリアレイ201内)に貯蔵されたデータを認証(たとえば、オーセンティケーション及び/または立証)するためのランタイム暗号学的ハッシュ241を生成することができる。本明細書で使用される場合、メモリアレイ201内に貯蔵されたデータを認証することには、データが本物であり(たとえば、最初にプログラムされたものと同じであり)、ハッキング動作または他の認可されていない変化によっては変更されていないことのオーセンティケーション及び/または立証が含まれ得る、及び/または関連し得る。メモリアレイ201に貯蔵されたデータのランタイム暗号学的ハッシュ241は、たとえば、SHA-256の暗号学的ハッシュを含むことができる。さらに、メモリアレイ201に貯蔵されたデータのランタイム暗号学的ハッシュ241は、256バイトのデータを含むことができる。
【0032】
メモリアレイ201に貯蔵されたデータのランタイム暗号学的ハッシュ241は、たとえば、回路構成210により、生成(たとえば、計算)することができる。そのような実施例では、貯蔵されたデータのランタイム暗号学的ハッシュ241は、外部のデータをインターフェース204上で移動することなく、メモリデバイス206によって内部で生成することができる。追加の実施例として、データのランタイム暗号学的ハッシュ241は、外部エンティティから通信させることができる。たとえば、ホスト202は、メモリアレイ201に貯蔵されたデータのランタイム暗号学的ハッシュ241を生成し、生成されたランタイム暗号学的ハッシュ241をメモリデバイス206に送信することができる(たとえば、回路構成210は、メモリアレイ201に貯蔵されたデータのランタイム暗号学的ハッシュ241をホスト202から受領することができる)。
【0033】
ランタイム暗号学的ハッシュ241は、たとえば、回路構成210により、ホスト202から受領されたコマンドなどの外部のコマンドに基づき(たとえば、外部のコマンドに応じて)生成(たとえば、計算)することができる。たとえば、ランタイム暗号学的ハッシュ241は、メモリアレイ201に貯蔵されたデータを読み込むこと、及び、データをハッシュ化するためにハッシュ関数を使用することにより、生成することができる。追加の実施例として、ホスト202は、ランタイム暗号学的ハッシュ241を生成し、生成されたランタイム暗号学的ハッシュ241をメモリデバイス206に送信する(たとえば、提供する)ことができる(たとえば、回路構成210は、ランタイム暗号学的ハッシュ241をホスト202から受領することができる)。
【0034】
図2に示すように、ランタイム暗号学的ハッシュ241は、メモリアレイ201に貯蔵することができる。たとえば、ランタイム暗号学的ハッシュ241は、メモリデバイス206及び/またはホスト202のユーザにアクセス不可能なメモリアレイ201の一部(たとえば、メモリアレイ201の「隠れた」領域)に貯蔵することができる。
【0035】
一実施形態では、メモリアレイ201(たとえば、アレイ201のサブセット、またはアレイ201全体)は、安全なアレイ(たとえば、制御下に維持されるメモリ216のあるエリア)とすることができる。いくつかの実施例では、ユーザは、安全なアレイにアクセス(たとえば、書込み、読取り、または消去)することができない。たとえば、メモリアレイ201に貯蔵されたデータには、変動しやすいアプリケーションのために実行されるホストファームウェア及び/またはコードなどの、変動しやすい(たとえば、非ユーザ)データが含まれ得る。そのような実施形態では、一対の不揮発性レジスタを、安全なアレイを規定するために使用することができる。たとえば、図2に示す実施形態では、回路構成210は、安全なアレイを規定するために使用することができるレジスタ214-1及び214-2を含んでいる。たとえば、レジスタ214-1は、安全なアレイのアドレス(たとえば、データの始点のLBA)を規定することができ、レジスタ214-2は、安全なアレイのサイズ(たとえば、データの終点のLBA)を規定することができる。安全なアレイが規定されると、回路構成210は、本物であることを証明され、再現防止プロテクトがされたコマンドを使用して、本明細書ではゴールデンハッシュ243と称される場合がある、安全なアレイに関連する暗号学的ハッシュ243を生成(たとえば、計算)することができる(たとえば、それにより、メモリデバイス206のみがゴールデンハッシュ243を知っており、メモリデバイス206のみが、ゴールデンハッシュ243を生成及びアップデートすることが可能であるようになっている)。ゴールデンハッシュ243は、メモリアレイ201のアクセス不可能な部分に貯蔵される場合があり、本明細書にさらに記載するように、安全なアレイのデータを認証するプロセスの間に使用することができる。
【0036】
メモリデバイス206(たとえば、回路構成210)は、メモリアレイ201に貯蔵されたデータを認証することができる。たとえば、回路構成210は、メモリデバイス206の起動(たとえば、電源オン及び/または電力アップ)に応じて、メモリデバイス206の電源オフの前に、及び/または、ホスト202がアイドリング状態である(たとえば、ホスト202がメモリデバイス206にコマンドを送信していない)場合に、アレイ201に貯蔵されたデータを認証することができる。したがって、メモリアレイ201に貯蔵されたデータの認証は、メモリデバイス206の電源オフの前、及び/または、ホスト202がアイドリング状態である場合に、メモリデバイス206が起動されると、(たとえば、自動的に)開始され得る。
【0037】
さらなる実施例として、回路構成210は、メモリアレイ201に貯蔵されたデータの認証を開始することができる。たとえば、ホスト202は、コマンドをメモリデバイス206(たとえば、回路構成210)に送信して、メモリアレイ201に貯蔵されたデータの認証を開始することができる。
【0038】
メモリアレイ201が安全なアレイである実施形態では、本明細書で前述したゴールデンハッシュ243は、メモリアレイ201に貯蔵されたデータを認証するために使用される場合もある。たとえば、ランタイム暗号学的ハッシュ241は、生成(たとえば、計算)され、ゴールデンハッシュ243と比較され得る。この比較が、ランタイム暗号学的ハッシュ241とゴールデンハッシュ243とがマッチしている(たとえば等しい)ことを示している場合、安全なアレイが変更されておらず、したがって、その中に貯蔵されたデータが正当なものであると判定することができる。しかし、この比較が、ランタイム暗号学的ハッシュ241とゴールデンハッシュ243とがマッチしていないことを示している場合、このことは、安全なアレイに貯蔵されたデータが(たとえば、ハッカーまたはメモリ内の欠陥に起因して)変更されたことを示す場合があり、このことは、ホスト202に報告され得る。
【0039】
ランタイム暗号学的ハッシュ241は、回路構成210がコンピュータシステム200の電源オフを検出することに応じて、生成、及び/またはゴールデンハッシュ243と比較され得る。回路構成210は、たとえば、コントローラ208がホスト202から電源オフコマンドを受領することにより、電源オフを検出することができる。いくつかの実施例では、ランタイム暗号学的ハッシュ241は、回路構成210が、ホスト202がアイドリング状態であることを検出することに応じて、生成、及び/またはゴールデンハッシュ243と比較され得る。いくつかの実施例では、回路構成210は、コントローラ208がホスト202からの待機中のコマンドを有していない場合にホスト202がアイドリング状態であると判定することができる。
【0040】
図2に示すように、電源オフカウンタ245及び/または電源オンカウンタ247は、限定ではないが、メモリアレイ201に貯蔵することができる。いくつかの実施例では、電源オフカウンタ245、電源オフカウンタ245によってカウントされた電源オフの数、電源オンカウンタ247、及び/または、電源オンカウンタ247によってカウントされた電源オンの数は、メモリデバイス206及び/またはホスト202のユーザにアクセス不可能なメモリアレイ201の部分(たとえば、メモリアレイ201の「隠れた」領域)に貯蔵することができる。たとえば、電源オフカウンタ245によってカウントされた電源オフの数、及び/または、電源オンカウンタ247によってカウントされた電源オンの数は、ホスト202が、電源オフカウンタ245によってカウントされた数、及び/または電源オンカウンタ245によってカウントされた数を変更することを防止するために、メモリアレイ201の隠れた領域内に貯蔵することができる。いくつかの実施例では、電源オフカウンタ245及び/または電源オンカウンタ247は、単調カウンタとすることができる。電源オフカウンタ245は、コンピュータシステム200が電源オフにされる毎にインクリメントすることができ、電源オンカウンタ247は、コンピュータシステム200が電源オンにされる毎にインクリメントすることができる。たとえば、電源オフカウンタは、コンピュータシステム200の電源オフの前(たとえば、メモリデバイス206がホスト202から電源オフのコマンドを受領した際)、及び/または、ランタイム暗号学的ハッシュと暗号学的ハッシュとが等しいことに応じて、インクリメントすることができる。
【0041】
いくつかの実施形態では、アレイ201及び/またはアレイ201の一部は、電源オフカウンタ245のインクリメントに応じて、及び/または、コンピュータシステム200の電源オフの前に、リードオンリーモードに設定することができる。たとえば、メモリデバイス206及び/またはホスト202のユーザにアクセス不可能なメモリアレイ201の部分(たとえば、メモリアレイ201の「隠れた」領域)は、リードオンリーモードに設定することができる。メモリアレイ201及び/またはメモリアレイ201の一部を、リードオンリーに調整することにより、メモリアレイ201及び/またはメモリアレイ201の一部がエラーになることを防止することができる。
【0042】
電源オンカウンタ247は、コンピュータシステム200の電源オンに応じてインクリメントすることができる。たとえば、電源オンカウンタ247は、コンピュータシステム200が電源オンのコマンドを受領することに応じてインクリメントすることができる。電源オフカウンタ245は、電源オンカウンタ247のインクリメントに応じて、及び/または、コンピュータシステム200が電源オンされると、電源オンカウンタ247と比較され得る。いくつかの実施例では、メモリアレイ201は、電源オンカウンタ245と電源オフカウンタ247とが等しいことに応じて、読取り及び書込みモードに設定することができる。
【0043】
図2に示すように、エラーフラグ249は、メモリアレイ201に貯蔵することができる。たとえば、エラーフラグ249は、メモリデバイス206及び/またはホスト202のユーザにアクセス不可能なメモリアレイ201の部分(たとえば、メモリアレイ201の「隠れた」領域)に貯蔵することができる。エラーフラグ249は、アレイ201のデータがエラーになっていることに応じて提供することができる。たとえば、電源オンカウンタ247と電源オフカウンタ245とが異なっていることは、アレイ201のデータがエラーになっていることを示している。いくつかの実施例では、データは、電源オンカウンタ247と電源オフカウンタ245とが異なっていることに応じて、アレイ201内で修復して、エラーになっているデータを置き換えることができる。
【0044】
いくつかの実施例では、認証フラグ251を、メモリアレイ201に貯蔵することができる。認証フラグ251は、メモリデバイス206及び/またはホスト202のユーザにアクセス不可能なメモリアレイ201の部分(たとえば、メモリアレイ201の「隠れた」領域)に貯蔵することができる。認証フラグ251は、アレイ201のデータが認証されていることを示すことができる。認証フラグ251は、アレイ201のデータが認証されたときから変更されていないこと、したがって、アレイ201のデータが認証されることを必要としないことをも示すことができる。したがって、認証フラグ251は、ランタイム暗号学的ハッシュ241と暗号学的ハッシュ243とが等しいことに応じて引き起こされ得る。メモリ216を含むコンピュータシステム200は、認証フラグ251が引き起こされることに応じて電源オフにすることができる。この理由は、アレイ201のデータが認証されているためである。いくつかの実施例では、認証フラグ251は、コンピュータシステム200の電源オフの前に、アレイ201内の書込操作に応じて除去することができる。コンピュータシステムの電源オフの前にアレイ201内の書込操作が発生した場合、アレイ201のデータは、始動時の待ち時間を防止するために、コンピュータシステム200の電源オフの前に認証される必要がある場合がある。いくつかの実施例では、認証フラグ251は、コンピュータシステム200の電源オンに応じて消去(たとえば、除去)することができ、それにより、アレイ201のデータを、コンピュータシステム200の電源オフの前に認証することができるようになっている。
【0045】
図2に示す実施形態は、図示されていないさらなる回路構成、ロジック、及び/または構成要素を含むことができ、それにより、本開示の実施形態を不明瞭にしないようになっている。たとえば、メモリデバイス206は、I/Oコネクタを越え、I/O回路構成を通して提供されるアドレス信号をラッチするように、アドレス回路構成を含むことができる。アドレス信号は、メモリアレイ201にアクセスするように、列デコーダ及びカラムデコーダによって受領及びデコードされ得る。さらに、メモリデバイス206は、メモリアレイ201とは別の、及び/またはメモリアレイ201に追加で、たとえばDRAMまたはSDRAMなどのメインメモリを含むことができる。メモリデバイス206のさらなる回路構成、ロジック、及び/または構成要素をさらに示す実施例は、(たとえば、図9に関連して)本明細書にさらに記載されることになる。
【0046】
図3は、本開示の一実施形態に係る、例示的なデータアテステーションプロセス361のブロック図である。データアテステーションプロセス361は、メモリ316内(たとえば、メモリアレイ301内)に貯蔵されたデータ363を認証(たとえば、オーセンティケーション及び/または立証)するためのランタイム暗号学的ハッシュ341を生成することを含むことができる。本明細書で使用される場合、メモリアレイ301内に貯蔵されたデータ363を認証することには、データ363が本物であり(たとえば、最初にプログラムされたものと同じであり)、ハッキング動作または他の認可されていない変化によっては変更されていないことのオーセンティケーション及び/または立証を含む、及び/または関連することができる。ランタイム暗号学的ハッシュ341は、データ363をハッシュ化するために、メモリアレイ301に貯蔵されたデータ363を読み込むこと、及び暗号学的ハッシュ関数365を使用することにより、生成することができる。いくつかの実施例では、暗号学的ハッシュ関数365は、SHA-256の暗号学的ハッシュ関数とすることができる。
【0047】
図2に示すように、ランタイム暗号学的ハッシュ341(たとえば、図2のランタイム暗号学的ハッシュ241)は、メモリアレイ301(たとえば、図2のメモリアレイ201)に貯蔵することができる。たとえば、ランタイム暗号学的ハッシュ341は、メモリデバイス(たとえば、図2のメモリデバイス206)及び/またはホスト(たとえば、図2のホスト202)のユーザにアクセス不可能なメモリアレイ301の部分に貯蔵することができる。
【0048】
一実施形態では、メモリアレイ301(たとえば、アレイ301のサブセット、またはアレイ301全体)は、安全なアレイとすることができる(たとえば、メモリ316のあるエリアが制御下に維持される)。たとえば、メモリアレイ301に貯蔵されたデータには、変動しやすいアプリケーションのために実行されるホストファームウェア及び/またはコードなどの、変動しやすい(たとえば、非ユーザ)データが含まれ得る。そのような実施形態では、一対の不揮発性レジスタを、安全なアレイを規定するために使用することができる。たとえば、図2に示す実施形態では、回路構成210は、安全なアレイを規定するために使用することができるレジスタ214-1及び214-2を含んでいる。安全なアレイが規定されると、回路構成は、本物であることを証明され、再現防止プロテクトがされたコマンドを使用して、本明細書ではゴールデンハッシュ343と称される場合がある、安全なアレイに関連する暗号学的ハッシュ343を生成(たとえば、計算)することができる(それにより、メモリデバイスのみがゴールデンハッシュ343を知っており、メモリデバイスのみが、ゴールデンハッシュ343を生成及びアップデートすることが可能であるようになっている)。ゴールデンハッシュ343は、メモリアレイ301のアクセス不可能な部分に貯蔵される場合があり、安全なアレイのデータを認証するプロセスの間に使用することができる。
【0049】
データアテステーションプロセス361は、メモリデバイス(たとえば、図2のメモリデバイス206)の起動(たとえば、電源オン及び/または電力アップ)に応じて、メモリデバイスの電源オフの前、及び/またはホスト(たとえば、図2のホスト202)がアイドリングしている場合に、開始することができる。したがって、メモリアレイ301に貯蔵されたデータ363の認証は、メモリデバイスの電源オフの前、及び/または、ホストがアイドリング状態である場合に、メモリデバイスが起動された際に(たとえば、自動的に)開始され得る。さらなる実施例として、データアテステーションプロセス361は、メモリアレイ301に貯蔵されたデータ363の認証を開始するためのコマンドをホストから受領することに応じて開始され得る。
【0050】
ランタイム暗号学的ハッシュ341は、生成(たとえば、計算)され、ゴールデンハッシュ343と比較され得る。この比較367が、ランタイム暗号学的ハッシュ341とゴールデンハッシュ343とがマッチしている(たとえば等しい)ことを示している場合、安全なアレイ301が変更されておらず、したがって、その中に貯蔵されたデータ363が正当なもの369であり、データアテステーションプロセス361を完了することができると判定することができる。いくつかの実施例では、認証フラグ(たとえば、図2の認証フラグ251)は、ランタイム暗号学的ハッシュ341とゴールデンハッシュ343とがマッチすることに応じて引き起こされ得る。認証フラグは、(たとえば、図2に関して)本明細書で前述したように、安全なアレイ301のデータ363が認証されていることを示すことができる。しかし、この比較367が、ランタイム暗号学的ハッシュ341とゴールデンハッシュ343とがマッチしていないことを示している場合、このことは、安全なアレイ301に貯蔵されたデータ363が(たとえば、ハッカーまたはメモリ内の欠陥に起因して)エラーになっていること371を示す場合がある。安全なアレイ301のデータ363のエラーは、ホスト(たとえば、図2のホスト202)に報告することができる。いくつかの実施例では、安全なアレイ301のデータ363を修復することができる。
【0051】
ランタイム暗号学的ハッシュ341は、コンピュータシステム(たとえば、図2のコンピュータシステム200)の電源オフを検出することに応じて、生成、及び/またはゴールデンハッシュ343と比較され得る。いくつかの実施例では、ランタイム暗号学的ハッシュ341は、ホスト(たとえば、図2のホスト202)がアイドリング状態であることを検出することに応じて、生成、及び/またはゴールデンハッシュ343と比較され得る。いくつかの実施例では、ホストは、ホストからの待機状態のコマンドが存在しない場合にアイドリング状態とすることができる。
【0052】
図4は、本開示の一実施形態に係る、ホスト402及びメモリデバイス406を含む例示的なシステムのブロック図である。ホスト402とメモリデバイス406とはそれぞれ、たとえば、図2に関して前述したホスト202とメモリデバイス206とにすることができる。
【0053】
コンピュータデバイスは、各層を使用して各段階でブートすることができ、各層は、次の層が本物であることを証明するとともにロードし、各層において、ますます精巧なランタイムサービスを提供する。層は、前の層によって提供され、次の層を提供し得、それにより、層の相互接続されたウェブを形成する。このウェブは、より下の層の上に構築され、より高い順番の層を提供する。図4に示すように、層0(「L」)451及び層1(「L」)453は、ホスト内にある。層0 451は、Firmware Derivative Secret(FDS)キー452を層1 453に提供することができる。FDSキー452は、層1 453のコードの識別、及び他の安全性に関連するデータを記載することができる。一実施例では、特定のプロトコル(強いモノのインターネット(RIOT)のコアプロトコルなど)は、このプロトコルがロードした層1 453のコードを認証するために、FDS452を使用することができる。一実施例では、特定のプロトコルは、デバイス識別組成エンジン(DICE:device identification composition engine)及び/またはRIOTコアプロトコルを含むことができる。一実施例として、FDSは、層1のファームウェアイメージ自体、認可された層1のファームウェアを暗号学的に識別するマニフェスト、安全なブートの実施態様の文脈における、サインされたファームウェアのファームウェアバージョン数、及び/または、デバイスに関する安全性に重要な構成の設定を含むことができる。デバイスシークレット458は、FDS452を生成するために使用することができ、ホスト402のメモリ内に貯蔵することができる。
【0054】
ホストは、矢印454によって示すように、メモリデバイス406にデータを伝達することができる。伝達されたデータは、公開キー、証明キー(たとえば、外部の識別の証明)、及び/または外部の公開キーである、外部の識別を含むことができる。メモリデバイス406の層2(「L」)455は、伝達されたデータを受領することができ、オペレーティングシステム(「OS」)457の動作において、また、第1のアプリケーション459-1及び第2のアプリケーション459-2上でデータを実行することができる。
【0055】
例示的操作では、ホスト402は、デバイスのシークレット458を読み取り、層1 453の識別をハッシュ化し、以下を含む計算を実施することができる。
L1=KDF[Fs(s),ハッシュ(「不変の情報」)]
ここで、KL1は、外部の公開キーであり、KDF(たとえば、National Institute of Standards and Technology(NIST)のSpecial Publication 800-108に規定されるKDF)はキー導出関数(たとえば、HMAC-SHA256)であり、Fs(s)は、デバイスのシークレット558である。FDS552は、以下を実施することによって判定され得る。
FDS=HMAC-SHA256[Fs(s),SHA256(「不変の情報」)]
同様に、メモリデバイス406は、矢印456によって示すように、ホスト402にデータを伝達することができる。
【0056】
図5は、本開示の一実施形態に係る、複数のパラメータを判定するための例示的プロセスのブロック図である。図5は、外部の公の識別、外部の証明、及び外部の公開キーを含むパラメータの判定の実施例であり、これらは、次いで、矢印554によって示すように、メモリデバイス(たとえば、図4の406)の層2(たとえば層2 455)に送信することができる。図5の層0(「L」)551は、図4の層0 451に対応し、同様に、FDS552はFDS452に対応し、層1 553は層1 453に対応し、矢印554と矢印556とは、それぞれ矢印454と矢印456とに対応する。
【0057】
層0 551からのFDS552は、層1 553に送信され、非対称のIDジェネレータ561により、公の識別(「IDlk public」)565及び非公開の識別567を生成するために使用される。短縮された「IDlk public」では、「lk」が層k(この実施例では、層1)を示し、「public」が、識別が公に共有されていることを示している。公の識別565は、ホストの層1 553の右に外側に延びる矢印によって共有されるように示されている。生成された非公開の識別567は、エンクリプタ573へのキーの入力として使用される。エンクリプタ573は、データを暗号化するために使用される任意のプロセッサ、コンピュータデバイスなどとすることができる。
【0058】
ホストの層1 553は、非対称のキージェネレータ563を含むことができる。少なくとも1つの実施例では、ランダム数ジェネレータ(RND)536が、任意選択的に、ランダム数を非対称のキージェネレータ563に入力することができる。非対称のキージェネレータ563は、公開キー(「KLk public」)569(外部の公開キーと称される)と、図4のホスト402などのホストに関連する非公開キー(「KLK private」)571(外部の非公開キーと称される)とを生成することができる。外部の公開キー569は、エンクリプタ573への(データとしての)入力とすることができる。エンクリプタ573は、外部の非公開の識別567及び外部の公開キー569の入力を使用して、結果K’575を生成することができる。外部の非公開キー571及び結果K’575は、追加のエンクリプタ577へ入力することができ、出力K’’579となる。出力K’’579は、層2(図4の455)に伝達される外部の証明(「IDL1 Certificate」)581である。外部の証明581は、デバイスから送信されたデータの起源を確認、及び/または本物であることを証明する能力を提供することができる。一実施例として、ホストから送信されたデータは、図7に関してさらに記載するように、証明を確認することにより、ホストの識別に関連することができる。さらに、外部の公開キー(「KL1 public key」)583を層2に送信することができる。したがって、ホストの公の識別565、証明581、及び外部の公開キー583を、メモリデバイスの層2に伝達することができる。
【0059】
図6は、本開示の一実施形態に係る、複数のパラメータを判定するための例示的プロセスのブロック図である。図6は、デバイスの識別(「IDL2 public」)666、デバイスの証明(IDL2 Certificate)682、及びデバイスの公開キー(「KL2 public key」)684を生成するメモリデバイス(たとえば、図4のメモリデバイス406)の層2 655を示している。
【0060】
図5に記載されるように、ホストの層1からメモリデバイスの層2 655に伝達される外部の公開キー(「KL1 public key」)683は、メモリデバイスの公の識別(「IDlk public」)666及び非公開の識別668を生成するために、メモリデバイスの非対称IDジェネレータ662によって使用される。短縮された「IDlk public」では、「lk」が層k(この実施例では、層2)を示し、「public」が、識別が公に共有されていることを示している。公の識別666は、層2 655の右に外側に延びる矢印によって共有されるように示されている。生成された非公開の識別668は、エンクリプタ674へのキーの入力として使用される。
【0061】
メモリデバイスの層2 655は、非対称のキージェネレータ664を含むことができる。少なくとも1つの実施例では、ランダム数ジェネレータ(RND)638が、任意選択的に、ランダム数を非対称のキージェネレータ664に入力することができる。非対称のキージェネレータ664は、公開キー(「KLk public」)670(デバイスの公開キーと称される)と、図4のメモリデバイス406などのメモリデバイスに関連する非公開キー(「KLK private」)672(デバイスの非公開キーと称される)を生成することができる。デバイスの公開キー670は、エンクリプタ674への(データとしての)入力とすることができる。エンクリプタ674は、デバイスの非公開の識別668及びデバイスの公開キー670の入力を使用して、結果K’676を生成することができる。デバイスの非公開キー672及び結果K’676は、追加のエンクリプタ678への入力とすることができ、出力K’’680となる。出力K’’680は、層1(たとえば、図4の層1 453)に戻すように伝達されるデバイスの証明(「IDL2 certificate」)682である。デバイスの証明682は、デバイスから送信されたデータの起源を確認、及び/または本物であることを証明する能力を提供することができる。一実施例として、メモリデバイスから送信されたデータは、図7に関してさらに記載するように、証明を確認することにより、メモリデバイスの識別に関連することができる。さらに、デバイスの公開キー(「KL2 public key」)684を層1に送信することができる。したがって、メモリデバイスの公の識別666、証明682、及びデバイスの公開キー684を、ホストの層1に伝達することができる。
【0062】
一実施例では、ホストがメモリデバイスから公開キーを受領することに応じて、ホストは、デバイスの公開キーを使用して、メモリデバイスに送信されるデータを暗号化することができる。逆に、メモリデバイスは、外部の公開キーを使用して、ホストに送信されるデータを暗号化することができる。デバイスの公開キーを使用して暗号化されたデータをメモリデバイスが受領することに応じて、メモリデバイスは、それ自体のデバイスの非公開キーを使用してデータを解読することができる。同様に、外部の公開キーを使用して暗号化されたデータをホストが受領することに応じて、ホストは、それ自体の外部の非公開キーを使用してデータを解読することができる。デバイスの非公開キーが、メモリデバイスの外部の別のデバイスと共有されておらず、また、外部の非公開キーがホストの外部の別のデバイスと共有されていないことから、メモリデバイス及びホストに送信されたデータは安全なままである。
【0063】
図7は、本開示の一実施形態に係る、証明を確認する例示的プロセスのブロック図である。図7に示される実施例では、公開キー783、証明781、及び公の識別765が、ホストから(たとえば、図4のホスト402の層1 453から)提供される。証明781及び外部の公開キー783のデータは、解読器785への入力として使用することができる。解読器785は、データを解読するために使用される任意のプロセッサ、コンピュータデバイスなどとすることができる。証明781及び外部の公開キー783の解読の結果は、公の識別とともに、二次解読器787への入力として使用することができ、出力の結果となる。外部の公開キー783及び解読器787からの出力は、789で図示するように、証明が確認されたかを示すことができ、出力としてのyesまたはno791の結果となる。証明が確認されることに応じて、確認される、デバイスから受領されたデータは、許容、暗号化、及び処理することができる。証明が確認されないことに応じて、確認される、デバイスから受領されたデータは、廃棄、除去、及び/または無視することができる。この方法で、不正なデータを送信する不正なデバイスを検出し、避けることができる。実施例として、処理されるデータを送信するハッカーを識別することができ、ハッキングデータは処理されない。
【0064】
図8は、本開示の一実施形態に係る、シグネチャーを確認する例示的プロセスのブロック図である。後の拒絶(repudiation)を避けるために、確認される場合があるデータをデバイスが送信している例では、シグネチャーを生成し、データとともに送信することができる。一実施例として、第1のデバイスは、第2のデバイスのリクエストをする場合があり、第2のデバイスがリクエストを実施すると、第1のデバイスは、第1のデバイスがそのようなリクエストをしていないことを示す場合がある。シグネチャーを使用するなど、拒絶防止のアプローチは、第1のデバイスによる拒絶を避けることができ、第2のデバイスが、後の困難性を伴わずにリクエストされたタスクを実施することができることを保証している。
【0065】
メモリデバイス806(図2のメモリデバイス206など)は、データ890をホスト(図2のホスト202など)に送信することができる。メモリデバイス806は、894において、デバイスの非公開キー871を使用してシグネチャー896を生成することができる。シグネチャー896は、ホスト802に伝達することができる。ホスト802は、898において、前に受領されたデータ892及び外部の公開キー869を使用するシグネチャーを評価することができる。この方法で、シグネチャーは、非公開キーを使用して生成され、公開キーを使用して確認される。この方法で、特有のシグネチャーを生成するために使用される非公開キーは、シグネチャーを送信するデバイスに対し非公開のままとすることができ、一方、受領するデバイスが、確認のために、送信するデバイスの公開キーを使用してシグネチャーを解読することを可能にしている。このことは、受領するデバイスの公開キーを使用して、送信するデバイスによって暗号化され、受領器の非公開キーを使用して、受領するデバイスによって解読されるデータの暗号化/解読とは対照的なものである。少なくとも1つの実施例では、本デバイスは、内部の暗号学的プロセス(たとえば、Elliptical Curve Digital signature(ECDSA))または類似のプロセスを使用することにより、デジタルシグネチャーを確認することができる。
【0066】
図9は、本開示の一実施形態に係る、例示的なメモリデバイス906のブロック図である。メモリデバイス906は、たとえば、図2に関して前述したメモリデバイス206にすることができる。
【0067】
図9に示すように、メモリデバイス906は、複数のメモリアレイ901-1~901-7を含み得る。メモリアレイ901-1~901-7は、図1に関して前述したメモリアレイ101に類似とすることができる。さらに、図9に示す実施例では、メモリアレイ901-3は安全なアレイであり、メモリアレイ901-6のサブセット911は、安全なアレイを備え、メモリアレイ901-7のサブセット913及び915は、安全なアレイを備えている。サブセット911、913、及び915は、各々が、たとえば4キロバイトのデータを含むことができる。しかし、本開示の実施形態は、特定の数または配置のメモリアレイまたは安全なアレイには限定されない。
【0068】
図9に示すように、メモリデバイス906は、改善(たとえば、リカバリー)ブロック917を含み得る。改善ブロック917は、メモリデバイス906の操作の間に発生する場合があるエラー(たとえば、ミスマッチ)のケースでは、データのソースとして使用することができる。改善ブロック917は、ホストによってアドレス指定可能であるメモリデバイス906のエリアの外側である場合がある。
【0069】
図9に示すように、メモリデバイス906は、シリアル周辺インターフェース(SPI)904及びコントローラ908を含み得る。メモリデバイス906は、(たとえば、図2に関して)本明細書で前述したように、ホスト及びメモリアレイ901-1~901-7と通信するためにSPI904及びコントローラ908を使用することができる。
【0070】
図9に示すように、メモリデバイス906は、メモリデバイス906の安全性を管理するための安全なレジスタ919を含み得る。たとえば、安全なレジスタ919は、アプリケーションコントローラを構成し、外部に通信することができる。さらに、安全なレジスタ919は、オーセンティケーションコマンドによって修正可能である場合がある。
【0071】
図9に示すように、メモリデバイス906は、キー921を含み得る。たとえば、メモリデバイス906は、ルートキー、DICE-RIOTキー、及び/または他の外部のセッションのキーなどのキーを貯蔵するための8つの異なるスロットを含むことができる。
【0072】
図9に示すように、メモリデバイス906は、電子的に消去可能でプログラム可能なリードオンリメモリ(EEPROM)923を含み得る。EEPROM923は、ホストに利用可能な安全な不揮発性エリアを提供することができ、このエリアで、個別のデータのバイトを消去及びプログラムすることができる。
【0073】
図9に示すように、メモリデバイス906はカウンタ(たとえば、単調カウンタ)925を含むことができる。カウンタ925は、ホストから受領され、及び/またはホストに送信された(コマンドセットまたはシークエンスをサインするための)コマンドに関するリプレイ防止メカニズム(たとえば、フレッシュさのジェネレータ)として使用することができる。たとえば、メモリデバイス906は、6つの異なる単調カウンタを含むことができ、これら単調カウンタの2つは、本物であることが証明されたコマンドに関するメモリデバイス906によって使用される場合があり、単調カウンタの4つは、ホストによって使用される場合がある。
【0074】
図9に示すように、メモリデバイス906は、SHA-256の暗号学的ハッシュ関数927、及び/またはHMAC-SHA256の暗号学的ハッシュ関数929を含むことができる。SHA-256の暗号学的ハッシュ関数927及び/またはHMAC-SHA256の暗号学的ハッシュ関数929は、本明細書に前述したように、メモリアレイ901-1~901-7に貯蔵されたデータを認証するために使用される暗号学的ハッシュ及び/またはゴールデンハッシュを生成するために、メモリデバイス906により使用され得る。さらに、メモリデバイス906は、DICE-RIOT931のL0及びL1を支持することができる。
【0075】
特定の実施形態を本明細書において説明及び記載してきたが、当業者には、同じ結果を達成するために計算された配置が、図示の特定の実施形態の代わりにされ得ることを理解されたい。本開示は、本開示の複数の実施形態の適用形態または変形形態をカバーすることが意図されている。上の記載は、説明的方式でされたものであり、限定的方式でされたものではないことを理解されたい。本明細書に明確には記載されていない、上述の実施形態の組合せ、及び他の実施形態は、上の記載を確認することで、当業者には明らかとなるであろう。本開示の複数の実施形態の範囲には、上述の構造及び方法が使用される他のアプリケーションが含まれる。したがって、本開示の複数の実施形態の範囲は、添付の特許請求の範囲を、そのような特許請求の範囲が資格を与えた均等の完全な範囲とともに参照することによって判定されるべきである。
【0076】
前述の詳細な説明では、本開示を合理化する目的のために、いくつかの特徴が単一の実施形態でともにグループ化されている。この開示の方法は、本開示の開示された実施形態が、各請求項で明確に述べられたものより多くの特徴を使用しなければならないことの意図を反映するものとしては解釈されないものとする。むしろ、添付の特許請求の範囲が反映するものとして、発明的主題が、単一の開示の実施形態のすべての特徴よりも少ない特徴によるものである。このため、添付の特許請求の範囲は、本明細書によって詳細な説明に組み込まれており、各請求項は、別々の実施形態として、それ自体で自立している。
図1
図2
図3
図4
図5
図6
図7
図8
図9
【手続補正書】
【提出日】2021-11-22
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
装置であって、
メモリと、
回路構成であって、
前記装置の電源オフにするコマンドを受領するか、ホストからのコマンドを受領することなく特定の期間が経過したことに応じて前記ホストがアイドリング状態であることを検出することと、
前記装置の電源をオフにする前記コマンドを受領するか、前記ホストがアイドリング状態であることを検出することに応じて、ランタイム暗号学的ハッシュを生成することと、
前記装置の電源オフにする前記コマンドを受領するか、前記ホストがアイドリング状態であることを検出することに応じて前記ランタイム暗号学的ハッシュをゴールデン暗号学的ハッシュと比較することであって、前記ゴールデン暗号学的ハッシュは、本物であることが証明され、再現防止プロテクトがされたコマンドを使用して生成され、前記メモリの一部に貯蔵されている、前記比較することと、
を行うように構成された、前記回路構成と、を備えている、前記装置。
【請求項2】
前記回路構成が、前記メモリの前記一部に貯蔵されたデータを読み取ること、及び、前記データをハッシュ化するためにハッシュ関数を使用することにより、前記ランタイム暗号学的ハッシュを生成するように構成されている、請求項1に記載の装置。
【請求項3】
メモリ内のデータアテステーション方法であって、
前記メモリの電源オフにするコマンドを受領するか、ホストからのコマンドを受領することなく特定の期間が経過したことに応じて前記ホストがアイドリング状態であることを検出することと、
前記メモリの電源をオフにする前記コマンドを受領するか、前記ホストがアイドリング状態であることを検出することに応じて、ランタイム暗号学的ハッシュを生成することと、
前記メモリの電源オフにする前記コマンドを受領するか、前記ホストがアイドリング状態であることを検出することに応じて、前記ランタイム暗号学的ハッシュがゴールデン暗号学的ハッシュに等しいかを判定することであって、前記ゴールデン暗号学的ハッシュは、本物であることが証明され、再現防止プロテクトがされたコマンドを使用して生成され、前記メモリの一部に貯蔵されている、前記判定することと、
前記ランタイム暗号学的ハッシュと前記ゴールデン暗号学的ハッシュとが等しいことに応じて、電源オフカウンタをインクリメントすることと、を含む、前記方法。
【請求項4】
前記メモリの前記一部を、前記電源オフカウンタのインクリメントに応じて、前記メモリの電源オフにする前に、リードオンリーモードに設定することをさらに含む、請求項に記載の方法。
【請求項5】
前記メモリの電源をオンにすることをさらに含む、請求項4に記載の方法。
【請求項6】
前記メモリの電源オンにすることに応じて電源オンカウンタをインクリメントすることをさらに含む、請求項5に記載の方法。
【請求項7】
前記電源オンカウンタのインクリメントに応じて、前記電源オンカウンタが前記電源オフカウンタに等しいかを判定することをさらに含む、請求項に記載の方法。
【請求項8】
前記電源オンカウンタと前記電源オフカウンタとが等しいことに応じて、前記メモリの前記一部を読取り及び書込みモードに設定することをさらに含む、請求項に記載の方法。
【請求項9】
前記電源オンカウンタと前記電源オフカウンタとが異なっていることに応じて、エラーフラグを提供することをさらに含む、請求項8に記載の方法。
【請求項10】
メモリ内のデータアテステーション方法であって、
ホストからのコマンドを受領することなく特定の期間が経過したことに応じて前記ホストがアイドリング状態であることを検出するか、前記メモリの電源をオフにするコマンドを受領することと、
前記ホストがアイドリング状態であることを検出するか、前記メモリの電源をオフにする前記コマンドを受領することに応じて、前記ホストに結合されたメモリの一部に貯蔵されたデータからランタイム暗号学的ハッシュを生成することと、
前記ホストがアイドリング状態であること検出するか、前記メモリの電源をオフにする前記コマンドを受領することに応じて前記ランタイム暗号学的ハッシュをゴールデン暗号学的ハッシュと比較することであって、前記ゴールデン暗号学的ハッシュは、本物であることが証明され、再現防止プロテクトがされたコマンドを使用して生成され、前記メモリの前記一部に貯蔵されている、前記比較することと、を含む、前記方法。
【請求項11】
前記メモリの前記一部に貯蔵された前記データの前記ゴールデン暗号学的ハッシュが、SHA-256の暗号学的ハッシュを含む、請求項10に記載の方法。
【請求項12】
前記ランタイム暗号学的ハッシュと前記ゴールデン暗号学的ハッシュとが等しいことに応じて、認証フラグを引き起こすことをさらに含む、請求項10に記載の方法。
【請求項13】
前記メモリの電源をオンにすることをさらに含む、請求項10に記載の方法。
【請求項14】
前記メモリの電源をオンにすることに応じて、前記認証フラグを消去することをさらに含む、請求項13に記載の方法。
【請求項15】
ホストと、
メモリと、
回路構成であって、
前記ホストからのコマンドを受領することなく特定の期間が経過したことに応じて前記ホストがアイドリング状態であることを検出するか、前記メモリの電源をオフにするコマンドを受領することと、
前記ホストがアイドリング状態であること検出するか、前記メモリの電源をオフにする前記コマンドを受領することに応じて、前記メモリの一部に貯蔵されたデータを読み取ること、及び、前記データをハッシュ化するためにハッシュ関数を使用することにより、ランタイム暗号学的ハッシュを生成することと、
前記ランタイム暗号学的ハッシュの生成に応じて前記ランタイム暗号学的ハッシュをゴールデン暗号学的ハッシュと比較することであって、前記ゴールデン暗号学的ハッシュは、本物であることが証明され、再現防止プロテクトがされたコマンドを使用して生成され、前記メモリの前記一部に貯蔵されている、前記比較することと、
をするように構成された前記回路構成と、を備えたシステム。
【請求項16】
前記回路構成は、前記ゴールデン暗号学的ハッシュと前記ランタイム暗号学的ハッシュとが等しいことに応じて、認証フラグを引き起こすように構成されている、請求項15に記載のシステム。
【請求項17】
前記システムの電源をオフにする前に、前記メモリの前記一部への書込操作に応じて、前記認証フラグが除去される、請求項16に記載のシステム。
【国際調査報告】