JP2022158363A - 検証装置、検証方法、および、検証プログラム - Google Patents

検証装置、検証方法、および、検証プログラム Download PDF

Info

Publication number
JP2022158363A
JP2022158363A JP2021063195A JP2021063195A JP2022158363A JP 2022158363 A JP2022158363 A JP 2022158363A JP 2021063195 A JP2021063195 A JP 2021063195A JP 2021063195 A JP2021063195 A JP 2021063195A JP 2022158363 A JP2022158363 A JP 2022158363A
Authority
JP
Japan
Prior art keywords
verification
data
target block
unit
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021063195A
Other languages
English (en)
Inventor
志 閔
Zhi Min
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2021063195A priority Critical patent/JP2022158363A/ja
Publication of JP2022158363A publication Critical patent/JP2022158363A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】システム全体としてデータの取引に参加する全ての装置の改ざん検知と監査証跡とを確実かつ容易に実現する検証装置、検証方法及び検証プログラムを提供する。【解決手段】検証装置300は、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部と、複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、対象データに基づいて生成するブロック生成部と、対象ブロックを複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、対象ブロックに対する検証を要求する検証要求部と、複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、対象ブロックをブロックチェーンに登録する登録部と、を備える。【選択図】図6

Description

本発明は、検証装置、検証方法、および、検証プログラムに関する。
特許文献1には、「よりセキュリティ強化を図ることができるようにした暗号化制御システムおよび暗号化制御方法、並びにプログラム」が記載されている。
[先行技術文献]
[特許文献]
[特許文献1] 特許第6360781号
本発明の第1の態様においては、検証装置を提供する。上記検証装置は、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部を備えてよい。上記検証装置は、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、上記対象データに基づいて生成するブロック生成部を備えてよい。上記検証装置は、上記対象ブロックを上記複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、上記対象ブロックに対する検証を要求する検証要求部を備えてよい。上記検証装置は、上記複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、上記対象ブロックを上記ブロックチェーンに登録する登録部を備えてよい。
上記検証装置は、上記対象ブロックの検証が失敗した旨の上記検証結果が取得された場合に、異常メッセージを出力する出力部を更に備えてよい。
上記検証装置は、上記対象ブロックを上記複数の検証装置毎に暗号化する暗号化部を更に備えてよい。上記検証要求部は、上記複数の検証装置毎に暗号化されたそれぞれの上記対象ブロックを上記複数の検証装置のそれぞれへ供給してよい。
上記登録部は、上記複数の検証装置のうちの検証結果を供給すべき主検証装置からの検証結果に応じて、上記対象ブロックを上記ブロックチェーンに登録してよい。
上記データ処理システムは、上記複数の処理装置を経由して生成される制御パラメータに基づいて制御対象を制御する制御システムであってよい。上記主検証装置は、上記制御パラメータに応じた制御指令を上記制御対象に与える制御器を管理対象とする検証装置であってよい。
上記検証装置は、上記ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する算出部を更に備えてよい。上記ブロック生成部は、上記ハッシュ値を含む上記対象ブロックを生成してよい。
上記データ取得部は、上記対象処理装置において上流の処理装置から入力される入力データ、および、下流の処理装置へ出力する出力データを取得してよい。上記ブロック生成部は、上記入力データおよび上記出力データを含む上記対象ブロックを生成してよい。
本発明の第2の態様においては、検証方法を提供する。上記検証方法は、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得することを備えてよい。上記検証方法は、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、上記対象データに基づいて生成することを備えてよい。上記検証方法は、上記対象ブロックを上記複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、上記対象ブロックに対する検証を要求することを備えてよい。上記検証方法は、上記複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、上記対象ブロックを上記ブロックチェーンに登録することを備えてよい。
本発明の第3の態様においては、検証プログラムを提供する。上記検証プログラムは、コンピュータにより実行されてよい。上記検証プログラムは、上記コンピュータを、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、上記対象データに基づいて生成するブロック生成部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記対象ブロックを上記複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、上記対象ブロックに対する検証を要求する検証要求部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、上記対象ブロックを上記ブロックチェーンに登録する登録部として機能させてよい。
本発明の第4の態様においては、検証装置を提供する。上記検証装置は、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得するブロック取得部を備えてよい。上記検証装置は、上記ブロックチェーンに登録済みの上流のブロックに基づいて、上記対象ブロックを検証する検証部を備えてよい。上記検証装置は、上記対象ブロックに対する検証結果を上記対象ブロックの供給元である対象検証装置へ供給して、上記対象ブロックに対する検証要求に応答する検証応答部を備えてよい。上記検証装置は、上記検証結果に応じて上記対象ブロックを上記ブロックチェーンに登録する登録部を備えてよい。
上記検証装置は、上記対象ブロックの検証が失敗した場合に、異常メッセージを出力する出力部を更に備えてよい。
上記検証装置は、上記対象ブロックを、上記対象検証装置に応じて復号化する復号化部を更に備えてよい。
上記検証応答部は、自身が検証結果を供給すべき主検証装置であるかどうか判定し、上記主検証装置である場合に、上記対象ブロックに対する検証結果を上記対象検証装置へ供給してよい。
上記データ処理システムは、上記複数の処理装置を経由して生成される制御パラメータに基づいて制御対象を制御する制御システムであってよい。上記検証応答部は、上記制御パラメータに応じた制御指令を上記制御対象に与える制御器を管理対象とする場合に、自身が主検証装置であると判定してよい。
上記検証装置は、上記ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する算出部を更に備えてよい。上記検証部は、上記対象ブロックに含まれるハッシュ値と算出したハッシュ値とに基づいて、上記対象ブロックを検証してよい。
本発明の第5の態様においては、検証方法を提供する。上記検証方法は、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得することを備えてよい。上記検証方法は、上記ブロックチェーンに登録済みの上流のブロックに基づいて、上記対象ブロックを検証することを備えてよい。上記検証方法は、上記対象ブロックに対する検証結果を上記対象ブロックの供給元である対象検証装置へ供給して、上記対象ブロックに対する検証要求に応答することを備えてよい。上記検証方法は、上記検証結果に応じて上記対象ブロックを上記ブロックチェーンに登録することを備えてよい。
本発明の第6の態様においては、検証プログラムを提供する。上記検証プログラムは、コンピュータにより実行されてよい。上記検証プログラムは、上記コンピュータを、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得するブロック取得部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記ブロックチェーンに登録済みの上流のブロックに基づいて、上記対象ブロックを検証する検証部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記対象ブロックに対する検証結果を上記対象ブロックの供給元である対象検証装置へ供給して、上記対象ブロックに対する検証要求に応答する検証応答部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記検証結果に応じて上記対象ブロックを上記ブロックチェーンに登録する登録部として機能させてよい。
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本実施形態に係る検証技術が適用されてよいデータ処理システム10の一例を示す。 処理装置100のブロック図の一例を示す。 本実施形態に係る検証技術が適用されてよいデータ処理システム10の具体例としての制御システム20を示す。 本実施形態に係る検証システム30の一例を示す。 本実施形態に係る検証システム30に登録されるブロックチェーンの一例を示す。 本実施形態に係る検証装置300のブロック図の一例を示す。 検証を要求する側の検証装置300における動作のフローの一例を示す。 検証要求に応じる側の検証装置300における動作のフローの一例を示す。 処理装置100における動作のフローの一例を示す。 本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ9900の例を示す。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る検証技術が適用されてよいデータ処理システム10の一例を示す。データ処理システム10においては、様々な装置間で様々なデータが取引される。本図においては、一例として、データ処理システム10において、複数の処理装置100a~100f(「処理装置100」と総称する。)が環状に接続され、複数の処理装置100間でデータがループ状(例えば、処理装置100a→100b→100c→100d→100e→100f→100a→・・・)に伝搬される場合を一例として示している。
ここで、ループの一つ前を「上流」、ループの一つ後を「下流」と定義することとする。すなわち、例えば処理装置100bにとっては、処理装置100aが上流の処理装置100にあたり、処理装置100cが下流の処理装置100にあたる。このような複数の処理装置100のうちの少なくとも一つは、上流の処理装置100から入力された入力データを処理することによって入力データを変換し、変換されたデータを出力データとして下流の処理装置100へ出力してよい。本実施形態に係る検証技術は、このような複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10に適用されてよい。
図2は、処理装置100のブロック図の一例を示す。処理装置100は、上流の処理装置100との間、および、下流の処理装置100との間で、例えば公開鍵暗号方式(PKI:Public Key Infrastructure)を用いてデータをそれぞれ取引する。ここで、公開鍵暗号方式を用いてデータを取引する二者間において、データの受信側は、データの送信側、すなわち、上流の処理装置100の公開鍵を、信頼性のある認証局等を利用して事前に入手しているものとする。これより先、処理装置100が処理装置100bである場合を一例として説明する。処理装置100bは、上流の処理装置100である処理装置100aの公開鍵を事前に入手している。
処理装置100は、受信部110と、復号部120と、処理部130と、暗号部140と、送信部150と、継続判定部160とを備える。なお、これらブロックは、それぞれ機能的に分離された機能ブロックであって、実際のデバイス構成とは必ずしも一致していなくてもよい。すなわち、本図において、1つのブロックとして示されているからといって、それが必ずしも1つのデバイスにより構成されていなくてもよい。また、本図において、別々のブロックとして示されているからといって、それらが必ずしも別々のデバイスにより構成されていなくてもよい。
受信部110は、上流の処理装置100である処理装置100aからデータを受信する。これにあたり、処理装置100aにおいては、送信すべき送信内容をハッシュ関数で処理してハッシュ値を算出している。そして、処理装置100aにおいては、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名として処理装置100bへ送信している。処理装置100bの受信部110は、このようにして処理装置100aによって暗号化されたデータを処理装置100aから受信する。受信部110は、受信したデータを復号部120へ供給する。
また、受信部110は、後述する検証装置からのメッセージを受信する。受信部110は、受信したメッセージを継続判定部160へ供給する。
復号部120は、データを復号する。復号部120は、受信部110から供給されたデータからハッシュ値の暗号文を取り出す。そして、復号部120は、処理装置100aの公開鍵を用いてハッシュ値の暗号文を復号してハッシュ値を取得する。また、復号部120は、受信部110から供給されたデータから処理装置100aの送信内容を取り出す。そして、復号部120は、処理装置100aの送信内容を処理装置100aと同じハッシュ関数で処理してハッシュ値を算出する。復号部120は、復号したハッシュ値と算出したハッシュ値とを比較して、両者が一致している場合に、受信部110から供給されたデータが正しい(改ざんされていない)データであると判断する。これに応じて、復号部120は処理装置100aの送信内容を処理部130へ供給する。
処理部130は、データを処理する。処理部130は、復号部120から供給された処理装置100aの送信内容を入力データとして、データを処理する。そして、処理部130は、入力データを処理した結果である出力データを、自身が送信すべき送信内容として暗号部140へ供給する。
暗号部140は、データを暗号化する。暗号部140は、処理部130から供給された送信内容をハッシュ関数で処理してハッシュ値を算出する。そして、暗号部140は、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名としたデータを生成する。暗号部140は、このようにして暗号化されたデータを送信部150へ供給する。
送信部150は、下流の処理装置100である処理装置100cへデータを送信する。後述する継続判定部160から許可通知が供給された場合に、送信部150は、暗号部140によって暗号化されたデータを、処理装置100cへ送信する。一方、継続判定部160から中止指示が供給された場合に、送信部150は、処理装置100cへのデータ送信を中止する。
継続判定部160は、データの取引の継続を判定する。継続判定部160は、受信部110から供給された検証装置からのメッセージに応じて、下流の処理装置100へのデータ送信を継続するか否か判定する。例えば、検証が成功した旨のメッセージが供給された場合に、継続判定部160は、下流の処理装置100へのデータ送信を継続すると判定する。そして、継続判定部160は、送信を許可する旨の許可通知を送信部150へ供給する。これに応じて、送信部150は、処理装置100cへ暗号化されたデータを送信する。一方、異常メッセージが供給された場合に、継続判定部160は、下流の処理装置100へのデータ送信を中止すると判定する。そして、継続判定部160は、送信を中止する旨の中止指示を送信部150へ供給する。これに応じて、送信部150は、処理装置100cへのデータ送信を中止する。
図3は、本実施形態に係る検証技術が適用されてよいデータ処理システム10の具体例としての制御システム20を示す。これより先、データ処理システム10が、複数の制御処理装置200を経由して生成される制御パラメータに基づいて制御対象を制御する制御システム20である場合を一例として説明する。しかしながら、これに限定されるものではない。本実施形態に係る検証技術は、上述のとおり、制御システム20とは異なる様々なデータ処理システム10に適用されてよい。
本図に示される制御システム20においては、図1のデータ処理システム10における処理装置100aとしてエッジデバイス200aが、処理装置100bとして第一演算装置200bが、処理装置100cとして第二演算装置200cが、処理装置100dとして制御パラメータ入力装置200dが、処理装置100eとして制御器200eが、処理装置100fとして制御対象200fが、それぞれ適用されている。ここで、エッジデバイス200a、第一演算装置200b、第二演算装置200c、制御パラメータ入力装置200d、および、制御器200eを、「制御処理装置200」と総称することとする。なお、制御処理装置200の構成については、各制御処理装置200に特有の構成を除き処理装置100と同様であるので、ここでは説明を省略する。
制御システム20において、エッジデバイス200a、制御パラメータ入力装置200d、制御器200e、および、制御対象200fは、例えば、プラントを制御する制御ネットワークに属している。一方、第一演算装置200bおよび第二演算装置200cは、制御ネットワークの外部である、例えば、インターネット等の非制御ネットワークに属している。
ここで、このようなプラントとしては、化学やバイオ等の工業プラントの他、ガス田や油田等の井戸元やその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、上下水やダム等を管理制御するプラント等が挙げられる。
エッジデバイス200aは、このようなプラントにおける状態データ(例えば、プラントに設けられた複数のセンサの測定データ)を制御対象200fから収集する。そして、エッジデバイス200aは、状態データをクレンジングして、必要なデータのみを非制御ネットワーク上(例えば、第一演算装置200b)へ供給する。
第一演算装置200bは、非制御ネットワークに属している。第一演算装置200bは、例えば、SaaS(Software as a Service)プロバイダ等であってよい。第一演算装置200bは、プラントにおける状態データをエッジデバイス200aから取得する。そして、第一演算装置200bは、状態データに基づいて、制御対象200fを制御するための制御パラメータに係る第一の制御データを生成する。第一演算装置200bは、生成した第一の制御データを第二演算装置200cへ供給する。
第二演算装置200cは、第一演算装置200bと同様、非制御ネットワークに属しており、例えば、SaaSプロバイダ等であってよい。第二演算装置200cは、第一の制御データを第一演算装置200bから取得する。そして、第二演算装置200cは、第一の制御データに基づいて、制御対象200fを制御するための制御パラメータに係る第二の制御データを生成する。第二演算装置200cは、生成した第二の制御データを制御パラメータ入力装置200dへ供給する。
制御パラメータ入力装置200dは、第二の制御データを第二演算装置200cから取得する。そして、制御パラメータ入力装置200dは、第二の制御データに基づく制御パラメータを制御器200eへ供給する。
制御器200eは、制御対象200fを制御する。制御器200eは、例えば、分散制御システム(DCS:Distributed Control System)等であってよい。制御器200eは、制御パラメータを制御パラメータ入力装置200dから取得する。そして、制御器200eは、制御パラメータに基づく制御指令を制御対象200fへ与える。
制御対象200fは、制御の対象となる機器および装置等である。例えば、制御対象200fは、プラントのプロセスにおける圧力、温度、pH、速度、および、流量等の物理量を制御するバルブ、ポンプ、ヒータ、ファン、モータ、および、スイッチ等のアクチュエータを含んでいてよい。制御対象200fは、制御器200eからの制御指令を受けてアクチュエータを制御したことに応じて、プラントの状態データをエッジデバイス200aへ供給する。
本実施形態に係る検証技術は、一例として、このような複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20に適用されてよい。
図4は、本実施形態に係る検証システム30の一例を示す。本図においては、図3における制御システム20に本実施形態に係る検証技術を適用させた場合を一例として示している。しかしながら、これに限定されるものではない。本実施形態に係る検証技術は、上述のとおり、複数の処理装置100を経由してデータが伝搬または変換される様々なデータ処理システム10に適用されてよい。
本図に示されるように、本実施形態に係る検証システム30は、複数の検証装置300a~300e(「検証装置300」と総称する。)を含んでいる。ここで、検証装置300aはエッジデバイス200aを管理対象とし、検証装置300bは第一演算装置200bを管理対象とし、検証装置300cは第二演算装置200cを管理対象とし、検証装置300dは制御パラメータ入力装置200dを管理対象とし、検証装置300eは制御器200eを管理対象としている。このように本実施形態に係る検証システム30は、複数の制御処理装置200a~200eをそれぞれ管理対象とする複数の検証装置300a~300eを含んでいてよい。このような複数の検証装置300は、ネットワークを介して互いに通信可能に接続されている。
図5は、本実施形態に係る検証システム30に登録されるブロックチェーンの一例を示す。本図においては、ブロックa、ブロックb、ブロックc、および、ブロックdがチェーン状に時系列に登録されている様子を示している。ここで、例えば、ブロックaは検証装置300aが管理対象とするエッジデバイス200aにおけるデータに基づくブロックであり、ブロックbは検証装置300bが管理対象とする第一演算装置200bにおけるデータに基づくブロックであり、ブロックcは検証装置300cが管理対象とする第二演算装置200cにおけるデータに基づくブロックであり、ブロックdは検証装置300dが管理対象とする制御パラメータ入力装置200dにおけるデータに基づくブロックである。
例えば、ブロックbには、上流のブロックであるブロックaのハッシュ値と、第一演算装置200bの入力データおよび出力データとが含まれている。同様に、ブロックcには、上流のブロックであるブロックbのハッシュ値と、第二演算装置200cの入力データおよび出力データとが含まれている。同様に、ブロックdには、上流のブロックであるブロックcのハッシュ値と、制御パラメータ入力装置200dの入力データおよび出力データとが含まれている。このように、ブロックチェーンにおいては、個々のブロックに複数の制御処理装置200のそれぞれにおける入出力データに加えて、1つ前に生成されたブロックの内容に基づくハッシュ値が含まれ、それらブロックが時系列に沿って記録されている。このようなブロックチェーンにおいて、仮に、過去に登録されたブロック内のデータを改ざんしようと試みた場合、改ざんされたブロックから算出されるハッシュ値が以前と異なるものとなるため、後続する全てのブロックにおけるハッシュ値も変更しなければならない。このため、ブロックチェーンは、改ざん耐性に優れたデータ構造を有しているといえる。本実施形態に係る検証技術は、このようなブロックチェーンに登録されるデータを検証の対象としてよい。
図6は、本実施形態に係る検証装置300のブロック図の一例を示す。本実施形態に係る検証装置300は、制御システム20において複数の制御処理装置200を経由してデータが伝搬または変換されていくことに応じて、「検証を要求する側」と「検証要求に応じる側」とに役割を順次変えながら、他の検証装置300と協働して制御システム20全体におけるデータの検証を行う。これについて、詳細に説明する。
検証装置300は、PC(パーソナルコンピュータ)、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。このようなコンピュータシステムもまた広義のコンピュータである。また、検証装置300は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、検証装置300は、データの検証用に設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。また、検証装置300がインターネットに接続可能な場合、検証装置300は、クラウドコンピューティングにより実現されてもよい。
また、検証装置300は、検証プログラムを既存のコンピュータが実行することにより、既存のコンピュータが本実施形態に係る検証機能を実行可能なように拡張されたものであってもよい。特に、検証装置300は、制御システム20に含まれる複数の制御処理装置200にそれぞれアドオンされたものであってもよい。
検証装置300は、登録部310と、データ取得部315と、算出部320と、ブロック生成部325と、暗号化部330と、検証要求部335と、検証結果取得部340と、出力部345と、ブロック取得部350と、復号化部355と、検証部360と、検証応答部365とを備える。なお、これらブロックは、それぞれ機能的に分離された機能ブロックであって、実際のデバイス構成とは必ずしも一致していなくてもよい。すなわち、本図において、1つのブロックとして示されているからといって、それが必ずしも1つのデバイスにより構成されていなくてもよい。また、本図において、別々のブロックとして示されているからといって、それらが必ずしも別々のデバイスにより構成されていなくてもよい。
ここで、上記ブロックのうち、データ取得部315と、ブロック生成部325と、暗号化部330と、検証要求部335は、主に、「検証を要求する側」の機能を提供する。一方、上記ブロックのうち、ブロック取得部350と、復号化部355と、検証部360と、検証応答部365は、主に、「検証要求に応じる側」の機能を提供する。そして、上記ブロックのうち、登録部310と、算出部320と、検証結果取得部340と、出力部345は、「検証を要求する側」および「検証要求に応じる側」の両者の機能を提供する。まず初めに、「検証を要求する側」の検証装置300における機能ブロックついて説明する。
登録部310は、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックをブロックチェーンに登録して記録する。また、登録部310は、後述する検証結果に応じて、対象ブロックをブロックチェーンに登録する。
データ取得部315は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、管理対象とする対象処理装置100におけるデータである対象データを取得する。図4における検証装置300bを一例とすると、データ取得部315は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、管理対象とする第一演算装置200bにおけるデータである対象データを取得する。例えば、データ取得部315は、第一演算装置200bにおける入力データおよび出力データを対象データとして、ネットワークを介して第一演算装置200bから取得してよい。しかしながら、これに限定されるものではない。データ取得部315は、このような対象データを、オペレータを介して取得してもよいし、各種メモリデバイス等を介して取得してもよい。データ取得部315は、取得した対象データをブロック生成部325へ供給する。
算出部320は、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。「検証を要求する側」のフローにおいては、算出部320は、算出したハッシュ値をブロック生成部325へ供給する。
ブロック生成部325は、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、対象データに基づいて生成する。例えば、ブロック生成部325は、データ取得部315から供給された対象データと、算出部320から供給されたハッシュ値とを含む対象ブロックを生成する。ブロック生成部325は、生成した対象ブロックを暗号化部330へ供給する。また、ブロック生成部325は、生成した対象ブロックを登録部310へ供給する。
暗号化部330は、対象ブロックを複数の検証装置300毎に暗号化する。ここで、「検証要求に応じる側」の全ての検証装置300は、「検証を要求する側」の検証装置300における公開鍵を、信頼性のある認証局等を利用してそれぞれ事前に入手しているものとする。なお、「検証要求に応じる側」の一の検証装置300が入手済みの公開鍵は、「検証要求に応じる側」の他の検証装置300が入手済みの公開鍵とそれぞれ異なっていてよい。すなわち、「検証要求に応じる側」の各検証装置300は、「検証を要求する側」の検証装置300における異なる公開鍵をそれぞれ入手していてよい。暗号化部330は、「検証要求に応じる側」の各検証装置300に提供済みのそれぞれの公開鍵に対応するそれぞれの秘密鍵を使用して、対象ブロックを暗号化する。暗号化部330は、暗号化した対象ブロックを検証要求部335へ供給する。
検証要求部335は、対象ブロックを、複数の制御処理装置200をそれぞれ管理対象とする複数の検証装置300へ供給して、対象ブロックに対する検証を要求する。この際、例えば、検証要求部335は、複数の検証装置300毎に暗号化されたそれぞれの対象ブロックを複数の検証装置300のそれぞれへ供給してよい。
検証結果取得部340は、複数の検証装置300のうちの少なくとも一つの検証装置300から対象ブロックに対する検証結果を取得する。例えば、検証結果取得部340は、対象ブロックに対する検証結果を、ネットワークを介して少なくとも一つの検証装置300から取得してよい。しかしながら、これに限定されるものではない。検証結果取得部340は、このような検証結果を、オペレータを介して取得してもよいし、各種メモリデバイス等を介して取得してもよい。「検証を要求する側」のフローにおいては、検証結果取得部340は、取得した検証結果をブロック生成部325、および、出力部345へ供給する。
出力部345は、検証結果に応じた出力をする。「検証を要求する側」のフローにおいては、出力部345は、例えば、検証が成功した旨の検証結果が取得された場合に、管理対象の制御処理装置200(例えば、検証装置300bの場合は、第一演算装置200b)へ、検証が成功した旨のメッセージを出力する。一方、出力部345は、対象ブロックの検証が失敗した旨の検証結果が取得された場合に、異常メッセージを出力する。この際、出力部345は、例えば、アラームを発出することによって対象ブロックの検証が失敗したことを検証システム30の管理者へ報知してよい。また、出力部345は、管理対象の制御処理装置200へ、検証が失敗した旨のメッセージを出力してよい。しかしながら、これに限定されるものではない。出力部345は、対象ブロックに対する検証結果を、モニタに表示することによって出力してもよいし、プリントアウトすることによって出力してもよいし、他の装置へ送信することによって出力してもよい。
ここまで、「検証を要求する側」の検証装置300における機能ブロックついて説明した。続いて、「検証要求に応じる側」の検証装置300における機能ブロックについて説明する。なお、上述のとおり、登録部310と、算出部320と、検証結果取得部340と、出力部345は、「検証を要求する側」および「検証要求に応じる側」の両者の機能を提供する。
登録部310は、上述のとおり、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックをブロックチェーンに登録して記録する。また、登録部310は、後述する検証結果に応じて、対象ブロックをブロックチェーンに登録する。
ブロック取得部350は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、複数の処理装置100のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得する。図4における検証装置300eを一例とすると、ブロック取得部350は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、例えば、検証対象となる第一演算装置200bにおける対象データに基づく対象ブロックを、第一演算装置200bを管理対象とする検証装置300bから取得する。なお、このような対象ブロックは、上述のとおり、検証対象となる第一演算装置200bにおける対象データと、上流のブロックであるブロックaのハッシュ値とを含むものである。ブロック取得部350は、このような対象ブロックを、例えば、ネットワークを介して検証装置300bから取得してよい。しかしながら、これに限定されるものではない。ブロック取得部350は、このような対象ブロックを、オペレータを介して取得してもよいし、各種メモリデバイス等を介して取得してもよい。ブロック取得部350は、取得した対象ブロックを復号化部355へ供給する。
復号化部355は、対象ブロックを、対象ブロックの供給元である対象検証装置300に応じて復号化する。ここで、「検証要求に応じる側」の検証装置300は、「検証を要求する側」の全ての検証装置300における公開鍵を、信頼性のある認証局等を利用してそれぞれ事前に入手しているものとする。復号化部355は、対象ブロックの供給元である対象検証装置300の公開鍵を用いて、対象ブロックを復号化する。復号化部355は、復号化した対象ブロックを検証部360へ供給する。また、復号化部355は、復号化した対象ブロックを登録部310へ供給する。
算出部320は、上述のとおり、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。「検証要求に応じる側」のフローにおいては、算出部320は、算出したハッシュ値を検証部360へ供給する。
検証部360は、ブロックチェーンに登録済みの上流のブロックに基づいて、対象ブロックを検証する。例えば、検証部360は、対象ブロックに含まれるハッシュ値と算出したハッシュ値とに基づいて、対象ブロックを検証する。検証部360は、対象ブロックに対する検証結果を、出力部345、および、検証応答部365へ供給する。
検証応答部365は、対象ブロックに対する検証結果を対象ブロックの供給元である対象検証装置へ供給して、対象ブロックに対する検証要求に応答する。また、検証応答部365は、対象ブロックに対する検証結果を復号化部355へ供給する。
検証結果取得部340は、上述のとおり、複数の検証装置300のうちの少なくとも一つの検証装置300から対象ブロックに対する検証結果を取得する。「検証要求に応じる側」の検証装置300のフローにおいては、検証結果取得部340は、取得した検証結果を復号化部355へ供給する。
出力部345は、上述のとおり、検証結果に応じた出力をする。「検証要求に応じる側」のフローにおいては、出力部345は、対象ブロックの検証が失敗した場合に、異常メッセージを出力する。この際、出力部345は、例えば、アラームを発出することによって対象ブロックの検証が失敗したことを検証システム30の管理者へ報知してよい。また、出力部345は、管理対象の制御処理装置200(例えば、検証装置300eの場合は、制御器200e)へ、検証が失敗した旨のメッセージを出力してよい。
これより先、本実施形態に係る検証装置300の動作について、「検証を要求する側」と「検証要求に応答する側」とに分けて、それぞれフローを用いて詳細に説明する。
図7は、検証を要求する側の検証装置300における動作のフローの一例を示す。ここでは、「検証を要求する側」の検証装置300が、第一演算装置200bを管理対象とする検証装置300bであり、ブロックbをブロックチェーンに登録すべき対象ブロックとする場合について一例として説明する。なお、上流のブロックであるブロックaは、既にブロックチェーンに登録済みであるものとする。
ステップ710において、検証装置300は、対象データを取得する。例えば、データ取得部315は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、管理対象とする対象処理装置100におけるデータである対象データを取得する。一例として、検証装置300bにおけるデータ取得部315は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、管理対象とする第一演算装置200bにおけるデータを対象データとして取得する。
この際、データ取得部315は、第一演算装置200bにおいて復号部120から処理部130へ供給されるエッジデバイス200aの送信内容を入力データとして取得してよい。また、データ取得部315は、第一演算装置200bにおいて処理部130から暗号部140へ供給される第一演算装置200bの送信内容を出力データとして取得してよい。このように、データ取得部315は、対象処理装置100において上流の処理装置100から入力される入力データ、および、下流の処理装置100へ出力する出力データを対象データとして取得してよい。データ取得部315は、取得した対象データをブロック生成部325へ供給する。
ステップ720において、検証装置300は、ハッシュ値を算出する。例えば、算出部320は、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。ここでは、ブロックチェーンに登録すべき対象ブロックがブロックbであるので、検証装置300bにおける算出部320は、上流のブロックであるブロックaをハッシュ処理してブロックaのハッシュ値を算出する。算出部320は、算出したハッシュ値をブロック生成部325へ供給する。
ステップ730において、検証装置300は、対象ブロックを生成する。例えば、ブロック生成部325は、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、対象データに基づいて生成する。より詳細には、ブロック生成部325は、ステップ710において取得された対象データと、ステップ720において算出されたハッシュ値とを含む対象ブロックを生成する。一例として、検証装置300bにおけるブロック生成部325は、第一演算装置200bにおける入力データおよび出力データ、並びに、ブロックaのハッシュ値を含む対象ブロックbを生成する。ブロック生成部325は、生成した対象ブロックを暗号化部330へ供給する。
ステップ740において、検証装置300は、対象ブロックを暗号化する。例えば、暗号化部330は、対象ブロックを複数の検証装置300毎に暗号化する。一例として、検証装置300bにおける暗号化部330は、複数の検証装置300a、300c、300d、および、300eに提供済みのそれぞれの公開鍵に対応するそれぞれの秘密鍵を使用して、対象ブロックを暗号化する。暗号化部330は、暗号化した対象ブロックを検証要求部335へ供給する。
ステップ750において、検証装置300は、対象ブロックに対する検証を要求する。例えば、検証要求部335は、対象ブロックを、複数の制御処理装置200をそれぞれ管理対象とする複数の検証装置300へ供給して、対象ブロックに対する検証を要求する。一例として、検証装置300bにおける検証要求部335は、複数の検証装置300a、300c、300d、および、300e毎に暗号化されたそれぞれの対象ブロックを複数の検証装置300a、300c、300d、および、300eのそれぞれへ供給する。
ステップ760において、検証装置300は、検証結果を取得したか否か判定する。例えば、検証結果取得部340は、複数の検証装置300のうちの少なくとも一つから検証結果を取得したか否か判定する。一例として、検証装置300bにおける検証結果取得部340は、複数の検証装置300a、300c、300d、および、300eの少なくとも一つから検証結果を取得したか否か判定する。ステップ760において検証結果を取得していない(No)と判定された場合、検証装置300は、処理をステップ760に戻してフローを継続する。ステップ760において検証結果を取得した(Yes)と判定された場合、検証装置300は、処理をステップ765に進める。
ステップ765において、検証装置300は、検証結果が、検証が成功した旨を示しているか否か判定する。例えば、検証結果取得部340は、ステップ760において取得された検証結果が、検証が成功した旨を示しているか否か判定する。一例として、検証装置300bにおける検証結果取得部340は、複数の検証装置300a、300c、300d、および、300eの少なくとも一つから取得された検証結果が、検証が成功した旨を示しているか否か判定する。ステップ765において検証が成功した旨を示している(Yes)と判定された場合、検証結果取得部340はステップ760において取得された検証結果をブロック生成部325、および、出力部345へ供給する。そして、検証装置300は、処理をステップ770に進める。
ステップ770において、検証装置300は、対象ブロックをブロックチェーンに登録する。一例として、検証装置300bにおけるブロック生成部325は、検証が成功した旨の検証結果が供給された場合に、ステップ730において生成した対象ブロックであるブロックbを登録部310へ供給する。これに応じて、登録部310は、ブロックbをブロックチェーンの末尾(ブロックaの後ろ)に登録する。このようにして、登録部310は、複数の検証装置300のうちの少なくとも一つの検証装置300からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。
ステップ775において、検証装置300は、検証が成功した旨のメッセージを出力する。一例として、検証装置300bにおける出力部345は、検証が成功した旨の検証結果が供給された場合に、自身が管理対象とする第一演算装置200bへ、検証が成功した旨のメッセージを出力する。これに応じて、第一演算装置200bは、下流の制御処理装置200へのデータ送信を継続すると判定して、第二演算装置200cへデータを送信する。
一方、ステップ765において検証が失敗した旨を示している(No)と判定された場合、検証結果取得部340はステップ760において取得された検証結果を出力部345へ供給する。そして、検証装置300は、処理をステップ780に進める。
ステップ780において、検証装置300は、アラームを発出する。一例として、検証装置300bにおける出力部345は、アラームを発出することによって対象ブロックであるブロックbの検証が失敗したことを検証システム30の管理者へ報知する。
ステップ785において、検証装置300は、異常メッセージを出力する。一例として、検証装置300bにおける出力部345は、対象ブロックの検証が失敗した旨の検証結果が取得された場合に、自身が管理対象とする第一演算装置200bへ、異常メッセージを出力する。これに応じて、第一演算装置200bは、下流の制御処理装置200へのデータ送信を中止すると判定して、第二演算装置200cへのデータ送信を中止する。
図8は、検証要求に応じる側の検証装置300における動作のフローの一例を示す。ここでは、「検証要求に応じる側」の検証装置300が、制御器200eを管理対象とする検証装置300eであり、検証装置300bからのブロックbをブロックチェーンに登録すべき対象ブロックとする場合について一例として説明する。なお、上流のブロックであるブロックaは、既にブロックチェーンに登録済みであるものとする。
ステップ810において、検証装置300は、対象ブロックを取得する。例えば、ブロック取得部350は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、複数の処理装置100のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得する。一例として、検証装置300eにおけるブロック取得部350は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、検証対象となる第一演算装置200bにおけるデータに基づくブロックbを対象ブロックとして、第一演算装置200bを管理対象とする検証装置300bから取得する。ブロック取得部350は、取得した対象ブロックを復号化部355へ供給する。
ステップ815において、検証装置300は、対象ブロックを復号化する。例えば、復号化部355は、ステップ810において取得された対象ブロックを、対象ブロックの供給元である対象検証装置300に応じて復号化する。一例として、検証装置300eにおける復号化部355は、検証装置300bから取得された対象ブロックbを、検証装置300bの公開鍵を用いて復号化する。復号化部355は、復号化した対象ブロックを検証部360へ供給する。
ステップ820において、検証装置300は、ハッシュ値を算出する。例えば、算出部320は、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。ここでは、ブロックチェーンに登録すべき対象ブロックがブロックbであるので、検証装置300eにおける算出部320は、上流のブロックであるブロックaをハッシュ処理してブロックaのハッシュ値を算出する。算出部320は、算出したハッシュ値を検証部360へ供給する。
ステップ830において、検証装置300は、ハッシュ値が一致するか否か判定する。例えば、検証部360は、ステップ815において復号化された対象ブロックに含まれるハッシュ値と、ステップ820において算出されたハッシュ値とを比較する。そして、検証部360は、両者が一致する場合に対象ブロックの検証が成功したと判定する。一方、検証部360は、両者が一致しない場合に対象ブロックの検証が失敗したと判定する。一例として、検証装置300eにおける検証部360は、復号化したブロックbに含まれるハッシュ値と、算出したブロックaのハッシュ値とを比較する。そして、検証部360は、両者が一致する場合に対象ブロックであるブロックbの検証が成功したと判定する。一方、検証部360は、両者が一致しない場合に対象ブロックであるブロックbの検証が失敗したと判定する。すなわち、検証部360は、対象ブロックに含まれるハッシュ値と算出したハッシュ値とに基づいて、対象ブロックを検証する。このようにして、検証部360は、ブロックチェーンに登録済みの上流のブロックに基づいて、対象ブロックを検証する。
ステップ830においてハッシュ値が一致しない(No)と判定された場合、検証部360は、対象ブロックの検証が失敗した旨の検証結果を、出力部345、および、検証応答部365へ供給する。そして、検証装置300は処理をステップ835に進める。
ステップ835において、検証装置300は、アラームを発出する。一例として、検証装置300eにおける出力部345は、アラームを発出することによって対象ブロックであるブロックbの検証が失敗したことを検証システム30の管理者へ報知する。
ステップ840において、検証装置300は、異常メッセージを出力する。一例として、検証装置300eにおける出力部345は、対象ブロックの検証が失敗した場合に、自身が管理対象とする制御器200eへ、異常メッセージを出力する。これに応じて、制御器200eは、下流の制御処理装置200へのデータ送信を中止すると判定して、制御対象200fへの制御指令の送信を中止する。
ステップ845において、検証装置300は、検証が失敗した旨を応答する。一例として、検証装置300eにおける検証応答部365は、対象ブロックの検証が失敗した旨の検証結果が供給された場合に、当該検証結果を、対象ブロックの供給元である検証装置300bへ供給する。このようにして、検証応答部365は、対象ブロックに対する検証結果を対象ブロックの供給元である対象検証装置300へ供給して、対象ブロックに対する検証要求に応答する。
一方、ステップ830においてハッシュ値が一致する(Yes)と判定された場合、検証部360は、対象ブロックの検証が成功した旨の検証結果を、検証応答部365へ供給する。そして、検証装置300は、処理をステップ850に進める。
ステップ850において、検証装置300は、自身が主検証装置であるか否か判定する。例えば、検証装置300eにおける検証応答部365は、自身が複数の制御処理装置200のうちの検証結果を供給すべき主検証装置であるかどうかを判定する。この際、検証応答部365は、一例として、制御パラメータに応じた制御指令を制御対象200fに与える制御器200eを管理対象とする場合に、自身が主検証装置であると判定してよい。複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システムにおいては、最終的に制御対象200fに対して制御指令を与える制御器200eが、制御システム全体における責任を担う主要装置といえる。したがって、このような制御器200eを管理対象とする検証装置300eを、検証結果を供給すべき主検証装置とするとよい。なお、検証装置300eが「検証を要求する側」になる場合においては、他の検証装置300のうちの一つの検証装置300が主検証装置として動作してよい。また、上述の説明では、検証装置300eを主検証装置として主に動作させる場合を一例として示した。しかしながら、これに限定されるものではない。複数の検証装置300のうちのいずれの検証装置300を主検証装置とするかは、事前に規定したアルゴリズムや順番等により決定されてもよい。例えば、主検証装置を輪番とすることによって、複数の検証装置300の間における処理負荷を分散させてもよい。
ステップ850において主検証装置である(Yes)と判定された場合、検証装置300は、処理をステップ855に進める。
ステップ855において、検証装置300は、対象ブロックをブロックチェーンに登録する。一例として、検証装置300eにおける検証応答部365は、自身が主検証装置であると判定した場合に、検証が成功した旨の検証結果を復号化部355へ供給する。そして、復号化部355は、ステップ815において復号化した対象ブロックを登録部310へ供給する。これに応じて、登録部310は、対象ブロックであるブロックbをブロックチェーンの末尾(ブロックaの後ろ)に登録する。このようにして、登録部310は、検証結果に応じて対象ブロックをブロックチェーンに登録する。
ステップ860において、検証装置300は、検証が成功した旨を応答する。一例として、検証装置300eにおける検証応答部365は、対象ブロックの検証が成功した旨の検証結果を、対象ブロックの供給元である検証装置300bへ供給する。このようにして、検証応答部365は、対象ブロックに対する検証結果を対象ブロックの供給元である対象検証装置300へ供給して、対象ブロックに対する検証要求に応答する。このように、検証応答部365は、自身が複数の検証装置300のうちの検証結果を供給すべき主検証装置であるかどうか判定し、主検証装置である場合に、対象ブロックに対する検証結果を対象検証装置300へ供給してよい。これに応じて、「検証を要求する側」である検証装置300bにおける登録部310は、複数の検証装置300のうちの検証結果を供給すべき主検証装置からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。
一方、ステップ850において主検証装置でない(No)と判定された場合、検証装置300は、処理をステップ865に進める。
ステップ865において、検証装置300は、検証が成功した旨の検証結果を取得したか否か判定する。一例として、主検証装置ではない検証装置300a、300c、および、300dの検証結果取得部340は、主検証装置である検証装置300eから、検証が成功した旨の検証結果を取得したか否か判定する。ステップ865において、検証が成功した旨の検証結果を取得していない(No)場合、検証装置300は、処理をステップ865に戻してフローを継続する。すなわち、主検証装置ではない検証装置300a、300c、および、300dは、主検証装置である検証装置300eから検証が成功した旨の検証結果が供給されるのを待つ。一方、ステップ865において検証が成功した旨の検証結果が取得された(Yes)場合、検証結果取得部340は取得された検証結果を復号化部355へ供給する。そして、検証装置300は、処理をステップ870に進める。
ステップ870において、検証装置300は、対象ブロックをブロックチェーンに登録する。一例として、主検証装置ではない検証装置300a、300c、および、300dにおける復号化部355は、検証が成功した旨の検証結果が供給された場合に、ステップ815において復号化した対象ブロックを登録部310へ供給する。これに応じて、登録部310は、対象ブロックであるブロックbをブロックチェーンの末尾(ブロックaの後ろ)に登録する。このようにして、登録部310は、検証結果に応じて対象ブロックをブロックチェーンに登録する。
図9は、制御処理装置200における動作のフローの一例を示す。ここでは、制御処理装置200が第一演算装置200bである場合について一例として説明する。
ステップ910において、制御処理装置200は、上流からデータを受信する。一例として、第一演算装置200bにおける受信部110は、上流の制御処理装置200であるエッジデバイス200aからデータを受信する。これにあたり、エッジデバイス200aにおいては、送信すべき送信内容をハッシュ関数で処理してハッシュ値を算出している。そして、エッジデバイス200aにおいては、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名として第一演算装置200bへ送信している。第一演算装置200bにおける受信部110は、このようにしてエッジデバイス200aによって暗号化されたデータをエッジデバイス200aから受信する。受信部110は、受信したデータを復号部120へ供給する。
ステップ920において、制御処理装置200は、データを復号する。一例として、復号部120は、ステップ910において受信されたデータからハッシュ値の暗号文を取り出す。そして、復号部120は、エッジデバイス200aの公開鍵を用いてハッシュ値の暗号文を復号してハッシュ値を取得する。また、復号部120は、ステップ910において受信されたデータからエッジデバイス200aの送信内容を取り出す。そして、復号部120は、エッジデバイス200aの送信内容をエッジデバイス200aと同じハッシュ関数で処理してハッシュ値を算出する。復号部120は、復号したハッシュ値と算出したハッシュ値とを比較して、両者が一致している場合に、ステップ910において受信されたデータが正しい(改ざんされていない)データであると判断する。これに応じて、復号部120は、エッジデバイス200aの送信内容を処理部130へ供給する。
ステップ930において、制御処理装置200は、データを処理する。一例として、処理部130は、ステップ920において復号されたエッジデバイス200aの送信内容を入力データとして、データを処理する。そして、処理部130は、入力データを処理した結果である出力データを、自身が送信すべき送信内容として暗号部140へ供給する。
ステップ940において、制御処理装置200は、入出力データを提供する。一例として、処理部130は、エッジデバイス200aの送信内容である入力データ、および、自身の送信内容である出力データを、送信部150を介して、第一演算装置200bを管理対象とする検証装置300bへ提供する。
ステップ950において、制御処理装置200は、データを暗号化する。一例として、暗号部140は、ステップ930において処理された結果である自身が送信すべき送信内容をハッシュ関数で処理してハッシュ値を算出する。そして、暗号部140は、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名としたデータを生成する。暗号部140は、このようにして暗号化されたデータを送信部150へ供給する。
ステップ960において、制御処理装置200は、メッセージを取得したか否か判定する。一例として、受信部110は、第一演算装置200bを管理対象とする検証装置300bから検証結果を示すメッセージを受信したか否か判定する。ステップ960においてメッセージが取得されていない(No)と判定された場合、制御処理装置200は、処理をステップ960に戻してフローを継続する。一方、ステップ960においてメッセージが取得された(Yes)と判定された場合、受信部110は、受信されたメッセージを継続判定部160へ供給する。そして、制御処理装置200は、処理をステップ970に進める。
ステップ970において、制御処理装置200は、メッセージが、検証が成功した旨を示しているか否か判定する。一例として、継続判定部160は、ステップ960において取得されたメッセージが、検証が成功した旨を示しているか否か判定する。ステップ970において検証が成功した旨を示している(Yes)と判定された場合、継続判定部160は、下流の制御処理装置200へのデータ送信を継続すると判定して、下流の制御処理装置200へのデータ送信を許可する旨の許可通知を送信部150へ供給する。そして、制御処理装置200は、処理をステップ980に進める。
ステップ980において、制御処理装置200は、データを下流へ送信する。一例として、送信部150は、許可通知が供給されたことに応じて、ステップ950において暗号化されたデータを、下流の制御処理装置200である第二演算装置200cへ送信する。
一方、ステップ970において検証が失敗した旨を示している(No)と判定された場合、継続判定部160は、下流の制御処理装置200へのデータ送信を中止すると判定して、下流の制御処理装置200へのデータ送信を中止する旨の中止指示を送信部150へ供給する。そして、制御処理装置200は、処理をステップ990に進める。
ステップ990において、制御処理装置200は、下流へのデータ送信を中止する。一例として、送信部150は、中止指示が供給されたことに応じて、ステップ950において暗号化されたデータを、下流の制御処理装置200である第二演算装置200cへ送信することを中止する。
一般的なデータ取引では、公開鍵暗号化方式(PKI)とPKIをベースとしたデジタル署名とにより、データを取引する二者間においてデータの完全性(主に改ざん防止)を実現している。この場合、データを直接取引する二者間においてのみ、取引相手の改ざんを検出することができるに過ぎない。したがって、複数の装置がデータの取引に参加するシステムにおいては、直接データを取引しない装置における改ざんを検出することができない。また、一般的なデータ検証では、データの取引に参加する複数の装置のそれぞれが自身の処理ログを各自記録し、システムの管理者が監査を実施する際に複数の装置のそれぞれから処理ログを個別に収集・調査することにより、監査証跡を実現している。この場合、各装置から提供される処理ログの完全性は提供する側に依存し、監査を実施する側においては、改ざんの有無を容易に検証することができない。
また、様々なクラウドサービスの普及により、データを取引する複数の装置の少なくとも一部としてSaaSプロバイダ等の外部サービスプロバイダが用いられることが考えられる。このような外部サービスプロバイダにおいては、セキュリティポリシー、実装形式、クラウドサーバ特性、利用認証局の信頼性、および、通信路VPN形式等のセキュリティレベルが様々である。したがって、セキュリティレベルの最も低い場所への改ざん攻撃のリスクが存在し、そこがボトルネックとなってデータを取引するシステム全体としてのセキュリティレベルが低下してしまう。そこで、二者間のデジタル署名のみに依存することなく、システム全体としてデータの取引に参加する全ての装置の改ざん検知と監査証跡とを確実かつ容易に実現することが望まれる。
そこで、本実施形態に係る検証装置300は、自身が生成した対象ブロックを、データ処理システム10における他の処理装置100をそれぞれ管理対象とする複数の検証装置300へ供給して、対象ブロックに対する検証を要求する。そして、検証装置300は、複数の検証装置300のうちの少なくとも一つの検証装置300からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。これにより、本実施形態に係る検証装置300によれば、他の検証装置300との協働により対象ブロックを検証してブロックチェーンに登録するので、検証システム30全体におけるデータの改ざんの困難性を高めることができる。これにより、本実施形態に係る検証装置300によれば、例えば、プラント機器のデータを非制御ネットワーク上に属する演算サービスを利用して処理したとしても、データ処理プロセスの各箇所でのデータの改ざんを検出し、削除且つ書き換え不能な監査証跡を各箇所で統一して残すことができる。
また、本実施形態に係る検証装置300は、対象ブロックの検証が失敗した場合に、異常メッセージを出力する。これにより、本実施形態に係る検証装置300によれば、データの改ざんが疑われる場合に、検証システム30の管理者へその旨を報知するとともに、データ処理システム10におけるデータの取引を中止させることができる。したがって、本実施形態に係る検証装置300によれば、例えば、意図しない制御指令が制御対象に与えられてしまうことを防止することができる。
また、本実施形態に係る検証装置300は、対象ブロックを複数の検証装置300毎に暗号化する。これにより、本実施形態に係る検証装置300によれば、検証のために複数の検証装置300間で対象ブロックを受け渡しする場合においても、高いセキュリティレベルを維持することができる。
また、本実施形態に係る検証装置300は、主検証装置からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。これにより、本実施形態に係る検証装置300によれば、検証が成功した旨の検証結果を供給する検証装置300を主検証装置のみに限定することができるので、検証システム30全体としての処理負荷を軽減することができる。この際、このような主検証装置は、制御パラメータに応じた制御指令を制御対象200fに与える制御器200eを管理対象とする検証装置300eであってよい。これにより、制御システム20における主要装置である制御器200eを管理対象とする検証装置300eが代表して検証要求に応答することができる。
また、本実施形態に係る検証装置300は、上流のブロックに基づいて算出されたハッシュ値を対象ブロックに含めて生成する。これにより、本実施形態に係る検証装置300によれば、従来のブロックチェーンが持つ優れた改ざん耐性を維持したまま、データを検証することができる。
また、本実施形態に係る検証装置300は、管理対象とする対象処理装置における入力データ、および、出力データを対象ブロックに含めて生成する。これにより、本実施形態に係る検証装置300によれば、複数の処理装置100におけるいずれかの処理装置100においてデータが変換された場合であっても、いずれの段階でデータが改ざんされたかを判断することができる。したがって、本実施形態に係る検証装置300によれば、例えば、制御パラメータに問題が発生した場合であっても、原因を解析し、各処理箇所の追跡調査を実施することができる。
なお、上述の説明においては、検証システム30が、複数の制御処理装置200a~200eのそれぞれを管理対象とする複数の検証装置300a~300eを含む場合を一例として示した。しかしながら、検証システム30に含まれる検証装置300の数はこれに限定されるものではない。検証システム30は、複数の制御処理装置200a~200eよりも多い複数の検証装置300を含んでいてもよい。この場合、いくつかの検証装置300は、いずれの制御処理装置200をも管理対象とせずに、「検証要求に応じる側」としてのみ機能してもよい。これにより、検証システム30全体として、記録の冗長性を確保することができるので、改ざんの難易度を更に高めることができる。これに代えて、検証システム30は、複数の制御処理装置200a~200eよりも少ない複数の検証装置300を含んでいてもよい。すなわち、複数の検証装置300は、必ずしも、複数の制御処理装置200と1対1に対応して設けられていなくてもよい。
また、上述の説明においては、複数の検証装置300における主検証装置のみが、検証が成功した旨の検証結果を供給する場合を一例として示した。しかしながら、これに限定されるものではない。「検証要求に応じる側」の検証装置300における複数の検証装置300(例えば、全ての検証装置300)が、検証が成功した旨の検証結果を供給してもよい。この場合、「検証を要求する側」の検証装置300においては、取得した全ての検証結果が、検証が成功した旨を示している場合に、対象ブロックに対する検証が成功したと判定してよい。すなわち、「検証を要求する側」の検証装置300においては、「検証要求に応じる側」の検証装置300から全会一致で検証が成功した旨の検証結果を取得した場合に、対象ブロックに対する検証が成功したと判定してよい。
また、上述の説明においては、検証装置300が、エッジデバイス200a、第一演算装置200b、第二演算装置200c、制御パラメータ入力装置200d、および、制御器200eを管理対象とする場合を一例として示した。しかしながら、これに限定されるものではない。本実施形態に係る検証装置300は、ゲートウェイ装置、ファイアウォール装置、通信用ルータ、ネットワークスイッチ、スマートメータ、IoT機器、IoT機器制御用端末、ロボット、プロセス制御装置、エッジコンピュータ、および、サーバ用コンピュータ等、データを収集して他の装置へ供給する可能性のある様々な装置を管理対象としてよい。
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(RTM)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
図10は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ9900の例を示す。コンピュータ9900にインストールされたプログラムは、コンピュータ9900に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ9900に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ9900に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU9912によって実行されてよい。
本実施形態によるコンピュータ9900は、CPU9912、RAM9914、グラフィックコントローラ9916、およびディスプレイデバイス9918を含み、それらはホストコントローラ9910によって相互に接続されている。コンピュータ9900はまた、通信インターフェイス9922、ハードディスクドライブ9924、DVDドライブ9926、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ9920を介してホストコントローラ9910に接続されている。コンピュータはまた、ROM9930およびキーボード9942のようなレガシの入/出力ユニットを含み、それらは入/出力チップ9940を介して入/出力コントローラ9920に接続されている。
CPU9912は、ROM9930およびRAM9914内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ9916は、RAM9914内に提供されるフレームバッファ等またはそれ自体の中にCPU9912によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス9918上に表示されるようにする。
通信インターフェイス9922は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ9924は、コンピュータ9900内のCPU9912によって使用されるプログラムおよびデータを格納する。DVDドライブ9926は、プログラムまたはデータをDVD-ROM9901から読み取り、ハードディスクドライブ9924にRAM9914を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
ROM9930はその中に、アクティブ化時にコンピュータ9900によって実行されるブートプログラム等、および/またはコンピュータ9900のハードウェアに依存するプログラムを格納する。入/出力チップ9940はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ9920に接続してよい。
プログラムが、DVD-ROM9901またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ9924、RAM9914、またはROM9930にインストールされ、CPU9912によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ9900に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ9900の使用に従い情報の操作または処理を実現することによって構成されてよい。
例えば、通信がコンピュータ9900および外部デバイス間で実行される場合、CPU9912は、RAM9914にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス9922に対し、通信処理を命令してよい。通信インターフェイス9922は、CPU9912の制御下、RAM9914、ハードディスクドライブ9924、DVD-ROM9901、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
また、CPU9912は、ハードディスクドライブ9924、DVDドライブ9926(DVD-ROM9901)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM9914に読み取られるようにし、RAM9914上のデータに対し様々なタイプの処理を実行してよい。CPU9912は次に、処理されたデータを外部記録媒体にライトバックする。
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU9912は、RAM9914から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM9914に対しライトバックする。また、CPU9912は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU9912は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ9900上またはコンピュータ9900近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ9900に提供する。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
10 データ処理システム
100 処理装置
110 受信部
120 復号部
130 処理部
140 暗号部
150 送信部
160 継続判定部
20 制御システム
200 制御処理装置
200a エッジデバイス
200b 第一演算装置
200c 第二演算装置
200d 制御パラメータ入力装置
200e 制御器
200f 制御対象
30 検証システム
300 検証装置
310 登録部
315 データ取得部
320 算出部
325 ブロック生成部
330 暗号化部
335 検証要求部
340 検証結果取得部
345 出力部
350 ブロック取得部
355 復号化部
360 検証部
365 検証応答部
9900 コンピュータ
9901 DVD-ROM
9910 ホストコントローラ
9912 CPU
9914 RAM
9916 グラフィックコントローラ
9918 ディスプレイデバイス
9920 入/出力コントローラ
9922 通信インターフェイス
9924 ハードディスクドライブ
9926 DVDドライブ
9930 ROM
9940 入/出力チップ
9942 キーボード

