(57)【特許請求の範囲】
【請求項１】
集積回路のネットリスト中のハードウェアトロイを検出する検出方法であって、
前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、
前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程と
を備えることを特徴とする検出方法。
【請求項２】
前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、
前記判断工程は、
前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断する
ことを特徴とする請求項１記載の検出方法。
【請求項３】
前記スコアは、
前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、
前記判断工程は、
前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断する
ことを特徴とする請求項２記載の検出方法。
【請求項４】
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、
前記判断工程は、
前記最大スコアが前記最大スコア閾値未満の場合、
前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断する
ことを特徴とする請求項３記載の検出方法。
【請求項５】
前記条件設定工程は、
前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、
前記判断工程は、
前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在すると判断する
ことを特徴とする請求項４記載の検出方法。
【請求項６】
集積回路のネットリスト中のハードウェアトロイを検出する処理をコンピュータに実行させるための検出プログラムであって、
前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、
前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程と
を含む処理をコンピュータに実行させることを特徴とする検出プログラム。
【請求項７】
前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、
前記判断工程は、
前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断する
ことを特徴とする請求項６記載の検出プログラム。
【請求項８】
前記スコアは、
前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、
前記判断工程は、
前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断する
ことを特徴とする請求項７記載の検出プログラム。
【請求項９】
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、
前記判断工程は、
前記最大スコアが前記最大スコア閾値未満の場合、
前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断する
ことを特徴とする請求項８記載の検出プログラム。
【請求項１０】
前記条件設定工程は、
前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、
前記判断工程は、
前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在すると判断する
ことを特徴とする請求項９記載の検出プログラム。
【請求項１１】
集積回路のネットリスト中のハードウェアトロイを検出する検出装置であって、
前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定手段と、
前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断手段と
を備えることを特徴とする検出装置。
【請求項１２】
前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記条件設定手段は、
前記複数の既知ネットリストのそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、
前記判断手段は、
前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断する
ことを特徴とする請求項１１記載の検出装置。
【請求項１３】
前記スコアは、
前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、
前記条件設定手段は、
前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、
前記判断手段は、
前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断する
ことを特徴とする請求項１２記載の検出装置。
【請求項１４】
前記条件設定手段は、
前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、
前記判断手段は、
前記最大スコアが前記最大スコア閾値未満の場合、
前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断する
ことを特徴とする請求項１３記載の検出装置。
【請求項１５】
前記条件設定手段は、
前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、
前記判断手段は、
前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在すると判断する
ことを特徴とする請求項１４記載の検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置に関する。
【背景技術】
【０００２】
近年、半導体業界においては、外部業者が情報処理装置に用いられる集積回路の製造に関わるようになったことから、集積回路の安全性が問題視されるようになっている。本来意図されていない機能（ハードウェアトロイ、以下「ＨＴ」とも記す。）を集積回路に挿入することが、第三者である外部業者において容易になったためであり、こうしたハードウェアトロイを検出することが求められている。【０００３】
一般的には、ハードウェアトロイを検出するには、対象となる情報処理装置のハードウェアトロイに関する情報が必要とされてきた。ハードウェアトロイを含まない健全な設計データを利用して、ハードウェアトロイを検出する方法が提案されている（例えば、非特許文献１参照）。例えば、製造段階において挿入されたトロイの有無は、トロイが挿入されていない健全なチップと、トロイが挿入されたチップとの間で、物理的な重さや電力量、あるいは電磁波などについての差分をとることによって判断することができる。【０００４】
しかしながら、ハードウェアトロイは、集積回路の製造段階のみならず設計段階においても挿入される可能性がある。設計段階では、製造段階の場合のような差分をとることができず、ハードウェアトロイに関する情報なしにトロイを検出する技術は未だ得られていないのが現状である。【０００５】
図１４に示すように、ハードウェアトロイ（ＨＴ）回路４６が存在する回路４０においては、例えば通常回路４２を接続する通常ネット４４の一部４８にトリガー回路４６ｂが接続され、通常ネット４４の他の一部４９にペイロード回路４６ａが接続されている。ペイロード回路４６ａは、本来意図されていない機能を有し、トリガー回路４６ｂはペイロード回路４６ａを起動する。こうしたペイロード回路４６ａとトリガー回路４６ｂとによって、ＨＴ回路４６が構成される。【０００６】
回路４０からＨＴ回路４６を完全に取り除くことができれば、ハードウェアトロイの危険性を完全に取り除くことが可能となる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】B. Cha and S. K. Gupta, “Trojan detection via delay measurements: a new approach to select paths and vectors to maximize effectiveness and minimize cost,” in Proc. Design, Automation and Test in Europe (DATE), 2013, pp. 1265-1270
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＨＴ回路４６は必ずしも明確に存在せずに通常ネット４４に融合していることもあり、ＨＴ回路４６を区別して回路４０から完全に区別することは極めて困難である。【０００９】
本発明は以上の点を考慮してなされたもので、集積回路のハードウェアトロイに関する情報を用いずに、ハードウェアトロイを検出する検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るハードウェアトロイの検出方法は、集積回路のネットリスト中のハードウェアトロイを検出する検出方法であって、前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程とを備えることを特徴とする。【００１１】
上記検出方法においては、前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、前記条件設定工程は、前記複数の既知ネットリスト中のそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、前記判断工程は、前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断することができる。【００１２】
前記スコアは、前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、前記条件設定工程は、前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、前記判断工程は、前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断することができる。【００１３】
また、前記条件設定工程は、前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、前記判断工程は、前記最大スコアが前記最大スコア閾値未満の場合、前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断することができる。【００１４】
さらに、前記条件設定工程は、前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、前記判断工程は、前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在する判断することができる。【００１５】
本発明に係るハードウェアトロイの検出プログラムは、集積回路のネットリスト中のハードウェアトロイを検出する処理をコンピュータに実行させるための検出プログラムであって、前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程とを含む処理をコンピュータに実行させることを特徴とする。【００１６】
本発明に係るハードウェアトロイの検出装置は、集積回路のネットリスト中のハードウェアトロイを検出する検出装置であって、前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定手段と、前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断手段とを備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、公知ネットリストの既知情報に基づいて得られた条件に基づき、被検ネットリスト中のトロイネットの有無を判断することにより、公知ネットリストと種類が異なるネットリストを有する集積回路にハードウェアトロイが含まれるか否かを判断することができる。したがって本発明によれば、対象となる集積回路の、ハードウェアトロイが挿入されていない健全なネットリストやハードウェアトロイに関する公知情報を用いずに、上記集積回路にハードウェアトロイが含まれるか否かを判断することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態のハードウェアトロイ検出装置の使用状態を示す図である。
【図２】本実施形態のハードウェアトロイ検出装置の構成を示すブロック図である。
【図３】Case 1の対照ネットを示す説明図である。
【図４】Case 2の対照ネットを示す説明図である。
【図５】Case 3の対照ネットを示す説明図である。
【図６】Case 4の対照ネットを示す説明図である。
【図７】Case 5の対照ネットを示す説明図である。
【図８】Case 6の対照ネットを示す説明図である。
【図９】Case 7の対照ネットを示す説明図である。
【図１０】Case 8の対照ネットを示す説明図である。
【図１１】Case 9の対照ネットを示す説明図である。
【図１２】最大一定サイクル数を説明する図である。
【図１３】ネットリスト中のハードウェアトロイの有無を判断する比較判定の処理手順を示すフローチャートである。
【図１４】ハードウェアトロイ（ＨＴ）回路を模式的に説明する図である。
【発明を実施するための形態】
【００１９】
１．全体構成
以下、図面を参照して本発明の実施の形態を詳述する。図１に示すように情報処理装置１０は、ハードウェアトロイ検出装置（以下、「検出装置」という。）２０に接続される。これにより、情報処理装置１０が備えるネットリスト（以下、「被検ネットリスト」という。）が検出装置２０に入力され得る。被検ネットリストは、情報処理装置１０に含まれる各種回路同士を接続する配線の一覧を記述した設計データである。被検ネットリストは、情報処理装置を構成する回路の階層に合わせて構築された階層を有し、最上位層である集合ネットと、当該集合ネットの下位層である構成ネットを備える。集合ネット及び構成ネットは、情報処理装置の規模に応じて１つ以上設けられる。構成ネットは、回路の端子間を繋ぐ配線（以下、「端子間ネット」という。）によって接続された一群の回路によって構成される。
【００２０】
本図に示す情報処理装置１０は、端子間ネットである通常ネット４４で接続された通常回路４２で構成される。情報処理装置１０がハードウェアトロイを含む場合、さらにＨＴ回路４６が挿入される。ＨＴ回路４６は、ペイロード回路４６ａ、トリガー回路４６ｂを含む。ＨＴ回路４６は、ハードウェアトロイに含まれている特定の端子間ネットであるトロイネットが、ペイロード回路４６ａ、トリガー回路４６ｂ、またはこれら２つの回路の間に存在する。情報処理装置１０の被検ネットリストには、端子間ネットとして、通常ネット４４と、トロイネットとが含まれる。
【００２１】
図２に示すように、検出装置２０は、検出装置２０の各種機能を統括的に制御する制御手段２４、条件設定手段２６、および判断手段２８が、制御バス２２を介して接続されている。
【００２２】
制御手段２４は、予め格納されている基本プログラムなどの各種プログラムを読み出して、これら各種プログラムに従って、検出装置２０全体を制御するようになされている。
【００２３】
条件設定手段２６は、対照ネット取得部２６ａと、第１の閾値設定部２６ｂと、第２の閾値設定部２６ｃと、条件設定部２６ｄとから構成される。条件設定手段２６は、被検ネットリスト中におけるトロイネットの有無を判断するための基準を、トロイネットの有無が既知である公知のネットリスト（以下、「公知ネットリスト」という。）から取得し、得られた基準に基づいてトロイネットの有無を判断するための閾値および条件を設定する。なお、実施の形態では、既知ネットリストとして公知ネットリストを使用しているが、必ずしも既知ネットリストが公知である必要はない。トロイネットの有無が既知であれば、公知でなくても構わない。
【００２４】
判断手段２８は、第１の評価データ生成部２８ａと第２の評価データ生成部２８ｂと比較判定部２８ｃとから構成される。判断手段２８は、情報処理装置１０の被検ネットリストを、条件設定手段２６で設定された基準で評価して、得られた評価結果（評価データ）を条件設定手段２６で設定された閾値を含む条件で判定する。こうして、情報処理装置１０の被検ネットリスト中のトロイネットの有無を判断することによってハードウェアトロイを検出する。
【００２５】
（１）条件設定手段
次に、条件設定手段２６の各部について説明する。
【００２６】
（対照ネット取得部）
対照ネット取得部２６ａは、端子間ネットに関する情報が公開されているゲートレベルの公知ネットリストに基づき、トロイネットの特徴を抽出する。対照ネット取得部２６ａは、例えばネットワークを介して情報記録サーバーに接続し、公知ネットリストを、情報記録サーバーからランダムに複数個ダウンロードして、これらを図示しない記憶部に記憶する。
【００２７】
公知ネットリストは、例えば米国のサイト（Trust-HUB）に公開されているベンチマークのネットリストを利用することができる。すなわち、公開されているベンチマークの中から、ランダムに複数、例えば１０個選択してもよい。ベンチマークには、トロイネットを含むとされているベンチマーク（HT-inserted）とトロイネットを含まないとされているベンチマーク（HT-free）とが含まれる。
【００２８】
Trust-HUBにおけるベンチマークは、ゲートレベルのネットリストが公開されている。ベンチマークは、端子間ネットで接続されたゲート、フリップフロップ、加算器などのセルを含むいくつかのサブモジュールからなる。
【００２９】
下記表１に示されるように、これらのベンチマークは、ハードウェアトロイの有無（HT-inserted／HT-free）および端子間ネット数が既知である。下記表１に示す１０個のベンチマークのうちでは、７個が“HT-inserted”であり、３個が“HT-free”である。ベンチマークには、ハードウェアトロイに含まれているトロイネット（以下、「公知トロイネット」という。）の名称、種類およびその存在箇所といった情報も、ネットリスト中に明らかにされている。
【００３０】
【表１】
0006566576.tif 000002
【００３１】
対照ネット取得部２６ａは、公知ネットリストに基づき、トロイネットである可能性がある端子間ネット（以下、「疑トロイネット」という。）を見出す。すなわち、疑トロイネットは、公知ネットリストの集合ネットに含まれる構成ネットの形態、すなわち各種回路の組み合わせや個数等から見出すことができる。疑トロイネットを含む構成ネットを対照ネットと呼ぶ。例えば、上記表１に示した１０個のベンチマークから、図３〜１１に示す９個の対照ネットを見出すことができる。図３〜１１中、LSLG(little switching logic gate)は、AND回路, NAND回路, OR回路, NORゲート回路を意味する。図中の太線が疑トロイネットである。ハードウェアトロイは動作し難く制御性が高いため、特定の条件でのみ動作する。すなわち、ハードウェアトロイは、スイッチング確率が低い。図３〜１１に示したCase 1〜9の対照ネットはいずれも、こうした特徴を含むものである。Case 1〜9の各対照ネットについて以下に説明する。
【００３２】
Case 1（図３）においては、1st LSLGの入力として2nd LSLGの出力が含まれている。2nd LSLGの入力の数が６以上であれば、1st LSLGの出力の端子間ネットが疑トロイネットである。2nd LSLGは、入力の数が２つの２入力のものに限定されず、３入力または４入力のものでもよい。
【００３３】
Case 2（図４）は、Case 1の特別な場合であり、Case 1より動作し難い。1st LSLGの入力として2nd LSLGの出力を含み、この2nd LSLGの入力の数が１６個以上の場合、または2nd LSLGの入力として3rd LSLGの出力を含み、この3rd LSLGの入力の数が１６個以上の場合、2nd LSLGの出力を入力として含む1st LSLGの出力の端子間ネットが疑トロイネットである。
【００３４】
Case 3（図５）は、MUX (multiplexer)の選択信号の端子間ネットが疑トロイネットである。
【００３５】
Case 4（図６）においては、ADDER（半加算器または全加算器）の出力を入力としてもつセルを2nd any cellとし、2nd any cellの出力を入力としてもつセルを1st any cellとする。この場合、1st any cellの入力および出力の端子間ネットは、全て疑トロイネットである。全ての2nd any cellにADDERが接続されている必要はなく、図示するように１つの2nd any cellにADDERが接続されていれば、このCase 4に該当する。
【００３６】
Case 5（図７）は、FF（フリップフロップ）を含むサブモジュールの主出力の端子間ネットが疑トロイネットである。
【００３７】
Case 6（図８）においては、他のネットを介さずに、“0”または“1”がFFに直接入力されており、特殊なケースである。このようなFFの出力およびクロックの端子間ネットは、疑トロイネットである。
【００３８】
Case 7（図９）においては、FFのクロックがCase 2の端子間ネット（疑トロイネット）である。Case 2のネットは極めて動き難いので、このようなFFの入力、出力、およびクロックの端子間ネットの全ては、疑トロイネットである。
【００３９】
Case 8（図１０）においては、構成ネットより下位のサブモジュールネットの数が22000以上のサブモジュールにおいて、任意セルの入力の端子間ネットの一つが主入力であり、もう一つはCase 2の端子間ネット（疑トロイネット）である。この場合、Case 2の疑トロイネットは、真のトロイネット（以下「真トロイネット」という。）である可能性がより高い。
【００４０】
Case 9（図１１）においては、スキャンモードとノーマルモードとを制御するTEST-SE信号の否定信号がセルに入力されている。こうしたセルの入力および出力の端子間ネットは、疑トロイネットである。
【００４１】
上記対照ネットには、疑トロイネットが真トロイネットである可能性の高さに適応したスコアが付与される。スコアは、疑トロイネットが真トロイネットである可能性の高さを反映できるように設定する。すなわち、“HT-inserted”の公知ネットリストのみに含まれている対照ネットは、“HT-inserted”および“HT-free”の両方の公知ネットリストに含まれている対照ネットよりも、真トロイネットを含む可能性が高いので、大きなスコアが与えられる。
【００４２】
例えば、上記表１に示した１０個のベンチマークのネットリストと前述の９個の対照ネット（Case 1〜9）とを比較したところ、Case 6〜9の対照ネットは、７個の“HT-inserted”のベンチマークのみに存在することが確認された。残りのCase 1〜5の対照ネットは、７個の“HT-inserted”のベンチマークおよび３個の“HT-free”のベンチマークの全てに確認された。Case 1〜5の対照ネットは、疑トロイネットを有しているにもかかわらず、Case 1〜5の対照ネットが含まれている公知ネットリストのうちの３個は“HT-free”である。すなわち、Case 6〜9の対照ネットのほうが、Case 1〜5の対照ネットよりも真トロイネットを含む可能性が高いといえる。このような真トロイネットを含む可能性の高さを反映して、Case 1〜5の対照ネットのスコアを１と設定し、Case 6〜9の対照ネットのスコアを２と設定する。真トロイネットを含む可能性の高さを反映した所定の大きさのスコアを付与することにより、対照ネットは、被検ネットリスト中のトロイネットの有無を判断するための基準となる。
【００４３】
以上のとおり、対照ネット取得部２６ａは、公知ネットリストから対照ネットを取得し、真トロイネットを含む可能性の高さを反映した所定の大きさのスコアを対照ネットに付与し、これを図示しない記憶部に記憶する。
【００４４】
（第１の閾値設定部）
第１の閾値設定部２６ｂは、第１の閾値としての最大スコア閾値（Tscore）（Tscoreは正数）および最大スコアネット数閾値（Tnumber）（Tnumberは正数）を選択する。
【００４５】
最大スコア閾値（Tscore）は、最大スコア（Xscore）中から選択される。最大スコア（Xscore）は、集合ネットに含まれる対照ネットのスコアを加算した合計スコアのうち、公知ネットリスト中で最も大きいスコアとする。
【００４６】
最大スコアネット数閾値（Tnumber）は、最大スコアネット数（Xnumber）の中から選択される。最大スコアネット数（Xnumber）は、公知ネットリスト中の最大スコア（Xscore）を有する集合ネット（以下、「最大スコアネット」という。）の数とする。
【００４７】
具体的には、第１の閾値設定部２６ｂは、記憶部から受け取った“HT-inserted”の公知ネットリストおよび“HT-free”の公知ネットリスト中の各集合ネットに含まれる構成ネットのそれぞれを、対照ネットと比較する。第１の閾値設定部２６ｂは、構成ネットが対照ネットと一致する場合、当該対照ネットのスコアを集合ネット毎に加算する。この集合ネット毎に加算されたスコアを合計スコアと呼ぶ。合計スコアのうち、公知ネットリスト中、最も大きいスコアを最大スコア（Xscore）、最大スコア（Xscore）を有する集合ネットを最大スコアネットとする。また、第１の閾値設定部２６ｂは、公知ネットリスト中の最大スコアネットの数を最大スコアネット数（Xnumber）とする。
【００４８】
第１の閾値設定部２６ｂは、最大スコアネットと、記憶部に記憶された公知トロイネットの情報を比較して、最大スコアネット中に公知トロイネットが含まれる公知ネットリストを抽出する。第１の閾値設定部２６ｂは、公知トロイネットが含まれる公知ネットリストのうち、最大スコア（Xnumber）の最も小さい値を選択して１を加えた値を最大スコア閾値（Tscore）として図示しない記憶部に記憶する。
【００４９】
例えば、上記表１に示した１０個のベンチマークを前述の９個の対照ネット（Case 1〜9）と比較し、各ベンチマークのネットリストについて確認された対照ネットの数を下記表２にまとめる。
【００５０】
【表２】
0006566576.tif 000003
【００５１】
各ベンチマークの集合ネット毎に合計スコアを算出し、その最大値を最大スコア（Xscore）とし、最大スコア（Xscore）を有する集合ネットを最大スコアネットとする。上述したとおり、Case 1〜5のスコアは１であり、Case 6〜9のスコアは２である。例えば、Case 1〜9の対照ネットのうちの１つも含まない集合ネットは、合計スコアが０であり、Case 1の対照ネットを１つ含む集合ネットの合計スコアは１である。また、Case 1の対照ネットを１つとCase 6の対照ネットを１つ含む集合ネットの合計スコアは３である。
【００５２】
得られた結果を、最大スコアネットの内容（通常ネット／トロイネット）とともに下記表３にまとめる。ここで、表３中の最大スコアネットの内容は、公知トロイネットの情報に基づくものである。
【００５３】
【表３】
0006566576.tif 000004
【００５４】
上記表３に示されるように、最大スコア（Xscore）が３以上のベンチマーク（Ethernet（登録商標）MAC10GE-T700、s15858-T100、s38584-T200、wb_conmax-T100）において、最大スコアネットに含まれている対照ネットは全てトロイネットである。ベンチマーク（RS232-T1000、s38417-T100、vga_lcd-T100）に示されているように、最大スコア（Xscore）が２の最大スコアネットにも公知トロイネットが含まれている。公知トロイネットを含む最大スコアネットの最大スコアの値は、２が最小である。最大スコアの最小値に１を加えた値（最小値＋１）を、最大スコア閾値（Tscore）とする。すなわち、最大スコア（Xscore）の値が最大スコア閾値（Tscore）以上であれば、最大スコアネットにトロイネットが含まれる可能性が高いといえる。表３の例では、最大スコア閾値（Tscore）は３である。
【００５５】
なお、本実施の形態では、上述のような手法で最大スコア閾値（Tscore）を求めたが、他の手法により最大スコア閾値（Tscore）を求めることも可能である。例えば、最大スコアネットに含まれている対照ネットが全てトロイネットとなる最小の値を、最大スコア閾値（Tscore）とするなどの手法が挙げられる。
【００５６】
上記表３によれば、公知トロイネットを含む最大スコアネット数（Xnumber）は比較的小さく、その値は最大でも５である。これに対して、通常ネットのみを含む最大スコアネット数（Xnumber）は大きく、その値は最小でも５５である。最大スコア（Xscore）が高いほど最大スコアネット数（Xnumber）は減少し、最大スコア（Xscore）が低いほど最大スコアネット数（Xnumber）は増加する。
【００５７】
したがって、最大スコアネット数（Xnumber）が十分に大きなネットリストは、トロイネットを含まない“HT-free”である可能性が高いと判断する。上記表３によれば、公知トロイネットを含む最大スコアネットのうち、最大スコアネット数（Xnumber）の最も大きな値は、ベンチマーク（s38417-T100）の５である。
【００５８】
この場合、ベンチマーク（s38417-T100）の最大スコアネット数（Xnumber）である５を、最大スコアネット数閾値（Tnumber）とする。すなわち、最大スコアネット数（Xnumber）が最大スコアネット数閾値（Tnumber）以下であれば、最大スコアネットにトロイネットが含まれる可能性が高いといえる。こうして、最大スコアネット数閾値（Tnumber）が選択される。
【００５９】
以上のとおり、第１の閾値設定部２６ｂは、対照ネットと公知トロイネットの情報を比較することにより、最大スコア閾値（Tscore）と最大スコアネット数閾値（Tnumber）とを選択して第１の閾値として取得し、これを図示しない記憶部に記憶する。
【００６０】
（第２の閾値設定部）
第２の閾値設定部２６ｃは、公知ネットリストにおける最大スコアネットについて最大一定サイクル数（Xcycle）を生成し、第２の閾値としての最大一定サイクル数閾値（Tcycle）（Tcycleは正数）を選択する。具体的には、第２の閾値設定部２６ｃは、最大スコア（Xscore）が最大スコア閾値（Tscore）未満の最大スコアネットに対して、論理シミュレータと呼ばれる既存のソフトウェア（例えばＶＣＳ（登録商標））でランダムデータを入力して１Ｍクロック間における値の変化をシミュレートし、一定値を出力する最長のクロック数を最大一定サイクル数（Xcycle）として得て、これを図示しない記憶部に記憶する。
【００６１】
第２の閾値設定部２６ｃは、得られた最大一定サイクル数（Xcycle）のなかから、最小の値を最大一定サイクル数閾値（Tcycle）として選択する。
【００６２】
例えば、図１２に示すように、１Ｍクロック間で一定値を出力する最長のクロック数を、最大一定サイクル数（Max constant cycles）として定義する。最大一定サイクル数が高いほど、最大スコアネットはトロイネットを含む可能性が高くなる。これは、次のように説明される。トロイネットは動作し難く制御性が高いため、トロイネットが存在する場合には、長期間にわたって一定値が出力されることが予測される。この点に着目し、所定のクロック間で一定値が出力されるサイクル数（最大一定サイクル数）によって、最大スコアネットにトロイネットが含まれるか否かを判断する。
【００６３】
下記表４には、ベンチマーク（RS232-T1000、s38417-T100、およびvga_lcd-T100）について、最大一定サイクル数（Xcycle）を公知トロイネットの名称とともにまとめる。下記表４に示した３個のベンチマークは、上記表３に示したとおり最大スコア（Xxvore）が２で、最大スコアネットにトロイネットが含まれている。
【００６４】
【表４】
0006566576.tif 000005
【００６５】
上記表４によれば、ベンチマーク（RS232-T1000、s38417-T100、およびvga_lcd-T100）は全て、最大スコアネットの最大一定サイクル数（Xcycle）が999,996サイクル以上である。このことから、最大一定サイクル数（Xcycle）が999,996サイクル以上の最大スコアネットにはトロイネットが含まれていると判断して、999,996サイクルを最大一定サイクル数閾値（Tcycle）とする。すなわち最大一定サイクル数閾値（Tcycle）（999,996サイクル）は、公知トロイネットを含む最大スコアネットについての最大一定サイクル数（Xcycle）の最小値である。
【００６６】
なお、上記表３，４からは、最大一定サイクル数（Xcycle）が999,996サイクル以上の場合には、最大スコアネットに公知トロイネットが含まれていることがわかる。その一方、下記表５に示すように、最大一定サイクル数（Xcycle）が999,996サイクル以上の最大スコアネットに通常ネットが含まれていることも確認された。
【００６７】
【表５】
0006566576.tif 000006
【００６８】
上記表５に示されるとおり、最大スコア（Xscore）が１のベンチマーク（s35932）には、最大一定サイクル数（Xcycle）が999,996サイクル以上の最大スコアネットは存在しない。ベンチマーク（b19およびEthernetMAC10GE）は、いずれも最大スコア（Xscore）が２で、最大スコアネットに含まれているのは通常ネットのみである。公知トロイネットが含まれていないにもかかわらず、ベンチマーク（b19およびEthernetMAC10GE）には、最大一定サイクル数（Xcycle）が999,996サイクル以上の最大スコアネットが存在している。そのような最大スコアネットの数は、それぞれ５９および１０である。
【００６９】
最大スコア（Xscore）と最大一定サイクル数（Xcycle）とを用いても、公知トロイネットの有無は必ずしも正確に判断されていない。これは、回路の規模（端子間ネット数）が関連しているものと推測される。上記表１に示されるように、ベンチマーク（s35932）の端子間ネット数は6,423であり、ベンチマーク（b19およびEthernetMAC10GE）の端子間ネット数は、それぞれ108,332および103,206である。こうした端子間ネット数からわかるように、ベンチマーク（s35932）は小規模回路であり、ベンチマーク（b19およびEthernetMAC10GE）は大規模回路である。最大スコア（Xscore）および最大一定サイクル数（Xcycle）に加えて、最大スコアネット数（Xnumber）を用いることによって、小規模回路のみならず、大規模回路に対しても誤検出なく正確にトロイネットを検出できる。
【００７０】
以上のとおり、第２の閾値設定部２６ｃは、最大一定サイクル数閾値（Tcycle）を第２の閾値として取得して、これを図示しない記憶部に記憶する。
【００７１】
（条件設定部）
条件設定部２６ｄは、最大スコア閾値（Tscore）、最大スコアネット数閾値（Xnumber）、および最大一定サイクル数閾値（Xcycle）を記憶部から受け取って、これらの閾値を用いて、トロイネットの有無について、記憶されている公知ネットリストのハードウェアトロイの有無（HT-inserted／HT-free）と一致した結果が得られる条件を設定する。トロイネットの有無を判断する条件は、以下の（Ａ），（Ｂ）である。いずれかの条件を満たす場合には、トロイネットが存在する。
（Ａ）最大スコア（Xscore）が最大スコア閾値（Tscore）（Tscoreは正数）以上
（Ｂ）最大スコア（Xscore）が最大スコア閾値（Tscore）（Tscoreは正数）未満、最大スコアネット数（Xnumber）が最大スコアネット数閾値（Tnumber）（Tnumberは正数）以下、かつ最大一定サイクル数（Xcycle）が最大一定サイクル数閾値（Tcycle）（Tcycleは正数）以上
【００７２】
例えば、上記表１に示した１０個のベンチマークについては、トロイネットが存在するのは、次のいずれかの場合である。
（ａ）最大スコア（Xscore）が３以上
（ｂ）最大スコア（Xscore）が３未満、最大スコアネット数（Xnumber）が５以下、かつ最大一定サイクル数（Xcycle）が999,996サイクル以上
【００７３】
上記表１に示した１０個のベンチマークについて、条件（ａ），（ｂ）と各ベンチマークについての既知情報のハードウェアトロイの有無（HT-free／HT-inserted）とを、下記表６にまとめる。下記表６においては、条件（ａ）または条件（ｂ）を満たしていれば“○”としている。なお、「条件（ａ）または条件（ｂ）」を、「条件（ａ／ｂ）」と記載する。
【００７４】
【表６】
0006566576.tif 000007
【００７５】
“HT-free”である３個のベンチマークは、条件（ａ／ｂ）を満たしていない。一方、“HT-inserted”である７個のベンチマークは、条件（ａ／ｂ）を満たしており、条件（ａ／ｂ）による判定はベンチマークの既知の情報によるハードウェアトロイの有無（HT-free／HT-inserted）と完全に一致している。このように検出装置１０は、最大スコア閾値（Tscore）、最大スコアネット数閾値（Tnumber）、および最大一定サイクル数閾値（Tcycle）に基づいたトロイネットの有無を決定する条件（ａ／ｂ）を用いて判定することによって、ベンチマークが“HT-free”および“HT-inserted”のいずれであるかを正しく識別できる。
【００７６】
以上のとおり、条件設定部２６ｄは、最大スコア閾値（Tscore）、最大スコアネット数閾値（Tnumber）、および最大一定サイクル数閾値（Tcycle）を用いてトロイネットの有無を判断する条件（Ａ），条件（Ｂ）を設定し、これを図示しない記憶部に記憶する。
【００７７】
こうして、条件設定手段２６は、トロイネットを含む可能性を反映した大きさのスコアが付与された複数の対照ネットを取得するとともに、第１の閾値としての最大スコア閾値（Tscore）（Tscoreは正数）および最大スコアネット数閾値（Tnumber）（Tnumberは正数）と、第２の閾値としての最大一定サイクル数閾値（Tcycle）（Tcycleは正数）を設定し、第１および第２の閾値を用いてトロイネットの有無を判断する条件を設定する。
【００７８】
条件設定手段２６は、基準としての対照ネットを、閾値（最大スコア閾値（Tscore）（Tscoreは正数）、最大スコアネット数閾値（Tnumber）（Tnumberは正数）、最大一定サイクル数閾値（Tcycle）（Tcycleは正数））およびこれを用いて設定された条件とともに、図示しない記憶部に記憶する。記憶された基準、閾値および条件は、ネットリスト中のトロイネットの有無を判断するために判断手段２８に送出される。
【００７９】
（２）判断手段
次に、判断手段２８について説明する。判断手段２８は、情報処理装置１０から被検ネットリストを取得し、当該被検ネットリストを記憶部から受け取った基準で評価する。判断手段２８は、評価結果を評価データとして得、記憶部から受け取った条件で評価データを判定してハードウェアトロイの有無を判断する。
【００８０】
また、判断手段２８は、公知ネットリストから抽出した基準としての対照ネットを、閾値（最大スコア閾値（Tscore）（Tscoreは正数）、最大スコアネット数閾値（Tnumber）（Tnumberは正数）、最大一定サイクル数閾値（Tcycle）（Tcycleは正数））および条件とともに図示しない記憶部から適宜受け取る。
【００８１】
（第１の評価データ生成部）
第１の評価データ生成部２８ａは、被検ネットリストについて、最大スコアネットに関する情報（最大スコア（Xscore）および最大スコアネット数（Xnumber））を得る。被検ネットリストについての最大スコア（Xscore）および最大スコアネット数（Xnumber）は、条件設定手段２６における第１の閾値設定部２６ｂについて説明した手順と同様の手順で得られる。
【００８２】
こうして、第１の評価データ生成部２８ａは、被検ネットリストについて最大スコア（Xscore）と最大スコアネット数（Xnumber）とを得て、これを第１の評価データとして図示しない記憶部に記憶する。記憶された第１の評価データは、比較判定部２８ｃに送出される。第１の評価データは、被検ネットリストの中から対照ネットを検索し、検索された対照ネットのスコアを基に生成される。
【００８３】
（第２の評価データ生成部）
第２の評価データ生成部２８ｂは、被検ネットリストにおける最大スコアネットについて、最大一定サイクル数（Xcycle）を生成する。被検ネットリストについての最大一定サイクル数（Xcycle）は、条件設定手段２６における第２の閾値設定部２６ｃについて説明した手順と同様の手順で得られる。
【００８４】
こうして、第２のデータ生成部２８ｂは、被検ネットリストについて最大一定サイクル数（Xcycle）を得て、これを第２の評価データとして図示しない記憶部に記憶する。記憶された第２の評価データは、比較判定部２８ｃに送出される。
【００８５】
（比較判定部）
比較判定部２８ｃにおいては、比較判定プログラムに従って比較判定処理が行われる。具体的には、比較判定部２８ｃは、被検ネットリストから得た第１の評価データおよび第２の評価データを、第１の閾値および第２の閾値に基づいて得られた条件と比較し、被検ネットリストにトロイネットが含まれるか否かを判定する。以下、比較判定処理手順について図１３を参照して説明する。
【００８６】
比較判定処理にあたっては、図１３に示す比較判定処理手順ＲＴ１の開始ステップから入って、ステップＳＰ１に移る。
【００８７】
比較判定部２８ｃは、ステップＳＰ１において、被検ネットリストの最大スコア（Xscore）が、最大スコア閾値（Ｔscore）以上であるか否かを判断する。ステップＳＰ１において肯定結果が得られると、このことは、被検ネットリストがトロイネットを含み“HT-inserted”であることを表しており、このとき比較判定部２８ｃはステップＳＰ５へ移る。
【００８８】
一方、ステップＳＰ１において否定結果が得られると、比較判定部２８ｃはステップＳＰ２に移る。ステップＳＰ２において比較判定部２８ｃは最大スコアネット数（Xnumber）が最大スコアネット数閾値（Ｔnumber）以下であるか否かを判断する。ステップＳＰ２において否定結果が得られると、このことは、被検ネットリストにはトロイネットは含まれておらず“HT-free”であることを表しており、このとき比較判定部２８ｃはステップＳＰ６へ移る。
【００８９】
ステップＳＰ２において肯定結果が得られると、比較判定部２８ｃはステップＳＰ３に移る。ステップＳＰ３において比較判定部２８ｃは最大一定サイクル数（Xcycle）が最大一定サイクル数閾値（Tcycle）以上であるか否かを判断する。ステップＳＰ３において肯定結果が得られると、このことは、被検ネットリストがトロイネットを含み“HT-inserted”であることを表しており、このとき比較判定部２８ｃはステップＳＰ５へ移る。
【００９０】
ステップＳＰ３において否定結果が得られると、比較判定部２８ｃはステップＳＰ４へ移る。ステップＳＰ４において比較判定部２８ｃは、全ての最大スコアネットについて、最大一定サイクル数（Xcycle）を最大一定サイクル数閾値（Tcycle）と比較したか否かを判断する。
【００９１】
ステップＳＰ４において否定結果が得られると、このことは、最大一定サイクル数（Xcycle）が最大一定サイクル数閾値（Tcycle）と比較されていない最大スコアネットが残っていることを表しており、このとき比較判定部２８ｃはステップＳＰ３に戻る。
【００９２】
ステップＳＰ４において肯定結果を得ると、このことは被検ネットリストにはトロイネットは含まれておらず“HT-free”であることを表しており、ステップＳＰ６へ移る。
【００９３】
ステップＳＰ５において比較判定部２８ｃは、被検ネットリストがトロイネットを含むことを示す出力信号を生成して出力し、ステップＳＰ７へ移り、比較判定処理手順ＲＴ１を終了する。
【００９４】
またステップＳＰ６において比較判定部２８ｃは、被検ネットリストがトロイネットを含まないことを示す出力信号を生成して出力し、ステップＳＰ７へ移り、比較判定処理手順ＲＴ１を終了する。
【００９５】
判断手段２８は、比較判定部から得られた出力信号に基づき、判定結果を図示しない表示手段に出力する。表示手段は、出力信号に基づいた出力結果を表示する。
【００９６】
２．効果
上記構成において、検出装置２０は、公知ネットリストから対照ネットを抽出し、さらに第１の閾値および第２の閾値を選択して、予め条件を設定する。そして検出装置２０は、情報処理装置１０の被検ネットリストを取得すると、当該被検ネットリストに対照ネットが含まれるか否かを判断する。被検ネットリストに対照ネットが含まれている場合、検出装置２０は、当該対照ネットに基づき、第１の評価データおよび第２の評価データを生成する。検出装置２０は、予め設定された条件に基づき、生成された第１の評価データおよび第２の評価データを評価し、これにより被検ネットリストにトロイネットが含まれるか否かを判断する。
【００９７】
以上のとおり、本実施形態に係る検出装置２０は、公知ネットリストの既知情報に基づいて得られた条件に基づき、被検ネットリスト中のトロイネットの有無を判断することにより、公知ネットリストと種類が異なるネットリストを有する情報処理装置１０にハードウェアトロイが含まれるか否かを判断することができる。したがって検出装置２０は、対象となる情報処理装置１０の、ハードウェアトロイが挿入されていない健全なネットリストやハードウェアトロイに関する公知情報を用いずに、情報処理装置１０にハードウェアトロイが含まれるか否かを判断することができる。
【００９８】
一例として、上記表１に示した１０個のベンチマークから、（Case 1〜9）の９個の対照ネットが得られること、このときの最大スコア閾値（Tscore）、最大スコアネット数閾値（Tnumber）、および最大一定サイクル数閾値（Tcycle）は、それぞれ３、５、および999,996であること、さらに、閾値を用いてトロイネットの有無を判断する条件が以下のとおり設定されることを示した。
（ａ）最大スコア（Xscore）が３以上
（ｂ）最大スコア（Xscore）が３未満、最大スコアネット数（Xnumber）が５以下、かつ最大一定サイクル数（Xcycle）が999,996サイクル以上
【００９９】
こうしたハードウェアトロイの検出方法の一例を、被検ネットリストとして他の公知ネットリストに適用してトロイネットの有無を判断し、その結果を既知情報と比較することにより、本実施形態に係るハードウェアトロイの検出方法の正当性を確認した。
【０１００】
他の公知ネットリストとしては、Trust-HUBで公開されている全ベンチマーク３４個を用いた。Trust-HUBで公開されている全ベンチマーク３４個のうち、“HT-inserted”のベンチマークは２５個であり、“HT-free”のベンチマークは９個である。こうした３４個のベンチマークを所定の基準で評価して、評価結果を所定の条件で判定した。
【０１０１】
まず、各ベンチマークに含まれている構成ネットを、上述の９個の対照ネット（Case 1〜9）と比較した。各ベンチマークについて、含まれている対照ネットの数を求め、最大スコア（Xscore）および最大スコアネット数（Xnumber）を得た。その結果を、対照ネットの数とともに下記表７，８にまとめる。下記表７，８には、上記表１に示した１０個のベンチマークについての結果も併せて示した。
【０１０２】
【表７】
0006566576.tif 000008
【０１０３】
【表８】
0006566576.tif 000009
【０１０４】
３４個の全てのベンチマークの最大スコア（Xscore）および最大スコアネット数（Xnumber）について、上述の条件（ａ／ｂ）を満たすか否かを調べ、その結果を既知情報によるハードウェアトロイの有無（HT-free／HT-inserted）とともに下記表９にまとめる。下記表９には、前述の１０個のベンチマークについての結果も併せて示した。下記表９においては、条件（ａ／ｂ）を満たしていれば、“○”としている。
【０１０５】
【表９】
0006566576.tif 000010
【０１０６】
上記表９には、３４個のベンチマーク全てについて、既知情報によるハードウェアトロイの有無（HT-free／HT-inserted）と一致する結果が得られたことが示されている。上述のような基準および条件を用いることによって、“HT-inserted”の２５個のベンチマーク全てにおいて、誤検出無しでトロイネットの一部を確実に検出することができた。
【０１０７】
既存手法を用いた場合には、“HT-inserted”の２５個全てのベンチマークについて、ハードウェアトロイを正確に検出することはできない。検出に成功したハードウェアトロイの数は、下記表１０に示すように、既存手法１では４個であり、既存手法２では８個にとどまっている。しかも、既存手法の場合には、ペイロード回路やトリガー回路などの回路におけるハードウェアトロイの情報を、事前に知る必要がある。ここで、既存方法１はＵＣＩによる手法であり、既存方法２はＶｅｒｉ Ｔｒｕｓｔによる方法である。ＵＣＩは、回路検証中に活性化しない信号を特定し、その信号に対してマルチプレクサを挿入することで、ハードウェアトロイを検出する。Ｖｅｒｉ Ｔｒｕｓｔは、回路検証中に活性化しない信号を特定し、その信号に対して観測性を高めることによりハードウェアトロイを検出する。
【０１０８】
【表１０】
0006566576.tif 000011
【０１０９】
以上のように、ハードウェアトロイの挿入されていないネットリストや、ハードウェアトロイに関する情報を用いずに、公知のネットリストから得られた基準および条件を用いることによって、ゲートレベルの被検ネットリストが“HT-free”および“HT-inserted”のいずれであるかを識別することが可能となった。しかも、上述の基準および条件を用いた場合には、既存手法を用いた場合よりも正確な識別結果が得られており、こうした点でも既存手法に対して優位性を有することが確認された。
【０１１０】
３．他の実施の形態
なお、本発明は、本実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、上述の実施形態においては、公知ネットリストとして所定のサイト（Trust-HUB）からダウンロードした所定の１０個のベンチマークを用い、こうした公知ネットリストから９個の対照ネットを選択することを一例として説明したが、公知ネットリストの数および対照ネットの数はこれに限定されない。公知ネットリストの数は任意に設定して、ランダムに選択することができる。また、対照ネットの数や種類は、公知ネットリストの数や種類によって、変わり得るものである。
【０１１１】
また、実施形態においては、対照ネットのスコアとして１または２を例に挙げたが、公知ネットリストの種類や数が変更された場合には、各対照ネットのスコアの大きさも変わり得る。
【０１１２】
さらに、実施形態においては、被検ネットリスト中のハードウェアトロイの有無の判定に用いる最大スコア閾値および最大スコアネット数閾値の値は、それぞれ３および５に設定したが、これらの数値もまた、変わり得るものである。最大スコア閾値および最大スコアネット数閾値は、上述の実施形態に示したように、公知ネットリストとの比較に基づいて適宜設定することができる。必要に応じて、公知ネットリストとの比較に基づいて得られた閾値よりも、厳しい閾値を設定してもよい。
【０１１３】
また、トロイネットを含むか否かを判断する指標の一つとして、最大一定クロック数（１Ｍクロック間で一定値を出力する最長のクロック数）を用いたが、これに限定されるものではない。被検ネットリスト中に潜むトロイネットの可能性を示すものであれば、最大一定サイクル数以外の任意のパラメータを用いてもよい。そのような場合においても、上述した実施形態で説明したように、公知ネットリストとの比較に基づいて適切な閾値を設定することができる。
【０１１４】
公知ネットリストからトロイネットの有無を判断するための基準を得、この基準に基づいてトロイネットの有無を判断するための条件を設定し、得られた基準および条件を用いてゲートレベルの被検ネットリスト中のトロイネットの有無を判断することによってハードウェアトロイを検出することは、本発明の範囲内である。
【０１１５】
情報処理装置１０を検出装置２０に直接接続して、情報処理装置１０の被検ネットリストを入力する場合について説明したが、被検ネットリストを得ることができれば、情報処理装置１０を検出装置２０に接続する形態に限定されない。
【０１１６】
また、上記実施形態の場合、ネットリストは情報処理装置１０に含まれている場合について説明したが本発明はこれに限られない。情報処理装置１０は、必ずしもネットリストを保持している必要はない。この場合、検出装置２０はネットリストを記憶した記憶媒体や、ネットワーク上のサーバーなどからネットリストを取得してもよい。
【符号の説明】
【０１１７】
１０  情報処理装置
２０  ハードウェアトロイ検出装置
２２  制御バス
２４  制御手段
２６  条件設定手段
２８  判断手段
【図１】
0006566576.tif 000012
【図２】
0006566576.tif 000013
【図３】
0006566576.tif 000014
【図４】
0006566576.tif 000015
【図５】
0006566576.tif 000016
【図６】
0006566576.tif 000017
【図７】
0006566576.tif 000018
【図８】
0006566576.tif 000019
【図９】
0006566576.tif 000020
【図１０】
0006566576.tif 000021
【図１１】
0006566576.tif 000022
【図１２】
0006566576.tif 000023
【図１３】
0006566576.tif 000024
【図１４】
0006566576.tif 000025