TOP > 国内特許検索 > 集積回路の正常化方法、正常化回路、及び集積回路 > 明細書

明細書 :集積回路の正常化方法、正常化回路、及び集積回路

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2017-146777 (P2017-146777A)
公開日 平成29年8月24日(2017.8.24)
発明の名称または考案の名称 集積回路の正常化方法、正常化回路、及び集積回路
国際特許分類 G06F  21/56        (2013.01)
FI G06F 21/56
請求項の数または発明の数 5
出願形態 OL
全頁数 14
出願番号 特願2016-027994 (P2016-027994)
出願日 平成28年2月17日(2016.2.17)
発明者または考案者 【氏名】戸川 望
【氏名】大屋 優
出願人 【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
個別代理人の代理人 【識別番号】100137800、【弁理士】、【氏名又は名称】吉田 正義
【識別番号】100148253、【弁理士】、【氏名又は名称】今枝 弘充
【識別番号】100148079、【弁理士】、【氏名又は名称】梅村 裕明
【識別番号】100158241、【弁理士】、【氏名又は名称】吉田 安子
審査請求 未請求
要約 【課題】ハードウェアトロイが存在していても正常に集積回路を動作させることができる集積回路の正常化方法、正常化回路及び集積回路を提供する。
【解決手段】正常化回路10は、疑トロイネット11に挿入され、認証部12と、無効化部14とを備え、前記認証部12は、遷移カウンタ26とクロックカウンタ28とを有し、前記疑トロイネット11の出力の遷移回数が、所定のクロック数において予め定められた閾値未満の場合、前記疑トロイネット11をトロイネットであるとの判定結果を前記無効化部14に出力し、前記無効化部14は、前記トロイネットの出力を無効化する無効化素子42を有することを特徴とする。
【選択図】図1
特許請求の範囲 【請求項1】
ハードウェアトロイに接続されている疑いのある疑トロイネットを含む集積回路を正常に動作させる正常化方法であって、
前記疑トロイネットの遷移回数が、所定のクロック数において予め定められた閾値未満の場合、前記疑トロイネットをトロイネットであると判定する工程と、
前記トロイネットの出力を無効化する工程と
を備えることを特徴とする正常化方法。
【請求項2】
前記遷移回数の閾値が3、前記クロック数の閾値が32であることを特徴とする請求項1記載の正常化方法。
【請求項3】
ハードウェアトロイに接続されている疑いのある疑トロイネットを含む集積回路を正常に動作させる正常化回路であって、
前記疑トロイネットに挿入され、認証部と、無効化部とを備え、
前記認証部は、遷移カウンタとクロックカウンタとを有し、前記疑トロイネットの出力の遷移回数が、所定のクロック数において予め定められた閾値未満の場合、前記疑トロイネットをトロイネットであるとの判定結果を前記無効化部に出力し、
前記無効化部は、前記トロイネットの出力を無効化する無効化素子を有する
ことを特徴とする正常化回路。
【請求項4】
前記遷移回数の閾値が3、前記クロック数の閾値が32であることを特徴とする請求項3記載の正常化回路。
【請求項5】
請求項3または請求項4の正常化回路を含むことを特徴とする集積回路。
発明の詳細な説明 【技術分野】
【0001】
本発明は、集積回路の正常化方法、正常化回路、及び集積回路に関し、特にハードウェアトロイが埋め込まれた集積回路を正常化する方法、正常化回路、及び集積回路に関する。
【背景技術】
【0002】
近年、半導体業界においては、外部業者が情報処理装置に用いられる集積回路の製造に関わるようになったことから、集積回路の安全性が問題視されるようになっている。本来意図されていない機能(ハードウェアトロイ、以下「HT」とも記す。)を集積回路に埋め込むことが、第三者である外部業者において容易になったためであり、こうしたハードウェアトロイを検出することが求められている。
【0003】
一般的には、ハードウェアトロイを検出するには、対象となる集積回路のハードウェアトロイに関する情報が必要とされてきた。ハードウェアトロイを含まない健全な設計データを利用して、ハードウェアトロイを検出する方法が提案されている(例えば、非特許文献1参照)。例えば、製造段階において挿入されたトロイの有無は、トロイが挿入されていない健全なチップと、トロイが挿入されたチップとの間で、物理的な重さや電力量、あるいは電磁波などについての差分をとることによって判断することができる。
【0004】
ハードウェアトロイは、集積回路の製造段階のみならず設計段階においても埋め込まれる可能性がある。設計データに対して、ハードウェアトロイの個所を一度活性化させた後、その部分を無効化させるアプローチが提案されている(例えば非特許文献1)。
【先行技術文献】
【0005】

