TOP > 国内特許検索 > ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置 > 明細書

明細書 :ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置

発行国 日本国特許庁(JP)
公報種別 再公表特許(A1)
発行日 平成29年8月31日(2017.8.31)
発明の名称または考案の名称 ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置
国際特許分類 G06F  21/56        (2013.01)
FI G06F 21/56
国際予備審査の請求 未請求
全頁数 35
出願番号 特願2016-560230 (P2016-560230)
国際出願番号 PCT/JP2015/082223
国際公開番号 WO2016/080380
国際出願日 平成27年11月17日(2015.11.17)
国際公開日 平成28年5月26日(2016.5.26)
優先権出願番号 2014233953
優先日 平成26年11月18日(2014.11.18)
優先権主張国 日本国(JP)
指定国 AP(BW , GH , GM , KE , LR , LS , MW , MZ , NA , RW , SD , SL , ST , SZ , TZ , UG , ZM , ZW) , EA(AM , AZ , BY , KG , KZ , RU , TJ , TM) , EP(AL , AT , BE , BG , CH , CY , CZ , DE , DK , EE , ES , FI , FR , GB , GR , HR , HU , IE , IS , IT , LT , LU , LV , MC , MK , MT , NL , NO , PL , PT , RO , RS , SE , SI , SK , SM , TR) , OA(BF , BJ , CF , CG , CI , CM , GA , GN , GQ , GW , KM , ML , MR , NE , SN , TD , TG) , AE , AG , AL , AM , AO , AT , AU , AZ , BA , BB , BG , BH , BN , BR , BW , BY , BZ , CA , CH , CL , CN , CO , CR , CU , CZ , DE , DK , DM , DO , DZ , EC , EE , EG , ES , FI , GB , GD , GE , GH , GM , GT , HN , HR , HU , ID , IL , IN , IR , IS , JP , KE , KG , KN , KP , KR , KZ , LA , LC , LK , LR , LS , LU , LY , MA , MD , ME , MG , MK , MN , MW , MX , MY , MZ , NA , NG , NI , NO , NZ , OM , PA , PE , PG , PH , PL , PT , QA , RO , RS , RU , RW , SA , SC , SD , SE , SG , SK , SL , SM , ST , SV , SY , TH , TJ , TM , TN , TR , TT , TZ , UA , UG , US
発明者または考案者 【氏名】戸川 望
【氏名】大屋 優
出願人 【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
個別代理人の代理人 【識別番号】100137800、【弁理士】、【氏名又は名称】吉田 正義
【識別番号】100148253、【弁理士】、【氏名又は名称】今枝 弘充
【識別番号】100148079、【弁理士】、【氏名又は名称】梅村 裕明
【識別番号】100158241、【弁理士】、【氏名又は名称】吉田 安子
審査請求 未請求
要約 ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、前記条件に基づき、被検ネットリストとしての集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程とを備えることを特徴とする。
【選択図】なし
特許請求の範囲 【請求項1】
集積回路のネットリスト中のハードウェアトロイを検出する検出方法であって、
前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、
前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程と
を備えることを特徴とする検出方法。
【請求項2】
前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、
前記判断工程は、
前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断する
ことを特徴とする請求項1記載の検出方法。
【請求項3】
前記スコアは、
前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、
前記判断工程は、
前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断する
ことを特徴とする請求項2記載の検出方法。
【請求項4】
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、
前記判断工程は、
前記最大スコアが前記最大スコア閾値未満の場合、
前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断する
ことを特徴とする請求項3記載の検出方法。
【請求項5】
前記条件設定工程は、
前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、
前記判断工程は、
前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在すると判断する
ことを特徴とする請求項4記載の検出方法。
【請求項6】
集積回路のネットリスト中のハードウェアトロイを検出する処理をコンピュータに実行させるための検出プログラムであって、
前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、
前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程と
を含む処理をコンピュータに実行させることを特徴とする検出プログラム。
【請求項7】
前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、
前記判断工程は、
前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断する
ことを特徴とする請求項6記載の検出プログラム。
【請求項8】
前記スコアは、
前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、
前記判断工程は、
前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断する
ことを特徴とする請求項7記載の検出プログラム。
【請求項9】
前記条件設定工程は、
前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、
前記判断工程は、
前記最大スコアが前記最大スコア閾値未満の場合、
前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断する
ことを特徴とする請求項8記載の検出プログラム。
【請求項10】
前記条件設定工程は、
前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、
前記判断工程は、
前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在すると判断する
ことを特徴とする請求項9記載の検出プログラム。
【請求項11】
集積回路のネットリスト中のハードウェアトロイを検出する検出装置であって、
前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定手段と、
前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断手段と
を備えることを特徴とする検出装置。
【請求項12】
前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
前記条件設定手段は、
前記複数の既知ネットリストのそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、
前記判断手段は、
前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断する
ことを特徴とする請求項11記載の検出装置。
【請求項13】
前記スコアは、
前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、
前記条件設定手段は、
前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、
前記判断手段は、
前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断する
ことを特徴とする請求項12記載の検出装置。
【請求項14】
前記条件設定手段は、
前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、
前記判断手段は、
前記最大スコアが前記最大スコア閾値未満の場合、
前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断する
ことを特徴とする請求項13記載の検出装置。
【請求項15】
前記条件設定手段は、
前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、
前記判断手段は、
前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在すると判断する
ことを特徴とする請求項14記載の検出装置。
発明の詳細な説明 【技術分野】
【0001】
本発明は、ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置に関する。
【背景技術】
【0002】
近年、半導体業界においては、外部業者が情報処理装置に用いられる集積回路の製造に関わるようになったことから、集積回路の安全性が問題視されるようになっている。本来意図されていない機能(ハードウェアトロイ、以下「HT」とも記す。)を集積回路に挿入することが、第三者である外部業者において容易になったためであり、こうしたハードウェアトロイを検出することが求められている。
【0003】
一般的には、ハードウェアトロイを検出するには、対象となる情報処理装置のハードウェアトロイに関する情報が必要とされてきた。ハードウェアトロイを含まない健全な設計データを利用して、ハードウェアトロイを検出する方法が提案されている(例えば、非特許文献1参照)。例えば、製造段階において挿入されたトロイの有無は、トロイが挿入されていない健全なチップと、トロイが挿入されたチップとの間で、物理的な重さや電力量、あるいは電磁波などについての差分をとることによって判断することができる。
【0004】
しかしながら、ハードウェアトロイは、集積回路の製造段階のみならず設計段階においても挿入される可能性がある。設計段階では、製造段階の場合のような差分をとることができず、ハードウェアトロイに関する情報なしにトロイを検出する技術は未だ得られていないのが現状である。
【0005】
図14に示すように、ハードウェアトロイ(HT)回路46が存在する回路40においては、例えば通常回路42を接続する通常ネット44の一部48にトリガー回路46bが接続され、通常ネット44の他の一部49にペイロード回路46aが接続されている。ペイロード回路46aは、本来意図されていない機能を有し、トリガー回路46bはペイロード回路46aを起動する。こうしたペイロード回路46aとトリガー回路46bとによって、HT回路46が構成される。
【0006】
回路40からHT回路46を完全に取り除くことができれば、ハードウェアトロイの危険性を完全に取り除くことが可能となる。
【先行技術文献】
【0007】

【非特許文献1】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
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、HT回路46は必ずしも明確に存在せずに通常ネット44に融合していることもあり、HT回路46を区別して回路40から完全に区別することは極めて困難である。
【0009】
本発明は以上の点を考慮してなされたもので、集積回路のハードウェアトロイに関する情報を用いずに、ハードウェアトロイを検出する検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係るハードウェアトロイの検出方法は、集積回路のネットリスト中のハードウェアトロイを検出する検出方法であって、前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程とを備えることを特徴とする。
【0011】
上記検出方法においては、前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、前記条件設定工程は、前記複数の既知ネットリスト中のそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、前記判断工程は、前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断することができる。
【0012】
前記スコアは、前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、前記条件設定工程は、前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、前記判断工程は、前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断することができる。
【0013】
また、前記条件設定工程は、前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、前記判断工程は、前記最大スコアが前記最大スコア閾値未満の場合、前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断することができる。
【0014】
さらに、前記条件設定工程は、前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、前記判断工程は、前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在する判断することができる。
【0015】
本発明に係るハードウェアトロイの検出プログラムは、集積回路のネットリスト中のハードウェアトロイを検出する処理をコンピュータに実行させるための検出プログラムであって、前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程とを含む処理をコンピュータに実行させることを特徴とする。
【0016】
本発明に係るハードウェアトロイの検出装置は、集積回路のネットリスト中のハードウェアトロイを検出する検出装置であって、前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定手段と、前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断手段とを備えることを特徴とする。
【発明の効果】
【0017】
本発明によれば、公知ネットリストの既知情報に基づいて得られた条件に基づき、被検ネットリスト中のトロイネットの有無を判断することにより、公知ネットリストと種類が異なるネットリストを有する集積回路にハードウェアトロイが含まれるか否かを判断することができる。したがって本発明によれば、対象となる集積回路の、ハードウェアトロイが挿入されていない健全なネットリストやハードウェアトロイに関する公知情報を用いずに、上記集積回路にハードウェアトロイが含まれるか否かを判断することができる。
【図面の簡単な説明】
【0018】
【図1】本実施形態のハードウェアトロイ検出装置の使用状態を示す図である。
【図2】本実施形態のハードウェアトロイ検出装置の構成を示すブロック図である。
【図3】Case 1の対照ネットを示す説明図である。
【図4】Case 2の対照ネットを示す説明図である。
【図5】Case 3の対照ネットを示す説明図である。
【図6】Case 4の対照ネットを示す説明図である。
【図7】Case 5の対照ネットを示す説明図である。
【図8】Case 6の対照ネットを示す説明図である。
【図9】Case 7の対照ネットを示す説明図である。
【図10】Case 8の対照ネットを示す説明図である。
【図11】Case 9の対照ネットを示す説明図である。
【図12】最大一定サイクル数を説明する図である。
【図13】ネットリスト中のハードウェアトロイの有無を判断する比較判定の処理手順を示すフローチャートである。
【図14】ハードウェアトロイ(HT)回路を模式的に説明する図である。
【発明を実施するための形態】
【0019】
1.全体構成
以下、図面を参照して本発明の実施の形態を詳述する。図1に示すように情報処理装置10は、ハードウェアトロイ検出装置(以下、「検出装置」という。)20に接続される。これにより、情報処理装置10が備えるネットリスト(以下、「被検ネットリスト」という。)が検出装置20に入力され得る。被検ネットリストは、情報処理装置10に含まれる各種回路同士を接続する配線の一覧を記述した設計データである。被検ネットリストは、情報処理装置を構成する回路の階層に合わせて構築された階層を有し、最上位層である集合ネットと、当該集合ネットの下位層である構成ネットを備える。集合ネット及び構成ネットは、情報処理装置の規模に応じて1つ以上設けられる。構成ネットは、回路の端子間を繋ぐ配線(以下、「端子間ネット」という。)によって接続された一群の回路によって構成される。

【0020】
本図に示す情報処理装置10は、端子間ネットである通常ネット44で接続された通常回路42で構成される。情報処理装置10がハードウェアトロイを含む場合、さらにHT回路46が挿入される。HT回路46は、ペイロード回路46a、トリガー回路46bを含む。HT回路46は、ハードウェアトロイに含まれている特定の端子間ネットであるトロイネットが、ペイロード回路46a、トリガー回路46b、またはこれら2つの回路の間に存在する。情報処理装置10の被検ネットリストには、端子間ネットとして、通常ネット44と、トロイネットとが含まれる。

【0021】
図2に示すように、検出装置20は、検出装置20の各種機能を統括的に制御する制御手段24、条件設定手段26、および判断手段28が、制御バス22を介して接続されている。

