(57)【要約】様々な例が、セキュアメモリ装置、及びその使用方法を対象としている。セキュアコンピューティングシステムのゲートウェイデバイスは、外部システムから第１のメッセージを受信することができる。第１のメッセージは、第１のメッセージペイロードデータ、及び第１の非対称アクセスデータを含むことができる。ゲートウェイデバイスは、外部システムパブリックキーに少なくとも部分的に基づいて第１の非対称アクセスデータが第１のメッセージペイロードデータに一致するかを判断することができる。ゲートウェイデバイスは、ゲートウェイデバイスと通信する第１のシステムコントローラに関連付けられた第１のシステムコントローラ対称キーにアクセスすることができ、また、第１のシステムコントローラ対称キー、及び第１のメッセージペイロードデータに少なくとも部分的に基づいて第１の対称アクセスデータを生成することができる。ゲートウェイデバイスは、第１のメッセージペイロードデータ、及び第１の対称アクセスデータを第１のシステムコントローラに送信することができる。【選択図】図１
2020512763.tif 000002
【特許請求の範囲】
【請求項１】
第１のシステムコントローラと、
前記第１のシステムコントローラと通信するゲートウェイデバイスとを含むシステムであって、
前記ゲートウェイデバイスがゲートウェイデバイスメモリデバイスを含み、前記ゲートウェイデバイスメモリデバイスが、ゲートウェイデバイスストレージ、ゲートウェイデバイス非対称エンジン、及びゲートウェイ対称エンジンを含み、前記ゲートウェイデバイスが、
第１のメッセージペイロードデータ、及び第１の非対称アクセスデータを含む第１のメッセージを外部システムから受信することと、
前記ゲートウェイデバイス非対称エンジンを用いて、外部システムパブリックキーに少なくとも部分的に基づいて、前記第１の非対称アクセスデータが前記第１のメッセージペイロードデータと一致するかを判断することと、
前記ゲートウェイデバイスと通信する前記第１のシステムコントローラに関連付けられた第１のシステムコントローラ対称キーを前記ゲートウェイデバイスストレージから抽出することと、
前記ゲートウェイデバイス対称エンジンを用いて、前記第１のシステムコントローラ対称キー、及び前記第１のメッセージペイロードデータに少なくとも部分的に基づいて第１の対称アクセスデータを生成することと、
前記第１のメッセージペイロードデータ、及び前記第１の対称アクセスデータを前記第１のシステムコントローラに送信することと、
を含むオペレーションを実行するように構成されている前記システム。
【請求項２】
前記ゲートウェイデバイスが、
前記第１のシステムコントローラから第２のメッセージを受信することであって、前記第２のメッセージが、第２のメッセージペイロードデータ、第２の対称アクセスデータ、及び外部システムの指標を含むことと、
前記ゲートウェイデバイス対称エンジンを用いて、前記第１のシステムコントローラ対称キーに少なくとも部分的に基づいて前記第２のメッセージペイロードデータが前記第２の対称アクセスデータに一致するかを判断することと、
前記ゲートウェイデバイス非対称エンジンを用いて、ゲートウェイデバイスプライベートキーに少なくとも部分的に基づいて第２の非対称アクセスデータを生成することと、
前記第２のメッセージペイロードデータ、及び前記第２の非対称アクセスデータを前記外部システムに送信することと、
を含むオペレーションを実行するように更に構成されている、請求項１に記載のシステム。
【請求項３】
前記第１のシステムコントローラが第１のシステムコントローラメモリデバイスを含み、前記第１のシステムコントローラメモリデバイスが、
第１のシステムコントローラストレージと、
前記第１のシステムコントローラ、及び前記ゲートウェイデバイスに連結された通信バスと、
を含む、請求項１〜２のいずれか１項に記載のシステム。
【請求項４】
前記第１のシステムコントローラが、
前記第１のメッセージペイロードデータ、及び前記第１の対称アクセスデータを受信することと、
第１のシステムコントローラ対称エンジンを用いて、前記第１のシステムコントローラ対称キーに少なくとも部分的に基づいて前記第１のメッセージペイロードデータが前記第
１の対称アクセスデータに一致するかを判断することと、
前記第１のメッセージペイロードデータの少なくとも一部を前記第１のシステムコントローラストレージに書き込むことと、
を含むオペレーションを実行するように構成されている、請求項３に記載のシステム。
【請求項５】
前記第１のシステムコントローラが、
前記第１のシステムコントローラ対称エンジンを用いて、第２の対称アクセスデータを生成することと、
第２のメッセージペイロードデータ、前記第２の対称アクセスデータ、及び前記外部システムの指標を含む第２のメッセージを生成することと、
前記第２のメッセージを前記ゲートウェイデバイスに送信することと、
を含むオペレーションを実行するように構成されている、請求項３に記載のシステム。
【請求項６】
前記第１のシステムコントローラが、
前記第１のシステムコントローラ対称キーのプロビジョニングを示すプロビジョニング信号を受信することと、
前記通信バスを介して前記第１のシステムコントローラ対称キーを前記ゲートウェイデバイスに送信することと、
を含むオペレーションを実行するように構成されている、請求項３に記載のシステム。
【請求項７】
前記プロビジョニング信号が、電力が前記システムに供給されていることを示す、請求項６に記載のシステム。
【請求項８】
前記ゲートウェイデバイスが、
外部データベースに対称キーリクエストを送信することと、
前記外部データベースから前記第１のシステムコントローラ対称キーを含む対称キーメッセージを受信することと、
を含むオペレーションを実行するように更に構成されている、請求項１〜２のいずれか１項に記載のシステム。
【請求項９】
前記ゲートウェイデバイスが、
第２の外部システムから、第２のメッセージペイロードデータ、第２の非対称アクセスデータ、及び第２のシステムコントローラの指標を含む第２のメッセージを受信することと、
前記ゲートウェイデバイス非対称エンジンを用いて、第２の外部システムパブリックキーに少なくとも部分的に基づいて前記第２の非対称アクセスデータが前記第２のメッセージペイロードデータに一致するかを判断することと、
前記ゲートウェイデバイスストレージから前記第２のシステムコントローラに関連付けられた第２のシステムコントローラ対称キーを受信することと、
前記ゲートウェイデバイス対称エンジンを用いて、前記第２のシステムコントローラ対称キー、及び前記第２のメッセージペイロードデータに少なくとも部分的に基づいて第２の対称アクセスデータを生成することと、
前記第２のメッセージペイロードデータ、及び前記第２の対称アクセスデータを前記第２のシステムコントローラに送信することと、
を含むオペレーションを実行するように更に構成されている、請求項１〜２のいずれか１項に記載のシステム。
【請求項１０】
セキュア処理システムのゲートウェイデバイスにより、外部システムから第１のメッセージを受信することであって、前記第１のメッセージが、第１のメッセージペイロードデータ、及び第１の非対称アクセスデータを含むことと、
前記ゲートウェイデバイスにより、外部システムパブリックキーに少なくとも部分的に基づいて、前記第１の非対称アクセスデータが前記第１のメッセージペイロードデータに一致するかを判断することと、
前記ゲートウェイデバイスにより、前記ゲートウェイデバイスと通信する第１のシステムコントローラに関連付けられた第１のシステムコントローラ対称キーにアクセスすることと、
前記ゲートウェイデバイスにより、前記第１のシステムコントローラ対称キー、及び前記第１のメッセージペイロードデータに少なくとも部分的に基づいて第１の対称アクセスデータを生成することと、
前記ゲートウェイデバイスにより、前記第１のメッセージペイロードデータ、及び前記第１の対称アクセスデータを前記第１のシステムコントローラに送信することと、
を含む、方法。
【請求項１１】
前記ゲートウェイデバイスにより、前記第１のシステムコントローラから第２のメッセージを受信することであって、前記第２のメッセージが、第２のメッセージペイロードデータ、第２の対称アクセスデータ、及び前記外部システムの指標を含むことと、
ゲートウェイデバイス対称エンジンを備える前記ゲートウェイデバイスにより、前記第１のシステムコントローラ対称キーに少なくとも部分的に基づいて前記第２のメッセージペイロードデータが前記第２の対称アクセスデータに一致するかを判断することと、
前記ゲートウェイデバイス非対称エンジンを備える前記ゲートウェイデバイスにより、ゲートウェイデバイスプライベートキーに少なくとも部分的に基づいて、第２の非対称アクセスデータを生成することと、
前記第２のメッセージペイロードデータ、及び前記第２の非対称アクセスデータを前記外部システムに送信することと、
を更に含む、請求項１０に記載の方法。
【請求項１２】
前記第１のシステムコントローラにより、前記第１のメッセージペイロードデータ、及び前記第１の対称アクセスデータを受信することと、
第１のシステムコントローラ対称エンジンを備える前記第１のシステムコントローラにより、前記第１のシステムコントローラ対称キーに少なくとも部分的に基づいて、前記第１のメッセージペイロードデータが前記第１の対称アクセスデータに一致するかを判断することと、
前記第１のシステムコントローラにより、前記第１のメッセージペイロードデータの少なくとも一部を第１のシステムコントローラストレージに書き込むことと、
を更に含む、請求項１０〜１１のいずれか１項に記載の方法。
【請求項１３】
前記第１のシステムコントローラ対称エンジンを備える前記第１のシステムコントローラにより、第２の対称アクセスデータを生成することと、
前記第１のシステムコントローラにより、第２のメッセージペイロードデータ、前記第２の対称アクセスデータ、及び前記外部システムの指標を含む第２のメッセージを生成することと、
前記第１のシステムコントローラにより、前記第２のメッセージを前記ゲートウェイデバイスに送信することと、
を更に含む、請求項１０〜１１のいずれか１項に記載の方法。
【請求項１４】
前記第１のシステムコントローラにより、前記第１のシステムコントローラ対称キーのプロビジョニングを示すプロビジョニング信号を受信することと、
前記第１のシステムコントローラにより、前記第１のシステムコントローラ対称キーを前記ゲートウェイデバイスに送信することと、
を更に含む、請求項１０〜１１のいずれか１項に記載の方法。
【請求項１５】
前記プロビジョニング信号が、電力が前記システムに供給されていることを示す、請求項１４に記載の方法。
【請求項１６】
前記ゲートウェイデバイスにより、対称キーリクエストを外部データベースへ送信することと、
前記ゲートウェイデバイスにより、前記外部データベースから前記第１のシステムコントローラ対称キーを含む対称キーメッセージを受信することと、
を更に含む、請求項１０〜１１のいずれか１項に記載の方法。
【請求項１７】
前記ゲートウェイデバイスにより、第２の外部システムから第２のメッセージを受信することであって、前記第２のメッセージが、第２のメッセージペイロードデータ、第２の非対称アクセスデータ、及び第２のシステムコントローラの指標を含むことと、
前記ゲートウェイデバイスにより、またゲートウェイデバイス非対称エンジンを用いて、第２の外部システムパブリックキーに少なくとも部分的に基づいて前記第２の非対称アクセスデータが前記第２のメッセージペイロードデータに一致するかを判断することと、
前記ゲートウェイデバイスにより、ゲートウェイデバイスストレージから前記第２のシステムコントローラに関連付けられた第２のシステムコントローラ対称キーを受信することと、
ゲートウェイデバイス対称エンジンを用いて、前記第２のシステムコントローラ対称キー、及び前記第２のメッセージペイロードデータに少なくとも部分的に基づいて第２の対称アクセスデータを生成することと、
前記第２のメッセージペイロードデータ、及び前記第２の対称アクセスデータを前記第２のシステムコントローラに送信することと、
を更に含む、請求項１０〜１１のいずれか１項に記載の方法。
【請求項１８】
少なくとも１つのコンピュータ可読媒体であって、コンピューティングデバイスによって実行されると、コンピューティングデバイスに、
セキュアコンピューティングシステムのゲートウェイデバイスにより、外部システムから第１のメッセージを受信することであって、前記第１のメッセージが、第１のメッセージペイロードデータ、及び第１の非対称アクセスデータを含むことと、
ゲートウェイデバイス非対称エンジンを備える前記ゲートウェイデバイスにより、外部システムパブリックキーに少なくとも部分的に基づいて、前記第１の非対称アクセスデータが、前記第１のメッセージペイロードデータに一致するかを判断することと、
前記ゲートウェイデバイスにより、前記ゲートウェイデバイスと通信する第１のシステムコントローラに関連付けられた第１のシステムコントローラ対称キーにアクセスすることと、
ゲートウェイデバイス対称エンジンを備える前記ゲートウェイデバイスにより、前記第１のシステムコントローラ対称キー、及び前記第１のメッセージペイロードデータに少なくとも部分的に基づいて第１の対称アクセスデータを生成することと、
前記ゲートウェイデバイスにより、前記第１のメッセージペイロードデータ、及び前記第１の対称アクセスデータを前記第１のシステムコントローラに送信することと、
を含むオペレーションを実行させる命令を含む、少なくとも１つのコンピュータ可読媒体。
【請求項１９】
前記第１のシステムコントローラにより、前記第１のメッセージペイロードデータ、及び前記第１の対称アクセスデータを受信することと、
前記第１のシステムコントローラ対称エンジンを備える前記第１のシステムコントローラにより、前記第１のシステムコントローラ対称キーに少なくとも部分的に基づいて、前記第１のメッセージペイロードデータが前記第１の対称アクセスデータに一致するかを判
断することと、
前記第１のシステムコントローラにより、前記第１のメッセージペイロードデータの少なくとも一部を第１のシステムコントローラストレージに書き込むことと、
を更に含む、請求項１８に記載の少なくとも１つのコンピュータ可読媒体。
【請求項２０】
前記第１のシステムコントローラにより、前記第１のシステムコントローラ対称キーのプロビジョニングを示すプロビジョニング信号を受信することと、
前記第１のシステムコントローラにより、前記第１のシステムコントローラ対称キーを前記ゲートウェイデバイスに送信することと、
を更に含む、請求項１８〜１９のいずれか１項に記載の少なくとも１つのコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１７年３月２４日に出願された米国特許仮出願シリアル番号６２／４７６，５９８に対する優先権の利益を主張する２０１７年８月３１日に出願された米国特許出願シリアル番号１５／６９２，８０２に対する優先権の利益を主張し、それらの全体が参照により本明細書に組み込まれている。
【０００２】
本明細書に記載の例は、一般に不正アクセスからコンピューティングシステムメモリを保護するためのシステム及び方法に関する。
【背景技術】
【０００３】
処理システムに対する攻撃の一般的な形態には、システムのメモリデバイスに悪意のあるコードをインストールすることが含まれる。悪意のあるコードは、次いで処理システムによって実行される。実行されると、悪意のあるコードはデータの窃盗、処理システムの不正制御、及びその他の悪い結果が生じることを可能にする。
【０００４】
図面は、必ずしも縮尺通りに描かれておらず、同様の数字は、異なる図において同様の構成要素を説明することができる。異なる接尾文字を有する同じ数字は、類似の構成要素の異なるインスタンスを表すことができる。いくつかの例は、以下の添付図面の図において、例示として示されており、限定するものではない。
【図面の簡単な説明】
【０００５】
【図１】セキュアコンピューティングシステムを実装するための環境の一例を示す図である。
【図２】ゲートウェイデバイス及びシステムコントローラの追加的詳細を含むセキュアコンピューティングシステムの一部を示す図である。
【図３】図１の外部システム、ゲートウェイデバイス、及びシステムコントローラにより実行され得る着信メッセージを処理するためのプロセスフローの一例を示すフローチャートである。
【図４】図１の外部システム、ゲートウェイデバイス、及びシステムコントローラにより実行され得る発信メッセージを処理するためのプロセスフローの一例を示すフローチャートである。
【図５】１つ以上の装置の一部としてメモリ装置を備えた例示的な処理システムを示す。
【図６】コンピューティングデバイスのソフトウェアアーキテクチャの一例を示すブロック図である。
【図７】本明細書に記載の方法のいずれか１つの例をマシンに実行させるために命令のセットまたはシーケンスが実行され得る、コンピューティングデバイスのハードウェアアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【０００６】
以下の記載では、説明の目的で、いくつかの例を完全に理解できるようにするために、多くの具体的な詳細が説明されている。しかし、これらの具体的な詳細を伴わずに本開示が実施され得ることは当業者には明らかになるであろう。
【０００７】
本明細書に記載の様々な例は、データ処理システム（本明細書では処理システムとも呼ばれる）の様々な形態に見られるメモリ装置を保護するためのシステム及び方法に関する
。いくつかの例では、本明細書に記載のセキュアメモリ装置は、例えば、家電製品、車両、産業用機器、モノのインターネット（ＩｏＴ）デバイスなどの様々な装置に組み込まれた処理システムで使用されている。そのような処理システムは、例えば、埋め込みシステム、もしくは制御または通信のための他のシステムを含み得る。本明細書に記載のメモリ装置を利用することができる処理システムの他の例には、ラップトップコンピュータ、デスクトップコンピュータ、モバイルコンピューティングデバイス、サーバーなどが含まれる。
【０００８】
いくつかの例では、本明細書に記載のシステム及び方法は、アクセス制御を利用して、処理システムにおいてメモリ装置を保護している。例えば、本明細書に記載のセキュアメモリ装置を利用する処理システムは、送信側が暗号キーを所有していることを示すアクセスデータが書き込みに付随しない限り、関連するメモリの保存場所のすべてまたは一部への書き込みを防ぐことができる。いくつかの例では、暗号化キーの代わりに任意の他のタイプの共有された秘密が使用され得る。いくつかの例では、メモリ装置のすべての保存場所へのアクセスは、この方法で制御され得る。他の例では、ブートコードやその他の重要なソフトウェアを含む保存場所など、保存場所の一部のみがアクセス制御されている。
【０００９】
アクセス制御された１つまたは複数の保存場所への書き込みリクエストは、ペイロードデータ及びアクセスデータを含み得る。書き込みリクエストを受信すると、メモリ装置は、例えば、アクセスデータ及びペイロードデータに基づいて暗号化オペレーションを実行することにより、アクセスデータを確証するために暗号化キー及びペイロードデータを使用することができる。暗号化オペレーション（例えば、その１つまたは複数の結果）がアクセスデータと一致する場合、アクセスデータが確証され、処理システムはペイロードデータをストレージデバイスに書き込むことによって、書き込みリクエストを実行する。暗号化オペレーションがアクセスデータと一致しない場合、アクセスデータは確証されず、処理システムは書き込みリクエストを拒否する。
【００１０】
本明細書に記載のアクセス制御は、メモリデバイスとは異なるプロセッサユニットによって実行されるソフトウェアに実装され得るが、本明細書に記載のいくつかの例は、メモリデバイスレベルでアクセス制御を実装する。例えば、セキュアメモリデバイスは、暗号化キーなどの共有された秘密を保存するためのキーレジスタ、並びにアクセスデータを生成及び／または確証するための暗号化エンジンを含み得る。書き込みリクエストが受信されると、メモリデバイスは、暗号エンジンのキーレジスタから書き込みリクエストペイロードデータ、及び暗号キーを提供することにより、アクセスデータを確証する。暗号化エンジンは、ハッシュ、復号化などの１つ以上の暗号化オペレーションを実行することができ、アクセスデータを確証する。アクセスデータが確証される場合、メモリデバイスはリクエストされた書き込みを完了する。アクセスデータが確証されない場合、メモリデバイスは書き込みリクエストを拒否する。
【００１１】
本明細書に記載のアクセス制御は、対称キーまたは非対称キーを用いて実装され得る。対称キーが使用されるとき、送信側と受信側の両方は、同一の対称キーのコピーを有する。送信側は、対称キーを使用してアクセスデータを生成する。例えば、送信側は、対称キーを使用してハッシュ関数をペイロードデータに適用することにより、アクセスデータを生成することができる。得られたハッシュは、アクセスデータのすべてまたは一部を構成する。得られたハッシュは、いくつかの例ではメッセージ認証コード（ＭＡＣ）と呼ばれ、一部の例ではハッシュメッセージ認証コード（ＨＭＡＣ）と呼ばれる。
【００１２】
送信側は、ペイロードデータ及びアクセスデータを含む書き込みリクエストを受信側に送信する。同様に対称キーのコピーを有している受信側は、アクセスデータコピーを生成する。例えば、受信者は、受信者自身の対称キーのコピーでペイロードデータを独自にハ
ッシングすることによって、アクセスデータコピーを生成することができる。アクセスデータコピーが受信したアクセスデータと同等である場合、メッセージは確証される。
【００１３】
非対称キーが使用される場合、送信側には秘密であるプライベートキーと秘密ではないパブリックキーがある。送信側は、認証局または他の信頼できる第三者を利用して、パブリックキーの受信側に対する信頼性を確証する場合がある。送信側のプライベートキー及びパブリックキーは数学的に関連しており、プライベートキーで実行される特定の暗号化オペレーションはパブリックキーを使用して反転され得る。
【００１４】
送信側はペイロードデータ及び送信側自身のプライベートキーを利用してアクセスデータを生成する。例えば、送信側はペイロードデータにハッシュ関数を適用することができ、次いで得られたハッシュに送信側のプライベートキーを署名することができる。その結果は、暗号署名であり、アクセスデータの全体または一部を構成し得る。受信側は、送信側のパブリックキーを用いて署名を復号することができ、次いで受信したペイロードデータに同じハッシュ関数を適用してアクセスデータコピーを生成することができる。アクセスデータコピーが復号化された署名と同等である場合、続いてメッセージが確証される。
【００１５】
対称及び非対称のアクセス制御には、いずれも長所と短所がある。例えば、対称構成では、両者が対称キーを互いに安全に通信する必要がある。いくつかの例では、通信する両者間で対称キーを通信するプロセスは、プロビジョニングと呼ばれる。対称キーを秘密に保ちながら、両者に単一の対称キーをプロビジョニングすることは課題となり得る。一方で、非対称構成はプロビジョニングすることが容易になり得る。例えば、送信側のパブリックキーは秘密ではなく、対称キーに関連付けられたセキュリティ上の懸念のない平文で送信され得る。同様に、非対称キーを用いて生成されたアクセスデータを確証するための暗号化オペレーションは、多くの場合より複雑である。例えば、一部の非対称構成は、同様に安全な対称構成で使用されるキーよりも桁違いに大きい暗号キーを使用する。非対称構成において暗号化オペレーションの複雑さが増すと、実装するためにより多くのハードウェア及び／またはソフトウェアのリソースが必要になり得る。
【００１６】
大型のコンピューティングデバイスなどの一部の処理システムでは、非対称アクセス制御に関連付けられた追加の部品表（ＢＯＭ）及び／またはその他のコストはわずかである。他の処理システムでは、非対称アクセス制御の追加コストはより大きなものである。例えば、埋め込みシステム、ＩｏＴデバイス、及びその他の同様の処理システムまたは構成要素は、十分に低い全体コストを有することができ、非対称アクセス制御の追加は各構成要素の価格に大きく付与する。各埋め込みシステムメモリデバイスに非対称アクセス制御を追加する自動車、セキュリティシステムなどの大規模システムでは、大幅なコストを追加し得る。
【００１７】
本明細書に記載の様々な例は、ゲートウェイデバイス及び１つ以上のシステムコントローラを含む処理システム及びメモリ装置を対象としている。ゲートウェイデバイスは、非対称アクセス制御、及び対称アクセス制御の両方をサポートする１つ以上のメモリデバイスを含む。システムコントローラは、対称アクセス制御をサポートするメモリデバイスを含む。しかし、いくつかの例では、システムコントローラの１つ以上のメモリデバイスは、非対称アクセス制御をサポートする必要がない。このように、非対称アクセス制御の追加費用は、各システムコントローラに必要でなくなり得る。
【００１８】
対称及び非対称の両方のアクセス制御をサポートするゲートウェイデバイスメモリデバイスは、様々なコントローラシステムにおいてメモリデバイスの対称キーのキーストアとして機能することができる。例えば、外部システムは、システムコントローラの１つ（受信者システムコントローラ）に向けられた外部メッセージを生成することができる。外部
メッセージは、外部システムのプライベートキーで生成されたペイロードデータ及び非対称アクセスデータを含むことができる。ゲートウェイデバイスはメッセージを受信し、外部システムのパブリックキーを使用してそれを確証する。ゲートウェイデバイスは、次いで、メッセージが送信されるシステムコントローラの適切な対称キーを抽出し、受信者システムコントローラに固有であり得る対称アクセスデータを生成する。ゲートウェイデバイスは、ペイロードデータ及び対称アクセスデータを含む内部メッセージを受信者システムコントローラに送信する。受信者システムコントローラ、またはシステムコントローラにあるシステムメモリデバイスは、対称アクセスデータを確証し、ペイロードデータをメモリに書き込む。
【００１９】
図１は、ネットワーク１１６を介して例示的な外部システム１１８Ａ、１１８Ｂと通信するセキュア処理システム１０１を実装するための環境１００の一例を示す図である。セキュア処理システム１０１は、ゲートウェイデバイス１０２及び多数のシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎを含む。ゲートウェイデバイス１０２及びシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎは、バス１２０を介して通信しており、バス１２０は、有線バスまたは無線バスの任意の適切な形態であり得る。例示的な環境１００には４つのシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎが示されているが、例えば、図１に示されているよりも多いか、または少ないシステムコントローラを含む任意の適切な数のシステムコントローラが使用され得る。
【００２０】
システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎは、いくつかの例では、機械式または電気式システム、もしくはサブシステムを任意の適切な設定で制御するための埋め込み型システムであり得る。いくつかの例では、セキュア処理システム１０１は、自動車または他の車両に実装され得る。各システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎは、自動車の構成要素を管理することができる。例えば、システムコントローラ１０４Ａはアンチロックブレーキシステムを管理することができ、システムコントローラ１０４Ｂはフライバイワイヤースロットルシステムを管理することができ、システムコントローラ１０４Ｃはバックアップカメラを管理することができ、システムコントローラ１０４Ｎはエンターテイメントシステムを管理することができる、などである。セキュア処理システム１０１が自動車または他の車両に実装される例では、バス１２０は、コントローラエリアネットワーク（ＣＡＮ）車両用バス規格に従って構成され得る。別の例では、セキュア処理システム１０１はセキュリティシステムに実装され得る。各システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎは、セキュリティシステムの様々なカメラ、センサーなどを管理することができる。更に別の例では、セキュア処理システム１０１は、冷蔵庫などの家電製品の一部として実装され得る。各システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎは、家電製品の様々なディスプレイ、サーモスタットなどを管理することができる。
【００２１】
システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎは、それぞれのプロセッサユニット１１２Ａ、１１２Ｂ、１１２Ｃ、１１２Ｎ、及びそれぞれの対称メモリデバイス１１４Ａ、１１４Ｂ、１１４Ｃ、１１４Ｎを含むことができる。対称メモリデバイス１１４Ａ、１１４Ｂ、１１４Ｃ、１１４Ｎは、例えば、図２により詳細に示されるように、対称アクセス制御をサポートするように構成され得る。対称メモリデバイス１１４Ａ、１１４Ｂ、１１４Ｃ、１１４Ｎは、いくつかの例では、プロセッサユニット１１２Ａ、１１２Ｂ、１１２Ｃ、１１２Ｎによって実行されるコードを格納する。対称メモリデバイス１１４Ａ、１１４Ｂ、１１４Ｃ、１１４Ｎは、いくつかの例では、例えばフラッシュデバイスなどのソリッドステートメモリデバイスなどの永続的メモリデバイスである。
【００２２】
ゲートウェイデバイス１０２は、対称／非対称メモリデバイス１０８を含む。対称／非対称メモリデバイス１０８は、例えば、本明細書に記載のように、対称及び非対称の両方
のアクセス制御をサポートするメモリデバイスである。いくつかの例では、ゲートウェイデバイス１０２はまた、プロセッサユニット１０６も備える。
【００２３】
対称／非対称メモリデバイス１０８は、それぞれの対称メモリデバイス１１４Ａ、１１４Ｂ、１１４Ｃ、１１４Ｎの対称キーを格納するための１つ以上の保存場所を含むキーストア領域１１０を含む。対称／非対称メモリデバイス１０８は、非対称アクセス制御によりキーストア領域１１０へのアクセスを管理することができる。従って、キーストア領域１１０は、それぞれの対称メモリデバイス１１４Ａ、１１４Ｂ、１１４Ｃ、１１４Ｎの対称キーを含むが、キーストア領域１１０自体は、本明細で説明されるように、対称／非対称メモリデバイス１０８の非対称キーペアでアクセス制御される。
【００２４】
対称／非対称メモリデバイス１０８は、例えば、外部システム１１８Ａ、１１８Ｂとの通信において、非対称アクセスデータを受信及び処理するように構成され得る。対称／非対称メモリデバイス１０８はまた、例えば、キーストア領域１１０に格納された対称キーを利用して、対称アクセスデータを受信及び処理するようにも構成され得る。
【００２５】
ゲートウェイデバイス１０２は、ネットワーク１１６を介して外部システム１１８Ａ、１１８Ｂと通信することができる。ネットワーク１１６は、任意の適切なネットワークプロトコルに従って動作する任意の適切なネットワーク要素であることができるか、またはそれを含み得る。例えば、ネットワーク１１６の１つ以上の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ワイヤレスＷＡＮ（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部、公衆交換電話網（ＰＳＴＮ）の一部、携帯電話ネットワーク、ワイヤレスネットワーク、Ｗｉ−Ｆｉネットワーク、ＷｉＭａｘネットワーク、別の種類のネットワーク、またはそのようなネットワークのうち２つ以上の組み合わせであり得る。
【００２６】
図２は、ゲートウェイデバイス１０２及びシステムコントローラ１０４Ａの追加的詳細を含むセキュア処理システム１０１の一部を示す図である。ここで、ゲートウェイデバイス１０２を参照すると、図２は、対称／非対称メモリデバイス１０８の追加的詳細を示している。例えば、対称／非対称メモリデバイス１０８は、コントローラ１３２及びストレージ１３０を含む。いくつかの例では、対称／非対称メモリデバイス１０８は、フラッシュまたは他の同様のソリッドステートメモリであるか、それを含むことができる。いくつかの例では、ストレージ１３０及びコントローラ１３２を含む対称／非対称メモリデバイス１０８は、共通の半導体（例えば、シリコン）ダイ上の埋め込み型マルチメディアコントローラ（ｅＭＭＣ）デバイス上で実装され得る。
【００２７】
ストレージ１３０は、キーストア１１０を含み、キーストア１１０は、システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎのうち１つ以上の対称キーを格納することができる。いくつかの例では、キーストア１１０は、例えば本明細書に記載のように、非対称にアクセス制御されている。コントローラ１３２は、例えば、アドレス指定、データの読み取り及び書き込みなどを実行するためのハードウェアを含む、ストレージ１３０を管理するための様々なハードウェアを含むことができる。
【００２８】
コントローラ１３２は、いくつかの例では、非対称エンジン１３４及び対称エンジン１３６を含む。非対称エンジン１３４は、キーストア１１０の非対称アクセス制御を実装するために使用され得る。非対称エンジン１３４は、１つ以上のキーレジスタ１４０及び数学処理エンジン１３８を含むことができる。キーレジスタ１４０は非対称エンジン１３４の構成要素として示されているが、いくつかの例では、キーレジスタ１４０は他の場所、例
えばストレージ１３０内の安全な場所に配置されてもよい。いくつかの例では、キーレジスタ１４０は、対称／非対称メモリデバイス１０８のプライベートキーを格納し得る。数学処理エンジン１３８は、本明細書に記載のように、非対称アクセス制御を実装するための暗号オペレーションを実行するように構成され得る。例えば、数学処理エンジン１３８は、ペイロードデータ（またはペイロードデータのハッシュ）及びプライベートキーを受信して、例えば、本明細書に記載のように、デジタル署名を含むアクセスデータを生成するように構成されてもよい。数学処理エンジン１３８はまた、暗号化されたデータ及びパブリックキーを受信して、復号化されたデータまたはクリアなデータを生成するようにも構成され得る。いくつかの例では、非対称エンジン１３４は、ＲＳＡエンジンであることができるか、ＲＳＡエンジンを含むことができる。
【００２９】
対称エンジン１３６は、キーレジスタ１４６及び数学処理エンジン１４２を含むことができる。キーレジスタ１４６は、例えば、対称／非対称メモリデバイス１０８の対称キーを格納してもよい。キーレジスタ１４６は対称エンジン１３６の一部として示されているが、いくつかの例では、それは他の場所、例えばストレージ１３０内の安全な場所に配置されている。数学処理エンジン１４２は、本明細書に記載のように、対称アクセス制御を実装するための暗号オペレーションを実行するように構成されている。例えば、数学処理エンジン１４２は、ペイロードデータ及び対称キーを受信し、ペイロードデータ及び対称キーに基づいてハッシュを返すように構成され得る。
【００３０】
システムコントローラ１０４Ａは、上で紹介した対称メモリデバイス１１４Ａを含むことができる。対称メモリデバイス１１４Ａは、ストレージ１５２Ａ及びコントローラ１５０Ａを含むことができる。いくつかの例では、対称メモリデバイス１１４Ａは、コントローラ１５０Ａ及びストレージ１５２Ａが同じ半導体ダイ上に実装されたＮＯＲデバイスであってもよい。ストレージ１５２Ａは、いくつかの例では、システムを制御するためにプロセッサユニット１１２Ａによって実行可能な命令を格納してもよい。例えば、保護された処理システム１０１が自動車または他の車両に実装される場合、ストレージ１５２Ａは、プロセッサユニット１１２Ａによって実行されると、プロセッサユニット１１２Ａにアンチロックブレーキシステム、フライバイワイヤースロットルシステムなどの車両サブシステムのオペレーションを制御させる命令を含み得る。本明細書に記載のように、ストレージ１５２Ａのすべてまたは一部がアクセス制御され得る。いくつかの例では、プロセッサユニット１１２Ａ、ミッションクリティカルなソフトウェアなどのブート命令を含むストレージ１５２Ａの一部は、アクセス制御され、一方でストレージ１５２Ａの他の部分はアクセス制御されない。
【００３１】
コントローラ１５０Ａは、コントローラ１３２と同様に、例えば、アドレス指定、データの読み取り及び書き込みなどを実行するためのハードウェアを含むストレージ１５２Ａを管理するための様々なハードウェアを含むことができる。コントローラ１３２はまた、対称エンジン１５４Ａを含むことができ、対称エンジン１５４Ａは、本明細書に記載の対称／非対称メモリデバイス１０８の数学処理エンジン１３８及びキーレジスタ１４０と同様の数学処理エンジン１６０Ａ及びキーレジスタ１５６Ａを含むことができる。
【００３２】
図２はまた、システムコントローラ１０４Ａ及びその対称メモリデバイス１１４Ａとの間でメッセージを送受信するためのワークフローを示している。図２の例では、非対称メッセージ１６２は、外部システム１１８Ａ、１１８Ｂのうち１つのような外部システムから受信される。非対称メッセージ１６２は、ペイロードデータ及び非対称アクセスデータを含む。プロセッサユニット１０６は、非対称メッセージ１６２が対称／非対称メモリデバイス１０８に書き込まれることをリクエストする。対称／非対称メモリデバイス１０８のコントローラ１３２は、非対称エンジン１３４を利用して、非対称アクセスデータを確証する。非対称アクセスデータが確証される場合、コントローラ１３２は、キーストア１
１０からシステムコントローラ１０４Ａの対称キーにアクセスし、対称キーを使用して対称アクセスデータを生成する。対称アクセスデータ及びペイロードデータは、システムコントローラ１０４Ａに送信される対称メッセージ１６４の一部であり得る。
【００３３】
対称コントローラ１０４Ａは、対称メッセージ１６４を受信し、それが対称メモリデバイス１１４Ａに書き込まれることをリクエストする。対称メモリデバイス１１４Ａのコントローラ１５０Ａは、対称エンジン１５４Ａを利用して対称アクセスデータを確証する。対称アクセスデータが確証されると、コントローラ１５０Ａはペイロードデータをストレージ１５２Ａに書き込む。
【００３４】
同様に、システムコントローラ１０４Ａは、外部システム１１８Ａ、１１８Ｂのうちの１つなどの外部システムに向けられたメッセージを生成する。プロセッサユニット１１２Ａは、例えば、リクエストされたペイロードデータが外部システムに送信されるという指標と共に、対称メモリデバイス１１４Ａに読み取りリクエストを行う。コントローラ１５０Ａは、ストレージ１５２Ａからリクエストされたデータを抽出し、対称メモリデバイス１１４Ａの対称キーに基づいて対称アクセスデータを生成する。システムコントローラは、対称メッセージ１６６をゲートウェイデバイス１０２に向ける。
【００３５】
ゲートウェイデバイス１０２は、対称エンジン１３６を利用して対称アクセスデータ、及び非対称エンジン１３４を確証し、対称／非対称メモリデバイス１０８のプライベートキーを備えた新しい非対称アクセスデータを生成する。非対称アクセスデータ及びペイロードデータは、外部システムに送信される非対称メッセージ１６８を形成し得る。
【００３６】
図３は、着信メッセージを処理するために外部システム、ゲートウェイデバイス１０２、及びシステムコントローラ１０４Ａによって実行され得るプロセスフロー３００の一例を示すフローチャートである。プロセスフロー３００は、３つのカラム３０１、３０３、３０５を含む。カラム３０１は、外部システム１１８Ａによって実行され得るオペレーションを含む。カラム３０３は、ゲートウェイデバイス１０２によって実行され得るオペレーションを含む。カラム３０５は、システムコントローラ１０４Ａによって実行され得るオペレーションを含む。プロセスフロー３００は、特定の外部システム１１８Ａ、ゲートウェイデバイス１０２、及び特定のシステムコントローラ１０４Ａを参照して説明されているが、いくつかの例では、他の外部システム１１８Ａ、他のシステムコントローラ１０４Ｂ、１０４Ｃ、１０４Ｎ、及び他のゲートウェイデバイスが代用され得ることを理解されたい。
【００３７】
オペレーション３０４において、システムコントローラ１０４Ａは、対称キーメッセージ３０７をゲートウェイデバイス１０２に送信し、ゲートウェイデバイス１０２は、オペレーション３０２で対称キーメッセージを受信する。オペレーション３０２及び３０４は、プロビジョニングと呼ばれることもあり、様々な異なる方法で実施され得る。いくつかの例では、プロビジョニングは、処理システム１０１の初期構成中、例えば、処理システム１０１または処理システム１０１によって管理される装置（例えば、車両、セキュリティシステムなど）の製造中または製造後に生じる。例えば、各システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎは、初期構成中にそれぞれの対称キーをゲートウェイデバイス１０２に送信するように構成され得る。例えば、システムコントローラ１０４Ａは、ゲートウェイデバイス１０２または別のデバイスからプロビジョニング信号を受信することができる。プロビジョニング信号に応答して、システムコントローラ１０４Ａは、対称キーメッセージ３０７をゲートウェイデバイス１０２に送信することができる。いくつかの例では、プロビジョニングメッセージがゲートウェイデバイス１０２以外の構成要素によって送信された場合、ゲートウェイデバイス１０２は、システムコントローラ１０４Ａに送信されたプロビジョニング信号と同時にまたは近い時間内にゲートウェイデバ
イスプロビジョニング信号を受信することができる。ゲートウェイデバイスプロビジョニング信号は、対称キーメッセージ３０７を予期するようゲートウェイデバイス１０２に促すことができる。別の例では、処理システム１０１のシーケンスのブートシーケンス中にプロビジョニングが生じ得る。（例えば、処理システム１０１の電源がオンになったとき、処理システム１０１がリセットされたときなどを含む様々な時間にブートシーケンスが生じ得る。）例えば、ゲートウェイデバイス１０２は、プロビジョニング信号をブートシーケンス中のシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎに送信するように構成されることができる。いくつかの例では、処理システム１０１は、プロビジョニング中にネットワーク１１６から切断されることができ、第３者が通信バス１２０を介して送信された対称キーを傍受するのを防ぐようになっている。
【００３８】
更に別の例では、システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎの対称キーは、セキュアデータベースまたは他のセキュアストレージにおいて、例えば、セキュア処理システム１０１の外部に格納され得る。システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｎから対称キーを受信する代わりに（またはそれに加えて）、ゲートウェイデバイス１０２は、セキュアデータベースまたは他のセキュアストレージから対称キーを受信してもよい。例えば、ゲートウェイデバイス１０２は、対称キーリクエストメッセージをセキュアデータベースに送信するように構成され得る。いくつかの例では、対称キーリクエストメッセージは、本明細書に記載のように生成された対称または非対称のアクセスデータを含み得る。セキュアデータベース（及び／またはその関連システム）は、対称キーリクエストを確証することができ、確証した場合、システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎのリクエストされた１つ以上の対称キーをゲートウェイデバイス１０２に送信することができる。
【００３９】
図３に戻り参照すると、オペレーション３０６において、外部システム１１８Ａは、非対称メッセージ３０９をゲートウェイデバイス１０２に送信することができる。非対称メッセージ３０９は、外部システム１１８Ａのプライベートキーを備えた外部システム１１８Ａによって生成されたペイロードデータ及び非対称アクセスデータを含む。非対称メッセージ３０９は、システムコントローラ１０４Ａにアドレス指定され得る。一例では、システムコントローラ１０４Ａは、車両のアンチロックブレーキシステムを管理し、非対称メッセージ３０９は、アンチロックブレーキシステムからの現在のファームウェアバージョン、ステータス、または他の情報をリクエストするステータスリクエストメッセージを含むペイロードデータを含む。別の例では、非対称メッセージ３０９は、システムコントローラ１０４Ａのファームウェアまたは他のソフトウェア更新を含むペイロードデータを含み得る。非対称メッセージ３０９は、具体的にシステムコントローラ１０４Ａにアドレス指定されてよく、または、いくつかの例では、システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎのうちの２つ以上にアドレス指定されてもよい。例えば、非対称メッセージ３０９は、セキュアコンピューティングシステムのシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎのすべて、またはそれらのサブセットからの情報をリクエストすること、またはそれらに情報またはデータを提供することができる。
【００４０】
オペレーション３０８において、ゲートウェイデバイス１０２は、非対称メッセージ３０９またはその一部を対称／非対称メモリデバイス１０８に書き込むことができる。いくつかの例では、ゲートウェイデバイス１０２は、メッセージ３０９をシステムコントローラ１０４Ａに転送するという命令とともに非対称メッセージ３０９を対称／非対称メモリデバイス１０８に書き込む。非対称メッセージ３０９がシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎのうちの２つ以上にアドレス指定されている例では、ゲートウェイデバイス１０２は、メッセージ３０９が複数のシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎに送信されるという命令とともに非対称メッセージ３０９を対称／非対称メモリデバイス１０８に書き込むことができる。いくつかの例では、完全
なペイロードデータが、各受信者システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎに提供されている。他の例では、ゲートウェイデバイス１０２は、ペイロードデータを分割し、部分的なペイロードデータを各受信者システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎに送信する。例えば、システムコントローラ１０４Ａのファームウェアアップデートを含むペイロードデータは、システムコントローラ１０４Ａに送信されてもよく、一方で、別のシステムコントローラ１０４Ｂ、１０４Ｃ、１０４Ｎなどのファームウェアアップデートを含むペイロードデータは、システムコントローラ１０４Ａに送信されなくてもよい。
【００４１】
オペレーション３１０において、ゲートウェイデバイス１０２（例えば、対称／非対称メモリデバイス１０８）は、非対称メッセージ３０９を確証することができる。例えば、対称／非対称メモリデバイス１０８は、非対称エンジン１３４を利用して、非対称メッセージ３０９に含まれる非対称アクセスデータがペイロードデータと一致するかを照合することができる。いくつかの例では、対称／非対称メモリデバイス１０８は、例えば、認証局または他の信頼できる第三者から外部システム１１８Ａのパブリックキーを取得する。いくつかの例では、対称／非対称メモリデバイス１０８は、外部システム１１８Ａ、１１８Ｂの限られたセットからのメッセージを確証するように構成されている。例えば、非対称アクセスデータが、外部システム１１８Ａ、１１８Ｂの限定されたセットの外部システム１１８Ａ、１１８Ｂのプライベートキーに結び付けられない場合、確証されないことがある。（図１には２つの外部システム１１８Ａ、１１８Ｂが示されているが、ゲートウェイデバイス１０２は、異なる数の外部システム１１８Ａ、１１８Ｂを含む外部システムの限られたセットを利用することができる。）
【００４２】
対称／非対称メモリデバイス１０８は、非対称アクセスデータ及びパブリックキーを非対称エンジン１３４（例えば、その数学処理エンジン１３８）に提供することができる。非対称エンジン１３４は、復号化されたアクセスデータを返すことができる。復号化されたアクセスデータは、非対称メッセージのペイロードデータを参照するか、そうでなければ記述することができる。例えば、復号化されたメッセージは、ペイロードデータのハッシュであることができる。対称／非対称メモリデバイス１０８は、非対称メッセージ３０９（アクセスデータコピーと呼ばれることもある）とともに受信されたペイロードデータのハッシュを独立して生成することができる。アクセスデータコピーが復号化されたアクセスデータと同等である場合、非対称メッセージ３０９が確証される。例えば、ＲＳＡ暗号化技術など、任意の適切な非対称暗号化技術が使用され得る。また、非対称アクセスデータが外部システムのプライベートキーで暗号化されたペイロードデータのハッシュである、本明細書で説明するこの例は、非対称アクセスデータを生成する単なる一例である。他の適切な技術が使用されてもよい。
【００４３】
非対称メッセージ３０９が確証されない場合（例えば、アクセスデータコピーが復号化されたアクセスデータと同等でない場合）、対称／非対称メモリデバイス１０８は、オペレーション３１２においてメッセージを拒否することができる。オペレーション３１０において非対称メッセージ３０９が確証される場合、オペレーション３１４において、対称／非対称メモリデバイス１０８はシステムコントローラ１０４Ａの対称アクセスデータを生成することができる。例えば、対称／非対称メモリデバイス１０８は、対称／非対称メモリデバイス１０８のストレージ１３０にあるキーストア１１０からシステムコントローラ１０４Ａの対称キーを抽出することができる。いくつかの例では、対称／非対称メモリデバイスは、対称エンジン１３６を利用して対称アクセスデータを生成することができる。例えば、対称／非対称メモリデバイス１０８は、システムコントローラ１０４Ａの抽出された対称キー及びペイロードデータを対称エンジン１３６に提供することができ、対称エンジン１３６は、システムコントローラ１０４Ａの対称キーで生成されたペイロードデータのハッシュを返すことができる。メッセージ３０９の全ペイロードデータ未満がシス
テムコントローラ１０４Ａに送信される場合、システムコントローラ１０４Ａに送信されるペイロードデータの部分を考慮して対称アクセスデータが生成され得る。例えば、ＳＨＡ−２シリーズ、ＳＨＡ−３シリーズ、ＳＨＡ−５シリーズなどを含むセキュアハッシュアルゴリズム（ＳＨＡ）アルゴリズムなど、任意の適切なハッシュアルゴリズムが使用され得る。
【００４４】
オペレーション３１６において、ゲートウェイデバイス１０２（例えば、対称／非対称メモリデバイス１０８）は、対称メッセージ３１１をシステムコントローラ１０４Ａに送信することができる。例えば、対称メッセージ３１１は、ペイロードデータ（またはシステムコントローラ１０４Ａに提供されるペイロードデータの一部）及びオペレーション３１４で生成された対称アクセスデータを含み得る。
【００４５】
システムコントローラ１０４Ａは、対称メッセージ３１１を受信することができ、それをオペレーション３１８において、対称メモリデバイス１１４Ａに書き込むことができる。オペレーション３２０において、システムコントローラ１０４Ａ（例えば、対称メモリデバイス１１４Ａ）は、対称メッセージ３１１を確証することができる。例えば、対称メモリデバイス１１４Ａは、対称アクセスデータがペイロードデータと一致するかどうかを判断することができる。対称メモリデバイス１１４Ａは、対称アクセスデータを対称エンジン１５４Ａに供給することにより、オペレーション３１８からの書き込みを処理することができる。対称エンジン１５４Ａは、対称メッセージ３１１に含まれるペイロードデータ、及び対称メモリデバイス１１４Ａの対称キーに基づいて、例えば、対称／非対称メモリデバイス１０８によって使用される同一のハッシュアルゴリズムを利用してハッシュを生成することができる。
【００４６】
生成されたハッシュが対称アクセスデータと同等である場合、対称メッセージ３１１が確証される。生成されたハッシュが対称アクセスデータと同等でない場合、対称メッセージ３１１は確証されなくてもよい。対称メッセージ３１１が確証されない場合、対称メモリデバイス１１４Ａは、オペレーション３２２においてメッセージ３１１を拒否することができる（例えば、ペイロードデータがストレージ１５２Ａにロードされなくてもよい）。対称メッセージ３１１が確証された場合、対称メモリデバイス１１４Ａは、オペレーション３２４において、例えば、ペイロードデータをストレージ１５２Ａに書き込むことにより、メッセージ３１１を処理することができる。
【００４７】
図４は、発信メッセージを処理するために、外部システム１１８Ａ、ゲートウェイデバイス１０２、及びシステムコントローラ１０４Ａによって実行され得るプロセスフロー４００の一例を示すフローチャートである。プロセスフロー４００は、３つのカラム４０１、４０３、４０５を含む。カラム４０１は、外部システム１１８Ａによって実行され得るオペレーションを含む。カラム４０３は、ゲートウェイデバイス１０２によって実行され得るオペレーションを含む。カラム４０５は、システムコントローラ１０４Ａによって実行され得るオペレーションを含む。プロセスフロー４００は、特定の外部システム１１８Ａ、ゲートウェイデバイス１０２、及び特定のシステムコントローラ１０４Ａを参照して説明されているが、いくつかの例では、他の外部システム１１８Ａ、他のシステムコントローラ１０４Ｂ、１０４Ｃ、１０４Ｎ、及び他のゲートウェイデバイスが代用され得ることを理解されたい。プロセスフロー４００の実行前に、システムコントローラ１０４Ａの対称キーは、例えば、本明細書に記載のように、ゲートウェイデバイス１０２にプロビジョニングされていてもよい。
【００４８】
オペレーション４０２において、システムコントローラ１０４Ａは、外部システム１１８Ａに向けられた対称メッセージ４０７を生成することができる。対称メッセージ４０７は、ペイロードデータ及び対称アクセスデータを含み得る。ペイロードデータは、例えば
、システムコントローラ１０４Ａのステータスレポート、システムコントローラ１０４Ａと通信する１つ以上のセンサーからのデータなどの任意の適切なデータであり得る。いくつかの例では、システムコントローラ１０４Ａは、対称メモリデバイス１１４Ａの対称エンジン１５４Ａを利用して対称アクセスデータを生成する。例えば、システムコントローラ１０４Ａは、対称メモリデバイス１１４Ａからのペイロードデータをリクエストすることができる。対称メモリデバイス１１４Ａは、ストレージ１５２Ａからペイロードデータを抽出することができ、ペイロードデータを対称エンジン１５４Ａに供給することができる。対称エンジン１５４Ａは、例えば、システムコントローラ１０４Ａの対称キーに基づいて、キーレジスタ１５６Ａに格納され得るペイロードデータのハッシュを生成することができる。ハッシュは、対称アクセスデータのすべてまたは一部であり得る。
【００４９】
オペレーション４０４において、システムコントローラ１０４Ａは、対称メッセージ４０７をゲートウェイデバイス１０２に送信することができる。ゲートウェイデバイス１０２は、オペレーション４０６において、対称メッセージ４０７を対称／非対称メモリデバイス１０８に書き込むことができる。オペレーション４０８において、ゲートウェイデバイス１０２（例えば、対称／非対称メモリデバイス１０８）は、例えば本明細書に記載のように、対称メッセージを確証することができる。例えば、ゲートウェイデバイス１０２は、キーストア１１０からシステムコントローラ１０４Ａの対称キーを抽出することができ、対称エンジン１３６を利用して、ペイロードデータのハッシュを生成することができる。対称エンジン１３６によって生成されたペイロードデータのハッシュが対称メッセージ４０７のアクセスデータと同等である場合、メッセージは確証され得る。一致しない場合、ゲートウェイデバイス１０２は、オペレーション４１０において、対称メッセージ４０７を拒否することができる。
【００５０】
対称メッセージ４０７が確証される場合、ゲートウェイ装置１０２は、メッセージを外部システム１１８Ａに転送することができる。いくつかの例では、非対称アクセスデータが使用され得る。例えば、オペレーション４１２において、ゲートウェイデバイス１０２（例えば、対称／非対称メモリデバイス１０８）は、対称メッセージ４０７のペイロードデータを含む非対称メッセージ４０９を生成することができる。例えば、対称／非対称メモリデバイス１０８は、ペイロードデータを非対称エンジン１３４に供給することができる。非対称エンジン１３４は、例えば、ゲートウェイデバイス１０２のペイロードデータ及びプライベートキーに基づいて、非対称アクセスデータを生成することができる。例えば、対称／非対称メモリデバイス１０８は、ペイロードデータのハッシュを生成することができ、次いで、プライベートキーでハッシュを暗号化することができる。暗号化されたハッシュは、非対称アクセスデータのすべてまたは一部であり得る。オペレーション４１４において、ゲートウェイデバイス１０２は、非対称メッセージ４０９を外部システム１１８Ａに送信することができる。
【００５１】
外部システム１１８Ａは、オペレーション４１６において非対称メッセージ４０９を受信することができ、例えば、非対称アクセスデータがペイロードデータに一致するかどうかを判断することにより、オペレーション４１８において、メッセージ４０９を確証することができる。メッセージが確証されると、外部システムはオペレーション４２２においてメッセージを処理することができる。メッセージが確証されない場合、外部システム１１８Ａは、オペレーション４２０においてメッセージを拒否することができる。
【００５２】
本明細書に記載の例示的なセキュア処理システム１０１は、アクセス制御を利用して、ゲートウェイデバイス１０２のメモリデバイス、及びシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎを保護する。例えば、ゲートウェイデバイス１０２は、説明したように、システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎのために非対称アクセス制御を有利に実装する。このように、システムコントローラ１０４Ａ、１０
４Ｂ、１０４Ｃ、１０４Ｎは、非対称システムコントローラではなく対称システムコントローラとともに実装され得る。
【００５３】
様々な例では、ゲートウェイデバイス１０２及び様々なシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎを含むセキュア処理システム１０１は、例えば暗号測定、暗号保護及び／または自動回復などの他のセキュリティ機能を実装することができる。
【００５４】
暗号測定によれば、メモリデバイス１０８、１１４Ａ、１１４Ｂ、１１４Ｃ、１１４Ｎの一部またはすべては、それぞれの対称エンジン（または追加の対称エンジン）を利用して、信頼性測定のコアルート（ＣＲＴＭ）を実装する。例えば、メモリデバイスが（例えば、本明細書に記載のように確証された）確証されたペイロードデータを受信すると、メモリデバイスはペイロードデータのハッシュを生成するために適切な暗号キー（例えば、デバイスの対称キー）を利用することができる。ハッシュはメモリデバイスにおいて、安全な場所に書き込まれることができる。いくつかの例では、暗号化キーはＣＲＴＭのすべてまたは一部であり、そこから派生したハッシュを備えている。メモリデバイスのストレージからデータが読み取られると、メモリデバイスコントローラは、例えば、読み取られたデータをハッシュし、データが書き込まれたときに生成された格納されたハッシュとそのハッシュを比較することによって、読み取られたデータをＣＲＴＭと比較することができる。一致する場合、プロセスは続行することができる（例えば、読み取りデータがコードの場合、プロセッサユニットは読み取りコードを実行することができる）。一致しない場合、メモリデバイスストレージの破損を示すことができる。メモリデバイスはエラーを返すことができ、または、そうでない場合、リクエストデータが使用されることを防ぐことができる。
【００５５】
自動回復によれば、メモリデバイスは、システムのデータ及び／またはコードのすべてまたは一部の安全で回復可能なコピーを含む安全な（例えば、読み取り専用）保管場所を含む。例えば、ＣＲＴＭを参照してデータ破損が検出された場合、セキュアコピーがロードされる（例えば、実行される）ことができる。暗号保護によれば、対称及び／または非対称暗号化エンジンが使用され通信（例えば、ゲートウェイデバイス１０２と外部システム１１８Ａ、１１８Ｂとの間の通信、システムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎとゲートウェイデバイスとの間の通信１０２など）を暗号化する。
【００５６】
図５は、１つ以上の装置５０３０〜５０５０の一部としてメモリ装置５０２０（例えば、本明細書に記載のメモリ装置のいずれか）を備えた例示的な処理システム５０１０（例えば、処理システム１０１）を示している。装置は、処理システム５０１０などの処理システムを含むことができる任意のデバイスを含む。前述のように、処理システム５０１０は、命令を（連続的に、またはそうでない方法で）実行できる任意のデバイスであり得る。例示的な装置は、車両５０３０（例えば、インフォテインメントシステム、制御システムなどの一部として）、ドローン５０５０（例えば、制御システムの一部として）、家具または家電製品５０４０（例えば、センサーシステム、エンターテイメントシステム、インフォテインメントシステムなどの一部として）などを含む。他の例では、図示されていないが、装置は、航空用、海洋用、モノのインターネット（ＩＯＴ）、及び他のデバイスを含んでもよい。
【００５７】
図６は、処理デバイスのソフトウェアアーキテクチャ６０２の一例を示すブロック図６００である。アーキテクチャ６０２は、様々なハードウェアアーキテクチャと組み合わせて使用され得る。例えば、ソフトウェアアーキテクチャ６０２は、本明細書に記載のゲートウェイデバイス１０２、及び／または様々なシステムコントローラ１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｎのうちの１つ以上を記述することができる。図６は、単にソフトウェアアーキテクチャ６０２の非限定的な例であり、本明細書に記載の機能を容易にするた
めに他の多くのアーキテクチャが実装されることができる。代表的なハードウェア層６０４が示されており、例えば、上記で参照されたコンピューティングデバイスのいずれかを表すことができる。いくつかの例では、ハードウェア層６０４は、図６のアーキテクチャ６０２、図７のアーキテクチャ７００、及び／または本明細書に記載のセキュア処理システム１０１のアーキテクチャに従って実装され得る。
【００５８】
代表的なハードウェア層６０４は、関連する実行可能命令６０８を有する１つ以上の処理ユニット６０６を含む。実行可能命令６０８は、図１〜図４の方法、モジュール、構成要素などの実装を含むソフトウェアアーキテクチャ６０２の実行可能命令を表す。ハードウェア層６０４はまた、実行可能命令６０８も有するメモリ及び／またはストレージモジュール６１０を含む。ハードウェア層６０４はまた、ハードウェアアーキテクチャ７００の一部として示される他のハードウェアのような、ハードウェア層６０４の他のハードウェアを表す他のハードウェア６１２によって示されるような他のハードウェアも含み得る。
【００５９】
図６の例示的なアーキテクチャでは、ソフトウェア６０２は、各層が特定の機能を提供する層のスタックとして概念化されてもよい。例えば、ソフトウェア６０２は、オペレーティングシステム６１４、ライブラリ６１６、フレームワーク／ミドルウェア６１８、アプリケーション６２０及びプレゼンテーション層６４４などの層を含むことができる。動作上、アプリケーション６２０及び／または層内の他の構成要素は、ソフトウェアスタックを介したアプリケーションプログラミングインターフェース（ＡＰＩ）コール６２４を呼び出すことができ、ＡＰＩコール６２４に応答するメッセージ６２６として示される応答、戻り値などを受信することができる。図示されている層は、本質的に代表的なものであり、すべてのソフトウェアアーキテクチャにすべての層があるわけではない。例えば、一部のモバイルまたは専用オペレーティングシステムは、フレームワーク／ミドルウェア層６１８を提供することができず、一方で、それ以外はそのような層を提供することができる。他のソフトウェアアーキテクチャは、追加の、または異なる層を含むことができる。
【００６０】
オペレーティングシステム６１４は、ハードウェアリソースを管理することができ、共通のサービスを提供することができる。オペレーティングシステム６１４は、例えば、カーネル６２８、サービス６３０、及びドライバ６３２を含み得る。カーネル６２８は、ハードウェア層と他のソフトウェア層との間の抽象化層として機能することができる。例えば、カーネル６２８は、メモリ管理、プロセッサ管理（例えば、スケジューリング）、構成要素管理、ネットワーキング、セキュリティ設定などを担当することができる。サービス６３０は、他のソフトウェア層に他の共通サービスを提供することができる。いくつかの例では、サービス６３０は割り込みサービスを含む。割り込みサービスは、ハードウェアまたはソフトウェアの割り込みの受信を検出することができ、それに応答してアーキテクチャ６０２に現在の処理を一時停止させることができ、割り込みが受信されると、割り込みサービスルーチン（ＩＳＲ）を実行することができる。
【００６１】
ドライバ６３２は、基礎となるハードウェアを制御またはインターフェースする役割を果たし得る。例えば、ドライバ６３２は、ハードウェア構成に応じて、ディスプレイドライバ、カメラドライバ、Ｂｌｕｅｔｏｏｔｈ（登録商標）ドライバ、フラッシュメモリドライバ、シリアル通信ドライバ（例えば、ユニバーサルシリアルバス（ＵＳＢ）ドライバ）、Ｗｉ−Ｆｉ（登録商標）ドライバ、ＮＦＣドライバ、オーディオドライバ、電力管理ドライバなどを含み得る。
【００６２】
ライブラリ６１６は、アプリケーション６２０、及び／または他の構成要素、及び／または層によって利用され得る共通インフラストラクチャを提供することができる。ライブ
ラリ６１６は通常、他のソフトウェアモジュールが、基礎となるオペレーティングシステム６１４の機能（例えば、カーネル６２８、サービス６３０及び／またはドライバ６３２）と直接インターフェースするよりも簡単な方法でタスクを実行できる機能を提供する。ライブラリ６１６は、メモリ割り当て関数、文字列操作関数、数学関数などの関数を提供し得るシステム６３４ライブラリ（例えば、Ｃ標準ライブラリ）を含み得る。加えて、ライブラリ６１６は、メディアライブラリ（例えば、ＭＰＥＧ４、Ｈ．２６４、ＭＰ３、ＡＡＣ、ＡＭＲ、ＪＰＧ、ＰＮＧなどの様々なメディアフォーマットのプレゼンテーション及び操作をサポートするライブラリ）、グラフィックライブラリ（例えば、ディスプレイ上のグラフィックコンテンツの２Ｄ及び９Ｄをレンダリングするために使用され得るＯｐｅｎＧＬフレームワーク）、データベースライブラリ（例えば、様々なリレーショナルデータベース機能を提供するＳＱＬｉｔｅ）、Ｗｅｂライブラリ（例えば、Ｗｅｂブラウジング機能を提供することができるＷｅｂＫｉｔ）などのＡＰＩライブラリ６３６を含み得る。ライブラリ６１６はまた、多くの他のＡＰＩをアプリケーション６２０及び他のソフトウェアコンポーネント／モジュールに提供するために、多種多様な他のライブラリ６３８を含むこともできる。
【００６３】
フレームワーク６１８（ミドルウェアとも呼ばれることがある）は、アプリケーション６２０及び／または他のソフトウェア構成要素／モジュールによって利用され得る、より高レベルの共通インフラストラクチャを提供し得る。例えば、フレームワーク６１８は、様々なグラフィックユーザーインターフェース（ＧＵＩ）機能、高レベルのリソース管理、高レベルの位置特定サービスなどを提供することができる。フレームワーク６１８は、アプリケーション６２０及び／または他のソフトウェア構成要素／モジュールによって利用され得る他のＡＰＩの広いスペクトルを提供することができ、それらのいくつかは、特定のオペレーティングシステムまたはプラットフォームに特有のものであり得る。
【００６４】
アプリケーション６２０は、組み込みアプリケーション６４０、及び／またはサードパーティアプリケーション６４２を含む。代表的な組み込みアプリケーション６４０の例として、連絡先アプリケーション、ブラウザアプリケーション、ブックリーダーアプリケーション、ロケーションアプリケーション、メディアアプリケーション、メッセージングアプリケーション、及び／またはゲームアプリケーションが含まれ得るが、これらに限定されない。サードパーティアプリケーション６４２は、組み込みアプリケーションのいずれか、及び広範な他のアプリケーションを含むことができる。特定の例では、サードパーティアプリケーション６４２（例えば、特定のプラットフォームのベンダー以外のエンティティによってＡｎｄｒｏｉｄ（商標）またはｉＯＳ（商標）ソフトウェア開発キット（ＳＤＫ）を使用して開発されたアプリケーション）は、ｉＯＳ（商標）、Ａｎｄｒｏｉｄ（商標）、Ｗｉｎｄｏｗｓ（登録商標）Ｐｈｏｎｅ、または他のモバイルコンピューティングデバイスのオペレーティングシステムなどのモバイルオペレーティング上で実行されるモバイルソフトウェアであることができる。この例では、サードパーティアプリケーション６４２は、本明細書で説明する機能を促進するためのオペレーティングシステム６１４などのモバイルオペレーティングシステムによって提供されるＡＰＩコール６２４を呼び出すことができる。
【００６５】
アプリケーション６２０は、システムのユーザーと対話するインターフェースを生成するために、組み込みオペレーティングシステム機能（例えば、カーネル６２８、サービス６３０、及び／またはドライバ６３２）、ライブラリ（例えば、システム６３４、ＡＰＩ６３６、及び他のライブラリ６３８）、フレームワーク／ミドルウェア６１８を利用することができる。代替的または追加的に、一部のシステムでは、プレゼンテーション層６４４などのプレゼンテーション層を介してユーザーとの対話が生じることがある。これらのシステムでは、アプリケーション／モジュールの「ロジック」は、ユーザーと対話するアプリケーション／モジュールの態様から分離され得る。
【００６６】
一部のソフトウェアアーキテクチャは仮想マシンを利用している。例えば、本明細書に記載のシステムは、１つ以上のサーバーコンピューティングマシンで動作される１つ以上の仮想マシンを利用して動作され得る。図６の例では、これは仮想マシン６４８によって示されている。仮想マシンは、アプリケーション／モジュールがハードウェアコンピューティングデバイスで動作しているかのように動作することができるソフトウェア環境を形成する。仮想マシンは、ホストオペレーティングシステム（オペレーティングシステム６１４）によってホストされ、通常、常にではないが、仮想マシンの動作、及びホストオペレーティングシステム（すなわち、オペレーティングシステム６１４）とのインターフェースを管理する仮想マシンモニター６４６を有する。ソフトウェアアーキテクチャは、オペレーティングシステム６５０、ライブラリ６５２、フレームワーク／ミドルウェア６５４、アプリケーション６５６、及び／またはプレゼンテーション層６５８などの仮想マシン内で動作する。仮想マシン６４８内で動作しているソフトウェアアーキテクチャのこれらの層は、前述の対応する層と同一であっても、異なっていてもよい。
【００６７】
図７は、処理システムのハードウェアアーキテクチャ７００を示すブロック図であり、その中では、命令のセットまたはシーケンスが実行されることができ、マシンに本明細書に記載の方法のいずれかを実行させることができる。例えば、アーキテクチャ７００は、図６に関して説明されたソフトウェアアーキテクチャ６０２を実行することができる。アーキテクチャ７００は、スタンドアロンデバイスとして動作することができるか、または他のマシンに接続（例えば、ネットワーク化）されることができる。ネットワーク化された展開では、アーキテクチャ７００は、サーバー／クライアントネットワーク環境のサーバーまたはクライアントマシンのいずれかの容量で動作することができるか、または、ピアツーピア（または分散）ネットワーク環境でピアマシンとして機能することができる。アーキテクチャ７００は、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、ハイブリッドタブレット、セットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話、ウェブアプライアンス、ネットワークルーター、ネットワークスイッチ、またはネットワークブリッジ、もしくは、そのマシンで実行する動作を指定する（連続的またはそれ以外の）命令を実行することが可能な任意のマシンに実装されることができる。
【００６８】
例示的なアーキテクチャ７００は、少なくとも１つのプロセッサ（例えば、中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）またはそれら両方、プロセッサコア、計算ノードなど）を含むプロセッサユニット７０２を含んでいる。アーキテクチャ７００は、メインメモリ７０４及び静的メモリ７０６を更に含むことができ、これらはリンク７０８（例えばバス）を介して互いに通信する。アーキテクチャ７００は、ビデオディスプレイユニット７１０、英数字入力装置７１２（例えば、キーボード）、及びユーザーインターフェース（ＵＩ）ナビゲーション装置７１４（例えば、マウス）を更に含むことができる。いくつかの例では、ビデオディスプレイユニット７１０、入力装置７１２及びＵＩナビゲーション装置７１４は、タッチスクリーンディスプレイに組み込まれている。アーキテクチャ７００は、ストレージ装置７１６（例えば、駆動ユニット）、信号生成装置７１８（例えば、スピーカー）、ネットワークインターフェース装置７２０、及び全地球測位システム（ＧＰＳ）センサー、コンパス、加速度計、またはその他のセンサーなどの１つ以上のセンサー（図示せず）を追加的に含むことができる。
【００６９】
いくつかの例では、プロセッサユニット７０２または他の適切なハードウェア構成要素は、ハードウェア割り込みをサポートすることができる。ハードウェア割り込みに応答して、プロセッサユニット７０２はその処理を一時停止することができ、例えば本明細書に記載のように割り込みサービスルーチン（ＩＳＲ）を実行することができる。
【００７０】
ストレージ装置７１６は、本明細書に記載の方法または機能のいずれか１つ以上を実行
または利用するデータ構造及び命令７２４（例えば、ソフトウェア）の１つ以上のセットが格納されるコンピュータ可読媒体７２２を含む。命令７２４はまた、完全にまたは少なくとも部分的に、メインメモリ７０４の中、静的メモリ７０６の中に、及び／またはアーキテクチャ７００による実行中のプロセッサ７０２の中に、メインメモリ７０４、静的メモリ７０６、及びコンピュータ可読媒体を構成するプロセッサ７０２とともに常駐することができる。コンピュータ可読媒体７２２に格納された命令は、例えば、ソフトウェアアーキテクチャ６０２を実装するための命令、本明細書に記載の機能のいずれかを実行するための命令などを含み得る。
【００７１】
コンピュータ可読媒体７２２は、単一の媒体である例で示されているが、用語「コンピュータ可読媒体」は、１つ以上の命令７２４を格納する単一の媒体または複数の媒体（例えば、集中型または分散型データベース、及び／または関連するキャッシュ及びサーバー）を含み得る。用語「コンピュータ可読媒体」はまた、機械による実行のための命令を格納すること、符号化すること、または携帯することが可能で、本開示の方法の１つ以上のいずれかを機械に実行させ、そのような命令によって利用され、またはそのような命令に関連するデータ構造を格納すること、符号化すること、または携帯することが可能である有形媒体も含むものと解釈されるものとする。従って、用語「コンピュータ可読媒体」は、ソリッドステートメモリ、光学及び磁気媒体を含むが、これらに限定されないものと解釈されるものとする。コンピュータ可読媒体の具体例は、不揮発性メモリを含み、例として、半導体メモリデバイス（例えば、電気的にプログラム可能な読み取り専用メモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ））、及びフラッシュメモリデバイス、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクが挙げられるが、これらに限定されるものではない。
【００７２】
命令７２４は、伝送媒体を使用して、いくつかの周知の転送プロトコル（例えば、ＨＴＴＰ）のいずれか１つを利用するネットワークインターフェースデバイス７２０を介して通信ネットワーク７２６を通じて更に送受信され得る。通信ネットワークの例には、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネット、携帯電話ネットワーク、プレインオールドテレフォン（ＰＯＴＳ）ネットワーク、ワイヤレスデータネットワーク（例えば、Ｗｉ−Ｆｉ、３Ｇ、及び５Ｇ  ＬＴＥ／ＬＴＥ−ＡまたはＷｉＭＡＸネットワーク）が挙げられる。用語「伝送媒体」は、機械による実行のための命令を保存すること、符号化すること、携帯することが可能で、そのようなソフトウェアの通信を促進するためのデジタルまたはアナログ通信信号、または他の無形媒体を含む、いずれかの無形媒体を含むものと解釈されるものとする。
【００７３】
本明細書に記載の例は、一貫性のために回路と呼ばれる、ロジック、または多数の構成要素、エンジン、モジュール、回路を含むことができ、またはそれらの上で動作することができるが、これらの用語は互換可能に使用できることを理解されたい。回路は、本明細書に記載の動作を実行するために、１つ以上のプロセッサに通信可能に連結されたハードウェア、ソフトウェア、またはファームウェアであり得る。回路は、ハードウェア回路であることができ、そのような回路は、特定の動作を実行できる有形のエンティティと解釈されることができ、特定の方法で構成または配置されることができる。一例では、回路は、回路として指定された方法で（例えば、内向きに、または他の回路などの外部エンティティに向けて）配置されることができる。一例では、１つ以上のコンピューティングプラットフォーム（例えば、スタンドアロン、クライアントまたはサーバーコンピューティングプラットフォーム）または１つ以上のハードウェアプロセッサの全体または一部は、ファームウェアまたはソフトウェア（例えば、命令、アプリケーション部分、またはアプリケーション）によって指定された動作を実行するために動作する回路として構成され得る。一例では、ソフトウェアはコンピュータ可読媒体上に存在し得る。一例では、ソフトウ
ェアは、回路の基礎となるハードウェアによって実行されると、指定された動作をハードウェアに実行させる。従って、ハードウェア回路という用語は、有形のエンティティを包含し、物理的に構築され、具体的に構成（例えば、ハードワイヤード）され、または一時的に（例えば、暫時的に）構成（例えば、プログラム）され、特定の方法で動作し、または本明細書に記載の任意の動作の一部またはすべてを実行するエンティティであると理解される。
【００７４】
回路が一時的に構成されているこれらの例を考慮すると、回路のそれぞれは、いずれかの時点でインスタンス化される必要はない。例えば、回路がソフトウェアを使用するように構成された汎用ハードウェアプロセッサを備える場合、汎用ハードウェアプロセッサは、異なる時間にそれぞれ異なる回路として構成され得る。従って、ソフトウェアは、例えば、ある時点で特定の回路を構成し、異なる時点で異なる回路を構成するように、ハードウェアプロセッサを構成する。
【００７５】
上記の詳細な説明には、詳細な説明の一部を形成する添付図面への参照が含まれている。図面は、実例として、実施され得る特定の例を示している。これらの例は、本明細書では「実施例」とも呼ばれる。そのような実施例は、図示または説明されたものに加えて要素を含み得る。しかし、図示または説明された要素を含む実施例もまた考えられる。さらに、特定の実施例（またはその１つ以上の態様）に関して、または本明細書に示され、または説明された他の実施例（またはその１つ以上の態様）に関して、図示または説明されたこれら要素（またはその１つ以上の態様）の任意の組み合わせ、または順列を使用する実施例も考慮されている。
【００７６】
本明細書では、特許明細書で一般的な「ａ」または「ａｎ」という用語は、「ａｔ  ｌｅａｓｔ  ｏｎｅ」または「ｏｎｅ  ｏｒ  ｍｏｒｅ」の他の事例または使用法とは無関係に、１つ以上を含むために使用される。本文書では、「ｏｒ」という用語は、非排他的なものを指すために使用され、また、指示なき場合、「Ａ  ｏｒ  Ｂ」には、「ＡであるがＢではない」、「ＢであるがＡではない」、及び「Ａ及びＢ」が含まれるようになっている。添付の特許請求の範囲では、用語「ｉｎｃｌｕｄｉｎｇ」及び「ｉｎ  ｗｈｉｃｈ」は、それぞれ用語「ｃｏｍｐｒｉｓｉｎｇ」及び「ｗｈｅｒｅｉｎ」の平易な英語の同等物として使用されている。また、以下の特許請求の範囲において、用語「ｉｎｃｌｕｄｉｎｇ」及び「ｃｏｍｐｒｉｓｉｎｇ」は、無制限であり、つまり、請求項のそのような用語の後に列挙された要素に加えて、要素を含むシステム、デバイス、物品、またはプロセスが、依然としてその特許請求の範囲内にあると見なされる。更に、以下の特許請求の範囲では、用語「第１」、「第２」、「第３」などは、単に標示として使用され、それらの対象の番号順序を示唆することを意図したものではない。
【００７７】
上記の説明は例示を意図したものであり、限定を意図したものではない。例えば、上述の例（またはその１つ以上の態様）は、他のものと組み合わせて使用されることができる。上述の説明を参照して当業者などによって他の例が使用され得る。要約書は、読者が技術的開示の性質を迅速に確認できるようになっている。請求項の範囲または意味を解釈または制限するために使用されないことを理解して提示されている。また、上述の「発明を実施するための形態」では、本開示を合理化するために様々な特徴がグループ化され得る。しかし、例は特徴のサブセットを特徴とし得ることから、特許請求の範囲は本明細書で開示されるすべての特徴を説明し得ない。更に、例は、特定の例で開示されたものよりも少ない特徴を含み得る。従って、以下の特許請求の範囲は、別個の例として独立して請求項とともに、ここで「発明を実施するための形態」に組み込まれている。本明細書に開示される実施例の範囲は、添付の特許請求の範囲を参照して決定されるものであり、そのような特許請求の範囲が権利を有する同等物の全範囲も含まれる。
【図１】
2020512763.tif 000003
【図２】
2020512763.tif 000004
【図３】
2020512763.tif 000005
【図４】
2020512763.tif 000006
【図５】
2020512763.tif 000007
【図６】
2020512763.tif 000008
【図７】
2020512763.tif 000009
【国際調査報告】
2020512763.tif 000010
2020512763.tif 000011