【非特許文献1】M. Hicks, M. Finnicum, S. T. King, M. M. Martin, and J. M. Smith, “Overcoming an untrusted computing base: detecting and removing malicious hardware automatically,” in Proc. Symposium on Security and Privacy (SP), 2010, pp. 159-172
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記非特許文献1のように、ハードウェアトロイの個所を一度活性化させた後、その部分を無効化させるアプローチをとる場合、滅多に動作しないように設計されたハードウェアトロイは、動作させる方法を知ることはできないため、ハードウェアトロイを動作させることが困難であるという問題がある。また、だれが、いつ、どこでハードウェアトロイを作成し、埋め込んだのか不明であるから、集積回路に埋め込まれているハードウェアトロイを全て検出することは非常に困難であり、ハードウェアトロイに対するセキュリティ上の懸念を完全に解消することは期待できない。
【0007】
そこで本発明は、ハードウェアトロイが存在していても正常に集積回路を動作させることができる正常化方法、正常化回路、及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る正常化方法は、ハードウェアトロイに接続されている疑いのある疑トロイネットを含む集積回路を正常に動作させる正常化方法であって、前記疑トロイネットの遷移回数が、所定のクロック数において予め定められた閾値未満の場合、前記疑トロイネットをトロイネットであると判定する工程と、前記トロイネットの出力を無効化する工程とを備えることを特徴とする。
【0009】
本発明に係る正常化回路は、ハードウェアトロイに接続されている疑いのある疑トロイネットを含む集積回路を正常に動作させる正常化回路であって、前記疑トロイネットに挿入され、認証部と、無効化部とを備え、前記認証部は、遷移カウンタとクロックカウンタとを有し、前記疑トロイネットの出力の遷移回数が、所定のクロック数において予め定められた閾値未満の場合、前記疑トロイネットをトロイネットであるとの判定結果を前記無効化部に出力し、前記無効化部は、前記トロイネットの出力を無効化する無効化素子を有することを特徴とする。
【0010】
本発明に係る集積回路は、上記正常化回路を含むことを特徴とする。
【発明の効果】
【0011】
本発明によれば、疑トロイネットのうち、正常ネットの出力はそのままとし、トロイネットの出力のみを無効化することにより、ハードウェアトロイを含む集積回路を正常に動作させることができる。
【図面の簡単な説明】
【0012】
【図1】本実施形態に係る正常化回路の構成を示すブロック図である。
【図2】疑トロイネットの説明に供するブロック図である。
【図3】疑トロイネットを認証する処理手順を示すフローチャートである。
【図4】正常ネットの出力と正常化回路の出力の変化を示すタイミングチャートであり、(A)疑トロイネットの出力信号、(B)第3記憶素子からの処理信号、(C)処理結果信号である。
【図5】トロイネットの出力と正常化回路の出力の変化を示すタイミングチャートであり、(A)疑トロイネットの出力信号、(B)第3記憶素子からの処理信号、(C)処理結果信号である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施形態について詳細に説明する。

【0014】
集積回路は、複数の各種素子を含む回路で構成される。集積回路が備えるネットリストは、集積回路に含まれる各種素子や回路同士を接続する配線(以下、「ネット」いう。)の一覧を記述した設計データである。ネットは、問題のない正常なネット(以下、「正常ネット」という。)のみから構成されることが理想的である。

【0015】
集積回路がハードウェアトロイを含む場合、集積回路にはさらにハードウェアトロイ回路が挿入される。ハードウェアトロイ回路は、ペイロード回路、トリガー回路を含む。ハードウェアトロイ回路は、ハードウェアトロイに含まれている特定のネットであるトロイネットが、ペイロード回路、トリガー回路、またはこれら2つの回路の間に存在する。本明細書では、トロイネットである可能性があるネットを疑トロイネットという。

