(57)【要約】  本明細書に記載されているいくつかの実施形態は、符号解析でサイドチャネル情報を用いて電子装置のサプライチェーンを検証する方法を含む。方法は、対象の装置へ、対象の装置により実行されるコードのセットに関連する第１の信号を送信することと、それからコードのセットを実行する対象の装置に応え、対象の装置に関連する第１のサイドチャネル情報を受信することを含む。方法はまた、コードのセットに応え、シミュレーションされた装置に関連する第２のサイドチャネル情報を決定することを含む。方法はさらに、第１のサイドチャネル情報の識別力のある特徴と第２のサイドチャネル情報の識別力のある特徴を比較し、シミュレーションされた装置の予め決定された特性に基き対象の装置の特性を判断することを含む。最後に方法は、ユーザ・インタフェースへ対象の装置の特性に関連する第２の信号を送信することを含む。【選択図】図１
2019505871.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリに作動可能に接続され、電子装置に接続されるよう構成され、前記電子装置は予め決定された特性を有するプロセッサと、を備え、
前記プロセッサが、前記電子装置により処理される入力のセットに関連する信号を前記電子装置へ送信するよう構成され、
前記プロセッサが、前記入力のセットを実行する前記電子装置に応え、前記電子装置に関連する第１のサイドチャネル情報を受信するよう構成され、
前記プロセッサが、前記第１のサイドチャネル情報および前記電子装置に基きシミュレーションされた装置を形成するよう構成され、前記シミュレーションされた装置が電子装置をシミュレーションし、
前記プロセッサが、前記シミュレーションされた装置に基き、および前記入力のセットに応え、第２のサイドチャネル情報を決定するよう構成され、
前記プロセッサが、前記第１のサイドチャネル情報の識別力のある特徴および前記第２のサイドチャネル情報の識別力のある特徴が実質的に合致するように、
前記シミュレーションされた装置に関連するパラメータのセットを決定するよう構成され、
前記プロセッサが、前記シミュレーションされた装置および前記パラメータのセットを前記メモリ内に格納するよう構成された、
機器。
【請求項２】
前記予め決定された特性が、正当性ステータス、前記電子装置内に含まれる回路の老朽化ステータス、前記回路の製造工場の素性、前記回路の前記製造工場の地理的情報、前記回路のレイアウト、マルウェア、権限を与えられていないハードウェア変更、環境誘発故障モード、回路誘発故障モード、ソフトウェアアップデートステータス、またはファームウェアアップデートステータスのうち少なくとも１つを含む、請求項１に記載の機器。
【請求項３】
前記第１のサイドチャネル情報が、プログラム実行ステータス、電力シグネチャ信号、電磁放射、電流、電圧、温度、振動、光、遅延、インピーダンス、振動、圧力、または全地球測位システム座標のうち少なくとも１つを含む、請求項１に記載の機器。
【請求項４】
前記入力のセットが前記電子装置の一部分を始動するように、前記プロセッサが前記入力のセットを決定するよう構成された、請求項１に記載の機器。
【請求項５】
前記パラメータのセットが、伝播遅延、寄生回路、インピーダンス、駆動電力、駆動電圧、駆動電流、クロック、外部負荷または製作情報のうち少なくとも１つを含む、請求項１に記載の機器。
【請求項６】
前記信号が第１の信号であり、前記入力のセットが第１の入力のセットであり、
前記プロセッサが、対象の装置に作動可能に接続されるよう構成され、
前記プロセッサが、前記対象の装置により実行される第２の入力のセットに関連する第２の信号を前記対象の装置へ送信するよう構成され、
前記プロセッサが、前記第２の入力のセットを実行する前記対象の装置に応え、前記対象の装置に関連する第３のサイドチャネル情報を受信するよう構成され、
前記プロセッサが、前記第２の入力のセットに応え、前記シミュレーションされた装置に関連する第４のサイドチャネル情報を決定するよう構成され、
前記プロセッサが、前記第３のサイドチャネル情報と前記第４のサイドチャネル情報を比較し、前記電子装置の前記予め決定された特性に基き前記対象の装置の特性を判断するよう構成され、
前記プロセッサが、ユーザ・インタフェースへ前記対象の装置の前記特性に関連する第３の信号を送信するよう構成された、
請求項１に記載の機器。
【請求項７】
前記プロセッサおよび前記メモリが、前記対象の装置のチップ上に配置された、請求項６に記載の機器。
【請求項８】
前記メモリが第１のメモリであり、
前記プロセッサおよび前記第１のメモリが前記対象の装置のチップ上に配置され、
前記シミュレーションされた装置のコピーおよび前記パラメータのセットのコピーが、前記対象の装置の外部の第２のメモリ内に格納された、
請求項６に記載の機器。
【請求項９】
前記プロセッサが、前記対象の装置の前記特性に基き応答アクションを決定するよう構成され、前記応答アクションが、前記対象の装置が非正当と判断されたときの修復、前記対象の装置の既知の状態への回復、失敗したテストの前記対象の装置のチップ上またはチップから離れた格納、前記対象の装置の回路機能の変更、前記対象の装置の制御ポートの無効化、再起動に関する前記対象の装置の誘発、仮想化再開に関する前記対象の装置の誘発、フォレンジクス目的のデータ収集、侵入を見分けるためのブラックリストに関するデータ収集のうち少なくとも１つを含む、請求項６に記載の機器。
【請求項１０】
前記プロセッサが、前記対象の装置の製品寿命サイクルを通して前記対象の装置の前記特性を判断するよう構成された、請求項６に記載の機器。
【請求項１１】
前記入力のセットがコードのセットを含む、請求項１に記載の機器。
【請求項１２】
対象の装置により処理されるコードのセットに関連する第１の信号を前記対象の装置へ送信することと、
前記コードのセットを実行する前記対象の装置に応え、前記対象の装置に関連する第１のサイドチャネル情報を受信することと、
前記コードのセットに応え、シミュレーションされた装置に関連する第２のサイドチャネル情報を決定し、前記シミュレーションされた装置は予め決定された特性を有することと、
前記第１のサイドチャネル情報の識別力のある特徴と前記第２のサイドチャネル情報の識別力のある特徴を比較し、前記シミュレーションされた装置の前記予め決定された特性に基き前記対象の装置の特性を判断することと、
ユーザ・インタフェースへ前記対象の装置の前記特性に関連する第２の信号を送信することと、
を含む方法。
【請求項１３】
前記第２のサイドチャネル情報を決定する前に、前記シミュレーションされた装置を取得する、請求項１２に記載の方法。
【請求項１４】
前記対象の装置の前記特性に基き応答アクションを決定することをさらに含み、前記応答アクションが、前記対象の装置が非正当と判断されたときの修復、前記対象の装置の既知の状態への回復、失敗したテストの前記対象の装置のチップ上またはチップから離れた格納、前記対象の装置の回路機能の変更、前記対象の装置の制御ポートの無効化、再起動に関する前記対象の装置の誘発、仮想化再開に関する前記対象の装置の誘発、フォレンジクス目的のデータ収集、侵入を見分けるためのブラックリストに関するデータ収集のうち少なくとも１つを含む、請求項１２に記載の方法。
【請求項１５】
前記プロセッサが、前記対象の装置の製品寿命サイクルを通して前記対象の装置の前記特性を判断するよう構成された、請求項１２に記載の方法。
【請求項１６】
前記コードのセットが前記対象の装置の一部分を始動させる、請求項１２に記載の方法。
【請求項１７】
前記第１のサイドチャネル情報が、プログラム実行ステータス、電力シグネチャ信号、電磁放射、電流、電圧、温度、振動、光、遅延、インピーダンス、振動、圧力、または全地球測位システム座標のうち少なくとも１つを含む、請求項１２に記載の方法。
【請求項１８】
前記対象の装置の前記特性が、正当性ステータス、前記電子装置内に含まれる回路の老朽化ステータス、前記回路の製造工場の素性、前記回路の前記製造工場の地理的情報、前記回路のレイアウト、マルウェア、権限を与えられていないハードウェア変更、環境誘発故障モード、回路誘発故障モード、ソフトウェアアップデートステータス、またはファームウェアアップデートステータスのうち少なくとも１つを含む、請求項１２に記載の方法。
【請求項１９】
機器に関連するサイドチャネル情報を捕捉するよう構成されたサイドチャネルセンサと、
前記サイドチャネルセンサおよびメモリに作動可能に接続され、前記メモリからコードのセットを取得し前記コードのセットを実行するよう構成されたプロセッサと、を備え、
前記プロセッサが、前記コードのセットを実行する前記プロセッサに応え、前記サイドチャネルセンサから第１のサイドチャネル情報を受信するよう構成され、
前記プロセッサが、前記コードのセットに応え、シミュレーションされた装置に関連する第２のサイドチャネル情報を決定するよう構成され、前記シミュレーションされた装置は予め決定された特性を有し、
前記プロセッサが、前記第１のサイドチャネル情報の識別力のある特徴と前記第２のサイドチャネル情報の識別力のある特徴を比較し、前記シミュレーションされた装置の前記予め決定された特性に基き前記機器の特性を判断するよう構成され、
前記プロセッサが、ユーザ・インタフェースへ前記機器の前記特性に関連する第２の信号を送信するよう構成された、
機器。
【請求項２０】
前記信号が第１の信号であり、前記メモリが第１のメモリであり、前記シミュレーションされた装置が第１のシミュレーションされた装置であり、前記予め決定された特性が第１の予め決定された特性であり、前記機器の前記特性が前記機器の第１の特性であり、
前記プロセッサが、前記機器の外部の第２のメモリに作動可能に接続されるよう構成され、
前記プロセッサが、前記第２のメモリから、（１）第２のシミュレーションされた装置および（２）前記コードのセットに関連する第３のサイドチャネル情報を取得するよう構成され、前記第２のシミュレーションされた装置が第２の予め決定された特性を有し、
前記プロセッサが、前記第１のサイドチャネル情報の前記識別力のある特徴と前記第３のサイドチャネル情報の識別力のある特徴を比較し、前記第２のシミュレーションされた装置の前記第２の予め決定された特性に基き前記機器の第２の特性を判断するよう構成され、
前記プロセッサが、前記ユーザ・インタフェースへ前記機器の前記第２の特性に関連する第２の信号を送信するよう構成された、
請求項１９に記載の機器。
【請求項２１】
前記プロセッサが、前記機器の製品寿命サイクルを通して前記機器の前記特性を判断するよう構成された、請求項１９に記載の機器。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
［0001］  本出願は、２０１５年１２月２日出願の米国仮特許出願シリアル番号第６２／２６２，１８１号の優先権を主張する。
【０００２】
［0002］  本出願は、米国特許法§３７１条（ｃ）項の日付が２０１３年８月１５日である米国特許出願シリアル番号第１３／８８３，１０５号（米国特許第９，２６２，６３２号）“Ｕｓｉｎｇ  Ｐｏｗｅｒ  Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ（ＰＦＰ）  Ｔｏ  Ｍｏｎｉｔｏｒ  Ｔｈｅ  Ｉｎｔｅｇｒｉｔｙ  Ａｎｄ  Ｅｎｈａｎｃｅ  Ｓｅｃｕｒｉｔｙ  Ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｂａｓｅｄ  Ｓｙｓｔｅｍｓ”に関連する。
【０００３】
［0003］  本出願は、２０１５年５月２２日出願の米国特許出願シリアル番号第１４／７２０，４９７号（米国特許第９，２６８，９３８号）“Ｓｙｓｔｅｍｓ，Ｍｅｔｈｏｄｓ，ａｎｄ  Ａｐｐａｒａｔｕｓｅｓ  Ｆｏｒ  Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ａｎｄ  Ａｎａｌｙｔｉｃｓ  Ｕｓｉｎｇ  Ｐｏｗｅｒ  Ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ  Ｓｕｃｈ  Ａｓ  Ｓｉｄｅ−Ｃｈａｎｎｅｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｏｌｌｅｃｔｉｏｎ”に関連する。
【０００４】
［0004］  前述の出願の内容は、それらの全体が参照により本明細書に組み込まれる。
【背景技術】
【０００５】
［0005］  本明細書に記載されているいくつかの実施形態は、一般的に符号解析の方法および機器に関する。特に、しかし限定する目的ではなく、本明細書に記載されているいくつかの実施形態は、電子装置のサプライチェーンを検証する符号解析においてサイドチャネル情報を用いる方法および機器に関する。
【０００６】
［0006］  集積回路を有する電子装置を製作するとき、その電子装置を記述するコンピュータコード（例えば超高速集積回路ハードウェア記述言語（ＶＨＤＬ））を、製作のため製造工場に送信することが可能である。製作プロセスの間、ハードウェアのトロイの木馬（例えば集積回路の回路の悪意のある修正）が電子装置に挿入されることがありうる。電子装置が権限を与えられた製造工場で製造されず、電子装置の望まない相違（例えばレイアウト、老朽化した構成要素など）をもたらすこともまたありうる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
［0007］  シミュレーション、機能分析、または目視検査のような技術が、製造工場で製作された電子装置の評価に使用されてきた。しかし、シミュレーションを用いてレイアウトおよび／または製作の詳細を検出するのは困難である。機能分析（例えば、入力のもとで電子装置の予想される出力を測定する）は、たとえ構成要素が機能テストに合格しても、電子装置が正規の製造工場で製造されたかどうか、または古いまたは再使用された構成要素が製作中に使用されたかどうかを判断できない。目視検査はしばしば、容器を取り除きレイアウトを見るような破壊的検査を含む。
【０００８】
［0008］  従って、非破壊的方法で、製造工場で製作された電子装置のサプライチェーンを検証する方法および機器のニーズが存在する。
【課題を解決するための手段】
【０００９】
［0009］  本明細書に記載されているいくつかの実施形態は、メモリおよびメモリに作動可能に接続されたプロセッサを有する機器を含む。プロセッサは電子装置に接続されるよう構成され、それは予め決定された特性を持つ。プロセッサは、電子装置により実行されるコードのセットに関連する信号を電子装置へ送信し、コードのセットを実行する電子装置に応え、電子装置に関連する第１のサイドチャネル情報を受信するよう構成される。それからプロセッサは、第１のサイドチャネル情報および電子装置に基きシミュレーションされた装置を形成するよう構成される。シミュレーションされた装置は、電子装置をシミュレーションする。その後プロセッサは、シミュレーションされた装置に基き、およびコードのセットに応え、第２のサイドチャネル情報を決定するよう構成される。第１のサイドチャネル情報の識別力のある特徴および第２のサイドチャネル情報の識別力のある特徴が実質的に合致するように、プロセッサは、シミュレーションされた装置に関連するパラメータのセットを決定するよう構成される。プロセッサは、シミュレーションされた装置およびパラメータのセットをメモリ内に格納するよう構成される。
【００１０】
［0010］  本明細書に記載されているいくつかの実施形態は、符号解析においてサイドチャネル情報を用いて電子装置のサプライチェーンを検証する方法を含む。方法は、対象の装置へ、対象の装置により実行されるコードのセットに関連する第１の信号を送信することと、それからコードのセットを実行する対象の装置に応え、対象の装置に関連する第１のサイドチャネル情報を受信することを含む。方法はまた、コードのセットに応え、シミュレーションされた装置に関連する第２のサイドチャネル情報を決定することを含む。シミュレーションされた装置は、予め決定された特性を有する。方法はさらに、第１のサイドチャネル情報の識別力のある特徴と第２のサイドチャネル情報の識別力のある特徴を比較し、シミュレーションされた装置の予め決定された特性に基き対象の装置の特性を判断することを含む。最後に方法は、ユーザ・インタフェースへ対象の装置の特性に関連する第２の信号を送信することを含む。
【図面の簡単な説明】
【００１１】
【図１】［0011］実施形態によるサプライチェーン検証コントローラの態様を示す概略図である。
【図２】［0012］実施形態によるサプライチェーン検証モデル設計のプロセスを示すフローチャートである。
【図３】［0013］実施形態による電子装置のサプライチェーンを検証するプロセスを示すフローチャートである。
【発明を実施するための形態】
【００１２】
［0014］  本明細書に記載されているいくつかの実施形態は、メモリおよびメモリに作動可能に接続されたプロセッサを有する機器を含む。プロセッサは電子装置に接続されるよう構成され、それは予め決定された特性を持つ。プロセッサは、電子装置により実行されるコードのセットに関連する信号を電子装置へ送信し、コードのセットを実行する電子装置に応え、電子装置に関連する第１のサイドチャネル情報を受信するよう構成される。それからプロセッサは、第１のサイドチャネル情報および電子装置に基きシミュレーションされた装置を形成するよう構成される。シミュレーションされた装置は、電子装置をシミュレーションする。その後プロセッサは、シミュレーションされた装置に基き、およびコードのセットに応え、第２のサイドチャネル情報を決定するよう構成される。第１のサイドチャネル情報の識別力のある特徴および第２のサイドチャネル情報の識別力のある特徴が実質的に合致するように、プロセッサは、シミュレーションされた装置に関連するパラメータのセットを決定するよう構成される。プロセッサは、シミュレーションされた装置およびパラメータのセットをメモリ内に格納するよう構成される。
【００１３】
［0015］  本明細書に記載されているいくつかの実施形態は、符号解析でサイドチャネル情報を用いて電子装置のサプライチェーンを検証する方法を含む。方法は、対象の装置へ、対象の装置により実行されるコードのセットに関連する第１の信号を送信することと、それからコードのセットを実行する対象の装置に応え、対象の装置に関連する第１のサイドチャネル情報を受信することを含む。方法はまた、コードのセットに応え、シミュレーションされた装置に関連する第２のサイドチャネル情報を決定することを含む。シミュレーションされた装置は、予め決定された特性を有する。方法はさらに、第１のサイドチャネル情報の識別力のある特徴と第２のサイドチャネル情報の識別力のある特徴を比較し、シミュレーションされた装置の予め決定された特性に基き対象の装置の特性を判断することを含む。最後に方法は、ユーザ・インタフェースへ対象の装置の特性に関連する第２の信号を送信することを含む。
【００１４】
［0016］  本明細書で使用されるモジュールまたはエンジンは、例えばあらゆるアセンブリ、命令および／または作動可能に接続された電気構成要素のセットであることが可能であり、例えばメモリ、プロセッサ、電気トレース、光学コネクタ、（ハードウェア内で実行する）ソフトウェアなどを有することが可能である。
【００１５】
［0017］  本明細書で使用される単数形「１つ」、「１つの」および「その」は、文脈が明らかに他を述べていない限り複数の指示対象を含む。よって、例えば「１つの電子装置」は、単一の電子装置または複数の電子装置を意味するよう意図される。他の例で「１つのパラメータ」の語は、単一のパラメータまたは複数のパラメータを意味しうる。
【００１６】
［0018］  本明細書中に開示される実施形態は、製作情報、異常（１つまたは複数）（例えば、性能異常（１つまたは複数）、電力消費量異常（１つまたは複数）、出力異常（１つまたは複数）など）、悪意のある侵入、権限を与えられていない修正、および重要な組込システム、コプロセッサ、およびフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含むデジタル回路およびコンピュータベースシステム内での改竄を検出可能なサプライチェーン検証システムに関する。場合によって、物理的サイドチャネル（例えば、電力消費量、電磁放射、および電流、電圧、温度、振動、光、遅延、インピーダンス、振動、圧力、または全地球測位システム座標などのような他の物理信号のようなプログラム実行の間接的な分量）を、モニタを用いて対象のプロセッサシステム（例えばデジタル回路またはコンピュータシステム）内の実行ステータスを評価し、権限を与えられていない実行が対象の装置またはシステムの正常な動作を妨げ、または変更しようとするときに検出するよう使用可能である。このプログラム実行異常を検出するプロセスを、本明細書では「フィンガープリンティング」または「符号解析」と呼ぶ。フィンガープリンティングを実行する方法および機器をフィンガープリンティングシステムまたは符号システムと呼ぶことができ、それは多数の異なる方法および形態で実施可能である。場合によって、そのような符号解析は、対象の装置またはシステムの動作異常を検出するのに、例えば物理的サイドチャネルを使用可能である。符号システムの例は、米国特許法§３７１条（ｃ）項の日付が２０１３年８月１５日である米国特許出願シリアル番号第１３／８８３，１０５号（米国特許第９，２６２，６３２号）“Ｕｓｉｎｇ  Ｐｏｗｅｒ  Ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ（ＰＦＰ）  Ｔｏ  Ｍｏｎｉｔｏｒ  Ｉｎｔｅｇｒｉｔｙ  Ａｎｄ  Ｅｎｈａｎｃｅ  Ｓｅｃｕｒｉｔｙ  Ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｂａｓｅｄ  Ｓｙｓｔｅｍｓ”に述べられている。サイドチャネルモニタリングシステムの例は、２０１５年５月２２日出願の米国特許出願シリアル番号第１４／７２０，４９７号（米国特許第９，２６８，９３８号）“Ｓｙｓｔｅｍｓ，Ｍｅｔｈｏｄｓ，ａｎｄ  Ａｐｐａｒａｔｕｓｅｓ  Ｆｏｒ  Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ａｎｄ  Ａｎａｌｙｔｉｃｓ  Ｕｓｉｎｇ  Ｐｏｗｅｒ  Ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ  Ｓｕｃｈ  Ａｓ  Ｓｉｄｅ−Ｃｈａｎｎｅｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｏｌｌｅｃｔｉｏｎ”に述べられている。
【００１７】
［0019］  図１は、実施形態によるサプライチェーン検証コントローラの態様を示す概略図である。サプライチェーン検証コントローラ１００を、電子回路（１つまたは複数）および／または電子装置（１つまたは複数）（以下装置または電子装置と表す）の製作および／またはサプライチェーン情報を判断するよう構成することが可能である。電子回路（１つまたは複数）は、例えば重要な組込システム、コプロセッサおよびフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を有することが可能である。電子装置（１つまたは複数）は、例えばコンピュータ、携帯電話、デジタルカメラ、タブレット、電気回路基板および／または電子構成要素を有することが可能である。電子装置（１つまたは複数）は、アナログ回路および／またはデジタル回路を有することが可能である。場合によって、電子回路（１つまたは複数）および電子装置（１つまたは複数）を、容器内に密閉することが可能である。製作および／またはサプライチェーン情報は、例えば正当性ステータス（例えば信頼された装置または非認定装置）、製造工場の素性、製造工場の地理的情報、電子装置のレイアウト、寄生容量、伝播遅延、老朽化、ソフトウェア／ファームウェアのアップデート、環境または回路誘発故障モードのような電子装置内の自然に起こる変化、マルウェア、権限を与えられていないアップデート、権限を与えられていないハードウェア変更などを含む。サプライチェーン検証コントローラ１００をまた、その製品寿命サイクルを通して電子装置を監視し特徴付けるよう構成することが可能である。例えば、サプライチェーン検証コントローラ１００を、老朽化、ソフトウェア／ファームウェアのアップデート、環境または回路誘発故障モードのような装置内の自然に起こる変化、およびマルウェア、権限を与えられていないアップデート、権限を与えられていないハードウェア変更および／などのような装置内の不自然に起こる変化を監視し特徴付けるよう構成することが可能である。サプライチェーン検証コントローラ１００をまた、前述の特性の１つまたは複数に基き、装置異常（１つまたは複数）（例えば偽造）を検出または識別するよう構成することが可能である。
【００１８】
［0020］  いくつかの実施で、サプライチェーン検証コントローラ１００は、電子装置（１つまたは複数）（または対象の装置（１つまたは複数））の外部の物理装置であることが可能である。他の実施で、サプライチェーン検証コントローラ１００は、対象の装置内の構成要素である、または対象の装置のチップ上にあることが可能である。そのような実装で、サプライチェーン検証コントローラ１００は、本明細書に記載されたサプライチェーン検証プロセスを、それが位置する対象の装置またはチップで実行可能である。これは、外部のプロセスまたは装置が本明細書に記載されたサプライチェーン検証プロセスの実行に関与する必要がないように、サプライチェーン検証プロセスが対象の装置またはチップ内で自己充足されることを可能にする。サプライチェーン検証コントローラ１００が対象の装置のチップ上の構成要素であるとき、既知の正当および／または非正当の装置からのサイドチャネル情報（対象の装置のチップからのサイドチャネル応答がそれに対して比較される）もまた、チップ上に格納される。（例えば悪意のある侵入により）権限を与えられていないパーティがチップを変更するとき、既知の正当および／または非正当の装置からの参照サイドチャネル情報が許可なく変更されうる。そのような状況で、変更されたチップがテストを通過し、非正当な（または信頼性がないまたは改竄された）装置として適切に評価されるのではなく、正当な（または信頼性がある）装置として不正確に評価されるかもしれない。これを防ぐため、既知の正当なおよび／または非正当な装置からの参照サイドチャネル情報のコピーを、オンチップのコピーに加えオフチップで保持することが可能である。そのような状況で、例えば対象の装置のチップからのサイドチャネル応答を、オンチップの参照サイドチャネル情報およびオフチップの参照サイドチャネル情報と比較可能である。オフチップの参照サイドチャネル情報との比較がオンチップの参照サイドチャネル情報との比較と異なる結果を生じる場合、対象の装置のチップおよびオンチップの参照サイドチャネル情報が許可なく変更されたという判断をすることができる。
【００１９】
［0021］  図１に示されるように、サプライチェーン検証コントローラ１００は、プロセッサ１１０、メモリ１２０、通信インタフェース１９０、電気テストエンジン１３０、シミュレーションテストエンジン１４０、テスト入力セレクタ１７０、分析器１５０、および最適化エンジン１６０を有する。いくつかの実施形態では、サプライチェーン検証コントローラ１００は、単一の物理装置であることが可能である。他の実施形態では、サプライチェーン検証コントローラ１００は、（例えばネットワークに作動可能に接続された）複数の物理装置を有することが可能で、それらのそれぞれは図１に示された１つまたは複数のモジュールおよび／または構成要素を有することが可能である。
【００２０】
［0022］  サプライチェーン検証コントローラ１００内のそれぞれのモジュールまたは構成要素を、それぞれの残りのモジュールおよび／または構成要素に作動可能に接続可能である。サプライチェーン検証コントローラ１００内のそれぞれのモジュールおよび／または構成要素は、そのモジュールおよび／または構成要素に関連する１つまたは複数の特定の機能を実行可能なハードウェアおよび／または（ハードウェア内に格納および／またはハードウェア内で実行される）ソフトウェアのあらゆる組み合わせであることが可能である。
【００２１】
［0023］  メモリ１２０は例えば、ランダムアクセスメモリ（ＲＡＭ）（例えばダイナミックＲＡＭ、スタティックＲＡＭ）、フラッシュメモリ、着脱可能なメモリ、ハードドライブ、データベースなどであることが可能である。いくつかの実施形態では、メモリ１２０は、例えば、データベース、プロセス、アプリケーション、仮想マシン、および／または図２に関して本明細書に記載されたサプライチェーン検証モデル設計プロセスおよび図３に関して本明細書に記載されたサプライチェーン検証モデル設計プロセス、および／または１つまたは複数の関連する方法を実行するよう構成された（ハードウェア内に格納および／またはハードウェア内で実行される）いくつかの他のソフトウェアモジュールまたはハードウェアモジュールを有することが可能である。そのような実施形態で、サプライチェーン検証モデル設計プロセスおよびサプライチェーン検証プロセスを実行する命令、および／または関連する方法を、メモリ１２０内に格納し、プロセッサ１１０において実行することが可能である。いくつかの実施形態では、例えば対象の装置に関連するデータ、その測定された特性およびそのシミュレーションされた特性を含むデータをメモリ１２０内に格納することが可能である。
【００２２】
［0024］  通信インタフェース１９０は、サプライチェーン検証コントローラ１００の１つまたは複数のポートを有すること、および／または管理するよう構成することが可能である。場合によって、例えば通信インタフェース１９０（例えばネットワークインタフェースカード（ＮＩＣ））を、他の装置（例えば図１に示されないユーザ入力装置）に作動可能に接続することが可能で、能動的に、接続された装置と、またはネットワーク上で通信する（例えばエンドユーザ装置、ホスト装置、サーバなど）と通信することが可能である。通信ネットワークは、情報（例えば、データおよび／または信号）を送信可能なあらゆるネットワークまたはネットワークの組み合わせであることが可能で、例えば電話回線網、イーサネット（登録商標）ネットワーク、光ファイバネットワーク、無線ネットワーク、および／またはセルラーネットワークを有することが可能である。通信は、Ｗｉ−Ｆｉ（登録商標）または無線ローカルエリアネットワーク（“ＷＬＡＮ”）接続、無線広域ネットワーク（“ＷＷＡＮ”）接続、および／またはセルラー接続のようなネットワーク上であってもよい。ネットワーク接続は、例えばイーサネット（登録商標）接続、デジタル加入線（“ＤＳＬ”）接続、ブロードバンド同軸接続、および／または光ファイバ接続のような有線接続であってもよい。いくつかの実施形態では、通信インタフェース１９０を、数ある機能の中でも特に、データおよび／または情報を受信し、サプライチェーン検証修正、コマンド、および／または命令を送信するよう構成することが可能である。
【００２３】
［0025］  プロセッサ１１０を、例えば通信インタフェース１９０の動作を制御、メモリ１２０内へのデータの書き込みおよびメモリ１２０からのデータの読み出し、およびメモリ１２０内に格納された命令を実行するよう構成することが可能である。プロセッサ１１０をまた、例えば本明細書でさらに詳述するように、電気テストエンジン１３０、シミュレーションテストエンジン１４０、テスト入力セレクタ１７０、分析器１５０、および最適化エンジン１６０の動作を実行および／または制御するよう構成することが可能である。いくつかの実施形態では、本明細書でさらに詳述するように、プロセッサ１１０の制御下、およびメモリ１２０内に格納された方法またはプロセスに基き、電気テストエンジン１３０、シミュレーションテストエンジン１４０、テスト入力セレクタ１７０、分析器１５０、および最適化エンジン１６０を、サプライチェーン検証モデル設計プロセスおよびサプライチェーン検証プロセスを実行するよう構成することが可能である。
【００２４】
［0026］  電気テストエンジン１３０、シミュレーションテストエンジン１４０、テスト入力セレクタ１７０、分析器１５０、および最適化エンジン１６０のそれぞれは、サプライチェーン検証コントローラ１００内のハードウェアモジュール（例えば重要な組込システム、コプロセッサ、およびフィールドプログラマブルゲートアレイ（ＦＰＧＡ））、および／または（例えばメモリ１２０のようなメモリ内に格納され、および／またはプロセッサ１１０のようなハードウェア内で実行する）ソフトウェアモジュールであることが可能である。サプライチェーン検証コントローラ１００内の電気テストエンジン１３０、シミュレーションテストエンジン１４０、テスト入力セレクタ１７０、分析器１５０、および最適化エンジン１６０のそれぞれを、それぞれの残りのモジュールおよび／または構成要素に作動可能に接続可能である。
【００２５】
［0027］  電気テストエンジン１３０は、与えられた入力または与えられた入力のセットのもとで１つまたは複数のサイドチャネルセンサ１３５を用いて電子装置のサイドチャネル情報を測定するよう構成された検出器（図１に図示せず）を有することが可能である。電子装置のサイドチャネル情報は、例えばプログラム実行ステータス、電力シグネチャ信号、電磁放射、電流、電圧、温度、振動、光、遅延、インピーダンス、振動、圧力、または全地球測位システム座標を含む。電子装置は、既知の信頼性がある（または正当な／権限を与えられた）装置、または既知の偽造（または非正当な／権限を与えられていない）装置、または対象の（または既知でない）装置であることが可能である。入力または入力のセットを、テスト入力セレクタ１７０により提供可能である。電気テストエンジン１３０もまた、測定されたサイドチャネル情報の処理のため、アナログプロセッサ、アナログ−デジタル変換器（ＡＤＣ）、およびデジタル信号プロセッサを有することが可能である。例えば、電気テストエンジン１３０はアナログプロセッサおよび／またはＡＤＣに接続されたサイドチャネルセンサ１３５／検出器を有することが可能であり、それが次にデジタル信号プロセッサに接続される。アナログプロセッサは、サイドチャネルセンサ１３５／検出器からのサイドチャネル情報を受信し、アナログデータをデジタル信号に変換するためサイドチャネル情報をＡＤＣへ送信する前に、信号処理および処理（例えばデジタル化の必要がない無関係な情報を減少させる）を実行可能である。デジタル信号プロセッサは、ＡＤＣにより変換されたデジタル信号を受信し、周波数領域分析のためのデジタル化された信号の周波数領域の成分を生成可能である。デジタル化された信号をまた、後の処理のために格納、または処理のために分析器１５０に転送してもよい。代わりに、サイドチャネルセンサはサプライチェーン検証コントローラ１１０から離れていることが可能であり、その検出されたセンサデータを、さらなる処理のため電気テストエンジン１３０へ送信可能である。
【００２６】
［0028］  シミュレーションテストエンジン１４０は、シミュレーションされた装置（すなわち対象の装置をシミュレーションするモデルで最適化エンジン１６０により定義される）に基き、与えられた入力または与えられた入力のセットのもとでサイドチャネル情報をシミュレーション可能である。モデリングを、行動（すなわち機能）レベルまたは回路レベルにおいて実行可能であり、多数の回路シミュレーションプログラムを採用可能である。そのようなシミュレーションプログラムは、例えば予測されるワット損、電流／電圧フロー、タイミングまたは遅延、熱の生成ならびに他の特性を推定可能である。入力または入力のセットをまた、テスト入力セレクタ１７０によりシミュレーションテストエンジン１４０へ提供可能である。最適化エンジン１６０は、シミュレーションされた装置をシミュレーションテストエンジン１４０へ提供可能である。テスト入力セレクタ１７０により提供された入力（例えばコードのリスト）をモデルに適用することにより、シミュレーションテストエンジン１４０は入力（またはコードのリスト）ならびにそれぞれの入力に関連するサイドチャネル情報の機能を評価する出力のセットを生成可能である。
【００２７】
［0029］  分析器１５０は、様々な信号処理アプローチを実行し、電気テストエンジン１３０により捕捉され、および／またはシミュレーションテストエンジン１４０により識別されたサイドチャネル情報から識別力のある特徴（本明細書では特性とも呼ぶ）を抽出する。特徴抽出は、例えば共振周波数、吸収周波数、偏波、調波反射、反射到達時間および／または信号強度の分析を含むことが可能である。１つの実施形態では、比較結果が最適化エンジン１６０に送信され、シミュレーションテスト内で使用されるモデル（１つまたは複数）を最適化し、テスト入力セレクタ１７０により提供される入力ベクトルを最適化するように、分析器１５０は、電気テストから、および基準装置のシミュレーションテストからのサイドチャネル情報の識別力のある特徴を、（既知の信頼性がある／権限を与えられた装置または既知の偽造／権限を与えられていない装置のような予め決定された特性と）比較可能である。
【００２８】
［0030］  別の実施形態では、分析器１５０は、対象の装置からのサイドチャネル情報の識別力のある特徴と、予め決定された特性を有するシミュレーションされた装置からのそれを比較可能である。予め決定された特性は、正当性のステータス（例えば信頼性がある装置または権限を与えられていない装置）、製造工場の素性、製造工場の地理的情報、シミュレーションされた装置のレイアウト、寄生容量、伝播遅延、老朽化、ソフトウェア／ファームウェアのアップデート、環境または回路誘発故障モードなどのようなシミュレーションされた装置内の自然に起こる変化、マルウェア、権限を与えられていないアップデート、権限を与えられていないハードウェア変更などを含むがそれらに限定されない、シミュレーションされた装置の製作および／またはサプライチェーン情報に関連するあらゆる情報を含むことが可能である。シミュレーションされた装置の予め決定された特性は、分析および／または測定結果を通して、例えば基準装置の大規模サンプルサイズのビッグデータ分析技術の使用により、決定可能である。そのような実施形態で、対象の装置からのサイドチャネル情報を電気テストで取り出すことが可能であり、シミュレーションされた装置（１つまたは複数）からのサイドチャネル情報を格納するメモリ１２０から取得可能である。分析器１５０は、対象の装置からのサイドチャネル情報の識別力のある特徴と予め決定された特性を有するシミュレーションされた装置からの識別力のある特徴を比較可能であり、シミュレーションされた装置の予め決定された特性に基き、対象の装置の特性を判断可能である。場合によって、分析器１５０はさらに、対象の装置のあらゆる製作／サプライチェーン情報の可能性を示す統計分析を生成可能である。分析器１５０は、通信インタフェース１９０へ、対象の装置の特性に関連する（例えば表すまたは示す）信号を送信可能である。
【００２９】
［0031］  最適化エンジン１６０は、基準装置（１つまたは複数）（例えば、既知の権限を与えられた装置または既知の権限を与えられていない装置）のサイドチャネル情報に基き、対象の（未認識の）装置をシミュレーションし、対象の装置のサプライチェーン情報（例えば、正当性ステータス（例えば、信頼性のあるまたは権限を与えられていない装置）、製造工場の素性、製造工場の地理的情報など）を予測するシミュレーションされた装置（すなわち対象の装置をシミュレーションするモデル）を開発可能である。モデリングを、行動（すなわち機能）レベルまたは回路レベルにおいて実行可能であり、多数の回路シミュレーションプログラムを採用可能である。そのようなシミュレーションプログラムは、例えば予測されるワット損、電流／電圧フロー、タイミングまたは遅延、熱の生成ならびに他の特性を推定可能である。１つの実施で、最適化エンジン１６０は、電気テスト（１つまたは複数）のもとで測定された基準装置（１つまたは複数）のサイドチャネル情報の外挿に基き、シミュレーションされた装置を開発可能である。基準装置に基きシミュレーションされた装置が開発されると、対象の装置に関連する様々な製作プロセスを考慮し、対象の装置のサプライチェーン情報の予測を向上するよう、シミュレーションされた装置に関連するパラメータを調整可能である。
【００３０】
［0032］  シミュレーションされた装置をまた、与えられた入力または与えられた入力のセットのもとでシミュレーションされた装置のサイドチャネル情報をシミュレーションするよう、シミュレーションテストエンジン１４０により使用可能である。それからシミュレーションされたサイドチャネル情報を、分析器１５０により測定されたサイドチャネル情報と比較し、対象の装置のあらゆる製作／サプライチェーン情報の確率を示す統計分析を提供することが可能である。他の実施で、最適化エンジン１６０は、電気テストから、および基準装置のシミュレーションテストからのサイドチャネル情報の比較に基きモデルの性能を最適化するよう、モデルパラメータを調整可能である。シミュレーションテストからのサイドチャネル応答の識別力のある特徴が、電気テストからのそれと実質的に合致するように、最適化エンジン１６０は、モデルパラメータ（例えば伝播遅延、寄生回路、インピーダンス（例えば抵抗）、駆動電力、駆動電圧、駆動電流、クロック、外部負荷または製作情報など）を調整可能である。シミュレーションテストからのサイドチャネル応答が、電気テストからのそれと実質的に合致するとき、シミュレーションテストおよび電気テストのいくつかの識別力のある特徴の違いは、予め規定された範囲（例えば閾値）内である。さらに他の実施で、異なるテスト入力ベクトルが与えられると異なるサイドチャネル応答が測定可能なように、最適化エンジン１６０は、テスト入力セレクタ１７０により提供される入力ベクトルを調整可能である。
【００３１】
［0033］  テスト入力セレクタ１７０は、電子装置全体を始動する、または特に電子装置の部分（例えば電子装置の全体に満たない）に集中（または始動する）電気テストおよびシミュレーションテストの両方についての入力（または入力ベクトル）を選択可能である。入力は、電子装置上で実行されるコードを含むことが可能である。１つの実施で、例えばユーザまたはテストエンジニアは、特定のテスト入力を指定可能である。代わりにテスト入力セレクタ１７０は、予め定義済の入力のリストを有し、予め定義済の順序でそれらを選択可能である。他の例では、先に述べたように、入力を最適化エンジン１６０によりテスト入力セレクタ１７０へ提供することが可能である。
【００３２】
［0034］  使用中、実施形態によれば、サプライチェーン検証コントローラ１００は、入力（１つまたは複数）が与えられると対象の装置のサイドチャネル応答を予測するよう、シミュレーションされた装置（すなわち対象の装置をシミュレーションするモデル）を開発および最適化可能である。特に電気テストエンジン１３０は、予め決定された特性のセットを有する既知の装置（または基準装置）の範囲のサイドチャネル応答を受信可能である。予め決定された特性のセットは、例えば正当性のステータス、基準装置内に含まれる回路の老朽化ステータス、回路の製造工場の素性、回路の製造工場の地理的情報、回路のレイアウト、マルウェア、権限を与えられていないハードウェア変更、環境誘発故障モード、回路誘発故障モード、ソフトウェアアップデートステータス、またはファームウェアアップデートステータスを含む。基準装置の範囲は、例えば製作後の年数、製造工場、および正当性のような異なる製作状況およびサプライチェーン情報を表す。これらのサイドチャネル応答を分析器１５０により外挿し、様々な製作および／またはサプライチェーン情報を示す予め決定された特性を考慮したシミュレーションされた装置を形成してもよい。例えば、徐々に半導体のバイアス特性は変化するかもしれず、この進行を老朽化と共に観察し曲線適合を用いることにより、半導体のバイアス特性をある将来の日について予測可能である。
【００３３】
［0035］  シミュレーションテストエンジン１４０は、与えられた入力または与えられた入力のセットのもとで、モデルに基きシミュレーション方法を用いて既知の装置（１つまたは複数）のサイドチャネル情報を測定可能である。入力または入力のセットを、既知の装置全体を始動する、または特に既知の装置のハードウェアおよび／またはソフトウェアの部分に集中する（または始動する）よう、テスト入力セレクタ１７０により選択することが可能である。電気テストエンジン１３０およびシミュレーションテストエンジン１４０からのサイトチャネル応答を分析器１５０へ送信可能であり、それがそのような信号を処理し、両方のテストからサイトチャネル応答の識別力のある特徴を抽出する（または識別する）。分析器１５０は、両方のテストからのサイトチャネル応答の識別力のある特徴を比較し、比較結果を最適化エンジン１６０へ送信可能である。それから、シミュレーションテストからのサイドチャネル応答の識別力のある特徴が、電気テストからのそれと実質的に合致するように、最適化エンジン１６０は、モデルパラメータ（例えば伝播遅延、寄生回路、インピーダンス（例えば抵抗）、駆動電力、駆動電圧、駆動電流、クロック、外部負荷または製作情報など）を調整可能である。これは、シミュレーションされた装置の最適化、および異常および寄生容量、レイアウトによる伝播遅延などのような製作情報の識別を補助可能である。分析器１５０により作成された、シミュレーションされた装置（またはモデル）を、正当な／権限を与えられた装置、ならびに非正当な／権限を与えられていない装置について形成することが可能である。装置の年数の予測の補助に、識別されたモデルパラメータもまた使用可能である。最適化エンジン１６０はまた、テスト入力セレクタ１７０によるシミュレーションテストおよび電気テストのため既知の装置に加えられる入力ベクトルを調整可能である。シミュレーションテストおよび電気テストからのサイドチャネル情報の記録プロセス、モデルパラメータおよびテストベクトルの比較および最適化を、種々のグレードの情報（例えば全体の電力消費量または微細部分の電力消費量）を含む比較基準が予め規定された閾値に合致するまで、繰り返して実行可能である。
【００３４】
［0036］  使用中、サプライチェーン検証コントローラ１００はまた、対象の装置の特性を判断するよう対象の装置を評価可能である。対象の装置の特性は、例えば正当性のステータス（例えば信頼性がある装置または権限を与えられていない装置）、製造工場の素性、製造工場の地理的情報、対象の装置のレイアウト、寄生容量、伝播遅延、老朽化、ソフトウェア／ファームウェアのアップデート、環境または回路誘発故障モードなどのような対象の装置内の自然に起こる変化、マルウェア、権限を与えられていないアップデート、権限を与えられていないハードウェア変更などを含む。サプライチェーン検証コントローラ１００はまた、その製品寿命サイクルを通して、対象の装置を監視および特徴付けが可能である。対象の装置の製品寿命サイクルは、例えば、老朽化、ソフトウェア／ファームウェアのアップデート、環境または回路誘発故障モードのような対象の装置内の自然に起こる変化、およびマルウェア、権限を与えられていないアップデートおよびハードウェア変更のような対象の装置内の不自然に起こる変化を含む。
【００３５】
［0037］  特にテスト入力セレクタ１７０は、対象の装置のハードウェア／ソフトウェアの領域を始動する入力のセットを提供可能である。電気テストエンジン１３０は、入力のセットのもとで対象の装置のサイドチャネル情報を測定（またはサイドチャネルセンサ１３５から受信）可能である。テスト入力セレクタ１７０はまた、入力のセットをシミュレーションテストエンジン１４０へ提供可能である。シミュレーションテストエンジン１４０は、シミュレーションされた装置（すなわち対象の装置をシミュレーションするモデル）、およびメモリ１２０（またはサプライチェーン検証コントローラ１００の外部のメモリ）に格納されたその関連する特性（例えば製作情報および／またはサプライチェーン情報）を取得可能である。シミュレーションテストエンジン１４０は、入力のセットのもとでシミュレーションされた装置サイドチャネル情報を決定し、そのようなサイドチャネル情報を分析器１５０へ送信可能である。
【００３６】
［0038］  分析器１５０が、対象の装置のサイドチャネル情報の識別力のある特徴とシミュレーションされた装置のサイドチャネル情報の識別力のある特徴を抽出（または識別）すると、分析器１５０は、対象の装置のサイドチャネル情報の識別力のある特徴とシミュレーションされた装置のサイドチャネル情報の識別力のある特徴を比較し、シミュレーションされた装置の予め決定された特性に基き対象の装置の特性を判断可能である。場合によって、分析器１５０は、対象の装置の特性の確率を示す統計分析を提供可能である。例えば、シミュレーションされた装置の識別力のある特徴が対象の装置の識別力のある特徴と合致（または実質的に合致）できない場合、分析器１５０は、対象の装置が権限を与えられていない装置または欠陥装置でありそうだと判断してもよい。それから分析器１５０は、ユーザ・インタフェースへ対象の装置の特性に関連する（例えば表すまたは示す）信号を送信可能である。場合によって、シミュレーションされた装置の識別力のある特徴が対象の装置の識別力のある特徴と合致（または実質的に合致）しうるが、しかしシミュレーションされた装置の予め決定された特性は予想される製作または老朽化プロセスについて低い確率を有するかもしれない。そのような場合、分析器１５０は、対象の装置が権限を与えられていない装置または欠陥装置でありそうだと判断することが可能である。分析器はまた、ユーザ・インタフェースへ、対象の装置の推定される老朽化特性および／または対象の装置の過去のサイドチャネル測定結果を送信可能である。
【００３７】
［0039］  分析器１５０はさらに、予想されるサイトチャネル応答（および／またはそれらのモデル）および種々の回路、設計、製作製造工場、および装置の年数についての統計特性（または特性）のライブラリを形成することが可能である。いくつかの実施で、サプライチェーン検証コントローラ１００（例えば分析器１５０）は、機能検査または目視検査のような機能または目視検査のような他のテスト結果のサイトチャネル応答の要素と関連し、サイトチャネル応答が他の異常な行動または装置問題と関連するメカニズムをよりよく識別することが可能である。サプライチェーン検証コントローラ１００は、その製品の寿命サイクルを通して、誕生から終末まで、老朽化、ソフトウェア／ファームウェアのアップデート、環境または回路誘発故障モードのような対象の装置内の自然に起こる変化、およびマルウェア、権限を与えられていないアップデートおよびハードウェア変更のような不自然に起こる変化についての対象の装置のサイドチャネル情報を監視および特徴付けることが可能である。いくつかの実施で、対象の装置が特定のタイプの攻撃・欠陥にさらされやすい、または装置のフォレンジクスを補助するケースを使用するとき、サプライチェーン検証コントローラ１００は、サイトチャネル応答についての特定のモデルを形成可能である。
【００３８】
［0040］  １つの実施形態では、分析器１５０が対象の装置の特性の確率を示す統計分析を提供すると、応答発生器（図１に図示せず）を、対象の装置が正当である特性の確率に応え、対象の装置に影響する自動アクションを起動させるよう構成可能である。いくつかのアクション／応答は、対象の装置が非正当と判断されるときの修復、対象の装置の既知の状態への回復、オンチップまたはオフチップの失敗したテストの格納、対象の装置の回路機能の変更、他の装置の始動、対象の装置の制御ポートの無効化、ユーザへの対象の装置のステータスおよび／またはテスト情報の通知、再起動および仮想化再開に関する対象の装置の誘発、追加の情報／分析、フォレンジクス目的のデータ収集、侵入を見分けるためのブラックリストに関するデータ収集などを含むが、それらに限定されない。
【００３９】
［0041］  使用中、いくつかの実施で、サプライチェーン検証コントローラ１００は対象の装置内の構成要素、または対象の装置のチップ上にあることが可能である。そのような実施で、サプライチェーン検証コントローラ１００は、対象の装置上、または中にそれが位置するチップ上の、本明細書に記載されたサプライチェーン検証プロセスを実行可能である。これは、外部のプロセスまたは装置が本明細書に記載されたサプライチェーン検証プロセスの実行に関与する必要がないように、サプライチェーン検証プロセスが対象の装置またはチップ内で自己充足されることを可能にする。サプライチェーン検証コントローラ１００が対象の装置のチップ上の構成要素であるとき、基準装置（例えば、既知の正当なおよび／または非正当な装置）および／またはシミュレーションされた装置からのサイドチャネル情報、およびその関連する特性およびパラメータもまた、チップ上に格納される。（例えば悪意のある侵入により）権限を与えられていないパーティがチップを変更するとき、既知の正当および／または非正当の装置、および／またはシミュレーションされた装置からの参照サイドチャネル情報、およびその関連する特性およびパラメータが許可なく変更されうる。そのような状況で、変更されたチップが検証プロセスを通過し、非正当な（または信頼性がないまたは改竄された）装置として適切に評価されるのではなく、正当な（または信頼性がある）装置として不正確に評価されるかもしれない。これを防ぐため、既知の正当なおよび／または非正当な装置からの参照サイドチャネル情報のコピーを、オンチップのコピーに加えオフチップで保持することが可能である。シミュレーションされた装置のコピーおよびパラメータのセットのコピーを、オンチップのコピーに加えオフチップ（例えば対象の装置の外部のメモリ）で格納可能である。そのような状況で、例えば対象の装置のチップからのサイドチャネル応答を、オンチップで格納されたシミュレーションされた装置のサイドチャネル情報、およびオフチップで格納されたシミュレーションされた装置のサイドチャネル情報と比較可能である。オフチップで格納されたシミュレーションされた装置のサイドチャネル情報との比較がオンチップで格納されたシミュレーションされた装置のサイドチャネル情報との比較と異なる結果を生じる場合、対象の装置のチップ、およびオンチップで格納されたシミュレーションされた装置のサイドチャネル情報が許可なく変更されたという判断をすることができる。
【００４０】
［0042］  多くの実施形態が、電子装置の作動中のサイドチャネル情報の捕捉に関するものとして本明細書に記載されるが、別の実施形態で、外部の信号での起動中にサイドチャネル情報を電子装置から捕捉可能であることに留意されたい。そのような外部の信号は、例えば電磁干渉（ＥＭＩ）パルス、ホワイトノイズ信号および／または超広帯域信号であることが可能である。外部の信号での起動中のそのような捕捉を、電子装置が作動していないとき、または電子装置が作動しているときに実行することが可能である。
【００４１】
［0043］  図２は、実施形態によるサプライチェーン検証モデル設計のプロセスを示すフローチャートである。サプライチェーン検証モデル設計方法２００を、例えば図１に関して示されおよび記載されるサプライチェーン検証コントローラ１００のようなサプライチェーン検証コントローラにおいて実行可能である。２０２で、いくつかの実施形態では、サプライチェーン検証コントローラ（例えば図１のシミュレーションテストエンジン１４０）は、電子装置により処理される入力のセットに関連する信号を電子装置（または基準装置）へ送信する。入力のセットは、電子装置上で実行されるコードを含む。入力のセットは、電子装置全体を始動する、または特に電子装置の部分（例えば電子装置の全体に満たない）に集中（または始動）可能である。電子装置は、正当性のステータス、電子装置に含まれる回路の老朽化ステータス、回路の製造工場の素性、回路の製造工場の地理的情報、回路のレイアウト、マルウェア、権限を与えられていないハードウェア変更、環境誘発故障モード、回路誘発故障モード、ソフトウェアアップデートステータス、またはファームウェアアップデートステータスを含むが、それらに限定されない予め決定された特性を有する。
【００４２】
［0044］  ２０４で、サプライチェーン検証コントローラは、入力のセットを実行する電子装置に応え、電子装置のサイドチャネル情報を測定する。サプライチェーン検証コントローラは、サイドチャネル情報を測定するセンサ（または検出器（１つまたは複数））を有する。電子装置のサイドチャネル情報は、例えば１つまたは複数のプログラム実行ステータス、電力シグネチャ信号、電磁放射、電流、電圧、温度、振動、光、遅延、インピーダンス、振動、圧力、または全地球測位システム座標を含む。
【００４３】
［0045］  ２０６で、サプライチェーン検証コントローラは、電子装置および電子装置のサイドチャネル情報に基き、シミュレーションされた装置（すなわち電子装置をシミュレーションするモデル）を形成する。２０８で、サプライチェーン検証コントローラは、入力のセットを実行するシミュレーションされた装置に応え、シミュレーションされた装置に基きサイドチャネル情報を決定する。
【００４４】
［0046］  ２１０で、第１のサイドチャネル情報の識別力のある特徴が、第２のサイドチャネル情報の識別力のある特徴と実質的に合致するように、サプライチェーン検証コントローラは、シミュレーションされた装置に関連するパラメータのセットを決定する。サプライチェーン検証コントローラは、種々の信号処理アプローチを実行し、電子装置のサイドチャネル情報およびシミュレーションされた装置のサイドチャネル情報から識別力のある特徴を抽出する。特徴抽出は、例えば共振周波数、吸収周波数、偏波、調波反射、反射到達時間および／または信号強度の分析を含むことが可能である。シミュレーションされた装置のパラメータのセットは、例えば伝播遅延、寄生回路、インピーダンス（例えば抵抗）、駆動電力、駆動電圧、駆動電流、クロック、外部負荷または製作情報のうち少なくとも１つを含む。シミュレーションされた装置の識別力のある特徴が電子装置の識別力のある特徴に実質的に合致するとき、シミュレーションされた装置は、電子装置の予め決定された特性に対応する特徴のセットを含む。２１２で、サプライチェーン検証コントローラは、シミュレーションされた装置およびパラメータのセットをメモリ内に格納する。２１４で、サプライチェーン検証コントローラは、比較基準が予め規定された閾値に合致するまで、シミュレーションパラメータを最適化するためシミュレーションを続ける。比較基準が予め規定された閾値に合致するとき、サプライチェーン検証コントローラは、最適化されたシミュレーションされた装置および最適化されたパラメータのセットをメモリ内に格納する。
【００４５】
［0047］  図３は、実施形態による対象の装置に関するサプライチェーンの検証プロセスを示すフローチャートである。サプライチェーン検証モデル設計方法３００を、例えば図１に関して示されおよび記載されるサプライチェーン検証コントローラ１００のようなサプライチェーン検証コントローラにおいて実行可能である。３０２で、いくつかの実施形態では、サプライチェーン検証コントローラは、対象の装置により処理される入力のセットに関連する信号を対象の装置へ送信する。入力のセットは、対象の装置により実行されるコードを含む。サプライチェーン検証モデル設計方法２００と同様に、入力のセットは、電子装置全体を始動する、または特に電子装置の部分（例えば電子装置の全体に満たない）に集中（または始動）可能である。
【００４６】
［0048］  ３０４で、サプライチェーン検証コントローラは、入力のセットを実行する対象の装置に応え、対象の装置のサイドチャネル情報を受信する。３０６で、サプライチェーン検証コントローラは、コードのセットに応え、シミュレーションされた装置に関連するサイドチャネル情報を決定する。シミュレーションされた装置は、正当性のステータス、電子装置内に含まれる回路の老朽化ステータス、回路の製造工場の素性、回路の製造工場の地理的情報、回路のレイアウト、マルウェア、権限を与えられていないハードウェア変更、環境誘発故障モード、回路誘発故障モード、ソフトウェアアップデートステータス、またはファームウェアアップデートステータスを含むが、それらに限定されない予め決定された特性を有する。ステップ３０６の前に、サプライチェーン検証コントローラは、メモリからシミュレーションされた装置（および／またはそのパラメータおよび予め決定された特性）を取得する。
【００４７】
［0049］  ３０８で、サプライチェーン検証コントローラは、対象の装置のサイドチャネル情報の識別力のある特徴とシミュレーションされた装置のサイドチャネル情報の識別力のある特徴を抽出する。サプライチェーン検証コントローラはさらに、対象の装置のサイドチャネル情報の識別力のある特徴とシミュレーションされた装置のサイドチャネル情報の識別力のある特徴を比較し、シミュレーションされた装置の予め決定された特性に基き対象の装置の特性を判断する。３１０で、サプライチェーン検証コントローラは、ユーザ・インタフェースへ対象の装置の特性に関連する信号を送信する。いくつかの実施で、サプライチェーン検証コントローラは、対象の装置の特性に関連する確率値を決定する。サプライチェーン検証コントローラは、対象の装置の製品寿命サイクルを通してサプライチェーン検証モデル設計方法３００を繰り返し、老朽化、ソフトウェア／ファームウェアのアップデート、環境または回路誘発故障モードのような装置内の自然に起こる変化、およびマルウェア、権限を与えられていないアップデート、権限を与えられていないハードウェア変更のような対象の装置内の不自然に起こる変化を監視および特徴付けることが可能である。
【００４８】
［0050］  場合によって、対象の装置の特性または対象の装置の特性を有する予測された確率に基き、サプライチェーン検証コントローラは、予測された確率に応え、対象の装置に影響する自動アクションを起動させることが可能である。確率は、例えば基準装置の変化を反映する統計分布を用いることにより、推定可能である。これらの統計分布を、理論モデルを用いて決定（または推定）してもよく、または多数の基準装置にわたり測定されたデータから外挿してもよい。サプライチェーン検証コントローラは、対象の装置が非正当と判断されるときの修復、対象の装置の既知の状態への回復、オンチップまたはオフチップの失敗したテストの格納、対象の装置の回路機能の変更、他の装置の始動、対象の装置の制御ポートの無効化、ユーザへの対象の装置のステータスおよび／またはテスト情報の通知、再起動および仮想化再開に関する対象の装置の誘発、追加の情報／分析、フォレンジクス目的のデータ収集、侵入を見分けるためのブラックリストに関するデータ収集などを含むがそれらに限定されないアクション／応答を起動させることが可能である。
【００４９】
［0051］  本明細書に記載されたシステムおよび方法を、（メモリ内に格納され、および／またはハードウェア上で実行される）ソフトウェア、ハードウェア、またはそれらの組み合わせにより実行可能であることが意図される。ハードウェアモジュールは、例えば汎用プロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および／または特定用途集積回路（ＡＳＩＣ）を含んでもよい。（ハードウェア上で実行される）ソフトウェアモジュールを、Ｕｎｉｘユーティリティ、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標、例えばＥＣＭＡＳｃｒｉｐｔ６）、Ｒｕｂｙ、ＳＱＬ、ＳＡＳ（登録商標）、Ｒプログラミング言語／ソフトウェア環境、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）および他のオブジェクト指向、手続き型、または他のプログラミング言語および開発ツールを含むさまざまなソフトウェア言語（例えばコンピュータコード）で表現可能である。コンピュータコードの例は、マイクロコードまたはマイクロ命令、コンパイラにより生成されるような機械命令、ｗｅｂサービスの生成に使用されるコード、およびインタープリタを用いてコンピュータにより実行されるより高いレベルの命令を含むファイルを含むがそれらに限定されない。付加的なコンピュータコードの例は、制御信号、暗号化コード、および圧縮コードを含むがそれらに限定されない。
【００５０】
［0052］  本明細書に記載されているいくつかの実施形態は、種々のコンピュータが実行する動作を実行するためその上に命令またはコンピュータコードを有する非一過性のコンピュータ可読な媒体（非一過性のプロセッサ可読な媒体またはメモリとも呼ぶことができる）を持つ装置に関する。コンピュータ可読な媒体（またはプロセッサ可読な媒体）は、一時的な伝搬信号（例えば、空間またはケーブルのような伝達媒体上で情報を伝える伝搬電磁波）それ自体を有さないという意味から、非一過性である。媒体およびコンピュータコード（コードとも呼びうる）は、特定の目的（１つまたは複数）のために設計および構成されたものであってもよい。非一過性コンピュータ可読な媒体の例は、ハードディスク、フロッピーディスク、および磁気テープのような磁気記憶媒体、コンパクトディスク／デジタルビデオディスク（ＣＤ／ＤＶＤ）、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、およびホログラフィック装置のような光学記憶媒体、光ディスクのような光磁気記憶媒体、搬送波信号処理モジュール、および特定用途集積回路（ＡＳＩＣ）、プログラム可能な論理装置（ＰＬＤ）、読み出し専用メモリ（ＲＯＭ）およびランダムアクセスメモリ（ＲＡＭ）装置のようなプログラムコードを格納および実行するよう特に構成されたハードウェア装置を含むが、それらに限定されない。本明細書に記載された他の実施形態はコンピュータプログラム製品に関し、それは例えば本明細書で述べられた命令および／またはコンピュータコードを含むことが可能である。本明細書に記載された装置のそれぞれ、例えばサプライチェーン検証コントローラ１００、電気テストエンジン１３０、シミュレーションテストエンジン１４０、テスト入力セレクタ１７０、分析器１５０、最適化エンジン１６０は、１つまたは複数のメモリおよび／または前述のコンピュータ可読な媒体を有することが可能である。
【００５１】
［0053］  種々の実施形態を前述したが、それらは例としてのみ表現され、限定するものではないことを理解するべきである。前述の方法およびステップがある順序で起こるあるイベントを示す場合、特定のステップの順序を変更してもよい。また、ステップのいくぶんかを可能なとき並行処理で同時に、ならびに前述のように順次に実行してもよい。種々の実施形態を、特定の機能および／または構成要素の組み合わせを有するとして記載したが、本明細書に記載された実施形態のいずれかからのあらゆる機能および／または構成要素の組み合わせまたは部分的組み合わせを有する他の実施形態が可能である。さらに、種々の実施形態が特定の計算装置に関連する特定の実体を有するとして記載されたが、他の実施形態では異なる実体が他のおよび／または異なる計算装置に関連することが可能である。
【図１】
2019505871.tif 000003
【図２】
2019505871.tif 000004
【図３】
2019505871.tif 000005
【国際調査報告】
2019505871.tif 000006