Claims (17)

  1. 複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部と、
    前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、前記対象データに基づいて生成するブロック生成部と、
    前記対象ブロックを前記複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、前記対象ブロックに対する検証を要求する検証要求部と、
    前記複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録する登録部と
    を備える、検証装置。
  2. 前記対象ブロックの検証が失敗した旨の前記検証結果が取得された場合に、異常メッセージを出力する出力部を更に備える、請求項1に記載の検証装置。
  3. 前記対象ブロックを前記複数の検証装置毎に暗号化する暗号化部を更に備え、
    前記検証要求部は、前記複数の検証装置毎に暗号化されたそれぞれの前記対象ブロックを前記複数の検証装置のそれぞれへ供給する、請求項1または2に記載の検証装置。
  4. 前記登録部は、前記複数の処理装置のうちの検証結果を供給すべき主検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録する、請求項1から3のいずれか一項に記載の検証装置。
  5. 前記データ処理システムは、前記複数の処理装置を経由して生成される制御パラメータに基づいて制御対象を制御する制御システムであり、
    前記主検証装置は、前記制御パラメータに応じた制御指令を前記制御対象に与える制御器を管理対象とする検証装置である、請求項4に記載の検証装置。
  6. 前記ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する算出部を更に備え、
    前記ブロック生成部は、前記ハッシュ値を含む前記対象ブロックを生成する、請求項1から5のいずれか一項に記載の検証装置。
  7. 前記データ取得部は、前記対象処理装置において上流の処理装置から入力される入力データ、および、下流の処理装置へ出力する出力データを取得し、
    前記ブロック生成部は、前記入力データおよび前記出力データを含む前記対象ブロックを生成する、請求項1から6の何れか一項に記載の検証装置。
  8. 複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得することと、
    前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、前記対象データに基づいて生成することと、
    前記対象ブロックを前記複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、前記対象ブロックに対する検証を要求することと、
    前記複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録することと
    を備える、検証方法。
  9. コンピュータにより実行されて、前記コンピュータを、
    複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部と、
    前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、前記対象データに基づいて生成するブロック生成部と、
    前記対象ブロックを前記複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、前記対象ブロックに対する検証を要求する検証要求部と、
    前記複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録する登録部と
    して機能させる、検証プログラム。
  10. 複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得するブロック取得部と、
    前記ブロックチェーンに登録済みの上流のブロックに基づいて、前記対象ブロックを検証する検証部と、
    前記対象ブロックに対する検証結果を前記対象ブロックの供給元である対象検証装置へ供給して、前記対象ブロックに対する検証要求に応答する検証応答部と、
    前記検証結果に応じて前記対象ブロックを前記ブロックチェーンに登録する登録部と
    を備える、検証装置。
  11. 前記対象ブロックの検証が失敗した場合に、異常メッセージを出力する出力部を更に備える請求項10に記載の検証装置。
  12. 前記対象ブロックを、前記対象検証装置に応じて復号化する復号化部を更に備える、請求項10または11に記載の検証装置。
  13. 前記検証応答部は、自身が検証結果を供給すべき主検証装置であるかどうか判定し、前記主検証装置である場合に、前記対象ブロックに対する検証結果を前記対象検証装置へ供給する、請求項10から12のいずれか一項に記載の検証装置。
  14. 前記データ処理システムは、前記複数の処理装置を経由して生成される制御パラメータに基づいて制御対象を制御する制御システムであり、
    前記検証応答部は、前記制御パラメータに応じた制御指令を前記制御対象に与える制御器を管理対象とする場合に、自身が主検証装置であると判定する、請求項13に記載の検証装置。
  15. 前記ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する算出部を更に備え、
    前記検証部は、前記対象ブロックに含まれるハッシュ値と算出したハッシュ値とに基づいて、前記対象ブロックを検証する、請求項10から14のいずれか一項に記載の検証装置。
  16. 複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得することと、
    前記ブロックチェーンに登録済みの上流のブロックに基づいて、前記対象ブロックを検証することと、
    前記対象ブロックに対する検証結果を、前記対象ブロックの供給元である対象検証装置へ供給して、前記対象ブロックに対する検証要求に応答することと、
    前記検証結果に応じて前記対象ブロックを前記ブロックチェーンに登録することと
    を備える、検証方法。
  17. コンピュータにより実行されて、前記コンピュータを、
    複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得するブロック取得部と、
    前記ブロックチェーンに登録済みの上流のブロックに基づいて、前記対象ブロックを検証する検証部と、
    前記対象ブロックに対する検証結果を、前記対象ブロックの供給元である対象検証装置へ供給して、前記対象ブロックに対する検証要求に応答する検証応答部と、
    前記検証結果に応じて前記対象ブロックを前記ブロックチェーンに登録する登録部と
    して機能させる、検証プログラム。
