(57)【要約】【課題】ＰＵＦを用いた製品のハードウェアセキュリティ機能を向上させることができる監視装置を提供する。【解決手段】分散型台帳システムを構成する監視システム１に含まれ、監視対象機器２２ａを監視する監視装置１０ａは、監視対象機器２２ａに所定のＰＵＦ回路を形成するための回路情報を配信する回路情報配信部と、回路情報を配信した監視対象機器２２ａに向けて所定のチャレンジ値を送信する送信処理部と、監視対象機器２２ａに形成されたＰＵＦ回路の、チャレンジ値に対応するレスポンス値を受信する受信処理部と、監視対象機器２２ａに形成されたＰＵＦ回路の入出力対応情報と、受信したレスポンス値とに基づいて、監視対象機器２２ａの認証を行う認証処理部と、を備えている。【選択図】図２
2020096384.tif 000002
【特許請求の範囲】
【請求項１】
ＰＵＦ回路が形成されていない場合に、監視装置に対し回路情報の要求を行うとともに、当該監視装置から受信した回路情報に基づいてＰＵＦ回路を形成する回路形成部と、
前記ＰＵＦ回路が形成されている場合に、前記監視装置に対し認証要求を行う機器認証要求部と、
を備え、
前記機器認証要求部は、
前記認証要求の応答として前記監視装置から受信したチャレンジ値を前記ＰＵＦ回路に入力し、その出力結果であるレスポンス値を前記監視装置に返信する
情報処理装置。
【請求項２】
前記認証要求の結果、前記監視装置から認証を受けた場合に、予め暗号化された制御プログラムを復号する復号処理部を更に備える
請求項１に記載の情報処理装置。
【請求項３】
前記機器認証要求部は、
前記認証要求の結果、前記監視装置から認証を受けなかった場合に、前記制御プログラムを消去する
請求項２に記載の情報処理装置。
【請求項４】
ＰＵＦ回路が形成されていない場合に、回路形成部が、監視装置に対し回路情報の要求を行うとともに、当該監視装置から受信した回路情報に基づいてＰＵＦ回路を形成するステップと、
前記ＰＵＦ回路が形成されている場合に、機器認証要求部が、前記監視装置に対し認証要求を行うステップと、
を有し、
前記認証要求を行うステップでは、前記認証要求の応答として前記監視装置から受信したチャレンジ値を前記ＰＵＦ回路に入力し、その出力結果であるレスポンス値を前記監視装置に返信する
情報処理方法。
【請求項５】
情報処理装置のコンピュータに、
ＰＵＦ回路が形成されていない場合に、監視装置に対し回路情報の要求を行うとともに、当該監視装置から受信した回路情報に基づいてＰＵＦ回路を形成するステップと、
前記ＰＵＦ回路が形成されている場合に、前記監視装置に対し認証要求を行うステップと、
を実行させ、
前記認証要求を行うステップでは、前記認証要求の応答として前記監視装置から受信したチャレンジ値を前記ＰＵＦ回路に入力し、その出力結果であるレスポンス値を前記監視装置に返信する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
組込みソフトウェアを保護する手法として、ＴＰＭ（Trusted Platform Module）を使った暗号化による保護や、環境変化を検知してソフトウェアを消去する手法が提案されている。また、物理的複製困難関数（Physically Unclonable Function；ＰＵＦ）と呼ばれる、半導体チップの製造ばらつき、物理特性の違いなどの物理量を当該半導体チップの固有値として出力し、半導体チップやその搭載機器の真贋判定や認証処理、暗号処理等、電子装置ハードウェアのセキュリティ機能に利用することが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５４９９３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
物理的複製困難関数（以下、「ＰＵＦ」とも記載する。）の一態様としては、ＦＰＧＡ（Field-Programmable Gate Array）に所定の回路（以下、「ＰＵＦ回路」とも記載する。）を形成（プログラム）し、当該ＰＵＦ回路固有の信号遅延差を利用したアービターＰＵＦ（Arbiter PUF）、グリッチＰＵＦ（Glitch PUF）などが知られている。
【０００５】
アービターＰＵＦ、グリッチＰＵＦをハードウェアセキュリティ機能の向上に利用するためには、上記ＰＵＦ回路についての固有の入出力対応情報（チャレンジ・レスポンス・ペア；Challenge Response Pair；ＣＲＰ）を製品出荷前に予め取得し、記録しておく必要がある。この場合、予め記録した入出力対応情報が不正に改ざんされる可能性を考慮すると、ＰＵＦを利用したハードウェアセキュリティ機能の向上に懸念が生じる。
【０００６】
本発明の目的は、ＰＵＦを用いたハードウェアセキュリティ機能を向上させることができる情報処理装置、情報処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によれば、監視装置は、分散型台帳システムを構成する複数のノードの一つであるとともに、所定の監視対象機器を監視する監視装置であって、前記分散型台帳システムに予め登録された情報であって前記監視対象機器に所定のＰＵＦ回路を形成するための回路情報を配信する回路情報配信部と、前記回路情報を配信した前記監視対象機器に向けて所定のチャレンジ値を送信する送信処理部と、前記監視対象機器に形成された前記ＰＵＦ回路の、前記チャレンジ値に対応するレスポンス値を受信する受信処理部と、前記分散型台帳システムに予め登録された情報であって前記監視対象機器に形成された前記ＰＵＦ回路の入出力対応情報と、受信した前記レスポンス値とに基づいて、前記監視対象機器の認証を行う認証処理部と、を備える。
【０００８】
また、本発明の第２の態様によれば、前記認証処理部は、更に、前記分散型台帳システムを構成する他の複数のノードによる合意形成処理の結果に基づいて、前記監視対象機器の認証を行う。
【０００９】
また、本発明の第３の態様によれば、前記回路情報配信部は、前記監視対象機器から、配信した前記回路情報のハッシュ値の問い合わせを受けた場合に、前記分散型台帳システムに予め登録された、当該回路情報のハッシュ値を送信する。
【００１０】
また、本発明の第４の態様によれば、複数種類のチャレンジ値を前記監視対象機器に送信するとともに、当該監視対象機器から各チャレンジ値に対応するレスポンス値を受信して、当該監視対象機器に形成された前記ＰＵＦ回路の入出力対応情報を作成し、前記分散型台帳システムに登録する入出力対応情報登録部を更に備える。
【００１１】
また、本発明の第５の態様によれば、予め登録された共通鍵に基づいて、前記監視対象機器との間で相互認証を行う相互認証部を更に備える。
【００１２】
また、本発明の第６の態様によれば、監視システムは、第１から第５の何れかの態様に記載の監視装置を複数備え、当該複数の監視装置は、互いに通信可能に接続されて、前記分散型台帳システムを構成する。
【００１３】
また、本発明の第７の態様によれば、情報処理装置は、ＰＵＦ回路が形成されていない場合に、監視装置に対し回路情報の要求を行うとともに、当該監視装置から受信した回路情報に基づいてＰＵＦ回路を形成する回路形成部と、前記ＰＵＦ回路が形成されている場合に、前記監視装置に対し認証要求を行う機器認証要求部と、を備え、前記機器認証要求部は、前記認証要求の応答として前記監視装置から受信したチャレンジ値を前記ＰＵＦ回路に入力し、その出力結果であるレスポンス値を前記監視装置に返信する。
【００１４】
また、本発明の第８の態様によれば、情報処理装置は、前記認証要求の結果、前記監視装置から認証を受けた場合に、予め暗号化された制御プログラムを復号する復号処理部を更に備える。
【００１５】
また、本発明の第９の態様によれば、前記機器認証要求部は、前記認証要求の結果、前記監視装置から認証を受けなかった場合に、前記制御プログラムを消去する。
【００１６】
また、本発明の第１０の態様によれば、監視方法は、分散型台帳システムを構成する複数のノードの一つである監視装置を用いて、所定の監視対象機器を監視する監視方法であって、前記分散型台帳システムに予め登録された情報であって前記監視対象機器にＰＵＦ回路を形成するための回路情報を配信するステップと、前記回路情報を配信した前記監視対象機器に向けて所定のチャレンジ値を送信するステップと、前記監視対象機器に形成された前記ＰＵＦ回路の、前記チャレンジ値に対応するレスポンス値を受信するステップと、前記分散型台帳システムに予め登録された情報であって前記監視対象機器に形成された前記ＰＵＦ回路の入出力対応情報と、受信した前記レスポンス値とに基づいて、前記監視対象機器の認証を行うステップと、を有する。
【００１７】
また、本発明の第１１の態様によれば、プログラムは、分散型台帳システムを構成する複数のノードの一つであるとともに、所定の監視対象機器を監視する監視装置を、前記分散型台帳システムに予め登録された情報であって前記監視対象機器にＰＵＦ回路を形成するための回路情報を配信する回路情報配信部、前記回路情報を配信した前記監視対象機器に向けて所定のチャレンジ値を送信する送信処理部、前記監視対象機器に形成された前記ＰＵＦ回路の、前記チャレンジ値に対応するレスポンス値を受信する受信処理部、前記分散型台帳システムに予め登録された情報であって前記監視対象機器に形成された前記ＰＵＦ回路の入出力対応情報と、受信した前記レスポンス値とに基づいて、前記監視対象機器の認証を行う認証処理部、として機能させる。
【発明の効果】
【００１８】
上述の発明の各態様によれば、ＰＵＦを用いた製品の真贋判定の信頼性を高めることができる。
【図面の簡単な説明】
【００１９】
【図１】第１の実施形態に係る監視システムの全体構成を示す図である。
【図２】第１の実施形態に係る監視システム及び組込みシステムの構成を示す図である。
【図３】第１の実施形態に係る監視装置の機能構成を示す図である。
【図４】第１の実施形態に係る監視対象機器の機能構成を示す図である。
【図５】第１の実施形態に係る監視装置と監視対象機器との間で行う相互認証フェーズの処理フローを示す図である。
【図６】第１の実施形態に係る監視装置と監視対象機器との間で行う回路情報配信フェーズの処理フローを示す図である。
【図７】第１の実施形態に係る監視装置と監視対象機器との間で行う機器認証フェーズの処理フローを示す図である。
【図８】第１の実施形態に係る監視装置に記録される第１分散型台帳のデータ構造を示す図である。
【図９】第１の実施形態に係る監視装置に記録される入出力対応情報のデータ構造を示す図である。
【図１０】第１の実施形態に係る監視装置に記録される第２分散型台帳のデータ構造を示す図である。
【図１１Ａ】第１の実施形態に係る監視対象機器の処理フローを示す図である。
【図１１Ｂ】第１の実施形態に係る監視対象機器の処理フローを示す図である。
【図１２】第２の実施形態に係る監視対象機器の処理フローを示す図である。
【図１３】第３の実施形態に係る監視対象機器の処理フローを示す図である。
【図１４】第４の実施形態に係る監視装置に記録される入出力対応情報のデータ構造を示す図である。
【図１５】第５の実施形態に係る監視装置の機能構成を示す図である。
【図１６】第５の実施形態に係る監視装置と監視対象機器との間で行う新規ＣＲＰ登録フェーズの処理フローを示す図である。
【発明を実施するための形態】
【００２０】
＜第１の実施形態＞
以下、第１の実施形態に係る監視システム及び監視対象機器について、図１〜図１１Ｂを参照しながら説明する。
【００２１】
（監視システムの全体構成）
図１は、第１の実施形態に係る監視システムの全体構成を示す図である。
図１に示す監視システム１は、種々の組込みシステム２を監視するためのシステムである。具体的には、監視システム１は、組込みシステム２と通信可能に接続され、当該組込みシステム２を構成する製品（後述するロジックソルバや各種ＩＯ機器など）の認証（正当性の検証）を行う。
【００２２】
図１に示すように、複数の監視装置１０を備えている。
複数の監視装置１０は、広域通信網（例えば、インターネット回線等）を通じて、互いに通信可能に接続されている。複数の監視装置１０は、例えば、Ｐ２Ｐ（Peer to Peer）通信を行う。
【００２３】
監視システム１は、分散型台帳システムを構成し、複数の監視装置１０は、それぞれ、分散型台帳システムのノードとして機能する。分散型台帳システムの構成は、監視システム１が蓄える情報群をノードである各監視装置１０が独立に保持することで、情報群を分散して管理することができる。具体的には、各監視装置１０は、外部から登録の要求があった情報群を蓄えるとともに、所定の合意形成アルゴリズムを通じて、当該情報群を新たなブロックとして分散型台帳システムに登録（記録）する。一つのノード（監視装置１０）で新たなブロックが登録されると、他の全てのノード（監視装置１０）でも同様に登録される。新たに登録されたブロックは、前回に登録されたブロックの内容から一意に定まる情報（ハッシュ値）を含む。これにより、登録された情報群に対する改ざんの耐性を高めることができる。
【００２４】
組込みシステム２は、監視システム１の監視対象である。
本実施形態に係る組込みシステム２は、例えば、発電プラント等に設置されるガスタービン、蒸気タービン、ボイラー等を制御対象とする組込みシステムである。
組込みシステム２は、複数の製品（例えば、ロジックソルバ、ＩＯ機器等）の組み合わせによって構築されている。組込みシステム２を構築する各製品は、制御対象（ガスタービン等）の運用形態に合わせて、逐次、追加、更新されていく。新たに追加、更新された製品が不正品（偽物）であったとすると、組込みシステム２全体が脅威にさらされる。そのため、監視システム１は、各組込みシステム２において、新たに追加、更新される製品の認証（正当性の検証）を行う。
なお、監視システム１が適用される組込みシステム２は、ガスタービン、蒸気タービン、ボイラーを制御対象とするものに限られず、例えば、ＩＴＳ（Intelligent Transport Systems）、冷熱システム（大型冷凍機、空気調和機）、車両（鉄道、自動車、建設機械等）を制御対象とするものであってもよい。
【００２５】
（監視システム及び組込みシステムの構成）
図２は、第１の実施形態に係る監視システム及び組込みシステムの構成を示す図である。
図２に示すように、監視システム１と組込みシステム２とは、ネットワーク中継装置であるネットワークアダプタ（ＮＡ）を通じて互いに通信可能に接続されている。
図２に示す組込みシステム２ａは、監視システム１が監視対象とする複数の組込みシステム２のうちの一つである。組込みシステム２ａは、例えば、ガスタービンを制御対象とする組込みシステムである。
監視システム１のうちの一つのノードである監視装置１０ａは、組込みシステム２ａと直接的に通信接続され、これを監視対象とする。また、監視装置１０ａとは異なる他の監視装置１０ｂは、組込みシステム２ａを直接の監視対象とはしないが、図示しない他の組込みシステム２と直接的に通信接続され、各々を監視対象とする。
【００２６】
図２に示すように、組込みシステム２は、オペレータステーション（ＯＰＳ）２０と、エンジニアリングメンテナンスステーション（ＥＭＳ）２１と、ロジックソルバ（ＬＳ）２２と、ＩＯ機器（ＩＯ）２３と、を備えている。
【００２７】
ＯＰＳ２０は、オペレータが、制御対象機器（ガスタービン）の状態を把握し、制御（弁の開閉制御等）を行うための装置である。
ＥＭＳ２１は、制御プログラムを作成し制御演算装置（後述するロジックソルバ２２）にインストールするための装置である。
ロジックソルバ２２は、ガスタービンの制御演算を行う中核機器である。ロジックソルバ２２は、制御プログラムに従って、弁、センサ等の入出力、状態を制御する。図２に示すように、ＬＳ２２は、複数台並列に接続されることで冗長化されている。
ＩＯ機器２３は、ガスタービンに取り付けられるＩＯ機器（各種センサ、アクチュエータ等）である。複数のＩＯ機器２３は、ＩＯスキャナ、ＩＯネットワーク、ＩＯアダプタを介してロジックソルバ２２に接続される。なお、ＩＯスキャナは、ＩＯネットワークとロジックソルバ２２とを接続するための通信中継装置であり、ＩＯアダプタは、ＩＯネットワークの通信中継装置である。
本実施形態に係るロジックソルバ２２及びＩＯ機器２３は、所定の制御プログラムに従って動作する情報処理装置の一態様である。
【００２８】
以下、組込みシステム２ａにロジックソルバ２２ａを新たに追加する際の処理の流れについて説明する。ここで、新たに追加するロジックソルバ２２ａは、以下の説明において、監視対象機器２２ａとも記載する。
【００２９】
（監視装置の機能構成）
図３は、第１の実施形態に係る監視装置の機能構成を示す図である。
なお、図３に示す監視装置１０ａの構成は、監視システム１を構成する他の監視装置１０ｂについても同様である。
【００３０】
図３に示すように、監視装置１０ａは、ＣＰＵ１００と、ＲＯＭ１０１と、ＲＡＭ１０２と、通信インタフェース１０３と、記録媒体１０４とを備えている。
【００３１】
ＣＰＵ１００は、監視装置１０ａの動作全体を司るプロセッサである。ＣＰＵ１００は、予め用意されたプログラムに従って動作することで、後述する各種機能を発揮する。
ＲＯＭ１０１は、書き換え不能の不揮発性メモリである。本実施形態に係るＲＯＭ１０１は、共通鍵暗号方式を実現するための共通鍵ＳＫが予め記録されている。
ＲＡＭ１０２は、書き換え可能な揮発性メモリである。ＲＡＭ１０２は、主記憶装置とも呼ばれ、ＣＰＵ１００が各種機能を発揮して動作するためのプログラムが展開されている。
通信インタフェース１０３は、広域通信網を通じて他の監視装置１０ａ、及び、監視対象とする組込みシステム２と通信するためのインタフェースである。本実施形態において、通信インタフェース１０３を介した通信の態様（有線又は無線、グローバルネットワーク又はローカルネットワーク等）は、特に限定しない。
記録媒体１０４は、監視装置１０ａに内蔵される大容量記憶装置（不揮発性メモリ）であって、例えば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）等である。記録媒体１０４は、補助記憶装置とも呼ばれ、監視システム１が構成する分散型台帳システムのデータベース（以下、「分散型台帳」とも表記する。）が記録されている。
【００３２】
ＣＰＵ１００は、所定のプログラムに従って動作することで、相互認証受付部１０００、回路情報配信部１００１、及び、機器認証部１００２としての機能を発揮する。
相互認証受付部１０００は、組込みシステム２に新たに追加される監視対象機器２２ａから、相互認証処理を受け付ける。「相互認証処理」については後述する。
回路情報配信部１００１は、組込みシステム２に新たに追加される監視対象機器２２ａに向けて回路情報を配信する。「回路情報」とは、当該監視対象機器２２ａが有するＦＰＧＡ（後述）に所定のＰＵＦ（Physically Unclonable Function）回路、及び、所定の暗号鍵生成回路を形成（プログラム）するための情報である。回路情報（及びそのハッシュ値）は、監視システム１が構成する分散型台帳システムの分散型台帳に予め登録されている。
機器認証部１００２は、回路情報配信部１００１が回路情報を配信した監視対象機器２２ａに対して認証（正当性の検証）処理を行う。この認証処理は、機器認証部１００２が有する送信処理部１００２Ａ、受信処理部１００２Ｂ、及び、認証処理部１００２Ｃとしての機能に基づいて実行される。
【００３３】
送信処理部１００２Ａは、広域通信網を介して、回路情報配信部１００１が回路情報を配信した監視対象機器２２ａに向けて所定のチャレンジ値を送信する。「チャレンジ値」とは、ＰＵＦ回路から対応する出力値（レスポンス値）を得るための入力値であって、主に乱数であってよい。
受信処理部１００２Ｂは、広域通信網を介してチャレンジ値を送信した監視対象機器２２ａから、当該チャレンジ値に対応するレスポンス値を受信する。「レスポンス値」とは、監視対象機器２２ａに形成されたＰＵＦ回路に対し所定のチャレンジ値を入力した場合に、当該ＰＵＦ回路が当該チャレンジ値に対応して一意に出力する出力値である。
認証処理部１００２Ｃは、監視対象機器２２ａに形成されたＰＵＦ回路の入出力対応情報（ＣＲＰ（Challenge Response Pair）とも記載する。）と、監視対象機器２２ａから受信したレスポンス値とに基づいて、監視対象機器２２ａの認証を行う。「ＣＲＰ」とは、ＰＵＦ回路の入力値（チャレンジ値）と出力値（レスポンス値）との対応関係を示す情報であって、製品（監視対象機器２２ａ）ごと、かつ、ＰＵＦ回路ごとに、チャレンジ値とレスポンス値との対（ペア）が複数記録されてなる情報テーブルである。チャレンジ値に対応して出力されるレスポンス値は、ＰＵＦ回路内で生じる信号遅延差等の物理的個体差に依存して定まるため、ＰＵＦ回路の論理的回路構成が同一であったとしても、製品（監視対象機器２２ａ）が異なっていれば、同一のチャレンジ値に対して同一のレスポンス値を出力することができない。したがって、認証処理部１００２Ｃは、ＣＲＰとして予め取得しておいたレスポンス値と、広域通信網を経由して受信したレスポンス値とが同一であった場合は、チャレンジ値の送信先の機器は、真正なもの（組込みシステム２に新たに追加しようとする監視対象機器２２ａ）と判断することができる。
なお、監視対象機器２２ａのＰＵＦ回路についてのＣＲＰは、当該監視対象機器２２ａの出荷前において、事前に計測され、監視システム１が構成する分散型台帳システムの分散型台帳に登録されている。
【００３４】
（監視対象機器の機能構成）
図４は、第１の実施形態に係る監視対象機器の機能構成を示す図である。
なお、図４に示す監視対象機器２２ａの構成は、他の組込みシステム２を構成する他の監視対象機器（ＬＳ２２、ＩＯ機器２３等）についても同様である。
【００３５】
図４に示すように、監視対象機器２２ａは、ＣＰＵ２２０と、ＲＯＭ２２１と、ＦＰＧＡ２２２と、ＲＡＭ２２３と、フラッシュＲＯＭ２２４と、通信インタフェース２２５とを備えている。
【００３６】
ＣＰＵ２２０は、監視対象機器２２ａの動作全体を司るプロセッサである。ＣＰＵ２２０は、予め用意されたプログラムに従って動作することで、後述する各種機能を発揮する。また、ＣＰＵ２２０は、監視装置１０ａによる認証がなされた後、所定の制御プログラムに従って動作することで、ガスタービン等を制御する組込みシステム２の一構成機器として正式に動作する。
ＲＯＭ２２１は、書き換え不能の不揮発性メモリである。本実施形態に係るＲＯＭ２２１は、共通鍵暗号方式を実現するための共通鍵ＳＫが予め記録されている。共通鍵ＳＫは、監視装置１０ａのＲＯＭ１０１に記録されているものと同一のものとされている。また、図４には図示しないが、ＲＯＭ２２１には、初回起動時等において監視装置１０ａとの間で認証を行うためのブートプログラムが記録されている。
ＦＰＧＡ２２２は、製造後において所望の論理回路を形成可能な集積回路である。ＦＰＧＡ２２２には、監視装置１０ａ（回路情報配信部１００１）から受信する回路情報に基づくＰＵＦ回路Ｃ＿ＰＵＦ及び暗号鍵生成回路Ｃ＿ＥＮＣが形成される。なお、監視対象機器２２ａの出荷当初は、ＦＰＧＡ２２２には、ＰＵＦ回路Ｃ＿ＰＵＦ及び暗号鍵生成回路Ｃ＿ＥＮＣは形成されていない。
ＲＡＭ２２３は、書き換え可能な揮発性メモリである。ＲＡＭ２２３は、ＣＰＵ２２０が各種機能を発揮して動作するためのプログラムが展開される。
フラッシュＲＯＭ２２４は、書き換え可能な不揮発性メモリである。フラッシュＲＯＭ２２４には、暗号化された制御プログラム（暗号化制御プログラムＥ＿ＰＲＧ）と、所定のチャレンジ値ＣＨとが記録される。なお、監視対象機器２２ａの出荷当初は、フラッシュＲＯＭ２２４には何らの情報も記録されていない。
通信インタフェース２２５は、広域通信網を通じて監視装置１０ａ等と通信するためのインタフェースである。
【００３７】
ＣＰＵ１００は、ＲＯＭ２２１に記録されているブートプログラムに従って動作することで、相互認証部２２００、回路形成部２２０１、機器認証要求部２２０２、暗号化処理部２２０３及び復号処理部２２０４としての機能を発揮する。
【００３８】
相互認証部２２００は、初回起動時において、監視装置１０ａとの間で相互認証処理を行う。相互認証処理とは、互いの共通鍵ＳＫを介した認証である。
回路形成部２２０１は、監視装置１０ａから受信した回路情報に基づいて、ＦＰＧＡ２２２に、ＰＵＦ回路Ｃ＿ＰＵＦ及び暗号鍵生成回路Ｃ＿ＥＮＣを形成する。なお、暗号鍵生成回路Ｃ＿ＥＮＣは、一般に良く知られている共通鍵暗号アルゴリズム（例えば、Advanced Encryption Standard；ＡＥＳ）に基づく回路であってよい。
機器認証要求部２２０２は、回路形成部２２０１によってＦＰＧＡ２２２にＰＵＦ回路Ｃ＿ＰＵＦが形成された後、監視装置１０ａに対し、当該ＰＵＦ回路Ｃ＿ＰＵＦを用いた正式な認証を要求する。
暗号化処理部２２０３は、監視装置１０ａによる正式な認証が完了した後、組込みシステム２の一構成機器として正式に動作するための制御プログラムを暗号化し、暗号化制御プログラムＥ＿ＰＲＧを自装置のフラッシュＲＯＭ２２４に記録する。
復号処理部２２０４は、自装置のフラッシュＲＯＭ２２４に記録された暗号化制御プログラムＥ＿ＰＲＧを復号してＲＡＭ２２３に展開する。これにより、ＣＰＵ１００は、組込みシステム２の構成機器として正式に動作する。
【００３９】
（相互認証フェーズの処理フロー）
図５は、第１の実施形態に係る監視装置と監視対象機器との間で行う相互認証フェーズの処理フローを示す図である。
図５に示す相互認証フェーズの処理フローは、組込みシステム２のネットワークに接続された監視対象機器２２ａが初めて起動した段階から開始される。前提として、監視対象機器２２ａは、自装置のＦＰＧＡ２２２に、ＰＵＦ回路Ｃ＿ＰＵＦ及び暗号鍵生成回路Ｃ＿ＥＮＣがインストール（形成）されていないことをトリガにして、図５に示す相互認証フェーズを開始する。
【００４０】
まず、起動した監視対象機器２２ａは、監視装置１０ａに対し相互認証を要求する。具体的には、監視対象機器２２ａの相互認証部２２００は、乱数である相互認証用乱数を作成する。そして、相互認証部２２００は、予め規定された接続先アドレス（監視装置１０ａ）に対し、相互認証要求コマンド、及び、当該相互認証用乱数を送信する（ステップＳ００）。
監視装置１０ａの相互認証受付部１０００は、外部（監視対象機器２２ａ）から相互認証要求コマンド、及び、相互認証用乱数を受信すると、受信した相互認証用乱数を、自装置のＲＯＭ１０１に記録されている共通鍵ＳＫで暗号化する（ステップＳ０１）。そして、相互認証受付部１０００は、共通鍵ＳＫで暗号化した相互認証用乱数（暗号化相互認証用乱数）を送信元（監視対象機器２２ａ）に返信する（ステップＳ０２）。
【００４１】
監視対象機器２２ａの相互認証部２２００は、監視装置１０ａから受信した暗号化相互認証用乱数を、自装置のＲＯＭ２２１に記録されている共通鍵ＳＫで復号する。さらに、相互認証部２２００は、共通鍵ＳＫで復号した相互認証用乱数と、ステップＳ００で作成した相互認証用乱数との一致判定を行う（ステップＳ０３）。一致判定の結果、両者が一致している場合には、監視対象機器２２ａは、真正な監視装置１０ａを通信対象としているものと判断し、回路情報配信フェーズに進む。
【００４２】
なお、以降の各フェーズ（回路情報配信フェーズ（図６）、機器認証フェーズ（図７））で行われる装置間の情報のやり取りは、全て、共通鍵ＳＫを用いた共通鍵暗号方式を介して行われるものとする。
【００４３】
一致判定の結果、両者が一致していなかった場合には、監視対象機器２２ａは、真正な監視装置１０ａを通信対象としていないとの判断より、以降の処理を停止する。
【００４４】
（回路情報配信フェーズの処理フロー）
図６は、第１の実施形態に係る監視装置と監視対象機器との間で行う回路情報配信フェーズの処理フローを示す図である。
図６に示す回路情報配信フェーズの処理フローは、相互認証フェーズ（図５のステップＳ００〜Ｓ０３）を経て相互認証がなされた段階から開始される。
【００４５】
まず、監視対象機器２２ａは、監視装置１０ａに対し回路情報の配信を要求する。具体的には、監視対象機器２２ａの回路形成部２２０１は、監視装置１０ａに対し、回路情報要求コマンドを送信する（ステップＳ１０）。この回路情報要求コマンドには、製品（監視対象機器２２ａ自身）を個々に識別可能な機器ＩＤ（例えば、製造番号等）が含まれているものとする。
【００４６】
監視対象機器２２ａから回路情報要求コマンドを受信すると、監視装置１０ａの回路情報配信部１００１は、監視システム１を構成する他の監視装置１０ｂに対し、取引成立承認依頼を行う（ステップＳ１１）。具体的には、回路情報配信部１００１は、他の監視装置１０ｂの全てに対し、取引成立承認依頼コマンド、及び、監視対象機器２２ａからの回路情報要求コマンドを送信する。
【００４７】
他の監視装置１０ｂは、監視装置１０ａから、取引成立承認依頼コマンド、及び、監視対象機器２２ａからの回路情報要求コマンドを受信すると、当該回路情報要求コマンドに応答して回路情報を配信して良いか否かを決定する合意形成処理を行う（ステップＳ１２）。具体的には、他の監視装置１０ｂは、それぞれ、回路情報要求コマンドに含まれる機器ＩＤ（監視対象機器２２ａの識別情報）が、分散型台帳システムの分散型台帳（記録媒体１０４）に事前に登録されているか否かの判定を行う。ここで、組込みシステム２に追加される監視対象機器２２ａの機器ＩＤは、分散型台帳に事前に登録されているものとする（図８、図９参照）。
さらに、他の監視装置１０ｂは、それぞれ、監視対象機器２２ａからの回路情報要求コマンドに改ざんの痕跡がないか否か、を検証する。
なお、監視装置１０ａ及び他の監視装置１０ｂがステップＳ１２で行う合意形成処理には、一般に知られている合意形成アルゴリズム（例えば、Practical Byzantine Fault Tolerance；ＰＢＦＴ等）が用いられてよい。
【００４８】
上記判定、検証の結果、監視対象機器２２ａからの回路情報要求コマンドの内容に問題が発見されない場合、他の監視装置１０ｂは、「回路情報を配信してよい」との合意形成に基づき、監視装置１０ａに対し、取引承認コマンドを返信する（ステップＳ１３）。
【００４９】
他の監視装置１０ｂから取引承認コマンドを受信すると、監視装置１０ａの回路情報配信部１００１は、監視対象機器２２ａに向けて、分散型台帳（記録媒体１０４）に事前に登録されている回路情報を配信する（ステップＳ１４）。なお、この回路情報には、監視対象機器２２ａのＦＰＧＡ２２２にＰＵＦ回路Ｃ＿ＰＵＦを形成するための回路情報と、暗号鍵生成回路Ｃ＿ＥＮＣを形成するための回路情報とが含まれる。
【００５０】
監視対象機器２２ａの回路形成部２２０１は、監視装置１０aから回路情報を受信すると、当該回路情報の正当性検証を行う。具体的には、回路形成部２２０１は、監視装置１０ａ及び他の監視装置１０ｂに向けて、ステップＳ１４で受信した回路情報のハッシュ値問い合わせコマンドを送信する（ステップＳ１５）。
【００５１】
監視装置１０ａ及び他の監視装置１０ｂは、監視対象機器２２ａから回路情報のハッシュ値問い合わせコマンドを受信すると、それぞれ、記録媒体１０４を参照し、監視対象機器２２ａに向けて配信した回路情報のハッシュ値を検索する（ステップＳ１６）。
ここで、ステップＳ１４で配信した回路情報、及び、当該回路情報のハッシュ値は、分散型台帳システムの分散型台帳（記録媒体１０４）に、事前に登録されているものとする（図１０参照）。
【００５２】
監視装置１０ａ及び他の監視装置１０ｂは、監視対象機器２２ａに対し、それぞれの分散型台帳（記録媒体１０４）に記録されている回路情報のハッシュ値の検索結果を返信する（ステップＳ１７）。
【００５３】
監視装置１０ａ及び他の監視装置１０ｂから回路情報のハッシュ値を受信すると、監視対象機器２２ａの回路形成部２２０１は、監視装置１０ａから受信した回路情報の検証を行う（ステップＳ１８）。具体的には、回路形成部２２０１は、ステップＳ１４で監視装置１０ａから受信した回路情報のハッシュ値を自身で計算するとともに、当該計算結果が、ステップＳ１７で受信したハッシュ値と一致するか否かを判定する。
【００５４】
ステップＳ１４で受信した回路情報のハッシュ値の計算結果が、ステップＳ１７で受信したハッシュ値と一致した場合、ステップＳ１４で受信した回路情報が真正なものである、と判断できる。この場合、回路形成部２２０１は、ステップＳ１４で受信した回路情報に基づいて、自装置のＦＰＧＡ２２２に、ＰＵＦ回路Ｃ＿ＰＵＦ、及び、暗号鍵生成回路Ｃ＿ＥＮＣを形成（インストール）する（ステップＳ１９）。
自装置のＦＰＧＡ２２２に、ＰＵＦ回路Ｃ＿ＰＵＦ、及び、暗号鍵生成回路Ｃ＿ＥＮＣを形成すると、次に、監視対象機器２２ａは、形成済みのＰＵＦ回路Ｃ＿ＰＵＦを用いた機器認証フェーズに進む。
【００５５】
他方、ステップＳ１４で受信した回路情報のハッシュ値の計算結果が、ステップＳ１７にて受信したハッシュ値と一致しなかった場合、回路形成部２２０１は、真正な回路情報を受信していないとの判断より、自装置のＦＰＧＡ２２２に、ＰＵＦ回路Ｃ＿ＰＵＦ、及び、暗号鍵生成回路Ｃ＿ＥＮＣを形成しない。
【００５６】
（機器認証フェーズの処理フロー）
図７は、第１の実施形態に係る監視装置と監視対象機器との間で行う機器認証フェーズの処理フローを示す図である。
図７に示す機器認証フェーズの処理フローは、回路情報配信フェーズ（図６のステップＳ１０〜Ｓ１９）を経て、監視対象機器２２ａのＦＰＧＡ２２２にＰＵＦ回路Ｃ＿ＰＵＦが形成された段階から開始される。
【００５７】
まず、監視対象機器２２ａの機器認証要求部２２０２は、組込みシステム２の一構成機器として正式な認証を受けるべく、監視装置１０ａに向けて機器認証要求コマンドを送信する（ステップＳ２０）。
【００５８】
監視対象機器２２ａから機器認証要求コマンドを受信すると、監視装置１０aの機器認証部１００２（送信処理部１００２Ａ）は、分散型台帳（記録媒体１０４）に登録されているＣＲＰ情報の中からチャレンジ値を一つ選択し（図８、図９参照）、当該選択したチャレンジ値を、監視対象機器２２ａ及び他の監視装置１０ｂの全てに送信する（ステップＳ２１）。
【００５９】
監視装置１０ａからチャレンジ値を受信すると、機器認証要求部２２０２は、当該チャレンジ値を、ＦＰＧＡ２２２のＰＵＦ回路Ｃ＿ＰＵＦに入力する。そして、機器認証要求部２２０２は、当該入力に対応してＰＵＦ回路Ｃ＿ＰＵＦから出力された出力値を、ＰＵＦ回路Ｃ＿ＰＵＦのレスポンス値として取得する（ステップＳ２２）。
【００６０】
機器認証要求部２２０２は、ステップＳ２２で取得したレスポンス値を、監視装置１０ａに向けて送信する（ステップＳ２３）。監視装置１０ａの機器認証部１００２（受信処理部１００２Ｂ）は、監視対象機器２２ａから、ＰＵＦ回路Ｃ＿ＰＵＦのレスポンス値を受信する。
【００６１】
次に、監視装置１０ａの機器認証部１００２（認証処理部１００２Ｃ）は、分散型台帳に登録されているＣＲＰ情報の中から、ステップＳ２１で送信したチャレンジ値に対応するレスポンス値を検索する（図８、図９参照）。そして、機器認証部１００２は、検索したレスポンス値（ＣＲＰに記録されているレスポンス値）と、ステップＳ２３で受信したレスポンス値との一致判定を行う（ステップＳ２４）。
【００６２】
ステップＳ２４の一致判定の結果、両者が一致していた場合、機器認証部１００２は、監視システム１を構成する他の監視装置１０ｂに対し、取引成立承認依頼を行う（ステップＳ２５）。具体的には、機器認証部１００２は、他の監視装置１０ｂの全てに対し、取引成立承認依頼コマンド、及び、ステップＳ２３で受信した監視対象機器２２ａからのレスポンス値を送信する。
【００６３】
他の監視装置１０ｂは、監視装置１０ａから、取引成立承認依頼コマンド、及び、監視対象機器２２ａからのレスポンス値を受信すると、当該レスポンス値を送信した監視対象機器２２ａを、組込みシステム２の一構成機器として正式に認証してよいか否かを決定する合意形成処理を行う（ステップＳ２６）。具体的には、他の監視装置１０ｂは、それぞれ、分散型台帳（記録媒体１０４）に登録されているＣＲＰの中から、ステップＳ２１で受信したチャレンジ値に対応するレスポンス値を検索する。そして、機器認証部１００２は、検索したレスポンス値（ＣＲＰに記録されているレスポンス値）と、ステップＳ２３で受信したレスポンス値との一致判定を行う。
なお、監視装置１０ａ及び他の監視装置１０ｂがステップＳ２６で行う合意形成処理には、一般に知られている合意形成アルゴリズム（例えば、ＰＢＦＴ等）が用いられてよい。
また、監視装置１０ａ及び監視装置１０ｂは、ステップＳ２１で監視対象機器２２ａに送信したチャレンジ値（使用済チャレンジ値）、合意形成処理の結果、合意形成処理が行われた年月日時分等の情報を新たに分散型台帳に登録する（ステップＳ２６）。
【００６４】
上記一致判定の結果、監視対象機器２２ａからのレスポンス値が、各ＣＲＰに記録されているレスポンス値と一致していた場合、他の監視装置１０ｂは、「組込みシステム２の一構成機器として正式に認証してよい」との合意形成に基づき、監視装置１０ａに対し、取引承認コマンドを返信する（ステップＳ２７）。
【００６５】
他の監視装置１０ｂから取引承認コマンドを受信すると、監視装置１０ａの機器認証部１００２は、ステップＳ２０の機器認証要求コマンドに応答して、監視対象機器２２ａに認証コマンドを配信する（ステップＳ２８）。監視装置１０ａから認証コマンドが配信されると、例えば、組込みシステム２のＥＭＳ２１（図２）は、監視装置１０ａからの認証コマンドの受信をトリガにして、監視対象機器２２ａに対し、組込みシステム２の一構成機器（ロジックソルバ）として動作するための制御プログラムを送信する。
監視対象機器２２ａの暗号化処理部２２０３は、ＥＭＳ２１から受信した制御プログラムを暗号化して、監視対象機器２２ａのフラッシュＲＯＭ２２４に記録する（ステップＳ２９）。暗号化処理部２２０３が行うステップＳ２９の処理の詳細については、後述する。
【００６６】
（第１分散型台帳のデータ構造）
図８は、第１の実施形態に係る監視装置に記録される第１分散型台帳のデータ構造を示す図である。
また、図９は、第１の実施形態に係る監視装置に記録される入出力対応情報（ＣＲＰ）のデータ構造を示す図である。
【００６７】
図８は、監視装置１０ａの記録媒体１０４に記録される第１分散型台帳のデータ構造を示している。
図８に示すように、第１分散型台帳を構成する各ブロックＢ１は、ブロックヘッダＢ１０と、ＣＲＰ情報Ｂ１１と、を有してなる。
ブロックヘッダＢ１０は、各ブロックＢ１に含まれる全データ（ＣＲＰ情報Ｂ１１）のハッシュ値と、前ブロックヘッダ（前回登録されたブロックＢ１のブロックヘッダＢ１０）のハッシュ値とを有してなる。
ＣＲＰ情報Ｂ１１は、製品（監視対象機器２２ａ）ごと、かつ、ＰＵＦ回路ごとに、事前計測によって得られたＣＲＰが記録されている。
【００６８】
ここで、ＣＲＰ情報について、図９を参照しながら詳しく説明する。
図９に示すように、ＣＲＰ情報は、監視対象機器２２ａを識別可能な機器ＩＤと、ＰＵＦ回路の種類（論理構成）を識別可能なＰＵＦ回路ＩＤと、機器ＩＤ及びＰＵＦ回路ＩＤで特定されるＰＵＦ回路Ｃ＿ＰＵＦのチャレンジ値とレスポンス値との対応関係が示されている。
このように、チャレンジ値及びレスポンス値は、所定ビット数（例えば、１２８ビット）の値で示される。ＣＲＰ情報は、監視対象機器２２ａの出荷前の段階で、各機器及びＰＵＦ回路の種類ごとに計測され、分散型台帳に登録される。
【００６９】
監視装置１０ａの機器認証部１００２は、図７のステップＳ２１の処理において、図９に示されるＣＲＰ情報の中から一つのチャレンジ値を選択して、監視対象機器２２ａに送信する。
また、機器認証部１００２は、図７のステップＳ２４の処理において、図９に示すＣＲＰ情報の中から、ステップＳ２１で送信したチャレンジ値に対応するレスポンス値を検索する。そして、機器認証部１００２は、検索したレスポンス値（ＣＲＰに記録されているレスポンス値）と、ステップＳ２３で受信したレスポンス値との一致判定を行う。
【００７０】
（第２分散型台帳のデータ構造）
図１０は、記録媒体１０４に記録される第２分散型台帳のデータ構造を示している。
図１０に示すように、第２分散型台帳を構成する各ブロックＢ２は、ブロックヘッダＢ２０と、ＰＵＦ回路の回路情報及びハッシュ値（以下、ＰＵＦ回路情報群Ｂ２１と表記する。）と、暗号鍵生成回路の回路情報及びハッシュ値（以下、暗号鍵生成回路情報群Ｂ２２と表記する。）と、を有してなる。
ブロックヘッダＢ２０は、各ブロックＢ２に含まれる全データ（ＰＵＦ回路情報群Ｂ２１及び暗号鍵生成回路情報群Ｂ２２）のハッシュ値と、前ブロックヘッダ（前回登録されたブロックＢ２のブロックヘッダＢ２０）のハッシュ値とを有してなる。
【００７１】
監視装置１０ａの回路情報配信部１００１は、図６のステップＳ１４の処理において、図１０に示す第２分散型台帳から、監視対象機器２２ａにインストールすべきＰＵＦ回路情報群Ｂ２１の回路情報と、暗号鍵生成回路情報群Ｂ２２の回路情報と、を特定し、当該監視対象機器２２ａに送信する。
また、監視装置１０ａ及び他の監視装置１０ｂは、図６のステップＳ１６の処理において監視対象機器２２ａから回路情報のハッシュ値問い合わせコマンドを受信すると、それぞれ、図１０に示す第２分散型台帳に記録された、各回路情報のハッシュ値を検索する。
【００７２】
（認証後における処理フロー）
図１１Ａ、図１１Ｂは、それぞれ、第１の実施形態に係る監視対象機器の処理フローを示す図である。
【００７３】
まず、図１１Ａを参照しながら、監視装置１０ａによって認証された直後に監視対象機器２２ａが行う処理（図７のステップＳ２９の処理）について説明する。
【００７４】
図１１Ａに示すように、監視対象機器２２ａの暗号化処理部２２０３は、任意のチャレンジ値ＣＨ（乱数）を生成する（ステップＳ３０）。ここで生成されるチャレンジ値ＣＨは、機器認証フェーズ（図７）で使用したチャレンジ値（ＣＲＰ情報に記録されたチャレンジ値）にかかわらず、任意の乱数であってよい。
次に、暗号化処理部２２０３は、ステップＳ３０で生成したチャレンジ値ＣＨをＦＰＧＡ２２２のＰＵＦ回路Ｃ＿ＰＵＦに入力する（ステップＳ３１）。
次に、暗号化処理部２２０３は、ステップＳ３１の結果、ＰＵＦ回路Ｃ＿ＰＵＦから出力されたレスポンス値を取得する。そして、暗号化処理部２２０３は、取得したレスポンス値をＦＰＧＡ２２２の暗号鍵生成回路Ｃ＿ＥＮＣに入力し、暗号鍵を生成する（ステップＳ３２）。
次に、暗号化処理部２２０３は、ステップＳ３２で生成した暗号鍵で、ステップＳ２８で取得した制御プログラムを暗号化する（ステップＳ３３）。
次に、暗号化処理部２２０３は、ステップＳ３３で暗号化された制御プログラムＥ＿ＰＲＧをフラッシュＲＯＭ２２４に書き込む（ステップＳ３４）。
同時に、暗号化処理部２２０３は、ステップＳ３０で生成したチャレンジ値ＣＨをフラッシュＲＯＭ２２４に書き込む（ステップＳ３５）。
【００７５】
次に、図１１Ｂを参照しながら、監視対象機器２２ａの２回目以降の起動時の処理（通常の起動処理）について説明する。
【００７６】
図１１Ａに示す処理の結果、監視対象機器２２ａは、暗号化された制御プログラムＥ＿ＰＲＧがフラッシュＲＯＭ２２４に書き込まれた状態となっている。２回目以降の起動時において、監視対象機器２２ａは、当該暗号化された制御プログラムＥ＿ＰＲＧを復号して、組込みシステム２の一構成機器としての動作を行う。
【００７７】
具体的には、監視対象機器２２ａの復号処理部２２０４は、フラッシュＲＯＭ２２４に記録されているチャレンジ値ＣＨを読み出して取得する（ステップＳ４０）。
次に、復号処理部２２０４は、ステップＳ４０で取得したチャレンジ値ＣＨをＦＰＧＡ２２２のＰＵＦ回路Ｃ＿ＰＵＦに入力する（ステップＳ４１）。
次に、復号処理部２２０４は、ステップＳ４１の結果、ＰＵＦ回路Ｃ＿ＰＵＦから出力されたレスポンス値を取得する。そして、復号処理部２２０４は、取得したレスポンス値をＦＰＧＡ２２２の暗号鍵生成回路Ｃ＿ＥＮＣに入力し、暗号鍵を生成する（ステップＳ４２）。
次に、復号処理部２２０４は、ステップＳ４２で生成した暗号鍵で、フラッシュＲＯＭ２２４に記録された、暗号化された制御プログラムＥ＿ＰＲＧを復号する（ステップＳ４３）。
次に、復号処理部２２０４は、ステップＳ４３で復号された制御プログラムをＲＡＭ２２３に展開する（ステップＳ４４）。
この結果、監視対象機器２２ａのＣＰＵ２２０は、ＲＡＭ２２３に展開された制御プログラムに従って動作する。
【００７８】
（作用、効果）
以上のとおり、第１の実施形態に係る監視装置１０ａは、分散型台帳システムを構成する複数のノードの一つであるとともに、組込みシステム２を構成する情報処理装置（例えば、ロジックソルバ、ＩＯ機器等）を監視対象機器２２ａとして監視する。
監視装置１０ａは、監視対象機器２２ａに対し、ＰＵＦ回路Ｃ＿ＰＵＦを形成するための回路情報を配信する回路情報配信部１００１（図６のステップＳ１４参照）と、回路情報を配信した監視対象機器２２ａに向けて所定のチャレンジ値を送信する送信処理部１００２Ａ（図７のステップＳ２１参照）と、監視対象機器２２ａに形成されたＰＵＦ回路Ｃ＿ＰＵＦのレスポンス値を受信する受信処理部１００２Ｂ（図７のステップＳ２３参照）と、監視対象機器２２ａに形成されたＰＵＦ回路Ｃ＿ＰＵＦの入出力対応情報（ＣＲＰ）と、受信したレスポンス値と、に基づいて、監視対象機器２２ａの認証を行う認証処理部１００２Ｃ（図７のステップＳ２４参照）と、を備えている。
また、上述のＣＲＰ及び回路情報は、監視システム１が構成する分散型台帳システムに、事前に登録されている。
【００７９】
また、以上のとおり、第１の実施形態に係る監視対象機器２２ａ（情報処理装置）は、自装置内にＰＵＦ回路Ｃ＿ＰＵＦが形成されていない場合に、監視装置１０ａに対し回路情報の要求（図６のステップＳ１０参照）を行うとともに、当該監視装置１０ａから受信した回路情報に基づいてＰＵＦ回路Ｃ＿ＰＵＦを形成する回路形成部２２０１と、ＰＵＦ回路Ｃ＿ＰＵＦが形成されている場合に、監視装置１０ａに対し認証要求（図７のステップＳ２０参照）を行う機器認証要求部２２０２と、を備えている。そして、機器認証要求部２２０２は、認証要求の応答として監視装置から受信したチャレンジ値をＰＵＦ回路に入力し（図７のステップＳ２３参照）、その出力結果であるレスポンス値を監視装置１０ａに返信する（図７のステップＳ２４参照）。
【００８０】
以上のような構成によれば、監視システム１が構成する分散型台帳システムに事前登録されたＣＲＰに基づいて、監視対象機器２２ａの認証が行われる（図７のステップＳ２０〜Ｓ２８参照）。これにより、ＣＲＰの改ざん耐性が強化されるので、ＰＵＦを用いた製品の正当性検証の信頼性を高めることができる。
また、上記構成によれば、機器認証フェーズの前に、監視対象機器２２ａに対し、外部から配信される回路情報に基づいてＰＵＦ回路を形成する処理が行われる（図６のステップＳ１０〜Ｓ１９参照）。これにより、監視対象機器２２ａは、ＰＵＦ回路Ｃ＿ＰＵＦが形成されていない状態で出荷されるので、ＰＵＦ回路Ｃ＿ＰＵＦの情報流出を抑制することができる。
【００８１】
また、第１の実施形態に係る監視装置１０ａ（認証処理部１００２Ｃ）は、更に、分散型台帳システムを構成する他の複数のノードによる合意形成処理の結果に基づいて、監視対象機器の認証を行う（図７のステップＳ２５〜Ｓ２７参照）。
このようにすることで、複数のノードそれぞれでＣＲＰに基づく認証の合否がなされるので、当該認証の合否の信頼性を高めることができる。
【００８２】
また、第１の実施形態に係る監視装置１０ａ（回路情報配信部１００１）は、監視対象機器２２ａから、監視装置１０ａが配信した回路情報のハッシュ値の問い合わせを受けた場合に、分散型台帳システムに予め登録された、当該回路情報のハッシュ値を送信する。  このようにすることで、監視対象機器２２ａは、全てのノード（監視装置１０）から送信されるハッシュ値に基づいて、受信した回路情報の正当性検証を行うことできる。即ち、監視対象機器２２ａは、配信された回路情報が真正なもの（分散型台帳システムに記録されているもの）であることの確証を得ることができる。
【００８３】
（第１の実施形態の変形例）
以上、第１の実施形態に係る監視システム１及び監視装置１０について詳細に説明したが、監視システム１及び監視装置１０の具体的な態様は、上述のものに限定されることはなく、要旨を逸脱しない範囲内において種々の設計変更等を加えることは可能である。
【００８４】
例えば、第１の実施形態に係る監視装置１０ａ及び他の監視装置１０ｂは、図７のステップＳ２６で、監視対象機器２２ａを認証するか否かの合意形成処理とともに、監視対象機器２２ａに送信したチャレンジ値（使用済チャレンジ値）等を、新たに分散型台帳（記録媒体１０４）に登録するものとして説明した。
ここで、監視装置１０ａは、更に、監視対象機器２２ａに対する機器認証処理を再度行う場合には、図７のステップＳ２１において、分散型台帳を参照し、使用済チャレンジ値として登録されていないチャレンジ値（つまり、一度も監視装置２２ａに送信されていないチャレンジ値）のみを選択して送信するものとしてもよい。
このようにすることで、機器認証フェーズにおいて監視装置１０ａが監視対象機器２２ａに送信するチャレンジ値は、常に、初めて送信されるものとなるので、チャレンジ値が盗聴されて第三者に把握されるリスクを軽減することができる。
【００８５】
また、第１の実施形態に係る回路情報配信部１００１は、ＰＵＦ回路Ｃ＿ＰＵＦを形成するための回路情報とともに、暗号鍵生成回路Ｃ＿ＥＮＣを形成する回路情報を配信するものとして説明した（図６のステップＳ１４参照）。また、暗号化処理部２２０３は、ＰＵＦ回路Ｃ＿ＰＵＦのレスポンス値を暗号鍵生成回路Ｃ＿ＥＮＣに入力して暗号鍵を生成するとともに、当該暗号鍵を用いて制御プログラムを暗号化するものとして説明した（図１１ＡのステップＳ３２〜Ｓ３３）。しかし、他の実施形態においては上記態様に限定されない。
即ち、他の実施形態に係る回路情報配信部１００１は、ＰＵＦ回路Ｃ＿ＰＵＦを形成するための回路情報のみを配信するものとし、また、監視対象機器２２ａの暗号化処理部２２０３は、ＰＵＦ回路Ｃ＿ＰＵＦのレスポンス値を用いて、直接、制御プログラムを暗号化するものとしてもよい。なお、この場合、監視対象機器２２ａの復号処理部２２０４は、ＰＵＦ回路Ｃ＿ＰＵＦのレスポンス値を用いて、直接、暗号化された制御プログラムＥ＿ＰＲＧを復号するものとする。
【００８６】
また、第１の実施形態に係る監視システム１及び各監視装置１０は、組込みシステム２の外部に設置される態様として説明した（図１、図２参照）。しかし、他の実施形態においてはこの態様に限定されない。
即ち、監視装置１０ａが具備する各機能（図３）は、組込みシステム２の構成機器として設置されているＯＰＳ２０、ＥＭＳ２１等に組み込まれる態様であってもよい。
また、監視装置１０は、１台のハードウェア（筐体）内において、仮想的に複数設置される態様であってもよい。
【００８７】
＜第２の実施形態＞
次に、第２の実施形態に係る監視システム及び監視対象機器について、図１２を参照しながら説明する。
【００８８】
（監視対象機器の処理フロー）
図１２は、第２の実施形態に係る監視対象機器の処理フローを示す図である。
図１２を参照しながら、第２の実施形態に係る監視対象機器２２ａの２回目以降の起動時の処理（通常の起動処理）について説明する。
【００８９】
第２の実施形態に係る監視対象機器２２ａは、２回目以降の起動時において、機器認証フェーズを再度実行する。即ち、監視対象機器２２ａは、２回目以降の起動時に、再び、監視装置１０ａに対し機器認証要求（図７のステップＳ２０）を行う。そして、監視装置１０ａ等による認証処理（ステップＳ２１〜Ｓ２７）を経た後、当該監視装置１０ａから改めて認証を受ける（図７のステップＳ２８）。
監視対象機器２２ａは、機器認証フェーズ（ステップＳ２０〜Ｓ２８）において、監視装置１０ａによって正常に認証されたか否かを判定する（ステップＳ５０）。
機器認証フェーズ（ステップＳ２０〜Ｓ２８）において正常に認証された場合（ステップＳ５０：ＹＥＳ）、監視対象機器２２ａは、制御開始処理（図１１ＢのステップＳ４０〜Ｓ４４）を実行し、制御プログラムに従った動作を行う。
他方、機器認証フェーズ（ステップＳ２０〜Ｓ２８）において正常に認証されなかった場合（ステップＳ５０：ＮＯ）、監視対象機器２２ａは、制御開始処理（図１１ＢのステップＳ４０〜Ｓ４４）を実行せずに処理を終了する。
【００９０】
（作用、効果）
以上のとおり、第２の実施形態に係る監視対象機器２２ａは、暗号化された制御プログラムＥ＿ＰＲＧがフラッシュＲＯＭ２２４に記録された後、再度、起動された場合には、機器認証フェーズ（図７のステップＳ２０〜Ｓ２８）を再度実行し、認証を得たうえで、暗号化された制御プログラムＥ＿ＰＲＧの復号及び実行（図１１ＢのステップＳ４０〜Ｓ４４）を行う。
即ち、第２の実施形態に係る監視対象機器２２ａによれば、復号処理部２２０４は、認証要求（図７のステップＳ２０）の結果、監視装置１０ａから認証を受けた場合（ステップＳ５０：ＹＥＳ）に、予め暗号化された制御プログラムＥ＿ＰＲＧを復号する。
【００９１】
ここで、第１の実施形態に係る監視対象システム２２ａによれば、当該監視対象システム２２ａそのものが盗難にあった場合、盗難先で当該監視対象システム２２ａを起動させるだけで制御プログラムの復号及び実行まで（図１１ＢのステップＳ４０〜Ｓ４４）が自動的になされてしまう。そうすると、第三者によって復号された制御プログラムを調査され、そのノウハウが流出する可能性がある。
しかし、第２の実施形態に係る監視対象機器２２ａによれば、盗難先において監視対象機器２２ａをスタンドアロンで起動させた場合、監視装置１０ａによる認証が得られないため（ステップＳ５０：ＮＯ）、制御プログラムの復号及び実行（図１１ＢのステップＳ４０〜Ｓ４４）が行われない。よって、監視対象機器２２ａそのものが盗難にあった場合であっても、制御プログラムのノウハウ流出を抑制することができる。
【００９２】
＜第３の実施形態＞
次に、第３の実施形態に係る監視システム及び監視対象機器について、図１３を参照しながら説明する。
【００９３】
（監視対象機器の処理フロー）
図１３は、第３の実施形態に係る監視対象機器の処理フローを示す図である。
図１３を参照しながら、第３の実施形態に係る監視対象機器２２ａの２回目以降の起動時の処理（通常の起動処理）について説明する。
【００９４】
第３の実施形態に係る監視対象機器２２ａは、２回目以降の起動時において、機器認証フェーズを再度実行する。即ち、監視対象機器２２ａは、２回目以降の起動時に、再び、監視装置１０ａに対し機器認証要求（図７のステップＳ２０）を行う。そして、監視装置１０ａ等による認証処理（ステップＳ２１〜Ｓ２７）を経た後、当該監視装置１０ａから改めて認証を受ける（図７のステップＳ２８）。
監視対象機器２２ａは、機器認証フェーズ（ステップＳ２０〜Ｓ２８）において、監視装置１０ａによって正常に認証されたか否かを判定する（ステップＳ６０）。
機器認証フェーズ（ステップＳ２０〜Ｓ２８）において正常に認証された場合（ステップＳ６０：ＹＥＳ）、監視対象機器２２ａは、制御開始処理（図１１ＢのステップＳ４０〜Ｓ４４）を実行し、制御プログラムに従った動作を行う。
他方、機器認証フェーズ（ステップＳ２０〜Ｓ２８）において正常に認証されなかった場合（ステップＳ６０：ＮＯ）、監視対象機器２２ａは、事前にフラッシュＲＯＭ２２４に記録されていた情報（暗号化された制御プログラムＥ＿ＰＲＧ、チャレンジ値ＣＨ）と、ＦＰＧＡ２２２に形成された回路（ＰＵＦ回路Ｃ＿ＰＵＦ、暗号鍵生成回路Ｃ＿ＥＮＣ）と、を全て消去する（ステップＳ６１）。
【００９５】
（作用、効果）
以上のとおり、第３の実施形態に係る監視対象機器２２ａによれば、機器認証要求部２２０２は、認証要求（図７のステップＳ２０）の結果、監視装置１０ａから認証を受けなかった場合に、暗号化された制御プログラムＥ＿ＰＲＧ等を消去する。
【００９６】
このような態様によれば、盗難先において監視対象機器２２ａをスタンドアロンで起動させた場合、単に、制御プログラムの復号及び実行（図１１ＢのステップＳ４０〜Ｓ４４）を行わないだけでなく、フラッシュＲＯＭ２２４に記録されていた情報、及び、ＦＰＧＡ２２２に形成された回路の全てを消去する。これにより、監視対象機器２２ａそのものが盗難にあった場合に、一層確実に、情報流出を抑制することができる。
【００９７】
＜第４の実施形態＞
次に、第４の実施形態に係る監視システム及び監視対象機器について、図１４を参照しながら説明する。
【００９８】
（入出力対応情報のデータ構造）
図１４は、第４の実施形態に係る監視装置に記録される入出力対応情報のデータ構造を示す図である。
第４の実施形態に係る監視装置に記録されるＣＲＰ情報は、第１の実施形態（図９）と異なり、一つの監視対象機器２２ａ（機器ＩＤ：Ｘ１）に対し、２種類のＰＵＦ回路（ＰＵＦ回路ＩＤ：α１、α２）それぞれについてのチャレンジ値、レスポンス値の対が記録されている。
【００９９】
本実施形態において、例えば、監視対象機器２２ａの生産者（メーカー）は、まず、監視対象機器２２ａ（機器ＩＤ：Ｘ１）の出荷前に、ＰＵＦ回路ＩＤ：α１で識別されるＰＵＦ回路Ｃ＿ＰＵＦをインストールし、当該ＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α１）のチャレンジ値、レスポンス値の対を計測する。次に、ＰＵＦ回路ＩＤ：α２で識別されるＰＵＦ回路Ｃ＿ＰＵＦをインストールし、当該ＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α２）のチャレンジ値、レスポンス値の対を計測する。
そして、監視対象機器２２ａの生産者は、図１４に示すようなＣＲＰ情報を分散型台帳に登録する。
【０１００】
（作用、効果）
以上のような態様とすることで、監視対象機器２２ａ（機器ＩＤ：Ｘ１）に形成されたＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α１）のチャレンジ値が全て使用済みとなった場合に、新たに、別のＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α２）をインストールすることで、監視対象機器２２ａ（機器ＩＤ：Ｘ１）を継続して使用することができる。
この場合、監視対象機器２２ａは、チャレンジ値が枯渇する直前に、新たなＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α２）についての回路情報を要求するための回路情報要求（図６のステップＳ１０）を行ってもよい。
【０１０１】
また、他の実施形態においては、監視対象機器２２ａの生産者は、ＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α１）のチャレンジ値が枯渇する直前に、一旦、監視対象機器２２ａを回収してもよい。そして、監視対象機器２２ａの生産者は、回収した監視対象機器２２ａについて、ＰＵＦ回路ＩＤ：α２で識別される新たなＰＵＦ回路Ｃ＿ＰＵＦをインストールし、当該ＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α２）のチャレンジ値、レスポンス値の対を分散型台帳に登録してもよい。
【０１０２】
＜第５の実施形態＞
次に、第５の実施形態に係る監視システム及び監視対象機器について、図１５〜図１６を参照しながら説明する。
【０１０３】
（監視装置の機能構成）
図１５は、第５の実施形態に係る監視装置の機能構成を示す図である。
図１５に示すように、第５の実施形態に係る監視装置１０ａのＣＰＵ１００は、第１〜第４の実施形態に加え、更に、入出力対応情報登録部１００３としての機能を発揮する。  入出力対応情報登録部１００３は、後述する新規ＣＲＰ登録フェーズにおいて、まず、複数種類のチャレンジ値（乱数）を生成し、これらを監視対象機器２２ａに送信する。次に、入出力対応情報登録部１００３は、当該監視対象機器２２ａから各チャレンジ値に対応するレスポンス値を受信する。そして、入出力対応情報登録部１００３は、監視対象機器２２ａに形成されたＰＵＦ回路Ｃ＿ＰＵＦの入出力対応情報を作成し、監視システム１が構成する分散型台帳システムに登録する。
以下、新規ＣＲＰ登録フェーズにおいて、入出力対応情報登録部１００３が行う処理フローについて詳細に説明する。
【０１０４】
（新規ＣＲＰ登録フェーズの処理フロー）
図１６は、第５の実施形態に係る監視装置と監視対象機器との間で行う新規ＣＲＰ登録フェーズの処理フローを示す図である。
図１６に示す新規ＣＲＰ登録フェーズの処理フローは、例えば、監視対象機器２２ａに形成された一つのＰＵＦ回路Ｃ＿ＰＵＦ（例えば、ＰＵＦ回路ＩＤ：α１）について、チャレンジ値が枯渇した段階で実行される。
【０１０５】
一つのＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α１）について、チャレンジ値が枯渇すると、回路配信フェーズ（図６のステップＳ１０〜Ｓ１９）が実行され、新たなＰＵＦ回路Ｃ＿ＰＵＦ（例えば、ＰＵＦ回路ＩＤ：α２）が監視対象機器２２ａにインストールされる。
ここで、当該監視対象機器２２ａに新たにインストールされたＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α２）についてのＣＲＰ情報は、出荷前などにおいて、事前には分散型台帳に登録されていないものとする。
【０１０６】
この場合、監視装置１０ａの入出力対応情報登録部１００３は、まず、複数種類のチャレンジ値（乱数）を生成し、監視対象機器２２ａに送信する（ステップＳ７０）。
次に、監視対象機器２２ａは、生成した複数種類の各チャレンジ値を、新たにインストールされたＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α２）に入力し、レスポンス値を取得する（ステップＳ７１）。
次に、監視対象機器２２ａは、複数種類の各チャレンジ値に対応する複数種類のレスポンス値を監視装置１０ａに返信する（ステップＳ７２）。
【０１０７】
監視装置１０ａは、ステップＳ７０で送信した複数のチャレンジ値と、ステップＳ７２で監視対象機器２２ａから受信した複数のレスポンス値と、に基づいて、複数のチャレンジ値及びレスポンス値の対からなるＣＲＰ情報（即ち、新たにインストールされたＰＵＦ回路Ｃ＿ＰＵＦ（ＰＵＦ回路ＩＤ：α２）についてのＣＲＰ情報）を作成し、当該ＣＲＰ情報を分散型台帳に登録する（ステップＳ７３）。
【０１０８】
（作用、効果）
以上のような態様とすることで、監視対象機器２２ａの組込みシステム２への設置後においても、新たにインストールしたＰＵＦ回路Ｃ＿ＰＵＦについてのＣＲＰ情報を、遠隔で作成することができる。したがって、例えば、第４の実施形態のように、出荷前において、複数種類のＰＵＦ回路Ｃ＿ＰＵＦについてのＣＲＰ情報を事前に作成する手間を省くことができる。
【０１０９】
なお、上述の各実施形態においては、上述した監視装置１０の各種処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって上記各種処理が行われる。また、コンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【０１１０】
上記プログラムは、上述した機能の一部を実現するためのものであってもよい。更に、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１１１】
また、他の実施形態においては、第１〜第５の実施形態（及びその変形例）で説明した監視装置１０が有する各機能の一部を、ネットワークで接続された他のコンピュータが具備する態様であってもよい。
【０１１２】
以上のとおり、本発明に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１３】
１  監視システム
１０  監視装置
１００  ＣＰＵ
１０００  相互認証受付部
１００１  回路情報配信部
１００２  機器認証部
１００２Ａ  送信処理部
１００２Ｂ  受信処理部
１００２Ｃ  認証処理部
１０１  ＲＯＭ
１０２  ＲＡＭ
１０３  通信インタフェース
１０４  記録媒体
２  組込みシステム
２０  ＯＰＳ
２１  ＥＭＳ
２２  ロジックソルバ
２３  ＩＯ機器
２２ａ  ロジックソルバ（監視対象機器）
２２０  ＣＰＵ
２２００  相互認証部
２２０１  回路形成部
２２０２  機器認証要求部
２２０３  暗号化処理部
２２０４  復号処理部
２２１  ＲＯＭ
２２２  ＦＰＧＡ
２２３  ＲＡＭ
２２４  フラッシュＲＯＭ
２２５  通信インタフェース
ＳＫ  共通鍵
Ｃ＿ＰＵＦ  ＰＵＦ回路
Ｃ＿ＥＮＣ  暗号鍵生成回路
Ｅ＿ＰＲＧ  暗号化された制御プログラム
ＣＨ  チャレンジ値
【図１】
2020096384.tif 000003
【図２】
2020096384.tif 000004
【図３】
2020096384.tif 000005
【図４】
2020096384.tif 000006
【図５】
2020096384.tif 000007
【図６】
2020096384.tif 000008
【図７】
2020096384.tif 000009
【図８】
2020096384.tif 000010
【図９】
2020096384.tif 000011
【図１０】
2020096384.tif 000012
【図１１Ａ】
2020096384.tif 000013
【図１１Ｂ】
2020096384.tif 000014
【図１２】
2020096384.tif 000015
【図１３】
2020096384.tif 000016
【図１４】
2020096384.tif 000017
【図１５】
2020096384.tif 000018
【図１６】
2020096384.tif 000019