JP7615844B2 - Verification device, verification method, and verification program - Google Patents
Verification device, verification method, and verification program Download PDFInfo
- Publication number
- JP7615844B2 JP7615844B2 JP2021063195A JP2021063195A JP7615844B2 JP 7615844 B2 JP7615844 B2 JP 7615844B2 JP 2021063195 A JP2021063195 A JP 2021063195A JP 2021063195 A JP2021063195 A JP 2021063195A JP 7615844 B2 JP7615844 B2 JP 7615844B2
- Authority
- JP
- Japan
- Prior art keywords
- verification
- data
- unit
- devices
- 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.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
本発明は、検証装置、検証方法、および、検証プログラムに関する。 The present invention relates to a verification device, a verification method, and a verification program.
特許文献1には、「よりセキュリティ強化を図ることができるようにした暗号化制御システムおよび暗号化制御方法、並びにプログラム」が記載されている。
[先行技術文献]
[特許文献]
[特許文献1] 特許第6360781号
[Prior Art Literature]
[Patent Documents]
[Patent Document 1] Japanese Patent No. 6360781
本発明の第1の態様においては、検証装置を提供する。上記検証装置は、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部を備えてよい。上記検証装置は、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、上記対象データに基づいて生成するブロック生成部を備えてよい。上記検証装置は、上記対象ブロックを上記複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、上記対象ブロックに対する検証を要求する検証要求部を備えてよい。上記検証装置は、上記複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、上記対象ブロックを上記ブロックチェーンに登録する登録部を備えてよい。 In a first aspect of the present invention, a verification device is provided. The verification device may include a data acquisition unit that acquires target data, which is data in a target processing device to be managed, in a data processing system in which data is propagated or converted via multiple processing devices. The verification device may include a block generation unit that generates, based on the target data, a target block to be registered in a blockchain that records blocks based on data in each of the multiple processing devices. The verification device may include a verification request unit that supplies the target block to multiple verification devices that manage the multiple processing devices, respectively, and requests verification of the target block. The verification device may include a registration unit that registers the target block in the blockchain in response to a verification result from at least one of the multiple verification devices.
上記検証装置は、上記対象ブロックの検証が失敗した旨の上記検証結果が取得された場合に、異常メッセージを出力する出力部を更に備えてよい。 The verification device may further include an output unit that outputs an abnormality message when the verification result indicates that the verification of the target block has failed.
上記検証装置は、上記対象ブロックを上記複数の検証装置毎に暗号化する暗号化部を更に備えてよい。上記検証要求部は、上記複数の検証装置毎に暗号化されたそれぞれの上記対象ブロックを上記複数の検証装置のそれぞれへ供給してよい。 The verification device may further include an encryption unit that encrypts the target block for each of the plurality of verification devices. The verification request unit may supply each of the target blocks encrypted for each of the plurality of verification devices to each of the plurality of verification devices.
上記登録部は、上記複数の検証装置のうちの検証結果を供給すべき主検証装置からの検証結果に応じて、上記対象ブロックを上記ブロックチェーンに登録してよい。 The registration unit may register the target block in the blockchain in response to a verification result from a main verification device that is to supply the verification result among the multiple verification devices.
上記データ処理システムは、上記複数の処理装置を経由して生成される制御パラメータに基づいて制御対象を制御する制御システムであってよい。上記主検証装置は、上記制御パラメータに応じた制御指令を上記制御対象に与える制御器を管理対象とする検証装置であってよい。 The data processing system may be a control system that controls a control target based on control parameters generated via the multiple processing devices. The main verification device may be a verification device that manages a controller that provides a control command to the control target according to the control parameters.
上記検証装置は、上記ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する算出部を更に備えてよい。上記ブロック生成部は、上記ハッシュ値を含む上記対象ブロックを生成してよい。 The verification device may further include a calculation unit that calculates a hash value based on an upstream block that has been registered in the blockchain. The block generation unit may generate the target block that includes the hash value.
上記データ取得部は、上記対象処理装置において上流の処理装置から入力される入力データ、および、下流の処理装置へ出力する出力データを取得してよい。上記ブロック生成部は、上記入力データおよび上記出力データを含む上記対象ブロックを生成してよい。 The data acquisition unit may acquire input data input from an upstream processing device in the target processing device, and output data to be output to a downstream processing device. The block generation unit may generate the target block including the input data and the output data.
本発明の第2の態様においては、検証方法を提供する。上記検証方法は、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得することを備えてよい。上記検証方法は、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、上記対象データに基づいて生成することを備えてよい。上記検証方法は、上記対象ブロックを上記複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、上記対象ブロックに対する検証を要求することを備えてよい。上記検証方法は、上記複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、上記対象ブロックを上記ブロックチェーンに登録することを備えてよい。 In a second aspect of the present invention, a verification method is provided. The verification method may comprise acquiring target data, which is data in a target processing device to be managed, in a data processing system in which data is propagated or transformed via a plurality of processing devices. The verification method may comprise generating, based on the target data, a target block to be registered in a blockchain that records blocks based on data in each of the plurality of processing devices. The verification method may comprise supplying the target block to a plurality of verification devices that respectively manage the plurality of processing devices, and requesting verification of the target block. The verification method may comprise registering the target block in the blockchain in response to a verification result from at least one of the plurality of verification devices.
本発明の第3の態様においては、検証プログラムを提供する。上記検証プログラムは、コンピュータにより実行されてよい。上記検証プログラムは、上記コンピュータを、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、上記対象データに基づいて生成するブロック生成部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記対象ブロックを上記複数の処理装置をそれぞれ管理対象とする複数の検証装置へ供給して、上記対象ブロックに対する検証を要求する検証要求部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記複数の検証装置のうちの少なくとも一つの検証装置からの検証結果に応じて、上記対象ブロックを上記ブロックチェーンに登録する登録部として機能させてよい。 In a third aspect of the present invention, a verification program is provided. The verification program may be executed by a computer. The verification program may cause the computer to function as a data acquisition unit that acquires target data, which is data in a target processing device to be managed, in a data processing system in which data is propagated or converted via a plurality of processing devices. The verification program may cause the computer to function as a block generation unit that generates, based on the target data, a target block to be registered in a blockchain that records blocks based on data in each of the plurality of processing devices. The verification program may cause the computer to function as a verification request unit that supplies the target block to a plurality of verification devices that each manage the plurality of processing devices, and requests verification of the target block. The verification program may cause the computer to function as a registration unit that registers the target block in the blockchain in response to a verification result from at least one of the plurality of verification devices.
本発明の第4の態様においては、検証装置を提供する。上記検証装置は、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得するブロック取得部を備えてよい。上記検証装置は、上記ブロックチェーンに登録済みの上流のブロックに基づいて、上記対象ブロックを検証する検証部を備えてよい。上記検証装置は、上記対象ブロックに対する検証結果を上記対象ブロックの供給元である対象検証装置へ供給して、上記対象ブロックに対する検証要求に応答する検証応答部を備えてよい。上記検証装置は、上記検証結果に応じて上記対象ブロックを上記ブロックチェーンに登録する登録部を備えてよい。 In a fourth aspect of the present invention, a verification device is provided. The verification device may include a block acquisition unit that acquires a target block to be registered in a blockchain that records blocks based on data in each of a plurality of processing devices in a data processing system in which data is propagated or transformed via a plurality of processing devices. The verification device may include a verification unit that verifies the target block based on an upstream block that has already been registered in the blockchain. The verification device may include a verification response unit that supplies a verification result for the target block to a target verification device that is a supplier of the target block, and responds to a verification request for the target block. The verification device may include a registration unit that registers the target block in the blockchain in accordance with the verification result.
上記検証装置は、上記対象ブロックの検証が失敗した場合に、異常メッセージを出力する出力部を更に備えてよい。 The verification device may further include an output unit that outputs an abnormality message if verification of the target block fails.
上記検証装置は、上記対象ブロックを、上記対象検証装置に応じて復号化する復号化部を更に備えてよい。 The verification device may further include a decoding unit that decodes the target block in accordance with the target verification device.
上記検証応答部は、自身が検証結果を供給すべき主検証装置であるかどうか判定し、上記主検証装置である場合に、上記対象ブロックに対する検証結果を上記対象検証装置へ供給してよい。 The verification response unit may determine whether it is the main verification device that should supply the verification results, and if so, may supply the verification results for the target block to the target verification device.
上記データ処理システムは、上記複数の処理装置を経由して生成される制御パラメータに基づいて制御対象を制御する制御システムであってよい。上記検証応答部は、上記制御パラメータに応じた制御指令を上記制御対象に与える制御器を管理対象とする場合に、自身が主検証装置であると判定してよい。 The data processing system may be a control system that controls a control target based on control parameters generated via the multiple processing devices. The verification response unit may determine that it is a main verification device when a controller that issues a control command to the control target according to the control parameters is a management target.
上記検証装置は、上記ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する算出部を更に備えてよい。上記検証部は、上記対象ブロックに含まれるハッシュ値と算出したハッシュ値とに基づいて、上記対象ブロックを検証してよい。 The verification device may further include a calculation unit that calculates a hash value based on an upstream block that has been registered in the blockchain. The verification unit may verify the target block based on the hash value included in the target block and the calculated hash value.
本発明の第5の態様においては、検証方法を提供する。上記検証方法は、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得することを備えてよい。上記検証方法は、上記ブロックチェーンに登録済みの上流のブロックに基づいて、上記対象ブロックを検証することを備えてよい。上記検証方法は、上記対象ブロックに対する検証結果を上記対象ブロックの供給元である対象検証装置へ供給して、上記対象ブロックに対する検証要求に応答することを備えてよい。上記検証方法は、上記検証結果に応じて上記対象ブロックを上記ブロックチェーンに登録することを備えてよい。 In a fifth aspect of the present invention, there is provided a verification method. The verification method may comprise, in a data processing system in which data is propagated or transformed via a plurality of processing devices, acquiring a target block to be registered in a blockchain that records blocks based on data in each of the plurality of processing devices. The verification method may comprise verifying the target block based on an upstream block already registered in the blockchain. The verification method may comprise supplying a verification result for the target block to a target verification device that is a supplier of the target block, and responding to a verification request for the target block. The verification method may comprise registering the target block in the blockchain in response to the verification result.
本発明の第6の態様においては、検証プログラムを提供する。上記検証プログラムは、コンピュータにより実行されてよい。上記検証プログラムは、上記コンピュータを、複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおいて、上記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得するブロック取得部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記ブロックチェーンに登録済みの上流のブロックに基づいて、上記対象ブロックを検証する検証部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記対象ブロックに対する検証結果を上記対象ブロックの供給元である対象検証装置へ供給して、上記対象ブロックに対する検証要求に応答する検証応答部として機能させてよい。上記検証プログラムは、上記コンピュータを、上記検証結果に応じて上記対象ブロックを上記ブロックチェーンに登録する登録部として機能させてよい。 In a sixth aspect of the present invention, a verification program is provided. The verification program may be executed by a computer. The verification program may cause the computer to function as a block acquisition unit that acquires a target block to be registered in a blockchain that records blocks based on data in each of a plurality of processing devices in a data processing system in which data is propagated or converted via a plurality of processing devices. The verification program may cause the computer to function as a verification unit that verifies the target block based on an upstream block that has already been registered in the blockchain. The verification program may cause the computer to function as a verification response unit that responds to a verification request for the target block by supplying a verification result for the target block to a target verification device that is a supplier of the target block. The verification program may cause the computer to function as a registration unit that registers the target block in the blockchain in accordance with the verification result.
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。 Note that the above summary of the invention does not list all of the features of the present invention. Also, subcombinations of these features may also be inventions.
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the invention according to the claims. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
図1は、本実施形態に係る検証技術が適用されてよいデータ処理システム10の一例を示す。データ処理システム10においては、様々な装置間で様々なデータが取引される。本図においては、一例として、データ処理システム10において、複数の処理装置100a~100f(「処理装置100」と総称する。)が環状に接続され、複数の処理装置100間でデータがループ状(例えば、処理装置100a→100b→100c→100d→100e→100f→100a→・・・)に伝搬される場合を一例として示している。
Figure 1 shows an example of a
ここで、ループの一つ前を「上流」、ループの一つ後を「下流」と定義することとする。すなわち、例えば処理装置100bにとっては、処理装置100aが上流の処理装置100にあたり、処理装置100cが下流の処理装置100にあたる。このような複数の処理装置100のうちの少なくとも一つは、上流の処理装置100から入力された入力データを処理することによって入力データを変換し、変換されたデータを出力データとして下流の処理装置100へ出力してよい。本実施形態に係る検証技術は、このような複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10に適用されてよい。
Here, the loop before the loop is defined as "upstream" and the loop after the loop is defined as "downstream". That is, for example, for
図2は、処理装置100のブロック図の一例を示す。処理装置100は、上流の処理装置100との間、および、下流の処理装置100との間で、例えば公開鍵暗号方式(PKI:Public Key Infrastructure)を用いてデータをそれぞれ取引する。ここで、公開鍵暗号方式を用いてデータを取引する二者間において、データの受信側は、データの送信側、すなわち、上流の処理装置100の公開鍵を、信頼性のある認証局等を利用して事前に入手しているものとする。これより先、処理装置100が処理装置100bである場合を一例として説明する。処理装置100bは、上流の処理装置100である処理装置100aの公開鍵を事前に入手している。
Figure 2 shows an example of a block diagram of the
処理装置100は、受信部110と、復号部120と、処理部130と、暗号部140と、送信部150と、継続判定部160とを備える。なお、これらブロックは、それぞれ機能的に分離された機能ブロックであって、実際のデバイス構成とは必ずしも一致していなくてもよい。すなわち、本図において、1つのブロックとして示されているからといって、それが必ずしも1つのデバイスにより構成されていなくてもよい。また、本図において、別々のブロックとして示されているからといって、それらが必ずしも別々のデバイスにより構成されていなくてもよい。
The
受信部110は、上流の処理装置100である処理装置100aからデータを受信する。これにあたり、処理装置100aにおいては、送信すべき送信内容をハッシュ関数で処理してハッシュ値を算出している。そして、処理装置100aにおいては、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名として処理装置100bへ送信している。処理装置100bの受信部110は、このようにして処理装置100aによって暗号化されたデータを処理装置100aから受信する。受信部110は、受信したデータを復号部120へ供給する。
The receiving
また、受信部110は、後述する検証装置からのメッセージを受信する。受信部110は、受信したメッセージを継続判定部160へ供給する。
The receiving
復号部120は、データを復号する。復号部120は、受信部110から供給されたデータからハッシュ値の暗号文を取り出す。そして、復号部120は、処理装置100aの公開鍵を用いてハッシュ値の暗号文を復号してハッシュ値を取得する。また、復号部120は、受信部110から供給されたデータから処理装置100aの送信内容を取り出す。そして、復号部120は、処理装置100aの送信内容を処理装置100aと同じハッシュ関数で処理してハッシュ値を算出する。復号部120は、復号したハッシュ値と算出したハッシュ値とを比較して、両者が一致している場合に、受信部110から供給されたデータが正しい(改ざんされていない)データであると判断する。これに応じて、復号部120は処理装置100aの送信内容を処理部130へ供給する。
The
処理部130は、データを処理する。処理部130は、復号部120から供給された処理装置100aの送信内容を入力データとして、データを処理する。そして、処理部130は、入力データを処理した結果である出力データを、自身が送信すべき送信内容として暗号部140へ供給する。
The
暗号部140は、データを暗号化する。暗号部140は、処理部130から供給された送信内容をハッシュ関数で処理してハッシュ値を算出する。そして、暗号部140は、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名としたデータを生成する。暗号部140は、このようにして暗号化されたデータを送信部150へ供給する。
The
送信部150は、下流の処理装置100である処理装置100cへデータを送信する。後述する継続判定部160から許可通知が供給された場合に、送信部150は、暗号部140によって暗号化されたデータを、処理装置100cへ送信する。一方、継続判定部160から中止指示が供給された場合に、送信部150は、処理装置100cへのデータ送信を中止する。
The
継続判定部160は、データの取引の継続を判定する。継続判定部160は、受信部110から供給された検証装置からのメッセージに応じて、下流の処理装置100へのデータ送信を継続するか否か判定する。例えば、検証が成功した旨のメッセージが供給された場合に、継続判定部160は、下流の処理装置100へのデータ送信を継続すると判定する。そして、継続判定部160は、送信を許可する旨の許可通知を送信部150へ供給する。これに応じて、送信部150は、処理装置100cへ暗号化されたデータを送信する。一方、異常メッセージが供給された場合に、継続判定部160は、下流の処理装置100へのデータ送信を中止すると判定する。そして、継続判定部160は、送信を中止する旨の中止指示を送信部150へ供給する。これに応じて、送信部150は、処理装置100cへのデータ送信を中止する。
The
図3は、本実施形態に係る検証技術が適用されてよいデータ処理システム10の具体例としての制御システム20を示す。これより先、データ処理システム10が、複数の制御処理装置200を経由して生成される制御パラメータに基づいて制御対象を制御する制御システム20である場合を一例として説明する。しかしながら、これに限定されるものではない。本実施形態に係る検証技術は、上述のとおり、制御システム20とは異なる様々なデータ処理システム10に適用されてよい。
Figure 3 shows a
本図に示される制御システム20においては、図1のデータ処理システム10における処理装置100aとしてエッジデバイス200aが、処理装置100bとして第一演算装置200bが、処理装置100cとして第二演算装置200cが、処理装置100dとして制御パラメータ入力装置200dが、処理装置100eとして制御器200eが、処理装置100fとして制御対象200fが、それぞれ適用されている。ここで、エッジデバイス200a、第一演算装置200b、第二演算装置200c、制御パラメータ入力装置200d、および、制御器200eを、「制御処理装置200」と総称することとする。なお、制御処理装置200の構成については、各制御処理装置200に特有の構成を除き処理装置100と同様であるので、ここでは説明を省略する。
In the
制御システム20において、エッジデバイス200a、制御パラメータ入力装置200d、制御器200e、および、制御対象200fは、例えば、プラントを制御する制御ネットワークに属している。一方、第一演算装置200bおよび第二演算装置200cは、制御ネットワークの外部である、例えば、インターネット等の非制御ネットワークに属している。
In the
ここで、このようなプラントとしては、化学やバイオ等の工業プラントの他、ガス田や油田等の井戸元やその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、上下水やダム等を管理制御するプラント等が挙げられる。 Examples of such plants include industrial plants such as chemical and bio plants, as well as plants that manage and control wellheads and surrounding areas of gas and oil fields, plants that manage and control hydroelectric, thermal and nuclear power generation, plants that manage and control environmental power generation such as solar and wind power, and plants that manage and control water supply and sewage systems and dams.
エッジデバイス200aは、このようなプラントにおける状態データ(例えば、プラントに設けられた複数のセンサの測定データ)を制御対象200fから収集する。そして、エッジデバイス200aは、状態データをクレンジングして、必要なデータのみを非制御ネットワーク上(例えば、第一演算装置200b)へ供給する。
The
第一演算装置200bは、非制御ネットワークに属している。第一演算装置200bは、例えば、SaaS(Software as a Service)プロバイダ等であってよい。第一演算装置200bは、プラントにおける状態データをエッジデバイス200aから取得する。そして、第一演算装置200bは、状態データに基づいて、制御対象200fを制御するための制御パラメータに係る第一の制御データを生成する。第一演算装置200bは、生成した第一の制御データを第二演算装置200cへ供給する。
The first
第二演算装置200cは、第一演算装置200bと同様、非制御ネットワークに属しており、例えば、SaaSプロバイダ等であってよい。第二演算装置200cは、第一の制御データを第一演算装置200bから取得する。そして、第二演算装置200cは、第一の制御データに基づいて、制御対象200fを制御するための制御パラメータに係る第二の制御データを生成する。第二演算装置200cは、生成した第二の制御データを制御パラメータ入力装置200dへ供給する。
The
制御パラメータ入力装置200dは、第二の制御データを第二演算装置200cから取得する。そして、制御パラメータ入力装置200dは、第二の制御データに基づく制御パラメータを制御器200eへ供給する。
The control parameter input device 200d acquires the second control data from the
制御器200eは、制御対象200fを制御する。制御器200eは、例えば、分散制御システム(DCS:Distributed Control System)等であってよい。制御器200eは、制御パラメータを制御パラメータ入力装置200dから取得する。そして、制御器200eは、制御パラメータに基づく制御指令を制御対象200fへ与える。
The
制御対象200fは、制御の対象となる機器および装置等である。例えば、制御対象200fは、プラントのプロセスにおける圧力、温度、pH、速度、および、流量等の物理量を制御するバルブ、ポンプ、ヒータ、ファン、モータ、および、スイッチ等のアクチュエータを含んでいてよい。制御対象200fは、制御器200eからの制御指令を受けてアクチュエータを制御したことに応じて、プラントの状態データをエッジデバイス200aへ供給する。
The controlled
本実施形態に係る検証技術は、一例として、このような複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20に適用されてよい。
The verification technology according to this embodiment may be applied, as an example, to a
図4は、本実施形態に係る検証システム30の一例を示す。本図においては、図3における制御システム20に本実施形態に係る検証技術を適用させた場合を一例として示している。しかしながら、これに限定されるものではない。本実施形態に係る検証技術は、上述のとおり、複数の処理装置100を経由してデータが伝搬または変換される様々なデータ処理システム10に適用されてよい。
Figure 4 shows an example of a
本図に示されるように、本実施形態に係る検証システム30は、複数の検証装置300a~300e(「検証装置300」と総称する。)を含んでいる。ここで、検証装置300aはエッジデバイス200aを管理対象とし、検証装置300bは第一演算装置200bを管理対象とし、検証装置300cは第二演算装置200cを管理対象とし、検証装置300dは制御パラメータ入力装置200dを管理対象とし、検証装置300eは制御器200eを管理対象としている。このように本実施形態に係る検証システム30は、複数の制御処理装置200a~200eをそれぞれ管理対象とする複数の検証装置300a~300eを含んでいてよい。このような複数の検証装置300は、ネットワークを介して互いに通信可能に接続されている。
As shown in this figure, the
図5は、本実施形態に係る検証システム30に登録されるブロックチェーンの一例を示す。本図においては、ブロックa、ブロックb、ブロックc、および、ブロックdがチェーン状に時系列に登録されている様子を示している。ここで、例えば、ブロックaは検証装置300aが管理対象とするエッジデバイス200aにおけるデータに基づくブロックであり、ブロックbは検証装置300bが管理対象とする第一演算装置200bにおけるデータに基づくブロックであり、ブロックcは検証装置300cが管理対象とする第二演算装置200cにおけるデータに基づくブロックであり、ブロックdは検証装置300dが管理対象とする制御パラメータ入力装置200dにおけるデータに基づくブロックである。
Figure 5 shows an example of a blockchain registered in the
例えば、ブロックbには、上流のブロックであるブロックaのハッシュ値と、第一演算装置200bの入力データおよび出力データとが含まれている。同様に、ブロックcには、上流のブロックであるブロックbのハッシュ値と、第二演算装置200cの入力データおよび出力データとが含まれている。同様に、ブロックdには、上流のブロックであるブロックcのハッシュ値と、制御パラメータ入力装置200dの入力データおよび出力データとが含まれている。このように、ブロックチェーンにおいては、個々のブロックに複数の制御処理装置200のそれぞれにおける入出力データに加えて、1つ前に生成されたブロックの内容に基づくハッシュ値が含まれ、それらブロックが時系列に沿って記録されている。このようなブロックチェーンにおいて、仮に、過去に登録されたブロック内のデータを改ざんしようと試みた場合、改ざんされたブロックから算出されるハッシュ値が以前と異なるものとなるため、後続する全てのブロックにおけるハッシュ値も変更しなければならない。このため、ブロックチェーンは、改ざん耐性に優れたデータ構造を有しているといえる。本実施形態に係る検証技術は、このようなブロックチェーンに登録されるデータを検証の対象としてよい。
For example, block b includes the hash value of block a, which is an upstream block, and the input data and output data of the first
図6は、本実施形態に係る検証装置300のブロック図の一例を示す。本実施形態に係る検証装置300は、制御システム20において複数の制御処理装置200を経由してデータが伝搬または変換されていくことに応じて、「検証を要求する側」と「検証要求に応じる側」とに役割を順次変えながら、他の検証装置300と協働して制御システム20全体におけるデータの検証を行う。これについて、詳細に説明する。
Figure 6 shows an example of a block diagram of a
検証装置300は、PC(パーソナルコンピュータ)、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。このようなコンピュータシステムもまた広義のコンピュータである。また、検証装置300は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、検証装置300は、データの検証用に設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。また、検証装置300がインターネットに接続可能な場合、検証装置300は、クラウドコンピューティングにより実現されてもよい。
The
また、検証装置300は、検証プログラムを既存のコンピュータが実行することにより、既存のコンピュータが本実施形態に係る検証機能を実行可能なように拡張されたものであってもよい。特に、検証装置300は、制御システム20に含まれる複数の制御処理装置200にそれぞれアドオンされたものであってもよい。
The
検証装置300は、登録部310と、データ取得部315と、算出部320と、ブロック生成部325と、暗号化部330と、検証要求部335と、検証結果取得部340と、出力部345と、ブロック取得部350と、復号化部355と、検証部360と、検証応答部365とを備える。なお、これらブロックは、それぞれ機能的に分離された機能ブロックであって、実際のデバイス構成とは必ずしも一致していなくてもよい。すなわち、本図において、1つのブロックとして示されているからといって、それが必ずしも1つのデバイスにより構成されていなくてもよい。また、本図において、別々のブロックとして示されているからといって、それらが必ずしも別々のデバイスにより構成されていなくてもよい。
The
ここで、上記ブロックのうち、データ取得部315と、ブロック生成部325と、暗号化部330と、検証要求部335は、主に、「検証を要求する側」の機能を提供する。一方、上記ブロックのうち、ブロック取得部350と、復号化部355と、検証部360と、検証応答部365は、主に、「検証要求に応じる側」の機能を提供する。そして、上記ブロックのうち、登録部310と、算出部320と、検証結果取得部340と、出力部345は、「検証を要求する側」および「検証要求に応じる側」の両者の機能を提供する。まず初めに、「検証を要求する側」の検証装置300における機能ブロックついて説明する。
Of the above blocks, the
登録部310は、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックをブロックチェーンに登録して記録する。また、登録部310は、後述する検証結果に応じて、対象ブロックをブロックチェーンに登録する。
The
データ取得部315は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、管理対象とする対象処理装置100におけるデータである対象データを取得する。図4における検証装置300bを一例とすると、データ取得部315は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、管理対象とする第一演算装置200bにおけるデータである対象データを取得する。例えば、データ取得部315は、第一演算装置200bにおける入力データおよび出力データを対象データとして、ネットワークを介して第一演算装置200bから取得してよい。しかしながら、これに限定されるものではない。データ取得部315は、このような対象データを、オペレータを介して取得してもよいし、各種メモリデバイス等を介して取得してもよい。データ取得部315は、取得した対象データをブロック生成部325へ供給する。
In a
算出部320は、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。「検証を要求する側」のフローにおいては、算出部320は、算出したハッシュ値をブロック生成部325へ供給する。
The
ブロック生成部325は、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、対象データに基づいて生成する。例えば、ブロック生成部325は、データ取得部315から供給された対象データと、算出部320から供給されたハッシュ値とを含む対象ブロックを生成する。ブロック生成部325は、生成した対象ブロックを暗号化部330へ供給する。また、ブロック生成部325は、生成した対象ブロックを登録部310へ供給する。
The
暗号化部330は、対象ブロックを複数の検証装置300毎に暗号化する。ここで、「検証要求に応じる側」の全ての検証装置300は、「検証を要求する側」の検証装置300における公開鍵を、信頼性のある認証局等を利用してそれぞれ事前に入手しているものとする。なお、「検証要求に応じる側」の一の検証装置300が入手済みの公開鍵は、「検証要求に応じる側」の他の検証装置300が入手済みの公開鍵とそれぞれ異なっていてよい。すなわち、「検証要求に応じる側」の各検証装置300は、「検証を要求する側」の検証装置300における異なる公開鍵をそれぞれ入手していてよい。暗号化部330は、「検証要求に応じる側」の各検証装置300に提供済みのそれぞれの公開鍵に対応するそれぞれの秘密鍵を使用して、対象ブロックを暗号化する。暗号化部330は、暗号化した対象ブロックを検証要求部335へ供給する。
The
検証要求部335は、対象ブロックを、複数の制御処理装置200をそれぞれ管理対象とする複数の検証装置300へ供給して、対象ブロックに対する検証を要求する。この際、例えば、検証要求部335は、複数の検証装置300毎に暗号化されたそれぞれの対象ブロックを複数の検証装置300のそれぞれへ供給してよい。
The
検証結果取得部340は、複数の検証装置300のうちの少なくとも一つの検証装置300から対象ブロックに対する検証結果を取得する。例えば、検証結果取得部340は、対象ブロックに対する検証結果を、ネットワークを介して少なくとも一つの検証装置300から取得してよい。しかしながら、これに限定されるものではない。検証結果取得部340は、このような検証結果を、オペレータを介して取得してもよいし、各種メモリデバイス等を介して取得してもよい。「検証を要求する側」のフローにおいては、検証結果取得部340は、取得した検証結果をブロック生成部325、および、出力部345へ供給する。
The verification
出力部345は、検証結果に応じた出力をする。「検証を要求する側」のフローにおいては、出力部345は、例えば、検証が成功した旨の検証結果が取得された場合に、管理対象の制御処理装置200(例えば、検証装置300bの場合は、第一演算装置200b)へ、検証が成功した旨のメッセージを出力する。一方、出力部345は、対象ブロックの検証が失敗した旨の検証結果が取得された場合に、異常メッセージを出力する。この際、出力部345は、例えば、アラームを発出することによって対象ブロックの検証が失敗したことを検証システム30の管理者へ報知してよい。また、出力部345は、管理対象の制御処理装置200へ、検証が失敗した旨のメッセージを出力してよい。しかしながら、これに限定されるものではない。出力部345は、対象ブロックに対する検証結果を、モニタに表示することによって出力してもよいし、プリントアウトすることによって出力してもよいし、他の装置へ送信することによって出力してもよい。
The
ここまで、「検証を要求する側」の検証装置300における機能ブロックついて説明した。続いて、「検証要求に応じる側」の検証装置300における機能ブロックについて説明する。なお、上述のとおり、登録部310と、算出部320と、検証結果取得部340と、出力部345は、「検証を要求する側」および「検証要求に応じる側」の両者の機能を提供する。
So far, we have explained the functional blocks in the
登録部310は、上述のとおり、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックをブロックチェーンに登録して記録する。また、登録部310は、後述する検証結果に応じて、対象ブロックをブロックチェーンに登録する。
As described above, the
ブロック取得部350は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、複数の処理装置100のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得する。図4における検証装置300eを一例とすると、ブロック取得部350は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、例えば、検証対象となる第一演算装置200bにおける対象データに基づく対象ブロックを、第一演算装置200bを管理対象とする検証装置300bから取得する。なお、このような対象ブロックは、上述のとおり、検証対象となる第一演算装置200bにおける対象データと、上流のブロックであるブロックaのハッシュ値とを含むものである。ブロック取得部350は、このような対象ブロックを、例えば、ネットワークを介して検証装置300bから取得してよい。しかしながら、これに限定されるものではない。ブロック取得部350は、このような対象ブロックを、オペレータを介して取得してもよいし、各種メモリデバイス等を介して取得してもよい。ブロック取得部350は、取得した対象ブロックを復号化部355へ供給する。
In a
復号化部355は、対象ブロックを、対象ブロックの供給元である対象検証装置300に応じて復号化する。ここで、「検証要求に応じる側」の検証装置300は、「検証を要求する側」の全ての検証装置300における公開鍵を、信頼性のある認証局等を利用してそれぞれ事前に入手しているものとする。復号化部355は、対象ブロックの供給元である対象検証装置300の公開鍵を用いて、対象ブロックを復号化する。復号化部355は、復号化した対象ブロックを検証部360へ供給する。また、復号化部355は、復号化した対象ブロックを登録部310へ供給する。
The
算出部320は、上述のとおり、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。「検証要求に応じる側」のフローにおいては、算出部320は、算出したハッシュ値を検証部360へ供給する。
As described above, the
検証部360は、ブロックチェーンに登録済みの上流のブロックに基づいて、対象ブロックを検証する。例えば、検証部360は、対象ブロックに含まれるハッシュ値と算出したハッシュ値とに基づいて、対象ブロックを検証する。検証部360は、対象ブロックに対する検証結果を、出力部345、および、検証応答部365へ供給する。
The
検証応答部365は、対象ブロックに対する検証結果を対象ブロックの供給元である対象検証装置へ供給して、対象ブロックに対する検証要求に応答する。また、検証応答部365は、対象ブロックに対する検証結果を復号化部355へ供給する。
The
検証結果取得部340は、上述のとおり、複数の検証装置300のうちの少なくとも一つの検証装置300から対象ブロックに対する検証結果を取得する。「検証要求に応じる側」の検証装置300のフローにおいては、検証結果取得部340は、取得した検証結果を復号化部355へ供給する。
As described above, the verification
出力部345は、上述のとおり、検証結果に応じた出力をする。「検証要求に応じる側」のフローにおいては、出力部345は、対象ブロックの検証が失敗した場合に、異常メッセージを出力する。この際、出力部345は、例えば、アラームを発出することによって対象ブロックの検証が失敗したことを検証システム30の管理者へ報知してよい。また、出力部345は、管理対象の制御処理装置200(例えば、検証装置300eの場合は、制御器200e)へ、検証が失敗した旨のメッセージを出力してよい。
As described above, the
これより先、本実施形態に係る検証装置300の動作について、「検証を要求する側」と「検証要求に応答する側」とに分けて、それぞれフローを用いて詳細に説明する。
From here on, the operation of the
図7は、検証を要求する側の検証装置300における動作のフローの一例を示す。ここでは、「検証を要求する側」の検証装置300が、第一演算装置200bを管理対象とする検証装置300bであり、ブロックbをブロックチェーンに登録すべき対象ブロックとする場合について一例として説明する。なお、上流のブロックであるブロックaは、既にブロックチェーンに登録済みであるものとする。
Figure 7 shows an example of the operation flow of the
ステップ710において、検証装置300は、対象データを取得する。例えば、データ取得部315は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、管理対象とする対象処理装置100におけるデータである対象データを取得する。一例として、検証装置300bにおけるデータ取得部315は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、管理対象とする第一演算装置200bにおけるデータを対象データとして取得する。
In step 710, the
この際、データ取得部315は、第一演算装置200bにおいて復号部120から処理部130へ供給されるエッジデバイス200aの送信内容を入力データとして取得してよい。また、データ取得部315は、第一演算装置200bにおいて処理部130から暗号部140へ供給される第一演算装置200bの送信内容を出力データとして取得してよい。このように、データ取得部315は、対象処理装置100において上流の処理装置100から入力される入力データ、および、下流の処理装置100へ出力する出力データを対象データとして取得してよい。データ取得部315は、取得した対象データをブロック生成部325へ供給する。
At this time, the
ステップ720において、検証装置300は、ハッシュ値を算出する。例えば、算出部320は、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。ここでは、ブロックチェーンに登録すべき対象ブロックがブロックbであるので、検証装置300bにおける算出部320は、上流のブロックであるブロックaをハッシュ処理してブロックaのハッシュ値を算出する。算出部320は、算出したハッシュ値をブロック生成部325へ供給する。
In step 720, the
ステップ730において、検証装置300は、対象ブロックを生成する。例えば、ブロック生成部325は、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、対象データに基づいて生成する。より詳細には、ブロック生成部325は、ステップ710において取得された対象データと、ステップ720において算出されたハッシュ値とを含む対象ブロックを生成する。一例として、検証装置300bにおけるブロック生成部325は、第一演算装置200bにおける入力データおよび出力データ、並びに、ブロックaのハッシュ値を含む対象ブロックbを生成する。ブロック生成部325は、生成した対象ブロックを暗号化部330へ供給する。
In step 730, the
ステップ740において、検証装置300は、対象ブロックを暗号化する。例えば、暗号化部330は、対象ブロックを複数の検証装置300毎に暗号化する。一例として、検証装置300bにおける暗号化部330は、複数の検証装置300a、300c、300d、および、300eに提供済みのそれぞれの公開鍵に対応するそれぞれの秘密鍵を使用して、対象ブロックを暗号化する。暗号化部330は、暗号化した対象ブロックを検証要求部335へ供給する。
In step 740, the
ステップ750において、検証装置300は、対象ブロックに対する検証を要求する。例えば、検証要求部335は、対象ブロックを、複数の制御処理装置200をそれぞれ管理対象とする複数の検証装置300へ供給して、対象ブロックに対する検証を要求する。一例として、検証装置300bにおける検証要求部335は、複数の検証装置300a、300c、300d、および、300e毎に暗号化されたそれぞれの対象ブロックを複数の検証装置300a、300c、300d、および、300eのそれぞれへ供給する。
In step 750, the
ステップ760において、検証装置300は、検証結果を取得したか否か判定する。例えば、検証結果取得部340は、複数の検証装置300のうちの少なくとも一つから検証結果を取得したか否か判定する。一例として、検証装置300bにおける検証結果取得部340は、複数の検証装置300a、300c、300d、および、300eの少なくとも一つから検証結果を取得したか否か判定する。ステップ760において検証結果を取得していない(No)と判定された場合、検証装置300は、処理をステップ760に戻してフローを継続する。ステップ760において検証結果を取得した(Yes)と判定された場合、検証装置300は、処理をステップ765に進める。
In step 760, the
ステップ765において、検証装置300は、検証結果が、検証が成功した旨を示しているか否か判定する。例えば、検証結果取得部340は、ステップ760において取得された検証結果が、検証が成功した旨を示しているか否か判定する。一例として、検証装置300bにおける検証結果取得部340は、複数の検証装置300a、300c、300d、および、300eの少なくとも一つから取得された検証結果が、検証が成功した旨を示しているか否か判定する。ステップ765において検証が成功した旨を示している(Yes)と判定された場合、検証結果取得部340はステップ760において取得された検証結果をブロック生成部325、および、出力部345へ供給する。そして、検証装置300は、処理をステップ770に進める。
In step 765, the
ステップ770において、検証装置300は、対象ブロックをブロックチェーンに登録する。一例として、検証装置300bにおけるブロック生成部325は、検証が成功した旨の検証結果が供給された場合に、ステップ730において生成した対象ブロックであるブロックbを登録部310へ供給する。これに応じて、登録部310は、ブロックbをブロックチェーンの末尾(ブロックaの後ろ)に登録する。このようにして、登録部310は、複数の検証装置300のうちの少なくとも一つの検証装置300からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。
In step 770, the
ステップ775において、検証装置300は、検証が成功した旨のメッセージを出力する。一例として、検証装置300bにおける出力部345は、検証が成功した旨の検証結果が供給された場合に、自身が管理対象とする第一演算装置200bへ、検証が成功した旨のメッセージを出力する。これに応じて、第一演算装置200bは、下流の制御処理装置200へのデータ送信を継続すると判定して、第二演算装置200cへデータを送信する。
In step 775, the
一方、ステップ765において検証が失敗した旨を示している(No)と判定された場合、検証結果取得部340はステップ760において取得された検証結果を出力部345へ供給する。そして、検証装置300は、処理をステップ780に進める。
On the other hand, if it is determined in step 765 that the verification has failed (No), the verification
ステップ780において、検証装置300は、アラームを発出する。一例として、検証装置300bにおける出力部345は、アラームを発出することによって対象ブロックであるブロックbの検証が失敗したことを検証システム30の管理者へ報知する。
In step 780, the
ステップ785において、検証装置300は、異常メッセージを出力する。一例として、検証装置300bにおける出力部345は、対象ブロックの検証が失敗した旨の検証結果が取得された場合に、自身が管理対象とする第一演算装置200bへ、異常メッセージを出力する。これに応じて、第一演算装置200bは、下流の制御処理装置200へのデータ送信を中止すると判定して、第二演算装置200cへのデータ送信を中止する。
In step 785, the
図8は、検証要求に応じる側の検証装置300における動作のフローの一例を示す。ここでは、「検証要求に応じる側」の検証装置300が、制御器200eを管理対象とする検証装置300eであり、検証装置300bからのブロックbをブロックチェーンに登録すべき対象ブロックとする場合について一例として説明する。なお、上流のブロックであるブロックaは、既にブロックチェーンに登録済みであるものとする。
Figure 8 shows an example of the operation flow of the
ステップ810において、検証装置300は、対象ブロックを取得する。例えば、ブロック取得部350は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、複数の処理装置100のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得する。一例として、検証装置300eにおけるブロック取得部350は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、検証対象となる第一演算装置200bにおけるデータに基づくブロックbを対象ブロックとして、第一演算装置200bを管理対象とする検証装置300bから取得する。ブロック取得部350は、取得した対象ブロックを復号化部355へ供給する。
In step 810, the
ステップ815において、検証装置300は、対象ブロックを復号化する。例えば、復号化部355は、ステップ810において取得された対象ブロックを、対象ブロックの供給元である対象検証装置300に応じて復号化する。一例として、検証装置300eにおける復号化部355は、検証装置300bから取得された対象ブロックbを、検証装置300bの公開鍵を用いて復号化する。復号化部355は、復号化した対象ブロックを検証部360へ供給する。
In step 815, the
ステップ820において、検証装置300は、ハッシュ値を算出する。例えば、算出部320は、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。ここでは、ブロックチェーンに登録すべき対象ブロックがブロックbであるので、検証装置300eにおける算出部320は、上流のブロックであるブロックaをハッシュ処理してブロックaのハッシュ値を算出する。算出部320は、算出したハッシュ値を検証部360へ供給する。
In step 820, the
ステップ830において、検証装置300は、ハッシュ値が一致するか否か判定する。例えば、検証部360は、ステップ815において復号化された対象ブロックに含まれるハッシュ値と、ステップ820において算出されたハッシュ値とを比較する。そして、検証部360は、両者が一致する場合に対象ブロックの検証が成功したと判定する。一方、検証部360は、両者が一致しない場合に対象ブロックの検証が失敗したと判定する。一例として、検証装置300eにおける検証部360は、復号化したブロックbに含まれるハッシュ値と、算出したブロックaのハッシュ値とを比較する。そして、検証部360は、両者が一致する場合に対象ブロックであるブロックbの検証が成功したと判定する。一方、検証部360は、両者が一致しない場合に対象ブロックであるブロックbの検証が失敗したと判定する。すなわち、検証部360は、対象ブロックに含まれるハッシュ値と算出したハッシュ値とに基づいて、対象ブロックを検証する。このようにして、検証部360は、ブロックチェーンに登録済みの上流のブロックに基づいて、対象ブロックを検証する。
In step 830, the
ステップ830においてハッシュ値が一致しない(No)と判定された場合、検証部360は、対象ブロックの検証が失敗した旨の検証結果を、出力部345、および、検証応答部365へ供給する。そして、検証装置300は処理をステップ835に進める。
If it is determined in step 830 that the hash values do not match (No), the
ステップ835において、検証装置300は、アラームを発出する。一例として、検証装置300eにおける出力部345は、アラームを発出することによって対象ブロックであるブロックbの検証が失敗したことを検証システム30の管理者へ報知する。
In step 835, the
ステップ840において、検証装置300は、異常メッセージを出力する。一例として、検証装置300eにおける出力部345は、対象ブロックの検証が失敗した場合に、自身が管理対象とする制御器200eへ、異常メッセージを出力する。これに応じて、制御器200eは、下流の制御処理装置200へのデータ送信を中止すると判定して、制御対象200fへの制御指令の送信を中止する。
In step 840, the
ステップ845において、検証装置300は、検証が失敗した旨を応答する。一例として、検証装置300eにおける検証応答部365は、対象ブロックの検証が失敗した旨の検証結果が供給された場合に、当該検証結果を、対象ブロックの供給元である検証装置300bへ供給する。このようにして、検証応答部365は、対象ブロックに対する検証結果を対象ブロックの供給元である対象検証装置300へ供給して、対象ブロックに対する検証要求に応答する。
In step 845, the
一方、ステップ830においてハッシュ値が一致する(Yes)と判定された場合、検証部360は、対象ブロックの検証が成功した旨の検証結果を、検証応答部365へ供給する。そして、検証装置300は、処理をステップ850に進める。
On the other hand, if it is determined in step 830 that the hash values match (Yes), the
ステップ850において、検証装置300は、自身が主検証装置であるか否か判定する。例えば、検証装置300eにおける検証応答部365は、自身が複数の制御処理装置200のうちの検証結果を供給すべき主検証装置であるかどうかを判定する。この際、検証応答部365は、一例として、制御パラメータに応じた制御指令を制御対象200fに与える制御器200eを管理対象とする場合に、自身が主検証装置であると判定してよい。複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システムにおいては、最終的に制御対象200fに対して制御指令を与える制御器200eが、制御システム全体における責任を担う主要装置といえる。したがって、このような制御器200eを管理対象とする検証装置300eを、検証結果を供給すべき主検証装置とするとよい。なお、検証装置300eが「検証を要求する側」になる場合においては、他の検証装置300のうちの一つの検証装置300が主検証装置として動作してよい。また、上述の説明では、検証装置300eを主検証装置として主に動作させる場合を一例として示した。しかしながら、これに限定されるものではない。複数の検証装置300のうちのいずれの検証装置300を主検証装置とするかは、事前に規定したアルゴリズムや順番等により決定されてもよい。例えば、主検証装置を輪番とすることによって、複数の検証装置300の間における処理負荷を分散させてもよい。
In step 850, the
ステップ850において主検証装置である(Yes)と判定された場合、検証装置300は、処理をステップ855に進める。
If it is determined in step 850 that it is the main verification device (Yes), the
ステップ855において、検証装置300は、対象ブロックをブロックチェーンに登録する。一例として、検証装置300eにおける検証応答部365は、自身が主検証装置であると判定した場合に、検証が成功した旨の検証結果を復号化部355へ供給する。そして、復号化部355は、ステップ815において復号化した対象ブロックを登録部310へ供給する。これに応じて、登録部310は、対象ブロックであるブロックbをブロックチェーンの末尾(ブロックaの後ろ)に登録する。このようにして、登録部310は、検証結果に応じて対象ブロックをブロックチェーンに登録する。
In step 855, the
ステップ860において、検証装置300は、検証が成功した旨を応答する。一例として、検証装置300eにおける検証応答部365は、対象ブロックの検証が成功した旨の検証結果を、対象ブロックの供給元である検証装置300bへ供給する。このようにして、検証応答部365は、対象ブロックに対する検証結果を対象ブロックの供給元である対象検証装置300へ供給して、対象ブロックに対する検証要求に応答する。このように、検証応答部365は、自身が複数の検証装置300のうちの検証結果を供給すべき主検証装置であるかどうか判定し、主検証装置である場合に、対象ブロックに対する検証結果を対象検証装置300へ供給してよい。これに応じて、「検証を要求する側」である検証装置300bにおける登録部310は、複数の検証装置300のうちの検証結果を供給すべき主検証装置からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。
In step 860, the
一方、ステップ850において主検証装置でない(No)と判定された場合、検証装置300は、処理をステップ865に進める。
On the other hand, if it is determined in step 850 that the verification device is not the main verification device (No), the
ステップ865において、検証装置300は、検証が成功した旨の検証結果を取得したか否か判定する。一例として、主検証装置ではない検証装置300a、300c、および、300dの検証結果取得部340は、主検証装置である検証装置300eから、検証が成功した旨の検証結果を取得したか否か判定する。ステップ865において、検証が成功した旨の検証結果を取得していない(No)場合、検証装置300は、処理をステップ865に戻してフローを継続する。すなわち、主検証装置ではない検証装置300a、300c、および、300dは、主検証装置である検証装置300eから検証が成功した旨の検証結果が供給されるのを待つ。一方、ステップ865において検証が成功した旨の検証結果が取得された(Yes)場合、検証結果取得部340は取得された検証結果を復号化部355へ供給する。そして、検証装置300は、処理をステップ870に進める。
In step 865, the
ステップ870において、検証装置300は、対象ブロックをブロックチェーンに登録する。一例として、主検証装置ではない検証装置300a、300c、および、300dにおける復号化部355は、検証が成功した旨の検証結果が供給された場合に、ステップ815において復号化した対象ブロックを登録部310へ供給する。これに応じて、登録部310は、対象ブロックであるブロックbをブロックチェーンの末尾(ブロックaの後ろ)に登録する。このようにして、登録部310は、検証結果に応じて対象ブロックをブロックチェーンに登録する。
In step 870, the
図9は、制御処理装置200における動作のフローの一例を示す。ここでは、制御処理装置200が第一演算装置200bである場合について一例として説明する。
Figure 9 shows an example of the flow of operations in the control processing device 200. Here, an example is described in which the control processing device 200 is the
ステップ910において、制御処理装置200は、上流からデータを受信する。一例として、第一演算装置200bにおける受信部110は、上流の制御処理装置200であるエッジデバイス200aからデータを受信する。これにあたり、エッジデバイス200aにおいては、送信すべき送信内容をハッシュ関数で処理してハッシュ値を算出している。そして、エッジデバイス200aにおいては、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名として第一演算装置200bへ送信している。第一演算装置200bにおける受信部110は、このようにしてエッジデバイス200aによって暗号化されたデータをエッジデバイス200aから受信する。受信部110は、受信したデータを復号部120へ供給する。
In step 910, the control processing device 200 receives data from upstream. As an example, the receiving
ステップ920において、制御処理装置200は、データを復号する。一例として、復号部120は、ステップ910において受信されたデータからハッシュ値の暗号文を取り出す。そして、復号部120は、エッジデバイス200aの公開鍵を用いてハッシュ値の暗号文を復号してハッシュ値を取得する。また、復号部120は、ステップ910において受信されたデータからエッジデバイス200aの送信内容を取り出す。そして、復号部120は、エッジデバイス200aの送信内容をエッジデバイス200aと同じハッシュ関数で処理してハッシュ値を算出する。復号部120は、復号したハッシュ値と算出したハッシュ値とを比較して、両者が一致している場合に、ステップ910において受信されたデータが正しい(改ざんされていない)データであると判断する。これに応じて、復号部120は、エッジデバイス200aの送信内容を処理部130へ供給する。
In step 920, the control processing device 200 decrypts the data. As an example, the
ステップ930において、制御処理装置200は、データを処理する。一例として、処理部130は、ステップ920において復号されたエッジデバイス200aの送信内容を入力データとして、データを処理する。そして、処理部130は、入力データを処理した結果である出力データを、自身が送信すべき送信内容として暗号部140へ供給する。
In step 930, the control processing device 200 processes the data. As an example, the
ステップ940において、制御処理装置200は、入出力データを提供する。一例として、処理部130は、エッジデバイス200aの送信内容である入力データ、および、自身の送信内容である出力データを、送信部150を介して、第一演算装置200bを管理対象とする検証装置300bへ提供する。
In step 940, the control processing device 200 provides input/output data. As an example, the
ステップ950において、制御処理装置200は、データを暗号化する。一例として、暗号部140は、ステップ930において処理された結果である自身が送信すべき送信内容をハッシュ関数で処理してハッシュ値を算出する。そして、暗号部140は、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名としたデータを生成する。暗号部140は、このようにして暗号化されたデータを送信部150へ供給する。
In step 950, the control processing device 200 encrypts the data. As an example, the
ステップ960において、制御処理装置200は、メッセージを取得したか否か判定する。一例として、受信部110は、第一演算装置200bを管理対象とする検証装置300bから検証結果を示すメッセージを受信したか否か判定する。ステップ960においてメッセージが取得されていない(No)と判定された場合、制御処理装置200は、処理をステップ960に戻してフローを継続する。一方、ステップ960においてメッセージが取得された(Yes)と判定された場合、受信部110は、受信されたメッセージを継続判定部160へ供給する。そして、制御処理装置200は、処理をステップ970に進める。
In step 960, the control processing device 200 determines whether or not a message has been acquired. As an example, the receiving
ステップ970において、制御処理装置200は、メッセージが、検証が成功した旨を示しているか否か判定する。一例として、継続判定部160は、ステップ960において取得されたメッセージが、検証が成功した旨を示しているか否か判定する。ステップ970において検証が成功した旨を示している(Yes)と判定された場合、継続判定部160は、下流の制御処理装置200へのデータ送信を継続すると判定して、下流の制御処理装置200へのデータ送信を許可する旨の許可通知を送信部150へ供給する。そして、制御処理装置200は、処理をステップ980に進める。
In step 970, the control processing device 200 determines whether the message indicates that the verification was successful. As an example, the
ステップ980において、制御処理装置200は、データを下流へ送信する。一例として、送信部150は、許可通知が供給されたことに応じて、ステップ950において暗号化されたデータを、下流の制御処理装置200である第二演算装置200cへ送信する。
In step 980, the control processing device 200 transmits the data downstream. As an example, in response to receiving the permission notification, the
一方、ステップ970において検証が失敗した旨を示している(No)と判定された場合、継続判定部160は、下流の制御処理装置200へのデータ送信を中止すると判定して、下流の制御処理装置200へのデータ送信を中止する旨の中止指示を送信部150へ供給する。そして、制御処理装置200は、処理をステップ990に進める。
On the other hand, if it is determined in step 970 that the verification has failed (No), the
ステップ990において、制御処理装置200は、下流へのデータ送信を中止する。一例として、送信部150は、中止指示が供給されたことに応じて、ステップ950において暗号化されたデータを、下流の制御処理装置200である第二演算装置200cへ送信することを中止する。
In
一般的なデータ取引では、公開鍵暗号化方式(PKI)とPKIをベースとしたデジタル署名とにより、データを取引する二者間においてデータの完全性(主に改ざん防止)を実現している。この場合、データを直接取引する二者間においてのみ、取引相手の改ざんを検出することができるに過ぎない。したがって、複数の装置がデータの取引に参加するシステムにおいては、直接データを取引しない装置における改ざんを検出することができない。また、一般的なデータ検証では、データの取引に参加する複数の装置のそれぞれが自身の処理ログを各自記録し、システムの管理者が監査を実施する際に複数の装置のそれぞれから処理ログを個別に収集・調査することにより、監査証跡を実現している。この場合、各装置から提供される処理ログの完全性は提供する側に依存し、監査を実施する側においては、改ざんの有無を容易に検証することができない。 In general data transactions, data integrity (mainly prevention of tampering) is achieved between two parties trading data using public key encryption (PKI) and PKI-based digital signatures. In this case, tampering by the trading partner can only be detected between two parties directly trading data. Therefore, in a system in which multiple devices participate in data transactions, tampering in devices that do not directly trade data cannot be detected. In general data verification, each of the multiple devices participating in data transactions records its own processing log, and when the system administrator performs an audit, the system administrator collects and examines the processing logs from each of the multiple devices individually, thereby achieving an audit trail. In this case, the integrity of the processing logs provided by each device depends on the provider, and the party conducting the audit cannot easily verify whether or not tampering has occurred.
また、様々なクラウドサービスの普及により、データを取引する複数の装置の少なくとも一部としてSaaSプロバイダ等の外部サービスプロバイダが用いられることが考えられる。このような外部サービスプロバイダにおいては、セキュリティポリシー、実装形式、クラウドサーバ特性、利用認証局の信頼性、および、通信路VPN形式等のセキュリティレベルが様々である。したがって、セキュリティレベルの最も低い場所への改ざん攻撃のリスクが存在し、そこがボトルネックとなってデータを取引するシステム全体としてのセキュリティレベルが低下してしまう。そこで、二者間のデジタル署名のみに依存することなく、システム全体としてデータの取引に参加する全ての装置の改ざん検知と監査証跡とを確実かつ容易に実現することが望まれる。 In addition, with the spread of various cloud services, it is conceivable that external service providers such as SaaS providers will be used as at least some of the multiple devices that trade data. Such external service providers have various security levels, such as security policies, implementation formats, cloud server characteristics, reliability of the certification authority used, and communication channel VPN formats. Therefore, there is a risk of a tampering attack on the location with the lowest security level, which becomes a bottleneck and reduces the security level of the entire system that trades data. Therefore, it is desirable to reliably and easily realize tamper detection and audit trails for all devices participating in data trading as a whole system, without relying solely on digital signatures between two parties.
そこで、本実施形態に係る検証装置300は、自身が生成した対象ブロックを、データ処理システム10における他の処理装置100をそれぞれ管理対象とする複数の検証装置300へ供給して、対象ブロックに対する検証を要求する。そして、検証装置300は、複数の検証装置300のうちの少なくとも一つの検証装置300からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。これにより、本実施形態に係る検証装置300によれば、他の検証装置300との協働により対象ブロックを検証してブロックチェーンに登録するので、検証システム30全体におけるデータの改ざんの困難性を高めることができる。これにより、本実施形態に係る検証装置300によれば、例えば、プラント機器のデータを非制御ネットワーク上に属する演算サービスを利用して処理したとしても、データ処理プロセスの各箇所でのデータの改ざんを検出し、削除且つ書き換え不能な監査証跡を各箇所で統一して残すことができる。
Therefore, the
また、本実施形態に係る検証装置300は、対象ブロックの検証が失敗した場合に、異常メッセージを出力する。これにより、本実施形態に係る検証装置300によれば、データの改ざんが疑われる場合に、検証システム30の管理者へその旨を報知するとともに、データ処理システム10におけるデータの取引を中止させることができる。したがって、本実施形態に係る検証装置300によれば、例えば、意図しない制御指令が制御対象に与えられてしまうことを防止することができる。
Furthermore, the
また、本実施形態に係る検証装置300は、対象ブロックを複数の検証装置300毎に暗号化する。これにより、本実施形態に係る検証装置300によれば、検証のために複数の検証装置300間で対象ブロックを受け渡しする場合においても、高いセキュリティレベルを維持することができる。
In addition, the
また、本実施形態に係る検証装置300は、主検証装置からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。これにより、本実施形態に係る検証装置300によれば、検証が成功した旨の検証結果を供給する検証装置300を主検証装置のみに限定することができるので、検証システム30全体としての処理負荷を軽減することができる。この際、このような主検証装置は、制御パラメータに応じた制御指令を制御対象200fに与える制御器200eを管理対象とする検証装置300eであってよい。これにより、制御システム20における主要装置である制御器200eを管理対象とする検証装置300eが代表して検証要求に応答することができる。
The
また、本実施形態に係る検証装置300は、上流のブロックに基づいて算出されたハッシュ値を対象ブロックに含めて生成する。これにより、本実施形態に係る検証装置300によれば、従来のブロックチェーンが持つ優れた改ざん耐性を維持したまま、データを検証することができる。
The
また、本実施形態に係る検証装置300は、管理対象とする対象処理装置における入力データ、および、出力データを対象ブロックに含めて生成する。これにより、本実施形態に係る検証装置300によれば、複数の処理装置100におけるいずれかの処理装置100においてデータが変換された場合であっても、いずれの段階でデータが改ざんされたかを判断することができる。したがって、本実施形態に係る検証装置300によれば、例えば、制御パラメータに問題が発生した場合であっても、原因を解析し、各処理箇所の追跡調査を実施することができる。
The
なお、上述の説明においては、検証システム30が、複数の制御処理装置200a~200eのそれぞれを管理対象とする複数の検証装置300a~300eを含む場合を一例として示した。しかしながら、検証システム30に含まれる検証装置300の数はこれに限定されるものではない。検証システム30は、複数の制御処理装置200a~200eよりも多い複数の検証装置300を含んでいてもよい。この場合、いくつかの検証装置300は、いずれの制御処理装置200をも管理対象とせずに、「検証要求に応じる側」としてのみ機能してもよい。これにより、検証システム30全体として、記録の冗長性を確保することができるので、改ざんの難易度を更に高めることができる。これに代えて、検証システム30は、複数の制御処理装置200a~200eよりも少ない複数の検証装置300を含んでいてもよい。すなわち、複数の検証装置300は、必ずしも、複数の制御処理装置200と1対1に対応して設けられていなくてもよい。
In the above description, the
また、上述の説明においては、複数の検証装置300における主検証装置のみが、検証が成功した旨の検証結果を供給する場合を一例として示した。しかしながら、これに限定されるものではない。「検証要求に応じる側」の検証装置300における複数の検証装置300(例えば、全ての検証装置300)が、検証が成功した旨の検証結果を供給してもよい。この場合、「検証を要求する側」の検証装置300においては、取得した全ての検証結果が、検証が成功した旨を示している場合に、対象ブロックに対する検証が成功したと判定してよい。すなわち、「検証を要求する側」の検証装置300においては、「検証要求に応じる側」の検証装置300から全会一致で検証が成功した旨の検証結果を取得した場合に、対象ブロックに対する検証が成功したと判定してよい。
In the above description, a case where only the main verification device among the
また、上述の説明においては、検証装置300が、エッジデバイス200a、第一演算装置200b、第二演算装置200c、制御パラメータ入力装置200d、および、制御器200eを管理対象とする場合を一例として示した。しかしながら、これに限定されるものではない。本実施形態に係る検証装置300は、ゲートウェイ装置、ファイアウォール装置、通信用ルータ、ネットワークスイッチ、スマートメータ、IoT機器、IoT機器制御用端末、ロボット、プロセス制御装置、エッジコンピュータ、および、サーバ用コンピュータ等、データを収集して他の装置へ供給する可能性のある様々な装置を管理対象としてよい。
In the above description, an example was given in which the
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。 Various embodiments of the present invention may be described with reference to flow charts and block diagrams, where a block may represent (1) a stage of a process in which an operation is performed or (2) a section of an apparatus responsible for performing an operation. Particular stages and sections may be implemented by dedicated circuitry, programmable circuitry provided with computer readable instructions stored on a computer readable medium, and/or a processor provided with computer readable instructions stored on a computer readable medium. Dedicated circuitry may include digital and/or analog hardware circuitry and may include integrated circuits (ICs) and/or discrete circuits. Programmable circuitry may include reconfigurable hardware circuitry including logical AND, logical OR, logical XOR, logical NAND, logical NOR, and other logical operations, memory elements such as flip-flops, registers, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), and the like.
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(RTM)ディスク、メモリスティック、集積回路カード等が含まれてよい。 A computer-readable medium may include any tangible device capable of storing instructions that are executed by a suitable device, such that the computer-readable medium having instructions stored thereon comprises an article of manufacture that includes instructions that can be executed to create means for performing the operations specified in the flowchart or block diagram. Examples of computer-readable media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, and the like. More specific examples of computer-readable media may include floppy disks, diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), electrically erasable programmable read-only memories (EEPROMs), static random access memories (SRAMs), compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), Blu-ray (RTM) disks, memory sticks, integrated circuit cards, and the like.
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。 The computer readable instructions may include either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, JAVA®, C++, etc., and conventional procedural programming languages such as the "C" programming language or similar programming languages.
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。 The computer-readable instructions may be provided to a processor or programmable circuit of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, either locally or over a wide area network (WAN) such as a local area network (LAN), the Internet, etc., to execute the computer-readable instructions to create means for performing the operations specified in the flowcharts or block diagrams. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc.
図10は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ9900の例を示す。コンピュータ9900にインストールされたプログラムは、コンピュータ9900に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ9900に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ9900に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU9912によって実行されてよい。
10 shows an example of a
本実施形態によるコンピュータ9900は、CPU9912、RAM9914、グラフィックコントローラ9916、およびディスプレイデバイス9918を含み、それらはホストコントローラ9910によって相互に接続されている。コンピュータ9900はまた、通信インターフェイス9922、ハードディスクドライブ9924、DVDドライブ9926、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ9920を介してホストコントローラ9910に接続されている。コンピュータはまた、ROM9930およびキーボード9942のようなレガシの入/出力ユニットを含み、それらは入/出力チップ9940を介して入/出力コントローラ9920に接続されている。
The
CPU9912は、ROM9930およびRAM9914内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ9916は、RAM9914内に提供されるフレームバッファ等またはそれ自体の中にCPU9912によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス9918上に表示されるようにする。
The
通信インターフェイス9922は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ9924は、コンピュータ9900内のCPU9912によって使用されるプログラムおよびデータを格納する。DVDドライブ9926は、プログラムまたはデータをDVD-ROM9901から読み取り、ハードディスクドライブ9924にRAM9914を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
The
ROM9930はその中に、アクティブ化時にコンピュータ9900によって実行されるブートプログラム等、および/またはコンピュータ9900のハードウェアに依存するプログラムを格納する。入/出力チップ9940はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ9920に接続してよい。
The
プログラムが、DVD-ROM9901またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ9924、RAM9914、またはROM9930にインストールされ、CPU9912によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ9900に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ9900の使用に従い情報の操作または処理を実現することによって構成されてよい。
The programs are provided by a computer-readable medium such as a DVD-
例えば、通信がコンピュータ9900および外部デバイス間で実行される場合、CPU9912は、RAM9914にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス9922に対し、通信処理を命令してよい。通信インターフェイス9922は、CPU9912の制御下、RAM9914、ハードディスクドライブ9924、DVD-ROM9901、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
For example, when communication is performed between the
また、CPU9912は、ハードディスクドライブ9924、DVDドライブ9926(DVD-ROM9901)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM9914に読み取られるようにし、RAM9914上のデータに対し様々なタイプの処理を実行してよい。CPU9912は次に、処理されたデータを外部記録媒体にライトバックする。
The
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU9912は、RAM9914から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM9914に対しライトバックする。また、CPU9912は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU9912は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
Various types of information, such as various types of programs, data, tables, and databases, may be stored in the recording medium and undergo information processing. The
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ9900上またはコンピュータ9900近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ9900に提供する。
The above-described program or software module may be stored on a computer-readable medium on the
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 The present invention has been described above using an embodiment, but the technical scope of the present invention is not limited to the scope described in the above embodiment. It is clear to those skilled in the art that various modifications and improvements can be made to the above embodiment. It is clear from the claims that forms with such modifications or improvements can also be included in the technical scope of the present invention.
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。 The order of execution of each process, such as operations, procedures, steps, and stages, in the devices, systems, programs, and methods shown in the claims, specifications, and drawings is not specifically stated as "before" or "prior to," and it should be noted that the processes may be performed in any order, unless the output of a previous process is used in a later process. Even if the operational flow in the claims, specifications, and drawings is explained using "first," "next," etc. for convenience, it does not mean that it is necessary to perform the processes in this order.
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 キーボード
10
9910
9914 RAM
9916
9940 Input/
Claims (10)
前記複数の検証装置のそれぞれは、前記複数の処理装置のうちの管理対象とする処理装置におけるデータを取得して当該データに基づくブロックの検証を要求するものであり、
前記1つの検証装置である当該検証装置は、
管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部と、
前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、前記対象データに基づいて生成するブロック生成部と、
前記対象ブロックを前記複数の検証装置のうちの他の検証装置へ供給して、前記対象ブロックに対する検証を要求する検証要求部と、
前記複数の検証装置のうちの他の少なくとも一つの検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録する登録部と
を備える、検証装置。 A verification device among a plurality of verification devices that manage each of a plurality of processing devices in a data processing system in which data is propagated or transformed via the plurality of processing devices,
each of the plurality of verification devices acquires data in a processing device to be managed among the plurality of processing devices, and requests verification of a block based on the data;
The verification device, which is the one verification device,
a data acquisition unit that acquires target data, which is data in a target processing device to be managed;
A block generation unit that generates a target block to be registered in a blockchain that records blocks based on data in each of the plurality of processing devices, based on the target data;
a verification request unit that supplies the target block to another verification device among the plurality of verification devices and requests verification of the target block;
and a registration unit that registers the target block in the blockchain in response to a verification result from at least one other verification device among the plurality of verification devices.
前記検証要求部は、前記複数の検証装置のうちの他の検証装置毎に暗号化されたそれぞれの前記対象ブロックを前記複数の検証装置のうちの他の検証装置のそれぞれへ供給する、請求項1または2に記載の検証装置。 an encryption unit that encrypts the target block for each of the plurality of verification devices;
3 . The verification device according to claim 1 , wherein the verification request unit supplies each of the target blocks encrypted for each of the other verification devices among the plurality of verification devices to each of the other verification devices among the plurality of verification devices.
前記主検証装置は、前記制御パラメータに応じた制御指令を前記制御対象に与える制御器を管理対象とする他の検証装置である、請求項4に記載の検証装置。 the data processing system is a control system that controls a control target based on control parameters generated via the plurality of processing devices;
5. The verification device according to claim 4, wherein the main verification device is another verification device that manages a controller that issues a control command to the control target according to the control parameters.
前記ブロック生成部は、前記ハッシュ値を含む前記対象ブロックを生成する、請求項1から5のいずれか一項に記載の検証装置。 A calculation unit that calculates a hash value based on an upstream block registered in the blockchain,
The verification device according to claim 1 , wherein the block generator generates the target block including the hash value.
前記ブロック生成部は、前記入力データおよび前記出力データを含む前記対象ブロックを生成する、請求項1から6の何れか一項に記載の検証装置。 the data acquisition unit acquires input data input from an upstream processing device in the target processing device and output data to be output to a downstream processing device;
The verification device according to claim 1 , wherein the block generator generates the target block including the input data and the output data.
前記ブロックチェーンに登録済みの上流のブロックに基づいて、前記他の対象ブロックを検証する検証部と、A verification unit that verifies the other target block based on an upstream block registered in the blockchain;
前記他の対象ブロックに対する検証結果を前記他の対象ブロックの供給元である対象検証装置へ供給して、前記他の対象ブロックに対する検証要求に応答する検証応答部とa verification response unit that supplies a verification result for the other target block to a target verification device that is a source of the other target block, and responds to a verification request for the other target block;
を備える請求項1から3の何れか一項に記載の検証装置。The verification device according to claim 1 , further comprising:
前記複数の検証装置のそれぞれは、前記複数の処理装置のうちの管理対象とする処理装置におけるデータを取得して当該データに基づくブロックの検証を要求するものであり、
当該検証方法は、
前記1つの検証装置が、管理対象とする対象処理装置におけるデータである対象データを取得することと、
前記1つの検証装置が、前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、前記対象データに基づいて生成することと、
前記1つの検証装置が、前記対象ブロックを前記複数の検証装置のうちの他の検証装置へ供給して、前記対象ブロックに対する検証を要求することと、
前記1つの検証装置が、前記複数の検証装置のうちの他の少なくとも一つの検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録することと
を備える、検証方法。 1. A verification method executed by one of a plurality of verification devices that manages a plurality of processing devices in a data processing system in which data is propagated or transformed via the plurality of processing devices, the method comprising:
each of the plurality of verification devices acquires data in a processing device to be managed among the plurality of processing devices, and requests verification of a block based on the data;
The verification method is as follows:
The one verification device acquires target data which is data in a target processing device to be managed;
The one verification device generates a target block to be registered in a blockchain that records blocks based on data in each of the multiple processing devices, based on the target data;
the one verification device supplies the target block to another verification device among the plurality of verification devices and requests verification of the target block;
The one verification device registers the target block in the blockchain in response to a verification result from at least one other verification device among the plurality of verification devices.
前記複数の検証装置のそれぞれは、前記複数の処理装置のうちの管理対象とする処理装置におけるデータを取得して当該データに基づくブロックの検証を要求するものであり、
当該検証プログラムは、前記コンピュータを、
管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部と、
前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、前記対象データに基づいて生成するブロック生成部と、
前記対象ブロックを前記複数の検証装置のうちの他の検証装置へ供給して、前記対象ブロックに対する検証を要求する検証要求部と、
前記複数の検証装置のうちの他の少なくとも一つの検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録する登録部と
して機能させる、検証プログラム。 A verification program executed by a computer to function as one of a plurality of verification devices that manages a plurality of processing devices in a data processing system in which data is propagated or transformed via the plurality of processing devices, the verification program comprising:
each of the plurality of verification devices acquires data in a processing device to be managed among the plurality of processing devices, and requests verification of a block based on the data;
The verification program includes:
a data acquisition unit that acquires target data, which is data in a target processing device to be managed;
A block generation unit that generates a target block to be registered in a blockchain that records blocks based on data in each of the plurality of processing devices, based on the target data;
a verification request unit that supplies the target block to another verification device among the plurality of verification devices and requests verification of the target block;
a verification program that causes the program to function as a registration unit that registers the target block in the blockchain in response to a verification result from at least one other verification device among the plurality of verification devices.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021063195A JP7615844B2 (en) | 2021-04-01 | 2021-04-01 | Verification device, verification method, and verification program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021063195A JP7615844B2 (en) | 2021-04-01 | 2021-04-01 | Verification device, verification method, and verification program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022158363A JP2022158363A (en) | 2022-10-17 |
| JP7615844B2 true JP7615844B2 (en) | 2025-01-17 |
Family
ID=83638662
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021063195A Active JP7615844B2 (en) | 2021-04-01 | 2021-04-01 | Verification device, verification method, and verification program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7615844B2 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019215715A (en) | 2018-06-13 | 2019-12-19 | 三菱重工業株式会社 | Information relaying device, remote service system, information relaying method and program |
| JP2020197873A (en) | 2019-05-31 | 2020-12-10 | 株式会社日立製作所 | Information processing system and method for controlling information processing system |
| WO2021002226A1 (en) | 2019-07-02 | 2021-01-07 | 株式会社デンソー | Supply chain management method, supply chain management program, supply chain management system, and transaction record display program |
| WO2021002284A1 (en) | 2019-07-02 | 2021-01-07 | 長瀬産業株式会社 | Management device, management system, management method, management program, and recording medium |
-
2021
- 2021-04-01 JP JP2021063195A patent/JP7615844B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2019215715A (en) | 2018-06-13 | 2019-12-19 | 三菱重工業株式会社 | Information relaying device, remote service system, information relaying method and program |
| JP2020197873A (en) | 2019-05-31 | 2020-12-10 | 株式会社日立製作所 | Information processing system and method for controlling information processing system |
| WO2021002226A1 (en) | 2019-07-02 | 2021-01-07 | 株式会社デンソー | Supply chain management method, supply chain management program, supply chain management system, and transaction record display program |
| WO2021002284A1 (en) | 2019-07-02 | 2021-01-07 | 長瀬産業株式会社 | Management device, management system, management method, management program, and recording medium |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022158363A (en) | 2022-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Suhail et al. | On the role of hash-based signatures in quantum-safe internet of things: Current solutions and future directions | |
| JP7672429B2 (en) | Cross-Network Identity Provisioning | |
| US11349637B2 (en) | Random node selection for permissioned blockchain | |
| US10489597B2 (en) | Blockchain verification of network security service | |
| JP2023504492A (en) | Efficient threshold storage of data objects | |
| CN115349244A (en) | Storage and communication environment for cryptographic labels | |
| Li et al. | A secure, reliable and low-cost distributed storage scheme based on blockchain and IPFS for firefighting IoT data | |
| TWI706658B (en) | Cryptographic calculation, method for creating working key, cryptographic service platform and equipment | |
| US10621055B2 (en) | Adaptive data recovery for clustered data devices | |
| US11356445B2 (en) | Data access interface for clustered devices | |
| US20180287801A1 (en) | Efficient device provision | |
| WO2017019201A2 (en) | Cryptographic assurances of data integrity for data crossing trust boundaries | |
| WO2023046409A1 (en) | Digital asset platform with hsm verification | |
| CN115580413B (en) | Zero-trust multi-party data fusion calculation method and device | |
| JP2023520632A (en) | Noise transactions for data protection | |
| US20200349123A1 (en) | Database mergeable ledgers | |
| CN111602372B (en) | Method and control system for controlling and/or monitoring a device | |
| CN116781359A (en) | Portal security design method using network isolation and cryptograph | |
| CN117938509A (en) | Traditional Chinese medicine production line data encryption and storage method based on HYPERLEDGER FABRIC alliance chains | |
| JP2023520634A (en) | Maintaining contextual integrity | |
| CN116529723B (en) | Automatic merging of DLT networks | |
| CN116881936A (en) | Trusted computing method and related equipment | |
| JP7607672B2 (en) | Authorized event processing in a distributed database. | |
| CN112825522A (en) | Trusted data transmission method, system, electronic equipment and storage medium | |
| Latif et al. | Hardware security modules for secure communications in the Industrial Internet of Things |
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 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241001 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241113 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241203 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241216 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7615844 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |