(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-06-08
(54)【発明の名称】安全な電子制御装置更新のためのローカル台帳ブロックチェーン
(51)【国際特許分類】
H04L 9/32 20060101AFI20220601BHJP
G06F 21/64 20130101ALI20220601BHJP
【FI】
H04L9/32 200Z
G06F21/64
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021557304
(86)(22)【出願日】2020-03-10
(85)【翻訳文提出日】2021-11-08
(86)【国際出願番号】 US2020021819
(87)【国際公開番号】W WO2020197755
(87)【国際公開日】2020-10-01
(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~3のいずれか1項に記載の装置。
【請求項5】
前記回路が、前記グローバル台帳ブロックチェーンから受信した前記複数のグローバルブロックのグローバルブロックを、それらが前記装置に関連しているとの判定に応えて、前記ローカル台帳ブロックチェーンに連続して追加するように構成される、請求項4に記載の装置。
【請求項6】
前記グローバルブロックの前のローカルブロックフィールドが前記ローカル台帳ブロックチェーンの前記最新ローカルブロック内の最新ローカルブロックフィールドと一致するとき、前記グローバルブロックが前記ローカル台帳ブロックチェーンに追加される、請求項1~3のいずれか1項に記載の装置。
【請求項7】
前記メモリがメモリセルのアレイを備え、
前記回路が、前記アレイを定義するように構成されたレジスタのペアを含む、
請求項1~3のいずれか1項に記載の装置。
【請求項8】
前記レジスタのペアが、
前記アレイのアドレスを定義するように構成されたレジスタと、
前記アレイのサイズを定義するように構成されたレジスタと
を含む、請求項7に記載の装置。
【請求項9】
装置であって、
メモリと、
回路であって、
グローバル台帳ブロックチェーンからグローバルブロックを受信し、
前記グローバルブロックが前記装置に関連するかどうかを判定し、
前記メモリに記憶された電子制御装置データの電子制御装置更新を有効であると確認するためのローカル台帳ブロックチェーンに前記グローバルブロックを追加するように構成された、前記回路と
を備え、
前記ローカル台帳ブロックチェーンに追加される前記グローバルブロックが、
前記ローカル台帳ブロックチェーン内の最新ローカルブロックの暗号学的ハッシュと、
更新される前記メモリに記憶された前記電子制御装置データの暗号学的ハッシュと
を含み、
前記ローカル台帳ブロックチェーンの前記最新ローカルブロックは、前記グローバルブロックが権限を有するエンティティからのものであることを示す、前記最新ローカルブロックと関連付けられたデジタル署名を有する、
前記装置。
【請求項10】
前記回路が、前記グローバルブロックの前のローカルブロックフィールドを識別することによって、前記グローバルブロックのフレッシュネスフィールドを判定するように構成される、請求項9に記載の装置。
【請求項11】
前記ローカル台帳ブロックチェーンの前記最新ローカルブロックと、前記グローバル台帳ブロックチェーン内の前記グローバルブロックの前記前のローカルブロックフィールドとが同一である、請求項10に記載の装置。
【請求項12】
前記ローカル台帳ブロックチェーンが、前記メモリのユーザーがアクセスできない前記メモリの部分に記憶される、請求項9~11のいずれかに記載の装置。
【請求項13】
システムであって、
メモリと、
前記メモリに記憶された電子制御装置データへの電子制御装置更新を有効であると確認するためのローカル台帳ブロックチェーンを生成するための回路であって、前記ローカル台帳ブロックチェーンが、グローバル台帳ブロックチェーンからのグローバルブロックから成り、前記グローバルブロックが、
前記ローカル台帳ブロックチェーン内の最新ローカルブロックの暗号学的ハッシュと、
更新される前記メモリに記憶された前記電子制御装置データの暗号学的ハッシュと
を含み、
前記ローカル台帳ブロックチェーンの前記最新ローカルブロックは、前記グローバルブロックが権限を有するエンティティからのものであることを示す、前記最新ローカルブロックと関連付けられたデジタル署名を有する、前記回路と、
ホストであって、
前記メモリから前記ローカル台帳ブロックチェーンを受信し、
前記受信したローカル台帳ブロックチェーンを使用して、前記メモリに記憶された前記電子制御装置データへの前記電子制御装置更新を有効であると確認するように構成された、
前記ホストと
を備える、前記システム。
【請求項14】
前記ローカル台帳ブロックチェーンが閾値に達すると、前記回路が、前記ローカル台帳ブロックチェーンからローカルブロックを削除する、請求項13に記載のシステム。
【請求項15】
前記回路が、前記ローカル台帳ブロックチェーンのルートを改変するためにファームウェアを実行することによって、前記ローカル台帳ブロックチェーンからローカルブロックを削除する、請求項14に記載のシステム。
【請求項16】
前記回路が、前記デジタル署名に含まれるフレッシュネスフィールドが予測されたフレッシュネスフィールドであると判定するとき、前記回路が、不変レコードとして前記ローカル台帳ブロックチェーンに前記グローバルブロックを追加する、請求項15に記載のシステム。
【請求項17】
システムであって、
メモリを含むホストと、
回路であって、
前記メモリに記憶された電子制御装置データへの電子制御装置更新を有効であると確認するためのローカル台帳ブロックチェーンを生成することと、
グローバル台帳ブロックチェーンからグローバルブロックを受信することであって、前記ローカル台帳ブロックチェーンが、前記グローバル台帳ブロックチェーンからのグローバルブロックから成る、前記受信することと、
第1の部分の前記グローバルブロックの各々と関連付けられたデジタル署名が前記ホストに関連すると前記回路によって検証されるとき、前記ローカル台帳ブロックチェーンに前記グローバルブロックの前記第1の部分を追加することと、
前記グローバルブロックの第2の部分が前記ホストと関連していないとき、前記受信したグローバルブロックの前記第2の部分を破棄することと
を行うように構成された、前記回路と
を備える、前記システム。
【請求項18】
前記第1の部分の前記グローバルブロックの各々が、前記デジタル署名を生成するために使用されるフレッシュネスフィールドを含む、請求項17に記載のシステム。
【請求項19】
前記第1の部分の前記グローバルブロックの各々の前記フレッシュネスフィールドが、前記ローカル台帳ブロックチェーンの最新ローカルブロックに対応する、請求項17~18のいずれかに記載のシステム。
【請求項20】
前記第1の部分の前記グローバルブロックが、前記ローカル台帳ブロックチェーンに順番に追加され、前記ホストと関連付けられた前記メモリに記憶される、請求項19のいずれかに記載のシステム。
【発明の詳細な説明】
【技術分野】
【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」、及び「X」は、そのように指定されたいくつかの特定の特徴が、本開示のいくつかの実施形態とともに含まれる場合があることを示す。番号は、指定の間で同一である場合もあれば、異なる場合もある。
【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(ブロック0)、107-1(ブロック1)、...、107-B(ブロックB)を有する。メモリセルは、シングルレベルセル、及び/または、例えば、2レベルセル、トリプルレベルセル(TLC)、またはクワドルプルレベルセル(QLC)などのマルチレベルセルであり得る。実施例として、メモリアレイ101内の物理ブロックの数は、128個のブロック、512個のブロック、または1,024個のブロックであってもよいが、実施形態は、メモリアレイ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】
セキュアアレイが定義されると、回路210は認証され、かつアンチリプレイ保護されたコマンドを使用して、本明細書でゴールデンハッシュと称される場合があるセキュアアレイと関連付けられた暗号学的ハッシュを、(例えば、メモリデバイス206のみがゴールデンハッシュを知り、メモリデバイス206のみがゴールデンハッシュを生成し、更新することができるように)生成する(例えば、計算する)ために使用できる。ゴールデンハッシュは、メモリアレイ201のアクセスできない部分(例えば、ブロックチェーンデータ220及びローカル台帳ブロックチェーンが記憶される同じアクセスできない部分)に記憶されてもよく、セキュアアレイのデータを有効であると確認するプロセスの間に使用することができる。
【0033】
1つの例示的な実施形態では、メモリデバイス206は、(例えば、回路210を使用して)メモリアレイ201に記憶された電子制御装置データを更新する前に、電子制御装置更新(例えば、ブロックチェーンデータのペイロード)を有効であると確認するために、インタフェース204を介してホスト202に、ブロックチェーンデータ220と関連付けられたデジタル署名と共に、(グローバル台帳ブロックチェーンから受信したグローバルブロックであってよい)ブロックチェーンデータ220を送信できる。例えば、回路210は、メモリデバイス206の電源供給(例えば、出源投入及び/または起動)に応えて、受信され、メモリアレイ201に記憶されたブロックチェーンデータ220を検知し(例えば、読み取り)、アレイ201に記憶された電子制御装置データへの電子制御装置更新を有効であると確認するためにホスト202に検知したブロックチェーンデータ220を送信できる。したがって、メモリアレイ201に記憶された電子制御装置データへの電子制御装置更新を有効であると確認することは、メモリデバイス206の電力供給時に(例えば、自動的に)開始できる。
【0034】
追加の実施例として、回路210は、ホスト202などの外部エンティティがメモリアレイ201に記憶された電子制御装置データへの電子制御装置更新を有効であることの確認を開始すると、ホスト202に、ブロックチェーンデータ220と関連付けられたデジタル署名とともに、ブロックチェーンデータ220を送信することができる。例えば、ホスト202は、ブロックチェーンデータ220を検知するためにコマンドをメモリデバイス206(例えば、回路210)に送信することができ、回路210は、コマンドの受信に応えて、ブロックチェーンデータ220を検知するコマンドに作用し、アレイ201に記憶されたデータを有効であると確認するために検知したブロックチェーンデータ220をホスト202に送信することができる。
【0035】
ホスト202は、ブロックチェーンデータ220を受信すると、受信したブロック(例えば、受け取ったグローバルブロックのペイロード)を使用して、メモリアレイ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の存続期間を通じてそのような方法でメモリアレイ201に記憶された電子制御装置データへの電子制御装置更新を有効であると確認するために、追加のローカルブロックがグローバルブロックとして受信されると回路210によって生成され、ホスト202によって有効であると確認され、ホスト202によって使用され続ける場合がある。
【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に記憶し、維持するために
図6~
図11に説明する暗号化技術を使用し得る。一実施例では、特定の車両、例えば、ノード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のブロック台帳内のブロックである。「ローカルブロック」は、特定のノード、例えば、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上で維持されるローカル台帳ブロックチェーンに対して有効であると確認されない場合、グローバル台帳ブロックチェーンのそれぞれのグローバルブロックは、それらから拒否され得る。いくつかの実施例では、グローバル台帳ブロックチェーンのそれぞれのグローバルブロックを拒否したことに応えて、特定のノードは、例えば
図2Bに示すホスト202-4、202-5、…、202-Nなど、そのそれぞれのホスト及び/または車両製造業者に警告することができる。
【0053】
例えば、グローバルブロックチェーンデータが、特定のメモリによって受信されて、有効であると確認され、ローカル台帳ブロックチェーン内でローカルブロックとして記憶されるとき、グローバルブロックチェーンデータは、それがローカル台帳ブロックチェーン内でローカルブロックになる前に、例えば
図2Aの回路210など、回路及びロジックによって有効であると確認されなければならない。
図3の実施例では、グローバルブロック320-1は、例えば回路210によって有効であると確認されてローカル台帳ブロックチェーン324内でローカルブロック321-1になり、グローバルブロック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-4は、ローカルブロック321-1が、本明細書に説明する回路及びロジックによって有効であると確認された後に、ローカル台帳ブロックチェーン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は、グローバルブロック320-2(前の関連するグローバルブロック)のハッシュを有するローカルブロックフィールドを、それらが両方とも車両ID_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に関連付けられていると判定してよく、回路は、グローバル台帳ブロックチェーン322から受信した複数のグローバルブロックのうちのグローバルブロック320-1、320-4、320-5を有効であると確認し、有効であると確認した場合、それらがホスト車両ID_1に関連していることが検証されたため、それらをローカルブロック321-1、321-4、及び321-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は、それぞれのホスト及び/またはメモリ交換のメモリに記憶された電子制御装置データの安全な電子制御装置更新のために使用されるブロックチェーンである。一実施例として、ホスト及び/またはメモリ交換は、特定の識別子、例えば、識別子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は、回路が、次に来るグローバルブロック(例えば、320-4)を有効であると確認してそれをローカルブロック421-4としてローカル台帳ブロックチェーン424に追加するとき、グローバルブロックヘッダ430-4内のフレッシュネスフィールドと同一である。更に言い換えると、グローバルブロックヘッダ430-4のフレッシュネスフィールドは、最新ローカルブロック421-1が前にグローバルブロック320-1であったことを理由に、ローカル台帳ブロックチェーン424のローカルブロック421-1の最新ローカルブロックハッシュ434-1に一致するはずである。
【0080】
ローカルブロックヘッダ、例えば、432-1、432-4、及び432-5は、各々、(ローカル台帳ブロックチェーン424を共にリンクするために)前のローカルブロックハッシュ、例えば、433-1、433-4、及び433-5、ならびに(次に来るグローバルブロックのフレッシュネスフィールドと同一である)最新ローカルブロックハッシュ、例えば、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にローカルブロックとしてグローバルブロックを追加し続け得る。いくつかの実施例では、より多くの電子制御装置更新が、権限を有するエンティティによって生成されるときに、ローカル台帳ブロックチェーン424は増大するので、ID_1と関連付けられたホスト及び/またはメモリは、メモリ内に空白を作り出すためにローカル台帳ブロックチェーン424のより古い部分を削除し得る。
【0084】
例えば、ホスト及び/またはメモリは、ID_1を有する車両のコンピューティングデバイスであってよく、ローカル台帳ブロックチェーン424は、電子制御装置(例えば、車両に搭載されたハードウェアコンポーネント)への更新を示すことができる。コンピューティングデバイスは、メモリに記憶することができる不変レコードの閾値量を含んでもよい。いくつかの実施例では、電子制御装置更新(例えば、438-1、438-2)は、コンピューティングデバイスのハードウェアコンポーネントを更新するために、グローバルブロックを介して権限を有するエンティティから推し進められ、回路は、ローカル台帳ブロックチェーン424が閾値に達すると、ローカル台帳ブロックチェーン424からローカルブロック(例えば、より古いローカルブロック)を削除し得る。回路は、ローカル台帳ブロックチェーン424のルート(例えば、コンセンサスのルート、Merkleツリーのルートなど)を改変するためにファームウェアを実行することによって、より古いローカルブロック(例えば、421-1)を削除して、より新しいローカルブロック(例えば、421-5)のためにコンピューティングデバイスのメモリに空白を作り出し得る。このようにして、回路は、ローカルブロックチェーン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公開」)765及び秘密識別767を生成するために、非対称ID生成器761によって使用される。省略された「IDlk公開」では、「lk」は、レイヤk(この実施例では、レイヤ1)を示し、「公開」は、識別が公然に共有されることを示す。公開識別765は、ホストのレイヤ1 753の右側及び外側に伸びる矢印によって共有されるとして示される。生成された秘密識別767は、暗号化器773に入力される鍵として使用される。暗号化器773は、データを暗号化するために使用されるいずれかのプロセッサ、コンピューティングデバイスなどであり得る。
【0096】
ホストのレイヤ1 753は、非対称鍵生成器763を含み得る。少なくとも1つの実施例では、乱数生成器(RND)736は任意選択で、非対称鍵生成器763に乱数を入力することができる。非対称鍵生成器763は、
図6におけるホスト602などのホストと関連付けられた公開鍵(「K
Lk公開」)769(外部公開鍵と称される)及び秘密鍵(「K
LK秘密」)771(外部秘密鍵と称される)を生成することができる。外部公開鍵769は、暗号化器773への入力(「データ」としての)であり得る。暗号化器773は、外部秘密識別767及び外部公開鍵769の入力を使用して、結果K’775を生成することができる。外部秘密鍵771及び結果K’775は、追加の暗号化器777への入力であり得、出力K’’779を結果としてもたらす。出力K’’779は、レイヤ2(
図6の655)に送信される外部証明書(「ID
L1証明書」)である。外部証明書781は、デバイスから送信されたデータの起点を検証及び/または認証する能力をもたらすことができる。実施例として、ホストから送信されたデータは、
図9と関連して更に説明されるように、証明書を検証することによって、ホストの識別子と関連付けられ得る。更に、外部公開鍵(「K
L1公開鍵」)783は、レイヤ2に送信され得る。したがって、ホストの公開識別765、証明書781、及び外部公開鍵783は、メモリデバイスのレイヤ2に送信され得る。
【0097】
図8は、本開示の実施形態に従った、いくつかのパラメータを判定する例示的な処理のブロック図である。
図8は、デバイス識別(「ID
L2公開」)866、デバイス証明書(「ID
L2証明書」)882、及びデバイス公開鍵(「K
L2公開鍵」)884を生成するメモリデバイス(例えば、
図6におけるメモリデバイス606)のレイヤ2 855を示す。
【0098】
図7において説明されるように、ホストのレイヤ1からメモリデバイスのレイヤ2 855に送信される外部公開鍵(「K
L1公開鍵」)883は、メモリデバイスの公開識別(「ID
lk公開」)866及び秘密識別868を生成するために、メモリデバイスの非対称ID生成器862によって使用される。省略された「ID
lk公開」では、「lk」は、レイヤk(この実施例では、レイヤ2)を示し、「公開」は、識別が公然に共有されることを示す。公開識別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公開」)870(デバイス公開鍵と称される)及び秘密鍵(「K
LK秘密」)872(デバイス秘密鍵と称される)を生成することができる。デバイス公開鍵870は、暗号化器874への入力(「データ」としての)であり得る。暗号化器874は、デバイス秘密識別868及びデバイス公開鍵870の入力を使用して、結果K’876を生成することができる。デバイス秘密鍵872及び結果K’876は、追加の暗号化器878への入力であり得、出力K’’880を結果としてもたらす。出力K’’880は、レイヤ1(
図6の653)に再度送信されるデバイス証明書(「ID
L2証明書」)882である。デバイス証明書882は、デバイスから送信されたデータの起点を検証及び/または認証する能力をもたらすことができる。実施例として、メモリデバイスから送信されたデータは、
図9と関連して更に説明されるように、証明書を検証することによって、メモリデバイスの識別子と関連付けられ得る。更に、デバイス公開鍵(「K
L2公開鍵」)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】
前述の「発明を実施するための形態」では、本開示を簡素化する目的のために、単一の実施形態にいくつかの特徴を一緒にまとめている。開示のこの方法は、本開示の開示された実施形態が、各請求項に明示的に記載されたものよりも多くの特徴を使用する必要があるという意図を反映したものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示される実施形態の全ての特徴にあるわけではない。したがって、下記の特許請求の範囲は、本明細書では発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。
【手続補正書】
【提出日】2021-11-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
装置であって、
メモリと、
前記メモリに記憶された電子制御装置データの電子制御装置更新を有効であると確認するためのローカル台帳ブロックチェーンに追加されるグローバルブロックを受信するように構成された回路とを備え、
前記ローカル台帳ブロックチェーンに追加される前記グローバルブロックが、
前記ローカル台帳ブロックチェーン内の最新ローカルブロックの暗号学的ハッシュと、
更新される前記メモリに記憶された前記電子制御装置データの暗号学的ハッシュと
を含み、
前記ローカル台帳ブロックチェーン内の前記最新ローカルブロックは、前記グローバルブロックが権限を有するエンティティか
らであることを示す、前記最新ローカルブロックと関連付けられたデジタル署名を有する、
前記装置。
【請求項2】
前記ローカル台帳ブロックチェーンは、レジスタのペアによって定義されたセキュアアレイに記憶されている、請求項1
に記載の装置。
【請求項3】
前記回路は、前記ローカル台帳ブロックチェーンの一部として、前記グローバルブロックを前記メモリに記憶するように構成されている、請求項1に記載の装置。
【請求項4】
前記回路が、
グローバル台帳ブロックチェーンから複数のグローバルブロックを受信
し、
前記グローバル台帳ブロックチェーンから受信した前記複数のグローバルブロックのグローバルブロックを、それらが前記装置に関連しているとの判定に応えて、前記ローカル台帳ブロックチェーンに連続して追加する
ように構成される、
請求項1~3のいずれか1項に記載の装置。
【請求項5】
前記グローバルブロックの前のローカルブロックフィールドが前記ローカル台帳ブロックチェーンの前記最新ローカルブロック内の最新ローカルブロックフィールドと一致するとき、前記グローバルブロックが前記ローカル台帳ブロックチェーンに追加される、請求項1~3のいずれか1項に記載の装置。
【請求項6】
前記メモリがメモリセルのアレイを備え、
前記回路が、前記アレイを定義するように構成されたレジスタのペアを含
み、
前記レジスタのペアが、
前記アレイのアドレスを定義するように構成されたレジスタと、
前記アレイのサイズを定義するように構成されたレジスタと
を含む、
請求項1~3のいずれか1項に記載の装置。
【請求項7】
装置であって、
メモリと、
回路であって、
グローバル台帳ブロックチェーンからグローバルブロックを受信し、
前記グローバルブロックが前記装置に関連するかどうかを判定し、
前記メモリに記憶された電子制御装置データの電子制御装置更新を有効であると確認するためのローカル台帳ブロックチェーンに前記グローバルブロックを追加するように構成された、前記回路と
を備え、
前記ローカル台帳ブロックチェーンに追加される前記グローバルブロックが、
前記ローカル台帳ブロックチェーン内の最新ローカルブロックの暗号学的ハッシュと、
更新される前記メモリに記憶された前記電子制御装置データの暗号学的ハッシュと
を含み、
前記ローカル台帳ブロックチェーンの前記最新ローカルブロックは、前記グローバルブロックが権限を有するエンティティからのものであることを示す、前記最新ローカルブロックと関連付けられたデジタル署名を有する、
前記装置。
【請求項8】
前記回路が、前記グローバルブロックの前のローカルブロックフィールドを識別することによって、前記グローバルブロックのフレッシュネスフィールドを判定するように構成
され、
前記ローカル台帳ブロックチェーンの前記最新ローカルブロックと、前記グローバル台帳ブロックチェーン内の前記グローバルブロックの前記前のローカルブロックフィールドとが同一である、請求項
7に記載の装置。
【請求項9】
前記ローカル台帳ブロックチェーンが、前記メモリのユーザーがアクセスできない前記メモリの部分に記憶される、請求項
7~8のいずれか
1項に記載の装置。
【請求項10】
システムであって、
メモリと、
前記メモリに記憶された電子制御装置データへの電子制御装置更新を有効であると確認するためのローカル台帳ブロックチェーンを生成するための回路であって、前記ローカル台帳ブロックチェーンが、グローバル台帳ブロックチェーンからのグローバルブロックから成り、前記グローバルブロックが、
前記ローカル台帳ブロックチェーン内の最新ローカルブロックの暗号学的ハッシュと、
更新される前記メモリに記憶された前記電子制御装置データの暗号学的ハッシュと
を含み、
前記ローカル台帳ブロックチェーンの前記最新ローカルブロックは、前記グローバルブロックが権限を有するエンティティからのものであることを示す、前記最新ローカルブロックと関連付けられたデジタル署名を有する、前記回路と、
ホストであって、
前記メモリから前記ローカル台帳ブロックチェーンを受信し、
前記受信したローカル台帳ブロックチェーンを使用して、前記メモリに記憶された前記電子制御装置データへの前記電子制御装置更新を有効であると確認するように構成された、
前記ホストと
を備える、前記システム。
【請求項11】
前記ローカル台帳ブロックチェーンが閾値に達すると、前記回路が、
前記ローカル台帳ブロックチェーンのルートを改変するためにファームウェアを実行することによって、前記ローカル台帳ブロックチェーンからローカルブロックを削除し、
前記回路が、前記デジタル署名に含まれるフレッシュネスフィールドが予測されたフレッシュネスフィールドであると判定するとき、不変レコードとして前記ローカル台帳ブロックチェーンに前記グローバルブロックを追加する、請求項
10に記載のシステム。
【請求項12】
システムであって、
メモリを含むホストと、
回路であって、
前記メモリに記憶された電子制御装置データへの電子制御装置更新を有効であると確認するためのローカル台帳ブロックチェーンを生成することと、
グローバル台帳ブロックチェーンからグローバルブロックを受信することであって、前記ローカル台帳ブロックチェーンが、前記グローバル台帳ブロックチェーンからのグローバルブロックから成る、前記受信することと、
第1の部分の前記グローバルブロックの各々と関連付けられたデジタル署名が前記ホストに関連すると前記回路によって検証されるとき、前記ローカル台帳ブロックチェーンに前記グローバルブロックの前記第1の部分を追加することと、
前記グローバルブロックの第2の部分が前記ホストと関連していないとき、前記受信したグローバルブロックの前記第2の部分を破棄することと
を行うように構成された、前記回路と
を備える、前記システム。
【請求項13】
前記第1の部分の前記グローバルブロックの各々が、前記デジタル署名を生成するために使用されるフレッシュネスフィールドを含む、請求項
12に記載のシステム。
【請求項14】
前記第1の部分の前記グローバルブロックの各々の前記フレッシュネスフィールドが、前記ローカル台帳ブロックチェーンの最新ローカルブロックに対応
し、
前記第1の部分の前記グローバルブロックが、前記ローカル台帳ブロックチェーンに順番に追加され、前記ホストと関連付けられた前記メモリに記憶される、請求項
12~13のいずれかに記載のシステム。
【国際調査報告】