Verification device, verification method, and verification program

The verification device uses a blockchain to verify and register data blocks across multiple processing devices, ensuring data integrity and generating a unified audit trail, addressing the challenge of tampering and security variability in data processing systems.

JP7615844B2Active Publication Date: 2025-01-17YOKOGAWA ELECTRIC CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021063195
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-04-01
Publication Date
2025-01-17
Estimated Expiration
2041-04-01

AI Technical Summary

Technical Problem

Existing data processing systems face challenges in detecting tampering and maintaining data integrity across multiple devices, especially when external service providers with varying security levels are involved, making it difficult to ensure the authenticity of data transactions and audit trails.

Method used

A verification device and method that utilizes a blockchain to verify data blocks across multiple processing devices by encrypting and registering them with a plurality of verification devices, ensuring data integrity and generating a unified audit trail.

Benefits of technology

Enhances data integrity and tamper resistance, allowing detection of falsification and preventing unintended control commands, while reducing processing load by limiting successful verification results to a main verification device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007615844000001
    Figure 0007615844000001
  • Figure 0007615844000002
    Figure 0007615844000002
  • Figure 0007615844000003
    Figure 0007615844000003
Patent Text Reader

Abstract

To provide a verification device, a verification method, and a verification program that reliably and easily implement falsification detection and audit trail for all devices participating in data transaction as a whole system.SOLUTION: A verification device 300 includes a data acquisition unit for acquiring target data that 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, a block generation unit for generating, based on target data, a target block to be registered in a blockchain for recording blocks based on data in each of the plurality of processing devices, a verification request unit for supplying a target block to a plurality of verification devices each managing the plurality of processing devices, and requesting verification of the target block, and a registration unit for registering the target block in the blockchain in accordance with a verification result from at least one verification device among the plurality of verification devices.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a verification device, a verification method, and a verification program. [Background technology]

[0002] Patent Document 1 describes "an encryption control system, an encryption control method, and a program that enable enhanced security." [Prior art document] [Patent documents] [Patent Document 1] Patent No. 6360781 Summary of the Invention

[0003] 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 a plurality of 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 plurality of processing devices. The verification device may include a verification request unit that supplies the target block to a plurality of verification devices that manage the plurality of 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 plurality of verification devices.

[0004] The verification device may further include an output unit that outputs an abnormality message when the obtained verification result indicates that the verification of the target block has failed.

[0005] 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 the target block encrypted for each of the plurality of verification devices to each of the plurality of verification devices.

[0006] 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 be supplied with the verification result among the multiple verification devices.

[0007] The data processing system may be a control system that controls a control target based on control parameters generated via the plurality of processing devices, and the main verification device may be a verification device that manages a controller that issues a control command to the control target according to the control parameters.

[0008] 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 including the hash value.

[0009] 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.

[0010] In a second aspect of the present invention, there is provided a verification method. 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 manage the plurality of processing devices, respectively, 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.

[0011] 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 manage the plurality of processing devices, respectively, 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.

[0012] 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.

[0013] The verification device may further include an output unit that outputs an abnormality message when verification of the target block fails.

[0014] The verification device may further include a decoding unit that decodes the target block in accordance with the target verification device.

[0015] The verification response unit may determine whether or not it is a main verification device to which a verification result should be supplied, and if it is the main verification device, may supply the verification result for the target block to the target verification device.

[0016] The data processing system may be a control system that controls a control target based on control parameters generated via the plurality of 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.

[0017] 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 a hash value included in the target block and the calculated hash value.

[0018] 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.

[0019] 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 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 program may cause the computer to function as a registration unit that registers the target block in the blockchain according to the verification result.

[0020] 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. [Brief description of the drawings]

