(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022175297
(43)【公開日】2022-11-25
(54)【発明の名称】サンプル生成装置、サンプル生成方法及びサンプル生成プログラム
(51)【国際特許分類】
G06F 30/327 20200101AFI20221117BHJP
G06F 30/27 20200101ALI20221117BHJP
【FI】
G06F30/327
G06F30/27
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021081582
(22)【出願日】2021-05-13
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】長谷川 健人
(72)【発明者】
【氏名】清本 晋作
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146DC03
5B146GA05
5B146GA06
5B146GC03
(57)【要約】
【課題】高品質かつ効率的にハードウェアトロイのサンプルを生成できるサンプル生成装置、サンプル生成方法及びサンプル生成プログラムを提供すること。
【解決手段】サンプル生成装置1は、ハードウェアトロイを構成するトリガ回路及びペイロード回路のテンプレートを、ゲートレベルよりも抽象度の高い、変数を含む記述方式で記憶する記憶部20と、トリガ回路のテンプレートから一つ、ペイロード回路のテンプレートから一つをランダムに選択し、かつ、変数をランダムに選択し、選択したテンプレートを接続して一つのモジュールを生成するモジュール生成部11と、生成されたモジュールを、前記変数を含む記述方式からゲートレベルの記述に論理合成し、変数に対応して選択した信号線で通常回路に接続した回路情報を出力する論理合成部12と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ハードウェアトロイを構成するトリガ回路及びペイロード回路のテンプレートを、ゲートレベルよりも抽象度の高い、変数を含む記述方式で記憶する記憶部と、
前記トリガ回路のテンプレートから一つ、前記ペイロード回路のテンプレートから一つをランダムに選択し、かつ、前記変数をランダムに選択し、選択したテンプレートを接続して一つのモジュールを生成するモジュール生成部と、
生成された前記モジュールを、前記変数を含む記述方式からゲートレベルの記述に論理合成し、前記変数に対応して選択した信号線で通常回路に接続した回路情報を出力する論理合成部と、を備えるサンプル生成装置。
【請求項2】
前記トリガ回路の変数は、前記通常回路から入力する信号線の数を含む請求項1に記載のサンプル生成装置。
【請求項3】
前記ペイロード回路の変数は、前記通常回路から入力する信号線の数、及び当該通常回路へ出力する信号線の数を含む請求項1又は請求項2に記載のサンプル生成装置。
【請求項4】
前記変数に対応して選択する信号線の候補集合が予め設定される請求項1から請求項3のいずれかに記載のサンプル生成装置。
【請求項5】
前記変数に対応して選択する信号線の候補集合は、前記トリガ回路及びペイロード回路のテンプレート毎に予め設定される請求項4に記載のサンプル生成装置。
【請求項6】
前記変数を含む記述方式は、レジスタ転送レベルである請求項1から請求項5のいずれかに記載のサンプル生成装置。
【請求項7】
ハードウェアトロイを構成するトリガ回路及びペイロード回路のテンプレートを、ゲートレベルよりも抽象度の高い、変数を含む記述方式で記憶する記憶ステップと、
前記トリガ回路のテンプレートから一つ、前記ペイロード回路のテンプレートから一つをランダムに選択し、かつ、前記変数をランダムに選択し、選択したテンプレートを接続して一つのモジュールを生成するモジュール生成ステップと、
生成された前記モジュールを、前記変数を含む記述方式からゲートレベルの記述に論理合成し、前記変数に対応して選択した信号線で通常回路に接続した回路情報を出力する論理合成ステップと、をコンピュータが実行するサンプル生成方法。
【請求項8】
請求項1から請求項5のいずれかに記載のサンプル生成装置としてコンピュータを機能させるためのサンプル生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回路設計情報を対象としたハードウェアトロイの検知モデルを学習するためのサンプルを生成する手法に関する。
【背景技術】
【0002】
従来、ハードウェア設計及び製造工程のグローバル化、競争に伴う効率化及び低廉化、さらに、回路の大規模化及び複雑化が進んでいる。こうした背景から、設計及び製造工程の一部を第三者(サードパーティ)に外部委託することがある。サードパーティの関与により、設計段階で意図しない不正な機能を実現する回路(ハードウェアトロイ)を挿入される危険性が指摘されている。
【0003】
一般に、ハードウェアトロイは、トリガ回路とペイロード回路から構成される。トリガ回路は、回路のテスト時又は通常動作時に不正な機能の存在を隠すため、不正な機能を有効化させるための条件を判定する。例えば、外部からの入力信号が特定の値と一致した場合、又は回路の内部状態が特定の状態となった場合等が条件となる。ペイロード回路は、トリガ回路による判定結果に基づき、例えば、回路の内部情報の流出、性能低下、回路の機能停止等を引き起こす不正な機能そのものを実行する。
ゲートレベルで記述された回路設計情報においては、ハードウェアトロイに特有の回路の構造的特徴があることが知られている(例えば、非特許文献1参照)。
【0004】
このようなハードウェアトロイの特徴に着目して、回路設計情報からハードウェアトロイを検知する技術の研究が進められており、機械学習を用いた検知手法が存在する(例えば、非特許文献2参照)。この検知手法は、ハードウェアトロイを構成する回路が特定されているデータセットから、ハードウェアトロイを構成する信号線(トロイネット)に特有の特徴量を抽出し、これらを学習することで、回路設計情報の中からハードウェアトロイを識別する。
機械学習によりハードウェアトロイを検知するためには、学習するハードウェアトロイサンプルの拡張が重要なタスクである。例えば、非特許文献3では、ハードウェアトロイのサンプル回路を生成する手法が提案されている。サンプル回路の生成により、機械学習によるハードウェアトロイ検知のためのデータセットを拡張することで、識別性能の向上が期待される。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】M. Oya, Y. Shi, M. Yanagisawa, and N. Togawa, "A score-based classification method for identifying Hardware-Trojans at gate-level netlists," Proceedings of the 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE), pp. 465-470, 2015.
【非特許文献2】K. Hasegawa, M. Yanagisawa, and N. Togawa, "Hardware Trojans classification for gate-level netlists using multi-layer neural networks," Proceedings of the 2017 IEEE 23rd International Symposium on On-Line Testing and Robust System Design (IOLTS), pp. 227-232, 2017.
【非特許文献3】J. Cruz, Y. Huang, P. Mishra, and S. Bhunia, "An automated configurable trojan insertion framework for dynamic trust benchmarks," in Design, Automation & Test in Europe Conference & Exhibition (DATE), pp. 1598-1603, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献3の手法には、有償ツールを用いてハードウェアトロイとしての性質が妥当であるかを検証する工程が含まれるため、有償ツールを利用できない場合はこの手法を利用することが難しかった。また、利用できる場合であってもサンプル回路の高速な生成は難しかった。
【0007】
本発明は、高品質かつ効率的にハードウェアトロイのサンプルを生成できるサンプル生成装置、サンプル生成方法及びサンプル生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係るサンプル生成装置は、ハードウェアトロイを構成するトリガ回路及びペイロード回路のテンプレートを、ゲートレベルよりも抽象度の高い、変数を含む記述方式で記憶する記憶部と、前記トリガ回路のテンプレートから一つ、前記ペイロード回路のテンプレートから一つをランダムに選択し、かつ、前記変数をランダムに選択し、選択したテンプレートを接続して一つのモジュールを生成するモジュール生成部と、生成された前記モジュールを、前記変数を含む記述方式からゲートレベルの記述に論理合成し、前記変数に対応して選択した信号線で通常回路に接続した回路情報を出力する論理合成部と、を備える。
【0009】
前記トリガ回路の変数は、前記通常回路から入力する信号線の数を含んでもよい。
【0010】
前記ペイロード回路の変数は、前記通常回路から入力する信号線の数、及び当該通常回路へ出力する信号線の数を含んでもよい。
【0011】
前記変数に対応して選択する信号線の候補集合が予め設定されてもよい。
【0012】
前記変数に対応して選択する信号線の候補集合は、前記トリガ回路及びペイロード回路のテンプレート毎に予め設定されてもよい。
【0013】
前記変数を含む記述方式は、レジスタ転送レベルであってもよい。
【0014】
本発明に係るサンプル生成方法は、ハードウェアトロイを構成するトリガ回路及びペイロード回路のテンプレートを、ゲートレベルよりも抽象度の高い、変数を含む記述方式で記憶する記憶ステップと、前記トリガ回路のテンプレートから一つ、前記ペイロード回路のテンプレートから一つをランダムに選択し、かつ、前記変数をランダムに選択し、選択したテンプレートを接続して一つのモジュールを生成するモジュール生成ステップと、生成された前記モジュールを、前記変数を含む記述方式からゲートレベルの記述に論理合成し、前記変数に対応して選択した信号線で通常回路に接続した回路情報を出力する論理合成ステップと、をコンピュータが実行する。
【0015】
本発明に係るサンプル生成プログラムは、前記サンプル生成装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0016】
本発明によれば、高品質かつ効率的にハードウェアトロイのサンプルを生成できる。
【図面の簡単な説明】
【0017】
【
図1】実施形態におけるサンプル生成装置の機能構成を示す図である。
【
図2】実施形態におけるサンプル生成装置による処理の流れを示すフローチャートである。
【
図3】実施形態において生成されるハードウェアトロイのサンプルの構成を例示する図である。
【
図4】実施形態におけるペイロード回路の出力を通常回路に接続した例を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態の一例について説明する。
本実施形態のサンプル生成装置は、トリガ回路とペイロード回路とにモジュール分割されたハードウェアトロイが変数を含む記述方式で記述されたテンプレートを用いることで、ハードウェアトロイのサンプルを自動的に生成する。
ゲートレベルよりも抽象度が高く変数を含む記述方式の一例として、本実施形態ではレジスタ転送レベル(RTL)を採用する。
【0019】
ここで、ハードウェアトロイは、トリガ回路及びペイロード回路から構成される。
トリガ回路は、ハードウェアトロイの不正な機能を発現させるための条件を満たしたか否かを判定する回路であり、組合せ回路を利用するものと順序回路を利用するものとに大別される。組合せ回路を利用するトリガ回路は、入力された値が条件に一致するか否かを逐次判定する。順序回路を利用するトリガ回路は、入力された値が連続的に遷移する様子を観測し、予め設定された条件に一致するか否かを判定する。
【0020】
ペイロード回路は、トリガ回路による判定結果に基づく出力であるトリガ信号が有効になった場合に、ハードウェアトロイの不正な機能を実行する。不正な機能は、通常回路の機能性に影響を与えるものと与えないものに大別される。通常回路の機能性に影響を与える不正機能として、例えば、情報流出、書き換え、無効化等が挙げられる。これらの不正機能では、通常回路から得た信号を元に、通常回路の他の信号線へ出力する値が書き換えられる。また、通常回路の機能性に影響を与えない不正機能としては、例えば、電力消費の増大等が挙げられ、トリガ信号に基づきペイロード回路が動作し、通常回路の信号線へは直接の影響を与えない。
【0021】
図1は、本実施形態におけるサンプル生成装置1の機能構成を示す図である。
サンプル生成装置1は、制御部10及び記憶部20の他、各種の入出力デバイス及び通信デバイス等を備えた情報処理装置(コンピュータ)である。
【0022】
制御部10は、サンプル生成装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0023】
記憶部20は、ハードウェア群をサンプル生成装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。
具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(サンプル生成プログラム)の他、サンプル生成のためのテンプレートを含む各種のデータベース等を記憶する。
【0024】
制御部10は、モジュール生成部11と、論理合成部12とを備え、記憶部20に記憶されているテンプレートを用いて、ハードウェアトロイを含んだ機械学習用の回路サンプルを生成する。
【0025】
記憶部20は、ハードウェアトロイを構成するトリガ回路及びペイロード回路のテンプレートを、変数を含むRTLで記述して記憶する。
トリガ回路の変数は、通常回路から入力する信号線の数を含み、ペイロード回路の変数は、通常回路から入力する信号線の数、及び通常回路へ出力する信号線の数を含む。
また、これらの変数に対応して選択する通常回路の中の信号線の候補集合は、トリガ回路及びペイロード回路のテンプレート毎に予め設定される。
【0026】
モジュール生成部11は、トリガ回路のテンプレートから一つ、ペイロード回路のテンプレートから一つをランダムに選択し、かつ、変数をランダムに選択し、選択したテンプレートを接続して一つのモジュールを生成する。
【0027】
論理合成部12は、モジュール生成部11により生成されたモジュールを、RTLからゲートレベルの記述に論理合成し、変数に対応して選択した信号線で通常回路に接続した回路情報を、機械学習用のサンプルとして出力する。
【0028】
ここで、モジュール生成部11への入力として以下を定義する。
G:ハードウェアトロイを挿入する通常回路
Tt:トリガ回路のテンプレート集合
Tp:ペイロード回路のテンプレート集合
Pt:トリガ回路の入力として使用する信号線の候補の集合
Pi:ペイロード回路で使用する通常回路の信号線の候補の集合
Pm:ペイロード回路が影響を与える、通常回路の信号線の候補の集合
【0029】
なお、Pt,Pi,Pmは、通常回路G中の全ての信号線、又は所定の手段で選択された信号線の集合であり、テンプレート毎に、又は全てのテンプレートに共通して予め定義される。
【0030】
また、テンプレートには、次の変数が含まれる。
n:ハードウェアトロイのトリガとして入力する信号線の数
q:トリガ回路が順序回路である場合の、トリガ条件とする系列の長さ
ri:Piのうち実際にペイロード回路で使用するものとして選択する信号線の数
rm:Pmのうち実際にペイロード回路が影響を与えるものとして選択する信号線の数
【0031】
図2は、本実施形態におけるサンプル生成装置1による処理の流れを示すフローチャートである。
前述の変数が順次、あるいはランダムに指定され、その都度、本処理が実行される。なお、ここでは、選択される信号線の候補集合P
t,P
i,P
mは、全てのテンプレートに共通して予め設定されているものとする。
【0032】
ステップS1において、モジュール生成部11は、Ptのうちから、ハードウェアトロイのトリガ回路が入力として使用するn本の信号線を選択する。
なお、n本の信号線は、ランダムに、又は所定の基準に従い選択される。
【0033】
ステップS2において、モジュール生成部11は、トリガ回路のテンプレート集合Ttの中からランダムに一つを選択する。
このとき、選択されたトリガ回路が組合せ回路の場合、モジュール生成部11は、0≦x<2nなるxを選択し、n本の信号線から入力される値がxであることをトリガの条件として設定する。また、選択されたトリガ回路が順序回路の場合、モジュール生成部11は、0≦xi<2nなるxi(1≦i≦q)を選択し、n本の信号線からx1,x2,…,xqと連続して入力される場合をトリガの条件とする。
【0034】
モジュール生成部11は、このように構成されたトリガ回路を一つのモジュールとしてRTL記述で生成する。このとき、モジュール生成部11は、生成したモジュールにトリガ回路であると識別可能な名称を付与する。
【0035】
ステップS3において、モジュール生成部11は、Pi,Pmのうちから、ペイロード回路の入力とする信号線ri本、及び出力とする信号線rm本を選択する。
なお、ri本及びrm本の信号線は、ランダムに、又は所定の基準に従い選択される。
【0036】
ステップS4において、モジュール生成部11は、ペイロード回路のテンプレート集合Tpの中からランダムに一つを選択する。
このとき、選択されたペイロード回路が情報流出又は機能停止等、回路の機能性に影響を与えるものである場合、モジュール生成部11は、ステップS3でPiから選択された信号線ri本と、Pmから選択された信号線rm本を使用する。
一方、選択されたペイロード回路が通常回路の機能性に影響を与えないものである場合、ステップS3でPiから選択された信号線ri本を使用し、Pmから選択された信号線は使用しない。
【0037】
続いて、モジュール生成部11は、選択された信号線を用いてペイロード回路を構成し、一つのモジュールとしてRTL記述で生成する。このとき、モジュール生成部11は、生成したモジュールにペイロード回路であると識別可能な名称を付与する。
【0038】
ステップS5において、モジュール生成部11は、ステップS2で生成したトリガ回路のトリガ出力を、ステップS4で生成したペイロード回路の入力と接続したハードウェアトロイを、一つのモジュールとしてRTL記述で生成する。このとき、モジュール生成部11は、生成したモジュールにハードウェアトロイであると識別可能な名称を付与する。
【0039】
ステップS6において、論理合成部12は、ステップS5で生成されたハードウェアトロイを、ゲートレベル記述に論理合成する。
【0040】
ステップS7において、論理合成部12は、ステップS1で選択された信号線を用いて、ステップS5で作成されたハードウェアトロイのトリガ回路部分を通常回路Gに接続し、必要に応じて、ステップS3において選択されたri,rm本の信号線を用いて、ペイロード回路部分を通常回路Gに接続する。
【0041】
図3は、本実施形態において生成されるハードウェアトロイのサンプルの構成を例示する図である。
通常回路Gに含まれる信号線のうち、n箇所は、ハードウェアトロイのトリガ回路に入力され、トリガ回路の出力がペイロード回路に入力される。
【0042】
また、ペイロード回路は、通常回路Gに含まれる信号線のうち、ri箇所を入力とし、rm箇所を出力とする。
このとき、ペイロード回路の出力となるPmから選択されたrm本の信号線については、該当の信号線を切断し一度ペイロード回路内に信号線を取り込み、ペイロード回路から元の通常回路へ再び信号線を出力する。
【0043】
図4は、本実施形態におけるペイロード回路の出力を通常回路に接続した例を示す図である。
通常回路G内の信号線の集合P
mから選択されるr
m本のうちの1本として、信号線aが選択されたとすると、信号線aは切断され、一方がペイロード回路に入力される。そして、他方がペイロード回路の出力と接続される。
これにより、通常回路Gにおいて利用されていた信号線aの信号は、ペイロード回路からの出力信号に置換される。
【0044】
本実施形態によれば、サンプル生成装置1は、ハードウェアトロイを構成するトリガ回路及びペイロード回路のテンプレートを、ゲートレベルよりも抽象度の高い、変数を含む記述方式で記憶しておき、トリガ回路のテンプレートから一つ、ペイロード回路のテンプレートから一つをランダムに選択し、かつ、変数をランダムに選択し、選択したテンプレートを接続して一つのモジュールを生成する。そして、サンプル生成装置1は、このように生成したモジュールを、ゲートレベルの記述に論理合成し、変数に対応して選択した信号線で通常回路に接続した回路情報を出力する。
【0045】
したがって、サンプル生成装置1は、RTL又はRTLよりも高い抽象度の記述方式でハードウェアトロイを構成した後、論理合成してサンプルを生成することで、トリガ回路及びペイロード回路に、それぞれ通常回路に接続する信号線を選択するための設定用の変数を設けることができる。これらの変数の値を変化させることで、サンプル生成装置1は、異なる機能をもつハードウェアトロイのサンプルを、高品質かつ効率的に多数生成できる。
【0046】
なお、ハードウェアの記述言語では、ゲートレベルよりも、RTL、動作レベル、システムレベル等の記述方式で抽象度が高くなり、変数を用いた記述が可能となる。本実施形態では、RTL又はRTLよりも高い抽象度の記述方式が適用可能であり、例えば、SystemC言語、Chisel言語等が採用されてもよい。
【0047】
ここで、トリガ回路の変数は、通常回路から入力する信号線の数を含み、ペイロード回路の変数は、通常回路から入力する信号線の数、及び通常回路へ出力する信号線の数を含む。
これにより、サンプル生成装置1は、ハードウェアトロイを構成するトリガ回路及びペイロード回路に多数のバリエーションを設けることができ、大量のサンプルを効率的に生成できる。
【0048】
また、サンプル生成装置1は、変数に対応して選択する信号線の候補集合が予め設定されることにより、ハードウェアトロイとしての性質を担保し、従来手法よりも容易かつ効果的にハードウェアトロイのサンプルを生成できる。
【0049】
さらに、サンプル生成装置1は、変数に対応して選択する信号線の候補集合を、トリガ回路及びペイロード回路のテンプレート毎に予め設定することにより、生成するサンプルのハードウェアトロイとしての性質の妥当性を向上できるので、学習モデルの性能向上が期待できる。
【0050】
なお、前述の実施形態により、例えば、回路設計情報に対するハードウェアトロイの混入を発見するための機械学習データを高品質かつ効率的に多数生成できるので、ハードウェア設計における安全性を向上できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0051】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0052】
サンプル生成装置1によるサンプル生成方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0053】
1 サンプル生成装置
10 制御部
11 モジュール生成部
12 論理合成部
20 記憶部