【0016】
本発明者らは、特願2014-233953において、ネットリストに含まれる疑トロイネットの中からトロイネットであることが明白なネットを検出する手法を確立している。疑トロイネットの中から明白なトロイネットを検出することによって、ハードウェアトロイの危険性を低減することができる。しかしながら、明白なトロイネットがないとしても疑トロイネットの中には、正常ネットの他にトロイネットが含まれている可能性がある。集積回路が備えるネットリスト中に疑トロイネットが存在している限り、当該集積回路は信頼性が高いとはいえない。

【0017】
(全体構成)
図1に示す正常化回路10は、疑トロイネット11に挿入され、当該疑トロイネット11のうち認証されなかったネット、すなわちトロイネットの出力を無効化することにより、集積回路(図示しない)を正常に動作させる。疑トロイネット11は、疑トロイゲートを通じてハードウェアトロイに接続されている。

【0018】
疑トロイネット11の一例について、図2を参照して説明する。疑トロイゲートとしてAND回路16と、当該AND回路16の入力として6個以上のAND回路46a~46nが接続されている場合、AND回路16の出力であるネットは、疑トロイネット11である。その他の疑トロイネット11の例は、上記特願2014-233953に記載されている。

【0019】
正常化回路10(図1)は、認証部12と、無効化部14とを備える。認証部12は、監視モジュール18と、管理モジュール20とを有する。監視モジュール18は、疑トロイネット11の出力を監視し、その結果を管理モジュール20へ出力する。監視モジュール18は、第1記憶素子22と、遷移判別素子24と、遷移カウンタ26と、クロックカウンタ28とを含む。

【0020】
第1記憶素子22は、入力に疑トロイネット11が接続され、クロック入力にクロック信号線が接続されており、出力が遷移判別素子24の一方の入力に接続されている。第1記憶素子22は、疑トロイネット11からの出力信号とクロック信号線からのクロック信号とが入力され、1クロック前の疑トロイネット11からの出力信号を、遷移判別素子24に出力する。第1記憶素子22は、フリップフロップで構成される。

【0021】
遷移判別素子24は、一方の入力に第1記憶素子22の出力が接続され、他方の入力に疑トロイネット11が接続されており、出力が遷移カウンタ26の入力に接続されている。遷移判別素子24は、第1記憶素子22から入力される1クロック前の疑トロイネット11の出力と、現在のクロックの疑トロイネット11の出力が異なる場合、疑トロイネット11の出力が遷移したと判別し、Hレベルの遷移信号を出力する。一方、遷移判別素子24は、第1記憶素子22から入力される1クロック前の疑トロイネット11の出力と、現在のクロックの疑トロイネット11の出力が同じ場合、疑トロイネット11の出力が遷移しなかったと判別し、Lレベルの遷移信号を出力する。遷移判別素子24は、XOR(排他的論理和)ゲートで構成される。

【0022】
遷移カウンタ26は、入力に遷移判別素子24の出力が接続され、クロック入力にクロック信号線が接続されており、出力が管理モジュール20へ接続されている。遷移カウンタ26は、遷移判別素子24から入力されるHレベルの遷移信号をクロック毎にカウントし、当該遷移信号の数(以下、遷移回数という)に応じた遷移回数信号を出力する。すなわち遷移カウンタ26は、遷移回数が、所定の閾値(2-1)未満の場合、遷移回数信号をLレベルに保持し、所定の閾値(2-1)以上になった場合、遷移回数信号をHレベルに変化させる。ここでMは、遷移カウンタ26のビット数である。

【0023】
クロックカウンタ28は、入力にクロック信号線が接続されており、出力が管理モジュール20へ接続されている。クロックカウンタ28は、クロック数に応じたクロック数信号を出力する。すなわちクロックカウンタ28は、クロック数が所定の閾値2未満の場合、クロック数信号をLレベルに保持し、クロック数が所定の閾値2以上になった場合クロック数信号をHレベルに変化させる。ここでNは、クロックカウンタ28のビット数である。