[0021] [Figure 1] 1 illustrates an example of a data processing system 10 to which the verification technique according to the present embodiment may be applied. [Diagram 2] 1 shows an example of a block diagram of a processing device 100. [Diagram 3] 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. [Figure 4] 1 shows an example of a verification system 30 according to the present embodiment. [Diagram 5] 1 shows an example of a blockchain registered in the verification system 30 according to this embodiment. [Figure 6] 1 shows an example of a block diagram of a verification device 300 according to the present embodiment. [Figure 7] 13 shows an example of the flow of operations in the verification device 300 requesting verification. [Figure 8] 13 shows an example of the flow of operations in the verification device 300 responding to a verification request. [Figure 9] 1 shows an example of an operational flow in the processing device 100. [Figure 10] An example of a computer 9900 in which aspects of the present invention may be embodied, in whole or in part, is shown. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the scope of 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.

[0023] 1 shows an example of a data processing system 10 to which the verification technique according to the present 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 a plurality of processing devices 100a to 100f (collectively referred to as "processing devices 100") are connected in a circular fashion in the data processing system 10, and data is propagated in a loop between the plurality of processing devices 100 (for example, processing devices 100a → 100b → 100c → 100d → 100e → 100f → 100a →...).

[0024] Here, the loop immediately before is defined as "upstream" and the loop immediately after is defined as "downstream". That is, for example, for the processing device 100b, the processing device 100a corresponds to the upstream processing device 100, and the 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.

[0025] 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, between two parties trading data using the public key cryptosystem, it is assumed that the data receiver has obtained the public key of the data sender, i.e., the upstream processing device 100, in advance by using a reliable certificate authority or the like. From here on, an example will be described in which the processing device 100 is the processing device 100b. The processing device 100b has obtained in advance the public key of the processing device 100a, which is the upstream processing device 100.

[0026] The processing device 100 includes 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 may not necessarily match the actual device configuration. That is, even if one block is shown in this figure, it does not necessarily have to be configured by one device. Also, even if separate blocks are shown in this figure, it does not necessarily have to be configured by separate devices.

[0027] The receiving unit 110 receives data from the processing device 100a, which is an upstream processing device 100. In this case, the processing device 100a processes the transmission content to be transmitted using a hash function to calculate a hash value. Then, the processing device 100a transmits to the processing device 100b, as a signature, a ciphertext of the hash value obtained by encrypting the hash value with its own private key, and the transmission content. 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.

[0028] The receiving unit 110 also receives a message from a verification device, which will be described later. The receiving unit 110 supplies the received message to the continuation determination unit 160.

[0029] The decryption unit 120 decrypts 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 to this, the decryption unit 120 supplies the transmission content of the processing device 100a to the processing unit 130.

[0030] The processing unit 130 processes 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 output data, which is a result of processing the input data, to the encryption unit 140 as the transmission contents to be transmitted by the processing unit 130.

[0031] The encryption unit 140 encrypts 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 obtained by encrypting the hash value with its own private key, are used as a signature. The encryption unit 140 supplies the data encrypted in this manner to the transmission unit 150.

[0032] The transmission unit 150 transmits data to the processing device 100c, which is the downstream processing device 100. When a permission notice is supplied from the continuation determination unit 160 described later, 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 supplied from the continuation determination unit 160, the transmission unit 150 stops transmitting data to the processing device 100c.

[0033] 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 provided by the reception unit 110. For example, when a message indicating that the verification was successful is provided, the continuation determination unit 160 determines to continue data transmission to the downstream processing device 100. Then, the continuation determination unit 160 provides a permission notification to the transmission unit 150 to permit transmission. In response to this, the transmission unit 150 transmits encrypted data to the processing device 100c. On the other hand, when an abnormality message is provided, the continuation determination unit 160 determines to stop data transmission to the downstream processing device 100. Then, the continuation determination unit 160 provides a stop instruction to the transmission unit 150 to stop transmission. In response to this, the transmission unit 150 stops data transmission to the processing device 100c.

[0034] 3 shows a control system 20 as a specific example of a data processing system 10 to which the verification technique according to the present embodiment may be applied. Hereinafter, a case will be described in which the data processing system 10 is a control system 20 that controls a control target based on control parameters generated via a plurality of control processing devices 200. However, the present invention is not limited to this. As described above, the verification technique according to the present embodiment may be applied to various data processing systems 10 different from the control system 20.

[0035] In the control system 20 shown in this figure, an edge device 200a is used as the processing device 100a in the data processing system 10 in FIG. 1, a first calculation device 200b is used as the processing device 100b, a second calculation device 200c is used as the processing device 100c, a control parameter input device 200d is used as the processing device 100d, a controller 200e is used as the processing device 100e, and a 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.

[0036] 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 arithmetic device 200b and the second arithmetic device 200c belong to a non-control network, for example, the Internet, which is outside the control network.

[0037] Examples of such plants include industrial plants such as chemical and biotech 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.

[0038] The edge device 200a collects state data in such a plant (e.g., measurement data from a plurality of sensors installed in the plant) from the control target 200f. Then, the edge device 200a cleanses the state data and supplies only the necessary data to the non-control network (e.g., the first arithmetic device 200b).

[0039] 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 or the like. The first arithmetic device 200b acquires state data in a plant from the edge device 200a. Then, the first arithmetic device 200b generates first control data related to a control parameter for controlling the control target 200f based on the state data. The first arithmetic device 200b supplies the generated first control data to the second arithmetic device 200c.

[0040] The second arithmetic device 200c, like the first arithmetic device 200b, belongs to a non-controlled network and may be, for example, a SaaS provider. The second arithmetic device 200c acquires first control data from the first arithmetic device 200b. Then, the second arithmetic device 200c generates second control data related to control parameters for controlling the control target 200f based on the first control data. The second arithmetic device 200c supplies the generated second control data to the control parameter input device 200d.

[0041] The control parameter input device 200d acquires the second control data from the second arithmetic device 200c, and then supplies the control parameters based on the second control data to the controller 200e.

[0042] The controller 200e controls the controlled object 200f. The controller 200e may be, for example, a distributed control system (DCS). The controller 200e acquires control parameters from a control parameter input device 200d. The controller 200e then provides a control command based on the control parameters to the controlled object 200f.

[0043] The control object 200f is a device or apparatus to be controlled. For example, the control 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 a plant process. The control object 200f supplies state data of the plant to the edge device 200a in response to controlling the actuators in response to a control command from the controller 200e.

[0044] The verification technique according to the present embodiment may be applied, for example, to a control system 20 that controls a control target 200f based on control parameters generated via such a plurality of control processing devices 200a to 200e.

[0045] Fig. 4 shows an example of a verification system 30 according to the present embodiment. In this figure, a case where the verification technique according to the present embodiment is applied to the control system 20 in Fig. 3 is shown as an example. However, the present invention is not limited to this. As described above, the verification technique according to the present embodiment may be applied to various data processing systems 10 in which data is propagated or transformed via a plurality of processing devices 100.

[0046] As shown in the figure, the verification system 30 according to this embodiment includes a plurality of 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 arithmetic device 200b, the verification device 300c manages the second arithmetic 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 a plurality of verification devices 300a to 300e, each of which manages a plurality of control processing devices 200a to 200e. Such a plurality of verification devices 300 are connected to each other via a network so as to be able to communicate with each other.

[0047] 5 shows an example of a blockchain registered in the verification system 30 according to this embodiment. In this figure, a state in which blocks a, b, c, and d are registered in chronological order in a chain is shown. 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 arithmetic device 200b managed by the verification device 300b, block c is a block based on data in a second arithmetic 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.

[0048] 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 unit 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 unit 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 unit 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 with excellent tamper resistance. The verification technique according to this embodiment may target data registered in such a blockchain for verification.

[0049] 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 while sequentially changing its role between "a side requesting verification" and "a side responding to a verification request" as data is propagated or converted via a plurality of control processing devices 200 in the control system 20. This will be described in detail.

[0050] 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 a 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. In addition, when the verification device 300 can be connected to the Internet, the verification device 300 may be realized by cloud computing.

[0051] Furthermore, the verification device 300 may be an extension of the existing computer so that the existing computer can execute the verification function according to the present embodiment by executing a verification program on the existing computer. 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.

[0052] 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 may not necessarily match the actual device configuration. That is, even if one block is shown in this figure, it does not necessarily have to be configured by one device. Also, even if separate blocks are shown in this figure, it does not necessarily have to be configured by separate devices.

