(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-04
(45)【発行日】2022-11-14
(54)【発明の名称】セキュア更新のためのローカル台帳ブロックチェーン
(51)【国際特許分類】
H04L 9/32 20060101AFI20221107BHJP
G06F 21/64 20130101ALI20221107BHJP
G06F 21/57 20130101ALI20221107BHJP
【FI】
H04L9/32 200Z
G06F21/64
G06F21/57 320
(21)【出願番号】P 2021557308
(86)(22)【出願日】2020-03-16
(86)【国際出願番号】 US2020022913
(87)【国際公開番号】W WO2020197814
(87)【国際公開日】2020-10-01
【審査請求日】2021-10-14
(32)【優先日】2019-03-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー,インク.
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】モンデッロ アントニノ
(72)【発明者】
【氏名】トロイア アルベルト
【審査官】宮司 卓佳
(56)【参考文献】
【文献】国際公開第2019/034621(WO,A1)
【文献】特開2019-029921(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/64
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
メモリと、
前記メモリに記憶されたデータに対する更新を有効であると確認するためのローカル台帳ブロックチェーンに追加されることになるグローバルブロックを受信するように構成された回路と、を備え、
前記ローカル台帳ブロックチェーンに追加されることになる前記グローバルブロックは、
前記ローカル台帳ブロックチェーン内の最新ローカルブロックの暗号学的ハッシュと、
更新されることになる前記メモリに記憶された前記データの暗号学的ハッシュと、を含み、
前記ローカル台帳ブロックチェーン内の前記最新ローカルブロックは、前記グローバルブロックが権限を有するエンティティからであることを示す、それと関連付けられたデジタル署名を有する、
装置。
【請求項2】
前記ローカル台帳ブロックチェーンは、レジスタのペアによって定義されたセキュアアレイに記憶されている、請求項1に記載の装置。
【請求項3】
前記回路は、前記ローカル台帳ブロックチェーンの一部として、前記グローバルブロックを前記メモリに記憶するように構成されている、請求項1
~2のいずれか1項に記載の装置。
【請求項4】
前記回路は、グローバル台帳ブロックチェーンから複数のグローバルブロックを受信するように構成され、前記回路は、前記回路によって、前記グローバル台帳ブロックチェーンから受信された前記複数のグローバルブロックが前記装置に関連するかどうかを判定するように構成されている、請求項1
~3のいずれか1項に記載の装置。
【請求項5】
前記回路は、それらが前記装置に関連しないとき、前記ローカル台帳ブロックチェーンにグローバルブロックを追加することを控えるように構成されている、請求項4に記載の装置。
【請求項6】
前記回路は、それらが前記装置に関連するとき、前記ローカル台帳ブロックチェーンに、前記グローバル台帳ブロックチェーンから受信された前記複数のグローバルブロックのグローバルブロックを順次に追加するように構成されている、請求項4に記載の装置。
【請求項7】
前記グローバルブロックは、前記グローバルブロックの前のローカルブロックフィールドが前記ローカル台帳ブロックチェーンの前記最新ローカルブロック内の最新ローカルブロックフィールドに一致するとき、前記ローカル台帳ブロックチェーンに追加される、請求項1
~6のいずれか1項に記載の装置。
【請求項8】
前記回路は、前記更新が前記権限を有するエンティティからであることを前記回路が有効であると確認したことに応答して、セキュアアレイに記憶されたコードの部分
に前記更新を提供するように構成されている、請求項1~7のいずれか1項に記載の装置。
【請求項9】
前記メモリは、メモリセルのアレイを含み、
前記回路は、前記アレイを定義するように構成されたレジスタのペアを含み、
前記レジスタのペアは、
前記アレイのアドレスを定義するように構成されたレジスタと、
前記アレイのサイズを定義するように構成されたレジスタと、を含む、
請求項1~
8のいずれか1項に記載の装置。
【請求項10】
装置であって、
メモリと、
回路であって、
グローバル台帳ブロックチェーンからグローバルブロックを受信し、
前記グローバルブロックが前記装置に関連するかどうかを判定し、
前記メモリに記憶されたデータに対する更新を有効であると確認するためのローカル台帳ブロックチェーンに前記グローバルブロックを追加する、ように構成された前記回路と、を備え、
前記ローカル台帳ブロックチェーンに追加されることになる前記グローバルブロックは、
前記ローカル台帳ブロックチェーン内の最新ローカルブロックの暗号学的ハッシュと、
更新されることになる前記メモリに記憶された前記データの暗号学的ハッシュと、を含み、
前記ローカル台帳ブロックチェーンの前記最新ローカルブロックは、前記グローバルブロックが権限を有するエンティティからであることを示す、それと関連付けられたデジタル署名を有する、
前記装置。
【請求項11】
前記回路は、前記グローバルブロックのフレッシュネスフィールドに基づいて、前記デジタル署名を生成するように更に構成され、前記回路は、前記グローバルブロックの前のローカルブロックフィールドを識別することによって、前記フレッシュネスフィールドを判定し、前記ローカル台帳ブロックチェーンの前記最新ローカルブロック及び前記グローバル台帳ブロックチェーン内の前記グローバルブロックの前記前のローカルブロックフィールドは同一である、請求項10に記載の装置。
【請求項12】
前記ローカル台帳ブロックチェーンは、順番に組み立てられたホストに関連する複数のローカルブロックを含む、請求項10~11のいずれか1項に記載の装置。
【請求項13】
前記ローカル台帳ブロックチェーンは、前記メモリのユーザにアクセス可能でない前記メモリの部分に記憶されている、請求項10~
12のいずれか1項に記載の装置。
【請求項14】
システムであって、
メモリと、
前記メモリに記憶されたデータに対する更新を有効であると確認するためのローカル台帳ブロックチェーンを生成する回路と、を備え、前記ローカル台帳ブロックチェーンは、グローバル台帳ブロックチェーンからのグローバルブロックから構成され、前記グローバルブロックは、
前記ローカル台帳ブロックチェーン内の最新ローカルブロックの暗号学的ハッシュと、
更新されることになる前記メモリに記憶された前記データの暗号学的ハッシュと、を含み、
前記ローカル台帳ブロックチェーンの前記最新ローカルブロックは、前記グローバルブロックが権限を有するエンティティからであることを示す、それと関連付けられたデジタル署名を有し、
前記システムは、ホストを更に備え、前記ホストは、
前記メモリから前記ローカル台帳ブロックチェーンを受信し、
前記受信されたローカル台帳ブロックチェーンを使用して、前記メモリに記憶された前記データへの更新を有効であると確認する、ように構成されている、
前記システム。
【請求項15】
前記ホストは、車両のコンピューティングデバイスであり、前記ローカル台帳ブロックチェーンは、前記車両の車両内のソフトウェアコンポーネントまたはハードウェアコンポーネントへの更新を示す、請求項14に記載のシステム。
【請求項16】
前記回路は、前記ローカル台帳ブロックチェーンのルートを改変するようファームウェアを実行することによって、前記ローカル台帳ブロックチェーンが閾値に到達したとき、前記ローカル台帳ブロックチェーンからローカルブロックを除去する、請求項14~15のいずれか1項に記載のシステム。
【請求項17】
前記回路は、前記デジタル署名に含まれるフレッシュネスフィールドが予測されたフレッシュネスフィールドであると前記回路が判定するとき、不変レコードとして前記ローカル台帳ブロックチェーンに前記グローバルブロックを追加する、請求項14~
16のいずれか1項に記載のシステム。
【請求項18】
メモリを含むホストと、
回路であって、
前記メモリに記憶されたデータへの更新を有効であると確認するためのローカル台帳ブロックチェーンを生成し、
グローバル台帳ブロックチェーンからグローバルブロックを受信し、前記ローカル台帳ブロックチェーンは、前記グローバル台帳ブロックチェーンからのグローバルブロックから構成され、
前記グローバルブロックの第1の部分の前記グローバルブロックの各々と関連付けられたデジタル署名が前記ホストに関連することになる前記回路によって検証されるとき、前記ローカル台帳ブロックチェーンに前記グローバルブロック
の第1の部分を追加し、
前記受信されたグローバルブロックの第2の部分が前記ホストに関連しないとき、前記グローバルブロックの前記第2の部分を破棄する、ように構成された前記回路と、
を備えた、システム。
【請求項19】
前記第1の部分の前記グローバルブロックの各々は、前記デジタル署名を生成するために使用されるフレッシュネスフィールドを含み、前記第1の部分の前記グローバルブロックの各々についての前記フレッシュネスフィールドは、前記ローカル台帳ブロックチェーンの最新ローカルブロックに対応する、請求項18に記載のシステム。
【請求項20】
前記第1の部分の前記グローバルブロックは、順番に前記ローカル台帳ブロックチェーンに追加され、前記ホストと関連付けられた前記メモリに記憶されている、請求項18~19のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、半導体メモリ及び方法に関し、特に、ローカル台帳ブロックチェーンにおいてローカルブロックとしてメモリを使用することに関する。
【背景技術】
【0002】
メモリデバイスは典型的には、コンピュータまたは他の電子デバイスにおいて内部半導体、集積回路、及び/または外部着脱可能デバイスとして設けられる。揮発性メモリ及び不揮発性メモリを含む、多くの異なるタイプのメモリが存在する。揮発性メモリは、そのデータを維持するための電力を必要とすることがあり、とりわけ、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、及び同期ダイナミックランダムアクセスメモリ(SDRAM)を含むことができる。不揮発性メモリは、電力供給されていないときに記憶されたデータを保持することによって永続的データを提供することができ、とりわけ、相変化ランダムアクセスメモリ(PCRAM)、抵抗性ランダムアクセスメモリ(RRAM)、及び磁気ランダムアクセスメモリ(MRAM)など、NANDフラッシュメモリ、NORフラッシュメモリ、リードオンリメモリ(ROM)、及び抵抗可変メモリを含むことができる。
【0003】
メモリデバイスは、ソリッドステートドライブ(SSD)、組み込みマルチメディアカード(e.MMC)、及び/またはユニバーサルフラッシュストレージ(UFS)デバイスを形成するよう共に組み合わされることがある。SSD、e.MMC、及び/またはUFSデバイスは、様々な他のタイプの不揮発性メモリ及び揮発性メモリの中で、不揮発性メモリ(例えば、NANDフラッシュメモリ及び/またはNORフラッシュメモリ)を含むことができ、及び/または揮発性メモリ(例えば、DRAM及び/またはSDRAM)を含むことができる。不揮発性メモリは、とりわけ、パーソナルコンピュータ、ポータブルメモリスティック、デジタルカメラ、携帯電話、MP3プレイヤなどのポータブルミュージックプレイヤ、ムービープレイヤなどの広範囲の電子用途において使用され得る。
【0004】
フラッシュメモリデバイスは、例えば、フローティングゲートなどの電荷蓄積構造にデータを記憶するメモリセルを含むことができる。フラッシュメモリデバイスは典型的には、高メモリ密度、高信頼性、及び低電力消費を可能にする1トランジスタメモリセルを使用する。抵抗可変メモリデバイスは、記憶素子(例えば、可変抵抗を有する抵抗性メモリ素子)の抵抗状態に基づいてデータを記憶することができる抵抗性メモリセルを含むことができる。
【0005】
メモリセルは、アレイの中に配列されることがあり、アレイアーキテクチャ内のメモリセルは、ターゲット(例えば、所望の)状態にプログラムされることができる。例えば、フラッシュメモリセルの電荷蓄積構造(例えば、フローティングゲート)に電荷をかけて、または電荷蓄積構造から電荷を除去して、セルを特定のデータ状態にプログラムすることができる。セルの電荷蓄積構造上の蓄積された電荷は、セルの閾値電圧(Vt)を示すことができる。フラッシュメモリセルの状態は、セルの電荷蓄積構造上の蓄積された電荷(例えば、Vt)を検知することによって判定されることができる。
【0006】
多くの脅威がメモリデバイスのメモリセルに記憶されたデータに影響を及ぼすことがある。そのような脅威は、例えば、メモリデバイスにおいて発生する障害、及び/またはハッカーもしくは他の悪意のあるユーザからの脅威を含むことがある。そのような脅威は、重大な金銭的損失を生じさせることがあり、及び/または重大な安全及び/またはセキュリティ問題を提示することがある。
【図面の簡単な説明】
【0007】
【
図1】本開示の実施形態に従った、いくつかの物理ブロックを有するメモリアレイの部分の図を示す。
【
図2A】本開示の実施形態に従った、メモリデバイスの形式にあるホスト及び装置を含むコンピューティングシステムのブロック図である。
【
図2B】本開示の実施形態に従った、ピアツーピア及びインターネットプロトコル(IP)など、有線方式及び/または無線プロトコルを使用した無線方式において接続されたパブリックネットワーク及び/またはプライベートネットワークにおいて多くのコンピューティングノードを含むことができるコンピューティングシステムのネットワークのブロック図である。
【
図3】本開示の実施形態に従った、メモリに記憶されたセキュア更新のための、回路上で動作することができ、メモリに記憶することができるような、グローバル台帳ブロックチェーンとローカル台帳ブロックチェーンとの間の交換の実施例を示す。
【
図4】本開示の実施形態に従った、メモリに記憶されたセキュア更新のためのローカル台帳ブロックチェーンの実施例を示す。
【
図5A】本開示の実施形態に従った、セキュアメモリアレイを定義するために使用されるレジスタのペアの実施例を示す。
【
図5B】本開示の実施形態に従って定義されたセキュアメモリアレイを含むメモリアレイの部分の図を示す。
【
図6】本開示の実施形態に従った、ホスト及びメモリデバイスを含む例示的なシステムのブロック図である。
【
図7】本開示の実施形態に従った、いくつかのパラメータを判定する例示的な処理のブロック図である。
【
図8】本開示の実施形態に従った、いくつかのパラメータを判定する例示的な処理のブロック図である。
【
図9】本開示の実施形態に従った、証明書を検証する例示的な処理のブロック図である。
【
図10】本開示の実施形態に従った、署名を検証する例示的な処理のブロック図である。
【
図11】本開示の実施形態に従った、例示的なメモリデバイスのブロック図である。
【発明を実施するための形態】
【0008】
本開示は、ローカル台帳ブロックチェーンにおいてローカルブロックとしてメモリを使用する装置、方法、及びシステムを含む。実施形態は、メモリ、及びグローバル台帳ブロックチェーンから受信されたブロックを含むローカル台帳ブロックチェーンを生成するように構成された回路を含む。グローバル台帳ブロックチェーンは、更新(例えば、トランザクション、ソフトウェア更新、ハードウェア更新、または他にソフトウェア、ハードウェア、コード、もしくはコードの一部を修正するデータなど)に関するデータを含むブロックを含む。グローバル台帳ブロックチェーンの各々のブロックは、個々のホストまたは複数のホストと関連付けられてもよい。本明細書で説明されるように、メモリ及び回路は、ローカル台帳ブロックチェーンを生成するよう、グローバル台帳ブロックチェーンから複数のグローバルブロックを受信するように構成されてもよく、ローカル台帳ブロックチェーンは、回路と関連付けられたホスト及び/またはメモリに関連するブロックのみを含む。メモリ及び回路は、受信されたグローバルブロックのどれがホスト及び/またはメモリと関連付けられるかを判定することができ、関連しないと判定されたグローバルブロックを破棄することができる。ローカル台帳ブロックチェーン内のブロックは、ローカルブロックのペイロード内のデータを介して更新されてもよく、メモリに記憶されたデータを有効であると確認するために使用されることができ、ローカルブロックは、ローカル台帳ブロックチェーン内の前のローカルブロックの暗号学的ハッシュ及び更新されることになるメモリに記憶されたデータの暗号学的ハッシュを含む。グローバルブロックは、グローバルブロックがホストに関連することを示す、それと関連付けられたデジタル署名を有し、ローカル台帳ブロックチェーンに追加される。いくつかの実施形態では、メモリ内のメモリの特定の物理ブロック及び/または特殊な物理ブロックは、
図1に説明されるように、ローカル台帳ブロックチェーンにおいてそのようなローカルブロックとして使用されてもよい。
【0009】
多くの脅威がメモリ(例えば、メモリデバイス)に記憶されたデータに影響を及ぼすことがある。例えば、メモリのアレイ及び/または回路において障害が発生する場合があり、それは、データにおいて発生する誤りを結果としてもたらすことがある。追加の実施例として、ハッカーまたは他の悪意のあるユーザは、悪意のある目的でデータへの権限を有しない変更を行う活動を実行することを試みる場合がある。ハッカーによって実行されるそのような活動は、ホストデバイスのソフトウェアまたはハードウェアへの不正更新を提供することを含む場合がある。例えば、悪意のあるユーザは、他のタイプのハッキング活動の中で、メモリを使用して実行される商用トランザクションに悪影響を及ぼすために(例えば、そのフローを転換する)(例えば、支払いを検証するコードをスキップすることによって、提供されたサービスに対して支払いが行われたことを偽って示すために)、メモリ上で実行されるソフトウェアライセンスチェックに悪影響を及ぼすために(例えば、そのフローを転換する)(例えば、ライセンスを検証するコードをスキップすることによって、メモリのソフトウェアが適切にライセンスされているかを偽って示すために)、またはメモリを使用して実行される自動車制御に悪影響を及ぼすために(例えば、そのフローを転換する)(例えば、部品の真正のチェック、環境的チェック、もしくは誤動作警告のチェックをスキップするために)、更新を介してメモリに記憶されたデータを改変することを試みる場合がある。そのようなハッキング活動(例えば、攻撃)は、重大な金銭的損失を生じさせることがあり、及び/または重大な安全及び/またはセキュリティ問題を提示することがある。
【0010】
したがって、セキュアメモリシステム及びメモリシステムへのセキュア更新を保証するために、メモリに記憶されたデータへの更新が真正であること(例えば、正確である、本物の/権限を有するエンティティからである)と、メモリに記憶されたデータへの更新が改変されていないこと、及び/またはハッキング活動もしくは他の権限を有しない変更及び/または意図しない変更によって不正に提供されていないこととを検証する(例えば、認証及び/または証明する)ことが重要である。本開示の実施形態は、メモリに記憶されたデータに適用されることになる更新を効果的に有効であると確認するために、ローカル台帳ブロックチェーンデータ構造においてローカルブロックとしてメモリを使用でき(例えば、ローカル台帳ブロックチェーンに対して記憶コンポーネントとしてメモリを使用する)、それによって、セキュアメモリシステムを保証する。例えば、本開示の実施形態は、ローカル台帳ブロックチェーンにおいてローカルブロックとしてメモリを使用するよう、メモリの既存の回路(例えば、メモリデバイスの既存のファームウェア)を修正し、利用し、及び/または異なって動作させることができ、その結果、メモリに追加の(例えば、新たな)コンポーネントまたは回路を追加する必要なしに、ローカル台帳ブロックチェーンにおいてローカルブロックとしてメモリを使用することができる。
【0011】
本明細書で使用される「a」、「an」、または「いくつかの(a number of)」は、1つ以上のものを指すことができ、「複数の(a plurality of)」は、2つ以上のものを指すことができる。例えば、1つのメモリデバイスは、1つ以上のメモリデバイスを指すことができ、複数のメモリデバイスは、2つ以上のメモリデバイスを指すことができる。更に、特に図面の参照番号に関して本明細書で使用される指示子「R」、「B」、「S」、及び「N」は、指示子により指定されたいくつかの特定の特徴が、本開示のいくつかの実施形態に含まれることができることを示す。番号は、指定の間で同一であってもよく、または異なってもよい。
【0012】
本明細書の図は、最初の数字(複数可)が図面の図番号に対応し、残りの数字が図面の要素またはコンポーネントを識別する番号付け規則に従う。異なる図面間の類似の要素または構成要素は、類似の数字を使用することで識別されてもよい。例えば、101は
図1の要素「01」を指してもよく、類似の要素が
図2では201と称されてもよい。
【0013】
図1は、本開示の実施形態に従った、いくつかの物理ブロックを有するメモリアレイ101の部分の図を示す。メモリアレイ101は、例えば、NANDフラッシュメモリアレイ及び/またはNORフラッシュメモリアレイなどのフラッシュメモリアレイであり得る。1つの例示的な実施形態では、メモリ101は、NORフラッシュメモリアレイ101である。追加の実施例として、メモリアレイ101は、とりわけ、PCRAM、RRAM、MMRAM、またはスピントルクトランスファ(STT)アレイなどの抵抗可変メモリアレイであり得る。しかしながら、本開示の実施形態は、特定のタイプのメモリアレイに限定されない。更に、メモリアレイ101は、本明細書で更に説明されるように、セキュアメモリアレイであり得る。更に、
図1には示されないが、メモリアレイ101は、その動作と関連付けられた様々な周辺回路と共に特定の半導体ダイ上に位置し得る。
【0014】
図1に示されるように、メモリアレイ101は、メモリセルのいくつかの物理ブロック107-0(BLOCK 0)、107-1(BLOCK 1)、…、107-B(BLOCK B)を有する。メモリセルは、シングルレベルセル、及び/または、例えば、2レベルセル、トリプルレベルセル(TLC)、またはクワドルプルレベルセル(QLC)などのマルチレベルセルであり得る。実施例として、メモリアレイ101内の物理ブロックの数は、128個のブロック、512個のブロック、または1024個のブロックであってもよいが、実施形態は、メモリアレイ101内の特定の2のべき乗の物理ブロックまたはいずれかの特定の数の物理ブロックに限定されない。
【0015】
メモリセルのいくつかの物理ブロック(例えば、ブロック107-0、107-1、…、107-B)は、メモリセルの面に含まれ得、メモリセルのいくつかの面は、ダイ上に含まれ得る。例えば、
図1に示される実施例では、各々の物理ブロック107-0、107-1、…、107-Bは、単一のダイの一部であり得る。すなわち、
図1に示されるメモリアレイ101の部分は、メモリセルのダイであってもよい。
【0016】
図1に示されるように、各々の物理ブロック107-0、107-1、…、107-Bは、アクセスライン(例えば、ワードライン)に結合されたメモリセルのいくつかの物理行(例えば、103-0、103-1、…、103-R)を含む。各々の物理ブロック内の行(例えば、ワードライン)の数は、32であり得るが、実施形態は、物理ブロックごとに特定の数の行103-0、103-1、…、103-Rに限定されない。更に、
図1には示されないが、メモリセルは、検知ライン(例えば、データライン及び/またはデジットライン)の列に結合され得る。
【0017】
当業者は、各々の行103-0、103-1、…、103-Rが、メモリセルのいくつかのページ(例えば、物理ページ)を含み得ることを認識するであろう。物理ページは、プログラム及び/または検知する単位を指す(例えば、機能的グループとして共にプログラム及び/または検知されるいくつかのメモリセル)。
図1に示される実施形態では、各々の行103-0、103-1、…、103-Rは、メモリセルの1つの物理ページを含む。しかしながら、本開示の実施形態は、それに限定されない。例えば、実施形態では、各々の行は、メモリセルの複数の物理ページ(例えば、偶数に番号付けられたデータラインに結合されたメモリセルの1つ以上の偶数ページ、及び奇数に番号付けられたデータラインに結合されたメモリセルの1つ以上の奇数ページ)を含み得る。加えて、マルチレベルセルを含む実施形態について、メモリセルの物理ページは、データの複数のページ(例えば、論理ページ)を記憶し得る(例えば、物理ページ内で各々のセルを有するデータの上位ページ及びデータの下位ページは、データの上位ページに向かって1つ以上のビット及びデータの下位ページに向かって1つ以上のビットを記憶する)。
【0018】
図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)データ、及びメタデータなどのオーバヘッドデータを含み得る。
【0019】
論理ブロックアドレス指定は、データの論理セクタを識別するための、ホストによって使用することができるスキームである。例えば、各々の論理セクタは、一意な論理ブロックアドレス(LBA)に対応し得る。加えて、LBAも、メモリ内のデータのその論理セクタの物理位置を示し得る、物理ブロックアドレス(PBA)などの物理アドレスに対応してもよい(例えば、動的にマッピングする)。データの論理セクタは、データのいくつかのバイト(例えば、256バイト、512バイト、1024バイト、または4096バイト)であり得る。しかしながら、実施形態は、これらの実施例に限定されない。
【0020】
物理ブロック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未満のバイトまたは512を超えるバイトを含むことができる単一の論理セクタに対応するデータを記憶することができる。
【0021】
図2Aは、本開示の実施形態に従った、ホスト202及びメモリデバイス206の形式にある装置を含むコンピューティングシステム200のブロック図である。本明細書で使用されるように、「装置」は、例えば回路もしくは回路素子、ダイもしくは複数のダイ、モジュールもしくは複数のモジュール、デバイスもしくは複数のデバイス、またはシステムもしくは複数のシステムなどの様々な構造または構造の組み合わせのうちのいずれかを指すことができるが、これらに限定されない。更に、実施形態では、コンピューティングシステム200は、メモリデバイス206に類似するいくつかのメモリデバイスを含み得る。1つの例示的な実施形態では、
図2Bにおいて更に示されるように、コンピューティングシステム200は、分散されたピアツーピアネットワークなど、ノードのより大規模なネットワーク内のノードを表してもよい。
【0022】
図2Aに示される実施形態では、メモリデバイス206は、メモリアレイ201を有するメモリ216を含み得る。
図2に示されるように、メモリ216は、ブロックチェーン技術システムにおいて使用される、「ブロックチェーンデータ」220をメモリアレイ201に記憶することができる。ブロックチェーン技術システムにおけるブロックチェーンデータの「ブロック」は、データ(例えば、ペイロード)、ヘッダ、暗号化、履歴、タイムスタンプなどを含み得る。
図3及び4と関連して本明細書で更に説明されるように、ブロックチェーンデータ220は、「ローカルブロックチェーン」データ及び/または「グローバルブロックチェーン」データであってもよく、記憶されたグローバルブロックチェーン台帳(例えば、「グローバル台帳ブロックチェーン」データ)及び/または記憶されたローカルブロックチェーン台帳(例えば、「ローカル台帳ブロックチェーン」データ)を含んでもよい。
【0023】
メモリアレイ201は、
図1と関連して前に説明されたメモリアレイ101と同様であり得る。しかしながら、本明細書で使用されるように、ブロックチェーンアーキテクチャ内のブロックチェーンデータのブロックは、
図1と関連して前に説明されたメモリのブロックのサイズに等しい必要はない。故に、用語「グローバルブロック」及び/または「ローカルブロック」は、ブロックチェーンデータとしてメモリに記憶されるとき、メモリのブロックサイズ単位に等しい必要はない。グローバルブロック及び/またはローカルブロックは、特定のメモリアーキテクチャまたは設計と関連付けられたブロックサイズ単位、例えば、デノミネーションよりも小さくてもよく、それと同等であってもよく、及び/またはそれよりも大きくてもよい。更に、メモリアレイ201は、
図5A及び5Bと関連して本明細書で更に説明されるように、セキュアアレイであり得る。1つのメモリアレイ201が
図2Aに示されるが、メモリ216は、メモリアレイ201と同等のいずれかの数のメモリアレイを含み得る。
【0024】
図2Aに示されるように、ホスト202は、インタフェース204を介してメモリデバイス206に結合され得る。ホスト202及びメモリデバイス206は、インタフェース204上で通信し得る(例えば、コマンド及び/またはブロックチェーンデータ220などのデータを送信する)。ホスト202及び/またはメモリデバイス206は、他のホストシステムの中で、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル記録及び再生デバイス、携帯電話、PDA、メモリカードリーダ、インタフェースハブ、あるいは、例えば、自動車(例えば、車両及び/または輸送インフラストラクチャ)モノのインターネット(IoT)対応デバイスまたは医療(例えば、移植可能及び/または健康監視)IoT対応デバイスなどのIoT対応デバイスであり得、またはそれらの一部であり得、メモリアクセスデバイス(例えば、プロセッサ)を含み得る。当業者は、「プロセッサ」が、並列プロセシングシステムなどの1つ以上のプロセッサ、いくつかのコプロセッサなどを意図し得ることを認識するであろう。
【0025】
インタフェース204は、標準化された物理インタフェースの形式であり得る。例えば、コンピューティングシステム200に情報を記憶するためにメモリデバイス206が使用されるとき、インタフェース204は、他の物理コネクタ及び/またはインタフェースの中で、シリアルアドバンスドテクノロジーアタッチメント(SATA)物理インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)物理インタフェース、ユニバーサルシリアルバス(USB)物理インタフェース、または小型コンピュータシステムインタフェース(SCSI)であり得る。インタフェース204は、メモリデバイス206とインタフェース204に対して互換性を有するレセプタを有するホスト(例えば、ホスト202)との間で制御、アドレス、情報(例えば、データ)、及び他の信号を渡すためのインタフェースを提供できる。
【0026】
メモリデバイス206は、ホスト202及びメモリ216(例えば、メモリアレイ201)と通信するためのコントローラ208を含む。例えば、コントローラ208は、他の動作の中で、データ(例えば、「ローカル」ブロックチェーンデータ及び/または「グローバル」ブロックチェーンデータ)を検知し(例えば、読み取り)、プログラムし(例えば、書き込み)、移動し、及び/または消去する動作を含む、メモリアレイ201に対する動作を実行するコマンドを送信し得る。再度、ブロックチェーン技術及びシステムにおけるブロックチェーンデータについての用語「グローバルブロック」及び/または「ローカルブロック」の意図した意味は、
図3及び4に関連して定義される。
【0027】
コントローラ208は、メモリ216と同一の物理デバイス(例えば、同一のダイ)上に含まれ得る。代わりに、コントローラ208は、メモリ216を含む物理デバイスに通信可能に結合された別個の物理デバイス上に含まれ得る。実施形態では、コントローラ208のコンポーネントは、分散コントローラとして複数の物理デバイス(例えば、メモリと同一のダイ上のいくつかのコンポーネント、及び異なるダイ、モジュール、またはボード上のいくつかのコンポーネント)にわたって分散できる。
【0028】
ホスト202は、メモリデバイス206と通信するためのホストコントローラ(
図2には示されない)を含み得る。ホストコントローラは、インタフェース204を介してメモリデバイス206にコマンドを送信できる。ホストコントローラは、他の動作の中で、データ(例えば、「ローカル」ブロックチェーンデータ及び/または「グローバル」ブロックチェーンデータ)を読み込み、書き込み、及び/または消去するよう、メモリデバイス206に対してメモリデバイス206及び/またはコントローラ208と通信し得る。更に、実施形態では、ホスト202は、本明細書で前に説明されたような、IoT通信能力を有するIoT対応デバイスであり得る。
【0029】
メモリデバイス206上のコントローラ208及び/またはホスト202上のホストコントローラは、例えば、DICE-RIoTアーキテクチャ及び/またはプロトコルに従って、例えば、
図3及び4に関連して本明細書で説明されるブロックチェーン動作を実行するように構成された制御回路及び/またはロジック(例えば、ハードウェア及びファームウェア)を含み得る。実施形態では、メモリデバイス206上のコントローラ208及び/またはホスト202上のホストコントローラは、物理インタフェースを含むプリント回路基板に結合された特定用途向け集積回路(ASIC)であり得る。また、メモリデバイス206及び/またはホスト202は、揮発性メモリ及び/または不揮発性メモリ、ならびにいくつかのレジスタのバッファを含み得る。
【0030】
例えば、
図2Aに示されるように、メモリデバイスは、回路210を含み得る。
図2Aに示される実施形態では、回路210は、コントローラ208に含まれる。しかしながら、本開示の実施形態は、そのように限定されない。例えば、実施形態では、回路210は、メモリ216(例えば、それと同一のダイ上に)に(例えば、コントローラ208の代わりに)含まれてもよい。回路210は、例えば、DICE-RIoTアーキテクチャ及び/またはプロトコルに従って、
図6~11において説明される暗号化技術を使用して、例えば、
図3及び4に関連して本明細書で説明されるブロックチェーン動作を実行するためのハードウェア、ファームウェアを含むことができ、及び/またはそのブロックチェーン動作を実行するよう命令を処理リソースに通信することができる。
【0031】
例えば、回路210は、メモリ216内のアレイ201内のローカル台帳ブロックチェーン(
図3及び4において定義される)にブロックチェーンデータ、例えば、220のローカルブロックとして追加されることになる、ブロックチェーンデータのグローバルブロック(また、
図3及び4において定義される)を受信するように構成され得る。例えば、ブロックチェーンデータ、例えば、220のローカルブロックは、ブロックチェーンデータの有効であると確認された受信されたグローバルブロックであってもよく、メモリ216(例えば、メモリアレイ201)に記憶されたデータへの更新を有効であると確認する(例えば、認証及び/または証明する)ために生成されてもよく、及び/またはローカル台帳ブロックチェーン(
図3及び4に示される)に追加されてもよい。ローカル台帳ブロックチェーンにローカルブロックとして追加されることになるグローバルブロックは、複数のヘッダを含み得る。実施形態では、アレイ201のサブセット、またはアレイ201の全体は、セキュアアレイ(例えば、制御の下に維持されることになるメモリ216の領域)であり得る。
図2Aは、レジスタ214-1及び214-2のペアを示すが、実施形態はそれに限定されず、1つ以上のレジスタが使用されてもよい。例えば、メモリアレイ201に記憶されたデータは、センシティブアプリケーションに対して実行されることになるホストファームウェア及び/またはコードなどのセンシティブ(例えば、非ユーザ)データを含み得る。そのような実施形態では、不揮発性レジスタのペアは、セキュアアレイを定義するために使用され得る。例えば、
図2Aに示される実施形態では、回路210は、セキュアアレイを定義するために使用することができるレジスタ214-1及び214-2を含む。例えば、レジスタ214-1は、セキュアアレイのアドレス(例えば、データの開始LBA)を定義でき、レジスタ214-2は、セキュアアレイのサイズ(例えば、データの最終LBA)を定義できる。そのようなレジスタの実施例、及びセキュアアレイを定義する際のそれらの使用は、
図5A~5Bに関連して本明細書で更に説明される。
【0032】
セキュアアレイが定義されると、認証され且つアンチリプレイ保護されたコマンド(例えば、メモリデバイス206のみがゴールデンハッシュを知るように、ならびにメモリデバイス206のみがそれを生成及び更新することが可能であるように)を使用して、セキュアアレイと関連付けられた暗号学的ハッシュを生成する(例えば、計算する)ために回路210が使用されることができ、暗号学的ハッシュは、本明細書でゴールデンハッシュと称されてもよい。ゴールデンハッシュは、メモリアレイ201のアクセス可能でない部分(例えば、ブロックチェーンデータ220及びローカル台帳ブロックチェーンが記憶された同一のアクセス可能でない部分)に記憶されてもよく、セキュアアレイのデータを有効であると確認する処理の間に使用され得る。
【0033】
1つの例示的な実施形態では、メモリデバイス206(例えば、回路210を使用する)は、メモリアレイ201に記憶されたデータを更新する前に、更新(例えば、ブロックチェーンデータのペイロード)を有効であると確認するために、インタフェース204を介してホスト202に、ブロックチェーンデータ220と関連付けられたデジタル署名と共に、ブロックチェーンデータ220(グローバル台帳ブロックチェーンからの受信されたグローバルブロックであってもよい)を送信することができる。例えば、回路210は、メモリデバイス206の電力供給(例えば、パワーオン及び/またはパワーアップ)に応答して、受信され且つメモリアレイ201に記憶されたブロックチェーンデータ220を検知(例えば、読み込み)することができ、アレイ201に記憶されたデータへの更新を有効であると確認するために、ホスト202に検知されたブロックチェーンデータ220を送信することができる。したがって、メモリアレイ201に記憶されたデータへの更新の有効であるとの確認は、メモリデバイス206を電力供給すると開始され得る(例えば、自動で)。
【0034】
追加の実施例として、回路210は、ホスト202などの外部エンティティ上のホスト202に、ブロックチェーンデータ220と関連付けられたデジタル署名と共に、ブロックチェーンデータ220を送信することができ、メモリアレイ201に記憶されたデータの更新の有効であるとの確認を開始する。例えば、ホスト202は、ブロックチェーンデータ220を検知するコマンドをメモリデバイス206(例えば、回路210)に送信することができ、回路210は、ブロックチェーンデータ220を検知するコマンドに対して動作することができ、コマンドの受信に応答して、アレイ201に記憶されたデータを有効であると確認するために、ホスト202に検知されたブロックチェーンデータ220を送信することができる。
【0035】
ブロックチェーンデータ220を受信すると、ホスト202は、受信されたブロック(例えば、受信されたグローバルブロックのペイロード)を使用して、メモリアレイ201に記憶されたデータを有効であると確認する(例えば、有効であるかどうかを判定する)ことができる。例えば、
図3及び4に関連して更に説明されるように、ホスト202は、データを有効であると確認するために、ブロックチェーン内の前のブロックの暗号学的ハッシュ及びメモリアレイ201に記憶されたデータの暗号学的ハッシュを使用することができる。更に、ホスト202は、ローカルブロックがローカル台帳ブロックチェーンに含まれる(例えば、含まれることが適格である)ことを判定するよう、ブロックチェーンデータ220と関連付けられたデジタル署名を有効であると確認することができる。本明細書で使用されるように、メモリアレイ201に記憶されたデータへの更新を有効であると確認することは、更新が真正であり(例えば、当初からプログラムされたものと同一である)、及びハッカーまたは権限を有しない変更を含むその他によって頻繁にもたらされる、ハッキング活動によって改変されていないことを認証及び/または証明することを含むことができ、及び/またはそれらのことを指すことができる。
【0036】
メモリアレイ201がセキュアアレイである実施形態では、ゴールデンハッシュも、
図3及び4に関連して更に説明されるように、メモリアレイ201に記憶されたデータへの更新を有効であると確認するために使用されてもよい。例えば、ランタイム暗号学的ハッシュが生成される(例えば、計算される)ことができ、ゴールデンハッシュと比較され得る。ランタイムハッシュ及びゴールデンハッシュが一致することを比較が示す場合、セキュアアレイが改変されておらず、したがって、そこに記憶されたデータが有効であると判定され得る。しかしながら、ランタイムハッシュ及びゴールデンハッシュが一致しないことを比較が示す場合、これは、セキュアアレイに記憶されたデータが変更されている(例えば、ハッカーまたはメモリにおける障害に起因して)ことを示してもよく、ホスト202にこれが報告され得る。
【0037】
1つの例示的な実施形態では、メモリアレイ201に記憶されたデータの有効であるとの確認に加え、回路210は、ブロックチェーンデータ220が権限を有するエンティティ(例えば、既知のエンティティ)からであるかどうかを判定し、受信されたブロックチェーンデータ220上で示されたハッシュが、ローカル台帳ブロックチェーン上のブロックチェーンデータの直近のローカルブロックに一致することを判定するよう、ブロックチェーンデータ220(例えば、グローバル台帳ブロックチェーンからの受信されたグローバルブロック)を有効であると確認することができる。ブロックチェーンデータ220の有効であるとの確認に応答して、回路210は、セキュアアレイに記憶されたコード(または、コードの一部)を補足、修正、及び/または置き換えるために、ブロックチェーンデータ220に含まれる更新を提供するように構成され得る。
【0038】
図3及び4と関連して更に説明されるように、メモリアレイ201に記憶されたローカル台帳ブロックチェーン内のローカルブロックとしての役割を果たすブロックチェーンデータ220を有効であると確認した後、回路210は、前のブロックチェーンデータ220が生成/受信された方式と同様の方式において、メモリアレイ201に記憶されたデータを更新するために、ローカル台帳ブロックチェーンに追加されることになる追加の(例えば、次の)ローカルブロックを生成することができる(例えば、グローバル台帳ブロックチェーンから次のグローバルブロックを受信する)。例えば、ブロックチェーンデータ220のこの追加のローカルブロックは、ローカル台帳ブロックチェーン内の前のブロックの暗号学的ハッシュ、及びメモリアレイ201に記憶されたデータへの新たな更新の暗号学的ハッシュを含み得る。更に、この追加のローカルブロックは、このブロックが生成されたとき(例えば、追加のグローバルブロックとして受信された)を示すタイムスタンプを有するヘッダを含み得、この追加のローカルブロックが権限を有するエンティティからであり、ローカル台帳ブロックチェーンに含まれ得ることを示す、それと関連付けられたデジタル署名を有し得る。そのような追加のローカルブロックを示す実施例が、本明細書で更に説明される(例えば、
図3と関連して)。更に、メモリアレイ201がセキュアアレイである実施形態では、追加の(例えば、新たな)ゴールデンハッシュが生成され得る。
【0039】
ブロックチェーンデータの追加のローカルブロック、ならびに追加のローカルブロックに関連するデジタル署名、及び追加のゴールデンハッシュは、ローカル台帳ブロックチェーンの一部としてメモリアレイ201に記憶され得る。例えば、追加のローカルブロックは、メモリアレイ201内のブロックチェーンデータ220(例えば、前のブロックチェーンデータ220)を置き換えることができる。追加のブロックチェーンデータ、デジタル署名、及び追加のゴールデンハッシュは次いで、ブロックチェーンデータ220について本明細書で前に説明された方式と同様の方式において、メモリアレイ201に記憶されたデータへの更新(例えば、ペイロード)を有効であると確認するために、ホスト202によって使用され得る。ローカル台帳ブロックチェーン内の追加のローカルブロックは、メモリデバイス206の寿命の全体を通じてそのような方式において、それらがグローバルブロックとして受信され、ホスト202によって有効であると確認され、メモリアレイ201に記憶されたデータへの更新を有効であると確認するためにホスト202によって使用されるとき、回路210によって生成され続けることができる。
【0040】
図2Aに示された実施形態は、本開示の実施形態を曖昧にしないように示されていない追加の回路、ロジック、及び/またはコンポーネントを含み得る。例えば、メモリデバイス206は、I/O回路を通じてI/Oコネクタにわたって提供されるアドレス信号をラッチするアドレス回路を含み得る。アドレス信号は、メモリアレイ201にアクセスするよう、行デコーダ及び列デコーダによって受信及び復号され得る。更に、メモリデバイス206は、メモリアレイ201とは別に、及び/またはメモリアレイ201に加えて、例えば、DRAMまたはSDRAMなどのメインメモリを含み得る。メモリデバイス206の追加の回路、ロジック、及び/またはコンポーネントを更に示す実施例が、本明細書で更に説明される(例えば、
図11と関連して)。
【0041】
図2Bは、本開示の実施形態に従った、無線プロトコル及びインターネットプロトコル(IP)を使用した有線方式及び/または無線方式において接続された、パブリックネットワーク及び/またはピアツーピアネットワークなどのプライベートな分散ネットワークにおいて多くのコンピューティングノードを含むことができるコンピューティングシステムのネットワークのブロック図である。
図2Bの実施例では、ピアツーピアネットワークなどのネットワークにおいて接続された複数のノード、200-1、200-2、200-3、…、200-Nが示される。ネットワークは、「ブロックチェーン」技術などの分散台帳技術(DLT)をサポートすることができる。分散台帳は、いくつかのノードまたはコンピューティングデバイスにわたって広がるデータベースである。
【0042】
「ブロックチェーン」は、継続して増大する、レコードの暗号化されたリストである。ブロックチェーンは、複数のノード、200-1、200-2、200-3、…、200-Nがピアツーピアネットワーク方式においてレコードの分散リストを共有及び記憶することができるDLTの1つの形式である。本明細書で説明されるように、ブロックチェーン内の「ブロック」は、情報、例えば、データ、ヘッダ、トランザクション、暗号化などの集合である。ブロックは、それが有効であると確認された場合、台帳内のレコードの増大するリストに追加されてもよい。ブロックは、時系列にブロックチェーン台帳に追加される。
【0043】
故に、
図2Bの実施例では、所与のノード、200-1(H1)、200-2(H2)、200-3(H3)、…、200-Nは、台帳において最新リストまたはレコードの複製を維持してもよい。複数のノード、200-1、200-2、200-3、…、200-Nは各々、異なるホスト、例えば、処理リソースを有するコンピューティングデバイスを表してもよい。例示を容易にするために、ホストまたは複数のノード、200-1、200-2、200-3、…、200-Nは、自律的及び/または非自律的輸送車両、車、バス、緊急車両などに対するブロックチェーンに関連して考慮されてもよい。しかしながら、実施形態はこの実施例に限定されない。
【0044】
この実施例では、車両製造業者のサーバは、
図2Bに示される、ノード、200-1、200-2、200-3、…、200-Nのうちの、ネットワーク上の1つのノード、例えば、200-1を表してもよい。ディーラーシップリペアショップなどの公認リペア設備は、別のノード、例えば、200-2を表してもよい。ノード200-3は、インターネット及び/または他の無線接続を介してピアツーピアネットワークに接続された別のホスト、例えば、別のコンピューティングデバイスであってもよい。
【0045】
ノード200-1と関連付けられた製造業者は、ノード200-1と関連付けられた特定の主題に関連するデータの時系列にリンクされたブロックを有する「第1のブロックチェーン台帳」を維持してもよく、例えば、その製造業者によって生産された全ての車両に対する第1のブロックチェーン台帳を維持してもよい。例示を容易にするために、及び限定としてではなく、例えば、所与の車両製造業者によって生産された全ての車両に対する特定のノードと関連付けられた特定の主題に関連するデータの時系列にリンクされたブロックを有する参照された「第1のブロックチェーン台帳」は、本明細書で「グローバルブロックチェーン台帳」(または、「グローバル台帳ブロックチェーン」)とも称されてもよい。製造業者は、有線方式及び/または無線方式において、ネットワークにノードとして接続された、ピアツーピアネットワーク内の他のノード200-2、200-3などに、及びその車両に、第1のブロックチェーン台帳(「グローバル台帳ブロックチェーン」)を分散することができる。異なるノード、200-1、200-2、200-3、…、200-Nと通信する際に、様々な無線通信技術が利用され得る。例えば、Bluetooth、Zigbee、及び/またはLTEデバイスツーデバイス通信技術、及び/または中間デバイスを利用した他の無線通信(例えば、アクセスポイント(AP)を利用したWiFi)を含む、異なる世代のブロードバンドモバイル電気通信技術(例えば、第1の~第5の世代(1~5G))、デバイスツーデバイス(例えば、車両間(v2v))通信が異なるノードと通信する際に利用されてもよい。
【0046】
図2Bの実施例では、ノード200-4は、ノード200-1によって表される、特定の製造業者によって製造された車両のサブセットまたはクラスに属する特定の車両を表してもよい。この実施例では、ノード200-5は、特定の製造業者によって製造された車両の同一のもしくは異なるサブセットもしくはクラスにある別の特定の車両、または代わりに、ノード200-1と関連付けられた製造業者に関連しない別の特定の車両を表してもよい。同様に、ノード200-Nは、特定の製造業者によって製造された車両の同一もしくは異なるサブセットもしくはクラスにある別の特定の車両、または代わりに、ノード200-1と関連付けられた製造業者に関連しない別の特定の車両を表してもよい。
【0047】
各々のノードは、その自身の処理リソース、例えば、
図2Aに示されるような1つ以上のメモリデバイスに接続されたホストを有してもよい。よって、車両ノード200-4、200-5、及び200-Nは各々、単一及び/または複数のホスト、例えば、処理リソース、202-4、202-5、202-Nをそれぞれ含んでもよい。所与の車両ノード、200-4、200-5、及び200-N上の各々のホストは、各々の車両上の複数のメモリデバイスに接続してもよい。例えば、メモリデバイス206-4-1、206-4-2、206-4-Xは、ノード200-4上のホスト202-4と関連付けられてもよく、メモリデバイス206-5-1、206-5-2、及び206-5-Bは、ノード200-5上のホスト202-5と関連付けられてもよく、メモリデバイス206-N-1、206-N-2、及び206-N-Zは、ノード200-N上のホスト202-Nと関連付けられてもよい。
【0048】
この実施例では、ノード200-1は、ノード200-4、200-5、…、及び200-Nに、時系列のブロック、例えば、製造業者によって生産された全ての車両の主題に関連するデータを含む、ノード200-1によって維持された継続して増大する第1の、例えば、「グローバル」ブロックチェーン台帳(本明細書でグローバル台帳ブロックチェーン」とも称される)の更新された複製を定期的に送信、例えば、分散してもよい。ブロックチェーン技術に従って、ノード200-1は、第1の、例えば、「グローバル」台帳ブロックチェーンの複製を、分散ネットワーク内の他のノード、200-1、200-2、200-3、…、200-Nと共有してもよい。しかしながら、ノード200-1によって維持され、他の特定のノード、200-4、200-5、…、200-Nに受信される、増大する第1の、例えば、「グローバル」台帳ブロックチェーン内の「ブロック」の全てが本物でなくてもよく、及び/または他の特定のノードに関連しなくてもよい。例えば、特定の車両、例えば、ノード200-4、200-5、…、200-Nは、ノード200-1と関連付けられた特定の製造業者によって製造された車両のサブセットまたはサブクラスに属してもよいが、第1の、例えば、「グローバル」台帳ブロックチェーン内の特定のブロックのみが、特定のノード200-4、200-5、…、200-N、例えば、車両のそのサブセットまたはサブクラス内の特定の車両に関連してもよい。したがって、本明細書で開示される実施形態に従って、特定のノード、200-4、200-5、…、200-Nは、認証され、そのノード、200-4、200-5、…、200-Nに関連するそれらのブロックのみを有効であると確認してもよい。
【0049】
例示的な実施形態に従って、特定のノード、例えば、200-4は、認証され、ノードに関連するブロックを有効であると確認してもよく、そのブロックを第2のブロックチェーン台帳に追加してもよく、第2のブロックチェーン台帳は、ノード200-1からノード200-4へ受信されたグローバル台帳ブロックチェーンに含まれるブロックの全てのよりも少ないサブセットであってもよい。ノード200-4は、「グローバル台帳ブロックチェーン」のサブセットを「ローカルブロックチェーン台帳」(本明細書で「ローカル台帳ブロックチェーン」とも称される)としてそれぞれのノード、200-4、200-5、…、200-Nに記憶してもよい。ノード200-4はまた、ローカル台帳ブロックチェーンを他のノードと共有してもよい。しかしながら、それが必要とされるわけではなく、その特定のノード200-4、例えば、その特定の車両のホスト及び/またはメモリデバイスのみに対してそれが「ローカル」のままでいることができる点で、ローカル台帳ブロックチェーンは、「ローカル」と呼ばれる。よって、例示を容易にするために、第2のブロックチェーン台帳(「ローカル台帳ブロックチェーン」)は、本明細書でローカル台帳ブロックチェーンと称されてもよい。ノード、例えば、200-4は、それが接続されたノードのネットワークを介して、様々な主題に関する、他のグローバル台帳ブロックチェーンと関連付けられた多くのグローバルブロックを受信してもよい。しかしながら、ノード、例えば、200-4は、それが追加を受諾するブロックのどれがそのローカル台帳ブロックチェーンに追加されることを可能にするかについて選択的であってもよい。
図3及び4に関連して更に詳細に説明されるように、本開示の実施形態は、特定のノード、200-4、200-5、…、200-Nに関連するブロックを有効であると確認し、そのブロックを追加し、「ローカル台帳ブロックチェーン」データとして、例えば、特定の車両へのセキュアファームウェア更新として、それらのブロックを特定のノード、200-4、200-5、…、200-Nに記憶し、それらのブロックを特定のノード、200-4、200-5、…、200-N上で維持するために、
図6~11において説明される暗号化技術を使用してもよい。1つの実施例では、特定の車両、例えば、ノード200-4、200-5、…、200-N上の単一のホスト(
図2Aに示されるもののような)または複数のホストは、ローカル台帳ブロックチェーンを維持することができる。実施例として、単一または複数のホストは、「USING MEMORY AS A BLOCK IN A BLOCK CHAIN」と題する、代理人整理番号1016.0030001の同時係属中の、共同出願された米国特許出願第_____________において説明される技術に従って、分散台帳をノード上で維持することができる。この実施例では、特定の車両、例えば、ノード200-4、200-5、…、200-Nに関連するファームウェア更新は、有効であると確認されてもよく、ノード、200-4、200-5、…、200-Nの「ローカル台帳ブロックチェーン」に追加されてもよく、または代わりに、破棄されてもよい。
【0050】
図3は、例えば、
図2における回路210及びメモリ216によって、回路によって操作することができ、メモリ及び/またはセキュアアレイに記憶することができるような、グローバル台帳ブロックチェーン322とローカル台帳ブロックチェーン324、326、及び328との間の交換の実施例を示す。この実施例では、データへのセキュア更新は、有効であると確認されてもよく、
図2と関連して説明されたメモリアレイ201などのメモリに記憶されてもよい。本明細書で使用されるように、ブロックチェーン台帳またはシステム内のブロックチェーン技術に従った「ブロック」は、データ(例えば、ペイロード)、ヘッダ、暗号化、履歴、タイムスタンプなどを含み得る。再度、ブロックチェーン内の「ブロック」は、
図1におけるメモリの記憶単位として説明されたように、メモリのブロックのサイズと相関付ける必要はなく、またはメモリのブロックのサイズに等しい必要はない。
【0051】
更に、本明細書で使用されるように、用語「グローバルブロック」は、1つの実施例では、エンティティのより大規模なシステムまたはネットワークにわたって維持及び共有される、第1のブロック台帳内のブロックである。「ローカルブロック」は、特定のノード、例えば、200-4に関連するデータのサブセットとして、車両のサブセットに関連する特定の主題のサブセットとして、またはエンティティ、例えば、
図2Aにおけるメモリデバイス201のシステムまたはネットワーク内のエンティティのより多くの特定のクラスとして維持された、ローカル台帳ブロックチェーン内のみにあるブロックである。グローバルブロックチェーンまたはローカルブロックチェーンのいずれも、特定のメモリアーキテクチャのブロックサイズに等しい必要はない。グローバルブロック及び/またはローカルブロックは、特定のメモリアーキテクチャまたは設計と関連付けられたブロックサイズデノミネーションよりも小さくてもよく、それと等しくてもよく、及び/またはそれよりも大きくてもよい。
【0052】
図3の実施例では、第1の、例えば、グローバル、台帳ブロックチェーン322は、
図2Bにおけるノード200-1と関連付けられた主題に関連し得る。グローバル台帳ブロックチェーンは、グローバルブロック320-1、320-2、320-3、320-4、320-5、320-6、及び320-Nを含み得る。本明細書で説明される回路及びロジックによって動作するとき、グローバルブロック320は、ローカルブロック321-1、321-2、321-3、321-4、321-5、321-6、及び321-Nとして示される、第2の、例えば、ローカル台帳ブロックチェーン324、326、及び328に有効であると確認され、それらに受諾され得る。第2の、例えば、ローカル台帳ブロックチェーン324、326、及び328は、
図2Bに示された、ノード、200-4、200-5、…、200-Nによってそこでそれぞれ維持されてもよい。代わりに、特定のノード、例えば、
図2Bに示されたノード、200-4、200-5、…、200-N上で維持されるローカル台帳ブロックチェーンに対して有効であると確認されない場合、グローバル台帳ブロックチェーンのそれぞれのグローバルブロックは、それらから拒否され得る。
【0053】
例えば、グローバルブロックチェーンデータがローカル台帳ブロックチェーン内のローカルブロックとして有効であると確認され、記憶されるよう、特定のメモリによって受信されるとき、グローバルブロックチェーンデータは、ローカル台帳ブロックチェーン内のローカルブロックになる前に、回路及びロジック、例えば、
図2Aにおける回路210によって有効であると確認される必要がある。
図3の実施例では、グローバルブロック320-1は、ローカル台帳ブロックチェーン324内のローカルブロック321-1になるよう、例えば、回路210によって有効であると確認されており、グローバルブロック320-2は、ローカル台帳ブロックチェーン326内のローカルブロック321-2になるよう有効であると確認されており、グローバルブロック320-3は、ローカル台帳ブロックチェーン328内のローカルブロック321-3になるよう有効であると確認されており、グローバルブロック320-4は、ローカル台帳ブロックチェーン324内のローカルブロック321-4になるよう有効であると確認されており、グローバルブロック320-5は、ローカル台帳ブロックチェーン324内のローカルブロック321-5になるよう有効であると確認されており、グローバルブロック320-6は、ローカル台帳ブロックチェーン326内のローカルブロック321-6になるよう有効であると確認されており、グローバルブロック320-Nは、ローカル台帳ブロックチェーン328内のローカルブロック321-Nになるよう有効であると確認されている。
【0054】
1つの例示的な実施形態では、グローバルブロック320は、
図2Aにおけるメモリデバイス、例えば、201に受信され、
図2Aにおいて説明された回路210を使用することによって、ローカル台帳ブロックチェーン324、326、または328に対して有効であると確認され、追加され得る(例えば、生成される)。
図3の実施例では、グローバルブロック320-4は、ローカルブロック321-4になるよう受信され、有効であると確認されている。ローカルブロック321-1が本明細書で説明される回路及びロジックによって有効であると確認された後、ローカルブロック321-4がローカル台帳ブロックチェーン324に追加され得る。
図4と関連して更に説明されるように、ローカルブロック321-1は、メモリに記憶されたデータの更新として、グローバルブロック320-4を有効であると確認するために使用される。この実施例では、ローカルブロック321-4は、ローカルブロック321-1の後のローカル台帳ブロックチェーン324内の次のブロックとして受諾及び記憶され得る。グローバル台帳ブロックチェーン322は、複数のホスト(例えば、
図2と関連して説明されたホスト202)からのブロックチェーン構成、アーキテクチャ、及び/またはプロトコル内のブロックを含み得る。
【0055】
ホスト及び/またはメモリは、ローカル台帳ブロックチェーン324、326、328を維持してもよく、例えば、記憶してもよく、特定のホスト及び/またはメモリに関連する有効であると確認されたグローバルブロックのみを含んでもよい。グローバルブロック320は、グローバルブロックに含まれるデータと関連付けられた特定のホスト及び/またはメモリについての識別子を含んでもよい。例えば、特定のホスト/メモリ識別子(ID_1)と関連付けられたローカル台帳ブロックチェーン324が示される。よって、このホスト/メモリ関係と関連付けられた回路は、ローカル台帳ブロックチェーン324がローカルブロック321-1(グローバル台帳ブロックチェーン320からのグローバルブロック320-1)、ローカルブロック321-4(グローバル台帳ブロックチェーン320からのグローバルブロック320-4)、及びローカルブロック321-5(グローバル台帳ブロックチェーン320からのグローバルブロック320-5)のみを含むように、関連するグローバルブロックのみを有効であると確認する。別のホスト及び/またはメモリ識別子(ID_2)と関連付けられたローカル台帳ブロックチェーン326が示される。よって、このホスト/メモリ関係と関連付けられた回路は、ローカル台帳ブロックチェーン326がローカルブロック321-2(グローバル台帳ブロックチェーン320からのグローバルブロック320-2)、及びローカルブロック321-6(グローバル台帳ブロックチェーン320からのグローバルブロック320-6)を含むように、関連するグローバルブロックのみを有効であると確認する。別のホスト及び/またはメモリ識別子(ID_k)と関連付けられたローカル台帳ブロックチェーン328が示される。よって、このホスト/メモリ関係と関連付けられた回路は、ローカル台帳ブロックチェーン328がローカルブロック321-3(グローバル台帳ブロックチェーン320からのグローバルブロック320-3)、及びローカルブロック321-N(グローバル台帳ブロックチェーンからのグローバルブロック320-N)を含むように、関連するグローバルブロックのみを有効であると確認する。
【0056】
それぞれのホスト及び/またはメモリ関係(例えば、ID_1、ID_2、及びID_k)のメモリへの更新として適切なブロックチェーンデータを記憶するためにローカル台帳ブロックチェーン(例えば、324、326、328)を使用することは、所与のホストと関連して所与のメモリデバイス(例えば、
図2Aのメモリデバイス206)に記憶されたデータへのセキュア更新をもたらすことができる。したがって、本明細書で説明される回路及びロジックは、
図3に示される交換および編成を可能にする。例えば、回路は、グローバル台帳ブロックチェーン322からグローバルブロック、例えば、320-4を受信し、グローバルブロック320-4が特定のホスト及び/またはメモリ関係に関連するかどうかを判定するように構成される。グローバルブロック320-4が特定のホスト及び/またはメモリに関連する場合、例えば、ブロックチェーン技術に従ってそれぞれの識別子(例えば、ID_1、ID_2、及びID_k)についての暗号化ハッシュの比較が一致する場合、回路は、そのローカル台帳ブロックチェーン324にグローバルブロック320-4を追加してもよい。ブロックチェーンデータのグローバルブロック320-4は、ホスト及び/またはメモリと関連付けられたセキュアアレイに含まれるデータへの更新のペイロードを含み得る。本明細書で説明される回路、例えば、回路210は、ローカル台帳ブロックチェーン324内の最新ローカルブロック、例えば、321-1の暗号学的ハッシュ及びグローバルブロック320-4に含まれる、更新されることになるメモリに記憶されたデータの暗号学的ハッシュをチェックする、例えば、比較することによって、グローバルブロック320-4を有効であると確認してもよい。ローカル台帳ブロックチェーン324の最新ローカルブロック321-1も、グローバルブロック320-4が権限を有するエンティティ(例えば、グローバルブロック320-4がローカル台帳ブロックチェーン324を含む特定のホスト及び/またはメモリ関係と関連付けられたエンティティからであることを立証する識別子ID_1を含む)からであるかどうかを示すよう同様に比較される、それと関連付けられたデジタル署名を含む。
図4と関連して説明されるように、ローカル台帳ブロックチェーン324内で、有効であると確認される場合、最新ローカルブロック321-1は、「前の」ローカルブロックになり、グローバルブロック320-4は次いで、「最新」ローカルブロック321-4になる。ローカル台帳ブロックチェーン324(例えば、及び/または、326、328)のローカルブロック321のコンテンツは、
図4と関連して詳細に説明される。
【0057】
権限を有するエンティティは、公開台帳としてグローバル台帳ブロックチェーン322を提供してもよく、公開台帳は、システム更新(例えば、ハードウェア、ソフトウェアへの更新、及び/または構成更新)を受信するようグローバル台帳ブロックチェーン322と同時に起こる、ホスト及び/またはメモリの全て及び/または一部に分散されてもよい。例えば、グローバル台帳ブロックチェーン322は、エンティティによってサービス提供される複数のホストデバイス及び/またはメモリデバイスに対し、ハードウェア更新、ソフトウェア更新、コンポーネント構成、メモリに記憶されたコードへの改変、メモリに記憶されたコードの一部への改変などのサービスを提供し得るエンティティによって生成及び維持されてもよい。例えば、グローバル台帳ブロックチェーン322は、車両の製造業者によって生成及び監視されてもよい。グローバル台帳ブロックチェーン322内のグローバルブロック320の各々は、特定の識別子を有する車両に対するメモリに記憶された命令への、実施されることになる更新についてのデータを含んでもよい。例えば、
図3によって示されるように、グローバルブロック320-1、320-4、320-5は、ホスト及び/またはメモリID_1に対応し、グローバルブロック320-2、320-6は、ホスト及び/またはメモリID_2に対応し、グローバルブロック320-3、320-Nは、ホスト及び/またはメモリID_kに対応する。異なるIDは、異なるホスト及び/またはメモリ関係(例えば、異なる車両)に対応する。
【0058】
このインスタンスでは、車両製造業者は、特定の車両(例えば、または、識別子を共有する車両の特定のサブセット)に対して生成された更新の各々のインスタンスがグローバル台帳ブロックチェーン322に不変レコードとして記録されるように、グローバル台帳ブロックチェーン322を生成及び監視する。例えば、グローバルブロック320-1は、ID_1と関連付けられた車両についての更新(例えば、または、車両と関連付けられたメモリ内のデータ)を含み、グローバルブロック320-2は、ID_2と関連付けられた車両についての更新を含む、などである。グローバルブロック320は、それらが車両製造業者によって生産されるように順番に組み立てられ、各々のグローバルブロック320は、ブロックが生じた車両製造業者(例えば、エンティティ)を示すデジタル署名を含み得る。このようにして、車両製造業者は、監視された異なる車両に対して生成された更新の全ての不変レコードを維持してもよい。
【0059】
ブロックチェーン技術において使用されるように、及び
図4と関連して更に説明されるように、グローバル台帳ブロックチェーン322内のグローバルブロック320は、複数のヘッダ及び暗号化を含み得る。例えば、グローバル台帳ブロックチェーンのグローバルブロックは、前のグローバルブロックへの暗号学的ハッシュデータ(例えば、それへのリンク)を含むグローバルブロックヘッダ及び前のローカルブロックへの暗号学的ハッシュデータを含むハッシュを含み得る。よって、グローバルブロックが
図2Aにおけるホスト202及び/またはメモリデバイス206によって受信されるとき、ローカル台帳ブロックチェーンに追加されることになるグローバルブロックは、ローカル台帳ブロックチェーン内の最新ローカルブロック(例えば、ブロックチェーンデータ220における)への暗号学的ハッシュ(例えば、それへのリンク)及びメモリデバイス206に記憶されたデータ(例えば、ペイロード)への更新の暗号学的ハッシュを含み得る。ローカル台帳ブロックチェーン内のブロックチェーンデータ220も、グローバルブロックが権限を有するエンティティからであることを示す、それと関連付けられたデジタル署名を含み得る。
【0060】
異なって述べられるように、グローバル台帳ブロックチェーンからのグローバルブロックは、ホスト及び/またはメモリ、例えば、
図2Aに示されたホスト202及び/またはメモリ216によって受信されてもよく、ホスト及び/またはメモリ上の回路及び/またはロジックは、グローバルブロックがホスト及び/またはメモリに関連するかどうかを判定してもよい。そうである場合、グローバルブロック及びそのコンテンツは、ローカル台帳ブロックチェーンに記憶されたブロックチェーンデータの新たなローカルブロックになるよう(例えば、
図2Aにおけるメモリ216のアレイ201に記憶されたブロックチェーンデータ220の一部として)有効であると確認されてもよい。ローカルブロックも、ローカルブロックがいつ生成/受信されたかを示すタイムスタンプを有するヘッダを含み得る。
【0061】
受信/生成されたローカルブロックに含まれるデータによって更新、改変、構成、及び/またはそうでなければ変更されることになるメモリアレイ(例えば、
図2Aのメモリアレイ201)に記憶されたデータの暗号学的ハッシュ、及び/またはローカル台帳ブロックチェーン内の前のローカルブロックの暗号学的ハッシュは、例えば、SHA-256暗号学的ハッシュを含み得る。更に、メモリアレイに記憶されたデータの暗号学的ハッシュ、及びローカル台帳ブロックチェーン内の前のローカルブロックの暗号学的ハッシュは各々それぞれ、256バイトのデータを含み得る。
【0062】
メモリアレイに記憶されたデータの暗号学的ハッシュは、回路、例えば、
図2Aにおける回路210によって生成され得る(例えば、計算される)。そのような実施例では、記憶されたデータの暗号学的ハッシュは、ホスト/メモリデバイスインタフェース、例えば、
図2Aにおけるインタフェース204上で外部データを移動させることなく、メモリデバイス、例えば、
図2Aにおけるメモリデバイス206によって内部的に生成され得る。追加の実施例として、データの暗号学的ハッシュは、外部エンティティから通信され得る。例えば、ホストは、メモリアレイに記憶されたデータの暗号学的ハッシュを生成することができ、メモリデバイスに生成された暗号学的ハッシュを送信することができ、例えば、メモリデバイスの回路は、ホストから、メモリアレイに記憶されたデータの暗号学的ハッシュを受信することができる。
【0063】
更に、ローカルブロックと関連付けられたデジタル署名は、ホストから受信されたコマンドなどの外部コマンドに基づいて(例えば、それに応答して)回路によって生成され得る(例えば、計算される)。デジタル署名は、対称暗号化または非対称暗号化を使用して生成され得る。デジタル署名は、グローバル台帳ブロックチェーン上の前のローカルブロックの形式にあるフレッシュネスフィールドを含んでもよい(ブロックが追加されるときにローカル台帳ブロックチェーン上の最新ローカルブロックに一致するはずである)。追加の実施例として、ホストは、デジタル署名を生成することができ、メモリデバイスに生成されたデジタル署名を送信することができる(例えば、提供する)。
【0064】
本明細書で説明されるフレッシュネスフィールドは、ローカル台帳ブロックチェーンに追加される各々のグローバルブロックと共に変化してもよい。したがって、フレッシュネスフィールドは、次に来るグローバルブロックがローカル台帳ブロックチェーン内の次のブロックとして追加されることになる正確なブロックであることが有効であると確認するために使用されてもよい。次に来るグローバルブロックがホストに関連すること、及び次に来るグローバルブロックの前のローカルブロックフィールド(フレッシュネス)がローカル台帳ブロックチェーン内の最新ローカルブロックと同一であることをデジタル署名が示すとき、次に来るグローバルブロックは、ローカル台帳に追加されることになる次のローカルブロックであると検証される。デジタル署名を計算するためにフレッシュネスも使用することができることを理由に、デジタル署名は、各々の次に来るグローバルブロックとは異なり得る。
【0065】
言及されたように、デジタル署名は、例えば、非対称暗号化(例えば、公開鍵及び/または秘密鍵に基づいた)を使用して生成されたデジタル署名であり得、例えば、楕円曲線デジタル署名を含み得る。追加の実施例として、署名は、対称暗号化(例えば、ホストとメモリデバイスとの間で共有された一意な共通鍵に基づいた)を使用して生成され得る。秘密鍵は、いずれかの非対称プロトコル(例えば、Diffie-Hellmanプロトコル)を使用して交換され得る。他の1つの実施例では、鍵は、セキュア環境内で(例えば、工場生産、安全な製造など)ホストと共有されてもよい。秘密鍵の生成及び有効であるとの確認は、
図6~11と関連して更に議論される。
【0066】
図2と関連して説明されるように、そのようなブロックチェーンデータ220は、メモリアレイ、例えば、
図2Aにおけるメモリアレイ201に記憶され得る。ブロックチェーンデータ220は、メモリデバイス及び/またはホストのユーザにアクセス可能でないメモリアレイ201の部分に(例えば、メモリアレイの「隠蔽された」領域に)記憶され得る。ブロックチェーンデータのローカルブロック及び/またはローカル台帳ブロックチェーンを特定のメモリアレイに記憶することは、ローカルブロックに対するソフトウェア記憶管理についての必要性を除去することによって、ローカルブロックの記憶を簡易化することができる。
【0067】
図3の実施例では、グローバルブロック320-6は、前のグローバルブロック320-5のハッシュについてのフィールドを有するグローバルヘッダを含むことができ、前のグローバルブロックフィールドは、グローバル台帳ブロックチェーン322内の先行ブロックを示す。グローバルヘッダ内の異なるハッシュは、前のローカルブロックフィールドを含むことができ、前のローカルブロックフィールドは、同一のホスト及び/またはメモリIDの識別子を有する先行グローバルブロックを示す。
【0068】
例えば、グローバルブロック320-6は、それらが両方との車両ID_2であることを理由に、グローバルブロック320-2(前の関連するグローバルブロック)についてのハッシュを有するローカルブロックフィールドを含んでもよい。このようにして、特定のホスト及び/またはメモリデバイス関係(例えば、車両または車両のサブセットについての)は、グローバル台帳ブロックチェーン322から複数のグローバルブロック320を受信してもよく、どのグローバルブロック320をローカルブロックとして受諾するか、及びどのグローバルブロック320を破棄するかを判定してもよい。
【0069】
例えば、ローカル台帳ブロックチェーン324は、ID_1を有するホスト(例えば、車両)の形式にある識別子を通じて特定のホストと関連付けられたメモリデバイス及び/またはメモリに含まれてもよい。本明細書で説明されるような回路は、ローカル台帳ブロックチェーン324の一部として、グローバルブロック320をホスト車両と関連付けられたメモリに記憶するように構成され得る。言い換えると、回路は、グローバル台帳ブロックチェーン322から複数のグローバルブロック320を受信するように構成され、グローバルブロック(複数可)320が車両ID_1と関連付けられたホスト車両に属すると回路が判定するとき、それらはローカルブロック321として受諾され、ローカル台帳ブロックチェーン324に追加される。
【0070】
特に、実施例では、ID_1を有するホスト車両及び/またはホスト車両と関連付けられたメモリは、例えば、ローカル台帳ブロックチェーン324を含み、例えば、それを記憶してもよく、回路及び/またはメモリは、グローバル台帳ブロックチェーン322から複数のグローバルブロック320-1、320-2、320-3、320-4、320-5、320-6、及び320-Nを受信してもよい。回路は、回路によって、グローバル台帳ブロックチェーン322から受信された複数のグローバルブロック320が、ホスト車両ID_1と関連付けられたホスト車両及び/またはメモリに関連するかどうかを判定するように構成される。よって、回路は、グローバルブロック320-1、320-4、及び320-5がホスト車両ID_1に関連すると判定してもよく、回路は、有効であると確認し、有効であると確認された場合、それらがホスト車両ID_1に関連すると検証されたことを理由に、ローカルブロック321-1、321-4、及び321-5として、グローバル台帳ブロックチェーン322から受信された複数のグローバルブロックのグローバルブロック320-1、320-4、320-5をローカル台帳ブロックチェーン324に順次に追加するように構成される。
【0071】
1つの実施例では、グローバルブロック320-1、320-4、及び320-5は、それぞれのグローバルブロック320の各々内の前のローカルブロックフィールドがローカル台帳ブロックチェーン324の最新ローカルブロック内の最新ローカルブロックフィールドに一致するとき、ローカル台帳ブロックチェーン324に追加され得る(順次に)。特に、回路は、グローバルブロック320-4が権限を有するエンティティ(例えば、車両の製造業者のグローバル台帳ブロックチェーン322)からであることを確認し、グローバルブロック320-4の前のローカルブロックフィールドがローカルブロック321-1(グローバルブロック320-1と同一である)についてのハッシュであるとチェックし、最新ローカルブロック321-1がその自身の最新ローカルブロックフィールド内で一致するハッシュを有するとチェックすることによって、次に来るグローバルブロック320-4を有効であると確認することができる。この手順は、ローカル台帳ブロックチェーン324にグローバルブロック320-5を追加するために適用され得る。よって、グローバルブロック320-1、320-4、及び320-5は、ローカル台帳ブロックチェーン324内のローカルブロック321-1、321-4、及び321-5になることができる。この方法及び構成を使用して、ローカル台帳ブロックチェーン324は、順番に組み立てられた(ID_1)と関連付けられたホスト及び/またはメモリに関連する複数のローカルブロックを含む。
【0072】
加えて、回路は、それらがホスト及び/またはメモリID_1に関連しないとき、ローカル台帳ブロックチェーン324にグローバルブロック320を追加することを控えるように構成される。よって、回路は、グローバルブロック320-2、320-6、320-3、及び320-Nがホスト及び/またはメモリID_1に関連しないと判定してもよく、ローカル台帳ブロックチェーン324から関連しないグローバルブロックを破棄してもよい。
図3と関連して説明された機構は、複数のホスト及び/または複数のメモリ、例えば、ローカル台帳ブロックチェーン326及びローカル台帳ブロックチェーン328に適用されてもよい。
【0073】
例えば、回路は、メモリ(例えば、ID_1と関連付けられた)に記憶されたデータへの更新を有効であると確認するためのローカル台帳ブロックチェーン(例えば、324)を生成してもよく、グローバル台帳ブロックチェーン322からグローバルブロック(例えば、320-1、320-2、320-3、320-4、320-5、320-6、320-N)を受信してもよい。回路は、第1の部分のグローバルブロックの各々と関連付けられたデジタル署名がホスト及び/またはメモリ(例えば、ID_1)に関連すると回路によって有効であると確認されるとき、ローカル台帳ブロックチェーン324にグローバルブロックの第1の部分(例えば、320-1、320-4、320-5)を追加してもよい。回路は、グローバルブロックの第2の部分がID_1と関連付けられたホスト及び/またはメモリに関連しないと判定されるとき(例えば、第2の部分がID_2及び/またはID_kと関連付けられる)、受信されたグローバルブロックの第2の部分(例えば、320-2、320-6、320-3、320-N)を破棄してもよい。
【0074】
図4と関連して更に説明されるように、フレッシュネスフィールドは、グローバルブロックがローカル台帳ブロックチェーン(例えば、324、326、328)に属すると検証するために回路によって使用されてもよい。上記の実施例では、第1の部分(例えば、320-1、320-4、320-5)のグローバルブロックの各々は、デジタル署名を生成するために使用されるフレッシュネスフィールドを含む。第1の部分(例えば、320-1、320-4、320-5)のグローバルブロックの各々についてのフレッシュネスフィールドは、ローカル台帳ブロックチェーン324の最新ローカルブロックに対応する。したがって、第1の部分(例えば、320-1、320-4、320-5)のグローバルブロックは、ローカル台帳ブロックチェーン324に順番に追加され(ローカルブロック321-1、321-4、及び321-5として)、ホストと関連付けられたメモリに記憶される。
【0075】
特に、回路は、グローバルブロックのフレッシュネスフィールドに基づいてデジタル署名を生成することができる。例えば、回路は、グローバルブロック320-4のヘッダ内の前のローカルブロックフィールドを識別することによって(このインスタンスでは、それがID_1を有する前のグローバルブロックであることを理由に、これは、グローバルブロック320-1のハッシュである)、グローバルブロック320-4のフレッシュネスフィールドを生成してもよい。ローカル台帳ブロックチェーン324の最新ローカルブロック321-1及びグローバル台帳ブロックチェーン322のグローバルブロック320-4の前のローカルブロックフィールド(再度、このインスタンスでは、これは、グローバルブロック320-1である)は同一である。
【0076】
図4は、本開示の実施形態に従った、メモリに(例えば、
図2Aと関連して前に説明されたメモリアレイ201に)記憶されたセキュア更新のためのローカル台帳ブロックチェーン(例えば、ローカル台帳ブロックチェーン424)の実施例を示す。ローカル台帳ブロックチェーン424は、
図3と関連して説明されたローカル台帳ブロックチェーン324と同様であり得る。例示を容易にするために、
図4は、ローカル台帳ブロックチェーン424のみを示す。しかしながら、
図4、及びローカル台帳ブロックチェーン424と関連して説明される実施例も、他のローカル台帳ブロックチェーン(例えば、
図3と関連して説明されたローカル台帳ブロックチェーン326及び328)に対して適用されてもよい。ローカル台帳ブロックチェーン424は、それぞれのホスト及び/またはメモリ交換のメモリに記憶されたデータのセキュア更新のために使用されるブロックチェーンである。1つの実施例として、ホスト及び/またはメモリ交換は、特定の識別子、例えば、識別子ID_1と関連付けられる。
【0077】
この実施例では、ローカル台帳ブロックチェーン424のローカルブロック421-1、421-4、421-5は、例えば、
図3の実施例における前のグローバルブロック320-1、320-4、320-5として受信されたブロックである。1つの実施例では、
図2における回路210は、例えば、SHA256ハッシュを使用してブロックチェーンデータのそれぞれのハッシュを比較及び有効であると確認するよう、
図5A~11と関連して説明されるブロックチェーン暗号化及び復号技術を使用して、受信されたグローバルブロックに対して動作する。グローバルブロックがホスト及び/またはメモリ(例えば、ID_1)に関連すると検証されるとき、それらは、ローカルブロック421-1、421-4、及び421-5になってもよく、ID_1と関連付けられたホスト及び/またはメモリに対してローカル台帳ブロックチェーン424に不変レコードとして記憶されてもよい。この実施例では、回路は、ホストID_1と関連付けられたメモリへの記憶のために、ローカルブロック421-4(例えば、前のグローバルブロック320-4)についてのブロックチェーンハッシュをローカルブロック421-1(例えば、前のグローバルブロック320-1)と比較するよう動作する。ホスト及び/またはメモリと関連付けられた回路によって有効であると確認されると、回路は、ローカルブロック421-1にリンクしてもよい。同様に、ホスト及び/またはメモリと関連付けられた回路によって有効であると確認されると、ローカルブロック421-5(例えば、前のグローバルブロック320-5)は、ローカルブロック421-4にリンクしてもよい。
【0078】
図4の実施例では、各々のローカルブロック(例えば、421-1、421-4、及び/または421-5など)はそれぞれ、以下の情報:グローバルブロックヘッダ、例えば、430-1、430-4、430-5、及びローカルブロックヘッダ、例えば、432-1、432-4、432-5を含んでもよい。この実施例では、各々のローカルブロックヘッダ432-1、432-4、432-5は、前のローカルブロックハッシュ433-1、433-4、433-5、最新ローカルブロックハッシュ434-1、434-4、432-5、及びブロック署名435-1、435-4、435-5を含む。
図4の実施例に示されるように、各々のローカルブロック、例えば、421-1、421-4、及び421-5は、ブロックの情報、例えば、データの一部として、ペイロード、例えば、436-1、436-4、436-5を含む。
図3と関連して言及されたように、ブロック(例えば、グローバル及びローカル)の各々は、それらのそれぞれのブロックチェーン台帳(グローバルまたはローカル)内の前のブロックに最新ブロックをリンクするための複数のヘッダ(例えば、430-1、432-1)を含んでもよい。
【0079】
例えば、ローカル台帳ブロックチェーン424にローカルブロック421-4を追加する方法を参照して、グローバルブロックヘッダ430-4は、グローバル台帳ブロックチェーン内の同一の関連付けられたID_1を有する前のグローバルブロックについてのハッシュと共に、最新グローバルブロックについてのハッシュ(共にグローバル台帳ブロックチェーンにリンクするための)の形式にあるフレッシュネスフィールドを含んでもよい。言い換えると、グローバルブロック(例えば、
図3の320-4)がグローバル台帳ブロックチェーン(例えば、
図3の322)にあるとき、グローバルブロックヘッダ内のフレッシュネスフィールドは、グローバル台帳ブロックチェーン(例えば、
図3の322)内の同一の関連付けられた識別子(例えば、ID_1)を有する前のグローバルブロック(例えば、
図3の320-1)についてのハッシュである。この実施例では、ローカルブロック421-4がローカル台帳ブロックチェーン424に追加されると検証されているとき、ローカル台帳ブロックチェーン424内のローカルブロック421-1の最新ローカルブロックハッシュ434-1は、回路がローカルブロック421-4としてローカル台帳ブロックチェーン424にそれを追加する、次に来るグローバルブロック(例えば、320-4)を有効であると確認するときに、グローバルブロックヘッダ430-4内のフレッシュネスフィールドと同一である。更に言い換えると、グローバルブロックヘッダ430-4のフレッシュネスフィールドは、最新ローカルブロック421-1が前にグローバルブロック320-1であったことを理由に、ローカル台帳ブロックチェーン424のローカルブロック421-1の最新ローカルブロックハッシュ434-1に一致するはずである。
【0080】
ローカルブロックヘッダ、例えば、432-1、432-4、及び432-5は各々、前のローカルブロックハッシュ、例えば、433-1、433-4、及び433-5(ローカル台帳ブロックチェーン424を共にリンクするための)、ならびに最新ローカルブロックハッシュ、例えば、434-1、434-4、及び434-5(次に来るグローバルブロックフレッシュネスフィールドと同一の)、ならびにブロックが権限を有するエンティティからであること(例えば、ホスト及び/またはメモリと関連付けられた車両製造業者及び/またはエンティティから)と、ホスト及び/またはメモリ(例えば、ID_1)に関連することとを示すためのブロック署名、例えば、435-1、435-4、435-5をそれぞれ含む。ペイロード、例えば、436-1、436-4、及び436-5は、ハードウェア、構成、及び/またはソフトウェア更新(例えば、構成、構成における変更、ホスト及び/またはホストと関連付けられたメモリのデバイスへの改変など)、及び/または更新されることになるメモリに記憶されたデータの暗号学的ハッシュを含むデータであり得る。
【0081】
例えば、ID_1の識別子を有する車両及び/または車両と関連付けられたメモリの形式にあるホストは、メモリに記憶されたデータへの更新が有効であると確認するためのローカル台帳ブロックチェーン424を生成するメモリ及び回路を含んでもよい。この実施例では、ローカル台帳ブロックチェーン424は、グローバル台帳ブロックチェーン(例えば、
図3の322)から取られたローカルブロック421-4(例えば、
図3のグローバルブロック320-4)から構成される。ローカルブロック421-4は、最新ローカルブロック421-4の最新ローカルブロック暗号学的ハッシュ434-4を含む。最新ローカルブロック暗号学的ハッシュ434-4は、ローカル台帳ブロックチェーン424及び更新されることになるメモリに記憶されたデータ(例えば、ペイロード436-1、436-4、及び436-5)の暗号学的ハッシュの順序(例えば、シーケンス)及びそれらへのリンクを有効であると確認するためのフレッシュネスフィールドとして、最新ローカルブロックハッシュ434-1であった前のローカルブロック暗号学的ハッシュ433.4と比較されてもよい。ローカル台帳ブロックチェーン424のローカルブロック421-4は、グローバルブロック(例えば、
図3の320-4)が権限を有するエンティティからであったこと、及びローカルブロック421-4として正確に追加されたことを示す、それと関連付けられたデジタル署名435-4を有する。いくつかの実施例では、権限を有するエンティティは、製造業者によって生産された全ての車両への更新をプッシュしている車両の製造業者であってもよい。このようにして、ID_1と関連付けられたホスト及び/またはメモリは、ブロック署名(例えば、435-4)をチェックしてもよく、ID_1と関連付けられたホスト及び/またはメモリに関連しないグローバル台帳ブロックチェーン(例えば、グローバル台帳ブロックチェーン322)から受信されたグローバルブロックを破棄してもよい。
【0082】
ホスト及び/またはメモリID_1は、メモリからローカル台帳ブロックチェーン424を受信し、受信されたローカル台帳ブロックチェーン424を使用して、メモリに記憶されたデータへの更新(例えば、ペイロード436-1、436-4、及び436-5)を有効であると確認するように構成され得る。このようにして、ID_1と関連付けられたホスト及び/またはメモリは、権限を有するエンティティからホスト及び/またはメモリに提供された更新の各々を維持及び/または監視することができる。ローカル台帳ブロックチェーン424のアセンブリが不変レコードを生成することを理由に、回路は、どの更新が行われたかに対する制御を維持し得る。これは、不正な更新、意図しない変更、意図しない誤り、及び悪質なハッキングの試みを防止し得る。加えて、ホストと関連付けられたメモリ上でのローカル台帳ブロックチェーン424の維持は、要求があると生産され得る更新のレコードを提供することができる。グローバル台帳ブロックチェーン(例えば、
図3のグローバル台帳ブロックチェーン322)からのグローバルブロックが有効であると確認され、ローカル台帳ブロックチェーン424に追加された後、回路は、ペイロード、例えば、436-1、436-4、及び436-5に含まれる更新を実施してもよい。
【0083】
例えば、ローカル台帳ブロックチェーン424は、グローバルブロック(例えば、
図3のグローバルブロック320-1)を有効であると確認してもよく、ローカルブロック421-1としてローカル台帳ブロックチェーン424にそれを追加してもよい。有効であるとの確認の後、回路は、ローカルブロック421-1のペイロード436-1に含まれる更新438-1を実行することができる。権限を有するエンティティは、ID_1と関連付けられたホスト及び/またはメモリに別の更新をプッシュしてもよく、そのため、回路は、第2のグローバルブロック(例えば、
図3のグローバルブロック320-4)を受信してもよく、第2のグローバルブロックは、回路によって有効であると確認されてもよく、ローカルブロック421-1にリンクされた、ローカルブロック421-4として順次に追加されてもよい。回路は、フレッシュネスフィールドの暗号学的ハッシュ、例えば、前のローカルブロックハッシュ433-4をチェック及び比較してもよい。有効である場合、この有効であるとの確認、及びローカル台帳ブロックチェーン424内でのリンク、回路は、ローカルブロック421-4のペイロード436-4に含まれる更新438-2を実行してもよい。この方法を使用して、メモリは、ローカルブロック421-5などについて説明されるように、ローカル台帳ブロックチェーン424にローカルブロックとしてグローバルブロックを追加し続けてもよい。いくつかの実施例では、ID_1と関連付けられたホスト及び/またはメモリは、より多くの更新が権限を有するエンティティによって生成されるときにローカル台帳ブロックチェーン424が増加するにつれて、メモリ内の空白を作るために、ローカル台帳ブロックチェーン424の古い部分を除去してもよい。
【0084】
例えば、ホスト及び/またはメモリは、ID_1を有する車両のコンピューティングデバイスであってもよく、ローカル台帳ブロックチェーン424は、車両の車内のソフトウェアコンポーネント及び/またはハードウェアコンポーネントへの更新を示すことができる。コンピューティングデバイスは、メモリに記憶することができる閾値数の不変レコードを含んでもよい。いくつかの実施例では、更新(例えば、438-1、438-2)は、コンピューティングデバイスのソフトウェアコンポーネント及び/またはハードウェアコンポーネントを更新するよう、グローバルブロックを介して権限を有するエンティティからプッシュされ、回路は、ローカル台帳ブロックチェーン424が閾値に到達したとき、ローカル台帳ブロックチェーン424からローカルブロック(例えば、古い方のローカルブロック)を除去してもよい。回路は、ローカル台帳ブロックチェーン424のルート(例えば、コンセンサスのルート、Merkleツリーのルートなど)を改変するようファームウェアを実行することによって、新しい方のローカルブロック(例えば、421-5)に対してコンピューティングデバイスのメモリ内で空間を作るために、古い方のローカルブロック(例えば、421-1)を除去してもよい。このようにして、回路は、ローカル台帳ブロックチェーン424が新たなローカルブロックを追加するにつれて、更新の制御を維持することができる。
【0085】
図5Aは、本開示の実施形態に従った、セキュアメモリアレイを定義するために使用されるレジスタ514-1及び514-2のペアの実施例を示し、
図5Bは、本開示の実施形態に従った、レジスタ514-1及び514-2を使用して定義されたセキュアメモリアレイを含むメモリアレイ501の部分の図を示す。レジスタ514-1及び514-2は、例えば、
図2と関連して前に説明されたレジスタ214-1及び214-2それぞれであり得、セキュアメモリアレイ501は、例えば、
図2と関連して前に説明されたメモリアレイ201であり得る。例えば、
図5Bに示されるように、セキュアメモリアレイ501は、その各々が
図1と関連して前に説明されたメモリアレイ101と同様の方式において、メモリセルのいくつかのセクタを有するいくつかの物理行503-0、503-1、…、503-Rを含む、メモリセルのいくつかの物理ブロック507-0、507-1、…、507-Bを含み得る。
【0086】
図5Aに示されるように、レジスタ514-1は、セキュアアレイのアドレス(例えば、セキュアアレイの異なる部分のアドレス)を定義することができ、レジスタ514-2は、セキュアアレイのサイズ(例えば、セキュアアレイの異なる部分のサイズ)を定義することができる。レジスタ514-1によって定義されたセキュアアレイのアドレスは、例えば、セキュアアレイの開始点(例えば、開始LBA)(例えば、セキュアアレイの異なる部分の開始点)に対応することができ、レジスタ514-2によって定義されたセキュアアレイのサイズは、セキュアアレイの終了点(例えば、終了LBA)(例えば、セキュアアレイの異なる部分の終了点)に対応することができる。
【0087】
例えば、
図5Aに示されるように、レジスタ514-1及び514-2は、N個の値のペアを定義することができ、各々のそれぞれのペアは、レジスタ514-1によって定義されたアドレス値(例えば、addr)及びレジスタ514-2によって定義されたサイズ値(例えば、size)を含む。例えば、
図5Aに示される実施例では、Pair
0は、アドレス値addr
0及びサイズ値size
0(例えば、Pair
0=[addr
0,size
0])を含み、Pair
1は、アドレス値addr
1及びサイズ値size
1(例えば、Pair
1=[addr
1,size
1])を含む、などであり、Pair
Nは、アドレス値addr
N及びサイズ値size
N(例えば、Pair
N=[addr
N,size
N])を含む。ペアのアドレス値は、セキュアアレイの部分の開始点(例えば、開始LBA)に対応することができ、そのペアのアドレス値及びサイズ値の合計は、セキュアアレイのその部分の終了点(例えば、終了LBA)に対応することができる。したがって、セキュアアレイの全体(例えば、セキュアアレイの全体を含む部分)は、[addr
0,addr
0+size
0]∪[addr
1,addr
1+size
1]∪…∪[addr
N,addr
N+size
N]によって与えられ得る。
【0088】
レジスタ514-2によって定義されたそのサイズ値がゼロである第1のペアは、セキュアアレイの定義を停止することができる。例えば、
図5Aに示される実施例では、Pair
2のサイズ値がゼロである場合、セキュアアレイは、[addr
0,addr
0+size
0]∪[addr
1,addr
1+size
1]によって与えられる。
【0089】
レジスタ514-1及び514-2によって定義されたセキュアアレイの実施例(例えば、非ゼロとしてレジスタ514-2によって定義された全てのサイズ値を有する)が
図5Bに示される。例えば、
図5Bに示されるように、メモリアレイ501のセクタ505-0と関連付けられたアドレス(例えば、LBA)は、addr
0であり、メモリアレイ501のセクタ505-1と関連付けられたアドレスは、addr
0+size
0であり、メモリアレイ501のセクタ505-2と関連付けられたアドレスは、addr
1であり、メモリアレイ501のセクタ505-3と関連付けられたアドレスは、addr
1+size
1であり、メモリアレイ501のセクタ505-4と関連付けられたアドレスは、addr
Nであり、メモリアレイ501のセクタ505-5と関連付けられたアドレスは、addr
N+size
Nである。したがって、セキュアアレイは、セクタ(例えば、セクタに記憶されたデータ)505-0~505-1、セクタ505-2~505-3、及び505-4~505-5を含む。しかしながら、セクタ505-0の前であるメモリアレイ501のセクタ、及びメモリアレイ501のセクタ505-1~505-2は、セキュアアレイの一部ではない(例えば、セキュアアレイは、アレイ501のサブセットを含む)。
【0090】
図6は、本開示の実施形態に従った、ホスト602及びメモリデバイス606を含む例示的なシステムのブロック図である。ホスト602及びメモリデバイス606は、例えば、
図2と関連して前に説明されたホスト202及びメモリデバイス206それぞれであり得る。
【0091】
コンピューティングデバイスは、レイヤを使用して段階的にブートすることができ、各々のレイヤは、後続のレイヤを認証及びロードし、各々のレイヤにおいて次第に洗練されたランタイムサービスを提供する。レイヤは、前のレイヤによってサーブされ得、後続のレイヤにサーブすることができ、それによって、下位レイヤ上で構築し、高位レイヤにサーブするレイヤの相互接続ウェブを生成する。
図6に示されるように、レイヤ0(「L
0」)651及びレイヤ1(「L
1」)653は、ホスト内にある。レイヤ0 651は、レイヤ1 653にFirmware Derivative Secret(FDS)鍵652を提供することができる。FDS鍵652は、レイヤ1 653のコードの識別子及び他のセキュリティ関連データを記述することができる。実施例では、特定のプロトコル(ロバストなモノのインターネット(RIOT)コアプロトコル)は、それがロードするレイヤ1 653のコードを有効であると確認するために、FDS652を使用することができる。実施例では、特定のプロトコルは、デバイス識別構成エンジン(DICE)及び/またはRIOTコアプロトコルを含み得る。実施例として、FDSは、レイヤ1のファームウェアイメージ自体、権限を有するレイヤ1のファームウェアを暗号によって識別するマニフェスト、セキュアブートの実施のコンテキストにおいて署名されたファームウェアのファームウェアバージョン番号、及び/またはデバイスについてのセキュリティ重要構成設定を含み得る。デバイスシークレット658は、FDS 652を生成するために使用され得、ホスト602と関連付けられたメモリに記憶され得る。
【0092】
ホストは、矢印654によって示されるように、メモリデバイス606にデータを送信することができる。送信されたデータは、公開している外部識別、証明書(例えば、外部識別証明書)、及び/または外部公開鍵を含み得る。メモリデバイス606のレイヤ2(「L2」)655は、送信されたデータを受信することができ、オペレーティングシステム(「OS」)657のオペレーションにおいて、ならびに第1のアプリケーション659-1及び第2のアプリケーション659-2上でデータを実行することができる。
【0093】
例示的なオペレーションでは、ホスト602は、デバイスシークレット658を読み込むことができ、レイヤ1 653の識別子をハッシュすることができ、以下を含む計算を実行することができる。
KL1=KDF[Fs(s),Hash(“immutable information”)]
KL1は、外部公開鍵であり、KDF(例えば、National Institute of Standards and Technology(NIST)Special Publication 800-108において定義されたKDF)は、鍵導出関数であり(例えば、HMAC-SHA256)、及びFs(s)は、デバイスシークレット658である。FDS 652は、以下を実行することによって判定され得る。
FDS=HMAC-SHA256[Fs(s),SHA256(“immutable information”)]
同様に、メモリデバイス606は、矢印656によって示されるように、ホスト602にデータを送信することができる。
【0094】
図7は、本開示の実施形態に従った、いくつかのパラメータを判定する例示的な処理のブロック図である。
図7は、矢印754によって示されるように、メモリデバイス(例えば、
図6における606)のレイヤ2(例えば、レイヤ2 655)に送信される、外部公開識別、外部証明書、及び外部公開鍵を含むパラメータの判定の実施例である。
図7におけるレイヤ0(「L
0」)751は、
図6におけるレイヤ0 651に対応し、同様に、FDS 752は、FDS 652に対応し、レイヤ1 753は、レイヤ1 653に対応し、矢印754及び756は、矢印654及び656それぞれに対応する。
【0095】
レイヤ0 751からのFDS 752は、レイヤ1 753に送信され、公開識別(「IDlk public」)765及び秘密識別767を生成するために、非対称ID生成器761によって使用される。省略された「IDlk public」では、「lk」は、レイヤk(この実施例では、レイヤ1)を示し、「public」は、識別が公然に共有されることを示す。公開識別765は、ホストのレイヤ1 753の右側及び外側に伸びる矢印によって共有されるとして示される。生成された秘密識別767は、暗号化器773に入力される鍵として使用される。暗号化器773は、データを暗号化するために使用されるいずれかのプロセッサ、コンピューティングデバイスなどであり得る。
【0096】
ホストのレイヤ1 753は、非対称鍵生成器763を含み得る。少なくとも1つの実施例では、乱数生成器(RND)736は任意選択で、非対称鍵生成器763に乱数を入力することができる。非対称鍵生成器763は、
図6におけるホスト602などのホストと関連付けられた公開鍵(「K
Lk public」)769(外部公開鍵と称される)及び秘密鍵(「K
LK private」)771(外部秘密鍵と称される)を生成することができる。外部公開鍵769は、暗号化器773への入力(「データ」としての)であり得る。暗号化器773は、外部秘密識別767及び外部公開鍵769の入力を使用して、結果K’775を生成することができる。外部秘密鍵771及び結果K’775は、追加の暗号化器777への入力であり得、出力K’’779を結果としてもたらす。出力K’’779は、レイヤ2(
図6の655)に送信される外部証明書781(「ID
L1 certificate」)である。外部証明書781は、デバイスから送信されたデータの起点を検証及び/または認証する能力をもたらすことができる。実施例として、ホストから送信されたデータは、
図9と関連して更に説明されるように、証明書を検証することによって、ホストの識別子と関連付けられ得る。更に、外部公開鍵(「K
L1 public key」)783は、レイヤ2に送信され得る。したがって、ホストの公開識別765、証明書781、及び外部公開鍵783は、メモリデバイスのレイヤ2に送信され得る。
【0097】
図8は、本開示の実施形態に従った、いくつかのパラメータを判定する例示的な処理のブロック図である。
図8は、デバイス識別(「ID
L2 public」)866、デバイス証明書(「ID
L2 Certificate」)882、及びデバイス公開鍵(「K
L2 public key」)884を生成するメモリデバイス(例えば、
図6におけるメモリデバイス606)のレイヤ2 855を示す。
【0098】
図7において説明されるように、ホストのレイヤ1からメモリデバイスのレイヤ2 855に送信される外部公開鍵(「K
L1 public key」)883は、メモリデバイスの公開識別(「ID
lk public」)866及び秘密識別868を生成するために、メモリデバイスの非対称ID生成器862によって使用される。省略された「ID
lk public」では、「lk」は、レイヤk(この実施例では、レイヤ2)を示し、「public」は、識別が公然に共有されることを示す。公開識別866は、レイヤ2 855の右側及び外側に伸びる矢印によって共有されるとして示される。生成された秘密識別868は、暗号化器874に入力される鍵として使用される。
【0099】
図8に示されるように、外部公開鍵883と共に、外部証明書881及び外部識別865は、証明書検証器847によって使用される。証明書検証器847は、ホスト(例えば、ホスト602)から受信された外部証明書881を検証することができ、外部証明書881が検証されること、または検証されないことに応答して、ホストから受信されたデータを受諾または破棄するかどうかを判定することができる。外部証明書881を検証することの更なる詳細は、
図9と関連して説明される。
【0100】
メモリデバイスのレイヤ2 855は、非対称鍵生成器864を含み得る。少なくとも1つの実施例では、乱数生成器(RND)838は任意選択で、非対称鍵生成器864に乱数を入力することができる。非対称鍵生成器864は、
図6におけるメモリデバイス606などのメモリデバイスと関連付けられた公開鍵(「K
Lk public」)870(デバイス公開鍵と称される)及び秘密鍵(「K
LK private」)872(デバイス秘密鍵と称される)を生成することができる。デバイス公開鍵870は、暗号化器874への入力(「データ」としての)であり得る。暗号化器874は、デバイス秘密識別868及びデバイス公開鍵870の入力を使用して、結果K’876を生成することができる。デバイス秘密鍵872及び結果K’876は、追加の暗号化器878への入力であり得、出力K’’880を結果としてもたらす。出力K’’880は、レイヤ1(
図6の653)に再度送信されるデバイス証明書(「ID
L2 Certificate」)882である。デバイス証明書882は、デバイスから送信されたデータの起点を検証及び/または認証する能力をもたらすことができる。実施例として、メモリデバイスから送信されたデータは、
図9と関連して更に説明されるように、証明書を検証することによって、メモリデバイスの識別子と関連付けられ得る。更に、デバイス公開鍵(「K
L2 public key」)884は、レイヤ1に送信され得る。したがって、メモリデバイスの公開識別866、証明書882、及びデバイス公開鍵884は、ホストのレイヤ1に送信され得る。
【0101】
実施例では、ホストがメモリデバイスから公開鍵を受信したことに応答して、ホストは、デバイス公開鍵を使用して、メモリデバイスに送信されることになるデータを暗号化することができる。逆もまた同様に、メモリデバイスは、外部公開鍵を使用して、ホストに送信されることになるデータを暗号化することができる。メモリデバイスがデバイス公開鍵を使用して暗号化されたデータを受信したことに応答して、メモリデバイスは、その自身のデバイス秘密鍵を使用してデータを復号することができる。同様に、ホストが外部公開鍵を使用して暗号化されたデータを受信したことに応答して、ホストは、その自身の外部秘密鍵を使用してデータを復号することができる。デバイス秘密鍵がメモリデバイスの外部の別のデバイスと共有されず、外部秘密鍵がホストの外部の別のデバイスと共有されないので、メモリデバイス及びホストに送信されたデータは、安全なままである。
【0102】
図9は、本開示の実施形態に従った、証明書を検証する例示的な処理のブロック図である。
図9の示される実施例では、公開鍵983、証明書981、及び公開識別965は、ホストから(例えば、
図6におけるホスト602のレイヤ1 653から)提供される。証明書981及び外部公開鍵983のデータは、復号器985への入力として使用され得る。復号器985は、データを復号するために使用される、いずれかのプロセッサ、コンピューティングデバイスなどであり得る。証明書981及び外部公開鍵983復号の結果は、出力を結果としてもたらす、公開識別と共に二次復号器987への入力として使用され得る。外部公開鍵983及び復号器987からの出力は、989において示されるように、出力としてyesまたはno991を結果としてもたらす、証明書が比較によって検証されるかどうかを示すことができる。証明書が検証されたことに応答して、検証されるデバイスから受信されたデータは、受諾、復号、及び処理され得る。証明書が検証されないことに応答して、検証されるデバイスから受信されたデータは、破棄、除去、及び/または無視され得る。このようにして、悪質なデータを送信する悪質なデバイスを検出及び回避することができる。実施例として、処理されることになるデータを送信するハッカーを識別することができ、ハッキングデータが処理されない。
【0103】
図10は、本開示の実施形態に従った、署名を検証する例示的な処理のブロック図である。後続の拒絶を回避するために検証され得るデータをデバイスが送信しているインスタンスでは、署名がデータと共に生成及び送信され得る。実施例として、第1のデバイスは、第2のデバイスの要求を行ってもよく、第2のデバイスが要求を実行すると、第1のデバイスは、第1のデバイスがそのような要求を行わないことを示してもよい。署名を使用することなどの拒絶回避アプローチは、第1のデバイスによって拒絶を回避することができ、第2のデバイスは、後続の困難なしに要求されたタスクを実行することができる。
【0104】
メモリデバイス1006(
図2におけるメモリデバイス206など)は、ホスト(
図2におけるホスト202など)にデータ1090を送信することができる。メモリデバイス1006は、1094において、デバイス秘密鍵1071を使用して署名1096を生成することができる。署名1096は、ホスト1002に送信され得る。ホスト1002は、1098において、前に受信されたデータ1092及び外部公開鍵1069を使用して署名を検証することができる。このようにして、署名は、秘密鍵を使用して生成され、公開鍵を使用して検証される。このようにして、一意な署名を生成するために使用される秘密鍵は、署名を送信するデバイスに対して秘密なままであることができると共に、受信デバイスが検証のために送信デバイスの公開鍵を使用して署名を復号することができることを可能にする。これは、送信デバイスが受信デバイスの公開鍵を使用することによって暗号化され、受信デバイスが受信機の秘密鍵を使用することによって復号される、データの暗号化/復号とは対照的である。少なくとも1つの実施例では、デバイスは、内部暗号処理(例えば、楕円曲線デジタル署名(ECDSA))または同様の処理を使用することによってデジタル署名を検証することができる。
【0105】
図11は、本開示の実施形態に従った、例示的なメモリデバイス1106のブロック図である。メモリデバイス1106は、例えば、
図2と関連して前に説明されたメモリデバイス206であり得る。
【0106】
図11に示されるように、メモリデバイス1106は、いくつかのメモリアレイ1101-1~1101-7を含み得る。メモリアレイ1101-1~1101-7は、
図1と関連して前に説明されたメモリアレイ101と同様であり得る。更に、
図11に示される実施例では、メモリアレイ1101-3は、セキュアアレイであり、メモリアレイ1101-6のサブセット1111は、セキュアアレイを含み、メモリアレイ1101-7のサブセット1113及び1115は、セキュアアレイを含む。サブセット1111、1113、及び1115は各々、例えば、4キロバイトのデータを含み得る。しかしながら、本開示の実施形態は、特定の数または配列のメモリアレイまたはセキュアアレイに限定されない。
【0107】
図11に示されるように、メモリデバイス1106は、修復(例えば、回復)ブロック1117を含み得る。修復ブロック1117は、メモリデバイス1106の動作の間に発生する場合がある誤り(例えば、不一致)のケースにおいてデータの起点として使用され得る。修復ブロック1117は、ホストによってアドレス指定可能であるメモリデバイス1106の領域の外側であってもよい。
【0108】
図11に示されるように、メモリデバイス1106は、シリアルペリフェラルインタフェース(SPI)1104及びコントローラ1108を含み得る。メモリデバイス1106は、本明細書で前に説明されたように(例えば、
図2に関連して)、ホスト及びメモリアレイ1101-1~1101-7と通信するために、SPI 1104及びコントローラ1108を使用することができる。
【0109】
図11に示されるように、メモリデバイス1106は、メモリデバイス1106のセキュリティを管理するためのセキュアレジスタ1119を含み得る。例えば、セキュアレジスタ1119は、アプリケーションコントローラを構成することができ、アプリケーションコントローラと外部で通信することができる。更に、セキュアレジスタ1119は、認証コマンドによって修正可能であってもよい。
【0110】
図11に示されるように、メモリデバイス1106は、鍵1121を含み得る。例えば、メモリデバイス1106は、ルート鍵DICE-RIOT鍵、及び/または他の外部セッション鍵などの鍵を記憶するための8個の異なるスロットを含み得る。
【0111】
図11に示されるように、メモリデバイス1106は、電子的消去可能プログラマブルリードオンリメモリ(EEPROM)1123を含み得る。EEPROM 1123は、データの個々のバイトを消去及びプログラムすることができる、ホストに対して利用可能な安全な不揮発性領域を設けることができる。
【0112】
図11に示されるように、メモリデバイス1106は、カウンタ(例えば、モノトニックカウンタ)1125を含み得る。カウンタ1125は、ホストから受信され、及び/またはホストに送信されたコマンド(例えば、コマンドセットまたはシーケンスを署名するための)アンチリプレイ機構(例えば、フレッシュネス生成器)として使用され得る。例えば、メモリデバイス1106は、6個の異なるモノトニックカウンタを含み得、その2つは、認証されたコマンドに対してメモリデバイス1106によって使用されてもよく、その4つは、ホストによって使用されてもよい。
【0113】
図11に示されるように、メモリデバイス1106は、SHA-256暗号学的ハッシュ関数1127及び/またはHMAC-SHA256暗号学的ハッシュ関数1129を含み得る。SHA-256暗号学的ハッシュ関数1127及び/またはHMAC-SHA256暗号学的ハッシュ関数1129は、例えば、本明細書で前に説明されたブロック220の暗号学的ハッシュ、及び/または本明細書で前に説明されたメモリアレイ1101-1~1101-7に記憶されたデータを有効であると確認するために使用されるゴールデンハッシュなど、暗号学的ハッシュを生成するためにメモリデバイス1106によって使用され得る。更に、メモリデバイス1106は、DICE-RIOT 1131のL0及びL1をサポートすることができる。
【0114】
本明細書では特定の実施形態が示され説明されたが、示される特定の実施形態は、同じ結果を達成するように意図された構成と置き換えられ得ることを、当業者は理解するであろう。本開示は、本開示のいくつかの実施形態の適合形態または変形形態を含むことを意図する。上記の説明は、例示目的であり、限定目的ではないことを理解されたい。上記の実施形態の組み合わせ、及び本明細書に具体的に記載されていない他の実施形態は、上記の説明を検討することで、当業者には明らかとなるであろう。本開示のいくつかの実施形態の範囲は、上記の構造及び方法が使用される他の用途を含む。したがって、本開示のいくつかの実施形態の範囲は、添付の特許請求の範囲と、添付の特許請求の範囲に権利を与えられた内容と同等物の全範囲とを参照して、特定されるべきである。
【0115】
前述の発明を実施するための形態では、本開示を簡素化する目的で、いくつかの特徴が単一の実施形態にまとめられている。本開示のこの方法は、本開示の開示された実施形態が、各請求項に明確に列挙された特徴より多くの特徴を使用する必要があるという意図を反映するものとして、解釈されるべきではない。むしろ、下記の特許請求の範囲が反映するように、発明の主題は、開示された単一の実施形態の全ての特徴よりも少ない特徴で存在する。したがって、下記の特許請求の範囲は、本明細書では発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。