【0024】
管理モジュール20は、認証素子30と、管理値出力素子32と、第2記憶素子34とを含む。管理モジュール20は、監視モジュール18から出力された疑トロイネット11の出力の監視結果に基づき、当該疑トロイネット11のからの出力を有効化するか又は無効化するかを管理する。

【0025】
認証素子30は、一方の入力に遷移カウンタ26の出力が接続され、他方の入力にクロックカウンタ28の出力が接続されており、出力が管理値出力素子32の入力に接続されている。認証素子30は、遷移カウンタ26からの遷移回数信号が入力され、クロックカウンタ28からのクロック数信号が反転された状態で入力される。認証素子30は、クロック数信号がLレベル(反転された状態がHレベル)のとき、Hレベルの認証信号を出力する。認証素子30は、クロック数信号がHレベル(反転された状態がLレベル)に変化したとき、遷移回数信号がHレベルであれば、疑トロイネット11を正常ネットであると認証し、認証信号をHレベルに保持する。一方、認証素子30は、クロック数信号がHレベル(反転された状態がLレベル)であって、遷移回数信号がLレベルの場合、疑トロイネット11を認証せず、トロイネットであると判別し、Lレベルの認証信号を出力する。認証素子30は、OR(論理和)ゲートで構成される。

【0026】
管理値出力素子32は、一方の入力に認証素子30の出力が接続され、他方の入力に管理モジュール20の出力が接続されており、出力が第2記憶素子34に接続されている。なお、管理モジュール20の出力は、初期段階では、Hレベルである。管理値出力素子32は、認証素子30からの認証信号が、HレベルであればHレベルの管理値信号、LレベルであればLレベルの管理値信号を出力する。管理値出力素子32は、AND(論理積)ゲートで構成される。

【0027】
第2記憶素子34は、入力に管理値出力素子32が接続され、クロック入力にクロック信号線が接続され、リセット入力にリセット信号線が接続されており、出力が無効化部14に接続されている。第2記憶素子34は、管理値出力素子32からの管理値信号を保持すると共に、管理値信号に応じた指示信号を出力する。なお指示信号は、初期段階においてHレベルとする。第2記憶素子34は、当該管理値信号がLレベルであればLレベルの指示信号を出力する。このように第2記憶素子34は、Lレベルの管理値信号を受信し、疑トロイネット11をトロイネットであると判別すると、その結果を管理値出力素子32へフィードバックする。これにより、管理モジュール20は、トロイネットであるとの判別結果を保持する。一方、第2記憶素子34は、管理値信号がHレベルであれば、指示信号をHレベルのまま出力する。第2記憶素子34は、リセット信号が入力されると、保持していた管理値信号を消去する。第2記憶素子34は、揮発性のフリップフロップで構成される。

【0028】
第2記憶素子34の出力を管理値出力素子32にフィードバックすることでトロイネットの判別結果が保存されるが、認証後もクロックが供給されて遷移カウンタ26とクロックカウンタ28が動作し、認証素子30の値が遷移する可能性がある。そこで、管理値出力素子32に管理モジュール20の出力を接続することで、一度トロイネットと判定した後は認証素子30の値に関わらず、管理モジュール20がトロイネットの判別を保持し続けることが可能になる。

【0029】
無効化部14は、第3記憶素子40と、無効化素子42とを含む。第3記憶素子40は、入力された指示信号を保持すると共に、当該指示信号に応じた処理信号を出力する。処理信号は、疑トロイネット11の定常状態における出力信号のレベルによって選択される。本実施形態では、疑トロイネット11の定常状態における出力信号がLレベルである場合について説明する。この場合、第3記憶素子40は、疑トロイネット11が正常ネットであり第2記憶素子34からHレベルの指示信号が入力されると、処理信号をHレベルのまま保持する。一方、第3記憶素子40は、疑トロイネット11がトロイネットであり第2記憶素子34からLレベルの指示信号が入力されると、処理信号をLレベルに変化させる。なお、疑トロイネット11の定常状態は、シミュレーションにより集積回路を動作させることで得られる。第3記憶素子は、不揮発性のフリップフロップで構成されるのが好ましい。