[0053] Here, among the above blocks, the data acquisition unit 315, the block generation unit 325, the encryption unit 330, and the verification request unit 335 mainly provide functions of the "side requesting verification". Meanwhile, among the above blocks, the block acquisition unit 350, the decryption unit 355, the verification unit 360, and the verification response unit 365 mainly provide functions of the "side responding to the verification request". Among the above blocks, the registration unit 310, the calculation unit 320, the verification result acquisition unit 340, and the output unit 345 provide functions of both the "side requesting verification" and the "side responding to the verification request". First, the functional blocks in the verification device 300 on the "side requesting verification" will be described.

[0054] The registration unit 310 registers and records in the block chain a block based on the data in each of the multiple control processing devices 200. In addition, the registration unit 310 registers a target block in the block chain according to a verification result, which will be described later.

[0055] The data acquisition unit 315 acquires target data, which is data in the target processing device 100 to be managed, in the data processing system 10 in which data is propagated or converted via a plurality of processing devices 100. 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 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. 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.

[0056] The calculation unit 320 calculates a hash value based on an upstream block that has been registered in the blockchain. In the flow of the “side requesting verification,” the calculation unit 320 supplies the calculated hash value to the block generation unit 325.

[0057] The block generation unit 325 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 control processing devices 200. For example, the block generation unit 325 generates a target block including 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.

[0058] 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 acquired the public key of the verification device 300 on the "side requesting the verification" in advance by using a trusted certificate authority or the like. The public key acquired by one of the verification devices 300 on the "side responding to the verification request" may be different from the public key acquired 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 acquired a different public key of the verification device 300 on the "side requesting the verification". The encryption unit 330 encrypts the target block using each private key corresponding to each public key 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.

[0059] The verification request unit 335 supplies the target block to a plurality of verification devices 300 which respectively 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.

[0060] The verification result acquisition unit 340 acquires the verification result 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 result 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.

[0061] 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 to be managed (for example, the first arithmetic device 200b in the case of the verification device 300b). On the other hand, when a verification result indicating that the verification of the target block is unsuccessful is obtained, the output unit 345 outputs an abnormality message. 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. In addition, the output unit 345 may output a message indicating that the verification has failed to the control processing device 200 to be managed. 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.

[0062] 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, the calculation unit 320, the verification result acquisition unit 340, and the output unit 345 provide the functions of both the "side requesting verification" and the "side responding to the verification request".

[0063] As described above, the registration unit 310 registers and records in the blockchain a block based on the data in each of the multiple control processing devices 200. In addition, the registration unit 310 registers a target block in the blockchain in accordance with a verification result, which will be described later.

[0064] In the 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 via a network, for example. 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 current block to the decoding unit 355 .

[0065] The decryption unit 355 decrypts the target block according to the target verification device 300 that is the supply source of the target block. Here, it is assumed that the verification device 300 that is the "side responding to the verification request" has obtained in advance the public keys of all the verification devices 300 that are "side requesting verification" by 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 is the supply source of 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.

[0066] As described above, the calculation unit 320 calculates a hash value based on an upstream block that has been registered in the blockchain. In the flow of the “side responding to a verification request”, the calculation unit 320 supplies the calculated hash value to the verification unit 360.

[0067] The verification unit 360 verifies the target block based on an upstream block that has been registered in the blockchain. For example, the verification unit 360 verifies the target block based on a 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.

[0068] 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 that supplied the target block. The verification response unit 365 also supplies the verification result for the target block to the decryption unit 355.

[0069] 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.

[0070] 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 notify the administrator of the verification system 30 that the verification of the target block has failed, for example, by issuing an alarm. In addition, the output unit 345 may output a message indicating 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).

[0071] Hereinafter, the operation of the verification device 300 according to this embodiment will be described in detail using a flow chart for each of the "side requesting verification" and "side responding to a verification request."

[0072] 7 shows an example of the operation flow of the verification device 300 on the side requesting verification. Here, we will explain an example in which the verification device 300 on the "side requesting verification" is the verification device 300b that manages the first arithmetic device 200b, and block b is the target block to be registered in the blockchain. Note that block a, which is an upstream block, is already registered in the blockchain.

