本開示は、セキュアトラフィック監視のための装置、方法、及びシステムを含む。セキュアトラフィック監視のための例示的な装置は、メモリ及び回路を含んでもよい。回路は、エンティティから、識別データ、署名、及び位置に進入する要求を受信するように構成されてもよい。回路は、識別データ及び署名に基づいて、エンティティの同一性を検証することによって要求を分析するように構成されてもよい。回路は、エンティティと関連付けられたデータが位置への進入を認証するかどうかを判定するよう、ブロックチェーン内の複数のブロックのうちの少なくとも1つに諮問することによって更に、要求を分析するように構成されてもよい。ブロックチェーン内の複数のブロックの各々は、ブロックチェーン内の前のブロックの暗号学暗号学的ハッシュ、及びそれぞれの複数のブロックの各々の暗号学的ハッシュを含んでもよい。回路は、エンティティの同一性を検証し、位置への進入を認証したことに応答して、ブロックチェーン内の複数のブロックにおけるブロックを生成するように構成されてもよい。
ブロックチェーンの各々のブロックは、個々のホストまたは複数のホストと関連付けられてもよい。本明細書で説明されるように、メモリ及び回路は、ローカル台帳ブロックチェーンを生成するよう、グローバル台帳ブロックチェーンから複数のグローバルブロックを受信するように構成されてもよく、ローカル台帳ブロックチェーンは、回路と関連付けられたホスト及び/またはメモリに関連するブロックのみを含み、各々の関連するホスト及び/またはメモリは、特定の入口ポイント、特定のゲートなどと関連付けられる。
多くの脅威がメモリ(例えば、メモリデバイス)に記憶されたデータに影響を及ぼすことがある。例えば、メモリのアレイ及び/または回路において障害が発生する場合があり、それは、データにおいて発生する誤り及び特定の位置への権限を有しないアクセスを結果としてもたらすことがある。追加の例として、ハッカーまたは他の悪意のあるユーザは、悪意のある目的でデータへの権限を有しない変更を行う活動を実行することを試みる場合がある。ハッカーによって行われるそのような活動は、不正の同一性、制限された領域にアクセスする不正の要求などを含むことがある。そのようなハッキング活動(例えば、攻撃)は、車両エンティティがアクセスするのに承認を有していない制限された領域または位置にアクセスすることを可能にする場合があり、重大な安全性及び/またはセキュリティの問題を提示することがある。
したがって、セキュアメモリシステム、並びに特定の位置及び/または領域へのセキュアアクセスを保証するために、その識別データ及び/または位置にアクセスする要求が真正である(例えば、正確である、本物の/権限を有するエンティティからである)こと、並びにハッキング活動または他の権限を有しない変更及び/もしくは意図しない変更によって改変されておらず、且つ/または不正に提供されていないことを確認する(例えば、認証及び証明する)ことが重要である。本開示の実施形態は、識別データ及び/またはアクセス要求を効果的に有効であると確認し、それによって、セキュアメモリシステムを保証するために、ブロックチェーンデータ構造内のブロックとしてメモリを使用することができる(例えば、ブロックチェーンに対する記憶構成要素としてメモリを使用する)。例えば、本開示の実施形態は、追加の(例えば、新たな)構成要素または回路をメモリに追加する必要なしに、グローバルブロックチェーン内のブロックと関連付けられたメモリ、及び/または特定の車両エンティティ、特定の入口もしくはゲートなどとの関連を示すローカル台帳ブロックチェーン内のブロックのより具体的に編成されたデータを使用してなど、ブロックチェーン内のブロックとしてメモリを使用するために、メモリの既存の回路(例えば、メモリデバイスの既存のファームウェア)を修正することができ、利用することができ、及び/または異なって動作させることができる。
本明細書で使用される「a」、「an」、または「いくつかの(a number of)」は、1つ以上のものを指すことができ、「複数の(a plurality of)」は、2つ以上のものを指すことができる。例えば、1つのメモリデバイスは、1つ以上のメモリデバイスを指すことができ、複数のメモリデバイスは、2つ以上のメモリデバイスを指すことができる。更に、特に図面の参照番号に関して本明細書で使用される指示子「R」、「B」、「S」、及び「N」は、指示子により指定されたいくつかの特定の特徴が、本開示のいくつかの実施形態に含まれることができることを示す。番号は、指定の間で同一であってもよく、または異なってもよい。
本明細書の図は、最初の数字(複数可)が図面の図番号に対応し、残りの数字が図面の要素または構成要素を識別番号付け規則に従う。異なる図面間の類似の要素または構成要素は、類似の数字を使用することで識別されてよい。例えば、102は、図1の要素「02」を指してよく、類似の要素は、図2では202と呼ばれてよい。
いくつかの前のアプローチでは、車両エンティティ(例えば、市民車両、救急車、警察車など)は、以下で説明されるよりも簡易化された通信方法を使用して、他のデバイス(入口、ゲートなどのデバイスなど)と通信することができる。車両エンティティが進入ノードと通信する実施例では、通信は、安全でない場合がある。例えば、通信を変更し、位置または領域への権限を有しないアクセスを得るよう通信を繰り返すなどのために、車両エンティティと進入ノード及び/または追加の進入ノードとの間の通信は、ハッカーまたは他のエンティティによって傍受及び/または操作される場合がある。そのような例では、車両エンティティは、通信の受信者に、車両エンティティがそのような通信を提供すること(位置にアクセスし、車道に進入する)が承認されることを保証するよう、その同一性を検証する能力を提供することができない。車両エンティティの同一性を検証し、車両エンティティが位置にアクセスすることが承認されるかどうかを検証する能力がない場合、通信が承認されない場合があり、位置にアクセスすることが承認されないことを結果としてもたらす場合がある。
車両エンティティと関連付けられた車両通信構成要素は、車両エンティティの同一性を検証することができ、他の車両、進入ゲートなどに対して行われた要求が承認されることを保証することができ、セキュア通信及び制限された位置にアクセスすることが承認されることを結果としてもたらす、署名、識別データなどを含む承認データを提供することができる。しかしながら、前のアプローチでは、車両エンティティと進入ノードとの間の通信は、公開されていること、及び安全でないことの両方である場合があり、位置に進入することから位置への権限を有するアクセスを実際に有する車両エンティティの能力に悪影響を及ぼすことがある可能性がある不法な活動を導入する。
本明細書で説明されるように、要求を提供するためのセキュア形式の通信を導入し、同一性を検証し、車両エンティティに対して位置へのアクセスが承認されるかどうかを判定することによって、要求データに関連して不法な活動に関連する情報は、拒絶、回避、破棄などがされる場合があり、及び/または位置へのアクセスが否定される場合がある。データを暗号化するために公開鍵が交換及び使用されてもよいと共に、データを復号するために、単一のエンティティに対して秘密且つ排他的のままである秘密鍵が使用されてもよい。このようにして、秘密鍵を有しないそれらは、最初に意図した以外の目的のためにアクセスデータを傍受すること、及びそれを使用することが防止される。更に、証明書及び署名は、データの送信者の同一性を検証し、意図した発信元または請求した発信元からデータが生じたことを保証するよう、秘密鍵を使用して生成されてもよい。
図1は、本開示の実施形態に従った、例示的な車両エンティティ102のブロック図である。車両エンティティ102は、自律車両、従来型非自律車両、またはサービス車両などであってもよい。車両エンティティ102は、車内コンピュータなどの車両コンピューティングデバイス112を含んでもよい。示されるように、車両コンピューティングデバイス112は、アンテナ119に結合された(例えば、またはそれを含む)、リーダ、ライタ、送受信機、及び/または情報を交換するために以下で説明される機能を実行することが可能な他のコンピューティングデバイスもしくは回路などの車両通信構成要素116に結合されたプロセッサ114を含んでもよい。車両通信構成要素116は、以下に記載されるアクションを実行する(例えば、命令を暗号化/復号、実行するなど)ために使用されるロジック及び回路を含んでもよい。車両通信構成要素116は、不揮発性フラッシュメモリなどのメモリ118に結合された処理リソース117を含んでもよいが、実施形態は、そのように限定されない。車両コンピューティングデバイス112は、自律車両、救急車、警察車両、消防車などの車両エンティティ102に結合されてもよく、またはそれらの中にあってもよい。
車両通信構成要素116は、図2と関連して説明される入口エンティティなどの追加のコンピューティングデバイスからトラフィックデータ、道路データ、及び/もしくは車両データを受信してもよく、または追加の電子標識、電子照明、及び/もしくはデジタル化車道などを受信してもよい。実施例として、車道及び/または標識は、道路/標識状況、道路/標識状態などと関連付けられたデータを通信することができる通信構成要素(車両通信構成要素116と類似した)に結合されてもよく、または車道及び/もしくは標識内に、通信構成要素を組み込んでいることもある。
図2は、入口エンティティ233のブロック図である。入口エンティティは、位置への入口ポイント、ゲート、車道への入口などであってもよい。入口エンティティ233は、入口エンティティ233に結合され、入口エンティティ233に取り付けられ、及び/または入口エンティティ233に近接した範囲内にある入口コンピューティングデバイス242を含んでもよい。入口コンピューティングデバイス242は、車両コンピューティングデバイス112と通信するために、無線通信などの様々な通信方法を使用してもよい。図2の実施例では、入口コンピューティングデバイス242は、命令を実行し、入口コンピューティングデバイス242の機能を制御するプロセッサ244を含んでもよい。プロセッサ244は、アンテナ249に結合された(例えば、またはそれを含む)、リーダ、ライタ、送受信機、及び/または情報を交換するために以下で説明される機能を実行することが可能な他のコンピューティングデバイスもしくは回路などの入口通信構成要素246に結合されてもよい。入口通信構成要素246は、不揮発性フラッシュメモリなどのメモリ248に結合された処理リソース247を含んでもよいが、実施形態は、そのように限定されない。入口コンピューティングデバイス242のアンテナ249は、図1に示された車両コンピューティングデバイス112のアンテナ119と通信していてもよく、例えば、それと通信可能に結合されてもよい。
いくつかの実施例では、アンテナ249及び119は、インダクタコイルなどとして構成されたループアンテナであってもよい。アンテナ119は、例えば、車両コンピューティングデバイス112の周りをループしてもよい。アンテナ119は、アンテナ119を通じて流れる電流に応答して、電磁場を生成することができる。例えば、電磁場の強度は、コイルの数及び電流の量に依存することがある。アンテナ119によって生成された電磁場は、それぞれの入口コンピューティングデバイス242に電力供給するアンテナ249内で電流を誘導することができる。実施例として、図1におけるアンテナ119は、入口コンピューティングデバイス242がアンテナ119の通信距離(例えば、通信範囲)内に至るとき、アンテナ249内で電流を誘導することができる。例えば、通信距離は、アンテナ119によって生成された電磁場の強度に依存することがある。アンテナ119によって生成された電磁場は、アンテナ119のコイルの数及び/またはアンテナ119を通る電流によって設定されてもよく、その結果、通信距離は、車両コンピューティングデバイス112の位置から入口コンピューティングデバイス242まで及ぶことができる。いくつかの実施例では、通信距離は、車両コンピューティングデバイス112のいずれかの側上で約50センチメートル~約100センチメートルであってもよい。代替として、通信距離は、アンテナ249によって生成された電磁場の強度に依存することがある。この実施例では、アンテナ249によって生成された電磁場は、249のコイルの数及び/またはアンテナ249を通る電流によって設定されてもよい。
いくつかの実施例では、入口コンピューティングデバイス242は、送信機、トランスポンダ、または送受信機などのいくつかの無線通信デバイスを含んでもよい。実施例として、入口通信構成要素246は、そのような無線通信デバイスであってもよい。使用することができる無線通信は、近接場通信(NFC)タグまたはRFIDタグなどを含んでもよい。少なくとも1つの実施形態では、無線通信は、マイクロチップなどのチップにそれぞれ統合することができる不揮発性記憶構成要素を使用して実行されてもよい。それぞれのチップの各々は、アンテナ249などのそれぞれのアンテナに結合されてもよい。それぞれの記憶構成要素は、それぞれの識別データ、通知データ、車両データ、道路データ、及び/または標識データを記憶してもよい。
車両データ及び入口データは、車両コンピューティングデバイス112がそれぞれの入口コンピューティングデバイス242の通信距離内を通ったことに応答して、車両コンピューティングデバイス112の車両通信構成要素116から入口コンピューティングデバイス242の入口通信構成要素246に送信されてもよい。車両データ及び/または通知データは、無線周波数信号などの信号の形式において送信されてもよい。例えば、車両コンピューティングデバイス112の車両通信構成要素116及び入口コンピューティングデバイス242の入口通信構成要素246は、無線周波数信号を使用して通信してもよい。
無線通信デバイスがNFCタグである実施例について、車両コンピューティングデバイス112の車両通信構成要素116は、NFCリーダであってもよく、処理リソース117によって処理するためにメモリ118に記憶することができるNFCプロトコルを使用して無線通信デバイスと通信してもよい。1つの実施例では、車両通信構成要素116及び入口通信構成要素246などの無線通信デバイスは、エアインタフェース通信のためのパッシブRFIDについてのISO/IEC 18000-3国際標準に従って、約13.56メガヘルツにおいて通信してもよい。例えば、情報は、約13.56メガヘルツの周波数を有する信号の形式において送信されてもよい。
いくつかの実施例では、入口コンピューティングデバイス242は、接近車両の状態、接近車両の識別子、特定の位置にアクセスするために行われた要求など、識別データ、車両データ、承認データ、及び/または要求データを収集するために使用されてもよい。例えば、最新の車両状態(例えば、車両が前に位置に進入したかどうか、位置に進入する頻度、位置内のどの部分領域に要求がアクセスすることを要求しているか)、車両の識別子、及び/または日時は、車両通信構成要素116から入口通信構成要素246に送信されてもよい。
いくつかの実施例では、車両コンピューティングデバイス112及び/または入口コンピューティングデバイス242は、前に説明されたようなものであることができる短距離通信デバイス(例えば、NFCタグ)などのパッシブ無線通信デバイスを使用してもよい。NFCタグは、車両情報、識別情報、車両デバイスもしくは装置情報、並びに/または位置及びその制限されたアクセスに関する情報などの情報を記憶した不揮発性記憶構成要素を有するチップを含んでもよい。更に、NFCタグは、アンテナを含んでもよい。
車両通信構成要素116は、NFCタグから情報を受信してもよく、及び/またはNFCタグに情報を送信してもよい。いくつかの実施例では、通信デバイスは、車両デバイスリーダなどのリーダ(例えば、NFCリーダ)を含んでもよい。
車両通信構成要素116のメモリ118は、車両通信構成要素116がNFCタグと通信することを可能にするNFCプロトコルに従って動作する命令を含んでもよい。例えば、車両通信構成要素116及びNFCタグは、約13.56メガヘルツにおいて、且つISO/IEC 18000-3国際標準に従ってなど、NFCプロトコルを使用して通信してもよい。
車両通信構成要素116はまた、病院、消防署、警察署などのオペレーションセンターと通信してもよい。例えば、車両通信構成要素116は、オペレーションセンターに無線で結合または配線で接続されてもよい。いくつかの実施例では、車両通信構成要素116は、WIFIを介して、またはインターネットを通じてオペレーションセンターと通信してもよい。車両通信構成要素116は、前に説明されたように、NFCタグと関連付けられたアンテナ119がアンテナ249の通信距離内に至るときにNFCタグに電圧を加えることができる。通信距離は、より短距離であってもよく、デバイスを相互に相対的に近くに至らせることができ、より良好なセキュリティをもたらすことができ、RFIDタグを使用する前のアプローチよりも使用する電力を少なくすることができる。
図3Aは、本開示の実施形態に従った、車両エンティティ302、複数のノード333-1、333-2、333-3、333-4、並びに中心ノード333-C(以下では、集合的に進入ノード及び中心ノード233と称される)を含む例示的な環境を示す。中心ノード333-Cは、中心ノード333-Cが他のノードを統率していることを除き、進入ノード333-1、333-2、333-3、333-4に類似したノードであってもよい。いくつかの実施例では、中心ノード333-Cは、特定の進入ポイントと関連付けられていないノードであってもよい(進入ノード333-1、333-2、333-3、333-4とは対照的に)。
図3に示されるように、エンティティノード302は、車両エンティティ(車両エンティティ302など)であってもよい。エンティティノード302は、複数の進入ノード333-1、333-2、333-3、333-4、及び/または中心ノード333-Cと通信していてもよい。同様に、複数のノード333の各々は、複数のノード333のもう一方と通信していてもよい。実施例として、進入ノード333-1は、進入ノード333-2と通信してもよい、などである。進入ノード333の各々は、中心ノード333-Cと通信していてもよい。エンティティノード302が第1の進入ノード333-1に近づくにつれて、識別データ、認証データなどは、エンティティノード302と第1の進入ノード333-1との間で交換されてもよい。識別データは、車両識別番号(VIN)、認証鍵(以下で説明される公開鍵など)、車両証明書、ナンバープレートID、運転者データ、位置に進入することによって到達することになる宛先などを含んでもよい。
図3Bは、本開示の実施形態に従った、複数の車両通信構成要素316-1、316-2、316-3、316-4(以下では、集合的に車両通信構成要素316と称される)、及び複数の入口通信構成要素346-1、346-2、346-3、346-4(以下では、集合的に入口通信構成要素346と称される)を含む例示的な環境である。第1の車両通信構成要素316-1は、第1の車両エンティティ302-1に結合されてもよく、及び/または第1の車両エンティティ302-1と関連付けられてもよい。第2の車両通信構成要素316-2は、第2の車両エンティティ302-2に結合されてもよく、及び/または第2の車両エンティティ302-2と関連付けられてもよく、第3の車両通信構成要素316-3は、第3の車両エンティティ302-3に結合されてもよく、及び/または第3の車両エンティティ302-3と関連付けられてもよく、第4の車両通信構成要素316-4は、第4の車両エンティティ302-4に結合されてもよく、及び/または第4の車両エンティティ302-4と関連付けられてもよい。同様に、入口通信構成要素346は、図3Bに示される通り、対応する入口エンティティ333(ゲート、入口車道、チェックポイントなど)に結合されてもよく、及び/または対応する入口エンティティ333と関連付けられてもよい。
車両エンティティ302-1の第1の車両通信構成要素316-1が入口通信構成要素346の特定の近接範囲内に近づき、よって、進入またはアクセスされることになる位置337の近接範囲内に近づくにつれて、車両通信構成要素316-1による車両エンティティ302-1の識別データ及び認証データを含むデータ転送が開始することができる。特定の近接範囲は、この実施例では、50センチメートル、500メートルなどの間の距離を指してもよい。しかしながら、実施形態は、特定の近接範囲に限定されない。実施例では、特定の近接範囲は、アンテナ(図1におけるアンテナ119及び図2におけるアンテナ249など)のタイプに依存することがある。
第1の車両通信構成要素316-1と第1の入口通信構成要素346-1との間の通信は、識別データ、認証データ、アクセス要求データなどの交換を含んでもよい。認証データは、以下で図5~9と関連して更に説明されるように、公開識別、証明書識別、公開鍵、及び車両署名を含んでもよい。認証データが第1の入口エンティティ302-1によって検証されると、第1の入口通信構成要素346-1、第2の入口通信構成要素346-2、第3の入口通信構成要素346-3、及び第4の入口通信構成要素346-4の間、並びに/またはそれらの中で他のデータが交換されてもよい。実施例として、入口通信構成要素346の中でブロックチェーンが共有されてもよく、入口通信構成要素346の各々は、車両エンティティ302-1の識別子、並びに車両エンティティ302-1の位置及び/または要求履歴を検証するために通信されてもよい。実施例として、入口通信構成要素346の1つが、位置337へのアクセスを得ることを試みている車両エンティティが位置337へのアクセスを既に得ており、位置337から退出していないことを示したデータをブロックチェーンのブロック内に含んでいた場合、アクセスを試みている最新車両エンティティへのアクセスは否定される。言い換えると、同一の識別子データを有する2つの車両エンティティは、同時に位置337に許可されず、したがって、特定の車両エンティティが既に進入していたことをブロックチェーンデータが示す場合、同一の識別子データを有する後続の車両エンティティはアクセスが否定される。
以下で更に説明されるように、入口通信構成要素346の各々は、図10~14Bと関連して説明される通り、ローカル台帳ブロックチェーンを記憶してもよく、ローカル台帳ブロックチェーンは、各々の車両エンティティに関連する対応するデータを記憶するために使用される。実施例として、第1の入口通信構成要素346-1は、発生した進入車両及び退出車両の全てを示すローカル台帳ブロックチェーンデータを記憶してもよい。その特定のローカル台帳ブロックチェーンにアクセスすることは、位置337へのその特定の入口ポイントについてのデータを提供する。第2の入口通信構成要素346-2は、その特定の入口ポイントに対する全ての進入及び退出を示す第2のローカル台帳ブロックチェーンデータを記憶してもよく、第3の入口通信構成要素346-3及び第4の入口通信構成要素346-4なども同様である。同様に、ローカル台帳ブロックチェーンは、特定の車両エンティティと関連付けられてもよく、その結果、特定の車両エンティティが位置337に進入し、位置337から退出する都度、どの入口が使用されるか、及び各々の特定の入口が使用されるかに関わらず、その車両エンティティと関連付けられたローカル台帳ブロックチェーン内でローカル台帳ブロックチェーンを示すことができる。
図4は、車両通信構成要素416と入口通信構成要素446との間の認証データ441、443の交換の例示である。車両通信構成要素416によって送信され、入口通信構成要素446によって受信される認証データ441の部分は、車両データ465、車両識別証明書(「Vehicle_ID cert」)481、車両公開鍵(「Vehicle KL1_Public key」)483、暗号化済みペイロード493、及び車両署名(「Vehicle Signature」)496を含んでもよい。車両データ465は、位置または車道に進入するために使用されることになる入口(例えば、ゲート)ID、位置座標(例えば、GPS座標)、車両のプレート識別、車両と関連付けられた保険情報、運転者情報などを含んでもよい。車両識別証明書481は、車両エンティティの同一性が認証されることを検証するために使用されてもよい。車両公開鍵483は、図5~9と関連して更に説明されるように、入口通信構成要素446がその自身の秘密鍵を使用して受信されたデータを復号するために、入口通信構成要素446に送信されることになるデータを暗号化するために使用されてもよい。暗号化済みペイロード493は、ナンバープレートまたはID、保険番号、運転者情報、車両の最終的な宛先など(465と類似するが、追加のセキュリティのために暗号化される)などの暗号化済みデータを含んでもよい。
車両署名496は、データが権限を有するエンティティから送信され、その結果、この検証可能な署名を有するデータが、車両エンティティが主張している送信者からであることを検証するために使用される。車両署名496は、車両秘密鍵(その車両エンティティに対してのみ秘密である)を使用して署名を暗号化することによって生成され、公開して提供された車両公開鍵を使用して復号される。署名検証の更なる説明は、図9と関連して以下で説明される。
入口通信構成要素446によって送信され、車両通信構成要素416によって受信される認証データ443の部分は、入口データ466、入口識別証明書(「Entrance_ID cert」)482、入口公開鍵(「Entrance_KL2_Public key」)484、入口応答497、及び入口署名(「Entrance Signature」)495を含んでもよい。入口データ466は、他のデータの中で、ゲート識別(例えば、位置、名前など)、位置データ(例えば、GPS座標)を含んでもよい。入口識別証明書482は、入口デバイスの識別子が認証されることを検証するために使用されてもよい。入口公開鍵484は、図5~9と関連して更に説明されるように、入口通信構成要素446がその自身の秘密鍵を使用して受信されたデータを復号するために、入口通信構成要素446に送信されることになるデータを暗号化するために使用されてもよい。入口応答497は、車両エンティティが認証されていたかどうか、及び車両エンティティが位置にアクセスすることを許可されるかどうかを示すことができ、入口の受諾または拒絶についての理由を提供することができる。
入口署名495は、データが権限を有するエンティティから送信され、その結果、この検証可能な署名を有するデータが、入口エンティティが主張している送信者からであることを検証するために使用される。入口署名495は、入口秘密鍵(その入口エンティティに対してのみ秘密である)を使用して署名を暗号化することによって生成され、公開して提供された入口公開鍵を使用して復号される。署名検証の更なる説明は、図9と関連して以下で説明される。
それらの公開鍵(車両及び入口)は、車両データ及び/または入口データを交換するために、各々のそれぞれの通信構成要素に送信されるデータを暗号化し、各々の同一性を検証するために使用されてもよい。実施例として、図5~9と関連して以下で更に説明されるように、車両通信構成要素416は、受信された入口公開鍵484を使用してデータを暗号化してもよく、入口通信構成要素446に暗号化されたデータを送信してもよい。同様に、入口通信構成要素446は、受信された車両公開鍵483を使用してデータを暗号化してもよく、車両通信構成要素416に暗号化されたデータを送信してもよい。入口通信構成要素446によって送信される車両データなどのデータは、入口位置データ、入口識別データなどを含んでもよい。車両データの受信の確認は、車両通信構成要素416の同一性を検証するようデジタル署名と共に送信されてもよい。
実施例では、車両通信構成要素416と入口通信構成要素446との間のデータ交換は、その他によって使用されるフレッシュネスを有してもよい。実施例として、車両データ及び/または入口データの受信において車両通信構成要素416によって入口通信構成要素446に送信されるデータは、特定の時間フレームの各々において、または送信される特定の量のデータに対して改変されてもよい。これは、ハッカーが前に送信されたデータを傍受すること、及び同一のデータを再度送信して、同一の成果を結果としてもたらすことを防止することができる。データが僅かに改変されているが、なおも同一の命令を示す場合、ハッカーは、後の時間点において同一の情報を送信することがあり、改変されたデータが同一の命令を実行することを受信者が予測することに起因して、同一の命令は実行されない。
車両通信構成要素416と入口通信構成要素446との間のデータ交換は、以下で説明されるようないくつかの暗号化方法及び/または復号方法を使用して実行されてもよい。データを安全にすることは、不法な活動が車両エンティティ及び入口エンティティに提供される車両データを妨害することを防止することを保証することができる。
図5は、本開示の実施形態に従った、車両通信構成要素516及び入口通信構成要素546を含む例示的なシステムのブロック図である。車両エンティティ(例えば、図1における102)が入口エンティティ(例えば、図2における入口エンティティ233)に近接するにつれて、入口エンティティの関連する入口通信構成要素546(図4における446)は、センサ(例えば、無線周波数識別センサ(RFID))を使用して車両エンティティの車両通信構成要素516と通信してもよい。
コンピューティングデバイスは、レイヤを使用して段階的にブートすることができ、各々のレイヤは、後続のレイヤを認証及びロードし、各々のレイヤにおいて次第に洗練されたランタイムサービスを提供する。レイヤは、前のレイヤによってサーブされ得、後続のレイヤにサーブすることができ、それによって、下位レイヤ上で構築し、高位レイヤにサーブするレイヤの相互接続ウェブを生成する。図5に示されるように、レイヤ0(「L0」)551及びレイヤ1(「L1」)553は、車両通信構成要素516内にある。レイヤ0 551は、レイヤ1 553にFirmware Derivative Secret(FDS)鍵552を提供することができる。FDS鍵552は、レイヤ1 553のコードの識別子及び他のセキュリティ関連データを記述することができる。実施例では、特定のプロトコル(ロバストなモノのインターネット(RIOT)コアプロトコル)は、それがロードするレイヤ1 553のコードを有効であると確認するために、FDS552を使用することができる。実施例では、特定のプロトコルは、デバイス識別構成エンジン(DICE)及び/またはRIOTコアプロトコルを含んでもよい。実施例として、FDSは、レイヤ1のファームウェアイメージ自体、権限を有するレイヤ1のファームウェアを暗号によって識別するマニフェスト、セキュアブートの実施のコンテキストにおいて署名されたファームウェアのファームウェアバージョン番号、及び/またはデバイスについてのセキュリティ重要構成設定を含んでもよい。デバイスシークレット558は、FDS552を作成するために使用されてもよく、車両通信構成要素516のメモリに記憶されてもよい。
車両通信構成要素516は、矢印554によって示されるように、入口通信構成要素546にデータを送信してもよい。送信されるデータは、公開されている車両識別(例えば、図4における465)、証明書(例えば、車両識別証明書481)、及び/また車両公開鍵(例えば、483)を含んでもよい。入口通信構成要素546のレイヤ2(「L2」)555は、送信されたデータを受信してもよく、オペレーティングシステム(「OS」)557のオペレーションにおいて、並びに第1のアプリケーション559-1及び第2のアプリケーション559-2上でデータを実行してもよい。
例示的なオペレーションでは、車両通信構成要素516は、デバイスシークレット558を読み込むこんでもよく、レイヤ1 553の識別子をハッシュしてもよく、以下を含む計算を実行してもよい。
KL1=KDF[Fs(s)、Hash(“不変情報”)]
KL1は、車両公開鍵であり、KDF(例えば、National Institute of Standards and Technology(NIST)Special Publication 800-108において定義されたKDF)は、鍵導出関数であり(例えば、HMAC-SHA256)、及びFs(s)は、デバイスシークレット558である。FDS 552は、以下を実行することによって判定されてもよい。
FDS=HMAC-SHA256[Fs(s)、SHA256(“不変情報”)]
同様に、入口通信構成要素546は、矢印556によって示されるように、公開されている入口識別(例えば、例えば、入口公開識別466)、入口証明書(例えば、車両識別証明書482)、及び/または入口公開鍵(例えば、公開鍵484)を含むデータを送信してもよい。
図6は、本開示の実施形態に従った、いくつかのパラメータを判定する例示的な処理のブロック図である。図6は、矢印654によって示されるように、入口通信構成要素(例えば、図5における546)のレイヤ2(例えば、レイヤ2 555)に送信される、車両公開識別、車両証明書、及び車両公開鍵を含むパラメータの判定の実施例である。図6におけるレイヤ0(「L0」)651は、図5におけるレイヤ0 551に対応し、同様に、FDS652は、FDS552に対応し、レイヤ1 653は、レイヤ1 553に対応し、矢印654及び656は、矢印554及び556それぞれに対応する。
レイヤ0 651からのFDS652は、レイヤ1 653に送信され、公開識別(「IDlk public」)666及び秘密識別667を生成するために、非対称ID生成器661によって使用される。省略された「IDlk public」では、「lk」は、レイヤk(この実施例では、レイヤ1)を示し、「public」は、識別が公然に共有されることを示す。公開識別(「IDL1public」)666は、車両通信構成要素のレイヤ1 653の右側及び外側に伸びる矢印によって共有されるとして示される。生成された秘密識別667は、暗号化器673に入力される鍵として使用される。暗号化器673は、データを暗号化するために使用されるいずれかのプロセッサ、コンピューティングデバイスなどであってもよい。
車両通信構成要素のレイヤ1 653は、非対称鍵生成器663を含んでもよい。少なくとも1つの実施例では、乱数生成器(RND)650は任意選択で、非対称鍵生成器663に乱数を入力してもよい。非対称鍵生成器663は、図5における車両通信構成要素516などの車両通信構成要素と関連付けられた公開鍵(「KLk public」)684(車両公開鍵と称される)及び秘密鍵(「KLK private」)671(車両秘密鍵と称される)を生成してもよい。車両公開鍵683は、暗号化器673への入力(「データ」としての)であってもよい。暗号化器673は、車両秘密識別667及び車両公開鍵683の入力を使用して、結果K’675を生成してもよい。車両秘密鍵671及び結果K’675は、追加の暗号化器677への入力であってもよく、出力K’’679を結果としてもたらす。出力K’’679は、レイヤ2(図5の555)に送信される車両証明書(「IDL1 certificate」)681である。車両証明書681は、車両エンティティから送信されたデータの起点を検証及び/または認証する能力をもたらすことができる。実施例として、車両通信構成要素から送信されたデータは、図8と関連して更に説明されるように、証明書を検証することによって、車両通信構成要素の識別子と関連付けられてもよい。更に、車両公開鍵(「KL1 public key」)683は、レイヤ2に送信されてもよい。したがって、車両通信構成要素のレイヤ1 653の公開識別665、証明書681、及び車両公開鍵683は、入口通信構成要素のレイヤ2に送信されてもよい。
図7は、本開示の実施形態に従った、いくつかのパラメータを判定する例示的な処理のブロック図である。図7は、入口識別(「IDL2 public」)766、入口証明書(「IDL2 Certificate」)782、及び入口公開鍵(「KL2 public key」)784を生成する入口通信構成要素(例えば、図5における入口通信構成要素546)のレイヤ2 755を示す。
図6において説明されるように、入口通信構成要素のレイヤ1から車両通信構成要素のレイヤ2 755に送信される入口公開鍵(「KL1 public key」)784は、入口通信構成要素の公開識別(「IDlk public」)766及び秘密識別768を生成するために、入口通信構成要素の非対称ID生成器762によって使用される。省略された「IDlk public」では、「lk」は、レイヤk(この実施例では、レイヤ2)を示し、「public」は、識別が公然に共有されることを示す。公開識別766は、レイヤ2 755の右側及び外側に伸びる矢印によって共有されるとして示される。生成された秘密識別768は、暗号化器774に入力される鍵として使用される。
図7に示されるように、入口証明書782及び入口識別766は、入口公開鍵784と共に、証明書検証器723によって使用される。証明書検証器723は、ホスト(例えば、ホスト516)から受信された車両証明書781を検証してもよく、車両証明書782が検証されること、または検証されないことに応答して、ホストから受信されたデータを受諾または破棄するかどうかを判定してもよい。更に、車両証明書781を検証することの更なる詳細は、図8と関連して説明される。
入口通信構成要素のレイヤ2 755は、非対称鍵生成器764を含んでもよい。少なくとも1つの実施例では、乱数生成器(RND)650は任意選択で、非対称鍵生成器764に乱数を入力してもよい。非対称鍵生成器764は、図5における入口通信構成要素546などの入口通信構成要素と関連付けられた公開鍵(「KLk public」)784(入口公開鍵と称される)及び秘密鍵(「KLK private」)772(入口秘密鍵と称される)を生成してもよい。入口公開鍵770は、暗号化器774への入力(「データ」としての)であってもよい。暗号化器774は、入口秘密識別768及び車両公開鍵770の入力を使用して、結果K’776を生成してもよい。入口秘密鍵772及び結果K’776は、追加の暗号化器778への入力であってもよく、出力K’’780を結果としてもたらす。出力K’’780は、レイヤ1(図5の553)に再度送信されるデバイス証明書(「IDL2 Certificate」)782である。入口証明書782は、デバイスから送信されたデータの起点を検証及び/または認証する能力をもたらすことができる。実施例として、図8と関連して更に説明されるように、入口通信構成要素から送信されるデータは、証明書を検証することによって、入口通信構成要素の識別子と関連付けられてもよい。更に、入口公開鍵(「KL2 public key」)784は、レイヤ1に送信されてもよい。したがって、入口通信構成要素の公開識別766、証明書782、及び入口公開鍵784は、車両通信構成要素のレイヤ1に送信されてもよい(及び、入口通信構成要素に送信される車両通信構成要素の要素とは別の方向では逆もまた同様である)。
実施例では、車両通信構成要素が入口通信構成要素から公開鍵を受信したことに応答して、車両通信構成要素は、入口公開鍵を使用して入口通信構成要素に送信されることになるデータを暗号化してもよい。逆もまた同様に、入口通信構成要素は、車両公開鍵を使用して車両通信構成要素に送信されることになるデータを暗号化してもよい。車両通信構成要素が車両公開鍵を使用して暗号化されたデータを受信したことに応答して、車両通信構成要素は、その自身の車両秘密鍵を使用してデータを復号してもよい。同様に、入口通信構成要素が入口公開鍵を使用して暗号化されたデータを受信したことに応答して、入口通信構成要素は、その自身の入口秘密鍵を使用してデータを復号してもよい。車両秘密鍵が車両通信構成要素の外側の別のデバイスと共有されず、入口秘密鍵が入口通信構成要素の外側の別のデバイスと共有されないので、車両通信構成要素及び入口通信構成要素に送信されるデータは、安全なままである。
図8は、本開示の実施形態に従った、証明書を検証する例示的な処理のブロック図である。図8の示される実施例では、公開鍵883、証明書881、及び公開識別は、車両通信構成要素から提供される(例えば、図5における車両通信構成要素516のレイヤ1 553から)。証明書881及び外部公開鍵883のデータは、復号器885への入力として使用されてもよい。復号器885は、データを復号するために使用される、いずれかのプロセッサ、コンピューティングデバイスなどであってもよい。証明書881及び車両公開鍵883の復号の結果は、出力を結果としてもたらす、公開識別と共に二次復号器887への入力として使用されてもよい。車両公開鍵883及び復号器887からの出力は、889において示されるように、出力としてyesまたはno891を結果としてもたらす、証明書が検証されるかどうかを示すことができる。証明書が検証されたことに応答して、検証されるデバイスから受信されたデータは、受諾、復号、及び処理されてもよい。証明書が検証されないことに応答して、検証されるデバイスから受信されたデータは、破棄、除去、及び/または無視されてもよい。このようにして、不法なデータを送信する不法なデバイスを検出及び回避することができる。実施例として、処理されることになるデータを送信するハッカーを識別することができ、ハッキングデータが処理されない。
図9は、本開示の実施形態に従った、署名を検証する例示的な処理のブロック図である。後続の拒絶を回避するために検証することができるデータをデバイスが送信しているインスタンスでは、署名がデータと共に生成及び送信されてもよい。実施例として、第1のデバイスは、第2のデバイスの要求を行ってもよく、第2のデバイスが要求を実行すると、第1のデバイスは、第1のデバイスがそのような要求を行わないことを示してもよい。署名を使用することなどの拒絶回避アプローチは、第1のデバイスによって拒絶を回避することができ、第2のデバイスは、後続の困難なしに要求されたタスクを実行することができる。
車両コンピューティングデバイス912(図1における車両コンピューティングデバイス112など)は、車両コンピューティングデバイス(図1における入口コンピューティングデバイス112など)にデータ990を送信してもよい。車両コンピューティングデバイス912は、994において、車両秘密鍵972を使用して署名996を生成してもよい。署名996は、入口コンピューティングデバイス942に送信されてもよい。入口コンピューティングデバイス942は、998において、前に受信されたデータ992及び車両公開鍵984を使用して検証してもよい。このようにして、署名検証は、署名及び公開鍵を暗号化して署名を復号するために秘密鍵を使用することによって動作する。このようにして、一意な署名を生成するために使用される秘密鍵は、署名を送信するデバイスに対して秘密なままであることができると共に、受信デバイスが検証のために送信デバイスの公開鍵を使用して署名を復号することを可能にする。これは、受信デバイスの公開鍵を使用して送信デバイスによって暗号化され、受信機の秘密鍵を使用して受信デバイスによって復号される、データの暗号化/復号とは対照的である。少なくとも1つの実施例では、車両は、内部暗号処理(例えば、楕円曲線デジタル署名(ECDSA))または同様の処理を使用することによって、デジタル署名を検証してもよい。
図10は、本開示の実施形態に従った、いくつかの物理ブロックを有するメモリアレイ1001の部分の図を示す。メモリアレイ1001は、例えば、NANDフラッシュメモリアレイ及び/またはNORフラッシュメモリアレイなどのフラッシュメモリアレイであってもよい。1つの例示的な実施形態では、メモリ1001は、NORフラッシュメモリアレイ1001である。追加の実施例として、メモリアレイ1001は、とりわけ、PCRAM、RRAM、MMRAM、またはスピントルクトランスファ(STT)アレイなどの抵抗可変メモリアレイであってもよい。しかしながら、本開示の実施形態は、特定のタイプのメモリアレイに限定されない。更に、メモリアレイ1001は、本明細書で更に説明されるように、セキュアメモリアレイであってもよい。更に、図10には示されないが、メモリアレイ1001は、その動作と関連付けられた様々な周辺回路と共に特定の半導体ダイ上に位置してもよい。
図10に示されるように、メモリアレイ1001は、メモリセルのいくつかの物理ブロック1007-0(BLOCK 0)、107-1(BLOCK 1)、…、1007-B(BLOCK B)を有する。メモリセルは、シングルレベルセル、及び/または、例えば、2レベルセル、トリプルレベルセル(TLC)、またはクワドルプルレベルセル(QLC)などのマルチレベルセルであってもよい。実施例として、メモリアレイ101内の物理ブロックの数は、128個のブロック、512個のブロック、または1024個のブロックであってもよいが、実施形態は、メモリアレイ1001内の特定の2のべき乗の物理ブロックまたはいずれかの特定の数の物理ブロックに限定されない。
メモリセルのいくつかの物理ブロック(例えば、ブロック1007-0、1007-1、…、1007-B)は、メモリセルの平面に含まれてもよく、メモリセルのいくつかの平面は、ダイ上に含まれてもよい。例えば、図10に示される実施例では、各々の物理ブロック1007-0、1007-1、…、1007-Bは、単一のダイの一部であってもよい。すなわち、図10に示されるメモリアレイ1001の部分は、メモリセルのダイであってもよい。
図10に示されるように、各々の物理ブロック1007-0、1007-1、…、1007-Bは、アクセスライン(例えば、.、ワードライン)に結合されたいくつかのメモリセルの物理行(例えば、1003-0、1003-1、…、1003-R)を含む。各々の物理ブロック内の行(例えば、ワードライン)の数は、32であってもよいが、実施形態は、物理ブロックごとに特定の数の行1003-0、1003-1、…、1003-Rに限定されない。更に、図10には示されないが、メモリセルは、検知ライン(例えば、データライン及び/またはデジットライン)の列に結合されてもよい。
当業者が認識するように、各々の行1003-0、1003-1、...、1003-Rは、メモリセルのいくつかのページ(例えば物理ページ)を含んでもよい。物理ページは、プログラム及び/または検知する単位を指す(例えば、機能的グループとして共にプログラム及び/または検知されるいくつかのメモリセル)。図1に示される実施形態では、各々の行1003-0、1003-1、…、1003-Rは、メモリセルの1つの物理ページを含む。しかしながら、本開示の実施形態は、そのように限定されない。例えば、実施形態では、各々の行は、メモリセルの複数の物理ページ(例えば、偶数に番号付けられたデータラインに結合されたメモリセルの1つ以上の偶数ページ、及び奇数に番号付けられたデータラインに結合されたメモリセルの1つ以上の奇数ページ)を含んでもよい。加えて、マルチレベルセルを含む実施形態について、メモリセルの物理ページは、データの複数のページ(例えば、論理ページ)を記憶してもよい(例えば、物理ページ内で各々のセルを有するデータの上位ページ及びデータの下位ページは、データの上位ページに向かって1つ以上のビット及びデータの下位ページに向かって1つ以上のビットを記憶する)。
図10に示されるように、メモリセルのページは、いくつかの物理セクタ1005-0、1005-1、...、1005-S(例えば、メモリセルのサブセット)を含んでもよい。セルの各々の物理セクタ1005-0、1005-1、…、1005-Sは、データのいくつかの論理セクタを記憶してもよい。加えて、データの各々の論理セクタは、データの特定のページの部分に対応してもよい。実施例として、特定の物理セクタに記憶されたデータの第1の論理セクタは、データの第1のページに対応する論理セクタに対応してもよく、特定の物理セクタに記憶されたデータの第2の論理セクタは、データの第2のページに対応してもよい。各々の物理セクタ1005-0、1005-1、…、1005-Sは、システムデータ及び/またはユーザデータを記憶してもよく、並びに/または誤り訂正符号(ECC)データ、論理ブロックアドレス(LBA)データ、及びメタデータなどのオーバヘッドデータを含んでもよい。
論理ブロックアドレス指定は、データの論理セクタを識別するためにホストによって使用することができるスキームである。例えば、各々の論理セクタは、一意な論理ブロックアドレス(LBA)に対応してもよい。加えて、LBAも、メモリ内のデータのその論理セクタの物理位置を示すことができる、物理ブロックアドレス(PBA)などの物理アドレスに対応してもよい(例えば、動的にマッピングする)。データの論理セクタは、データのある数のバイト(例えば、256バイト、512バイト、1024バイト、または4096バイト)であってもよい。しかしながら、実施形態は、これらの実施例に限定されない。
物理ブロック1007-0、1007-1、…、1007-B、行1003-0、1003-1、…、1003-R、セクタ1005-0、1005-1、…、1005-S、及びページの他の構成が可能であることに留意されたい。例えば、物理ブロック1007-0、1007-1、…、1007-Bの行1003-0、1003-1、…、1003-Rは各々、例えば、データの512未満のバイトまたは512を超えるバイトを含むことができる単一の論理セクタに対応するデータを記憶することができる。
図11Aは、開示の実施形態に従った、ホスト1102及びメモリデバイス1106の形式にある装置を含むコンピューティングシステム1100のブロック図である。本明細書で使用される場合、「装置」は、例えば回路もしくは回路素子、ダイもしくは複数のダイ、モジュールもしくは複数のモジュール、デバイスもしくは複数のデバイス、またはシステムもしくは複数のシステムなどの様々な構造または構造の組み合わせのうちのいずれかを指すことができるが、これらに限定されない。更に、実施形態では、コンピューティングシステム200は、メモリデバイス1106と同様のいくつかのメモリデバイスを含んでもよい。1つの例示的な実施形態では、図11Bにおいて更に示されるように、コンピューティングシステム1100は、分散されたピアツーピアネットワークなど、ノードのより大規模なネットワーク内のノードを表してもよい。
図11Aに示される実施形態では、メモリデバイス1106は、メモリアレイ1101を有するメモリ1140を含んでもよい。図11Aに示されるように、メモリ1140は、ブロックチェーン技術システムにおいて使用される、「ブロックチェーンデータ」1120をメモリアレイ1101に記憶することができる。ブロックチェーン技術システムにおけるブロックチェーンデータの「ブロック」は、データ(例えば、ペイロード)、ヘッダ、暗号化、履歴、タイムスタンプなどを含んでもよい。図12及び13と関連して本明細書で更に説明されるように、ブロックチェーンデータ1120は、「ローカルブロックチェーン」データ及び/または「グローバルブロックチェーン」データであってもよく、記憶されたグローバルブロックチェーン台帳(例えば、「グローバル台帳ブロックチェーン」データ)及び/または記憶されたローカルブロックチェーン台帳(例えば、「ローカル台帳ブロックチェーン」データ)を含んでもよい。
メモリアレイ1101は、それぞれ図10と関連して前に説明されたメモリアレイ1001と同様であってもよい。しかしながら、本明細書で使用されるように、ブロックチェーンアーキテクチャ内のブロックチェーンデータのブロックは、図1と関連して前に説明されたメモリのブロックのサイズに等しい必要はない。よって、用語「グローバルブロック」及び/または「ローカルブロック」は、ブロックチェーンデータとしてメモリに記憶されるとき、メモリのブロックサイズ単位に等しい必要はない。グローバルブロック及び/またはローカルブロックは、特定のメモリアーキテクチャまたは設計と関連付けられたブロックサイズ単位、例えば、デノミネーションよりも小さくてもよく、それと同等であってもよく、及び/またはそれよりも大きくてもよい。更に、メモリアレイ1101は、図14A及び14Bと関連して本明細書で更に説明されるように、セキュアアレイであってもよい。1つのメモリアレイ1101が図11Aに示されるが、メモリ1140は、メモリアレイ1101と同様のいずれかの数のメモリアレイを含んでもよい。
図11Aに示されるように、ホスト1102は、インタフェース1104を介してメモリデバイス1106に結合されてもよい。ホスト1102及びメモリデバイス1106は、インタフェース1104上で通信してもよい(例えば、コマンド及び/またはブロックチェーンデータ1120などのデータを送信する)。ホスト1102及び/またはメモリデバイス1106は、他のホストシステムの中で、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル記録及び再生デバイス、携帯電話、PDA、メモリカードリーダ、インタフェースハブ、あるいは、例えば、自動車(例えば、車両及び/または輸送インフラストラクチャ)モノのインターネット(IoT)対応デバイスまたは医療(例えば、移植可能及び/または健康監視)IoT対応デバイスなどのIoT対応デバイスであってもよく、またはそれらの一部であってもよく、メモリアクセスデバイス(例えば、プロセッサ)を含んでもよい。当業者は、「プロセッサ」が、並列プロセシングシステムなどの1つ以上のプロセッサ、いくつかのコプロセッサなどを意図することができることを認識するであろう。
インタフェース1104は、標準化された物理インタフェースの形態であってもよい。例えば、コンピューティングシステム1100に情報を記憶するためにメモリデバイス1106が使用されるとき、インタフェース1104は、他の物理コネクタ及び/またはインタフェースの中で、シリアルアドバンスドテクノロジーアタッチメント(SATA)物理インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)物理インタフェース、ユニバーサルシリアルバス(USB)物理インタフェース、または小型コンピュータシステムインタフェース(SCSI)であってもよい。インタフェース1104は、メモリデバイス1106とインタフェース1104に対して互換性を有するレセプタを有するホスト(例えば、ホスト1102)との間で制御、アドレス、情報(例えば、データ)、及び他の信号を渡すためのインタフェースを提供することができる。
メモリデバイス1106は、ホスト1102及びメモリ1140(例えば、メモリアレイ1101)と通信するためのコントローラ1108を含む。例えば、コントローラ1108は、他の動作の中で、データ(例えば、「ローカル」ブロックチェーンデータ及び/または「グローバル」ブロックチェーンデータ)を検知し(例えば、読み取り)、プログラムし(例えば、書き込み)、移動し、及び/または消去する動作を含む、メモリアレイ1101に対する動作を実行するコマンドを送信してもよい。再度、ブロックチェーン技術及びシステムにおけるブロックチェーンデータについての用語「グローバルブロック」及び/または「ローカルブロック」の意図した意味は、図12及び13と関連して定義される。
コントローラ1108は、メモリアレイ1140と同一の物理デバイス(例えば同じダイ)上に含まれてもよい。代わりに、コントローラ1108は、メモリ1140を含む物理デバイスに通信可能に結合された別個の物理デバイス上に含まれてもよい。実施形態では、コントローラ1108の構成要素は、分散コントローラとして複数の物理デバイス(例えば、メモリと同一のダイ上のいくつかの構成要素、及び異なるダイ、モジュール、またはボード上のいくつかのコンポーネント)にわたって分散してもよい。
ホスト1102は、メモリ1106と通信するためのホストコントローラ(図11Aに示されず)を含んでもよい。ホストコントローラは、インタフェース1104を介してメモリデバイス1106にコマンドを送信してもよい。ホストコントローラは、他の動作の中で、データ(例えば、「ローカル」ブロックチェーンデータ及び/または「グローバル」ブロックチェーンデータ)を読み込み、書き込み、及び/または消去するよう、メモリデバイス1106に対してメモリデバイス1106及び/またはコントローラ1108と通信してもよい。更に、実施形態では、ホスト1102は、本明細書で前に説明されたような、IoT通信能力を有するIoT対応デバイスであってもよい。
メモリデバイス1106上のコントローラ1108及び/またはホスト202上のホストコントローラは、例えば、DICE-RIoTアーキテクチャ及び/またはプロトコルに従って、例えば、図12及び13と関連して本明細書で説明されるブロックチェーン動作を実行するように構成された制御回路及び/またはロジック(例えば、ハードウェア及びファームウェア)を含んでもよい。実施形態では、メモリデバイス206上のコントローラ1108及び/またはホスト1102上のホストコントローラは、物理インタフェースを含むプリント回路基板に結合された特定用途向け集積回路(ASIC)であってもよい。また、メモリデバイス1106及び/またはホスト1102は、揮発性メモリ及び/または不揮発性メモリ、並びにいくつかのレジスタのバッファを含んでもよい。
例えば、図11Aに示されるように、メモリデバイスは、回路1110を含んでもよい。図11Aに示される実施形態では、回路1110は、コントローラ1108に含まれる。しかしながら、本開示の実施形態は、そのように限定されない。例えば、実施形態では、回路1110は、メモリ1140(例えば、それと同一のダイ上に)に(例えば、コントローラ1108の代わりに)含まれてもよい。回路1110は、例えば、DICE-RIoTアーキテクチャ及び/またはプロトコルに従って、図5~9において説明される暗号化技術を使用して、例えば、図12及び13と関連して本明細書で説明されるブロックチェーン動作を実行するためのハードウェア、ファームウェアを含んでもよく、及び/またはそのブロックチェーン動作を実行するよう命令を処理リソースに通信してもよい。
例えば、回路1110は、メモリ1140内のアレイ1101内のローカル台帳ブロックチェーン(図12及び13において定義される)にブロックチェーンデータ、例えば、1120のローカルブロックとして追加されることになる、ブロックチェーンデータのグローバルブロック(また、図12及び13において定義される)を受信するように構成されてもよい。例えば、ブロックチェーンデータ、例えば、1120のローカルブロックは、ブロックチェーンデータの有効であると確認された受信されたグローバルブロックであってもよく、メモリ1140(例えば、メモリアレイ1101)に記憶されたデータへの更新を有効であると確認する(例えば、認証及び/または証明する)ために生成されてもよく、及び/またはローカル台帳ブロックチェーン(図12及び13に示される)に追加されてもよい。ローカル台帳ブロックチェーンにローカルブロックとして追加されることになるグローバルブロックは、複数のヘッダを含んでもよい。
実施形態では、アレイ1101のサブセット、またはアレイ1101の全体は、セキュアアレイ(例えば、制御の下に維持されることになるメモリ1140の領域)であってもよい。図11Aは、レジスタ1139-1及び1139-2のペアを示すが、実施形態はそれに限定されず、1つ以上のレジスタが使用されてもよい。例えば、メモリアレイ1101に記憶されたデータは、センシティブアプリケーションに対して実行されることになるホストファームウェア及び/またはコードなどのセンシティブ(例えば、非ユーザ)データを含んでもよい。そのような実施形態では、不揮発性レジスタのペアは、セキュアアレイを定義するために使用されてもよい。例えば、図11Aに示される実施形態では、回路1110は、セキュアアレイを定義するために使用することができるレジスタ1139-1及び1139-2を含む。例えば、レジスタ1139-1は、セキュアアレイのアドレス(例えば、データの開始LBA)を定義することができ、レジスタ1139-2は、セキュアアレイのサイズ(例えば、データの最終LBA)を定義することができる。そのようなレジスタの実施例、及びセキュアアレイを定義する際のそれらの使用は、図14A~14Bと関連して本明細書で更に説明される。
セキュアアレイが定義されると、認証され且つアンチリプレイ保護されたコマンド(例えば、メモリデバイス1106のみがゴールデンハッシュを知るように、並びにメモリデバイス1106のみがそれを生成及び更新することが可能であるように)を使用して、セキュアアレイと関連付けられた暗号学的ハッシュを生成する(例えば、計算する)ために回路1110が使用されてもよく、暗号学的ハッシュは、本明細書でゴールデンハッシュと称されてもよい。ゴールデンハッシュは、メモリアレイ1101のアクセス可能でない部分(例えば、ブロックチェーンデータ1120及びローカル台帳ブロックチェーンが記憶された同一のアクセス可能でない部分)に記憶されてもよく、セキュアアレイのデータを有効であると確認する処理の間に使用されてもよい。
1つの例示的な実施形態では、メモリデバイス1106(例えば、回路1110を使用する)は、メモリアレイ1101に記憶されたデータを更新する前に、更新(例えば、ブロックチェーンデータのペイロード)を有効であると確認するために、インタフェース1104を介してホスト1102に、ブロックチェーンデータ1120と関連付けられたデジタル署名と共に、ブロックチェーンデータ1120(グローバル台帳ブロックチェーンからの受信されたグローバルブロックであってもよい)を送信してもよい。例えば、回路1110は、メモリデバイス1106の電力供給(例えば、パワーオン及び/またはパワーアップ)に応答して、受信され及びメモリアレイ1101に記憶されたブロックチェーンデータ1120を検知(例えば、読み込み)してもよく、アレイ1101に記憶されたデータへの更新を有効であると確認するために、ホスト1102に検知されたブロックチェーンデータ1120を送信してもよい。したがって、メモリアレイ1101に記憶されたデータへの更新の有効であるとの確認は、メモリデバイス1106に電力供給すると開始されてもよい(例えば、自動で)。
追加の実施例として、回路1110は、ホスト1102などの外部エンティティ上のホスト1102に、ブロックチェーンデータ1120と関連付けられたデジタル署名と共に、ブロックチェーンデータ1120を送信してもよく、メモリアレイ1101に記憶されたデータの更新の有効であるとの確認を開始する。例えば、ホスト1102は、ブロックチェーンデータ1120を検知するコマンドをメモリデバイス1106(例えば、回路1110)に送信してもよく、回路1110は、ブロックチェーンデータ1120を検知するコマンドに対して動作してもよく、コマンドの受信に応答して、アレイ1101に記憶されたデータを有効であると確認するために、ホスト1102に検知されたブロックチェーンデータ1120を送信してもよい。
ブロックチェーンデータ1120を受信すると、ホスト1102は、受信されたブロック(例えば、受信されたグローバルブロックのペイロード)を使用して、メモリアレイ1101に記憶されたデータを有効であると確認してもよい(例えば、有効であるかどうかを判定する)。例えば、図12及び13と関連して更に説明されるように、ホスト1102は、データを有効であると確認するために、ブロックチェーン内の前のブロックの暗号学的ハッシュ及びメモリアレイ1101に記憶されたデータの暗号学的ハッシュを使用してもよい。更に、ホスト1102は、ローカルブロックがローカル台帳ブロックチェーンに含まれる(例えば、含まれることが適格である)ことを判定するよう、ブロックチェーンデータ1120と関連付けられたデジタル署名を有効であると確認してもよい。本明細書で使用されるように、メモリアレイ1101に記憶されたデータへの更新を有効であると確認することは、更新が真正であり(例えば、当初からプログラムされたものと同一である)、及びハッカーまたは権限を有しない変更を含むその他によって頻繁にもたらされる、ハッキング活動によって改変されていないことを認証及び/または証明することを含むことができ、及び/またはそれらのことを指すことができる。
メモリアレイ1101がセキュアアレイである実施形態では、ゴールデンハッシュも、図12及び13と関連して更に説明されるように、メモリアレイ1101に記憶されたデータへの更新を有効であると確認するために使用されてもよい。例えば、ランタイム暗号学的ハッシュが生成されてもよく(例えば、計算される)、ゴールデンハッシュと比較されてもよい。ランタイムハッシュ及びゴールデンハッシュが一致することを比較が示す場合、セキュアアレイが改変されておらず、したがって、そこに記憶されたデータが有効であると判定されてもよい。しかしながら、ランタイムハッシュ及びゴールデンハッシュが一致しないことを比較が示す場合、これは、セキュアアレイに記憶されたデータが変更されている(例えば、ハッカーまたはメモリにおける障害に起因して)ことを示してもよく、ホスト1102にこれが報告されてもよい。
1つの例示的な実施形態では、メモリアレイ1101に記憶されたデータの有効であるとの確認に加え、回路1110は、ブロックチェーンデータ1120が権限を有するエンティティ(例えば、既知のエンティティ)からであるかどうかを判定し、受信されたブロックチェーンデータ1120上で示されたハッシュが、ローカル台帳ブロックチェーン上のブロックチェーンデータの直近のローカルブロックに一致することを判定するよう、ブロックチェーンデータ1120(例えば、グローバル台帳ブロックチェーンからの受信されたグローバルブロック)を有効であると確認してもよい。ブロックチェーンデータ1120の有効であるとの確認に応答して、回路1110は、セキュアアレイに記憶されたコード(または、コードの一部)を補足、修正、及び/または置き換えるために、ブロックチェーンデータ1120に含まれる更新を提供するように構成されてもよい。
図12及び13と関連して更に説明されるように、メモリアレイ1101に記憶されたローカル台帳ブロックチェーン内のローカルブロックとしての役割を果たすブロックチェーンデータ1120を有効であると確認した後、回路1110は、前のブロックチェーンデータ1120が生成/受信された方式と同様の方式において、メモリアレイ1101に記憶されたデータを更新するために、ローカル台帳ブロックチェーンに追加されることになる追加の(例えば、次の)ローカルブロックを生成してもよい(例えば、グローバル台帳ブロックチェーンから次のグローバルブロックを受信する)。例えば、ブロックチェーンデータ1120のこの追加のローカルブロックは、ローカル台帳ブロックチェーン内の前のブロックの暗号学的ハッシュ、及びメモリアレイ1101に記憶されたデータへの新たな更新の暗号学的ハッシュを含んでもよい。更に、この追加のローカルブロックは、このブロックが生成されたとき(例えば、追加のグローバルブロックとして受信された)を示すタイムスタンプを有するヘッダを含んでもよく、この追加のローカルブロックが権限を有するエンティティからであり、ローカル台帳ブロックチェーンに含まれてもよいことを示す、それと関連付けられたデジタル署名を有してもよい。そのような追加のローカルブロックを示す実施例が、本明細書で更に説明される(例えば、図3と関連して)。更に、メモリアレイ1101がセキュアアレイである実施形態では、追加の(例えば、新たな)ゴールデンハッシュが生成されてもよい。
ブロックチェーンデータの追加のローカルブロック、並びに追加のローカルブロックに関連するデジタル署名、および追加のゴールデンハッシュは、ローカル台帳ブロックチェーンの一部としてメモリアレイ1101に記憶されてもよい。例えば、追加のローカルブロックは、メモリアレイ1101内のブロックチェーンデータ1120(例えば、前のブロックチェーンデータ1120)を置き換えてもよい。追加のブロックチェーンデータ、デジタル署名、及び追加のゴールデンハッシュは次いで、ブロックチェーンデータ1120について本明細書で前に説明された方式と同様の方式において、メモリアレイ1101に記憶されたデータへの更新(例えば、ペイロード)を有効であると確認するために、ホスト1102によって使用されてもよい。ローカル台帳ブロックチェーン内の追加のローカルブロックは、メモリデバイス1106の寿命の全体を通じてそのような方式において、それらがグローバルブロックとして受信され、ホスト1102によって有効であると確認され、メモリアレイ1101に記憶されたデータへの更新を有効であると確認するためにホスト1102によって使用されるとき、回路1110によって生成され続けてもよい。
図11Aに示された実施形態は、本開示の実施形態を曖昧にしないように示されていない追加の回路、ロジック、及び/または構成要素を含んでもよい。例えば、メモリデバイス1106は、I/O回路を通じてI/Oコネクタにわたって提供されるアドレス信号をラッチするアドレス回路を含んでもよい。アドレス信号は、メモリアレイ1101にアクセスするよう、行デコーダ及び列デコーダによって受信及び復号されてもよい。更に、メモリデバイス1106は、メモリアレイ1101とは別に、及び/またはメモリアレイ1101に加えて、例えば、DRAMまたはSDRAMなどのメインメモリを含んでもよい。メモリデバイス1106の追加の回路、ロジック、及び/または構成要素を更に示す実施例が、本明細書で更に説明される(例えば、図15と関連して)。
図11Bは、本開示の実施形態に従った、無線プロトコル及びインターネットプロトコル(IP)を使用した有線方式及び/または無線方式において接続された、パブリックネットワーク及び/またはピアツーピアネットワークなどのプライベートな分散ネットワークにおいて多くのコンピューティングノードを含むことができるコンピューティングシステムのネットワークのブロック図である。図11Bの実施例では、ピアツーピアネットワークなどのネットワークにおいて接続された複数のノード、1100-1、1100-2、1100-3、…、1100-Nが示される。ネットワークは、「ブロックチェーン」技術などの分散台帳技術(DLT)をサポートすることができる。分散台帳は、いくつかのノードまたはコンピューティングデバイスにわたって広がるデータベースである。
「ブロックチェーン」は、継続して増大する、レコードの暗号化されたリストである。ブロックチェーンは、複数のノード、1100-1、1100-2、1100-3、…、1100-Nがピアツーピアネットワーク方式においてレコードの分散リストを共有及び記憶することができるDLTの1つの形式である。本明細書で説明される場合、ブロックチェーン内の「ブロック」は、情報、例えば、データ、ヘッダ、トランザクション、暗号化などの集合である。ブロックは、それが有効であると確認された場合、台帳内のレコードの増大するリストに追加されてもよい。ブロックは、時系列にブロックチェーン台帳に追加される。
よって、図11Bの実施例では、所与のノード、1100-1(H1)、1100-2(H2)、1100-3(H3)、…、1100-Nは、台帳において最新リストまたはレコードの複製を維持してもよい。複数のノード、1100-1、1100-2、1100-3、…、1100-Nは各々、異なるホスト、例えば、処理リソースを有するコンピューティングデバイスを表してもよい。例示を容易にするために、ホストまたは複数のノード、1100-1、1100-2、1100-3、…、1100-Nは、自律的及び/または非自律的輸送車両、自動車、バス、緊急車両などに対するブロックチェーンに関連して考慮されてもよい。しかしながら、実施形態はこの実施例に限定されない。
この実施例では、パブリックエンティティまたはプライベートエンティティの(例えば、軍事エンティティ、空港マネージャ、ホテルオーナ、病院エンティティなど)サーバは、図11Bに示されるノード、1100-1、1100-2、1100-3、…、1100-Nのネットワーク上の1つのノード、例えば、1100-1を表してもよい。ディーラーシップリペアショップなどの公認リペア設備は、別のノード、例えば、1100-2を表してもよい。ノード1100-3は、インターネット及び/または他の無線接続を介してピアツーピアネットワークに接続された別のホスト、例えば、別のコンピューティングデバイスであってもよい。
ノード1100-1と関連付けられたパブリックエンティティまたはプライベートエンティティは、ノード1100-1と関連付けられた特定の主題に関連するデータの時系列にリンクされたブロックを有する「第1のブロックチェーン台帳」を維持してもよく、例えば、そのパブリックエンティティまたはプライベートエンティティと関連付けられた全ての車両に対する第1のブロックチェーン台帳を維持してもよい。例示を容易にするために、及び限定としてではなく、例えば、所与のパブリックエンティティまたはプライベートエンティティと関連付けられた全ての車両に対する特定のノードと関連付けられた特定の主題に関連するデータの時系列にリンクされたブロックを有する参照された「第1のブロックチェーン台帳」は、本明細書で「グローバルブロックチェーン台帳」(または、「グローバル台帳ブロックチェーン」)とも称されてもよい。パブリックエンティティまたはプライベートエンティティは、有線方式及び/または無線方式において、ネットワークにノードとして接続された、ピアツーピアネットワーク内の他のノード1100-2、1100-3などに、及びその車両に、第1のブロックチェーン台帳(「グローバル台帳ブロックチェーン」)を分散してもよい。異なるノード、1100-1、1100-2、1100-3、…、1100-Nと通信する際に、様々な無線通信技術が利用されてもよい。例えば、Bluetooth、Zigbee、及び/またはLTEデバイスツーデバイス通信技術、及び/または中間デバイスを利用した他の無線通信(例えば、アクセスポイント(AP)を利用したWiFi)を含む、異なる世代のブロードバンドモバイル電気通信技術(例えば、第1の~第5の世代(1~5G))、デバイスツーデバイス(例えば、車両間(v2v))通信が異なるノードと通信する際に利用されてもよい。
図11Bの実施例では、ノード1100-4は、ノード1100-1によって表される特定のパブリックエンティティまたはプライベートエンティティと関連付けられた車両のサブセットまたはクラスに属する特定の車両を表してもよい。この実施例では、ノード1100-5は、パブリックエンティティまたはプライベートエンティティと関連付けられた車両の同一のもしくは異なるサブセットもしくはクラスにある別の特定の車両、または代わりに、ノード1100-1と関連付けられたパブリックエンティティまたはプライベートエンティティに関連しない別の特定の車両を表してもよい。同様に、ノード1100-Nは、パブリックエンティティまたはプライベートエンティティと関連付けられた車両の同一もしくは異なるサブセットもしくはクラスにある別の特定の車両、または代わりに、ノード1100-1と関連付けられたパブリックエンティティまたはプライベートエンティティに関連しない別の特定の車両を表してもよい。
各々のノードは、その自身の処理リソース、例えば、図11Aに示されるような1つ以上のメモリデバイスに接続されたホストを有してもよい。よって、車両ノード1100-4、1100-5、及び1100-Nは各々、単一及び/または複数のホスト、例えば、処理リソース、1102-4、1102-5、1102-Nをそれぞれ含んでもよい。所与の車両ノード、1100-4、1100-5、及び1100-N上の各々のホストは、各々の車両上の複数のメモリデバイスに接続してもよい。例えば、メモリデバイス1106-4-1、1106-4-2、1106-4-Xは、ノード1100-4上のホスト1102-4と関連付けられてもよく、メモリデバイス1106-5-1、1106-5-2、及び1106-5-Bは、ノード1100-5上のホスト1102-5と関連付けられてもよく、メモリデバイス1106-N-1、1106-N-2、及び1106-N-Zは、ノード1100-N上のホスト1102-Nと関連付けられてもよい。
この実施例では、ノード1100-1は、ノード1100-4、1100-5、…、及び1100-Nに、時系列のブロック、例えば、パブリックエンティティまたはプライベートエンティティと関連付けられた全ての車両の主題に関連するデータを含む、ノード1100-1によって維持された継続して増大する第1の、例えば、「グローバル」ブロックチェーン台帳(本明細書でグローバル台帳ブロックチェーン」とも称される)の更新された複製を定期的に送信、例えば、分散してもよい。ブロックチェーン技術に従って、ノード1100-1は、第1の、例えば、「グローバル」台帳ブロックチェーンの複製を、分散ネットワーク内の他のノード、1100-1、1100-2、1100-3、…、1100-Nと共有してもよい。しかしながら、ノード1100-1によって維持され、他の特定のノード、1100-4、1100-5、…、1100-Nに受信される、増大する第1の、例えば、「グローバル」台帳ブロックチェーン内の「ブロック」の全てが本物でなくてもよく、及び/または他の特定のノードに関連しなくてもよい。例えば、特定の車両、例えば、ノード1100-4、1100-5、…、1100-Nは、ノード1100-1と関連付けられたパブリックエンティティまたはプライベートエンティティと関連付けられた車両のサブセットまたはサブクラスに属してもよいが、第1の、例えば、「グローバル」台帳ブロックチェーン内の特定のブロックのみが、特定のノード1100-4、1100-5、…、1100-N、例えば、車両のそのサブセットまたはサブクラス内の特定の車両に関連してもよい。したがって、本明細書で開示される実施形態に従って、特定のノード、1100-4、1100-5、…、1100-Nは、認証され、そのノード、1100-4、1100-5、…、1100-Nに関連するそれらのブロックのみを有効であると確認してもよい。
例示的な実施形態に従って、特定のノード、例えば、1100-4は、認証され、ノードに関連するブロックを有効であると確認してもよく、そのブロックを第2のブロックチェーン台帳に追加してもよく、第2のブロックチェーン台帳は、ノード1100-1からノード1100-4へ受信されたグローバル台帳ブロックチェーンに含まれるブロックの全てのよりも少ないサブセットであってもよい。ノード1100-4は、「グローバル台帳ブロックチェーン」のサブセットを「ローカルブロックチェーン台帳」(本明細書で「ローカル台帳ブロックチェーン」とも称される)としてそれぞれのノード、1100-4、1100-5、…、1100-Nに記憶してもよい。ノード1100-4はまた、ローカル台帳ブロックチェーンを他のノードと共有してもよい。しかしながら、それが必要とされるわけではなく、その特定のノード1100-4、例えば、その特定の車両のホスト及び/またはメモリデバイスのみに対してそれが「ローカル」のままでいることができる点で、ローカル台帳ブロックチェーンは、「ローカル」と呼ばれる。よって、例示を容易にするために、第2のブロックチェーン台帳(「ローカル台帳ブロックチェーン」)は、本明細書でローカル台帳ブロックチェーンと称されてもよい。ノード、例えば、1100-4は、それが接続されたノードのネットワークを介して、様々な主題に関する、他のグローバル台帳ブロックチェーンと関連付けられた多くのグローバルブロックを受信してもよい。しかしながら、ノード、例えば、1100-4は、それがどのブロックを追加することを受諾するかによって、そのローカル台帳ブロックチェーンに追加されることが可能になるかについて選択的であってもよい。図12及び13と関連して更に詳細に説明されるように、本開示の実施形態は、特定のノード、1100-4、1100-5、…、1100-Nに関連するブロックを有効であると確認し、そのブロックを追加し、「ローカル台帳ブロックチェーン」データとして、例えば、特定の車両へのセキュアファームウェア更新として、それらのブロックを特定のノード、1100-4、1100-5、…、1100-Nに記憶し、それらのブロックを特定のノード、1100-4、1100-5、…、1100-N上で維持するために、図5~9において説明される暗号化技術を使用してもよい。1つの実施例では、特定の車両、例えば、ノード1100-4、1100-5、…、1100-N上の単一のホスト(図11Aに示されるもののような)または複数のホストは、ローカル台帳ブロックチェーンを維持してもよい。実施例として、単一または複数のホストは、「USING MEMORY AS A BLOCK IN A BLOCK CHAIN」と題する、代理人整理番号1016.0030001の同時係属中の、共同出願された米国特許出願第_____________において説明される技術に従って、分散台帳をノード上で維持することができる。この実施例では、特定の車両、例えば、ノード1100-4、1100-5、…、1100-Nに関連するファームウェア更新は、有効であると確認されてもよく、ノード、1100-4、1100-5、…、1100-Nの「ローカル台帳ブロックチェーン」に追加されてもよく、または代わりに、破棄されてもよい。
図12は、回路上で動作することができ、メモリ及びセキュアアレイに記憶することができるような、例えば、図11Aにおける回路1110及びメモリ1140によって、グローバル台帳ブロックチェーン1222とローカル台帳ブロックチェーン1224、1226、及び1228との間の交換の実施例を示す。この実施例では、データへのセキュア更新は、有効であると確認されてもよく、図11Aと関連して説明されたメモリアレイ1101などのメモリに記憶されてもよい。本明細書で使用されるように、ブロックチェーン台帳またはシステムにおけるブロックチェーン技術に従ったブロックは、データ(例えば、ペイロード)、ヘッダ、暗号化、履歴、タイムスタンプなどを含んでもよい。再度、ブロックチェーン内の「ブロック」は、図10におけるメモリの記憶単位として説明されたように、メモリのブロックのサイズに相関付ける必要はなく、またはメモリのブロックのサイズに等しい必要はない。
更に、本明細書で使用される場合、用語「グローバルブロック」は、1つの実施例では、エンティティのより大規模なシステムまたはネットワークにわたって維持及び共有される、第1のブロック台帳内のブロックである。「ローカルブロック」は、特定のノード、例えば、1100-4に関連するデータのサブセットとして、車両のサブセットに関連する特定の主題のサブセットとして、またはエンティティ、例えば、図11Aにおけるメモリデバイス1101のシステムまたはネットワーク内のエンティティのより多くの特定のクラスとして維持された、ローカル台帳ブロックチェーン内のみにあるブロックである。グローバルブロックチェーンまたはローカルブロックチェーンのいずれも、特定のメモリアーキテクチャのブロックサイズに等しい必要はない。グローバルブロック及び/またはローカルブロックは、特定のメモリアーキテクチャまたは設計と関連付けられたブロックサイズデノミネーションよりも小さくてもよく、それと等しくてもよく、及び/またはそれよりも大きくてもよい。
図12に示されるように、第1の、例えば、グローバル台帳ブロックチェーン1222は、図11Bにおけるノード1100-1と関連付けられた主題に関連してもよい。グローバル台帳ブロックチェーンは、グローバルブロック1220-1、1220-2、1220-3、1220-4、1220-5、1220-6、及び1220-Nを含んでもよい。本明細書で説明される回路及びロジックによって動作するとき、グローバルブロック1220は、ローカルブロック1221-1、1221-2、1221-3、1221-4、1221-5、1221-6、及び1221-Nとして示される、第2の、例えば、ローカル台帳ブロックチェーン1224、1226、及び1228に有効であると確認され、それらに受諾されてもよい。第2の、例えば、ローカル台帳ブロックチェーン1224、1226、及び1228は、図11Bに示された、ノード、1100-4、1100-5、…、1100-Nによってそこでそれぞれ維持されてもよい。代わりに、特定のノード、例えば、図11Bに示されたノード、1100-4、1100-5、…、1100-N上で維持されたローカル台帳ブロックチェーンに対して有効であると確認されない場合、グローバル台帳ブロックチェーンのそれぞれのグローバルブロックは、それらから拒否されることがある。
例えば、グローバルブロックチェーンデータがローカル台帳ブロックチェーン内のローカルブロックとして有効であると確認され、記憶されるよう、特定のメモリによって受信されるとき、グローバルブロックチェーンデータは、ローカル台帳ブロックチェーン内のローカルブロックになる前に、回路及びロジック、例えば、図11Aにおける回路1110によって有効であると確認される必要がある。図12の実施例では、グローバルブロック1220-1は、ローカル台帳ブロックチェーン1224内のローカルブロック1221-1になるよう、例えば、回路1110によって有効であると確認されており、グローバルブロック1220-2は、ローカル台帳ブロックチェーン1226内のローカルブロック1221-2になるよう有効であると確認されており、グローバルブロック1220-3は、ローカル台帳ブロックチェーン1228内のローカルブロック1221-3になるよう有効であると確認されており、グローバルブロック1220-4は、ローカル台帳ブロックチェーン1224内のローカルブロック1221-4になるよう有効であると確認されており、グローバルブロック1220-5は、ローカル台帳ブロックチェーン1224内のローカルブロック1221-5になるよう有効であると確認されており、グローバルブロック1220-6は、ローカル台帳ブロックチェーン1226内のローカルブロック1221-6になるよう有効であると確認されており、グローバルブロック1220-Nは、ローカル台帳ブロックチェーン1228内のローカルブロック1221-Nになるよう有効であると確認されている。
1つの例示的な実施形態では、グローバルブロック1220は、図11Aにおけるメモリデバイス、例えば、1101に受信されてもよく、図11Aにおいて説明された回路1110を使用することによって、ローカル台帳ブロックチェーン1224、1226、または1228に対して有効であると確認されてもよく、追加されてもよい(例えば、生成される)。図12の実施例では、グローバルブロック1220-4は、ローカルブロック1221-4になるよう受信され、有効であると確認されている。ローカルブロック1221-1が本明細書で説明される回路及びロジックによって有効であると確認された後、ローカルブロック1221-4がローカル台帳ブロックチェーン1224に追加されてもよい。図13と関連して更に説明されるように、ローカルブロック1221-1は、メモリに記憶されたデータの更新として、グローバルブロック1220-4を有効であると確認するために使用される。この実施例では、ローカルブロック1221-4は、ローカルブロック1221-1の後のローカル台帳ブロックチェーン1224内の次のブロックとして受諾及び記憶されてもよい。グローバル台帳ブロックチェーン1222は、複数のホスト(例えば、図11Aと関連して説明されたホスト1102)からのブロックチェーン構成、アーキテクチャ、及び/またはプロトコル内のブロックを含んでもよい。
ホスト及び/またはメモリは、ローカル台帳ブロックチェーン1224、1226、1228を維持してもよく、例えば、記憶してもよく、特定のホスト及び/またはメモリに関連する有効であると確認されたグローバルブロックのみを含んでもよい。実施例として、特定の進入ノードと関連付けられたローカル台帳ブロックチェーンは、その進入ポイントへのトラフィック及びその進入ポイントからのトラフィックに関連するデータのみを、その特定のローカル台帳ブロックチェーン内のブロックとして記憶してもよい。グローバルブロック1220は、グローバルブロックに含まれるデータと関連付けられた特定のホスト及び/またはメモリについての識別子を含んでもよい。例えば、特定のホスト/メモリ識別子(ID_1)と関連付けられたローカル台帳ブロックチェーン1224が示される。よって、このホスト/メモリ関係と関連付けられた回路は、ローカル台帳ブロックチェーン1224がローカルブロック1221-1(グローバル台帳ブロックチェーン1220からのグローバルブロック1220-1)、ローカルブロック1221-4(グローバル台帳ブロックチェーン1220からのグローバルブロック1220-4)、及びローカルブロック1221-5(グローバル台帳ブロックチェーン1220からのグローバルブロック1220-5)のみを含むように、関連するグローバルブロックのみを有効であると確認する。実施例として、ローカル台帳ブロックチェーン1224は、第1の進入ノード(例えば、進入ノード333-1)と関連付けられてもよい。別のホスト及び/またはメモリ識別子(ID_2)と関連付けられたローカル台帳ブロックチェーン1226が示される。実施例として、ローカル台帳ブロックチェーン1226は、第2の進入ノード(例えば、進入ノード333-2)と関連付けられてもよい。よって、このホスト/メモリ関係と関連付けられた回路は、ローカル台帳ブロックチェーン1226がローカルブロック1221-2(グローバル台帳ブロックチェーン1220からのグローバルブロック1220-2)、及びローカルブロック1221-6(グローバル台帳ブロックチェーン1220からのグローバルブロック1220-6)を含むように、関連するグローバルブロックのみを有効であると確認する。別のホスト及び/またはメモリ識別子(ID_k)(例えば、図3における進入ノード333-3などの第3の進入ノード)と関連付けられたローカル台帳ブロックチェーン1228が示される。よって、このホスト/メモリ関係と関連付けられた回路は、ローカル台帳ブロックチェーン1228がローカルブロック1221-3(グローバル台帳ブロックチェーン1220からのグローバルブロック1220-3)、及びローカルブロック1221-N(グローバル台帳ブロックチェーンからのグローバルブロック1220-N)を含むように、それらのブロックがその特定の進入ノードまたはアクセスポイントに関連するように、関連するグローバルブロック(位置への全ての進入ポイントに関連する)のみを有効であると確認する。
それぞれのホスト及び/またはメモリ関係(例えば、ID_1、ID_2、及びID_k)のメモリへの更新として適切なブロックチェーンデータを記憶するためにローカル台帳ブロックチェーン(例えば、1224、1226、1228)を使用することは、所与のホストと関連して所与のメモリデバイス(例えば、図11Aのメモリデバイス1106)に記憶されたデータへのセキュア更新をもたらすことができる。したがって、本明細書で説明される回路及びロジックは、図12に示された交換および編成を可能にする。例えば、回路は、グローバル台帳ブロックチェーン1222からグローバルブロック、例えば、1220-4を受信し、グローバルブロック1220-4が特定のホスト及び/またはメモリ関係に関連するかどうかを判定するように構成される。グローバルブロック1220-4が特定のホスト及び/またはメモリに関連する場合、例えば、ブロックチェーン技術に従ってそれぞれの識別子(例えば、ID_1、ID_2、及びID_k)についての暗号化ハッシュの比較が一致する場合、回路は、そのローカル台帳ブロックチェーン1224にグローバルブロック1220-4を追加してもよい。ブロックチェーンデータのグローバルブロック1220-4は、ホスト及び/またはメモリと関連付けられたセキュアアレイに含まれるデータへの更新のペイロードを含んでもよい。本明細書で説明される回路、例えば、回路1110は、ローカル台帳ブロックチェーン1224内の最新ローカルブロック、例えば、1221-1の暗号学的ハッシュ及びグローバルブロック1220-4に含まれる、更新されることになるメモリに記憶されたデータの暗号学的ハッシュをチェックする、例えば、比較することによって、グローバルブロック1220-4を有効であると確認してもよい。ローカル台帳ブロックチェーン1224の最新ローカルブロック1221-1も、グローバルブロック1220-4が権限を有するエンティティ(例えば、グローバルブロック1220-4がローカル台帳ブロックチェーン1224を含む特定のホスト及び/またはメモリ関係と関連付けられたエンティティからであることを立証する識別子ID_1を含む)からであるかどうかを示すよう同様に比較される、それと関連付けられたデジタル署名を含む。図13と関連して説明されるように、ローカル台帳ブロックチェーン1224内で、有効であると確認される場合、最新ローカルブロック1221-1は、「前の」ローカルブロックになり、グローバルブロック1220-4は次いで、「最新」ローカルブロック1221-4になる。ローカル台帳ブロックチェーン1224(例えば、及び/または、1226、1228)のローカルブロック1221のコンテンツは、図13と関連して詳細に説明される。
権限を有するエンティティは、公開台帳としてグローバル台帳ブロックチェーン1222を提供してもよく、公開台帳は、特定の位置へのアクセスを受信するようグローバル台帳ブロックチェーン1222と同時に起こる、ホスト及び/またはメモリの全て及び/または一部に分散されてもよい。例えば、グローバル台帳ブロックチェーン1222は、特定の位置、車道などへのトラフィック及びそれらからのトラフィックを監視することができるエンティティによって生成及び維持されてもよい。例えば、グローバル台帳ブロックチェーン1222は、パブリックエンティティまたはプライベートエンティティ(例えば、軍事エンティティ、空港マネージャ、ホテルオーナ、病院エンティティなど)によって生成及び維持されてもよく、パブリックエンティティまたはプライベートエンティティは次いで、それらが位置に移動し、位置から移動するにつれて特定の車両を監視する。グローバル台帳ブロックチェーン1222内のグローバルブロック1220の各々は、特定の識別子を有する車両に対する入口データ及び出口データを含んでもよい。例えば、図12によって示されるように、グローバルブロック1220-1、1220-4、1220-5は、ホスト及び/またはメモリID_1に対応し、グローバルブロック1220-2、1220-6は、ホスト及び/またはメモリID_2に対応し、グローバルブロック1220-3、1220-Nは、ホスト及び/またはメモリID_kに対応する。異なるIDは、異なるホスト及び/またはメモリ関係(例えば、異なる車両)に対応する。
このインスタンスでは、パブリックエンティティまたはプライベートエンティティは、特定の車両(例えば、または、識別子を共有する車両の特定のサブセット)に対して生成された入口または出口の更新の各々のインスタンスがグローバル台帳ブロックチェーン1222に不変レコードとして記録されるように、グローバル台帳ブロックチェーン1222を生成及び監視する。例えば、グローバルブロック1220-1は、ID_1と関連付けられた車両についての更新(例えば、または、車両と関連付けられたメモリ内のデータ)を含み、グローバルブロック1220-2は、ID_2と関連付けられた車両についての更新を含む、などである。グローバルブロック1220は、それらがパブリックエンティティまたはプライベートエンティティによって生成されるように順番に組み立てられ、各々のグローバルブロック1220は、車両が進入または退出している特定のゲート及び/または特定の位置を示すデジタル署名を含んでもよい。このようにして、パブリックエンティティまたはプライベートエンティティは、監視された異なる車両に対して生成された更新(例えば、進入、退出、移動など)の全ての不変レコードを維持することができる。
ブロックチェーン技術において使用されるように、及び図13と関連して更に説明されるように、グローバル台帳ブロックチェーン1222内のグローバルブロック1220は、複数のヘッダ及び暗号化を含んでもよい。例えば、グローバル台帳ブロックチェーンのグローバルブロックは、前のグローバルブロックへの暗号学的ハッシュデータ(例えば、それへのリンク)を含むグローバルブロックヘッダ及び前のローカルブロックへの暗号学的ハッシュデータを含むハッシュを含んでもよい。よって、グローバルブロックが図11Aにおけるホスト1102及び/またはメモリデバイス1106によって受信されるとき、ローカル台帳ブロックチェーンに追加されることになるグローバルブロックは、ローカル台帳ブロックチェーン内の最新ローカルブロック(例えば、ブロックチェーンデータ1120における)への暗号学的ハッシュ(例えば、それへのリンク)及びメモリデバイス1106に記憶されたデータ(例えば、ペイロード)への更新の暗号学的ハッシュを含んでもよい。ローカル台帳ブロックチェーン内のブロックチェーンデータ1120も、グローバルブロックが権限を有するエンティティからであることを示す、それと関連付けられたデジタル署名を含んでもよい。
異なって述べられるように、グローバル台帳ブロックチェーンからのグローバルブロックは、ホスト及び/またはメモリ、例えば、図11Aに示されたホスト1102及び/またはメモリ1140によって受信されてもよく、ホスト及び/またはメモリ上の回路及び/またはロジックは、グローバルブロックがホスト及び/またはメモリに関連するかどうかを判定してもよい。そうである場合、グローバルブロック及びそのコンテンツは、ローカル台帳ブロックチェーンに記憶されたブロックチェーンデータの新たなローカルブロックになるよう(例えば、図11Aにおけるメモリ1140のアレイ1101に記憶されたブロックチェーンデータ1120の一部として)有効であると確認されてもよい。ローカルブロックも、ローカルブロックがいつ生成/受信されたかを示すタイムスタンプを有するヘッダを含んでもよい。
受信/生成されたローカルブロックに含まれるデータによって更新、改変、構成、及び/もしくはそうでなければ変更されることになるメモリアレイ(例えば、図11Aのメモリアレイ1101)に記憶されたデータの暗号学的ハッシュ、並びに/またはローカル台帳ブロックチェーン内の前のローカルブロックの暗号学的ハッシュは、例えば、SHA-256暗号学的ハッシュを含んでもよい。更に、メモリアレイに記憶されたデータの暗号学的ハッシュ、及びローカル台帳ブロックチェーン内の前のローカルブロックの暗号学的ハッシュは各々それぞれ、256バイトのデータを含んでもよい。
メモリアレイに記憶されたデータの暗号学的ハッシュは、回路、例えば、図11Aにおける回路1110によって生成されてもよい(例えば、計算される)。そのような実施例では、記憶されたデータの暗号学的ハッシュは、ホスト/メモリデバイスインタフェース、例えば、図11Aにおけるインタフェース1104上で外部データを移動させることなく、メモリデバイス、例えば、図11Aにおけるメモリデバイス1106によって内部的に生成されてもよい。追加の実施例として、データの暗号学的ハッシュは、外部エンティティから通信されてもよい。例えば、ホストは、メモリアレイに記憶されたデータの暗号学的ハッシュを生成してもよく、メモリデバイスに生成された暗号学的ハッシュを送信してもよく、例えば、メモリデバイスの回路は、ホストから、メモリアレイに記憶されたデータの暗号学的ハッシュを受信してもよい。
更に、ローカルブロックと関連付けられたデジタル署名は、ホストから受信されたコマンドなどの外部コマンドに基づいて(例えば、それに応答して)回路によって生成されてもよい(例えば、計算される)。デジタル署名は、対称暗号化または非対称暗号化を使用して生成されてもよい。デジタル署名は、グローバル台帳ブロックチェーン上の前のローカルブロックの形式にあるフレッシュネスフィールドを含んでもよい(ブロックが追加されるときにローカル台帳ブロックチェーン上の最新ローカルブロックに一致するはずである)。追加の実施例として、ホストは、デジタル署名を生成してもよく、メモリデバイスに生成されたデジタル署名を送信してもよい(例えば、提供する)。
本明細書で説明されるフレッシュネスフィールドは、ローカル台帳ブロックチェーンに追加される各々のグローバルブロックと共に変化してもよい。したがって、フレッシュネスフィールドは、次に来るグローバルブロックがローカル台帳ブロックチェーン内の次のブロックとして追加されることになる正確なブロックであることが有効であると確認するために使用されてもよい。次に来るグローバルブロックがホストに関連すること、及び次に来るグローバルブロックの前のローカルブロックフィールド(フレッシュネス)がローカル台帳ブロックチェーン内の最新ローカルブロックと同一であることをデジタル署名が示すとき、次に来るグローバルブロックは、ローカル台帳に追加されることになる次のローカルブロックであると検証される。デジタル署名を計算するためにフレッシュネスも使用することができることを理由に、デジタル署名は、各々の次に来るグローバルブロックとは異なってもよい。
言及されたように、デジタル署名は、例えば、非対称暗号化(例えば、公開鍵及び/または秘密鍵に基づいた)を使用して生成されたデジタル署名であってもよく、例えば、楕円曲線デジタル署名を含んでもよい。追加の実施例として、署名は、対称暗号化(例えば、ホストとメモリデバイスとの間で共有された一意な共通鍵に基づいた)を使用して生成されてもよい。共通鍵は、いずれかの非対称プロトコル(例えば、Diffie-Hellmanプロトコル)を使用して交換されてもよい。他の実施例では、鍵は、セキュア環境内で(例えば、車両がパブリックエンティティまたはプライベートエンティティと関連付けられるように、工場生産、安全な製造など)ホストと共有されてもよい。共通鍵の生成及び有効であるとの確認は、図5~9と関連して更に議論される。
図11Aと関連して説明されるように、そのようなブロックチェーンデータ1120は、メモリアレイ、例えば、図11Aにおけるメモリアレイ1101に記憶されてもよい。ブロックチェーンデータ1120は、メモリデバイス及び/またはホストのユーザにアクセス可能でないメモリアレイ1101の部分に(例えば、メモリアレイの「隠蔽された」領域に)記憶されてもよい。ブロックチェーンデータのローカルブロック及び/またはローカル台帳ブロックチェーンを特定のメモリアレイに記憶することは、ローカルブロックに対するソフトウェア記憶管理についての必要性を除去することによって、ローカルブロックの記憶を簡易化することができる。
図12の実施例では、グローバルブロック1220-6は、前のグローバルブロック1220-5のハッシュについてのフィールドを有するグローバルヘッダを含んでもよく、前のグローバルブロックフィールドは、グローバル台帳ブロックチェーン1222内の先行ブロックを示す。グローバルヘッダ内の異なるハッシュは、前のローカルブロックフィールドを含むことができ、前のローカルブロックフィールドは、同一のホスト及び/またはメモリIDの識別子を有する先行グローバルブロックを示す。
例えば、グローバルブロック1220-6は、それらが両方との車両ID_2であることを理由に、グローバルブロック1220-2(前の関連するグローバルブロック)についてのハッシュを有するローカルブロックフィールドを含んでもよい。このようにして、特定のホスト及び/またはメモリデバイス関係(例えば、車両または車両のサブセットについての)は、グローバル台帳ブロックチェーン1222から複数のグローバルブロック1220を受信してもよく、どのグローバルブロック1220をローカルブロックとして受諾するか、及びどのグローバルブロック1220を破棄するかを判定してもよい。
例えば、ローカル台帳ブロックチェーン1224は、ID_1を有するホスト(例えば、車両)の形式にある識別子を通じて特定のホストと関連付けられたメモリデバイス及び/またはメモリに含まれてもよい。本明細書で説明されるような回路は、ローカル台帳ブロックチェーン1224の一部として、グローバルブロック1220をホスト車両と関連付けられたメモリに記憶するように構成されてもよい。言い換えると、回路は、グローバル台帳ブロックチェーン1222から複数のグローバルブロック1220を受信するように構成され、グローバルブロック(複数可)1220が車両ID_1と関連付けられたホスト車両に属すると回路が判定するとき、それらはローカルブロック1221として受諾され、ローカル台帳ブロックチェーン1224に追加される。
特に、実施例では、ID_1を有するホスト車両及び/またはホスト車両と関連付けられたメモリは、例えば、ローカル台帳ブロックチェーン1224を含み、例えば、それを記憶してもよく、回路及び/またはメモリは、グローバル台帳ブロックチェーン1222から複数のグローバルブロック1220-1、1220-2、1220-3、1220-4、1220-5、1220-6、及び1220-Nを受信してもよい。回路は、回路によって、グローバル台帳ブロックチェーン1222から受信された複数のグローバルブロック1220が、ホスト車両ID_1と関連付けられたホスト車両及び/またはメモリに関連するかどうかを判定するように構成される。よって、回路は、グローバルブロック1220-1、1220-4、及び1220-5がホスト車両ID_1に関連すると判定してもよく、回路は、有効であると確認し、有効であると確認された場合、それらがホスト車両ID_1に関連すると検証されたことを理由に、ローカルブロック1221-1、1221-4、及び1221-5として、グローバル台帳ブロックチェーン1222から受信された複数のグローバルブロックのグローバルブロック1220-1、1220-4、1220-5をローカル台帳ブロックチェーン1224に順次に追加するように構成される。別の実施例では、複数のグローバルブロック1220が位置の特定のゲートに関連するかどうかの判定。このようにして、異なるブロックは、ソートされてもよく、異なるエンティティと関連付けられてもよく、1つのローカルブロックチェーン台帳は、車両(車両が行う全ての進入及び退出を含む)と関連付けられてもよく、別のローカルブロックチェーン台帳は、ゲート(そのゲートを進入及び退出する全ての車両を含む)と関連付けられてもよい、などである。
1つの実施例では、グローバルブロック1220-1、1220-4、及び1220-5は、それぞれのグローバルブロック1220の各々内の前のローカルブロックフィールドがローカル台帳ブロックチェーン1224の最新ローカルブロック内の最新ローカルブロックフィールドに一致するとき、ローカル台帳ブロックチェーン1224に追加されてもよい(順次に)。特に、回路は、グローバルブロック1220-4が権限を有するエンティティ(例えば、グローバル台帳ブロックチェーン1222内の車両識別子)からであることを確認し、グローバルブロック1220-4の前のローカルブロックフィールドがローカルブロック1221-1(グローバルブロック1220-1と同一である)についてのハッシュであるとチェックし、最新ローカルブロック1221-1がその自身の最新ローカルブロックフィールド内で一致するハッシュを有するとチェックすることによって、次に来るグローバルブロック1220-4を有効であると確認してもよい。この手順は、ローカル台帳ブロックチェーン1224にグローバルブロック1220-5を追加するために適用されてもよい。よって、グローバルブロック1220-1、1220-4、及び1220-5は、ローカル台帳ブロックチェーン1224内のローカルブロック1221-1、1221-4、及び1221-5になることができる。この方法及び構成を使用して、ローカル台帳ブロックチェーン1224は、順番に組み立てられた(ID_1)と関連付けられたホスト及び/またはメモリに関連する複数のローカルブロックを含む。
加えて、回路は、それらがホスト及び/またはメモリID_1に関連しないとき、ローカル台帳ブロックチェーン1224にグローバルブロック1220を追加することを控えるように構成される。よって、回路は、グローバルブロック1220-2、1220-6、1220-3、及び1220-Nがホスト及び/またはメモリID_1に関連しないと判定してもよく、ローカル台帳ブロックチェーン1224から関連しないグローバルブロックを破棄してもよい。図12と関連して説明された機構は、複数のホスト及び/または複数のメモリ、例えば、ローカル台帳ブロックチェーン1226及びローカル台帳ブロックチェーン1228に適用されてもよい。
例えば、回路は、メモリ(例えば、ID_1と関連付けられた)に記憶されたデータへの更新を有効であると確認するためのローカル台帳ブロックチェーン(例えば、1224)を生成してもよく、グローバル台帳ブロックチェーン1222からグローバルブロック(例えば、1220-1、1220-2、1220-3、1220-4、1220-5、1220-6、1220-N)を受信してもよい。回路は、第1の部分のグローバルブロックの各々と関連付けられたデジタル署名がホスト及び/またはメモリ(例えば、ID_1)に関連すると回路によって有効であると確認されるとき、ローカル台帳ブロックチェーン1224にグローバルブロックの第1の部分(例えば、1220-1、1220-4、1220-5)を追加してもよい。回路は、グローバルブロックの第2の部分がID_1と関連付けられたホスト及び/またはメモリに関連しないと判定されるとき(例えば、第2の部分がID_2及び/またはID_kと関連付けられる)、受信されたグローバルブロックの第2の部分(例えば、1220-2、1220-6、1220-3、1220-N)を破棄してもよい。
図13と関連して更に説明されるように、フレッシュネスフィールドは、グローバルブロックがローカル台帳ブロックチェーン(例えば、1224、1226、1228)に属すると検証するために回路によって使用されてもよい。上記の実施例では、第1の部分(例えば、1220-1、1220-4、1220-5)のグローバルブロックの各々は、デジタル署名を生成するために使用されるフレッシュネスフィールドを含む。第1の部分(例えば、1220-1、1220-4、1220-5)のグローバルブロックの各々についてのフレッシュネスフィールドは、ローカル台帳ブロックチェーン1224の最新ローカルブロックに対応する。したがって、第1の部分(例えば、1220-1、1220-4、1220-5)のグローバルブロックは、ローカル台帳ブロックチェーン1224に順番に追加され(ローカルブロック1221-1、1221-4、及び1221-5として)、ホストと関連付けられたメモリに記憶される。
特に、回路は、グローバルブロックのフレッシュネスフィールドに基づいてデジタル署名を生成してもよい。例えば、回路は、グローバルブロック1220-4のヘッダ内の前のローカルブロックフィールドを識別することによって(このインスタンスでは、それがID_1を有する前のグローバルブロックであることを理由に、これは、グローバルブロック1220-1のハッシュである)、グローバルブロック1220-4のフレッシュネスフィールドを生成してもよい。ローカル台帳ブロックチェーン1224の最新ローカルブロック1221-1及びグローバル台帳ブロックチェーン1222のグローバルブロック1220-4の前のローカルブロックフィールド(再度、このインスタンスでは、これは、グローバルブロック1220-1である)は同一である。
図13は、本開示の実施形態に従った、メモリに(例えば、図11Aと関連して前に説明されたメモリアレイ1101に)記憶されたセキュア更新のためのローカル台帳ブロックチェーン(例えば、ローカル台帳ブロックチェーン1324)の実施例を示す。ローカル台帳ブロックチェーン1324は、図12と関連して説明されたローカル台帳ブロックチェーン1224と類似してもよい。例示を容易にするために、図13は、ローカル台帳ブロックチェーン1324のみを示す。しかしながら、図13、及びローカル台帳ブロックチェーン1324と関連して説明される実施例も、他のローカル台帳ブロックチェーン(例えば、図3と関連して説明されたローカル台帳ブロックチェーン1226及び1228)に対して適用されてもよい。ローカル台帳ブロックチェーン1324は、それぞれのホスト及び/またはメモリ交換のメモリに記憶されたデータを使用して、位置及び/または車道に進入及び退出するトラフィックのセキュア監視のために使用されるブロックチェーンである。1つの実施例として、ホスト及び/またはメモリ交換は、特定の識別子、例えば、識別子ID_1と関連付けられる。
この実施例では、ローカル台帳ブロックチェーン1324のローカルブロック1321-1、1321-4、1321-5は、例えば、図3の実施例における前のグローバルブロック1220-1、1220-4、1220-5として受信されたブロックである。1つの実施例では、図11Aにおける回路1110は、例えば、SHA256ハッシュを使用してブロックチェーンデータのそれぞれのハッシュを比較及び有効であると確認するよう、図5~9と関連して説明されるブロックチェーン暗号化及び復号技術を使用して、受信されたグローバルブロックに対して動作する。グローバルブロックがホスト及び/またはメモリ(例えば、ID_1)に関連すると検証されるとき、それらは、ローカルブロック1321-1、1321-4、及び1321-5になってもよく、ID_1と関連付けられたホスト及び/またはメモリに対してローカル台帳ブロックチェーン1324に不変レコードとして記憶されてもよい。この実施例では、回路は、ホストID_1と関連付けられたメモリへの記憶のために、ローカルブロック1321-4(例えば、前のグローバルブロック1320-4)についてのブロックチェーンハッシュをローカルブロック1321-1(例えば、前のグローバルブロック1220-1)と比較するよう動作する。ホスト及び/またはメモリと関連付けられた回路によって有効であると確認されると、回路は、ローカルブロック1321-1にリンクしてもよい。同様に、ホスト及び/またはメモリと関連付けられた回路によって有効であると確認されると、ローカルブロック1321-5(例えば、前のグローバルブロック1220-5)は、ローカルブロック1321-4にリンクしてもよい。
図13の実施例では、各々のローカルブロック(例えば、1321-1、1321-4、及び/または1321-5など)はそれぞれ、以下の情報:グローバルブロックヘッダ、例えば、1330-1、1330-4、1330-5、及びローカルブロックヘッダ、例えば、1332-1、1332-4、1332-5を含んでもよい。この実施例では、各々のローカルブロックヘッダ1332-1、1332-4、1332-5は、前のローカルブロックハッシュ1345-1、1345-4、1345-5、最新ローカルブロックハッシュ1334-1、1334-4、1332-5、及びブロック署名1335-1、1335-4、1335-5を含む。図13の実施例に示されるように、各々のローカルブロック、例えば、1321-1、1321-4、及び1321-5は、ブロックの情報、例えば、データの一部として、ペイロード、例えば、1336-1、1336-4、1336-5を含む。図3と関連して言及されたように、ブロック(例えば、グローバル及びローカル)の各々は、それらのそれぞれのブロックチェーン台帳(グローバルまたはローカル)内の前のブロックに最新ブロックをリンクするための複数のヘッダ(例えば、1330-1、1332-1)を含んでもよい。
例えば、ローカル台帳ブロックチェーン1324にローカルブロック1321-4を追加する方法を参照して、グローバルブロックヘッダ1330-4は、グローバル台帳ブロックチェーン内の同一の関連付けられたID_1を有する前のグローバルブロックについてのハッシュと共に、最新グローバルブロックについてのハッシュ(共にグローバル台帳ブロックチェーンにリンクするための)の形式にあるフレッシュネスフィールドを含んでもよい。言い換えると、グローバルブロック(例えば、図12の1220-4)がグローバル台帳ブロックチェーン(例えば、図12の1222)にあるとき、グローバルブロックヘッダ内のフレッシュネスフィールドは、グローバル台帳ブロックチェーン(例えば、図12の1222)内の同一の関連付けられた識別子(例えば、ID_1)を有する前のグローバルブロック(例えば、図12の1220-1)についてのハッシュである。この実施例では、ローカルブロック1321-4がローカル台帳ブロックチェーン1324に追加されると検証されているとき、ローカル台帳ブロックチェーン1324内のローカルブロック1321-1の最新ローカルブロックハッシュ1334-1は、回路がローカルブロック1321-4としてローカル台帳ブロックチェーン1324にそれを追加する、次に来るグローバルブロック(例えば、1220-4)を有効であると確認するときに、グローバルブロックヘッダ1330-4内のフレッシュネスフィールドと同一である。更に言い換えると、グローバルブロックヘッダ1330-4のフレッシュネスフィールドは、最新ローカルブロック1321-1が前にグローバルブロック1220-1であったことを理由に、ローカル台帳ブロックチェーン1324のローカルブロック1321-1の最新ローカルブロックハッシュ1334-1に一致するはずである。
ローカルブロックヘッダ、例えば、1332-1、1332-4、及び1332-5は各々、前のローカルブロックハッシュ、例えば、1345-1、1345-4、及び1345-5(ローカル台帳ブロックチェーン1324を共にリンクするための)、並びに最新ローカルブロックハッシュ、例えば、1334-1、1334-4、及び1334-5(次に来るグローバルブロックフレッシュネスフィールドと同一の)、並びにブロックが権限を有するエンティティ(例えば、ホスト及び/またはメモリと関連付けられたリスト化された車両識別子及び/またはエンティティ)からであることと、ホスト及び/またはメモリ(例えば、ID_1)に関連することとを示すためのブロック署名、例えば、1335-1、1335-4、1335-5をそれぞれ含む。ペイロード、例えば、1336-1、1336-4、及び1336-5は、ハードウェア、構成、及び/またはソフトウェア更新(例えば、構成、構成における変更、ホスト及び/もしくはホストと関連付けられたメモリのデバイスへの改変など)、並びに/または更新されることになるメモリに記憶されたデータの暗号学的ハッシュを含むデータであってもよい。
例えば、ID_1の識別子を有する車両及び/または車両と関連付けられたメモリの形式にあるホストは、メモリに記憶されたデータへの更新が有効であると確認するためのローカル台帳ブロックチェーン1324を生成するメモリ及び回路を含んでもよい。この実施例では、ローカル台帳ブロックチェーン1324は、グローバル台帳ブロックチェーン(例えば、図12の1222)から取られたローカルブロック1321-4(例えば、図12のグローバルブロック1220-4)から構成される。ローカルブロック1321-4は、最新ローカルブロック1321-4の最新ローカルブロック暗号学的ハッシュ1334-4を含む。最新ローカルブロック暗号学的ハッシュ1334-4は、ローカル台帳ブロックチェーン1324及び更新されることになるメモリに記憶されたデータ(例えば、ペイロード1336-1、1336-4、及び1336-5)の暗号学的ハッシュの順序(例えば、シーケンス)及びそれらへのリンクを有効であると確認するためのフレッシュネスフィールドとして、最新ローカルブロックハッシュ1334-1であった前のローカルブロック暗号学的ハッシュ1345-4と比較されてもよい。ローカル台帳ブロックチェーン1324のローカルブロック1321-4は、グローバルブロック(例えば、図12の1220-4)が権限を有するエンティティからであったこと、及びローカルブロック1321-4として正確に追加されたことを示す、それと関連付けられたデジタル署名1335-4を有する。いくつかの実施例では、権限を有するエンティティは、パブリックエンティティまたはプライベートエンティティと関連付けられた全ての車両を監視している車両と関連付けられたパブリックエンティティまたはプライベートエンティティであってもよい。このようにして、ID_1と関連付けられたホスト及び/またはメモリは、ブロック署名(例えば、1335-4)をチェックしてもよく、ID_1と関連付けられたホスト及び/またはメモリに関連しないグローバル台帳ブロックチェーン(例えば、グローバル台帳ブロックチェーン1322)から受信されたグローバルブロックを破棄してもよい。
ホスト及び/またはメモリID_1は、メモリからローカル台帳ブロックチェーン1324を受信し、受信されたローカル台帳ブロックチェーン1324を使用して、メモリに記憶されたデータへの更新(例えば、ペイロード1336-1、1336-4、及び1336-5)を有効であると確認するように構成されてもよい。このようにして、ID_1と関連付けられたホスト及び/またはメモリは、権限を有するエンティティからホスト及び/またはメモリに提供された更新の各々を維持及び/または監視することができる。ローカル台帳ブロックチェーン1324のアセンブリが不変レコードを生成することを理由に、回路は、どの更新が行われたかに対する制御を維持することができる。これは、不正な更新、意図しない変更、意図しない誤り、及び悪質なハッキングの試みを防止することができる。加えて、ホストと関連付けられたメモリ上でのローカル台帳ブロックチェーン1324の維持は、要求があると生産され得る更新のレコードを提供することができる。グローバル台帳ブロックチェーン(例えば、図12のグローバル台帳ブロックチェーン1222)からのグローバルブロックが有効であると確認され、ローカル台帳ブロックチェーン1324に追加された後、回路は、ペイロード、例えば、1336-1、1336-4、及び1336-5に含まれる更新を実施してもよい。
例えば、ローカル台帳ブロックチェーン1324は、グローバルブロック(例えば、図12のグローバルブロック1220-1)を有効であると確認してもよく、ローカルブロック1321-1としてローカル台帳ブロックチェーン1324にそれを追加してもよい。有効であるとの確認の後、回路は、ローカルブロック1321-1のペイロード1336-1に含まれる更新1338-1を実行してもよい。権限を有するエンティティは、ID_1と関連付けられたホスト及び/またはメモリに別の更新をプッシュしてもよく、そのため、回路は、第2のグローバルブロック(例えば、図12のグローバルブロック1220-4)を受信してもよく、第2のグローバルブロックは、回路によって有効であると確認されてもよく、ローカルブロック1321-1にリンクされた、ローカルブロック1321-4として順次に追加されてもよい。回路は、フレッシュネスフィールドの暗号学的ハッシュ、例えば、前のローカルブロックハッシュ1345-4をチェック及び比較してもよい。有効である場合、この有効であるとの確認、及びローカル台帳ブロックチェーン1324内でのリンク、回路は、ローカルブロック1321-4のペイロード1336-4に含まれる更新1338-2を実行してもよい。この方法を使用して、メモリは、ローカルブロック1321-5などについて説明されるように、ローカル台帳ブロックチェーン1324にローカルブロックとしてグローバルブロックを追加し続けてもよい。いくつかの実施例では、ID_1と関連付けられたホスト及び/またはメモリは、より多くの更新が権限を有するエンティティによって生成されるとき、ローカル台帳ブロックチェーン1324が増加するにつれて、メモリ内の空白を作るために、ローカル台帳ブロックチェーン1324の古い部分を除去してもよい。
例えば、ホスト及び/またはメモリは、ID_1を有する車両のコンピューティングデバイスであってもよく、ローカル台帳ブロックチェーン1324は、車両の車内のソフトウェア構成要素及び/またはハードウェア構成要素への更新を示してもよい。コンピューティングデバイスは、メモリに記憶することができる閾値数の不変レコードを含んでもよい。いくつかの実施例では、更新(例えば、1338-1、1338-2)は、コンピューティングデバイスのソフトウェア構成要素及び/またはハードウェア構成要素を更新するよう、グローバルブロックを介して権限を有するエンティティからプッシュされ、回路は、ローカル台帳ブロックチェーン1324が閾値に到達したとき、ローカル台帳ブロックチェーン1324からローカルブロック(例えば、古い方のローカルブロック)を除去してもよい。回路は、ローカル台帳ブロックチェーン1324のルート(例えば、コンセンサスのルート、マークルツリーのルートなど)を改変するようファームウェアを実行することによって、新しい方のローカルブロック(例えば、1321-5)に対してコンピューティングデバイスのメモリ内で空間を作るために、古い方のローカルブロック(例えば、1321-1)を除去してもよい。このようにして、回路は、ローカル台帳ブロックチェーン1324が新たなローカルブロックを追加するにつれて、更新の制御を維持することができる。
1つの実施形態では、上記説明されたグローバルブロックチェーン及びローカル台帳ブロックチェーンは、車両のトラフィックを安全に監視するために使用されてもよい。実施例として、車両が位置に進入するにつれて、車両及び進入ノードの同一性を安全に検証するよう車両と進入ノードとの間でデータが交換されてもよい。進入ノードは、車両の識別子及びその特定の車両に関連するいずれかのアクセスデータを検証するために、グローバルブロックチェーンを使用してもよい。加えて、進入ノードは、受信されたこの特定の識別子と関連付けられた車両が位置にまだ進入していないことを検証してもよい(よって、承認されない場合にアクセスを要求するこの最新車両が不正であること、ハッカーであることなどを示す)。しかしながら、車両がこの工程を通じてアクセスを許可される場合、車両がアクセスを許可されたことを示すブロックがグローバルブロックチェーンに追加されてもよい。車両が位置から退出すると、車両が退出したことを示すブロックがブロックチェーンに追加されてもよい。ローカル台帳ブロックチェーンは、グローバルブロックチェーンの全体を監視する必要なく、特定の進入ポイントを正確に示し、どの車両がそれらの進入ポイントに進入し、どの車両がそれらの進入ポイントから退出したかを正確に示すために使用されてもよい。
図14Aは、本開示の実施形態に従った、セキュアメモリアレイを定義するために使用されるレジスタ1439-1及び1439-2のペアの実施例を示し、図14Bは、本開示の実施形態に従った、レジスタ1439-1及び1439-2を使用して定義されたセキュアメモリアレイを含むメモリアレイ1401の部分の図を示す。レジスタ1439-1及び1439-2はそれぞれ、例えば、図11Aと関連して前に説明されたレジスタ1139-1及び1139-2であってもよく、セキュアメモリアレイ1401はそれぞれ、例えば、図11Aと関連して前に説明されたメモリアレイ1101であってもよい。例えば、図14Bに示されるように、セキュアメモリアレイ1401は、図10と関連して前に説明されたメモリアレイ1001と同様の方式において、その各々がメモリセルのいくつかのセクタを有するいくつかの物理行1403-0、1403-1、…、1403-Rを含む、メモリセルのいくつかの物理ブロック1407-0、1407-1、…、1407-Bを含んでもよい。
図14Aに示されるように、レジスタ1439-1は、セキュアアレイのアドレス(例えば、セキュアアレイの異なる部分のアドレス)を定義することができ、レジスタ1439-2は、セキュアアレイのサイズ(例えば、セキュアアレイの異なる部分のサイズ)を定義することができる。レジスタ1439-1によって定義されたセキュアアレイのアドレスは、例えば、セキュアアレイの開始点(例えば、開始LBA)(例えば、セキュアアレイの異なる部分の開始点)に対応することができ、レジスタ1439-2によって定義されたセキュアアレイのサイズは、セキュアアレイの終了点(例えば、終了LBA)(例えば、セキュアアレイの異なる部分の終了点)に対応することができる。
例えば、図14Aに示されるように、レジスタ1439-1及び1439-2は、N個の値のペアを定義することができ、各々のそれぞれのペアは、レジスタ1439-1によって定義されたアドレス値(例えば、addr)及びレジスタ1439-2によって定義されたサイズ値(例えば、size)を含む。例えば、図14Aに示される実施例では、Pair0は、アドレス値addr0及びサイズ値size0(例えば、Pair0=[addr0,size0])を含み、Pair1は、アドレス値addr1及びサイズ値size1(例えば、Pair1=[addr1,size1])を含む、などであり、PairNは、アドレス値addrN及びサイズ値sizeN(例えば、PairN=[addrN,sizeN])を含む。ペアのアドレス値は、セキュアアレイの部分の開始点(例えば、開始LBA)に対応することができ、そのペアのアドレス値及びサイズ値の合計は、セキュアアレイのその部分の終了点(例えば、終了LBA)に対応することができる。したがって、セキュアアレイの全体(例えば、セキュアアレイの全体を含む部分)は、[addr0,addr0+size0]∪[addr1,addr1+size1]∪…∪[addrN,addrN+sizeN]によって与えられてもよい。
レジスタ1439-2によって定義されたそのサイズ値がゼロである第1のペアは、セキュアアレイの定義を停止してもよい。例えば、図14Aに示される実施例では、Pair2のサイズ値がゼロである場合、セキュアアレイは、[addr0,addr0+size0]∪[addr1,addr1+size1]によって与えられる。
レジスタ1439-1及び1439-2によって定義されたセキュアアレイの実施例(例えば、非ゼロとしてレジスタ1439-2によって定義された全てのサイズ値を有する)が図14Bに示される。例えば、図14Bに示されるように、メモリアレイ1401のセクタ1405-0と関連付けられたアドレス(例えば、LBA)は、addr0であり、メモリアレイ1401のセクタ1405-1と関連付けられたアドレスは、addr0+size0であり、メモリアレイ1401のセクタ1405-2と関連付けられたアドレスは、addr1であり、メモリアレイ1401のセクタ1405-3と関連付けられたアドレスは、addr1+size1であり、メモリアレイ1401のセクタ1405-4と関連付けられたアドレスは、addrNであり、メモリアレイ1401のセクタ1405-5と関連付けられたアドレスは、addrN+sizeNである。したがって、セキュアアレイは、セクタ(例えば、セクタに記憶されたデータ)1405-0~1405-1、セクタ1405-2~1405-3、及び1405-4~1405-5を含む。しかしながら、セクタ1405-0の前であるメモリアレイ1401のセクタ、及びメモリアレイ1401のセクタ1405-1~1405-2は、セキュアアレイの一部ではない(例えば、セキュアアレイは、アレイ1401のサブセットを含む)。
図15は、本開示の実施形態に従った、例示的なメモリデバイス1506のブロック図である。メモリデバイス1506は、例えば、図11Aと関連して前に説明されたメモリデバイス1106であってもよい。
図15に示されるように、メモリデバイス1506は、いくつかのメモリアレイ1501-1~1501-7を含んでもよい。メモリアレイ1501-1~1501-7は、図10と関連して前に説明されたメモリアレイ1001と同様であってもよい。更に、図15に示される実施例では、メモリアレイ1501-3は、セキュアアレイであり、メモリアレイ1501-6のサブセット1511は、セキュアアレイを含み、メモリアレイ1501-7のサブセット1513及び1515は、セキュアアレイを含む。サブセット1511、1513、及び1515は各々、例えば、4キロバイトのデータを含んでもよい。しかしながら、本開示の実施形態は、特定の数または配列のメモリアレイまたはセキュアアレイに限定されない。
図15に示されるように、メモリデバイス1506は、修復(例えば、回復)ブロック1560を含んでもよい。修復ブロック1560は、メモリデバイス1506の動作の間に発生する場合がある誤り(例えば、不一致)のケースにおいてデータの起点として使用されてもよい。修復ブロック1560は、ホストによってアドレス指定可能であるメモリデバイス1506の領域の外側であってもよい。
図15に示されるように、メモリデバイス1506は、シリアルペリフェラルインタフェース(SPI)1504及びコントローラ1508を含んでもよい。メモリデバイス1506は、本明細書で前に説明されたように(例えば、図11Aと関連して)、ホスト及びメモリアレイ1501-1~1501-7と通信するために、SPI 1504及びコントローラ1508を使用してもよい。
図15に示されるように、メモリデバイス1506は、メモリデバイス1506のセキュリティを管理するためのセキュアレジスタ1586を含んでもよい。例えば、セキュアレジスタ1586は、アプリケーションコントローラを構成してもよく、アプリケーションコントローラと外部で通信してもよい。更に、セキュアレジスタ1586は、認証コマンドによって修正可能であってもよい。
図15に示されるように、メモリデバイス1506は、鍵1521を含んでもよい。例えば、メモリデバイス1506は、ルート鍵DICE-RIOT鍵、及び/または他の外部セッション鍵などの鍵を記憶するための8個の異なるスロットを含んでもよい。
図15に示されるように、メモリデバイス1506は、電子的消去可能プログラマブルリードオンリメモリ(EEPROM)1523を含んでもよい。EEPROM 1523は、データの個々のバイトを消去及びプログラムすることができる、ホストに対して利用可能な安全な不揮発性領域を設けることができる。
図15に示されるように、メモリデバイス1506は、カウンタ(例えば、モノトニックカウンタ)1525を含んでもよい。カウンタ1525は、ホストから受信され、及び/またはホストに送信されたコマンド(例えば、コマンドセットまたはシーケンスを署名するための)アンチリプレイ機構(例えば、フレッシュネス生成器)として使用されてもよい。例えば、メモリデバイス1506は、6個の異なるモノトニックカウンタを含んでもよく、その2つは、認証されたコマンドに対してメモリデバイス1506によって使用されてもよく、その4つは、ホストによって使用されてもよい。
図15に示されるように、メモリデバイス1506は、SHA-256暗号学的ハッシュ関数1527及び/またはHMAC-SHA256暗号学的ハッシュ関数1529を含んでもよい。SHA-256暗号学的ハッシュ関数1527及び/またはHMAC-SHA256暗号学的ハッシュ関数1529は、例えば、本明細書で前に説明されたブロック220の暗号学的ハッシュ、及び/または本明細書で前に説明されたメモリアレイ1501-1~1501-7に記憶されたデータを有効であると確認するために使用されるゴールデンハッシュなど、暗号学的ハッシュを生成するためにメモリデバイス1506によって使用されてもよい。更に、メモリデバイス1506は、DICE-RIOT 1531のL0及びL1をサポートすることができる。
本明細書では特定の実施形態が示され説明されたが、示される特定の実施形態は、同じ結果を達成するように意図された構成と置き換えられてもよいことを当業者は理解するであろう。開示は、本開示のいくつかの実施形態の適応または変形を網羅することを意図している。上記の説明は、例示的な形式でなされており、限定的なものではないことを理解されたい。上記の実施形態と、本明細書に具体的に説明されていない他の実施形態との組み合わせは、上記の説明を考察すれば当業者にとって明らかとなるであろう。本開示のいくつかの実施形態の範囲は、上記の構造及び方法が使用される他の用途を含む。したがって、本開示のいくつかの実施形態の範囲は、添付の特許請求の範囲を、係る特許請求の範囲によって権利が与えられる均等物の全範囲と一緒に参照して決定されるべきである。
前述の「発明を実施するための形態」では、本開示を簡素化する目的のために、単一の実施形態にいくつかの特徴を一緒にまとめている。開示のこの方法は、本開示の開示された実施形態が、各請求項に明示的に記載されたものよりも多くの特徴を使用する必要があるという意図を反映したものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示される実施形態の全ての特徴にあるわけではない。したがって、下記の特許請求の範囲は、本明細書では発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。
車両通信構成要素のレイヤ1 653は、非対称鍵生成器663を含んでもよい。少なくとも1つの実施例では、乱数生成器(RND)650は任意選択で、非対称鍵生成器663に乱数を入力してもよい。非対称鍵生成器663は、図5における車両通信構成要素516などの車両通信構成要素と関連付けられた公開鍵(「KLk public」)669(車両公開鍵と称される)及び秘密鍵(「KLK private」)671(車両秘密鍵と称される)を生成してもよい。車両公開鍵669は、暗号化器673への入力(「データ」としての)であってもよい。暗号化器673は、車両秘密識別667及び車両公開鍵669の入力を使用して、結果K’675を生成してもよい。車両秘密鍵671及び結果K’675は、追加の暗号化器677への入力であってもよく、出力K’’679を結果としてもたらす。出力K’’679は、レイヤ2(図5の555)に送信される車両証明書(「IDL1 certificate」)681である。車両証明書681は、車両エンティティから送信されたデータの起点を検証及び/または認証する能力をもたらすことができる。実施例として、車両通信構成要素から送信されたデータは、図8と関連して更に説明されるように、証明書を検証することによって、車両通信構成要素の識別子と関連付けられてもよい。更に、車両公開鍵(「KL1 public key」)683は、レイヤ2に送信されてもよい。したがって、車両通信構成要素のレイヤ1 653の公開識別665、証明書681、及び車両公開鍵683は、入口通信構成要素のレイヤ2に送信されてもよい。
車両コンピューティングデバイス912(図1における車両コンピューティングデバイス112など)は、車両コンピューティングデバイス(図1における入口コンピューティングデバイス112など)にデータ990を送信してもよい。車両コンピューティングデバイス912は、994において、車両秘密鍵972を使用して署名996を生成してもよい。署名996は、入口コンピューティングデバイス942に送信されてもよい。入口コンピューティングデバイス942は、998において、前に受信されたデータ992及び車両公開鍵969を使用して検証してもよい。このようにして、署名検証は、署名及び公開鍵を暗号化して署名を復号するために秘密鍵を使用することによって動作する。このようにして、一意な署名を生成するために使用される秘密鍵は、署名を送信するデバイスに対して秘密なままであることができると共に、受信デバイスが検証のために送信デバイスの公開鍵を使用して署名を復号することを可能にする。これは、受信デバイスの公開鍵を使用して送信デバイスによって暗号化され、受信機の秘密鍵を使用して受信デバイスによって復号される、データの暗号化/復号とは対照的である。少なくとも1つの実施例では、車両は、内部暗号処理(例えば、楕円曲線デジタル署名(ECDSA))または同様の処理を使用することによって、デジタル署名を検証してもよい。
図11Aは、開示の実施形態に従った、ホスト1102及びメモリデバイス1106の形式にある装置を含むコンピューティングシステム1100のブロック図である。本明細書で使用される場合、「装置」は、例えば回路もしくは回路素子、ダイもしくは複数のダイ、モジュールもしくは複数のモジュール、デバイスもしくは複数のデバイス、またはシステムもしくは複数のシステムなどの様々な構造または構造の組み合わせのうちのいずれかを指すことができるが、これらに限定されない。更に、実施形態では、コンピューティングシステム1100は、メモリデバイス1106と同様のいくつかのメモリデバイスを含んでもよい。1つの例示的な実施形態では、図11Bにおいて更に示されるように、コンピューティングシステム1100は、分散されたピアツーピアネットワークなど、ノードのより大規模なネットワーク内のノードを表してもよい。
例示的な実施形態に従って、特定のノード、例えば、1100-4は、認証され、ノードに関連するブロックを有効であると確認してもよく、そのブロックを第2のブロックチェーン台帳に追加してもよく、第2のブロックチェーン台帳は、ノード1100-1からノード1100-4へ受信されたグローバル台帳ブロックチェーンに含まれるブロックの全てのよりも少ないサブセットであってもよい。ノード1100-4は、「グローバル台帳ブロックチェーン」のサブセットを「ローカルブロックチェーン台帳」(本明細書で「ローカル台帳ブロックチェーン」とも称される)としてそれぞれのノード、1100-4、1100-5、…、1100-Nに記憶してもよい。ノード1100-4はまた、ローカル台帳ブロックチェーンを他のノードと共有してもよい。しかしながら、それが必要とされるわけではなく、その特定のノード1100-4、例えば、その特定の車両のホスト及び/またはメモリデバイスのみに対してそれが「ローカル」のままでいることができる点で、ローカル台帳ブロックチェーンは、「ローカル」と呼ばれる。よって、例示を容易にするために、第2のブロックチェーン台帳(「ローカル台帳ブロックチェーン」)は、本明細書でローカル台帳ブロックチェーンと称されてもよい。ノード、例えば、1100-4は、それが接続されたノードのネットワークを介して、様々な主題に関する、他のグローバル台帳ブロックチェーンと関連付けられた多くのグローバルブロックを受信してもよい。しかしながら、ノード、例えば、1100-4は、それがどのブロックを追加することを受諾するかによって、そのローカル台帳ブロックチェーンに追加されることが可能になるかについて選択的であってもよい。図12及び13と関連して更に詳細に説明されるように、本開示の実施形態は、特定のノード、1100-4、1100-5、…、1100-Nに関連するブロックを有効であると確認し、そのブロックを追加し、「ローカル台帳ブロックチェーン」データとして、例えば、特定の車両へのセキュアファームウェア更新として、それらのブロックを特定のノード、1100-4、1100-5、…、1100-Nに記憶し、それらのブロックを特定のノード、1100-4、1100-5、…、1100-N上で維持するために、図5~9において説明される暗号化技術を使用してもよい。1つの実施例では、特定の車両、例えば、ノード1100-4、1100-5、…、1100-N上の単一のホスト(図11Aに示されるもののような)または複数のホストは、ローカル台帳ブロックチェーンを維持してもよい。実施例として、単一または複数のホストは、「USING MEMORY AS A BLOCK IN A BLOCK CHAIN」と題する、代理人整理番号1016.0030001の同時係属中の、共同出願された米国特許出願第16/362,792号において説明される技術に従って、分散台帳をノード上で維持することができる。この実施例では、特定の車両、例えば、ノード1100-4、1100-5、…、1100-Nに関連するファームウェア更新は、有効であると確認されてもよく、ノード、1100-4、1100-5、…、1100-Nの「ローカル台帳ブロックチェーン」に追加されてもよく、または代わりに、破棄されてもよい。