IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧 ▶ 学校法人早稲田大学の特許一覧

特許7565561検知装置、学習装置、検知方法及び検知プログラム
<>
  • 特許-検知装置、学習装置、検知方法及び検知プログラム 図1
  • 特許-検知装置、学習装置、検知方法及び検知プログラム 図2
  • 特許-検知装置、学習装置、検知方法及び検知プログラム 図3
  • 特許-検知装置、学習装置、検知方法及び検知プログラム 図4
  • 特許-検知装置、学習装置、検知方法及び検知プログラム 図5
  • 特許-検知装置、学習装置、検知方法及び検知プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-03
(45)【発行日】2024-10-11
(54)【発明の名称】検知装置、学習装置、検知方法及び検知プログラム
(51)【国際特許分類】
   G06F 30/33 20200101AFI20241004BHJP
【FI】
G06F30/33
【請求項の数】 9
(21)【出願番号】P 2021085409
(22)【出願日】2021-05-20
(65)【公開番号】P2022178534
(43)【公開日】2022-12-02
【審査請求日】2023-10-23
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(73)【特許権者】
【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】長谷川 健人
(72)【発明者】
【氏名】披田野 清良
(72)【発明者】
【氏名】清本 晋作
(72)【発明者】
【氏名】戸川 望
【審査官】松浦 功
(56)【参考文献】
【文献】国際公開第2016/080380(WO,A1)
【文献】米国特許出願公開第2020/0151288(US,A1)
【文献】中国特許出願公開第109657461(CN,A)
【文献】長谷川健人 外3名,SVMを利用したネットリストの特徴に基づくハードウェアトロイ識別,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2015年11月24日,Vol. 115, No. 339,pp. 135-140
【文献】藤城裕一郎 外5名,R-GCNを用いたゲートレベルネットリスト機能分類手法,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2019年11月06日,Vol. 119, No. 283,pp. 7-12
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/30 -30/398
(57)【特許請求の範囲】
【請求項1】
ゲートレベルで記述された回路設計情報のうち、回路素子をノードとし、当該回路素子に接続された信号線をエッジとするグラフを取得するグラフ取得部と、
前記ノードのそれぞれに対して、前記回路設計情報から得られる当該ノードの属性を示すベクトルを、当該ノードの特徴量の初期値として付与する属性取得部と、
前記ノードのそれぞれに隣接するノードの特徴量を集約したベクトルに基づくノード埋め込み処理により、当該ノードの特徴量を更新する特徴量更新部と、
訓練データにおけるノードの特徴量に基づいて当該ノードに付与されたラベルを学習した検知モデルにより、新たな回路設計情報に含まれる回路素子それぞれがハードウェアトロイを構成するものか否かを判定する判定部と、を備える検知装置。
【請求項2】
前記特徴量更新部は、前記隣接するノードの特徴量を集約する集約関数、及び前記特徴量を更新する際の重み行列を、前記グラフにおける特徴量の分布に基づく損失関数を最適化するように更新しつつ、前記特徴量の更新を所定回数繰り返す請求項1に記載の検知装置。
【請求項3】
前記属性取得部は、前記ノードの属性として、当該ノードに対応する回路素子の種類を示す値を取得する請求項1に記載の検知装置。
【請求項4】
前記属性取得部は、前記ノードの属性として、前記回路設計情報において当該ノードに対応する回路素子が含まれているモジュールの種類を示す値を取得する請求項3に記載の検知装置。
【請求項5】
前記属性取得部は、前記回路設計情報から得られる前記ノードに隣接した前記エッジの属性を集約したベクトルを、当該ノードの属性を示すベクトルに連結し、当該ノードの特徴量の初期値とする請求項1から請求項4のいずれかに記載の検知装置。
【請求項6】
前記属性取得部は、前記エッジの属性として、当該エッジに対応する信号線の種類を示す値を取得する請求項5に記載の検知装置。
【請求項7】
請求項1から請求項6のいずれかに記載の検知装置が用いる前記検知モデルを、前記訓練データにおけるノードの特徴量に基づいて学習する学習装置。
【請求項8】
ゲートレベルで記述された回路設計情報のうち、回路素子をノードとし、当該回路素子に接続された信号線をエッジとするグラフを取得するグラフ取得ステップと、
前記ノードのそれぞれに対して、前記回路設計情報から得られる当該ノードの属性を示すベクトルを、当該ノードの特徴量の初期値として付与する属性取得ステップと、
前記ノードのそれぞれに隣接するノードの特徴量を集約したベクトルに基づくノード埋め込み処理により、当該ノードの特徴量を更新する特徴量更新ステップと、
訓練データにおけるノードの特徴量に基づいて当該ノードに付与されたラベルを学習した検知モデルにより、新たな回路設計情報に含まれる回路素子それぞれがハードウェアトロイを構成するものか否かを判定する判定ステップと、をコンピュータが実行する検知方法。
【請求項9】
請求項1から請求項6のいずれかに記載の検知装置としてコンピュータを機能させるための検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回路設計情報を対象とし、不正に動作する回路を機械学習により検知するための装置、方法及びプログラムに関する。
【背景技術】
【0002】
従来、ハードウェア設計及び製造工程のグローバル化、競争に伴う効率化及び低廉化、さらに、回路の大規模化及び複雑化が進んでいる。こうした背景から、設計及び製造工程の一部を第三者(サードパーティ)に外部委託することがある。サードパーティの関与により、設計段階で意図しない不正な機能を実現する回路(ハードウェアトロイ)を挿入される危険性が指摘されている。
【0003】
多くの場合、ハードウェアトロイは、不正な機能の動作条件を判定するトリガ回路と、不正な機能そのものを実現するペイロード回路から構成される。トリガ回路は、外部からの入力、内部の信号線の値、又は回路の内部状態がある一定の条件を満たすかどうかを判定する。ペイロード回路は、回路の内部情報の流出、正常な機能の改変若しくは停止、又は消費電力の増大等、正常回路の性能低下を引き起こす。
このようなトリガ回路及びペイロード回路の特性から、ゲートレベルで記述された回路設計情報におけるハードウェアトロイ特有の特徴が示されている(例えば、非特許文献1参照)。
【0004】
これらの特徴量に基づいてハードウェアトロイを検知するための代表的な技術として、回路素子(例えば、論理ゲート、フリップフロップ、マルチプレクサ等)の接続関係をゲートレベルで記述した情報であるネットリストを元に、直近のプライマリ出力ポート又はフリップフロップまでの段数等を特徴量として抽出し、これらの特徴量を機械学習アルゴリズムにより学習、識別する方法が提案されている(例えば、非特許文献2参照)。
非特許文献2の手法は、学習及び識別の手順から構成される。学習手順では、ネットリストに含まれる信号線(ネット)に対応する特徴量を抽出し、ハードウェアトロイを構成するネット(トロイネット)か、通常の回路を構成するネット(ノーマルネット)かを機械学習アルゴリズムで訓練する。識別手順では、ハードウェアトロイの検知対象となるネットリストに含まれる各ネットの特徴量に対し、トロイネットかノーマルネットかを識別する。
【先行技術文献】
【非特許文献】
【0005】
【文献】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.
【文献】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.
【発明の概要】
【発明が解決しようとする課題】
【0006】
ハードウェアトロイの検知において、特徴量の設計及び最適化は検知精度を向上させるために非常に重要である。
しかしながら、従来の機械学習によるハードウェアトロイの検知手法では、有効な特徴量を予め定め、回路設計情報から抽出する必要があった。このため、特徴量を設計する際に、ハードウェア設計及びハードウェアトロイの性質について専門的な知識が必要であった。さらに、訓練データとして用いる回路設計情報が大きく変化した場合や、未知の不正回路を対象として学習及び検知を試みる場合、新たに適切な特徴量を設計し直す必要があった。
【0007】
また、攻撃者が特徴量を熟知していると、通常の回路と区別がつかない特徴量が抽出される不正回路を設計できる可能性がある。
このように、従来の手法では、ハードウェアトロイの検知技術を広く利用する上で特徴量設計に関しての課題があった。
【0008】
本発明は、有用な特徴量を予め定義することなく自動的に抽出し、ハードウェアトロイを検知できる検知装置、検知方法及び検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る検知装置は、ゲートレベルで記述された回路設計情報のうち、回路素子をノードとし、当該回路素子に接続された信号線をエッジとするグラフを取得するグラフ取得部と、前記ノードのそれぞれに対して、前記回路設計情報から得られる当該ノードの属性を示すベクトルを、当該ノードの特徴量の初期値として付与する属性取得部と、前記ノードのそれぞれに隣接するノードの特徴量を集約したベクトルに基づくノード埋め込み処理により、当該ノードの特徴量を更新する特徴量更新部と、訓練データにおけるノードの特徴量に基づいて当該ノードに付与されたラベルを学習した検知モデルにより、新たな回路設計情報に含まれる回路素子それぞれがハードウェアトロイを構成するものか否かを判定する判定部と、を備える。
【0010】
前記特徴量更新部は、前記隣接するノードの特徴量を集約する集約関数、及び前記特徴量を更新する際の重み行列を、前記グラフにおける特徴量の分布に基づく損失関数を最適化するように更新しつつ、前記特徴量の更新を所定回数繰り返してもよい。
【0011】
前記属性取得部は、前記ノードの属性として、当該ノードに対応する回路素子の種類を示す値を取得してもよい。
【0012】
前記属性取得部は、前記ノードの属性として、前記回路設計情報において当該ノードに対応する回路素子が含まれているモジュールの種類を示す値を取得してもよい。
【0013】
前記属性取得部は、前記回路設計情報から得られる前記ノードに隣接した前記エッジの属性を集約したベクトルを、当該ノードの属性を示すベクトルに連結し、当該ノードの特徴量の初期値としてもよい。
【0014】
前記属性取得部は、前記エッジの属性として、当該エッジに対応する信号線の種類を示す値を取得してもよい。
【0015】
本発明に係る学習装置は、前記検知装置が用いる前記検知モデルを、前記訓練データにおけるノードの特徴量に基づいて学習する。
【0016】
本発明に係る検知方法は、ゲートレベルで記述された回路設計情報のうち、回路素子をノードとし、当該回路素子に接続された信号線をエッジとするグラフを取得するグラフ取得ステップと、前記ノードのそれぞれに対して、前記回路設計情報から得られる当該ノードの属性を示すベクトルを、当該ノードの特徴量の初期値として付与する属性取得ステップと、前記ノードのそれぞれに隣接するノードの特徴量を集約したベクトルに基づくノード埋め込み処理により、当該ノードの特徴量を更新する特徴量更新ステップと、訓練データにおけるノードの特徴量に基づいて当該ノードに付与されたラベルを学習した検知モデルにより、新たな回路設計情報に含まれる回路素子それぞれがハードウェアトロイを構成するものか否かを判定する判定ステップと、をコンピュータが実行する。
【0017】
本発明に係る検知プログラムは、前記検知装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0018】
本発明によれば、有用な特徴量を予め定義することなく自動的に抽出し、ハードウェアトロイを検知できる。
【図面の簡単な説明】
【0019】
図1】実施形態における検知装置の機能構成を示す図である。
図2】実施形態におけるハードウェアトロイの検知対象とする回路の例を示す図である。
図3】実施形態における回路図から変換されたグラフ表現を例示する図である。
図4】実施形態におけるグラフ学習によるノード埋め込み処理の手順を示すフローチャートである。
図5】実施形態における検知モデルの学習フェーズの処理を示すフローチャートである。
図6】実施形態における検知モデルを用いた検知フェーズの処理を示すフローチャートである。
【発明を実施するための形態】
【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と、特徴量更新部13と、学習部14と、判定部15とを備え、これらの機能部により、検知モデルの学習、及びハードウェアトロイの検知を行う。
【0025】
グラフ取得部11は、ゲートレベルで記述された回路設計情報のうち、回路素子をノードとし、回路素子に接続された信号線をエッジとするグラフを取得する。
【0026】
属性取得部12は、グラフにおけるノードのそれぞれに対して、回路設計情報から得られるノードの属性を示すベクトルを、ノードの特徴量の初期値として付与する。
このとき、属性取得部12は、ノードの属性として、このノードに対応する回路素子の種類を示す値を取得する。さらに、属性取得部12は、ノードの属性として、このノードに対応する回路素子が含まれているモジュールの種類を示す値を取得してもよい。
【0027】
また、属性取得部12は、回路設計情報から得られるノードに隣接したエッジの属性を集約(例えば、平均、合計等)したベクトルを、ノードの属性を示すベクトルに連結し、このノードの特徴量の初期値としてもよい。
このとき、属性取得部12は、エッジの属性として、このエッジに対応する信号線の種類を示す値を取得する。
【0028】
具体的には、グラフ取得部11及び属性取得部12により、次のように回路設計情報のグラフ表現が得られる。
【0029】
Gをゲートレベルで記述された回路設計情報に対応するグラフとする。Gは、回路素子(例えば、論理ゲート、フリップフロップ、マルチプレクサ、外部入出力端子等)を示すノードの集合Vと、回路素子間を接続する信号線を示すエッジの集合Eとで構成される。
【0030】
各回路素子を示すノードv∈Vに対して、この回路素子の属性を示すベクトルをxとする。xは、回路素子の種類(例えば、プライマリ入力、プライマリ出力、論理ゲート、フリップフロップ、マルチプレクサ、定数)、又は回路素子が存在するモジュールの種類等を示す値であり、回路設計情報から直接的に、あるいは変換により機械的に得られる。
なお、本実施形態では、回路の端点(プライマリ入力及びプライマリ出力)も回路素子の1つとみなし、グラフGのノードとする。また、定数とは、例えば論理ゲートに入力される0又は1の固定された信号のことをいう。
【0031】
同様に、各信号線を示すエッジe∈Eに対して、この信号線の属性を示すベクトルをdとする。dは、信号線の種類(例えば、クロック信号、リセット信号、その他特別な意味を持つ信号線、それ以外の一般的な信号線)を示す値であり、回路設計情報から直接的に、あるいは変換により機械的に得られる。
【0032】
各ノードvに対し、このノードに対応する回路素子がハードウェアトロイを構成するものであるか否かを示すラベルをl∈Lとする。
【0033】
図2は、本実施形態におけるハードウェアトロイの検知対象とする回路の例を示す図である。
この回路では、3つのプライマリ入力a,b,ciが、複数の論理ゲートにより、2つのプライマリ出力s,coに変換されている。
この回路図から、入出力、及び論理ゲートをノードとし、各信号線をエッジとした次のグラフが得られる。
【0034】
図3は、本実施形態における回路図から変換されたグラフ表現を例示する図である。
この例では、ノードの属性として、プライマリ入力か否か、論理ゲートか否か、プライマリ出力か否か、という3つの属性を要素とするベクトルが各ノードに付与されている。
【0035】
例えば、3つのプライマリ入力a,b,ciを示すノードにはそれぞれ、属性ベクトル(1,0,0)が付与され、2つのプライマリ出力s,coを示すノードにはそれぞれ、属性ベクトル(0,0,1)が付与されている。
また、5つの論理ゲートを示すノードにはそれぞれ、属性ベクトル(0,1,0)が付与されている。
【0036】
特徴量更新部13は、グラフに含まれるノードのそれぞれについて、このノードに隣接するノードの特徴量を集約したベクトルに基づくグラフ学習のノード埋め込み処理により、ノードそれぞれの特徴量を更新する。
【0037】
グラフ学習では、訓練データとしてグラフの集合Dが用いられる。特徴量更新部13は、訓練データ中の各グラフG=(V,E)∈Dtrainに対し、各ノードv∈Vの属性を示すベクトルxを用いて、各ノードの特徴を示す特徴ベクトルz∈Zを得る。
ここで、特徴ベクトルの集合Zは、次の文献Aによると、周辺のノードの情報を集約(例えば、平均化)する集約関数fAgg、重み行列W、連結関数fConcat、ノードvに隣接するノードの集合N(v)、シグモイド関数σを用いて、以下の手順により得られる。
文献A: William L. Hamilton, Zhitao Ying, Jure Leskovec, "Inductive Representation Learning on Large Graphs", NIPS, pp. 1024-1034, 2017.
【0038】
図4は、本実施形態におけるグラフ学習によるノード埋め込み処理の手順を示すフローチャートである。
【0039】
ステップS1において、特徴量更新部13は、繰り返しカウンタk=0として、h を初期化する。h ,∀v∈Vは、k回目の試行における各ノードの特徴ベクトルを示す。
なお、h =xとして、ノードの属性を初期値に与えることとしてよいが、前述のようにエッジの属性が連結されてもよく、また、初期値はこれらには限られない。
【0040】
ステップS2において、特徴量更新部13は、カウンタkを1増やし、以下のステップのk回目の試行に進む。
【0041】
ステップS3において、特徴量更新部13は、全てのノードv∈Vに関して、次の計算により特徴ベクトルを更新する。
【数1】
ここで、集約関数fAggは、例えば、平均又は合計といった統計処理が該当し、隣接ノードの数によらず、ベクトルの次元は維持される。
【0042】
ステップS4において、特徴量更新部13は、k=Kであるか否かを判定する。この判定がYESの場合、処理はステップS5に進み、判定がNOの場合、処理はステップS2に戻る。
なお、Kは、予め設定される定数である。
【0043】
ステップS5において、特徴量更新部13は、z←h ,∀v∈Vとして、各ノードvの特徴ベクトルを決定する。
【0044】
ここで、特徴量更新部13は、隣接するノードの特徴量を集約する集約関数fAgg、及び特徴量を更新する際の重み行列Wを、グラフにおける特徴量の分布に基づく損失関数を最適化するように更新しつつ、特徴量の更新を所定回数(K回)繰り返す。
【0045】
具体的には、ノードuをノードvの近くに存在するノード、P(v)をノードvから離れた位置に存在する(すなわち、ネガティブサンプルとなる)ノードの集合、Qをネガティブサンプルの個数とすると、集約関数fAgg及び重み行列Wのパラメータを最適化するための損失関数Jは、例えば次のように示される(文献A参照)。
【数2】
なお、近くに存在するノードとは、ノードvからのホップ数が所定以内のノード、離れた位置に存在するノードとは、ノードvからのホップ数が所定以上のノードである。
【0046】
このように、ノード埋め込み処理により、各ノードの属性値は、周囲のノード(及びエッジ)との接続関係に応じて、回路の構造的な特徴を良く示す特徴ベクトルzに変換される。
【0047】
学習部14は、訓練データにおけるノードの特徴量、及びノード毎に付与された正解ラベルに基づいて、検知モデルのパラメータを学習する。
検知モデルf(Z)は、入力をZとして、それぞれのノードがハードウェアトロイを構成するものであるか否かを示す確率L’を出力する。検知モデルは、例えば、多層パーセプトロン又はランダムフォレスト等のアルゴリズムを用いることにより、出力L’と正解ラベルLとの誤差を最小化するように学習される。
【0048】
図5は、本実施形態における検知モデルの学習フェーズの処理を示すフローチャートである。
【0049】
ステップS11において、学習部14は、検知モデルの学習のための訓練データを取得する。
訓練データには、複数の回路に対するゲートレベルの回路設計情報が含まれる。学習部14は、それぞれの回路設計情報から変換されたグラフの集合Dtrainと、各グラフG=(V,E)∈Dtrainにおけるノードv∈Vがハードウェアトロイを構成するものであるか否かを示す正解ラベルの集合Lを得る。
このとき、学習部14は、訓練データに含まれる回路から、回路素子の属性を示す値の集合であるベクトルx、及び信号線の属性を示す値の集合であるベクトルdを得る。
【0050】
ステップS12において、学習部14は、ステップS11で得た情報に基づいて、ノード埋め込み処理により、各回路素子の特徴を良く表す特徴ベクトルの集合Zを得る。
【0051】
ステップS13において、学習部14は、ステップS12で得た特徴ベクトルの集合Zを利用し、ステップS11で得た正解ラベルと対応づけ、機械学習アルゴリズムにより検知モデルを学習する。
【0052】
判定部15は、学習済みの検知モデルにより、新たな回路設計情報に含まれる回路素子それぞれがハードウェアトロイを構成するものか否かを判定する。
具体的には、例えば、ノード毎の特徴量を入力とした検知モデルの出力であるハードウェアトロイを構成する回路素子である確率を、所定の閾値と比較することで、要注意の回路素子が検知される。
回路設計情報の中に、このような要注意の回路素子が検知されると、この回路設計情報は、人手により、あるいは既存のテスト手法を用いて、より詳細に解析される。
【0053】
図6は、本実施形態における検知モデルを用いた検知フェーズの処理を示すフローチャートである。
【0054】
ステップS21において、判定部15は、検知対象であるテストデータを取得する。このデータには、1つ以上の回路に対するゲートレベル設計情報が含まれる。判定部15は、それぞれの回路設計情報から変換したグラフの集合Dtestをグラフ取得部11から、このグラフに対応するノード及びエッジの属性ベクトルx及びdを属性取得部12から得る。
【0055】
ステップS22において、判定部15は、学習フェーズと同様に、特徴量更新部13から各回路素子の特徴を良く表す特徴ベクトルの集合Zを得る。
【0056】
ステップS23において、判定部15は、学習フェーズで学習した検知モデルを用いて、ステップS22で得た特徴ベクトルの集合Zに含まれるベクトルのそれぞれに対応する各回路素子がハードウェアトロイを構成するものか否かを判定する。
【0057】
本実施形態によれば、検知装置1は、ゲートレベルで記述された回路設計情報をグラフとして表現する。このとき、回路素子をノード、回路素子の間を接続する配線をエッジとし、回路素子の属性を示す値及び配線の属性を示す値が、それぞれノード及びエッジに対応付けられる。検知装置1は、このように生成されたグラフをもとに、グラフ学習によるノード埋め込みを適用することで、各ノードの特徴を良く表す特徴量(特徴ベクトル)を得る。
そして、検知装置1は、訓練データとなる回路設計情報から得られた特徴ベクトルと正解ラベルとに基づいて、機械学習アルゴリズムを利用して検知モデルを学習する。不正な回路であるハードウェアトロイの検知にあたっては、検知装置1は、訓練データと同様の手順でテストデータから得られた各ノードの特徴ベクトルをもとに、学習済みの検知モデルを用いて、ハードウェアトロイを構成するノードか否かを判定する。
【0058】
したがって、検知装置1は、ハードウェアトロイの検知に有効な特徴量を予め定義することなく自動的に抽出し、機械学習により、回路設計段階で混入されたハードウェアトロイを検知できる。この結果、例えば、従来の技術で定義されていた特徴量が有効でないハードウェアトロイに対しても高い検知性能が期待できる。また、特徴量の設計情報が攻撃者に知られないことから、検知を回避するための回路設計がされるリスクを低減できる。
【0059】
検知装置1は、隣接するノードの特徴量を集約する集約関数、及び特徴量を更新する際の重み行列を、グラフにおける特徴量の分布に基づく損失関数を最適化するように更新しつつ、特徴量の更新を所定回数繰り返す。
これにより、検知装置1は、例えば、グラフ上で近くのノードの特徴ベクトルを類似させ、かつ、離れたノードの特徴ベクトルを乖離させて、グラフ全体としてノード間の関係性を表した特徴量を適切に決定できる。
【0060】
検知装置1は、ノードの属性として、ノードに対応する回路素子の種類、モジュールの種類等、回路設計情報から容易に抽出又は変換可能な情報を属性として取得する。
したがって、検知装置1は、適切な特徴量を効率的に決定することができる。
【0061】
検知装置1は、回路設計情報から得られるノードに隣接したエッジの属性を集約したベクトルを、ノードの属性を示すベクトルに連結し、ノードの特徴量の初期値とすることにより、信号線の情報も含むより信頼性の高い特徴量を決定できる。
【0062】
検知装置1は、エッジの属性として、当該エッジに対応する信号線の種類等、回路設計情報から容易に抽出又は変換可能な情報を属性として取得する。
したがって、検知装置1は、適切な特徴量を効率的に決定することができる。
【0063】
なお、前述の実施形態により、例えば、回路設計情報に対するハードウェアトロイの混入を適切に検知できるので、ハードウェア設計における安全性を向上できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0064】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0065】
検知装置1による検知方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0066】
1 検知装置(学習装置)
10 制御部
11 グラフ取得部
12 属性取得部
13 特徴量更新部
14 学習部
15 判定部
20 記憶部
図1
図2
図3
図4
図5
図6