(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023117352
(43)【公開日】2023-08-23
(54)【発明の名称】ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム
(51)【国際特許分類】
G06F 30/327 20200101AFI20230816BHJP
G06F 21/56 20130101ALI20230816BHJP
【FI】
G06F30/327
G06F21/56 370
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022109202
(22)【出願日】2022-07-06
(31)【優先権主張番号】P 2022019291
(32)【優先日】2022-02-10
(33)【優先権主張国・地域又は機関】JP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.VERILOG
(71)【出願人】
【識別番号】391016358
【氏名又は名称】東芝情報システム株式会社
(74)【代理人】
【識別番号】100156199
【弁理士】
【氏名又は名称】神崎 真
(74)【代理人】
【識別番号】100124497
【弁理士】
【氏名又は名称】小倉 洋樹
(74)【代理人】
【識別番号】100090169
【弁理士】
【氏名又は名称】松浦 孝
(74)【代理人】
【識別番号】100074147
【弁理士】
【氏名又は名称】本田 崇
(72)【発明者】
【氏名】永田 真一
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146GC03
(57)【要約】
【課題】簡単なアルゴリズムによってハードウエアトロイ検出が可能となるようにする。
【解決手段】設計対象のRTL論理回路の機能を記述したHDL記述と、論理合成に使用する複数のセルのそれぞれのセル名称に対応して、機能情報、サイズ情報、遅延情報を含むセル情報が記憶されたプリミティブセルライブラリ60のセル情報と、合成する回路の扱いに関する制御情報である合成スクリプトとを入力として、論理合成を行いゲートネットを得る論理合成手段50を具備し、前記プリミティブセルライブラリ60は、ハードウエアトロイ検出用のセル情報を含んでいる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
設計対象のRTL論理回路の機能を記述したHDL記述と、論理合成に使用する複数のセルのそれぞれのセル名称に対応して、機能情報、サイズ情報、遅延情報を含むセル情報が記憶されたプリミティブセルライブラリのセル情報と、合成する回路の扱いに関する制御情報である合成スクリプトとを入力として、論理合成を行いゲートネットを得る論理合成手段を具備し、
前記プリミティブセルライブラリは、ハードウエアトロイ検出用のセル情報を含んでいることを特徴とするハードウエアトロイ検出装置。
【請求項2】
前記ハードウエアトロイ検出用のセル情報は、通常のプリミティブセルライブラリには入れられていないセルに関するセル情報であることを特徴とする請求項1に記載のハードウエアトロイ検出装置。
【請求項3】
前記ハードウエアトロイ検出用のセル情報は、通常用いられない入力信号数の入力端子を有する論理ゲートによりトリガを作成する回路のセル情報であることを特徴とする請求項1または2に記載のハードウエアトロイ検出装置。
【請求項4】
前記ハードウエアトロイ検出用のセル情報は、通常用いられない入力信号数の入力端子を有する論理ゲートによりトリガを作成する回路よりトリガを受けるペイロードの回路の情報であることを特徴とする請求項3に記載のハードウエアトロイ検出装置。
【請求項5】
前記ハードウエアトロイ検出用のセル情報は、前記論理合成手段が当該セルを論理合成に採用する確率を上昇させるためにサイズ情報と遅延情報の少なくとも一方を調整したものとなっていることを特徴とする請求項3に記載のハードウエアトロイ検出装置。
【請求項6】
前記論理合成手段は、コンピュータのプロセッサがプログラムを用いて実現するものであり、
前記プリミティブセルライブラリは、前記コンピュータの記憶装置に記憶されていることを特徴とする請求項1に記載のハードウエアトロイ検出装置。
【請求項7】
論理合成に使用する複数のセルのそれぞれのセル名称に対応して、機能情報、サイズ情報、遅延情報を含むセル情報が記憶されたプリミティブセルライブラリであって、ハードウエアトロイ検出用のセル情報を含んでいる記憶装置を備えるコンピュータを、
設計対象のRTL論理回路の機能を記述したHDL記述と、前記プリミティブセルライブラリのセル情報と、合成する回路の扱いに関する制御情報である合成スクリプトとを入力として、論理合成を行いゲートネットを得る論理合成手段として機能させることを特徴とするハードウエアトロイ検出用プログラム。
【請求項8】
前記ハードウエアトロイ検出用のセル情報は、通常のプリミティブセルライブラリには入れられていないセルに関するセル情報であることを特徴とする請求項7に記載のハードウエアトロイ検出用プログラム。
【請求項9】
前記ハードウエアトロイ検出用のセル情報は、通常用いられない入力信号数の入力端子を有する論理ゲートによりトリガを作成する回路のセル情報であることを特徴とする請求項7または8に記載のハードウエアトロイ検出用プログラム。
【請求項10】
前記ハードウエアトロイ検出用のセル情報は、通常用いられない入力信号数の入力端子を有する論理ゲートによりトリガを作成する回路よりトリガを受けるペイロードの回路の情報であることを特徴とする請求項9に記載のハードウエアトロイ検出用プログラム。
【請求項11】
前記ハードウエアトロイ検出用のセル情報は、前記論理合成手段が当該セルを論理合成に採用する確率を上昇させるためにサイズ情報と遅延情報の少なくとも一方を調整したものとなっていることを特徴とする請求項9に記載のハードウエアトロイ検出用プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラムに関するものである。
【背景技術】
【0002】
半導体集積回路の設計においては、半導体集積回路を構成する設計対象のRTL論理回路の機能を記述したHDL記述を作成し、これを用いるのが通例である。例えば特許文献1においては、設計対象とする回路の機能をハードウエア記述言語(HDL)によって記述し、機能シミュレーションによって検証し、論理合成システムと呼ばれるツールによって、HDL記述からゲートアレイ、スタンダードセルなどのテクノロジに依存した論理回路を自動生成することが一般的になっている旨、述べられている。
【0003】
また、特許文献2には、プリプロセッサ制御ファイルに基づいて、第1のハードウエア記述言語と第2のハードウエア記述言語が混在する第1の回路記述ファイルの処理を行い、前記第1の回路記述ファイルにおける第1のハードウエア記述言語で記述された少なくとも一部を第2のハードウエア記述言語に変換して第2の回路記述ファイルを生成し、出力することが開示されている。これによって、作業時間を短縮し、且つ人手の介在によるバグの混入を避けることができ、検証作業にかける時間も不要になる、としている。
【0004】
更に、特許文献3には、レジスタ転送レベルの回路情報を記したHDL記述を用いた論理回路設計支援方法が示されている。この方法では、 前記第1のHDL記述を入力する
HDL記述入力工程、前記回路情報から機能部品の種類や接続関係を解析する回路構造解析工程、前記回路構造解析工程における解析結果を基に指定の論理合成ツールに対する合成指示を生成する合成指示生成工程、人手により合成指示の採用決定および追加入力を行ない決定された合成指示を前記第1のHDL記述内の記述箇所と対応付けを行なう合成指示設定工程、前記第1のHDL記述に前記合成指示を追加した第2のHDL記述を出力する合成指示付HDL記述出力工程を含むものである。
【0005】
上記によって、出力された合成指示付HDL記述は流用設計への展開が容易となり、このHDL記述を使用する他の品種の設計も効率化することが可能となる、としている。
【0006】
更に、特許文献4には、半導体集積回路の設計では、既に検証済みの設計資産の有効活用を図るために、予めセルライブラリで定義された論理ゲート、アンプ、機能モジュール等の多数の基本セルを設計部品として用いることが開示されている。従来、基本セルとして定義されている回路の性質は、トランジスタサイズ、CMOS回路におけるpチャネル型とnチャネル型との間のMOSトランジスタサイズ比、回路パターン形状などを具体的に数値で定義しているとしている。
【0007】
上記のように回路設計のために様々な工夫がなされ、設計の効率化が見られる。ところで、このような論理合成まで進む過程でハードウエアトロイが入れ込まれることがあり、論理合成の結果得られたゲートネットを見てもハードウエアトロイを検出することは困難である。
【0008】
本願の発明者らは、特許文献5に示されるように検査対象のネットリストに含まれる全論理セルの論理式による演算を行って全論理セルの入出力値の更新を行う入出力更新手段、更新された入出力値が閾値との比較結果に基づきハードウエアトロイの検出を行う検出手段、全論理セルの入出力のネットに初期値としてパラメータを設定するパラメータ設定手段、をプログラムにより実現した。入出力更新手段では、設定された前記パラメータを用いた演算を論理セルの全てについて所定回クール行って入力値と出力値の更新を行い、検出手段では、演算を所定回クール行ったときに得られたいずれかの論理セルの出力値に基づきハードウエアトロイの検出を行う。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2000-348086号公報
【特許文献2】特開2004-303022号公報
【特許文献3】特開2007-102631号公報
【特許文献4】特開2003-036280号公報
【特許文献6】特開2022-007202号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上記のハードウエアトロイ検出の手法は、演算が必要であり、回路規模が大きくなるに従って演算量が多くなり検出に時間を要するものとなる。
本発明はこのようなハードウエアトロイ検出の現状に鑑みてなされたもので、その目的は、簡単なアルゴリズムによってハードウエアトロイ検出が可能なハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラムを提供することである。
【課題を解決するための手段】
【0011】
本発明の実施形態に係るハードウエアトロイ検出装置は、設計対象のRTL論理回路の機能を記述したHDL記述と、論理合成に使用する複数のセルのそれぞれのセル名称に対応して、機能情報、サイズ情報、遅延情報を含むセル情報が記憶されたプリミティブセルライブラリのセル情報と、合成する回路の扱いに関する制御情報である合成スクリプトとを入力として、論理合成を行いゲートネットを得る論理合成手段を具備し、前記プリミティブセルライブラリは、ハードウエアトロイ検出用のセル情報を含んでいることを特徴とする。
【0012】
本発明の実施形態に係るハードウエアトロイ検出装置では、前記ハードウエアトロイ検出用のセル情報は、通常のプリミティブセルライブラリには入れられていないセルに関するセル情報であることを特徴とする。
【0013】
本発明の実施形態に係るハードウエアトロイ検出装置では、前記ハードウエアトロイ検出用のセル情報は、通常用いられない入力信号数の入力端子を有する論理ゲートによりトリガを作成する回路のセル情報であることを特徴とする。
【0014】
本発明の実施形態に係るハードウエアトロイ検出装置では、前記ハードウエアトロイ検出用のセル情報は、通常用いられない入力信号数の入力端子を有する論理ゲートによりトリガを作成する回路よりトリガを受けるペイロードの回路の情報であることを特徴とする。
【0015】
本発明の実施形態に係るハードウエアトロイ検出装置では、前記ハードウエアトロイ検出用のセル情報は、前記論理合成手段が当該セルを論理合成に採用する確率を上昇させるためにサイズ情報と遅延情報の少なくとも一方を調整したものとなっていることを特徴とする。
【0016】
本発明の実施形態に係るハードウエアトロイ検出装置では、前記論理合成手段は、コンピュータのプロセッサがプログラムを用いて実現するものであり、前記プリミティブセルライブラリは、前記コンピュータの記憶装置に記憶されていることを特徴とする。
【0017】
本発明の実施形態に係るハードウエアトロイ検出用プログラムは、論理合成に使用する複数のセルのそれぞれのセル名称に対応して、機能情報、サイズ情報、遅延情報を含むセル情報が記憶されたプリミティブセルライブラリであって、ハードウエアトロイ検出用のセル情報を含んでいる記憶装置を備えるコンピュータを、設計対象のRTL論理回路の機能を記述したHDL記述と、前記プリミティブセルライブラリのセル情報と、合成する回路の扱いに関する制御情報である合成スクリプトとを入力として、論理合成を行いゲートネットを得る論理合成手段として機能させることを特徴とする。
【0018】
本発明の実施形態に係るハードウエアトロイ検出用プログラムでは、前記ハードウエアトロイ検出用のセル情報は、通常のプリミティブセルライブラリには入れられていないセルに関するセル情報であることを特徴とする。
【0019】
本発明の実施形態に係るハードウエアトロイ検出用プログラムでは、前記ハードウエアトロイ検出用のセル情報は、通常用いられない入力信号数の入力端子を有する論理ゲートによりトリガを作成する回路のセル情報であることを特徴とする。
【0020】
本発明の実施形態に係るハードウエアトロイ検出用プログラムでは、前記ハードウエアトロイ検出用のセル情報は、通常用いられない入力信号数の入力端子を有する論理ゲートによりトリガを作成する回路よりトリガを受けるペイロードの回路の情報であることを特徴とする。
【0021】
本発明の実施形態に係るハードウエアトロイ検出用プログラムでは、前記ハードウエアトロイ検出用のセル情報は、前記論理合成手段が当該セルを論理合成に採用する確率を上昇させるためにサイズ情報と遅延情報の少なくとも一方を調整したものとなっていることを特徴とする。
【図面の簡単な説明】
【0022】
【
図1】本発明の実施形態に係るハードウエアトロイ検出装置を実現するコンピュータの構成ブロック図。
【
図2】本発明の実施形態に係るハードウエアトロイ検出装置のブロック図。
【
図3】本発明の実施形態に係るハードウエアトロイ検出装置で用いられるプリミティブセルライブラリに含まれるハードウエアトロイ検出用のセルのいくつかの例を示す図。
【
図4】本発明の実施形態で用いられるプリミティブセルライブラリの内容の一部をHDLによって記述した図。
【
図5】本発明の実施形態で用いられるプリミティブセルライブラリに含まれるインバータの論理回路図。
【
図6】
図5のインバータの遅延情報を説明するタイミングチャート。
【
図7】本発明の実施形態で用いられる合成スクリプトの一例を示す図。
【
図8】ハードウエアトロイ検出用のプリミティブセルを使って論理合成した結果であるゲートネットの一部を示す図。
【
図9】ハードウエアトロイ検出用のセル情報が含まれないプリミティブセルを使って論理合成した結果であるゲートネットの一部を示す図。
【
図10】ハードウエアトロイ検出用の32入力1出力のANDゲートと、4入力1出力の通常のANDゲートを10個と2入力1出力の通常のANDゲートを1個用いて上記32入力1出力のANDゲートを実現した論理回路図。
【発明を実施するための形態】
【0023】
以下添付図面を参照して本発明に係るハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラムの実施形態を説明する。各図において、同一の構成要素には同一の符号を付して重複する説明を省略する。本発明の実施形態に係るハードウエアトロイ検出装置は、例えばパーソナルコンピュータやワークステーションなどのコンピュータにより実現することができる。
【0024】
図1は、コンピュータの構成ブロック図である。コンピュータは、CPU10が主メモリ11内のプログラムやデータを用いて各部を制御してハードウエアトロイ検出装置として機能する。CPU10はバス12を介して外部記憶インタフェース13、入力インタフェース14、表示インタフェース15、通信インタフェース16が接続されている。
【0025】
外部記憶インタフェース13には、外部記憶装置23が接続され、入力インタフェース14には、キーボードやタッチパネルなどの入力装置24とマウスなどのポインティングデバイス22が接続されている。また、表示インタフェース15には、LCDなどの表示装置25が接続されており、画像を表示することが可能である。通信インタフェース16は通信ネットワークへ繋がる回線26が接続されており、他のコンピュータ等と通信することが可能である。
【0026】
本実施形態では、外部記憶装置23には、論理合成手段50と、プリミティブセルライブラリ60とが記憶されている。論理合成手段50は、プログラムであり、設計対象のRTL論理回路の機能を記述したHDL記述と、プリミティブセルライブラリ60のセル情報と、合成する回路の扱いに関する制御情報である合成スクリプトとを入力として、論理合成を行い、ゲートネットを得る。従って、論理合成手段50を1つのブロックとして表現すると、
図2に示すようにHDL記述とプリミティブセルライブラリ60のセル情報とを入力とし、ゲートネットを出力する構成を有したものである。上記設計対象のRTL論理回路の機能を記述したHDL記述、合成する回路の扱いに関する制御情報である合成スクリプトは、入力装置24から入力して外部記憶装置23へ記憶しておくことができ、また、通信インタフェース16を介して取り込み、外部記憶装置23へ記憶しておくことができる。
【0027】
上記プリミティブセルライブラリ60は、論理合成に使用する複数のセルのそれぞれのセル名称に対応して、機能情報、サイズ情報、遅延情報を含むセル情報が記憶されたセル情報であり、本実施形態では、ハードウエアトロイ検出用のセル情報を含んでいる。
【0028】
上記論理合成手段50に入力される設計対象のRTL論理回路の機能を記述したHDL記述は、設計対象のRTL論理回路の設計仕様書に従って設計担当者がVerilogやSystemVerilogというハードウエア記述言語HDLを用いて実現する機能を記述したものである。また、上記設計担当者が作成したHDL記述をシミュレーションして得たテストベクタと、上記設計担当者が作成したHDL記述とを、機能検証用のシミュレータに入力してシミュレーションを行い、検証済みのHDLとしたものであっても良い。
【0029】
上記プリミティブセルライブラリ60は、ハードウエアトロイ検出用のセル情報を含むものであり、
図3(a)に示すセル名がTROJTRIGGER1である32入力のANDゲート、
図3(b)に示すセル名がTROJTRIGGER2であるNANDゲート、
図3(c)に示すセル名がTROJTRIGGER3であるORゲート、
図3(d)に示すセル名がTROJTRIGGER4であるNORゲート、
図3(e)に示すセル名がTROJPAYLOAD1であるマルチプレクサとNANDゲートにより構成されるペイロードの回路が例示されている。この
図3には記載されていないが、各セル名に対応して、機能情報、サイズ情報、遅延情報を含むセル情報が記憶されている。また、
図3(a)~
図3(d)は、トリガを作成する回路のセル情報である。
【0030】
プリミティブセルライブラリ60には、通常で入れられていないセルに関するセル情報であるハードウエアトロイ検出用のセル情報が含まれている。プリミティブセルライブラリ60に含まれる上記ハードウエアトロイ検出用のセル情報は、通常用いられない入力信号数の入力端子を有する論理ゲートによりトリガを作成する回路のセル情報である。ここに、「通常用いられない入力信号数」とは、設計対象となるRTL論理回路(ツールベンダにより提供されたRTL記述に含まれている論理回路)において用いられている入力信号数より大きな入力信号数を指すものとする。ただし、実際上は、設計対象となるRTL論理回路において用いられている入力信号数の4倍以上を採用することができ、後に述べる例の論理回路は32入力であるので、設計対象となるRTL論理回路において用いられている入力信号数(2)の16倍としたものを採用している。
【0031】
図3は、プリミティブセルライブラリ60の内容の一部を論理回路記号を用いて表記したものであるが、実際には
図4に示すようにHDLによって記述される。
図4の左側に示すHDL記述に対し、その内容説明を矢印の先である
図4の右側に記載してある。このHDL記述に基づいて論理合成手段50は、論理合成の際に、どのセルを採用するのかを決定するものである。そのため、ハードウエアトロイ検出用のセル情報は、上記論理合成手段50が当該セルを論理合成に採用する確率を上昇させるためにサイズ情報と遅延情報の少なくとも一方を調整したものとすることができる。つまり、サイズ情報(面積情報)を小さい値にし、遅延情報(遅延時間)を小さい値にすることができる。ここで、「小さい値」については、次のように規定することができる。
【0032】
サイズ情報(面積情報)を小さい値にし、及びまたは、遅延情報(遅延時間)を小さい値にすることによって、論理合成手段50が当該セルを論理合成に採用する確率を上昇させることができる。ここに「小さい値」とは、設計対象となるRTL論理回路(ツールベンダにより提供されたRTL記述に含まれている論理回路)において用いられているサイズ情報(面積情報)や遅延情報(遅延時間)より小さな値を指すものとする。ただし、実際上は、設計対象となるRTL論理回路において用いられているサイズ情報(面積情報)や遅延情報(遅延時間)の1/2以下を採用することができる。
【0033】
図4のHDL記述に対応するセルは
図5に示すインバータであり、遅延情報を図に示すと
図6の如くなる。遅延情報においては、立ち上がり遅延、立下り遅延、立ち上がりトランジション、立下りトランジションのいずれもが1nsとなっている。
【0034】
上記の合成スクリプトは、
図7に示すようにHDLによって記述される。
図7の左側に示すHDL記述に対し、その内容説明を矢印で示す
図7の右側に記載してある。
【0035】
以上のように構成された本実施形態のハードウエアトロイ検出装置を用いてハードウエアトロイのベンチマーク回路を掲載しているTrust-HUB(https://trust-hub.org/#/benchmarks/chip-level-trojan)から、トロイ入りのRTL(BasicRSA-T100)をダウンロードして、ハードウエアトロイ検出用のプリミティブセル(TROJANTRIGGER1)を使って論理合成した結果であるゲートネットの一部を
図8に示す。
【0036】
即ち、
図8のゲートネットの記述内に枠線Dにより囲われたハードウエアトロイ検出用のセル情報により論理合成された部分が生じ、ハードウエアトロイのトリガ回路と疑う部分を特定することができた。つまり、ハードウエアトロイ検出用のセル情報であるセル名称を検出して、ハードウエアトロイの回路と疑う部分を特定することができる。
【0037】
一方、ハードウエアトロイ検出用のセル情報が含まれないプリミティブセルライブラリを用いて論理合成を行った結果のゲートネットの一部を
図9に示す。この結果では、4入力のANDゲートが10個使用された枠線NDにより囲われた部分を、異常に入力端子数が多いなどの特徴を設計者等が見つけ出す必要があり、ハードウエアトロイ検出が困難である。つまり、ハードウエアトロイ検出用のセル情報であるセル名称を検出して、ハードウエアトロイの回路と疑う部分を特定することができない。
【0038】
上記
図8の例は、
図10(a)に示すようなハードウエアトロイ検出用の32入力1出力のANDゲートのセル情報が含まれているプリミティブセルライブラリが用いられ、論理合成手段50によって上記ANDゲートのセル情報が採用されることによって出力される。一方、
図9の例は、
図10(a)に示すようなハードウエアトロイ検出用の32入力1出力のANDゲートのセル情報が含まれていないプリミティブセルライブラリが用いられ、
図10(b)に示されるように4入力1出力の通常のANDゲートを10個と2入力1出力の通常のANDゲートを1個用いて、
図10(a)に示すような32入力1出力のANDゲートに対応するトリガ回路が実現されることを示したものである。ただし、論理合成でセルを選択する基準として、サイズ情報が小さい値のもの、遅延情報(遅延時間)が小さい値のものであることが必要である。このため、例えば、
図10(b)の4入力1出力の通常のANDゲートのサイズを2とし、2入力1出力の通常のANDゲートのサイズを1とすると、
図10(b)の回路全体ではサイズは21となる。そこで、
図10(a)に示すようなハードウエアトロイ検出用の32入力1出力のANDゲートのサイズを21より小さくすることで、ハードウエアトロイ検出用の32入力1出力のANDゲートセルが採用されるようにしておく。
【0039】
なお、上記
図3に示したハードウエアトロイ検出用のセルは一例であり、これ以外のセルであっても良い。例えば、EX-OR回路やフリップフロップやセレクタなどであり、通常用いられない入力信号数の入力端子を有する論理ゲートであっても良い。
【符号の説明】
【0040】
10 CPU
11 主メモリ
12 バス
13 外部記憶インタフェース
14 入力インタフェース
15 表示インタフェース
16 通信インタフェース
22 ポインティングデバイス
23 外部記憶装置
24 入力装置
25 表示装置
26 回線
50 論理合成手段
60 プリミティブセルライブラリ