【0022】
制御手段24は、予め格納されている基本プログラムなどの各種プログラムを読み出して、これら各種プログラムに従って、検出装置20全体を制御するようになされている。

【0023】
条件設定手段26は、対照ネット取得部26aと、第1の閾値設定部26bと、第2の閾値設定部26cと、条件設定部26dとから構成される。条件設定手段26は、被検ネットリスト中におけるトロイネットの有無を判断するための基準を、トロイネットの有無が既知である公知のネットリスト(以下、「公知ネットリスト」という。)から取得し、得られた基準に基づいてトロイネットの有無を判断するための閾値および条件を設定する。なお、実施の形態では、既知ネットリストとして公知ネットリストを使用しているが、必ずしも既知ネットリストが公知である必要はない。トロイネットの有無が既知であれば、公知でなくても構わない。

【0024】
判断手段28は、第1の評価データ生成部28aと第2の評価データ生成部28bと比較判定部28cとから構成される。判断手段28は、情報処理装置10の被検ネットリストを、条件設定手段26で設定された基準で評価して、得られた評価結果(評価データ)を条件設定手段26で設定された閾値を含む条件で判定する。こうして、情報処理装置10の被検ネットリスト中のトロイネットの有無を判断することによってハードウェアトロイを検出する。

【0025】
(1)条件設定手段
次に、条件設定手段26の各部について説明する。

【0026】
(対照ネット取得部)
対照ネット取得部26aは、端子間ネットに関する情報が公開されているゲートレベルの公知ネットリストに基づき、トロイネットの特徴を抽出する。対照ネット取得部26aは、例えばネットワークを介して情報記録サーバーに接続し、公知ネットリストを、情報記録サーバーからランダムに複数個ダウンロードして、これらを図示しない記憶部に記憶する。

【0027】
公知ネットリストは、例えば米国のサイト(Trust-HUB)に公開されているベンチマークのネットリストを利用することができる。すなわち、公開されているベンチマークの中から、ランダムに複数、例えば10個選択してもよい。ベンチマークには、トロイネットを含むとされているベンチマーク(HT-inserted)とトロイネットを含まないとされているベンチマーク(HT-free)とが含まれる。

【0028】
Trust-HUBにおけるベンチマークは、ゲートレベルのネットリストが公開されている。ベンチマークは、端子間ネットで接続されたゲート、フリップフロップ、加算器などのセルを含むいくつかのサブモジュールからなる。

【0029】
下記表1に示されるように、これらのベンチマークは、ハードウェアトロイの有無(HT-inserted/HT-free)および端子間ネット数が既知である。下記表1に示す10個のベンチマークのうちでは、7個が“HT-inserted”であり、3個が“HT-free”である。ベンチマークには、ハードウェアトロイに含まれているトロイネット(以下、「公知トロイネット」という。)の名称、種類およびその存在箇所といった情報も、ネットリスト中に明らかにされている。

【0030】
【表1】
JP2016080380A1_000003t.gif

【0031】
対照ネット取得部26aは、公知ネットリストに基づき、トロイネットである可能性がある端子間ネット(以下、「疑トロイネット」という。)を見出す。すなわち、疑トロイネットは、公知ネットリストの集合ネットに含まれる構成ネットの形態、すなわち各種回路の組み合わせや個数等から見出すことができる。疑トロイネットを含む構成ネットを対照ネットと呼ぶ。例えば、上記表1に示した10個のベンチマークから、図3~11に示す9個の対照ネットを見出すことができる。図3~11中、LSLG(little switching logic gate)は、AND回路, NAND回路, OR回路, NORゲート回路を意味する。図中の太線が疑トロイネットである。ハードウェアトロイは動作し難く制御性が高いため、特定の条件でのみ動作する。すなわち、ハードウェアトロイは、スイッチング確率が低い。図3~11に示したCase 1~9の対照ネットはいずれも、こうした特徴を含むものである。Case 1~9の各対照ネットについて以下に説明する。

【0032】
Case 1(図3)においては、1st LSLGの入力として2nd LSLGの出力が含まれている。2nd LSLGの入力の数が6以上であれば、1st LSLGの出力の端子間ネットが疑トロイネットである。2nd LSLGは、入力の数が2つの2入力のものに限定されず、3入力または4入力のものでもよい。

【0033】
Case 2(図4)は、Case 1の特別な場合であり、Case 1より動作し難い。1st LSLGの入力として2nd LSLGの出力を含み、この2nd LSLGの入力の数が16個以上の場合、または2nd LSLGの入力として3rd LSLGの出力を含み、この3rd LSLGの入力の数が16個以上の場合、2nd LSLGの出力を入力として含む1st LSLGの出力の端子間ネットが疑トロイネットである。

【0034】
Case 3(図5)は、MUX (multiplexer)の選択信号の端子間ネットが疑トロイネットである。

【0035】
Case 4(図6)においては、ADDER(半加算器または全加算器)の出力を入力としてもつセルを2nd any cellとし、2nd any cellの出力を入力としてもつセルを1st any cellとする。この場合、1st any cellの入力および出力の端子間ネットは、全て疑トロイネットである。全ての2nd any cellにADDERが接続されている必要はなく、図示するように1つの2nd any cellにADDERが接続されていれば、このCase 4に該当する。

【0036】
Case 5(図7)は、FF(フリップフロップ)を含むサブモジュールの主出力の端子間ネットが疑トロイネットである。

【0037】
Case 6(図8)においては、他のネットを介さずに、“0”または“1”がFFに直接入力されており、特殊なケースである。このようなFFの出力およびクロックの端子間ネットは、疑トロイネットである。

【0038】
Case 7(図9)においては、FFのクロックがCase 2の端子間ネット(疑トロイネット)である。Case 2のネットは極めて動き難いので、このようなFFの入力、出力、およびクロックの端子間ネットの全ては、疑トロイネットである。

【0039】
Case 8(図10)においては、構成ネットより下位のサブモジュールネットの数が22000以上のサブモジュールにおいて、任意セルの入力の端子間ネットの一つが主入力であり、もう一つはCase 2の端子間ネット(疑トロイネット)である。この場合、Case 2の疑トロイネットは、真のトロイネット(以下「真トロイネット」という。)である可能性がより高い。

【0040】
Case 9(図11)においては、スキャンモードとノーマルモードとを制御するTEST-SE信号の否定信号がセルに入力されている。こうしたセルの入力および出力の端子間ネットは、疑トロイネットである。

【0041】
上記対照ネットには、疑トロイネットが真トロイネットである可能性の高さに適応したスコアが付与される。スコアは、疑トロイネットが真トロイネットである可能性の高さを反映できるように設定する。すなわち、“HT-inserted”の公知ネットリストのみに含まれている対照ネットは、“HT-inserted”および“HT-free”の両方の公知ネットリストに含まれている対照ネットよりも、真トロイネットを含む可能性が高いので、大きなスコアが与えられる。

【0042】
例えば、上記表1に示した10個のベンチマークのネットリストと前述の9個の対照ネット(Case 1~9)とを比較したところ、Case 6~9の対照ネットは、7個の“HT-inserted”のベンチマークのみに存在することが確認された。残りのCase 1~5の対照ネットは、7個の“HT-inserted”のベンチマークおよび3個の“HT-free”のベンチマークの全てに確認された。Case 1~5の対照ネットは、疑トロイネットを有しているにもかかわらず、Case 1~5の対照ネットが含まれている公知ネットリストのうちの3個は“HT-free”である。すなわち、Case 6~9の対照ネットのほうが、Case 1~5の対照ネットよりも真トロイネットを含む可能性が高いといえる。このような真トロイネットを含む可能性の高さを反映して、Case 1~5の対照ネットのスコアを1と設定し、Case 6~9の対照ネットのスコアを2と設定する。真トロイネットを含む可能性の高さを反映した所定の大きさのスコアを付与することにより、対照ネットは、被検ネットリスト中のトロイネットの有無を判断するための基準となる。

【0043】
以上のとおり、対照ネット取得部26aは、公知ネットリストから対照ネットを取得し、真トロイネットを含む可能性の高さを反映した所定の大きさのスコアを対照ネットに付与し、これを図示しない記憶部に記憶する。

【0044】
(第1の閾値設定部)
第1の閾値設定部26bは、第1の閾値としての最大スコア閾値(Tscore)(Tscoreは正数)および最大スコアネット数閾値(Tnumber)(Tnumberは正数)を選択する。

【0045】
最大スコア閾値(Tscore)は、最大スコア(Xscore)中から選択される。最大スコア(Xscore)は、集合ネットに含まれる対照ネットのスコアを加算した合計スコアのうち、公知ネットリスト中で最も大きいスコアとする。

【0046】
最大スコアネット数閾値(Tnumber)は、最大スコアネット数(Xnumber)の中から選択される。最大スコアネット数(Xnumber)は、公知ネットリスト中の最大スコア(Xscore)を有する集合ネット(以下、「最大スコアネット」という。)の数とする。

【0047】
具体的には、第1の閾値設定部26bは、記憶部から受け取った“HT-inserted”の公知ネットリストおよび“HT-free”の公知ネットリスト中の各集合ネットに含まれる構成ネットのそれぞれを、対照ネットと比較する。第1の閾値設定部26bは、構成ネットが対照ネットと一致する場合、当該対照ネットのスコアを集合ネット毎に加算する。この集合ネット毎に加算されたスコアを合計スコアと呼ぶ。合計スコアのうち、公知ネットリスト中、最も大きいスコアを最大スコア(Xscore)、最大スコア(Xscore)を有する集合ネットを最大スコアネットとする。また、第1の閾値設定部26bは、公知ネットリスト中の最大スコアネットの数を最大スコアネット数(Xnumber)とする。

【0048】
第1の閾値設定部26bは、最大スコアネットと、記憶部に記憶された公知トロイネットの情報を比較して、最大スコアネット中に公知トロイネットが含まれる公知ネットリストを抽出する。第1の閾値設定部26bは、公知トロイネットが含まれる公知ネットリストのうち、最大スコア(Xnumber)の最も小さい値を選択して1を加えた値を最大スコア閾値(Tscore)として図示しない記憶部に記憶する。

【0049】
例えば、上記表1に示した10個のベンチマークを前述の9個の対照ネット(Case 1~9)と比較し、各ベンチマークのネットリストについて確認された対照ネットの数を下記表2にまとめる。

【0050】
【表2】
JP2016080380A1_000004t.gif

【0051】
各ベンチマークの集合ネット毎に合計スコアを算出し、その最大値を最大スコア(Xscore)とし、最大スコア(Xscore)を有する集合ネットを最大スコアネットとする。上述したとおり、Case 1~5のスコアは1であり、Case 6~9のスコアは2である。例えば、Case 1~9の対照ネットのうちの1つも含まない集合ネットは、合計スコアが0であり、Case 1の対照ネットを1つ含む集合ネットの合計スコアは1である。また、Case 1の対照ネットを1つとCase 6の対照ネットを1つ含む集合ネットの合計スコアは3である。

【0052】
得られた結果を、最大スコアネットの内容(通常ネット/トロイネット)とともに下記表3にまとめる。ここで、表3中の最大スコアネットの内容は、公知トロイネットの情報に基づくものである。

【0053】
【表3】
JP2016080380A1_000005t.gif

【0054】
上記表3に示されるように、最大スコア(Xscore)が3以上のベンチマーク(Ethernet(登録商標)MAC10GE-T700、s15858-T100、s38584-T200、wb_conmax-T100)において、最大スコアネットに含まれている対照ネットは全てトロイネットである。ベンチマーク(RS232-T1000、s38417-T100、vga_lcd-T100)に示されているように、最大スコア(Xscore)が2の最大スコアネットにも公知トロイネットが含まれている。公知トロイネットを含む最大スコアネットの最大スコアの値は、2が最小である。最大スコアの最小値に1を加えた値(最小値+1)を、最大スコア閾値(Tscore)とする。すなわち、最大スコア(Xscore)の値が最大スコア閾値(Tscore)以上であれば、最大スコアネットにトロイネットが含まれる可能性が高いといえる。表3の例では、最大スコア閾値(Tscore)は3である。