【0030】
無効化素子42は、一方の入力に第3記憶素子40が接続され、他方の入力に疑トロイネット11が接続されている。無効化素子42は、第3記憶素子40からの処理信号がHレベルであれば、疑トロイネット11からの出力信号と同じレベルの処理結果信号を出力する。一方、無効化素子42は、第3記憶素子40からの処理信号がLレベルの場合、疑トロイネット11からの出力信号が、定常状態のLレベルからHレベルに遷移したとき、Lレベルの処理結果信号を出力することで、疑トロイネット11の出力を無効化する。無効化素子42は、定常状態における疑トロイネット11の出力信号がLレベルのとき、AND(論理積)ゲートで構成される。

【0031】
(認証処理)
次に、認証部12における認証処理手順について、図3を参照して説明する。認証部12は、本図に示す認証処理手順の開始ステップRT1から入ってステップSP1へ移る。ステップSP1において認証部12は、疑トロイネット11からの出力信号が遷移したか否かを判定する。ステップSP1において肯定結果が得られると、このことは疑トロイネット11からの出力信号がHレベルからLレベル、又はLレベルからHレベルへ遷移したことを表しており、このとき認証部12はステップSP2へ移る。

【0032】
ステップSP2において認証部12は、遷移カウンタ26に1を加え、ステップSP3へ移る。

【0033】
一方、ステップSP1において否定結果が得られると、このことは疑トロイネット11からの出力信号がHレベルのまま、又はLレベルのままであることを表しており、このとき認証部12はステップSP3へ移る。

【0034】
ステップSP3において認証部12は、クロックカウンタ28に1を加え、ステップSP4へ移る。

【0035】
ステップSP4において認証部12は、クロックカウンタ28の値が2以上か否か判定する。ステップSP4において肯定結果が得られると、このことはクロック数が所定の閾値に達したことを表しており、このとき認証部12はステップSP5へ移る。一方、ステップSP4において否定結果が得られると、認証部12はステップSP1へ戻り、クロックカウンタ28の値が2に達するまで、ステップSP1からステップSP3の処理ループを繰り返す。

【0036】
ステップSP5において認証部12は、遷移カウンタ26の値が(2-1)以上か否かを判定する。ステップSP5において肯定結果が得られると、このことは遷移回数が所定の閾値に達したことを表しており、このとき認証部12はステップSP6へ移る。

【0037】
ステップSP6において認証部12は、疑トロイネット11を正常ネットであると認証し、ステップSP8へ移り、認証処理手順を終了する。

【0038】
一方、ステップSP5において否定結果が得られると、認証部12はステップSP7へ移る。ステップSP7において認証部12は、疑トロイネット11を正常ネットであるとは認証せず、すなわちトロイネットであると判別し、ステップSP8へ移り、認証処理手順を終了する。

【0039】
(動作及び効果)
次に上記のように構成された正常化回路10の動作及び効果について説明する。まず、正常化回路10を挿入すべき集積回路中の疑トロイネット11を検出する。疑トロイネット11を検出する方法については、上述の通り、特願2014-233953に記載の方法を用いることができる。

【0040】
次いで、正常化回路10は、検出された集積回路中の疑トロイネット11に挿入される。すなわち、正常化回路10は、疑トロイネット11を切断し、その端部同士の間に挿入される。集積回路中に疑トロイネット11が複数存在する場合には、それぞれの疑トロイネット11毎に正常化回路10が挿入される。

【0041】
疑トロイネット11に接続された正常化回路10は、疑トロイネット11からの出力信号を監視する。具体的には、認証部12が、クロック数と、疑トロイネット11からの出力信号の遷移回数とをカウントし、クロック数と遷移回数とが所定の閾値に達したか否かを判別する。本実施形態の場合、クロック数の閾値は2、遷移回数の閾値は(2-1)である。因みに、賢いハードウェアトロイは滅多に動作しないように設計されているので、所定のクロック数において、疑トロイネット11からの出力信号の遷移回数が閾値に達した場合、監視モジュール18は、当該疑トロイネット11を問題のない正常ネットであると判別する。この場合、正常化回路10は、当該疑トロイネット11の出力信号を、そのまま出力する。