[0073] In step 710, the verification device 300 acquires target data. For example, the data acquisition unit 315 acquires target data, which is data in a target processing device 100 to be managed, in a data processing system 10 in which data is propagated or converted via a plurality of processing devices 100. As an example, the data acquisition unit 315 in the verification device 300b acquires, as target data, data in a first arithmetic device 200b to be managed in a control system 20 that controls a control target 200f based on control parameters generated via a plurality of control processing devices 200a to 200e.

[0074] At this time, the data acquisition unit 315 may acquire, as input data, the transmission content of the edge device 200a supplied from the decryption unit 120 to the processing unit 130 in the first calculation device 200b. Also, the data acquisition unit 315 may acquire, as output data, the transmission content 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, the input data input from the upstream processing device 100 in the target processing device 100 and the 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.

[0075] 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, since the target block to be registered in the blockchain is block b, the calculation unit 320 in the verification device 300b performs a hash process on block a, which is an 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.

[0076] 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 the block a. The block generation unit 325 supplies the generated target block to the encryption unit 330.

[0077] 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 respective public keys provided to the multiple verification devices 300a, 300c, 300d, and 300e. The encryption unit 330 supplies the encrypted target block to the verification request unit 335.

[0078] 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 a plurality of verification devices 300 that each manage a plurality of 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 plurality of verification devices 300a, 300c, 300d, and 300e to each of the plurality of verification devices 300a, 300c, 300d, and 300e.

[0079] 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 advances the process to step 765.

[0080] In step 765, the verification device 300 determines whether the verification result indicates that the verification is successful. For example, the verification result acquisition unit 340 determines whether the verification result acquired in step 760 indicates that the verification is 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 is 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.

[0081] 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 is 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 to this, 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.

[0082] In step 775, the verification device 300 outputs a message indicating that the verification is successful. As an example, when the output unit 345 in the verification device 300b receives a verification result indicating that the verification is successful, the output unit 345 outputs a message indicating that the verification is successful to the first arithmetic device 200b that the verification device 300b manages. In response to this, the first arithmetic device 200b determines to continue data transmission to the downstream control processing device 200, and transmits data to the second arithmetic device 200c.

[0083] 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.

[0084] 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.

[0085] 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 arithmetic device 200b that the verification device 300b manages. In response to this, the first arithmetic device 200b determines to stop data transmission to the downstream control processing device 200, and stops data transmission to the second arithmetic device 200c.

[0086] 8 shows an example of the flow of operations in 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 the block b from the verification device 300b is the target block to be registered in the blockchain. Note that the upstream block, block a, is assumed to have already been registered in the blockchain.

[0087] In step 810, the verification device 300 acquires a target block. For example, 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. As an example, in a control system 20 that controls a control target 200f based on control parameters generated via a plurality of control processing devices 200a to 200e, the block acquisition unit 350 in the verification device 300e acquires a block b based on data in the first arithmetic device 200b to be verified as a target block from the verification device 300b that manages the first arithmetic device 200b. The block acquisition unit 350 supplies the acquired target block to the decryption unit 355.

[0088] 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.

[0089] 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, since the target block to be registered in the blockchain is block b, the calculation unit 320 in the verification device 300e performs a hash process on block a, which is an upstream block, to calculate the hash value of block a. The calculation unit 320 supplies the calculated hash value to the verification unit 360.

[0090] 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 registered in the blockchain.

[0091] 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 the process of step 835.

[0092] 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.

[0093] In step 840, the verification device 300 outputs an abnormality message. As an example, when 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 to this, the controller 200e determines to stop transmitting data to the downstream control processing device 200, and stops transmitting a control command to the control target 200f.

[0094] In step 845, the verification device 300 responds that the verification has failed. As an example, when the verification response unit 365 in the verification device 300e receives a verification result indicating that the verification of the target block has failed, the verification response unit 365 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.

[0095] On the other hand, if it is determined in step 830 that the hash values ​​match (Yes), the verification unit 360 supplies a verification result indicating that the verification of the target block was successful to the verification response unit 365. Then, the verification device 300 advances the process to step 850.

[0096] In step 850, the verification device 300 judges whether it is the main verification device. For example, the verification response unit 365 in the verification device 300e judges whether it is the main verification device that should supply the verification result among the multiple control processing devices 200. In this case, the verification response unit 365 may judge that it is the main verification device when the controller 200e that gives the control command corresponding to the control parameter to the control target 200f is the object of management, for example. In a control system that controls the control target 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 target 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 result. In addition, 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, the verification device 300e is mainly operated 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 by a predefined algorithm, order, or the like. For example, the main verification device may be rotated to distribute the processing load among the multiple verification devices 300.

[0097] If it is determined in step 850 that the verification device is the main verification device (Yes), the verification device 300 advances the process to step 855 .

[0098] In step 855, the verification device 300 registers the target block in the blockchain. As an example, when 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. Then, the decryption unit 355 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.

[0099] 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 supplies the verification result for the target block to the target verification device 300, which is the supplier of the target block, and responds to the verification request for the target block. In this way, the verification response unit 365 may determine whether it is a main verification device that should supply the verification result among the multiple verification devices 300, and if it is the main verification device, it may 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.

[0100] 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 advances the process to step 865 .

[0101] In step 865, the verification device 300 judges 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 judges 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 the 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.

[0102] 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, the decryption unit 355 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 according to the verification result.

[0103] 9 shows an example of the flow of operations in the control processing device 200. Here, a case where the control processing device 200 is the first arithmetic device 200b will be described as an example.

[0104] In step 910, the control processing device 200 receives data from the 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 transmission content to be transmitted using a hash function to calculate a hash value. Then, the edge device 200a transmits, as a signature, a ciphertext of the hash value obtained by encrypting the hash value with its own private key and the transmission content 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 manner from the edge device 200a. The receiving unit 110 supplies the received data to the decryption unit 120.

[0105] 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. Then, the decryption unit 120 uses the public key of the edge device 200a to decrypt the encrypted hash value and obtain the hash value. The decryption unit 120 also extracts the transmission content of the edge device 200a from the data received in step 910. Then, the decryption unit 120 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 to this, the decryption unit 120 supplies the transmission content of the edge device 200a to the processing unit 130.

[0106] 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. Then, the processing unit 130 supplies output data, which is a result of processing the input data, to the encryption unit 140 as the transmission content to be transmitted by the processing unit 130.

[0107] 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 transmission unit 150 to the verification device 300b that manages the first arithmetic device 200b.

[0108] In step 950, the control processing device 200 encrypts the data. As an example, the encryption unit 140 processes the transmission content to be transmitted by itself, which is the result of the processing in step 930, using 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 its own private key, are used as a signature. The encryption unit 140 supplies the data encrypted in this manner to the transmission unit 150.

[0109] 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 arithmetic 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.

[0110] In step 970, the control processing device 200 determines whether the message indicates that the verification was successful. As an example, the continuation determination 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 determination 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. Then, the control processing device 200 advances the process to step 980.

[0111] In step 980, the control processing device 200 transmits the data downstream. As an example, in response to the permission notification being provided, the transmission unit 150 transmits the data encrypted in step 950 to the second arithmetic device 200c, which is the downstream control processing device 200.

[0112] On the other hand, if it is determined in step 970 that the verification has failed (No), continuation determination section 160 determines to stop data transmission to downstream control processing device 200, and supplies a stop instruction to transmission section 150 to stop data transmission to downstream control processing device 200. Then, control processing device 200 advances the process to step 990.

[0113] In step 990, control processing device 200 stops transmitting data downstream. As an example, in response to the supply of the stop instruction, transmission unit 150 stops transmitting the data encrypted in step 950 to second arithmetic device 200c, which is the downstream control processing device 200.

[0114] In general data transactions, data integrity (mainly prevention of tampering) is achieved between two parties that exchange data by using a public key encryption method (PKI) and a digital signature based on PKI. In this case, tampering by the other party can only be detected between two parties that directly exchange data. Therefore, in a system in which multiple devices participate in data transactions, tampering in devices that do not directly exchange data cannot be detected. In general data verification, each of the multiple devices that participate in data transactions records its own processing log, and when a 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 that performs the audit cannot easily verify whether or not there has been tampering.