【0055】
なお、本実施の形態では、上述のような手法で最大スコア閾値(Tscore)を求めたが、他の手法により最大スコア閾値(Tscore)を求めることも可能である。例えば、最大スコアネットに含まれている対照ネットが全てトロイネットとなる最小の値を、最大スコア閾値(Tscore)とするなどの手法が挙げられる。

【0056】
上記表3によれば、公知トロイネットを含む最大スコアネット数(Xnumber)は比較的小さく、その値は最大でも5である。これに対して、通常ネットのみを含む最大スコアネット数(Xnumber)は大きく、その値は最小でも55である。最大スコア(Xscore)が高いほど最大スコアネット数(Xnumber)は減少し、最大スコア(Xscore)が低いほど最大スコアネット数(Xnumber)は増加する。

【0057】
したがって、最大スコアネット数(Xnumber)が十分に大きなネットリストは、トロイネットを含まない“HT-free”である可能性が高いと判断する。上記表3によれば、公知トロイネットを含む最大スコアネットのうち、最大スコアネット数(Xnumber)の最も大きな値は、ベンチマーク(s38417-T100)の5である。

【0058】
この場合、ベンチマーク(s38417-T100)の最大スコアネット数(Xnumber)である5を、最大スコアネット数閾値(Tnumber)とする。すなわち、最大スコアネット数(Xnumber)が最大スコアネット数閾値(Tnumber)以下であれば、最大スコアネットにトロイネットが含まれる可能性が高いといえる。こうして、最大スコアネット数閾値(Tnumber)が選択される。

【0059】
以上のとおり、第1の閾値設定部26bは、対照ネットと公知トロイネットの情報を比較することにより、最大スコア閾値(Tscore)と最大スコアネット数閾値(Tnumber)とを選択して第1の閾値として取得し、これを図示しない記憶部に記憶する。

【0060】
(第2の閾値設定部)
第2の閾値設定部26cは、公知ネットリストにおける最大スコアネットについて最大一定サイクル数(Xcycle)を生成し、第2の閾値としての最大一定サイクル数閾値(Tcycle)(Tcycleは正数)を選択する。具体的には、第2の閾値設定部26cは、最大スコア(Xscore)が最大スコア閾値(Tscore)未満の最大スコアネットに対して、論理シミュレータと呼ばれる既存のソフトウェア(例えばVCS(登録商標))でランダムデータを入力して1Mクロック間における値の変化をシミュレートし、一定値を出力する最長のクロック数を最大一定サイクル数(Xcycle)として得て、これを図示しない記憶部に記憶する。

【0061】
第2の閾値設定部26cは、得られた最大一定サイクル数(Xcycle)のなかから、最小の値を最大一定サイクル数閾値(Tcycle)として選択する。

【0062】
例えば、図12に示すように、1Mクロック間で一定値を出力する最長のクロック数を、最大一定サイクル数(Max constant cycles)として定義する。最大一定サイクル数が高いほど、最大スコアネットはトロイネットを含む可能性が高くなる。これは、次のように説明される。トロイネットは動作し難く制御性が高いため、トロイネットが存在する場合には、長期間にわたって一定値が出力されることが予測される。この点に着目し、所定のクロック間で一定値が出力されるサイクル数(最大一定サイクル数)によって、最大スコアネットにトロイネットが含まれるか否かを判断する。

【0063】
下記表4には、ベンチマーク(RS232-T1000、s38417-T100、およびvga_lcd-T100)について、最大一定サイクル数(Xcycle)を公知トロイネットの名称とともにまとめる。下記表4に示した3個のベンチマークは、上記表3に示したとおり最大スコア(Xxvore)が2で、最大スコアネットにトロイネットが含まれている。

【0064】
【表4】
JP2016080380A1_000006t.gif

【0065】
上記表4によれば、ベンチマーク(RS232-T1000、s38417-T100、およびvga_lcd-T100)は全て、最大スコアネットの最大一定サイクル数(Xcycle)が999,996サイクル以上である。このことから、最大一定サイクル数(Xcycle)が999,996サイクル以上の最大スコアネットにはトロイネットが含まれていると判断して、999,996サイクルを最大一定サイクル数閾値(Tcycle)とする。すなわち最大一定サイクル数閾値(Tcycle)(999,996サイクル)は、公知トロイネットを含む最大スコアネットについての最大一定サイクル数(Xcycle)の最小値である。

【0066】
なお、上記表3,4からは、最大一定サイクル数(Xcycle)が999,996サイクル以上の場合には、最大スコアネットに公知トロイネットが含まれていることがわかる。その一方、下記表5に示すように、最大一定サイクル数(Xcycle)が999,996サイクル以上の最大スコアネットに通常ネットが含まれていることも確認された。

【0067】
【表5】
JP2016080380A1_000007t.gif

【0068】
上記表5に示されるとおり、最大スコア(Xscore)が1のベンチマーク(s35932)には、最大一定サイクル数(Xcycle)が999,996サイクル以上の最大スコアネットは存在しない。ベンチマーク(b19およびEthernetMAC10GE)は、いずれも最大スコア(Xscore)が2で、最大スコアネットに含まれているのは通常ネットのみである。公知トロイネットが含まれていないにもかかわらず、ベンチマーク(b19およびEthernetMAC10GE)には、最大一定サイクル数(Xcycle)が999,996サイクル以上の最大スコアネットが存在している。そのような最大スコアネットの数は、それぞれ59および10である。

【0069】
最大スコア(Xscore)と最大一定サイクル数(Xcycle)とを用いても、公知トロイネットの有無は必ずしも正確に判断されていない。これは、回路の規模(端子間ネット数)が関連しているものと推測される。上記表1に示されるように、ベンチマーク(s35932)の端子間ネット数は6,423であり、ベンチマーク(b19およびEthernetMAC10GE)の端子間ネット数は、それぞれ108,332および103,206である。こうした端子間ネット数からわかるように、ベンチマーク(s35932)は小規模回路であり、ベンチマーク(b19およびEthernetMAC10GE)は大規模回路である。最大スコア(Xscore)および最大一定サイクル数(Xcycle)に加えて、最大スコアネット数(Xnumber)を用いることによって、小規模回路のみならず、大規模回路に対しても誤検出なく正確にトロイネットを検出できる。

【0070】
以上のとおり、第2の閾値設定部26cは、最大一定サイクル数閾値(Tcycle)を第2の閾値として取得して、これを図示しない記憶部に記憶する。

【0071】
(条件設定部)
条件設定部26dは、最大スコア閾値(Tscore)、最大スコアネット数閾値(Xnumber)、および最大一定サイクル数閾値(Xcycle)を記憶部から受け取って、これらの閾値を用いて、トロイネットの有無について、記憶されている公知ネットリストのハードウェアトロイの有無(HT-inserted/HT-free)と一致した結果が得られる条件を設定する。トロイネットの有無を判断する条件は、以下の(A),(B)である。いずれかの条件を満たす場合には、トロイネットが存在する。
(A)最大スコア(Xscore)が最大スコア閾値(Tscore)(Tscoreは正数)以上
(B)最大スコア(Xscore)が最大スコア閾値(Tscore)(Tscoreは正数)未満、最大スコアネット数(Xnumber)が最大スコアネット数閾値(Tnumber)(Tnumberは正数)以下、かつ最大一定サイクル数(Xcycle)が最大一定サイクル数閾値(Tcycle)(Tcycleは正数)以上

【0072】
例えば、上記表1に示した10個のベンチマークについては、トロイネットが存在するのは、次のいずれかの場合である。
(a)最大スコア(Xscore)が3以上
(b)最大スコア(Xscore)が3未満、最大スコアネット数(Xnumber)が5以下、かつ最大一定サイクル数(Xcycle)が999,996サイクル以上

【0073】
上記表1に示した10個のベンチマークについて、条件(a),(b)と各ベンチマークについての既知情報のハードウェアトロイの有無(HT-free/HT-inserted)とを、下記表6にまとめる。下記表6においては、条件(a)または条件(b)を満たしていれば“○”としている。なお、「条件(a)または条件(b)」を、「条件(a/b)」と記載する。

【0074】
【表6】
JP2016080380A1_000008t.gif

【0075】
“HT-free”である3個のベンチマークは、条件(a/b)を満たしていない。一方、“HT-inserted”である7個のベンチマークは、条件(a/b)を満たしており、条件(a/b)による判定はベンチマークの既知の情報によるハードウェアトロイの有無(HT-free/HT-inserted)と完全に一致している。このように検出装置10は、最大スコア閾値(Tscore)、最大スコアネット数閾値(Tnumber)、および最大一定サイクル数閾値(Tcycle)に基づいたトロイネットの有無を決定する条件(a/b)を用いて判定することによって、ベンチマークが“HT-free”および“HT-inserted”のいずれであるかを正しく識別できる。

【0076】
以上のとおり、条件設定部26dは、最大スコア閾値(Tscore)、最大スコアネット数閾値(Tnumber)、および最大一定サイクル数閾値(Tcycle)を用いてトロイネットの有無を判断する条件(A),条件(B)を設定し、これを図示しない記憶部に記憶する。

【0077】
こうして、条件設定手段26は、トロイネットを含む可能性を反映した大きさのスコアが付与された複数の対照ネットを取得するとともに、第1の閾値としての最大スコア閾値(Tscore)(Tscoreは正数)および最大スコアネット数閾値(Tnumber)(Tnumberは正数)と、第2の閾値としての最大一定サイクル数閾値(Tcycle)(Tcycleは正数)を設定し、第1および第2の閾値を用いてトロイネットの有無を判断する条件を設定する。

【0078】
条件設定手段26は、基準としての対照ネットを、閾値(最大スコア閾値(Tscore)(Tscoreは正数)、最大スコアネット数閾値(Tnumber)(Tnumberは正数)、最大一定サイクル数閾値(Tcycle)(Tcycleは正数))およびこれを用いて設定された条件とともに、図示しない記憶部に記憶する。記憶された基準、閾値および条件は、ネットリスト中のトロイネットの有無を判断するために判断手段28に送出される。

【0079】
(2)判断手段
次に、判断手段28について説明する。判断手段28は、情報処理装置10から被検ネットリストを取得し、当該被検ネットリストを記憶部から受け取った基準で評価する。判断手段28は、評価結果を評価データとして得、記憶部から受け取った条件で評価データを判定してハードウェアトロイの有無を判断する。

【0080】
また、判断手段28は、公知ネットリストから抽出した基準としての対照ネットを、閾値(最大スコア閾値(Tscore)(Tscoreは正数)、最大スコアネット数閾値(Tnumber)(Tnumberは正数)、最大一定サイクル数閾値(Tcycle)(Tcycleは正数))および条件とともに図示しない記憶部から適宜受け取る。

【0081】
(第1の評価データ生成部)
第1の評価データ生成部28aは、被検ネットリストについて、最大スコアネットに関する情報(最大スコア(Xscore)および最大スコアネット数(Xnumber))を得る。被検ネットリストについての最大スコア(Xscore)および最大スコアネット数(Xnumber)は、条件設定手段26における第1の閾値設定部26bについて説明した手順と同様の手順で得られる。

【0082】
こうして、第1の評価データ生成部28aは、被検ネットリストについて最大スコア(Xscore)と最大スコアネット数(Xnumber)とを得て、これを第1の評価データとして図示しない記憶部に記憶する。記憶された第1の評価データは、比較判定部28cに送出される。第1の評価データは、被検ネットリストの中から対照ネットを検索し、検索された対照ネットのスコアを基に生成される。

【0083】
(第2の評価データ生成部)
第2の評価データ生成部28bは、被検ネットリストにおける最大スコアネットについて、最大一定サイクル数(Xcycle)を生成する。被検ネットリストについての最大一定サイクル数(Xcycle)は、条件設定手段26における第2の閾値設定部26cについて説明した手順と同様の手順で得られる。

【0084】
こうして、第2のデータ生成部28bは、被検ネットリストについて最大一定サイクル数(Xcycle)を得て、これを第2の評価データとして図示しない記憶部に記憶する。記憶された第2の評価データは、比較判定部28cに送出される。

【0085】
(比較判定部)
比較判定部28cにおいては、比較判定プログラムに従って比較判定処理が行われる。具体的には、比較判定部28cは、被検ネットリストから得た第1の評価データおよび第2の評価データを、第1の閾値および第2の閾値に基づいて得られた条件と比較し、被検ネットリストにトロイネットが含まれるか否かを判定する。以下、比較判定処理手順について図13を参照して説明する。

【0086】
比較判定処理にあたっては、図13に示す比較判定処理手順RT1の開始ステップから入って、ステップSP1に移る。

【0087】
比較判定部28cは、ステップSP1において、被検ネットリストの最大スコア(Xscore)が、最大スコア閾値(Tscore)以上であるか否かを判断する。ステップSP1において肯定結果が得られると、このことは、被検ネットリストがトロイネットを含み“HT-inserted”であることを表しており、このとき比較判定部28cはステップSP5へ移る。

【0088】
一方、ステップSP1において否定結果が得られると、比較判定部28cはステップSP2に移る。ステップSP2において比較判定部28cは最大スコアネット数(Xnumber)が最大スコアネット数閾値(Tnumber)以下であるか否かを判断する。ステップSP2において否定結果が得られると、このことは、被検ネットリストにはトロイネットは含まれておらず“HT-free”であることを表しており、このとき比較判定部28cはステップSP6へ移る。

【0089】
ステップSP2において肯定結果が得られると、比較判定部28cはステップSP3に移る。ステップSP3において比較判定部28cは最大一定サイクル数(Xcycle)が最大一定サイクル数閾値(Tcycle)以上であるか否かを判断する。ステップSP3において肯定結果が得られると、このことは、被検ネットリストがトロイネットを含み“HT-inserted”であることを表しており、このとき比較判定部28cはステップSP5へ移る。

【0090】
ステップSP3において否定結果が得られると、比較判定部28cはステップSP4へ移る。ステップSP4において比較判定部28cは、全ての最大スコアネットについて、最大一定サイクル数(Xcycle)を最大一定サイクル数閾値(Tcycle)と比較したか否かを判断する。

【0091】
ステップSP4において否定結果が得られると、このことは、最大一定サイクル数(Xcycle)が最大一定サイクル数閾値(Tcycle)と比較されていない最大スコアネットが残っていることを表しており、このとき比較判定部28cはステップSP3に戻る。

【0092】
ステップSP4において肯定結果を得ると、このことは被検ネットリストにはトロイネットは含まれておらず“HT-free”であることを表しており、ステップSP6へ移る。

【0093】
ステップSP5において比較判定部28cは、被検ネットリストがトロイネットを含むことを示す出力信号を生成して出力し、ステップSP7へ移り、比較判定処理手順RT1を終了する。

【0094】
またステップSP6において比較判定部28cは、被検ネットリストがトロイネットを含まないことを示す出力信号を生成して出力し、ステップSP7へ移り、比較判定処理手順RT1を終了する。

【0095】
判断手段28は、比較判定部から得られた出力信号に基づき、判定結果を図示しない表示手段に出力する。表示手段は、出力信号に基づいた出力結果を表示する。

【0096】
2.効果
上記構成において、検出装置20は、公知ネットリストから対照ネットを抽出し、さらに第1の閾値および第2の閾値を選択して、予め条件を設定する。そして検出装置20は、情報処理装置10の被検ネットリストを取得すると、当該被検ネットリストに対照ネットが含まれるか否かを判断する。被検ネットリストに対照ネットが含まれている場合、検出装置20は、当該対照ネットに基づき、第1の評価データおよび第2の評価データを生成する。検出装置20は、予め設定された条件に基づき、生成された第1の評価データおよび第2の評価データを評価し、これにより被検ネットリストにトロイネットが含まれるか否かを判断する。

【0097】
以上のとおり、本実施形態に係る検出装置20は、公知ネットリストの既知情報に基づいて得られた条件に基づき、被検ネットリスト中のトロイネットの有無を判断することにより、公知ネットリストと種類が異なるネットリストを有する情報処理装置10にハードウェアトロイが含まれるか否かを判断することができる。したがって検出装置20は、対象となる情報処理装置10の、ハードウェアトロイが挿入されていない健全なネットリストやハードウェアトロイに関する公知情報を用いずに、情報処理装置10にハードウェアトロイが含まれるか否かを判断することができる。

【0098】
一例として、上記表1に示した10個のベンチマークから、(Case 1~9)の9個の対照ネットが得られること、このときの最大スコア閾値(Tscore)、最大スコアネット数閾値(Tnumber)、および最大一定サイクル数閾値(Tcycle)は、それぞれ3、5、および999,996であること、さらに、閾値を用いてトロイネットの有無を判断する条件が以下のとおり設定されることを示した。
(a)最大スコア(Xscore)が3以上
(b)最大スコア(Xscore)が3未満、最大スコアネット数(Xnumber)が5以下、かつ最大一定サイクル数(Xcycle)が999,996サイクル以上

【0099】
こうしたハードウェアトロイの検出方法の一例を、被検ネットリストとして他の公知ネットリストに適用してトロイネットの有無を判断し、その結果を既知情報と比較することにより、本実施形態に係るハードウェアトロイの検出方法の正当性を確認した。