【0042】
一方、所定のクロック数において、疑トロイネット11からの出力信号の遷移回数が閾値に達しなかった場合、監視モジュール18は、当該疑トロイネット11をトロイネットであると判別する。この場合、正常化回路10は、トロイネットの出力信号を、無効化する。

【0043】
ここで図4を参照して、疑トロイネット11が正常ネットである場合について説明する。Nが3、Mが2と仮定する。この場合、クロック数の閾値は8、遷移回数の閾値は3となる。本図は、正常ネットの出力と正常化回路の出力の変化を示すタイミングチャートであり、(A)疑トロイネットの出力信号、(B)第3記憶素子からの処理信号、(C)処理結果信号を示し、横軸はクロック数を示す。

【0044】
図4(A)に示すように、疑トロイネット11の出力信号は、クロック数が8になるまでの間(同図▼印)に4回遷移しているので、遷移回数は閾値の3以上である。したがって認証部12は、当該疑トロイネット11を正常ネットであると認証する。これにより無効化部14は、第3記憶素子40から出力する処理信号をHレベルに保持することで(図4(B))、当該疑トロイネット11からの出力信号と同じレベルの処理結果信号を出力する(図4C))。

【0045】
一方、図5を参照して、疑トロイネット11がトロイネットである場合について説明する。本図は、トロイネットの出力と正常化回路の出力の変化を示すタイミングチャートであり、(A)疑トロイネットの出力信号、(B)第3記憶素子からの処理信号、(C)処理結果信号を示し、横軸はクロック数を示す。図5(A)に示すように、クロック数が8になるまでの間(同図▼印)における疑トロイネット11の遷移回数は1回であるので、遷移回数は閾値3未満である。したがって認証部12は、当該疑トロイネット11をトロイネットであると判別する。これにより無効化部14は、第3記憶素子40から出力する処理信号をLレベルに変化させ(図5(B))、当該疑トロイネット11からの出力信号が定常状態のLレベルからHレベルに遷移したとき、Lレベルの処理結果信号を出力する(図5(C))。これにより、疑トロイネット11からの出力は、無効化される。

【0046】
このようにして正常化回路10は、疑トロイネット11のうち、正常ネットの出力はそのままとし、トロイネットの出力のみを無効化することにより、ハードウェアトロイを含む集積回路を正常に動作させることができる。

【0047】
正常化回路10は、認証部12と無効化部14を備えるだけの簡単な構成で、上記の効果を得ることができる。

【0048】
正常化回路10は、第2記憶素子34と第3記憶素子40とを有するので、演算に遅延が生じた場合でも安全に動作することができる。

【0049】
上記のような正常化回路10は、外部業者によって設計された集積回路の設計データ中に、トロイネットであると断定できないネットを含むネットリストが存在する場合に、ユーザ側で当該ネットに挿入される使い方が想定される。

【0050】
また認証部12を含む検査装置を、集積回路を設計するCAD(computer-aided design)装置と一体化し、外部業者によって設計された集積回路の設計データを検査し、必要に応じ正常化回路10を自動的に挿入することとしてもよい。

【0051】
さらにFPGA(field-programmable gate array)中に予め正常化回路10を複数挿入しておき、検査結果に基づき正常化回路10に配線をすることとしてもよい。

【0052】
既知のネットリストを用いて、本実施形態に係る正常化回路10が、疑トロイネット11に含まれる正常ネットとトロイネットとを区別できる上記閾値を、シミュレーションにより求める。既知ネットリストは、米国のサイト(Trust-HUB)に公開されているベンチマークの中から、ランダムに6個選択する。ベンチマークには、トロイネットを含むとされているベンチマーク(HT-inserted)とトロイネットを含まないとされているベンチマーク(HT-free)とが含まれる。

【0053】
Trust-HUBにおけるベンチマークは、ゲートレベルのネットリストが公開されている。下記表1に示されるように、これらのベンチマークは、ハードウェアトロイの有無(HT-inserted/HT-free)、ネット数、および疑トロイネット数が既知である。下記表1に示す6個のベンチマークのうちでは、2個が“HT-free”であり、4個が“HT-inserted”である。

【0054】
【表1】
JP2017146777A_000003t.gif

【0055】
各ベンチマークに含まれる疑トロイネットは、下記表2に示されるようにネット名、およびタイプ(正常ネットまたはトロイネット)も、ネットリスト中に明らかにされている。

【0056】
【表2】
JP2017146777A_000004t.gif

【0057】
上記表2に示されるように、“HT-free”であるとされているベンチマーク(s15850、s38417)に含まれている疑トロイネットは、いずれも正常ネットである。一方、“HT-inserted”であるとされているベンチマーク(s38417-T100、s38417-T200、s38584-T300、vga_lcd-T100)に含まれている疑トロイネットは、いずれもトロイネットである。

【0058】
正常ネットおよびトロイネットのいずれであるかが既知の疑トロイネットに対し、M(正数)とN(2以上の正数)とを組み合わせて、パラメーター(M,N)を設定する。

【0059】
ベンチマークに対して、論理シミュレータを用いてクロック数2だけ疑トロイネットを監視して、遷移回数をカウントする。カウントされた遷移回数が(2-1)以上の場合、疑トロイネットは正常ネットであると認証される。(M,N)の組み合わせを変更して、全ての疑トロイネットについて、認証結果と既知情報とが一致するか否かを調べる。

【0060】
例えば、上記表1に示した6個のベンチマークについては、下記表3に示すような結果が得られる。

【0061】
【表3】
JP2017146777A_000005t.gif

【0062】
上記表3においては、チェックマークは、既知情報と一致した正しい認証結果が得られることを示している。FNはトロイネットを誤って正常ネットと認証し有効化した結果、FPは正常ネットを誤ってトロイネットと判別し無効化した結果を示す。正常化回路は、(M,N)が(2,5)の場合、既知情報と一致した正しい認証結果を得ることができる。

【0063】
さらに、上記のシミュレーションにより得られた(M,N)が(2,5)の閾値を用い、ハードウェアトロイを含むベンチマーク(RS232-T1000、Ethernet(登録商標)MAC10GE-T700)に正常化回路を挿入し、当該正常化回路がトロイネットの出力を無効化することができるか、シミュレーションにて検証する。RS232-T1000に含まれるトロイネットは、iRECEIVER_CTRLと、iCTRLであり、正常化回路は、シミュレーションの結果、これらのトロイネットの出力を正確に無効化することができた。この場合、正常化回路を挿入したことによる面積オーバーヘッドは約20%、遅延オーバーヘッドは0であった。

【0064】
またEthernet(登録商標)MAC10GE-T700に含まれるトロイネットは、Tj_OUTClockであり、正常化回路は、シミュレーションの結果、これらのトロイネットの出力を正確に無効化することができた。この場合、正常化回路を挿入したことによる面積オーバーヘッドは約0.05%、遅延オーバーヘッドは0であった。

【0065】
(変形例)
本発明は上記実施形態に限定されるものではなく、本発明の趣旨の範囲内で適宜変更することが可能である。

【0066】
上記実施形態では、トロイネットの定常状態における出力信号がLレベルの場合について説明したが、本発明はこれに限られず、トロイネットの定常状態における出力信号がHレベルの場合も適用できる。この場合、第3記憶素子40は、疑トロイネット11が正常ネットであり第2記憶素子34からHレベルの指示信号が入力されると、Lレベルの処理信号を出力する。一方、第3記憶素子40は、疑トロイネット11がトロイネットであり第2記憶素子34からLレベルの指示信号が入力されると、Hレベルの処理信号を出力する。無効化素子42は、処理信号がLレベルであれば、疑トロイネット11からの出力信号と同じレベルの処理結果信号を出力する。一方、無効化素子42は、処理信号がHレベルの場合、疑トロイネット11からの出力信号がHレベルからLレベルに遷移したとき、Hレベルの処理結果信号を出力することで、疑トロイネット11の出力を無効化する。このように定常状態における疑トロイネット11の出力信号がHレベルのとき、無効化素子42はOR(論理和)ゲートで構成される。
【符号の説明】
【0067】
10 正常化回路
11 疑トロイネット
12 認証部
14 無効化部
26 遷移カウンタ
28 クロックカウンタ
42 無効化素子
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4