[0115] In addition, with the spread of various cloud services, it is considered that external service providers such as SaaS providers are used as at least some of the 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 path VPN formats. Therefore, there is a risk of tampering attacks on the place with the lowest security level, which becomes a bottleneck and reduces the security level of the entire system that trades data. Therefore, it is desired to reliably and easily realize tamper detection and audit trails for all devices participating in data trading as a whole system, without relying only on digital signatures between two parties.

[0116] 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 another processing device 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 a 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, it is possible to detect data tampering at each point of the data processing process and leave an audit trail that cannot be deleted or rewritten in a unified manner at each point.

[0117] Furthermore, the verification device 300 according to this embodiment outputs an abnormality message when the verification of the target block fails. As a result, when data tampering is suspected, the verification device 300 according to this embodiment can notify the administrator of the verification system 30 and can stop data transactions in the data processing system 10. Therefore, the verification device 300 according to this embodiment can prevent, for example, unintended control commands from being given to the control target.

[0118] Furthermore, 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 security level even when the target block is transferred between the multiple verification devices 300 for verification.

[0119] In addition, the verification device 300 according to this embodiment registers the target block in the blockchain according 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 that the verification was successful can be limited to only the main verification device, so that the processing load on the entire verification system 30 can be reduced. In this case, such a main verification device may be a verification device 300e that manages the controller 200e that gives a control command according to the control parameter to the 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.

[0120] In addition, the verification device 300 according to the present embodiment generates a target block by including a hash value calculated based on an upstream block in the target block. As a result, the verification device 300 according to the present embodiment can verify data while maintaining the excellent tamper resistance of conventional blockchains.

[0121] Furthermore, the verification device 300 according to the present embodiment generates input data and output data for a target processing device to be managed by including them in a target block. As a result, even if data is converted in any of the processing devices 100 among the multiple processing devices 100, the verification device 300 according to the present embodiment can determine at which stage the data was tampered with. Therefore, even if a problem occurs in a control parameter, for example, the verification device 300 according to the present embodiment can analyze the cause and perform a follow-up investigation of each processing location.

[0122] In the above description, the case where the verification system 30 includes a plurality of verification devices 300a-300e that manage the plurality of control processing devices 200a-200e, respectively, is shown as an example. 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-200e. In this case, some of the verification devices 300 may function only as "sides that respond to verification requests" without managing any of the control processing devices 200. This can ensure redundancy of records in the verification system 30 as a whole, thereby 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-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.

[0123] 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 is successful has been shown as an example. However, the present invention 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 is successful. In this case, the verification device 300 "requesting the verification" may determine that the verification of the target block is successful when all of the acquired verification results indicate that the verification is successful. In other words, the verification device 300 "requesting the verification" may determine that the verification of the target block is successful when it unanimously receives verification results indicating that the verification is successful from the verification devices 300 "responding to the verification request".

[0124] In the above description, the verification device 300 has managed the edge device 200a, the first arithmetic device 200b, the second arithmetic device 200c, the control parameter input device 200d, and the controller 200e as an example. However, the present invention is not limited to this. The verification device 300 according to this embodiment may manage various devices that may collect data and provide it to other devices, such as a gateway device, a firewall device, a communication router, a network switch, a smart meter, an IoT device, an IoT device control terminal, a robot, a process control device, an edge computer, and a server computer.

[0125] Various embodiments of the present invention may be described with reference to flow charts and block diagrams, where the blocks may represent (1) stages of a process in which operations are performed or (2) sections of an apparatus responsible for performing the operations. 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.

[0126] 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 flowcharts or block diagrams. 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.

[0127] 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.

[0128] Computer readable instructions may be provided to a processor or programmable circuitry of a general purpose computer, special purpose computer, or other programmable data processing apparatus, either locally or over a local area network (LAN), a wide area network (WAN), such as 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.

[0129] 10 illustrates an example of a computer 9900 in which aspects of the present invention may be embodied in whole or in part. Programs installed on the computer 9900 may cause the computer 9900 to function as or perform operations associated with an apparatus or one or more sections of the apparatus according to an embodiment of the present invention, and / or to perform a process or steps of a process according to an embodiment of the present invention. Such programs may be executed by the CPU 9912 to cause the computer 9900 to perform specific operations associated with some or all of the blocks of the flowcharts and block diagrams described herein.

[0130] The computer 9900 according to this embodiment includes a CPU 9912, a RAM 9914, a graphic controller 9916, and a display device 9918, which are connected to each other 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.

[0131] The CPU 9912 operates according to 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.

[0132] The communication interface 9922 communicates with other electronic devices over 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.

[0133] The ROM 9930 stores therein a boot program or the like 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.

[0134] 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, installed in the hard disk drive 9924, the RAM 9914, or the ROM 9930, which are also examples of computer-readable media, and executed by the CPU 9912. 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 implementing information manipulation or processing according to the use of the computer 9900.

[0135] For example, when communication is performed between the computer 9900 and an external device, the CPU 9912 may execute a communication program loaded in 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.

[0136] The CPU 9912 may also cause all or a necessary portion of a file or database stored on an external recording medium such as the hard disk drive 9924, the 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.

[0137] 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, when a plurality of 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 plurality of 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.

[0138] The above-described programs or software modules may be stored in 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 a 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 programs to the computer 9900 via the network.

[0139] Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It is clear to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the description of the claims that such modifications and improvements can also be included in the technical scope of the present invention.

[0140] It should be noted that 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," "prior to," etc., and may be realized 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 essential to perform the process in this order. [Explanation of symbols]

[0141] 10 Data Processing System 100 Processing equipment 110 Receiving unit 120 Decoding section 130 Processing section 140 Cipher Department 150 Transmitter 160 Continuation Judgment Section 20 Control System 200 Control processing device 200a Edge Device 200b First computing unit 200c Second computing unit 200d Control parameter input device 200e Controller 200f Control target 30 Verification System 300 Verification Device 310 Registration Department 315 Data Acquisition Department 320 Calculation Department 325 Block Generation Unit 330 Encryption section 335 Verification Request Section 340 Verification result acquisition unit 345 Output section 350 Block Acquisition Department 355 Decoding section 360 Verification Department 365 Validation Response Part 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

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, 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 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; 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; A verification device comprising:

2. 2. The verification device according to claim 1, further comprising an output unit that outputs an abnormality message when the obtained verification result indicates that the verification of the target block has failed.

3. an encryption unit that encrypts the target block for each of the plurality of verification devices; 3 . The verification device according to claim 1 , wherein the verification request unit supplies each of the target blocks encrypted for each of the other verification devices among the plurality of verification devices to each of the other verification devices among the plurality of verification devices.

4. 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.

5. 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.

6. 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 generation unit generates the target block including the hash value.

7. 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.

8. A block acquisition unit for acquiring 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; The verification device according to claim 1 , further comprising:

9. A verification method executed by one of a plurality of verification devices that manages 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, comprising: each of the plurality of verification devices acquires data in a processing device to be managed among the plurality of processing devices, and requests verification of a block based on the data; The verification method is as follows: The one verification device acquires target data which is data in a target processing device to be managed; The one verification device generates a target block to be registered in a blockchain that records blocks based on data in each of the multiple processing devices, based on the target data; the one verification device supplies the target block to another verification device among the plurality of verification devices and requests verification of the target block; The one verification device registers the target block in the blockchain in response to a verification result from at least one other verification device among the plurality of verification devices; A verification method comprising:

10. 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 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; A verification program that makes it work.

Citation Information

Patent Citations

  • Information relaying device, remote service system, information relaying method and program

    JP2019215715A

  • Information processing system and method for controlling information processing system

    JP2020197873A

  • Supply chain management method, supply chain management program, supply chain management system, and transaction record display program

    WO2021002226A1

  • Management device, management system, management method, management program, and recording medium

    WO2021002284A1