【0100】
他の公知ネットリストとしては、Trust-HUBで公開されている全ベンチマーク34個を用いた。Trust-HUBで公開されている全ベンチマーク34個のうち、“HT-inserted”のベンチマークは25個であり、“HT-free”のベンチマークは9個である。こうした34個のベンチマークを所定の基準で評価して、評価結果を所定の条件で判定した。

【0101】
まず、各ベンチマークに含まれている構成ネットを、上述の9個の対照ネット(Case 1~9)と比較した。各ベンチマークについて、含まれている対照ネットの数を求め、最大スコア(Xscore)および最大スコアネット数(Xnumber)を得た。その結果を、対照ネットの数とともに下記表7,8にまとめる。下記表7,8には、上記表1に示した10個のベンチマークについての結果も併せて示した。

【0102】
【表7】
JP2016080380A1_000009t.gif

【0103】
【表8】
JP2016080380A1_000010t.gif

【0104】
34個の全てのベンチマークの最大スコア(Xscore)および最大スコアネット数(Xnumber)について、上述の条件(a/b)を満たすか否かを調べ、その結果を既知情報によるハードウェアトロイの有無(HT-free/HT-inserted)とともに下記表9にまとめる。下記表9には、前述の10個のベンチマークについての結果も併せて示した。下記表9においては、条件(a/b)を満たしていれば、“○”としている。

【0105】
【表9】
JP2016080380A1_000011t.gif

【0106】
上記表9には、34個のベンチマーク全てについて、既知情報によるハードウェアトロイの有無(HT-free/HT-inserted)と一致する結果が得られたことが示されている。上述のような基準および条件を用いることによって、“HT-inserted”の25個のベンチマーク全てにおいて、誤検出無しでトロイネットの一部を確実に検出することができた。

【0107】
既存手法を用いた場合には、“HT-inserted”の25個全てのベンチマークについて、ハードウェアトロイを正確に検出することはできない。検出に成功したハードウェアトロイの数は、下記表10に示すように、既存手法1では4個であり、既存手法2では8個にとどまっている。しかも、既存手法の場合には、ペイロード回路やトリガー回路などの回路におけるハードウェアトロイの情報を、事前に知る必要がある。ここで、既存方法1はUCIによる手法であり、既存方法2はVeri Trustによる方法である。UCIは、回路検証中に活性化しない信号を特定し、その信号に対してマルチプレクサを挿入することで、ハードウェアトロイを検出する。Veri Trustは、回路検証中に活性化しない信号を特定し、その信号に対して観測性を高めることによりハードウェアトロイを検出する。

【0108】
【表10】
JP2016080380A1_000012t.gif

【0109】
以上のように、ハードウェアトロイの挿入されていないネットリストや、ハードウェアトロイに関する情報を用いずに、公知のネットリストから得られた基準および条件を用いることによって、ゲートレベルの被検ネットリストが“HT-free”および“HT-inserted”のいずれであるかを識別することが可能となった。しかも、上述の基準および条件を用いた場合には、既存手法を用いた場合よりも正確な識別結果が得られており、こうした点でも既存手法に対して優位性を有することが確認された。

【0110】
3.他の実施の形態
なお、本発明は、本実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、上述の実施形態においては、公知ネットリストとして所定のサイト(Trust-HUB)からダウンロードした所定の10個のベンチマークを用い、こうした公知ネットリストから9個の対照ネットを選択することを一例として説明したが、公知ネットリストの数および対照ネットの数はこれに限定されない。公知ネットリストの数は任意に設定して、ランダムに選択することができる。また、対照ネットの数や種類は、公知ネットリストの数や種類によって、変わり得るものである。

【0111】
また、実施形態においては、対照ネットのスコアとして1または2を例に挙げたが、公知ネットリストの種類や数が変更された場合には、各対照ネットのスコアの大きさも変わり得る。

【0112】
さらに、実施形態においては、被検ネットリスト中のハードウェアトロイの有無の判定に用いる最大スコア閾値および最大スコアネット数閾値の値は、それぞれ3および5に設定したが、これらの数値もまた、変わり得るものである。最大スコア閾値および最大スコアネット数閾値は、上述の実施形態に示したように、公知ネットリストとの比較に基づいて適宜設定することができる。必要に応じて、公知ネットリストとの比較に基づいて得られた閾値よりも、厳しい閾値を設定してもよい。

【0113】
また、トロイネットを含むか否かを判断する指標の一つとして、最大一定クロック数(1Mクロック間で一定値を出力する最長のクロック数)を用いたが、これに限定されるものではない。被検ネットリスト中に潜むトロイネットの可能性を示すものであれば、最大一定サイクル数以外の任意のパラメータを用いてもよい。そのような場合においても、上述した実施形態で説明したように、公知ネットリストとの比較に基づいて適切な閾値を設定することができる。

【0114】
公知ネットリストからトロイネットの有無を判断するための基準を得、この基準に基づいてトロイネットの有無を判断するための条件を設定し、得られた基準および条件を用いてゲートレベルの被検ネットリスト中のトロイネットの有無を判断することによってハードウェアトロイを検出することは、本発明の範囲内である。

【0115】
情報処理装置10を検出装置20に直接接続して、情報処理装置10の被検ネットリストを入力する場合について説明したが、被検ネットリストを得ることができれば、情報処理装置10を検出装置20に接続する形態に限定されない。

【0116】
また、上記実施形態の場合、ネットリストは情報処理装置10に含まれている場合について説明したが本発明はこれに限られない。情報処理装置10は、必ずしもネットリストを保持している必要はない。この場合、検出装置20はネットリストを記憶した記憶媒体や、ネットワーク上のサーバーなどからネットリストを取得してもよい。
【符号の説明】
【0117】
10 情報処理装置
20 ハードウェアトロイ検出装置
22 制御バス
24 制御手段
26 条件設定手段
28 判断手段
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10
【図12】
11
【図13】
12
【図14】
13