Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7615844B2 - Verification device, verification method, and verification program - Google Patents
[go: Go Back, main page]

JP7615844B2 - Verification device, verification method, and verification program - Google Patents

Verification device, verification method, and verification program Download PDF

Info

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
Application number
JP2021063195A
Other languages
Japanese (ja)
Other versions
JP2022158363A (en
Inventor
志 閔
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/JP7615844B2/en
Publication of JP2022158363A publication Critical patent/JP2022158363A/en
Application granted granted Critical
Publication of JP7615844B2 publication Critical patent/JP7615844B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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号
Patent Document 1 describes "an encryption control system, an encryption control method, and a program that enable enhanced security."
[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.

本実施形態に係る検証技術が適用されてよいデータ処理システム10の一例を示す。An example of a data processing system 10 to which the verification technique according to the present embodiment may be applied is shown. 処理装置100のブロック図の一例を示す。1 shows an example of a block diagram of a processing device 100. 本実施形態に係る検証技術が適用されてよいデータ処理システム10の具体例としての制御システム20を示す。A control system 20 is shown as a specific example of a data processing system 10 to which the verification technique according to the present embodiment may be applied. 本実施形態に係る検証システム30の一例を示す。1 shows an example of a verification system 30 according to the present embodiment. 本実施形態に係る検証システム30に登録されるブロックチェーンの一例を示す。An example of a blockchain registered in the verification system 30 according to this embodiment is shown. 本実施形態に係る検証装置300のブロック図の一例を示す。1 shows an example of a block diagram of a verification device 300 according to the present embodiment. 検証を要求する側の検証装置300における動作のフローの一例を示す。13 shows an example of the flow of operations in the verification device 300 requesting verification. 検証要求に応じる側の検証装置300における動作のフローの一例を示す。13 shows an example of the flow of operations in the verification device 300 responding to a verification request. 処理装置100における動作のフローの一例を示す。1 shows an example of an operational flow in the processing device 100. 本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ9900の例を示す。An example of a computer 9900 is shown in which aspects of the present invention may be embodied in whole or in part.

以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 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 data processing system 10 to which the verification technique according to this embodiment may be applied. In the data processing system 10, various data are traded between various devices. In this figure, as an example, a case is shown in which multiple processing devices 100a to 100f (collectively referred to as "processing devices 100") are connected in a ring shape in the data processing system 10, and data is propagated in a loop shape between the multiple processing devices 100 (for example, processing device 100a → 100b → 100c → 100d → 100e → 100f → 100a → ...).

ここで、ループの一つ前を「上流」、ループの一つ後を「下流」と定義することとする。すなわち、例えば処理装置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 processing device 100b, processing device 100a corresponds to the upstream processing device 100, and processing device 100c corresponds to the downstream processing device 100. At least one of such multiple processing devices 100 may convert input data by processing the input data input from the upstream processing device 100, and output the converted data as output data to the downstream processing device 100. The verification technique according to this embodiment may be applied to a data processing system 10 in which data is propagated or converted via such multiple processing devices 100.

図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 processing device 100. The processing device 100 trades data with the upstream processing device 100 and with the downstream processing device 100, for example, using a public key cryptosystem (PKI: Public Key Infrastructure). Here, in a case where two parties trade data using a public key cryptosystem, the data receiver has obtained the public key of the data sender, i.e., the upstream processing device 100, in advance using a trusted certificate authority or the like. From here on, an example will be described in which the processing device 100 is processing device 100b. Processing device 100b has obtained the public key of processing device 100a, the upstream processing device 100, in advance.

処理装置100は、受信部110と、復号部120と、処理部130と、暗号部140と、送信部150と、継続判定部160とを備える。なお、これらブロックは、それぞれ機能的に分離された機能ブロックであって、実際のデバイス構成とは必ずしも一致していなくてもよい。すなわち、本図において、1つのブロックとして示されているからといって、それが必ずしも1つのデバイスにより構成されていなくてもよい。また、本図において、別々のブロックとして示されているからといって、それらが必ずしも別々のデバイスにより構成されていなくてもよい。 The processing device 100 comprises a receiving unit 110, a decrypting unit 120, a processing unit 130, an encryption unit 140, a transmitting unit 150, and a continuation determination unit 160. Note that these blocks are functionally separated functional blocks, and do not necessarily correspond to the actual device configuration. In other words, just because they are shown as one block in this diagram, it does not necessarily mean that they are configured by one device. Also, just because they are shown as separate blocks in this diagram, it does not necessarily mean that they are configured by separate devices.

受信部110は、上流の処理装置100である処理装置100aからデータを受信する。これにあたり、処理装置100aにおいては、送信すべき送信内容をハッシュ関数で処理してハッシュ値を算出している。そして、処理装置100aにおいては、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名として処理装置100bへ送信している。処理装置100bの受信部110は、このようにして処理装置100aによって暗号化されたデータを処理装置100aから受信する。受信部110は、受信したデータを復号部120へ供給する。 The receiving unit 110 receives data from the processing device 100a, which is the upstream processing device 100. In doing so, the processing device 100a processes the content to be transmitted using a hash function to calculate a hash value. The processing device 100a then transmits the ciphertext of the hash value, which is the hash value encrypted with its own private key, and the transmission content as a signature to the processing device 100b. The receiving unit 110 of the processing device 100b receives the data encrypted by the processing device 100a in this manner from the processing device 100a. The receiving unit 110 supplies the received data to the decryption unit 120.

また、受信部110は、後述する検証装置からのメッセージを受信する。受信部110は、受信したメッセージを継続判定部160へ供給する。 The receiving unit 110 also receives messages from the verification device, which will be described later. The receiving unit 110 supplies the received messages to the continuation determination unit 160.

復号部120は、データを復号する。復号部120は、受信部110から供給されたデータからハッシュ値の暗号文を取り出す。そして、復号部120は、処理装置100aの公開鍵を用いてハッシュ値の暗号文を復号してハッシュ値を取得する。また、復号部120は、受信部110から供給されたデータから処理装置100aの送信内容を取り出す。そして、復号部120は、処理装置100aの送信内容を処理装置100aと同じハッシュ関数で処理してハッシュ値を算出する。復号部120は、復号したハッシュ値と算出したハッシュ値とを比較して、両者が一致している場合に、受信部110から供給されたデータが正しい(改ざんされていない)データであると判断する。これに応じて、復号部120は処理装置100aの送信内容を処理部130へ供給する。 The decryption unit 120 decrypts the data. The decryption unit 120 extracts the encrypted hash value from the data supplied from the receiving unit 110. The decryption unit 120 then uses the public key of the processing device 100a to decrypt the encrypted hash value and obtain a hash value. The decryption unit 120 also extracts the transmission content of the processing device 100a from the data supplied from the receiving unit 110. The decryption unit 120 then processes the transmission content of the processing device 100a with the same hash function as the processing device 100a to calculate a hash value. The decryption unit 120 compares the decrypted hash value with the calculated hash value, and if the two match, determines that the data supplied from the receiving unit 110 is correct (not tampered with). In response, the decryption unit 120 supplies the transmission content of the processing device 100a to the processing unit 130.

処理部130は、データを処理する。処理部130は、復号部120から供給された処理装置100aの送信内容を入力データとして、データを処理する。そして、処理部130は、入力データを処理した結果である出力データを、自身が送信すべき送信内容として暗号部140へ供給する。 The processing unit 130 processes the data. The processing unit 130 processes the data using the transmission contents of the processing device 100a supplied from the decryption unit 120 as input data. The processing unit 130 then supplies the output data, which is the result of processing the input data, to the encryption unit 140 as the transmission contents to be transmitted by the processing unit 130.

暗号部140は、データを暗号化する。暗号部140は、処理部130から供給された送信内容をハッシュ関数で処理してハッシュ値を算出する。そして、暗号部140は、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名としたデータを生成する。暗号部140は、このようにして暗号化されたデータを送信部150へ供給する。 The encryption unit 140 encrypts the data. The encryption unit 140 processes the transmission content supplied from the processing unit 130 with a hash function to calculate a hash value. The encryption unit 140 then generates data in which the transmission content and the ciphertext of the hash value, which is the hash value encrypted with the encryption unit's own private key, are used as a signature. The encryption unit 140 supplies the data encrypted in this way to the transmission unit 150.

送信部150は、下流の処理装置100である処理装置100cへデータを送信する。後述する継続判定部160から許可通知が供給された場合に、送信部150は、暗号部140によって暗号化されたデータを、処理装置100cへ送信する。一方、継続判定部160から中止指示が供給された場合に、送信部150は、処理装置100cへのデータ送信を中止する。 The transmission unit 150 transmits data to the processing device 100c, which is the downstream processing device 100. When a permission notification is provided from the continuation determination unit 160 described below, the transmission unit 150 transmits data encrypted by the encryption unit 140 to the processing device 100c. On the other hand, when a stop instruction is provided from the continuation determination unit 160, the transmission unit 150 stops transmitting data to the processing device 100c.

継続判定部160は、データの取引の継続を判定する。継続判定部160は、受信部110から供給された検証装置からのメッセージに応じて、下流の処理装置100へのデータ送信を継続するか否か判定する。例えば、検証が成功した旨のメッセージが供給された場合に、継続判定部160は、下流の処理装置100へのデータ送信を継続すると判定する。そして、継続判定部160は、送信を許可する旨の許可通知を送信部150へ供給する。これに応じて、送信部150は、処理装置100cへ暗号化されたデータを送信する。一方、異常メッセージが供給された場合に、継続判定部160は、下流の処理装置100へのデータ送信を中止すると判定する。そして、継続判定部160は、送信を中止する旨の中止指示を送信部150へ供給する。これに応じて、送信部150は、処理装置100cへのデータ送信を中止する。 The continuation determination unit 160 determines whether to continue the data transaction. The continuation determination unit 160 determines whether to continue data transmission to the downstream processing device 100 according to a message from the verification device supplied from the receiving unit 110. For example, when a message indicating that the verification was successful is supplied, the continuation determination unit 160 determines to continue data transmission to the downstream processing device 100. Then, the continuation determination unit 160 supplies a permission notification to the transmitting unit 150 to permit transmission. In response, the transmitting unit 150 transmits encrypted data to the processing device 100c. On the other hand, when an abnormality message is supplied, the continuation determination unit 160 determines to stop data transmission to the downstream processing device 100. Then, the continuation determination unit 160 supplies a stop instruction to the transmitting unit 150 to stop transmission. In response, the transmitting unit 150 stops data transmission to the processing device 100c.

図3は、本実施形態に係る検証技術が適用されてよいデータ処理システム10の具体例としての制御システム20を示す。これより先、データ処理システム10が、複数の制御処理装置200を経由して生成される制御パラメータに基づいて制御対象を制御する制御システム20である場合を一例として説明する。しかしながら、これに限定されるものではない。本実施形態に係る検証技術は、上述のとおり、制御システム20とは異なる様々なデータ処理システム10に適用されてよい。 Figure 3 shows a control system 20 as a specific example of a data processing system 10 to which the verification technique according to this embodiment may be applied. From here on, a case will be described as an example in which the data processing system 10 is a control system 20 that controls a control target based on control parameters generated via multiple control processing devices 200. However, this is not limited to this. As described above, the verification technique according to this embodiment may be applied to various data processing systems 10 that are different from the control system 20.

本図に示される制御システム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 control system 20 shown in this figure, the edge device 200a is used as the processing device 100a in the data processing system 10 in FIG. 1, the first calculation device 200b is used as the processing device 100b, the second calculation device 200c is used as the processing device 100c, the control parameter input device 200d is used as the processing device 100d, the controller 200e is used as the processing device 100e, and the control target 200f is used as the processing device 100f. Here, the edge device 200a, the first calculation device 200b, the second calculation device 200c, the control parameter input device 200d, and the controller 200e are collectively referred to as the "control processing device 200". Note that the configuration of the control processing device 200 is the same as that of the processing device 100 except for the configuration specific to each control processing device 200, so a description thereof will be omitted here.

制御システム20において、エッジデバイス200a、制御パラメータ入力装置200d、制御器200e、および、制御対象200fは、例えば、プラントを制御する制御ネットワークに属している。一方、第一演算装置200bおよび第二演算装置200cは、制御ネットワークの外部である、例えば、インターネット等の非制御ネットワークに属している。 In the control system 20, the edge device 200a, the control parameter input device 200d, the controller 200e, and the controlled object 200f belong to a control network that controls, for example, a plant. On the other hand, the first calculation device 200b and the second calculation device 200c belong to a non-control network, such as the Internet, that is outside the control network.

ここで、このようなプラントとしては、化学やバイオ等の工業プラントの他、ガス田や油田等の井戸元やその周辺を管理制御するプラント、水力・火力・原子力等の発電を管理制御するプラント、太陽光や風力等の環境発電を管理制御するプラント、上下水やダム等を管理制御するプラント等が挙げられる。 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 edge device 200a collects status data (e.g., measurement data from multiple sensors installed in the plant) from the controlled object 200f. The edge device 200a then cleanses the status data and supplies only the necessary data to the non-controlled network (e.g., the first computing device 200b).

第一演算装置200bは、非制御ネットワークに属している。第一演算装置200bは、例えば、SaaS(Software as a Service)プロバイダ等であってよい。第一演算装置200bは、プラントにおける状態データをエッジデバイス200aから取得する。そして、第一演算装置200bは、状態データに基づいて、制御対象200fを制御するための制御パラメータに係る第一の制御データを生成する。第一演算装置200bは、生成した第一の制御データを第二演算装置200cへ供給する。 The first arithmetic device 200b belongs to a non-control network. The first arithmetic device 200b may be, for example, a SaaS (Software as a Service) provider. The first arithmetic device 200b acquires status data of the plant from the edge device 200a. Then, based on the status data, the first arithmetic device 200b generates first control data related to control parameters for controlling the control target 200f. The first arithmetic device 200b supplies the generated first control data to the second arithmetic device 200c.

第二演算装置200cは、第一演算装置200bと同様、非制御ネットワークに属しており、例えば、SaaSプロバイダ等であってよい。第二演算装置200cは、第一の制御データを第一演算装置200bから取得する。そして、第二演算装置200cは、第一の制御データに基づいて、制御対象200fを制御するための制御パラメータに係る第二の制御データを生成する。第二演算装置200cは、生成した第二の制御データを制御パラメータ入力装置200dへ供給する。 The second computing device 200c, like the first computing device 200b, belongs to a non-controlled network and may be, for example, a SaaS provider. The second computing device 200c acquires first control data from the first computing device 200b. Then, based on the first control data, the second computing device 200c generates second control data related to control parameters for controlling the control target 200f. The second computing device 200c supplies the generated second control data to the control parameter input device 200d.

制御パラメータ入力装置200dは、第二の制御データを第二演算装置200cから取得する。そして、制御パラメータ入力装置200dは、第二の制御データに基づく制御パラメータを制御器200eへ供給する。 The control parameter input device 200d acquires the second control data from the second calculation device 200c. Then, the control parameter input device 200d supplies the control parameters based on the second control data to the controller 200e.

制御器200eは、制御対象200fを制御する。制御器200eは、例えば、分散制御システム(DCS:Distributed Control System)等であってよい。制御器200eは、制御パラメータを制御パラメータ入力装置200dから取得する。そして、制御器200eは、制御パラメータに基づく制御指令を制御対象200fへ与える。 The controller 200e controls the control object 200f. The controller 200e may be, for example, a distributed control system (DCS). The controller 200e acquires control parameters from the control parameter input device 200d. The controller 200e then issues a control command based on the control parameters to the control object 200f.

制御対象200fは、制御の対象となる機器および装置等である。例えば、制御対象200fは、プラントのプロセスにおける圧力、温度、pH、速度、および、流量等の物理量を制御するバルブ、ポンプ、ヒータ、ファン、モータ、および、スイッチ等のアクチュエータを含んでいてよい。制御対象200fは、制御器200eからの制御指令を受けてアクチュエータを制御したことに応じて、プラントの状態データをエッジデバイス200aへ供給する。 The controlled object 200f is equipment and devices that are the subject of control. For example, the controlled object 200f may include actuators such as valves, pumps, heaters, fans, motors, and switches that control physical quantities such as pressure, temperature, pH, speed, and flow rate in the plant process. The controlled object 200f supplies plant status data to the edge device 200a in response to controlling the actuators in response to control commands from the controller 200e.

本実施形態に係る検証技術は、一例として、このような複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20に適用されてよい。 The verification technology according to this embodiment may be applied, as an example, to a control system 20 that controls a control target 200f based on control parameters generated via such multiple control processing devices 200a to 200e.

図4は、本実施形態に係る検証システム30の一例を示す。本図においては、図3における制御システム20に本実施形態に係る検証技術を適用させた場合を一例として示している。しかしながら、これに限定されるものではない。本実施形態に係る検証技術は、上述のとおり、複数の処理装置100を経由してデータが伝搬または変換される様々なデータ処理システム10に適用されてよい。 Figure 4 shows an example of a verification system 30 according to this embodiment. This figure shows an example in which the verification technique according to this embodiment is applied to the control system 20 in Figure 3. However, this is not limited to this. As described above, the verification technique according to this embodiment may be applied to various data processing systems 10 in which data is propagated or transformed via multiple processing devices 100.

本図に示されるように、本実施形態に係る検証システム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 verification system 30 according to this embodiment includes multiple verification devices 300a to 300e (collectively referred to as "verification devices 300"). Here, the verification device 300a manages the edge device 200a, the verification device 300b manages the first calculation device 200b, the verification device 300c manages the second calculation device 200c, the verification device 300d manages the control parameter input device 200d, and the verification device 300e manages the controller 200e. In this way, the verification system 30 according to this embodiment may include multiple verification devices 300a to 300e, each of which manages multiple control processing devices 200a to 200e. Such multiple verification devices 300 are connected to each other so that they can communicate with each other via a network.

図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 verification system 30 according to this embodiment. This figure shows that blocks a, b, c, and d are registered in chronological order in a chain. Here, for example, block a is a block based on data in an edge device 200a managed by the verification device 300a, block b is a block based on data in a first calculation device 200b managed by the verification device 300b, block c is a block based on data in a second calculation device 200c managed by the verification device 300c, and block d is a block based on data in a control parameter input device 200d managed by the verification device 300d.

例えば、ブロック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 arithmetic device 200b. Similarly, block c includes the hash value of block b, which is an upstream block, and the input data and output data of the second arithmetic device 200c. Similarly, block d includes the hash value of block c, which is an upstream block, and the input data and output data of the control parameter input device 200d. In this way, in a blockchain, in addition to the input/output data of each of the multiple control processing devices 200, each block includes a hash value based on the contents of the block generated one block before, and these blocks are recorded in chronological order. In such a blockchain, if an attempt is made to tamper with data in a block registered in the past, the hash value calculated from the tampered block will be different from the previous one, so the hash values in all subsequent blocks must also be changed. For this reason, it can be said that the blockchain has a data structure that is highly resistant to tampering. The verification technique according to this embodiment may verify data registered in such a blockchain.

図6は、本実施形態に係る検証装置300のブロック図の一例を示す。本実施形態に係る検証装置300は、制御システム20において複数の制御処理装置200を経由してデータが伝搬または変換されていくことに応じて、「検証を要求する側」と「検証要求に応じる側」とに役割を順次変えながら、他の検証装置300と協働して制御システム20全体におけるデータの検証を行う。これについて、詳細に説明する。 Figure 6 shows an example of a block diagram of a verification device 300 according to this embodiment. The verification device 300 according to this embodiment cooperates with other verification devices 300 to verify data in the entire control system 20, sequentially changing its role between "the side requesting verification" and "the side responding to the verification request" as data is propagated or converted via multiple control processing devices 200 in the control system 20. This will be described in detail.

検証装置300は、PC(パーソナルコンピュータ)、タブレット型コンピュータ、スマートフォン、ワークステーション、サーバコンピュータ、または汎用コンピュータ等のコンピュータであってよく、複数のコンピュータが接続されたコンピュータシステムであってもよい。このようなコンピュータシステムもまた広義のコンピュータである。また、検証装置300は、コンピュータ内で1または複数実行可能な仮想コンピュータ環境によって実装されてもよい。これに代えて、検証装置300は、データの検証用に設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。また、検証装置300がインターネットに接続可能な場合、検証装置300は、クラウドコンピューティングにより実現されてもよい。 The verification device 300 may be a computer such as a PC (personal computer), a tablet computer, a smartphone, a workstation, a server computer, or a general-purpose computer, or may be a computer system to which multiple computers are connected. Such a computer system is also a computer in the broad sense. The verification device 300 may be implemented by a virtual computer environment in which one or more programs can be executed within a computer. Alternatively, the verification device 300 may be a dedicated computer designed for verifying data, or may be dedicated hardware realized by a dedicated circuit. Furthermore, if the verification device 300 can be connected to the Internet, the verification device 300 may be realized by cloud computing.

また、検証装置300は、検証プログラムを既存のコンピュータが実行することにより、既存のコンピュータが本実施形態に係る検証機能を実行可能なように拡張されたものであってもよい。特に、検証装置300は、制御システム20に含まれる複数の制御処理装置200にそれぞれアドオンされたものであってもよい。 The verification device 300 may also be an extension of an existing computer so that the existing computer can execute the verification function according to this embodiment by executing a verification program. In particular, the verification device 300 may be an add-on to each of the multiple control processing devices 200 included in the control system 20.

検証装置300は、登録部310と、データ取得部315と、算出部320と、ブロック生成部325と、暗号化部330と、検証要求部335と、検証結果取得部340と、出力部345と、ブロック取得部350と、復号化部355と、検証部360と、検証応答部365とを備える。なお、これらブロックは、それぞれ機能的に分離された機能ブロックであって、実際のデバイス構成とは必ずしも一致していなくてもよい。すなわち、本図において、1つのブロックとして示されているからといって、それが必ずしも1つのデバイスにより構成されていなくてもよい。また、本図において、別々のブロックとして示されているからといって、それらが必ずしも別々のデバイスにより構成されていなくてもよい。 The verification device 300 includes a registration unit 310, a data acquisition unit 315, a calculation unit 320, a block generation unit 325, an encryption unit 330, a verification request unit 335, a verification result acquisition unit 340, an output unit 345, a block acquisition unit 350, a decryption unit 355, a verification unit 360, and a verification response unit 365. Note that these blocks are functionally separated functional blocks, and do not necessarily correspond to the actual device configuration. In other words, just because they are shown as one block in this diagram, it does not necessarily mean that they are configured by one device. Also, just because they are shown as separate blocks in this diagram, they do not necessarily mean that they are configured by separate devices.

ここで、上記ブロックのうち、データ取得部315と、ブロック生成部325と、暗号化部330と、検証要求部335は、主に、「検証を要求する側」の機能を提供する。一方、上記ブロックのうち、ブロック取得部350と、復号化部355と、検証部360と、検証応答部365は、主に、「検証要求に応じる側」の機能を提供する。そして、上記ブロックのうち、登録部310と、算出部320と、検証結果取得部340と、出力部345は、「検証を要求する側」および「検証要求に応じる側」の両者の機能を提供する。まず初めに、「検証を要求する側」の検証装置300における機能ブロックついて説明する。 Of the above blocks, the data acquisition unit 315, block generation unit 325, encryption unit 330, and verification request unit 335 mainly provide functions of the "side requesting verification." On the other hand, of the above blocks, the block acquisition unit 350, decryption unit 355, verification unit 360, and verification response unit 365 mainly provide functions of the "side responding to a verification request." And, of the above blocks, the registration unit 310, calculation unit 320, verification result acquisition unit 340, and output unit 345 provide functions of both the "side requesting verification" and the "side responding to a verification request." First, the functional blocks in the verification device 300 of the "side requesting verification" will be described.

登録部310は、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックをブロックチェーンに登録して記録する。また、登録部310は、後述する検証結果に応じて、対象ブロックをブロックチェーンに登録する。 The registration unit 310 registers and records blocks based on data in each of the multiple control processing devices 200 in the blockchain. The registration unit 310 also registers the target block in the blockchain according to the verification result described below.

データ取得部315は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、管理対象とする対象処理装置100におけるデータである対象データを取得する。図4における検証装置300bを一例とすると、データ取得部315は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、管理対象とする第一演算装置200bにおけるデータである対象データを取得する。例えば、データ取得部315は、第一演算装置200bにおける入力データおよび出力データを対象データとして、ネットワークを介して第一演算装置200bから取得してよい。しかしながら、これに限定されるものではない。データ取得部315は、このような対象データを、オペレータを介して取得してもよいし、各種メモリデバイス等を介して取得してもよい。データ取得部315は、取得した対象データをブロック生成部325へ供給する。 In a data processing system 10 in which data is propagated or converted via multiple processing devices 100, the data acquisition unit 315 acquires target data, which is data in the target processing device 100 to be managed. Taking the verification device 300b in FIG. 4 as an example, the data acquisition unit 315 acquires target data, which is data in the first arithmetic device 200b to be managed, in a control system 20 that controls a control target 200f based on control parameters generated via multiple control processing devices 200a to 200e. For example, the data acquisition unit 315 may acquire input data and output data in the first arithmetic device 200b as target data from the first arithmetic device 200b via a network. However, this is not limited to this. The data acquisition unit 315 may acquire such target data via an operator or via various memory devices, etc. The data acquisition unit 315 supplies the acquired target data to the block generation unit 325.

算出部320は、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。「検証を要求する側」のフローにおいては、算出部320は、算出したハッシュ値をブロック生成部325へ供給する。 The calculation unit 320 calculates a hash value based on an upstream block that has already been registered in the blockchain. In the flow of the "party requesting verification," the calculation unit 320 supplies the calculated hash value to the block generation unit 325.

ブロック生成部325は、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、対象データに基づいて生成する。例えば、ブロック生成部325は、データ取得部315から供給された対象データと、算出部320から供給されたハッシュ値とを含む対象ブロックを生成する。ブロック生成部325は、生成した対象ブロックを暗号化部330へ供給する。また、ブロック生成部325は、生成した対象ブロックを登録部310へ供給する。 The block generation unit 325 generates a target block to be registered in a blockchain that records blocks based on data in each of the multiple control processing devices 200, based on the target data. For example, the block generation unit 325 generates a target block that includes the target data supplied from the data acquisition unit 315 and the hash value supplied from the calculation unit 320. The block generation unit 325 supplies the generated target block to the encryption unit 330. The block generation unit 325 also supplies the generated target block to the registration unit 310.

暗号化部330は、対象ブロックを複数の検証装置300毎に暗号化する。ここで、「検証要求に応じる側」の全ての検証装置300は、「検証を要求する側」の検証装置300における公開鍵を、信頼性のある認証局等を利用してそれぞれ事前に入手しているものとする。なお、「検証要求に応じる側」の一の検証装置300が入手済みの公開鍵は、「検証要求に応じる側」の他の検証装置300が入手済みの公開鍵とそれぞれ異なっていてよい。すなわち、「検証要求に応じる側」の各検証装置300は、「検証を要求する側」の検証装置300における異なる公開鍵をそれぞれ入手していてよい。暗号化部330は、「検証要求に応じる側」の各検証装置300に提供済みのそれぞれの公開鍵に対応するそれぞれの秘密鍵を使用して、対象ブロックを暗号化する。暗号化部330は、暗号化した対象ブロックを検証要求部335へ供給する。 The encryption unit 330 encrypts the target block for each of the multiple verification devices 300. Here, it is assumed that all of the verification devices 300 on the "side responding to the verification request" have previously obtained the public key of the verification device 300 on the "side requesting verification" using a trusted certificate authority or the like. The public key already obtained by one of the verification devices 300 on the "side responding to the verification request" may be different from the public key already obtained by the other verification devices 300 on the "side responding to the verification request". In other words, each of the verification devices 300 on the "side responding to the verification request" may have obtained a different public key of the verification device 300 on the "side requesting verification". The encryption unit 330 encrypts the target block using each private key corresponding to each public key already provided to each of the verification devices 300 on the "side responding to the verification request". The encryption unit 330 supplies the encrypted target block to the verification request unit 335.

検証要求部335は、対象ブロックを、複数の制御処理装置200をそれぞれ管理対象とする複数の検証装置300へ供給して、対象ブロックに対する検証を要求する。この際、例えば、検証要求部335は、複数の検証装置300毎に暗号化されたそれぞれの対象ブロックを複数の検証装置300のそれぞれへ供給してよい。 The verification request unit 335 supplies the target block to a plurality of verification devices 300 that each manage a plurality of control processing devices 200, and requests verification of the target block. At this time, for example, the verification request unit 335 may supply each of the target blocks encrypted for each of the plurality of verification devices 300 to each of the plurality of verification devices 300.

検証結果取得部340は、複数の検証装置300のうちの少なくとも一つの検証装置300から対象ブロックに対する検証結果を取得する。例えば、検証結果取得部340は、対象ブロックに対する検証結果を、ネットワークを介して少なくとも一つの検証装置300から取得してよい。しかしながら、これに限定されるものではない。検証結果取得部340は、このような検証結果を、オペレータを介して取得してもよいし、各種メモリデバイス等を介して取得してもよい。「検証を要求する側」のフローにおいては、検証結果取得部340は、取得した検証結果をブロック生成部325、および、出力部345へ供給する。 The verification result acquisition unit 340 acquires the verification results for the target block from at least one of the multiple verification devices 300. For example, the verification result acquisition unit 340 may acquire the verification results for the target block from at least one of the verification devices 300 via a network. However, this is not limited to this. The verification result acquisition unit 340 may acquire such verification results via an operator, or via various memory devices, etc. In the flow of the "side requesting verification," the verification result acquisition unit 340 supplies the acquired verification results to the block generation unit 325 and the output unit 345.

出力部345は、検証結果に応じた出力をする。「検証を要求する側」のフローにおいては、出力部345は、例えば、検証が成功した旨の検証結果が取得された場合に、管理対象の制御処理装置200(例えば、検証装置300bの場合は、第一演算装置200b)へ、検証が成功した旨のメッセージを出力する。一方、出力部345は、対象ブロックの検証が失敗した旨の検証結果が取得された場合に、異常メッセージを出力する。この際、出力部345は、例えば、アラームを発出することによって対象ブロックの検証が失敗したことを検証システム30の管理者へ報知してよい。また、出力部345は、管理対象の制御処理装置200へ、検証が失敗した旨のメッセージを出力してよい。しかしながら、これに限定されるものではない。出力部345は、対象ブロックに対する検証結果を、モニタに表示することによって出力してもよいし、プリントアウトすることによって出力してもよいし、他の装置へ送信することによって出力してもよい。 The output unit 345 outputs according to the verification result. In the flow of the "side requesting verification", for example, when a verification result indicating that the verification is successful is obtained, the output unit 345 outputs a message indicating that the verification is successful to the control processing device 200 under management (for example, in the case of the verification device 300b, the first arithmetic device 200b). On the other hand, when a verification result indicating that the verification of the target block has failed is obtained, the output unit 345 outputs an abnormality message. In this case, the output unit 345 may, for example, notify the administrator of the verification system 30 that the verification of the target block has failed by issuing an alarm. The output unit 345 may also output a message indicating that the verification has failed to the control processing device 200 under management. However, this is not limited to this. The output unit 345 may output the verification result for the target block by displaying it on a monitor, by printing it out, or by transmitting it to another device.

ここまで、「検証を要求する側」の検証装置300における機能ブロックついて説明した。続いて、「検証要求に応じる側」の検証装置300における機能ブロックについて説明する。なお、上述のとおり、登録部310と、算出部320と、検証結果取得部340と、出力部345は、「検証を要求する側」および「検証要求に応じる側」の両者の機能を提供する。 So far, we have explained the functional blocks in the verification device 300 on the "side requesting verification". Next, we will explain the functional blocks in the verification device 300 on the "side responding to the verification request". As mentioned above, the registration unit 310, calculation unit 320, verification result acquisition unit 340, and output unit 345 provide the functions of both the "side requesting verification" and the "side responding to the verification request".

登録部310は、上述のとおり、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックをブロックチェーンに登録して記録する。また、登録部310は、後述する検証結果に応じて、対象ブロックをブロックチェーンに登録する。 As described above, the registration unit 310 registers and records blocks based on the data in each of the multiple control processing devices 200 in the blockchain. In addition, the registration unit 310 registers the target block in the blockchain according to the verification result described below.

ブロック取得部350は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、複数の処理装置100のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得する。図4における検証装置300eを一例とすると、ブロック取得部350は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、例えば、検証対象となる第一演算装置200bにおける対象データに基づく対象ブロックを、第一演算装置200bを管理対象とする検証装置300bから取得する。なお、このような対象ブロックは、上述のとおり、検証対象となる第一演算装置200bにおける対象データと、上流のブロックであるブロックaのハッシュ値とを含むものである。ブロック取得部350は、このような対象ブロックを、例えば、ネットワークを介して検証装置300bから取得してよい。しかしながら、これに限定されるものではない。ブロック取得部350は、このような対象ブロックを、オペレータを介して取得してもよいし、各種メモリデバイス等を介して取得してもよい。ブロック取得部350は、取得した対象ブロックを復号化部355へ供給する。 In a data processing system 10 in which data is propagated or transformed via a plurality of processing devices 100, the block acquisition unit 350 acquires a target block to be registered in a blockchain that records blocks based on data in each of the plurality of processing devices 100. Taking the verification device 300e in FIG. 4 as an example, the block acquisition unit 350 acquires, for example, a target block based on target data in the first arithmetic device 200b to be verified from the verification device 300b that manages the first arithmetic device 200b in the control system 20 that controls the control target 200f based on control parameters generated via a plurality of control processing devices 200a to 200e. Note that such a target block includes the target data in the first arithmetic device 200b to be verified and the hash value of block a, which is an upstream block, as described above. The block acquisition unit 350 may acquire such a target block from the verification device 300b, for example, via a network. However, this is not limited to this. The block acquisition unit 350 may acquire such a target block via an operator or via various memory devices, etc. The block acquisition unit 350 supplies the acquired target block to the decoding unit 355.

復号化部355は、対象ブロックを、対象ブロックの供給元である対象検証装置300に応じて復号化する。ここで、「検証要求に応じる側」の検証装置300は、「検証を要求する側」の全ての検証装置300における公開鍵を、信頼性のある認証局等を利用してそれぞれ事前に入手しているものとする。復号化部355は、対象ブロックの供給元である対象検証装置300の公開鍵を用いて、対象ブロックを復号化する。復号化部355は、復号化した対象ブロックを検証部360へ供給する。また、復号化部355は、復号化した対象ブロックを登録部310へ供給する。 The decryption unit 355 decrypts the target block according to the target verification device 300 that supplied the target block. Here, it is assumed that the verification device 300 that "responds to the verification request" has obtained the public keys of all the verification devices 300 that "request verification" in advance, using a trusted certificate authority or the like. The decryption unit 355 decrypts the target block using the public key of the target verification device 300 that supplied the target block. The decryption unit 355 supplies the decrypted target block to the verification unit 360. The decryption unit 355 also supplies the decrypted target block to the registration unit 310.

算出部320は、上述のとおり、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。「検証要求に応じる側」のフローにおいては、算出部320は、算出したハッシュ値を検証部360へ供給する。 As described above, the calculation unit 320 calculates a hash value based on an upstream block that has already been registered in the blockchain. In the flow of the "side that responds to a verification request," the calculation unit 320 supplies the calculated hash value to the verification unit 360.

検証部360は、ブロックチェーンに登録済みの上流のブロックに基づいて、対象ブロックを検証する。例えば、検証部360は、対象ブロックに含まれるハッシュ値と算出したハッシュ値とに基づいて、対象ブロックを検証する。検証部360は、対象ブロックに対する検証結果を、出力部345、および、検証応答部365へ供給する。 The verification unit 360 verifies the target block based on the upstream block that has already been registered in the blockchain. For example, the verification unit 360 verifies the target block based on the hash value included in the target block and the calculated hash value. The verification unit 360 supplies the verification result for the target block to the output unit 345 and the verification response unit 365.

検証応答部365は、対象ブロックに対する検証結果を対象ブロックの供給元である対象検証装置へ供給して、対象ブロックに対する検証要求に応答する。また、検証応答部365は、対象ブロックに対する検証結果を復号化部355へ供給する。 The verification response unit 365 responds to a verification request for the target block by supplying the verification result for the target block to the target verification device that supplied the target block. The verification response unit 365 also supplies the verification result for the target block to the decryption unit 355.

検証結果取得部340は、上述のとおり、複数の検証装置300のうちの少なくとも一つの検証装置300から対象ブロックに対する検証結果を取得する。「検証要求に応じる側」の検証装置300のフローにおいては、検証結果取得部340は、取得した検証結果を復号化部355へ供給する。 As described above, the verification result acquisition unit 340 acquires the verification result for the target block from at least one of the multiple verification devices 300. In the flow of the verification device 300 that is "responding to the verification request," the verification result acquisition unit 340 supplies the acquired verification result to the decryption unit 355.

出力部345は、上述のとおり、検証結果に応じた出力をする。「検証要求に応じる側」のフローにおいては、出力部345は、対象ブロックの検証が失敗した場合に、異常メッセージを出力する。この際、出力部345は、例えば、アラームを発出することによって対象ブロックの検証が失敗したことを検証システム30の管理者へ報知してよい。また、出力部345は、管理対象の制御処理装置200(例えば、検証装置300eの場合は、制御器200e)へ、検証が失敗した旨のメッセージを出力してよい。 As described above, the output unit 345 outputs according to the verification result. In the flow of the "side responding to the verification request", the output unit 345 outputs an abnormality message if the verification of the target block fails. At this time, the output unit 345 may, for example, notify the administrator of the verification system 30 that the verification of the target block has failed by issuing an alarm. The output unit 345 may also output a message to the effect that the verification has failed to the control processing device 200 under management (for example, the controller 200e in the case of the verification device 300e).

これより先、本実施形態に係る検証装置300の動作について、「検証を要求する側」と「検証要求に応答する側」とに分けて、それぞれフローを用いて詳細に説明する。 From here on, the operation of the verification device 300 according to this embodiment will be explained in detail using a flow chart for each of the "side requesting verification" and "side responding to the verification request."

図7は、検証を要求する側の検証装置300における動作のフローの一例を示す。ここでは、「検証を要求する側」の検証装置300が、第一演算装置200bを管理対象とする検証装置300bであり、ブロックbをブロックチェーンに登録すべき対象ブロックとする場合について一例として説明する。なお、上流のブロックであるブロックaは、既にブロックチェーンに登録済みであるものとする。 Figure 7 shows an example of the operation flow of the verification device 300 requesting verification. Here, we will explain an example in which the verification device 300 requesting verification is the verification device 300b that manages the first computing device 200b, and block b is the target block to be registered in the blockchain. Note that block a, which is the upstream block, has already been registered in the blockchain.

ステップ710において、検証装置300は、対象データを取得する。例えば、データ取得部315は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、管理対象とする対象処理装置100におけるデータである対象データを取得する。一例として、検証装置300bにおけるデータ取得部315は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、管理対象とする第一演算装置200bにおけるデータを対象データとして取得する。 In step 710, the verification device 300 acquires the target data. For example, the data acquisition unit 315 acquires the target data, which is data in the target processing device 100 to be managed, in a data processing system 10 in which data is propagated or converted via multiple processing devices 100. As an example, the data acquisition unit 315 in the verification device 300b acquires as the target data the data in the first calculation device 200b to be managed in a control system 20 that controls the control target 200f based on control parameters generated via multiple control processing devices 200a to 200e.

この際、データ取得部315は、第一演算装置200bにおいて復号部120から処理部130へ供給されるエッジデバイス200aの送信内容を入力データとして取得してよい。また、データ取得部315は、第一演算装置200bにおいて処理部130から暗号部140へ供給される第一演算装置200bの送信内容を出力データとして取得してよい。このように、データ取得部315は、対象処理装置100において上流の処理装置100から入力される入力データ、および、下流の処理装置100へ出力する出力データを対象データとして取得してよい。データ取得部315は、取得した対象データをブロック生成部325へ供給する。 At this time, the data acquisition unit 315 may acquire, as input data, the transmission contents of the edge device 200a supplied from the decryption unit 120 to the processing unit 130 in the first calculation device 200b. The data acquisition unit 315 may also acquire, as output data, the transmission contents of the first calculation device 200b supplied from the processing unit 130 to the encryption unit 140 in the first calculation device 200b. In this way, the data acquisition unit 315 may acquire, as target data, input data input from the upstream processing device 100 in the target processing device 100 and output data output to the downstream processing device 100. The data acquisition unit 315 supplies the acquired target data to the block generation unit 325.

ステップ720において、検証装置300は、ハッシュ値を算出する。例えば、算出部320は、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。ここでは、ブロックチェーンに登録すべき対象ブロックがブロックbであるので、検証装置300bにおける算出部320は、上流のブロックであるブロックaをハッシュ処理してブロックaのハッシュ値を算出する。算出部320は、算出したハッシュ値をブロック生成部325へ供給する。 In step 720, the verification device 300 calculates a hash value. For example, the calculation unit 320 calculates a hash value based on an upstream block that has already been registered in the blockchain. In this case, the target block to be registered in the blockchain is block b, so the calculation unit 320 in the verification device 300b performs hash processing on block a, which is the upstream block, to calculate the hash value of block a. The calculation unit 320 supplies the calculated hash value to the block generation unit 325.

ステップ730において、検証装置300は、対象ブロックを生成する。例えば、ブロック生成部325は、複数の制御処理装置200のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、対象データに基づいて生成する。より詳細には、ブロック生成部325は、ステップ710において取得された対象データと、ステップ720において算出されたハッシュ値とを含む対象ブロックを生成する。一例として、検証装置300bにおけるブロック生成部325は、第一演算装置200bにおける入力データおよび出力データ、並びに、ブロックaのハッシュ値を含む対象ブロックbを生成する。ブロック生成部325は、生成した対象ブロックを暗号化部330へ供給する。 In step 730, the verification device 300 generates a target block. For example, the block generation unit 325 generates a target block to be registered in a blockchain that records blocks based on data in each of the multiple control processing devices 200, based on the target data. More specifically, the block generation unit 325 generates a target block including the target data acquired in step 710 and the hash value calculated in step 720. As an example, the block generation unit 325 in the verification device 300b generates a target block b including the input data and output data in the first calculation device 200b, and the hash value of block a. The block generation unit 325 supplies the generated target block to the encryption unit 330.

ステップ740において、検証装置300は、対象ブロックを暗号化する。例えば、暗号化部330は、対象ブロックを複数の検証装置300毎に暗号化する。一例として、検証装置300bにおける暗号化部330は、複数の検証装置300a、300c、300d、および、300eに提供済みのそれぞれの公開鍵に対応するそれぞれの秘密鍵を使用して、対象ブロックを暗号化する。暗号化部330は、暗号化した対象ブロックを検証要求部335へ供給する。 In step 740, the verification device 300 encrypts the target block. For example, the encryption unit 330 encrypts the target block for each of the multiple verification devices 300. As an example, the encryption unit 330 in the verification device 300b encrypts the target block using each private key corresponding to the public key that has been provided to each of the multiple verification devices 300a, 300c, 300d, and 300e. The encryption unit 330 supplies the encrypted target block to the verification request unit 335.

ステップ750において、検証装置300は、対象ブロックに対する検証を要求する。例えば、検証要求部335は、対象ブロックを、複数の制御処理装置200をそれぞれ管理対象とする複数の検証装置300へ供給して、対象ブロックに対する検証を要求する。一例として、検証装置300bにおける検証要求部335は、複数の検証装置300a、300c、300d、および、300e毎に暗号化されたそれぞれの対象ブロックを複数の検証装置300a、300c、300d、および、300eのそれぞれへ供給する。 In step 750, the verification device 300 requests verification of the target block. For example, the verification request unit 335 supplies the target block to multiple verification devices 300 that each manage multiple control processing devices 200, and requests verification of the target block. As an example, the verification request unit 335 in the verification device 300b supplies each of the target blocks encrypted for each of the multiple verification devices 300a, 300c, 300d, and 300e to each of the multiple verification devices 300a, 300c, 300d, and 300e.

ステップ760において、検証装置300は、検証結果を取得したか否か判定する。例えば、検証結果取得部340は、複数の検証装置300のうちの少なくとも一つから検証結果を取得したか否か判定する。一例として、検証装置300bにおける検証結果取得部340は、複数の検証装置300a、300c、300d、および、300eの少なくとも一つから検証結果を取得したか否か判定する。ステップ760において検証結果を取得していない(No)と判定された場合、検証装置300は、処理をステップ760に戻してフローを継続する。ステップ760において検証結果を取得した(Yes)と判定された場合、検証装置300は、処理をステップ765に進める。 In step 760, the verification device 300 determines whether or not a verification result has been acquired. For example, the verification result acquisition unit 340 determines whether or not a verification result has been acquired from at least one of the multiple verification devices 300. As an example, the verification result acquisition unit 340 in the verification device 300b determines whether or not a verification result has been acquired from at least one of the multiple verification devices 300a, 300c, 300d, and 300e. If it is determined in step 760 that a verification result has not been acquired (No), the verification device 300 returns the process to step 760 and continues the flow. If it is determined in step 760 that a verification result has been acquired (Yes), the verification device 300 proceeds to step 765.

ステップ765において、検証装置300は、検証結果が、検証が成功した旨を示しているか否か判定する。例えば、検証結果取得部340は、ステップ760において取得された検証結果が、検証が成功した旨を示しているか否か判定する。一例として、検証装置300bにおける検証結果取得部340は、複数の検証装置300a、300c、300d、および、300eの少なくとも一つから取得された検証結果が、検証が成功した旨を示しているか否か判定する。ステップ765において検証が成功した旨を示している(Yes)と判定された場合、検証結果取得部340はステップ760において取得された検証結果をブロック生成部325、および、出力部345へ供給する。そして、検証装置300は、処理をステップ770に進める。 In step 765, the verification device 300 determines whether the verification result indicates that the verification was successful. For example, the verification result acquisition unit 340 determines whether the verification result acquired in step 760 indicates that the verification was successful. As an example, the verification result acquisition unit 340 in the verification device 300b determines whether the verification result acquired from at least one of the multiple verification devices 300a, 300c, 300d, and 300e indicates that the verification was successful. If it is determined in step 765 that the verification is successful (Yes), the verification result acquisition unit 340 supplies the verification result acquired in step 760 to the block generation unit 325 and the output unit 345. Then, the verification device 300 proceeds to step 770.

ステップ770において、検証装置300は、対象ブロックをブロックチェーンに登録する。一例として、検証装置300bにおけるブロック生成部325は、検証が成功した旨の検証結果が供給された場合に、ステップ730において生成した対象ブロックであるブロックbを登録部310へ供給する。これに応じて、登録部310は、ブロックbをブロックチェーンの末尾(ブロックaの後ろ)に登録する。このようにして、登録部310は、複数の検証装置300のうちの少なくとも一つの検証装置300からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。 In step 770, the verification device 300 registers the target block in the blockchain. As an example, when a verification result indicating that the verification was successful is supplied, the block generation unit 325 in the verification device 300b supplies block b, which is the target block generated in step 730, to the registration unit 310. In response, the registration unit 310 registers block b at the end of the blockchain (after block a). In this way, the registration unit 310 registers the target block in the blockchain in response to the verification result from at least one of the multiple verification devices 300.

ステップ775において、検証装置300は、検証が成功した旨のメッセージを出力する。一例として、検証装置300bにおける出力部345は、検証が成功した旨の検証結果が供給された場合に、自身が管理対象とする第一演算装置200bへ、検証が成功した旨のメッセージを出力する。これに応じて、第一演算装置200bは、下流の制御処理装置200へのデータ送信を継続すると判定して、第二演算装置200cへデータを送信する。 In step 775, the verification device 300 outputs a message indicating that the verification was successful. As an example, when the output unit 345 in the verification device 300b receives a verification result indicating that the verification was successful, the output unit 345 outputs a message indicating that the verification was successful to the first calculation device 200b that it manages. In response to this, the first calculation device 200b determines to continue sending data to the downstream control processing device 200, and sends data to the second calculation device 200c.

一方、ステップ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 result acquisition unit 340 supplies the verification result acquired in step 760 to the output unit 345. Then, the verification device 300 advances the process to step 780.

ステップ780において、検証装置300は、アラームを発出する。一例として、検証装置300bにおける出力部345は、アラームを発出することによって対象ブロックであるブロックbの検証が失敗したことを検証システム30の管理者へ報知する。 In step 780, the verification device 300 issues an alarm. As an example, the output unit 345 in the verification device 300b issues an alarm to notify the administrator of the verification system 30 that the verification of the target block, block b, has failed.

ステップ785において、検証装置300は、異常メッセージを出力する。一例として、検証装置300bにおける出力部345は、対象ブロックの検証が失敗した旨の検証結果が取得された場合に、自身が管理対象とする第一演算装置200bへ、異常メッセージを出力する。これに応じて、第一演算装置200bは、下流の制御処理装置200へのデータ送信を中止すると判定して、第二演算装置200cへのデータ送信を中止する。 In step 785, the verification device 300 outputs an abnormality message. As an example, when the output unit 345 in the verification device 300b obtains a verification result indicating that the verification of the target block has failed, the output unit 345 outputs an abnormality message to the first calculation device 200b that it manages. In response to this, the first calculation device 200b determines to stop sending data to the downstream control processing device 200, and stops sending data to the second calculation device 200c.

図8は、検証要求に応じる側の検証装置300における動作のフローの一例を示す。ここでは、「検証要求に応じる側」の検証装置300が、制御器200eを管理対象とする検証装置300eであり、検証装置300bからのブロックbをブロックチェーンに登録すべき対象ブロックとする場合について一例として説明する。なお、上流のブロックであるブロックaは、既にブロックチェーンに登録済みであるものとする。 Figure 8 shows an example of the operation flow of the verification device 300 that responds to the verification request. Here, the verification device 300 that responds to the verification request is the verification device 300e that manages the controller 200e, and an example is explained in which block b from the verification device 300b is the target block to be registered in the blockchain. Note that block a, which is the upstream block, is already registered in the blockchain.

ステップ810において、検証装置300は、対象ブロックを取得する。例えば、ブロック取得部350は、複数の処理装置100を経由してデータが伝搬または変換されるデータ処理システム10において、複数の処理装置100のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを取得する。一例として、検証装置300eにおけるブロック取得部350は、複数の制御処理装置200a~200eを経由して生成される制御パラメータに基づいて制御対象200fを制御する制御システム20において、検証対象となる第一演算装置200bにおけるデータに基づくブロックbを対象ブロックとして、第一演算装置200bを管理対象とする検証装置300bから取得する。ブロック取得部350は、取得した対象ブロックを復号化部355へ供給する。 In step 810, the verification device 300 acquires the target block. For example, in a data processing system 10 in which data is propagated or transformed via multiple processing devices 100, the block acquisition unit 350 acquires a target block to be registered in a blockchain that records blocks based on data in each of the multiple processing devices 100. As an example, in a control system 20 that controls a control target 200f based on control parameters generated via multiple control processing devices 200a to 200e, the block acquisition unit 350 in the verification device 300e acquires block b based on data in the first calculation device 200b to be verified as a target block from the verification device 300b that manages the first calculation device 200b. The block acquisition unit 350 supplies the acquired target block to the decryption unit 355.

ステップ815において、検証装置300は、対象ブロックを復号化する。例えば、復号化部355は、ステップ810において取得された対象ブロックを、対象ブロックの供給元である対象検証装置300に応じて復号化する。一例として、検証装置300eにおける復号化部355は、検証装置300bから取得された対象ブロックbを、検証装置300bの公開鍵を用いて復号化する。復号化部355は、復号化した対象ブロックを検証部360へ供給する。 In step 815, the verification device 300 decrypts the target block. For example, the decryption unit 355 decrypts the target block acquired in step 810 according to the target verification device 300 that is the source of the target block. As an example, the decryption unit 355 in the verification device 300e decrypts the target block b acquired from the verification device 300b using the public key of the verification device 300b. The decryption unit 355 supplies the decrypted target block to the verification unit 360.

ステップ820において、検証装置300は、ハッシュ値を算出する。例えば、算出部320は、ブロックチェーンに登録済みの上流のブロックに基づいてハッシュ値を算出する。ここでは、ブロックチェーンに登録すべき対象ブロックがブロックbであるので、検証装置300eにおける算出部320は、上流のブロックであるブロックaをハッシュ処理してブロックaのハッシュ値を算出する。算出部320は、算出したハッシュ値を検証部360へ供給する。 In step 820, the verification device 300 calculates a hash value. For example, the calculation unit 320 calculates a hash value based on an upstream block that has already been registered in the blockchain. In this case, the target block to be registered in the blockchain is block b, so the calculation unit 320 in the verification device 300e performs a hash process on block a, which is the upstream block, to calculate the hash value of block a. The calculation unit 320 supplies the calculated hash value to the verification unit 360.

ステップ830において、検証装置300は、ハッシュ値が一致するか否か判定する。例えば、検証部360は、ステップ815において復号化された対象ブロックに含まれるハッシュ値と、ステップ820において算出されたハッシュ値とを比較する。そして、検証部360は、両者が一致する場合に対象ブロックの検証が成功したと判定する。一方、検証部360は、両者が一致しない場合に対象ブロックの検証が失敗したと判定する。一例として、検証装置300eにおける検証部360は、復号化したブロックbに含まれるハッシュ値と、算出したブロックaのハッシュ値とを比較する。そして、検証部360は、両者が一致する場合に対象ブロックであるブロックbの検証が成功したと判定する。一方、検証部360は、両者が一致しない場合に対象ブロックであるブロックbの検証が失敗したと判定する。すなわち、検証部360は、対象ブロックに含まれるハッシュ値と算出したハッシュ値とに基づいて、対象ブロックを検証する。このようにして、検証部360は、ブロックチェーンに登録済みの上流のブロックに基づいて、対象ブロックを検証する。 In step 830, the verification device 300 determines whether the hash values match. For example, the verification unit 360 compares the hash value included in the target block decrypted in step 815 with the hash value calculated in step 820. If the hash values match, the verification unit 360 determines that the verification of the target block has been successful. On the other hand, if the hash values do not match, the verification unit 360 determines that the verification of the target block has failed. As an example, the verification unit 360 in the verification device 300e compares the hash value included in the decrypted block b with the calculated hash value of the block a. If the hash values match, the verification unit 360 determines that the verification of the target block, block b, has been successful. On the other hand, if the hash values do not match, the verification unit 360 determines that the verification of the target block, block b, has failed. That is, the verification unit 360 verifies the target block based on the hash value included in the target block and the calculated hash value. In this way, the verification unit 360 verifies the target block based on the upstream block that has been registered in the blockchain.

ステップ830においてハッシュ値が一致しない(No)と判定された場合、検証部360は、対象ブロックの検証が失敗した旨の検証結果を、出力部345、および、検証応答部365へ供給する。そして、検証装置300は処理をステップ835に進める。 If it is determined in step 830 that the hash values do not match (No), the verification unit 360 supplies a verification result indicating that the verification of the target block has failed to the output unit 345 and the verification response unit 365. Then, the verification device 300 proceeds to step 835.

ステップ835において、検証装置300は、アラームを発出する。一例として、検証装置300eにおける出力部345は、アラームを発出することによって対象ブロックであるブロックbの検証が失敗したことを検証システム30の管理者へ報知する。 In step 835, the verification device 300 issues an alarm. As an example, the output unit 345 in the verification device 300e issues an alarm to notify the administrator of the verification system 30 that the verification of the target block, block b, has failed.

ステップ840において、検証装置300は、異常メッセージを出力する。一例として、検証装置300eにおける出力部345は、対象ブロックの検証が失敗した場合に、自身が管理対象とする制御器200eへ、異常メッセージを出力する。これに応じて、制御器200eは、下流の制御処理装置200へのデータ送信を中止すると判定して、制御対象200fへの制御指令の送信を中止する。 In step 840, the verification device 300 outputs an abnormality message. As an example, if the verification of the target block fails, the output unit 345 in the verification device 300e outputs an abnormality message to the controller 200e that it manages. In response, the controller 200e determines to stop sending data to the downstream control processing device 200, and stops sending control commands to the control target 200f.

ステップ845において、検証装置300は、検証が失敗した旨を応答する。一例として、検証装置300eにおける検証応答部365は、対象ブロックの検証が失敗した旨の検証結果が供給された場合に、当該検証結果を、対象ブロックの供給元である検証装置300bへ供給する。このようにして、検証応答部365は、対象ブロックに対する検証結果を対象ブロックの供給元である対象検証装置300へ供給して、対象ブロックに対する検証要求に応答する。 In step 845, the verification device 300 responds that the verification has failed. As an example, when a verification result indicating that the verification of the target block has failed is supplied, the verification response unit 365 in the verification device 300e supplies the verification result to the verification device 300b that supplied the target block. In this way, the verification response unit 365 supplies the verification result for the target block to the target verification device 300 that supplied the target block, and responds to the verification request for the target block.

一方、ステップ830においてハッシュ値が一致する(Yes)と判定された場合、検証部360は、対象ブロックの検証が成功した旨の検証結果を、検証応答部365へ供給する。そして、検証装置300は、処理をステップ850に進める。 On the other hand, if it is determined in step 830 that the hash values match (Yes), the verification unit 360 supplies the verification response unit 365 with a verification result indicating that the verification of the target block was successful. Then, the verification device 300 proceeds to step 850.

ステップ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 verification device 300 determines whether it is the main verification device. For example, the verification response unit 365 in the verification device 300e determines whether it is the main verification device that should supply the verification results among the multiple control processing devices 200. At this time, the verification response unit 365 may determine that it is the main verification device when the controller 200e that gives the control command according to the control parameter to the control object 200f is the object of management, as an example. In a control system that controls the control object 200f based on the control parameters generated via the multiple control processing devices 200a to 200e, the controller 200e that finally gives the control command to the control object 200f can be said to be the main device that bears responsibility for the entire control system. Therefore, the verification device 300e that manages such a controller 200e may be the main verification device that should supply the verification results. Note that when the verification device 300e becomes the "side that requests verification," one of the other verification devices 300 may operate as the main verification device. In the above description, an example has been given in which the verification device 300e mainly operates as the main verification device. However, this is not limited to this. Which of the multiple verification devices 300 is to be the main verification device may be determined according to a predefined algorithm, order, or the like. For example, the processing load may be distributed among the multiple verification devices 300 by rotating the main verification device.

ステップ850において主検証装置である(Yes)と判定された場合、検証装置300は、処理をステップ855に進める。 If it is determined in step 850 that it is the main verification device (Yes), the verification device 300 proceeds to step 855.

ステップ855において、検証装置300は、対象ブロックをブロックチェーンに登録する。一例として、検証装置300eにおける検証応答部365は、自身が主検証装置であると判定した場合に、検証が成功した旨の検証結果を復号化部355へ供給する。そして、復号化部355は、ステップ815において復号化した対象ブロックを登録部310へ供給する。これに応じて、登録部310は、対象ブロックであるブロックbをブロックチェーンの末尾(ブロックaの後ろ)に登録する。このようにして、登録部310は、検証結果に応じて対象ブロックをブロックチェーンに登録する。 In step 855, the verification device 300 registers the target block in the blockchain. As an example, if the verification response unit 365 in the verification device 300e determines that it is the main verification device, it supplies the decryption unit 355 with a verification result indicating that the verification was successful. The decryption unit 355 then supplies the target block decrypted in step 815 to the registration unit 310. In response to this, the registration unit 310 registers the target block, block b, at the end of the blockchain (after block a). In this way, the registration unit 310 registers the target block in the blockchain in accordance with the verification result.

ステップ860において、検証装置300は、検証が成功した旨を応答する。一例として、検証装置300eにおける検証応答部365は、対象ブロックの検証が成功した旨の検証結果を、対象ブロックの供給元である検証装置300bへ供給する。このようにして、検証応答部365は、対象ブロックに対する検証結果を対象ブロックの供給元である対象検証装置300へ供給して、対象ブロックに対する検証要求に応答する。このように、検証応答部365は、自身が複数の検証装置300のうちの検証結果を供給すべき主検証装置であるかどうか判定し、主検証装置である場合に、対象ブロックに対する検証結果を対象検証装置300へ供給してよい。これに応じて、「検証を要求する側」である検証装置300bにおける登録部310は、複数の検証装置300のうちの検証結果を供給すべき主検証装置からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。 In step 860, the verification device 300 responds that the verification was successful. As an example, the verification response unit 365 in the verification device 300e supplies the verification result indicating that the verification of the target block was successful to the verification device 300b, which is the supplier of the target block. In this way, the verification response unit 365 responds to the verification request for the target block by supplying the verification result for the target block to the target verification device 300, which is the supplier of the target block. In this way, the verification response unit 365 may determine whether it is the main verification device that should supply the verification result among the multiple verification devices 300, and if it is the main verification device, supply the verification result for the target block to the target verification device 300. In response to this, the registration unit 310 in the verification device 300b, which is the "side requesting verification," registers the target block in the blockchain in accordance with the verification result from the main verification device that should supply the verification result among the multiple verification devices 300.

一方、ステップ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 verification device 300 proceeds to step 865.

ステップ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 verification device 300 determines whether or not it has acquired a verification result indicating that the verification was successful. As an example, the verification result acquisition unit 340 of the verification devices 300a, 300c, and 300d that are not the main verification device determines whether or not it has acquired a verification result indicating that the verification was successful from the verification device 300e that is the main verification device. In step 865, if the verification result indicating that the verification was successful has not been acquired (No), the verification device 300 returns the process to step 865 and continues the flow. That is, the verification devices 300a, 300c, and 300d that are not the main verification device wait for a verification result indicating that the verification was successful to be supplied from the verification device 300e that is the main verification device. On the other hand, if a verification result indicating that the verification was successful is acquired in step 865 (Yes), the verification result acquisition unit 340 supplies the acquired verification result to the decryption unit 355. Then, the verification device 300 advances the process to step 870.

ステップ870において、検証装置300は、対象ブロックをブロックチェーンに登録する。一例として、主検証装置ではない検証装置300a、300c、および、300dにおける復号化部355は、検証が成功した旨の検証結果が供給された場合に、ステップ815において復号化した対象ブロックを登録部310へ供給する。これに応じて、登録部310は、対象ブロックであるブロックbをブロックチェーンの末尾(ブロックaの後ろ)に登録する。このようにして、登録部310は、検証結果に応じて対象ブロックをブロックチェーンに登録する。 In step 870, the verification device 300 registers the target block in the blockchain. As an example, when the decryption unit 355 in the verification devices 300a, 300c, and 300d that are not the main verification device receives a verification result indicating that the verification was successful, it supplies the target block decrypted in step 815 to the registration unit 310. In response, the registration unit 310 registers the target block, block b, at the end of the blockchain (after block a). In this way, the registration unit 310 registers the target block in the blockchain in accordance with the verification result.

図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 first calculation device 200b.

ステップ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 unit 110 in the first arithmetic device 200b receives data from the edge device 200a, which is the upstream control processing device 200. In this case, the edge device 200a processes the content to be transmitted using a hash function to calculate a hash value. Then, the edge device 200a transmits the ciphertext of the hash value, which is the hash value encrypted with its own private key, and the transmission content as a signature to the first arithmetic device 200b. The receiving unit 110 in the first arithmetic device 200b receives the data encrypted by the edge device 200a in this way from the edge device 200a. The receiving unit 110 supplies the received data to the decryption unit 120.

ステップ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 decryption unit 120 extracts the encrypted hash value from the data received in step 910. The decryption unit 120 then uses the public key of the edge device 200a to decrypt the encrypted hash value and obtain a hash value. The decryption unit 120 also extracts the transmission content of the edge device 200a from the data received in step 910. The decryption unit 120 then processes the transmission content of the edge device 200a with the same hash function as the edge device 200a to calculate a hash value. The decryption unit 120 compares the decrypted hash value with the calculated hash value, and if the two match, determines that the data received in step 910 is correct (not tampered with). In response, the decryption unit 120 supplies the transmission content of the edge device 200a to the processing unit 130.

ステップ930において、制御処理装置200は、データを処理する。一例として、処理部130は、ステップ920において復号されたエッジデバイス200aの送信内容を入力データとして、データを処理する。そして、処理部130は、入力データを処理した結果である出力データを、自身が送信すべき送信内容として暗号部140へ供給する。 In step 930, the control processing device 200 processes the data. As an example, the processing unit 130 processes the data using the transmission content of the edge device 200a decrypted in step 920 as input data. The processing unit 130 then supplies the output data, which is the result of processing the input data, to the encryption unit 140 as the transmission content to be transmitted by the processing unit 130.

ステップ940において、制御処理装置200は、入出力データを提供する。一例として、処理部130は、エッジデバイス200aの送信内容である入力データ、および、自身の送信内容である出力データを、送信部150を介して、第一演算装置200bを管理対象とする検証装置300bへ提供する。 In step 940, the control processing device 200 provides input/output data. As an example, the processing unit 130 provides input data, which is the content transmitted by the edge device 200a, and output data, which is the content transmitted by itself, via the transmitting unit 150 to the verification device 300b that manages the first computing device 200b.

ステップ950において、制御処理装置200は、データを暗号化する。一例として、暗号部140は、ステップ930において処理された結果である自身が送信すべき送信内容をハッシュ関数で処理してハッシュ値を算出する。そして、暗号部140は、自身の秘密鍵でハッシュ値を暗号化したハッシュ値の暗号文と、送信内容とを署名としたデータを生成する。暗号部140は、このようにして暗号化されたデータを送信部150へ供給する。 In step 950, the control processing device 200 encrypts the data. As an example, the encryption unit 140 uses a hash function to process the content to be sent, which is the result of the processing in step 930, to calculate a hash value. The encryption unit 140 then generates data in which the ciphertext of the hash value, obtained by encrypting the hash value with its own private key, and the content to be sent are used as a signature. The encryption unit 140 supplies the data encrypted in this manner to the transmission unit 150.

ステップ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 unit 110 determines whether or not a message indicating a verification result has been received from the verification device 300b that manages the first calculation device 200b. If it is determined in step 960 that a message has not been acquired (No), the control processing device 200 returns the process to step 960 and continues the flow. On the other hand, if it is determined in step 960 that a message has been acquired (Yes), the receiving unit 110 supplies the received message to the continuation determination unit 160. Then, the control processing device 200 advances the process to step 970.

ステップ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 continuation judgment unit 160 determines whether the message acquired in step 960 indicates that the verification was successful. If it is determined in step 970 that the verification was successful (Yes), the continuation judgment unit 160 determines to continue data transmission to the downstream control processing device 200, and supplies a permission notification to the transmission unit 150 indicating that data transmission to the downstream control processing device 200 is permitted. The control processing device 200 then proceeds to step 980.

ステップ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 transmission unit 150 transmits the data encrypted in step 950 to the second calculation device 200c, which is the downstream control processing device 200.

一方、ステップ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 continuation determination unit 160 determines to stop transmitting data to the downstream control processing device 200, and supplies a stop instruction to the transmission unit 150 to stop transmitting data to the downstream control processing device 200. The control processing device 200 then advances the process to step 990.

ステップ990において、制御処理装置200は、下流へのデータ送信を中止する。一例として、送信部150は、中止指示が供給されたことに応じて、ステップ950において暗号化されたデータを、下流の制御処理装置200である第二演算装置200cへ送信することを中止する。 In step 990, the control processing device 200 stops transmitting data downstream. As an example, in response to receiving the stop instruction, the transmission unit 150 stops transmitting the data encrypted in step 950 to the second calculation device 200c, which is the downstream control processing device 200.

一般的なデータ取引では、公開鍵暗号化方式(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 verification device 300 according to the present embodiment supplies the target block generated by itself to a plurality of verification devices 300 each managing other processing devices 100 in the data processing system 10, and requests verification of the target block. Then, the verification device 300 registers the target block in the blockchain according to the verification result from at least one of the plurality of verification devices 300. As a result, according to the verification device 300 according to the present embodiment, since the target block is verified and registered in the blockchain in cooperation with the other verification devices 300, it is possible to increase the difficulty of tampering with data in the entire verification system 30. As a result, according to the verification device 300 according to the present embodiment, even if data of a plant device is processed using a calculation service belonging to a non-control network, data tampering at each point of the data processing process can be detected, and an audit trail that cannot be deleted or rewritten can be left unified at each point.

また、本実施形態に係る検証装置300は、対象ブロックの検証が失敗した場合に、異常メッセージを出力する。これにより、本実施形態に係る検証装置300によれば、データの改ざんが疑われる場合に、検証システム30の管理者へその旨を報知するとともに、データ処理システム10におけるデータの取引を中止させることができる。したがって、本実施形態に係る検証装置300によれば、例えば、意図しない制御指令が制御対象に与えられてしまうことを防止することができる。 Furthermore, the verification device 300 according to this embodiment outputs an abnormality message if the verification of the target block fails. As a result, according to the verification device 300 according to this embodiment, if data tampering is suspected, the administrator of the verification system 30 can be notified of this and data transactions in the data processing system 10 can be stopped. Therefore, according to the verification device 300 according to this embodiment, it is possible to prevent, for example, unintended control commands from being given to the control target.

また、本実施形態に係る検証装置300は、対象ブロックを複数の検証装置300毎に暗号化する。これにより、本実施形態に係る検証装置300によれば、検証のために複数の検証装置300間で対象ブロックを受け渡しする場合においても、高いセキュリティレベルを維持することができる。 In addition, the verification device 300 according to this embodiment encrypts the target block for each of the multiple verification devices 300. As a result, the verification device 300 according to this embodiment can maintain a high level of security even when the target block is transferred between multiple verification devices 300 for verification.

また、本実施形態に係る検証装置300は、主検証装置からの検証結果に応じて、対象ブロックをブロックチェーンに登録する。これにより、本実施形態に係る検証装置300によれば、検証が成功した旨の検証結果を供給する検証装置300を主検証装置のみに限定することができるので、検証システム30全体としての処理負荷を軽減することができる。この際、このような主検証装置は、制御パラメータに応じた制御指令を制御対象200fに与える制御器200eを管理対象とする検証装置300eであってよい。これにより、制御システム20における主要装置である制御器200eを管理対象とする検証装置300eが代表して検証要求に応答することができる。 The verification device 300 according to this embodiment also registers the target block in the blockchain in response to the verification result from the main verification device. As a result, according to the verification device 300 according to this embodiment, the verification device 300 that supplies the verification result indicating the verification was successful can be limited to only the main verification device, so that the processing load on the verification system 30 as a whole can be reduced. In this case, such a main verification device may be a verification device 300e that manages a controller 200e that provides a control command according to a control parameter to a control target 200f. As a result, the verification device 300e that manages the controller 200e, which is the main device in the control system 20, can respond to the verification request on behalf of the controller 200e.

また、本実施形態に係る検証装置300は、上流のブロックに基づいて算出されたハッシュ値を対象ブロックに含めて生成する。これにより、本実施形態に係る検証装置300によれば、従来のブロックチェーンが持つ優れた改ざん耐性を維持したまま、データを検証することができる。 The verification device 300 according to this embodiment also generates a target block by including a hash value calculated based on an upstream block. As a result, the verification device 300 according to this embodiment can verify data while maintaining the excellent resistance to tampering that conventional blockchains have.

また、本実施形態に係る検証装置300は、管理対象とする対象処理装置における入力データ、および、出力データを対象ブロックに含めて生成する。これにより、本実施形態に係る検証装置300によれば、複数の処理装置100におけるいずれかの処理装置100においてデータが変換された場合であっても、いずれの段階でデータが改ざんされたかを判断することができる。したがって、本実施形態に係る検証装置300によれば、例えば、制御パラメータに問題が発生した場合であっても、原因を解析し、各処理箇所の追跡調査を実施することができる。 The verification device 300 according to this embodiment also generates input data and output data for the target processing device to be managed, including them in the target block. As a result, the verification device 300 according to this embodiment can determine at what stage the data was tampered with, even if data is converted in any of the processing devices 100 among multiple processing devices 100. Therefore, the verification device 300 according to this embodiment can analyze the cause and perform a follow-up investigation of each processing point, even if a problem occurs in a control parameter, for example.

なお、上述の説明においては、検証システム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 verification system 30 includes a plurality of verification devices 300a to 300e that manage the control processing devices 200a to 200e, respectively. However, the number of verification devices 300 included in the verification system 30 is not limited to this. The verification system 30 may include a plurality of verification devices 300 that is greater than the plurality of control processing devices 200a to 200e. In this case, some of the verification devices 300 may function only as "those that respond to verification requests" without managing any of the control processing devices 200. This ensures redundancy of records for the entire verification system 30, further increasing the difficulty of tampering. Alternatively, the verification system 30 may include a plurality of verification devices 300 that is less than the plurality of control processing devices 200a to 200e. In other words, the plurality of verification devices 300 do not necessarily have to be provided in one-to-one correspondence with the plurality of control processing devices 200.

また、上述の説明においては、複数の検証装置300における主検証装置のみが、検証が成功した旨の検証結果を供給する場合を一例として示した。しかしながら、これに限定されるものではない。「検証要求に応じる側」の検証装置300における複数の検証装置300(例えば、全ての検証装置300)が、検証が成功した旨の検証結果を供給してもよい。この場合、「検証を要求する側」の検証装置300においては、取得した全ての検証結果が、検証が成功した旨を示している場合に、対象ブロックに対する検証が成功したと判定してよい。すなわち、「検証を要求する側」の検証装置300においては、「検証要求に応じる側」の検証装置300から全会一致で検証が成功した旨の検証結果を取得した場合に、対象ブロックに対する検証が成功したと判定してよい。 In the above description, a case where only the main verification device among the multiple verification devices 300 supplies a verification result indicating that the verification was successful has been shown as an example. However, this is not limited to this. Multiple verification devices 300 (e.g., all of the verification devices 300) among the verification device 300 "responding to the verification request" may supply a verification result indicating that the verification was successful. In this case, the verification device 300 "requesting verification" may determine that the verification of the target block has been successful if all of the obtained verification results indicate that the verification was successful. In other words, the verification device 300 "requesting verification" may determine that the verification of the target block has been successful if it unanimously obtains verification results indicating that the verification was successful from the verification devices 300 "responding to the verification request".

また、上述の説明においては、検証装置300が、エッジデバイス200a、第一演算装置200b、第二演算装置200c、制御パラメータ入力装置200d、および、制御器200eを管理対象とする場合を一例として示した。しかしながら、これに限定されるものではない。本実施形態に係る検証装置300は、ゲートウェイ装置、ファイアウォール装置、通信用ルータ、ネットワークスイッチ、スマートメータ、IoT機器、IoT機器制御用端末、ロボット、プロセス制御装置、エッジコンピュータ、および、サーバ用コンピュータ等、データを収集して他の装置へ供給する可能性のある様々な装置を管理対象としてよい。 In the above description, an example was given in which the verification device 300 managed the edge device 200a, the first calculation device 200b, the second calculation device 200c, the control parameter input device 200d, and the controller 200e. However, this is not limited to this. The verification device 300 according to this embodiment may manage various devices that may collect data and supply it to other devices, such as gateway devices, firewall devices, communication routers, network switches, smart meters, IoT devices, IoT device control terminals, robots, process control devices, edge computers, and server computers.

本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(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 computer 9900 in which aspects of the present invention may be embodied in whole or in part. A program installed on the computer 9900 may cause the computer 9900 to function as or perform operations associated with an apparatus according to an embodiment of the present invention or one or more sections of the apparatus, and/or to perform a process or steps of a process according to an embodiment of the present invention. Such a program may be executed by the CPU 9912 to cause the computer 9900 to perform certain operations associated with some or all of the blocks of the flowcharts and block diagrams described herein.

本実施形態によるコンピュータ9900は、CPU9912、RAM9914、グラフィックコントローラ9916、およびディスプレイデバイス9918を含み、それらはホストコントローラ9910によって相互に接続されている。コンピュータ9900はまた、通信インターフェイス9922、ハードディスクドライブ9924、DVDドライブ9926、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ9920を介してホストコントローラ9910に接続されている。コンピュータはまた、ROM9930およびキーボード9942のようなレガシの入/出力ユニットを含み、それらは入/出力チップ9940を介して入/出力コントローラ9920に接続されている。 The computer 9900 according to this embodiment includes a CPU 9912, a RAM 9914, a graphics controller 9916, and a display device 9918, which are interconnected by a host controller 9910. The computer 9900 also includes input/output units such as a communication interface 9922, a hard disk drive 9924, a DVD drive 9926, and an IC card drive, which are connected to the host controller 9910 via an input/output controller 9920. The computer also includes legacy input/output units such as a ROM 9930 and a keyboard 9942, which are connected to the input/output controller 9920 via an input/output chip 9940.

CPU9912は、ROM9930およびRAM9914内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ9916は、RAM9914内に提供されるフレームバッファ等またはそれ自体の中にCPU9912によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス9918上に表示されるようにする。 The CPU 9912 operates according to the programs stored in the ROM 9930 and the RAM 9914, thereby controlling each unit. The graphics controller 9916 retrieves image data generated by the CPU 9912 into a frame buffer or the like provided in the RAM 9914 or into itself, and causes the image data to be displayed on the display device 9918.

通信インターフェイス9922は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ9924は、コンピュータ9900内のCPU9912によって使用されるプログラムおよびデータを格納する。DVDドライブ9926は、プログラムまたはデータをDVD-ROM9901から読み取り、ハードディスクドライブ9924にRAM9914を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。 The communication interface 9922 communicates with other electronic devices via a network. The hard disk drive 9924 stores programs and data used by the CPU 9912 in the computer 9900. The DVD drive 9926 reads programs or data from the DVD-ROM 9901 and provides the programs or data to the hard disk drive 9924 via the RAM 9914. The IC card drive reads programs and data from an IC card and/or writes programs and data to an IC card.

ROM9930はその中に、アクティブ化時にコンピュータ9900によって実行されるブートプログラム等、および/またはコンピュータ9900のハードウェアに依存するプログラムを格納する。入/出力チップ9940はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ9920に接続してよい。 The ROM 9930 stores therein a boot program or the like that is executed by the computer 9900 upon activation, and/or a program that depends on the hardware of the computer 9900. The input/output chip 9940 may also connect various input/output units to the input/output controller 9920 via a parallel port, a serial port, a keyboard port, a mouse port, etc.

プログラムが、DVD-ROM9901またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ9924、RAM9914、またはROM9930にインストールされ、CPU9912によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ9900に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ9900の使用に従い情報の操作または処理を実現することによって構成されてよい。 The programs are provided by a computer-readable medium such as a DVD-ROM 9901 or an IC card. The programs are read from the computer-readable medium and installed in the hard disk drive 9924, RAM 9914, or ROM 9930, which are also examples of computer-readable media, and executed by the CPU 9912. The information processing described in these programs is read by the computer 9900, and brings about cooperation between the programs and the various types of hardware resources described above. An apparatus or method may be constructed by realizing the manipulation or processing of information according to the use of the computer 9900.

例えば、通信がコンピュータ9900および外部デバイス間で実行される場合、CPU9912は、RAM9914にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス9922に対し、通信処理を命令してよい。通信インターフェイス9922は、CPU9912の制御下、RAM9914、ハードディスクドライブ9924、DVD-ROM9901、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。 For example, when communication is performed between the computer 9900 and an external device, the CPU 9912 may execute a communication program loaded into the RAM 9914 and instruct the communication interface 9922 to perform communication processing based on the processing described in the communication program. Under the control of the CPU 9912, the communication interface 9922 reads transmission data stored in a transmission buffer processing area provided in the RAM 9914, the hard disk drive 9924, the DVD-ROM 9901, or a recording medium such as an IC card, and transmits the read transmission data to the network, or writes reception data received from the network to a reception buffer processing area or the like provided on the recording medium.

また、CPU9912は、ハードディスクドライブ9924、DVDドライブ9926(DVD-ROM9901)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM9914に読み取られるようにし、RAM9914上のデータに対し様々なタイプの処理を実行してよい。CPU9912は次に、処理されたデータを外部記録媒体にライトバックする。 The CPU 9912 may also cause all or a necessary portion of a file or database stored on an external recording medium such as a hard disk drive 9924, a DVD drive 9926 (DVD-ROM 9901), an IC card, etc. to be read into the RAM 9914, and perform various types of processing on the data on the RAM 9914. The CPU 9912 then writes back the processed data to the external recording medium.

様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。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 CPU 9912 may perform various types of processing on the data read from the RAM 9914, including various types of operations, information processing, conditional judgment, conditional branching, unconditional branching, information search/replacement, etc., as described throughout this disclosure and specified by the instruction sequence of the program, and write back the results to the RAM 9914. The CPU 9912 may also search for information in a file, database, etc. in the recording medium. For example, if multiple entries each having an attribute value of a first attribute associated with an attribute value of a second attribute are stored in the recording medium, the CPU 9912 may search for an entry that matches a condition in which an attribute value of the first attribute is specified from among the multiple entries, read the attribute value of the second attribute stored in the entry, and thereby obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.

上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ9900上またはコンピュータ9900近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ9900に提供する。 The above-described program or software module may be stored on a computer-readable medium on the computer 9900 or in the vicinity of the computer 9900. In addition, a recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can be used as a computer-readable medium, thereby providing the program to the computer 9900 via the network.

以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 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 Data processing system 100 Processing device 110 Receiving unit 120 Decrypting unit 130 Processing unit 140 Encrypting unit 150 Transmitting unit 160 Continuation judgment unit 20 Control system 200 Control processing device 200a Edge device 200b First arithmetic unit 200c Second arithmetic unit 200d Control parameter input device 200e Controller 200f Control target 30 Verification system 300 Verification device 310 Registration unit 315 Data acquisition unit 320 Calculation unit 325 Block generation unit 330 Encryption unit 335 Verification request unit 340 Verification result acquisition unit 345 Output unit 350 Block acquisition unit 355 Decrypting unit 360 Verification unit 365 Verification response unit 9900 Computer 9901 DVD-ROM
9910 Host controller 9912 CPU
9914 RAM
9916 Graphics controller 9918 Display device 9920 Input/output controller 9922 Communication interface 9924 Hard disk drive 9926 DVD drive 9930 ROM
9940 Input/Output Chip 9942 Keyboard

Claims (10)

複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおける前記複数の処理装置をそれぞれ管理対象とする複数の検証装置のうちの1つの検証装置であって、
前記複数の検証装置のそれぞれは、前記複数の処理装置のうちの管理対象とする処理装置におけるデータを取得して当該データに基づくブロックの検証を要求するものであり、
前記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に記載の検証装置。 The verification device according to claim 1, further comprising an output unit that outputs an abnormality message when the verification result indicates that the verification of the target block has failed. 前記対象ブロックを前記複数の検証装置のうちの他の検証装置毎に暗号化する暗号化部を更に備え、
前記検証要求部は、前記複数の検証装置のうちの他の検証装置毎に暗号化されたそれぞれの前記対象ブロックを前記複数の検証装置のうちの他の検証装置のそれぞれへ供給する、請求項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.
前記登録部は、前記複数の処理装置のうちの検証結果を供給すべき他の検証装置である主検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録する、請求項1から3のいずれか一項に記載の検証装置。 4. The verification device according to claim 1, wherein the registration unit registers the target block in the blockchain in response to a verification result from a main verification device that is another verification device among the plurality of processing devices to which the verification result should be supplied. 前記データ処理システムは、前記複数の処理装置を経由して生成される制御パラメータに基づいて制御対象を制御する制御システムであり、
前記主検証装置は、前記制御パラメータに応じた制御指令を前記制御対象に与える制御器を管理対象とする他の検証装置である、請求項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 block acquisition unit that acquires other target blocks to be registered in the blockchain;
前記ブロックチェーンに登録済みの上流のブロックに基づいて、前記他の対象ブロックを検証する検証部と、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つの検証装置が、前記複数の検証装置のうちの他の少なくとも一つの検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録することと
を備える、検証方法。
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.
複数の処理装置を経由してデータが伝搬または変換されるデータ処理システムにおける前記複数の処理装置をそれぞれ管理対象とする複数の検証装置のうちの1つの検証装置として機能すべきコンピュータにより実行される検証プログラムであって、
前記複数の検証装置のそれぞれは、前記複数の処理装置のうちの管理対象とする処理装置におけるデータを取得して当該データに基づくブロックの検証を要求するものであり、
当該検証プログラムは、前記コンピュータを、
管理対象とする対象処理装置におけるデータである対象データを取得するデータ取得部と、
前記複数の処理装置のそれぞれにおけるデータに基づくブロックを記録するブロックチェーンに登録すべき対象ブロックを、前記対象データに基づいて生成するブロック生成部と、
前記対象ブロックを前記複数の検証装置のうちの他の検証装置へ供給して、前記対象ブロックに対する検証を要求する検証要求部と、
前記複数の検証装置のうちの他の少なくとも一つの検証装置からの検証結果に応じて、前記対象ブロックを前記ブロックチェーンに登録する登録部と
して機能させる、検証プログラム。
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.
JP2021063195A 2021-04-01 2021-04-01 Verification device, verification method, and verification program Active JP7615844B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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