JP2021063195A 2021-04-01 2021-04-01 検証装置、検証方法、および、検証プログラム Pending JP2022158363A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021063195A JP2022158363A (ja) 2021-04-01 2021-04-01 検証装置、検証方法、および、検証プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021063195A JP2022158363A (ja) 2021-04-01 2021-04-01 検証装置、検証方法、および、検証プログラム

Publications (1)

Publication Number Publication Date
JP2022158363A true JP2022158363A (ja) 2022-10-17

Family

ID=83638662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021063195A Pending JP2022158363A (ja) 2021-04-01 2021-04-01 検証装置、検証方法、および、検証プログラム

Country Status (1)

Country Link
JP (1) JP2022158363A (ja)

Similar Documents

Publication Publication Date Title
Gao et al. GridMonitoring: Secured sovereign blockchain based monitoring on smart grid
CN111355705B (zh) 一种基于区块链的数据审计与安全去重云存储系统、方法
Sharma et al. Blockchain-based interoperable healthcare using zero-knowledge proofs and proxy re-encryption
Paccagnella et al. Custos: Practical tamper-evident auditing of operating systems using trusted execution
EP3962019A1 (en) Trusted data transmission methods, apparatuses, and devices
Bugiel et al. Twin clouds: An architecture for secure cloud computing
US20180287780A1 (en) Blockchain verification of network security service
CN102769615B (zh) 一种基于MapReduce机制的任务调度方法和系统
Awadallah et al. An integrated architecture for maintaining security in cloud computing based on blockchain
WO2019075234A1 (en) CERTIFICATE COMPRISING INTEGRATED ENCRYPTION KEYS
CN110462652A (zh) 用于计算机辅助地提供安全性受保护的数字孪生的方法和装置
JP2023501152A (ja) 許可型ブロックチェーンのためのランダムなノード選択
CN103825698A (zh) 一种密码安全管理系统和方法
JP2023504492A (ja) データ・オブジェクトの効率的しきい値ストレージ
CN113302610B (zh) 基于区块链的可信平台
JP2023520632A (ja) データの保護のためのノイズ・トランザクション
CN115380303A (zh) 基于区块链的可信平台
Le et al. A hybrid blockchain-based log management scheme with nonrepudiation for smart grids
JP2023530594A (ja) 分散型データベースにおける許可されたイベント処理
Chen et al. TrustBuilder: A non-repudiation scheme for IoT cloud applications
Li et al. A secure, reliable and low-cost distributed storage scheme based on blockchain and IPFS for firefighting IoT data
CN114885325A (zh) 适用5g网络的调控业务网络安全可信审计方法和系统
Liu et al. Data integrity audit scheme based on quad Merkle tree and blockchain
Lu et al. Combining smart construction objects–enabled blockchain oracles and signature techniques to ensure information authentication and integrity in construction
CN113302612A (zh) 基于区块链的可信平台

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240626