WO2019078343A1 - 暗号化制御システム、暗号化制御方法及び暗号化制御プログラム - Google Patents

暗号化制御システム、暗号化制御方法及び暗号化制御プログラム Download PDF

Info

Publication number
WO2019078343A1
WO2019078343A1 PCT/JP2018/038954 JP2018038954W WO2019078343A1 WO 2019078343 A1 WO2019078343 A1 WO 2019078343A1 JP 2018038954 W JP2018038954 W JP 2018038954W WO 2019078343 A1 WO2019078343 A1 WO 2019078343A1
Authority
WO
WIPO (PCT)
Prior art keywords
encryption
date
processing unit
time information
public key
Prior art date
Application number
PCT/JP2018/038954
Other languages
English (en)
French (fr)
Inventor
公尚 小木曽
崇司 鈴木
Original Assignee
国立大学法人電気通信大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 国立大学法人電気通信大学 filed Critical 国立大学法人電気通信大学
Priority to US16/756,159 priority Critical patent/US11196723B2/en
Priority to JP2019548817A priority patent/JP7391368B2/ja
Publication of WO2019078343A1 publication Critical patent/WO2019078343A1/ja
Priority to JP2023194586A priority patent/JP2024012613A/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Definitions

  • the present invention relates to an encryption control system, an encryption control method, and an encryption control program.
  • Patent Document 1 discloses a technology of an encryption control system including a part of the inventor of the present invention.
  • Patent Document 1 the inventor eliminated the need for a public key and / or a secret key in the controller by performing arithmetic processing directly on the encrypted input data and output data by the controller which is the core of the control system. We succeeded in realizing the control system. According to the present invention, the control system only needs to equip the plant with the secret key, and it is realized to reduce the risk of leakage of the public key and / or the secret key. However, only one public-private key pair is used in Patent Document 1. For this reason, there is a possibility that the code may be decrypted if a vast amount of computer resources such as cloud computing are used.
  • An object of the present invention is to provide an encryption control system, an encryption control method, and an encryption control program that can solve the problems and further reduce the risk of leakage of the encryption key.
  • an encryption control system of the present invention has a controller and a plant side control device.
  • the controller encrypts the target value with the public key and outputs the encryption target value.
  • the controller encrypts the target value with the public key and outputs the encryption target value.
  • the first encryption processing unit For the first encryption processing unit, select a predetermined record from the public key sub-table in which a plurality of public keys are stored, and encrypt the control system parameter encrypted with the public key sub-table public key
  • a first table record selection processing unit for selecting a predetermined record from an encryption parameter table consisting of records in which parameters are recorded, and an encryption target error from the plant side control device, the first table record selection processing
  • a multiplication unit for multiplying the encryption parameter selected by the unit to output an encryption control input, and providing date / time information to be added to the encryption control input outputted from the multiplication unit, and a first table record selection processing unit And a second date and time information generation unit that gives the start timing.
  • the plant-side control device decrypts the encrypted target value received from the controller to obtain the target value, and decrypts the encrypted control input received from the controller to obtain the control input, based on the control input.
  • a control processing unit configured to control a predetermined control target.
  • a signal conversion processing unit that acquires an observed value from a sensor that observes a control target, a target error calculation processing unit that calculates a target error by subtracting the observed value from a target value, and a target error are encrypted and encrypted
  • a second encryption processing unit for outputting an error, and a predetermined record selected for the decryption processing unit from a public key table in which a plurality of secret keys forming a pair of public key and public key are stored,
  • the second encryption processing unit is provided with a second table record selection processing unit for selecting a predetermined record from the public key table, and date and time information to be added to the encryption target error output from the second encryption processing unit.
  • a second date and time information generation unit for giving an activation timing to the second table record selection processing unit.
  • the first date and time information generation unit and the second date and time information generation unit generate activation timings simultaneously with each other.
  • FIG. 1 is a schematic view showing an entire configuration of an encryption control system according to an embodiment of the present invention. It is a block diagram which shows the hardware constitutions of an input device. It is a block diagram which shows the hardware constitutions of a controller. It is a block diagram which shows the hardware constitutions of a plant side control apparatus. It is a block diagram which shows the hardware constitutions of a date information source apparatus.
  • FIG. 2 is a block diagram illustrating software functions in a control network of the encryption control system.
  • FIG. 2 is a block diagram illustrating software functions in an information network of the encryption control system. It is a table showing field composition of a public key table, a public key sub-table and an encryption parameter table.
  • FIG. 1 is a schematic view showing an entire configuration of an encryption control system 101 according to an embodiment of the present invention.
  • the encrypted value is indicated by a function Enc ().
  • the encryption control system 101 includes an input device 102, a plant-side control device 103, a controller 104, and a date and time information source device 105.
  • the input device 102 transmits an encryption target value Enc (r) obtained by encrypting the target value r with the public key encryption to the plant-side control device 103 through the controller 104.
  • a control target 106 and a sensor 107 are connected to the plant-side control device 103.
  • the plant-side control device 103 gives a control signal to the control target 106, and acquires from the sensor 107 an observation value y which is state information of the control target 106.
  • the controller 104 is connected to the second control network L109 to transmit and receive encryption control information.
  • the controller 104 is connected to the input device 102 by a first control network L108, and is connected to the plant-side control device 103 by a second control network L109.
  • the controller 104 receives the encryption target value Enc (r) from the input device 102 through the first control network L108, and receives the encryption target error Enc ( ⁇ ) from the plant-side control device 103 through the second control network L109. Then, predetermined encrypted processing is performed without decrypting the encrypted information, and the encryption control input Enc (u) which is the calculation result is sent to the plant side control apparatus 103 through the second control network L109. Send.
  • the public key encryption used in the encryption control system 101 according to the embodiment of the present invention is the same as that disclosed in Patent Document 1, for example, a public key encryption having homomorphism such as RSA encryption (Rivest Shamir Adleman).
  • RSA encryption Rivest Shamir Adleman
  • two encrypted values are multiplied as they are without decryption, and the multiplied value is decrypted to match the value obtained by multiplying the value before encryption. Is possible.
  • a description of homomorphism of public key cryptography is described in Patent Document 1, and in the encryption control system 101 according to the embodiment of the present invention, public key cryptography is used except that a plurality of pairs of public key and secret key are used. There is no change in the operation processing itself, so a detailed description of the public key encryption itself is omitted.
  • the input device 102, the controller 104, and the plant-side control device 103 are connected to the date and time information source device 105 through the information network L110.
  • the date and time information source device 105 is a personal computer or server on which a network OS, an NTP server (Network Time Protocol), and an NTP client operate.
  • the first control network L108 and the second control network L109 are networks emphasizing data transfer reliability, and various types of network interfaces can be used.
  • the information network L110 is not required to be as secure as the control network.
  • the well-known TCP / IP is used.
  • the input device 102, the controller 104, and the plant-side control device 103 are devices called programmable controllers.
  • a case-like mount base 111 having a large number of slots accommodates a module sized to be accommodated in the slot according to the required function.
  • the mount base 111 incorporates an interface for connecting modules to one another. When a module is inserted into a slot, data transmission / reception between modules and appropriate power supply are established.
  • a CPU module 112, an information network module 113, and a first control network module 114a are mounted on a mount base 111a of the input device 102.
  • a CPU module 112, an information network module 113, a first control network module 114b, and a second control network module 115 are mounted on a mount base 111b of the controller 104.
  • a CPU module 112, an information network module 113, a second control network module 115, and an input / output module 116 are mounted on a mount base 111c of the plant control apparatus 103.
  • the first control network module 114 a of the input device 102 is the transmitting side
  • the first control network module 114 b of the controller 104 is the receiving side.
  • the transmission side terminal and the reception side terminal of the controller 104 and the second control network module 115 of the plant side controller 103 are mutually connected.
  • FIG. 2 is a block diagram showing the hardware configuration of the input device 102.
  • the input device 102 includes a CPU module 112 connected to a module bus 201 provided in the mount base 111, an information network module 113, and a first control network module 114a.
  • the CPU module 112 includes a CPU 202 connected to an internal bus 206, a ROM 203, a RAM 204, and an RTC (Real Time Clock) 205 that generates date and time information.
  • the internal bus 206 is connected to the module bus 201.
  • the ROM 203 of the CPU module 112 stores a program for executing control arithmetic processing and encryption processing in the encryption control system 101.
  • the information network module 113 includes a CPU 202, a ROM 203, a RAM 204, and an NIC (Network Interface Card) 207 connected to an internal bus 206.
  • the internal bus 206 is connected to the module bus 201.
  • the ROM 203 of the information network module 113 stores a network OS, an NTP server program, an NTP client program, and the like.
  • the transmission unit 208 is connected to the module bus 201.
  • FIG. 3 is a block diagram showing the hardware configuration of the controller 104.
  • the controller 104 includes a CPU module 112, an information network module 113, a first control network module 114b, and a second control network module 115, which are connected to a module bus 201 provided in the mount base 111. Since the CPU module 112 and the information network module 113 are the same as those of the input device 102, the description will be omitted.
  • the receiver 309 is connected to the module bus 201 in the first control network module 114 b.
  • a transmission unit 208 and a reception unit 309 are connected to the internal bus 206.
  • the internal bus 206 is connected to the module bus 201.
  • FIG. 4 is a block diagram showing the hardware configuration of the plant control device 103.
  • the plant-side control device 103 includes a CPU module 112, an information network module 113, a second control network module 115, and an input / output module 116, which are connected to a module bus 201 provided in the mount base 111. Since the CPU module 112, the information network module 113, and the second control network module 115 are the same as those of the controller 104, the description will be omitted.
  • the input / output module 116 includes an A / D converter 410 connected to the internal bus 206, to which the sensor 107 is connected, and a D / A converter 411 to which the control target 106 is connected.
  • the internal bus 206 is connected to the module bus 201.
  • the input / output module 116 is merely an example, and a signal processing circuit or the like connected to the A / D converter 410 and the D / A converter 411 in accordance with the connected object such as the control object 106 or the sensor 107 May be required.
  • FIG. 5 is a block diagram showing the hardware configuration of the date and time information source device 105.
  • the date and time information source device 105 configured of a server device or a personal computer includes a CPU 501, a ROM 502, a RAM 503, a non-volatile storage 504, an RTC 505, and an NIC 506 connected to a bus 507.
  • the display unit 508 and the operation unit 509 may be provided.
  • a network OS, an NTP server program, and an NTP client program are stored in the non-volatile storage 504.
  • FIG. 6 is a block diagram showing the software functions of the encryption control system 101 in the control network.
  • the input device 102 generates the encryption target value Enc (r) with respect to the plant-side control device 103, and transmits the generated encryption target value Enc (r) to the plant-side control device 103 via the controller 104.
  • the target value input unit 601 supplies the target value r not encrypted to the input / output control unit 602.
  • the input / output control unit 602 delivers the target value r input from the target value input unit 601 to the encryption processing unit 603. Then, the encryption target value Enc (r) generated by the encryption processing unit 603 is received and transmitted to the controller 104.
  • the encryption processing unit 603 performs encryption processing on the target value r received from the input / output control unit 602 using the public key record selected by the table record selection processing unit 605 from the public key sub-table 604. Then, the generated encryption target value Enc (r) is delivered to the input / output control unit 602.
  • the table record selection processing unit 605 generates a record number (label) of the public key sub-table 604 based on the current date and time information received from the date and time information generation unit 606. Then, the public key recorded in the record of the public key sub-table 604 corresponding to the generated label is read and handed over to the encryption processing unit 603.
  • the date and time information generation unit 606 outputs the current date and time information, and performs start and stop control on the table record selection processing unit 605.
  • the encryption target value Enc (r) transmitted from the input device 102 to the controller 104 through the cable of the first control network module 114 a is input to the input / output control unit 607 of the controller 104.
  • the input / output control unit 607 transmits the encrypted target value Enc (r) received from the input device 102 as it is to the plant-side control device 103 through the transmission unit 208 of the second control network module 115.
  • the encryption target error Enc ( ⁇ ) received from the plant-side control device 103 through the reception unit 309 of the second control network module 115 is delivered to the multiplication unit 608.
  • the multiplication unit 608 performs multiplication processing with the encryption target error Enc ( ⁇ ) using the encryption parameter Enc (Parameters) selected by the table record selection processing unit 610 from the encryption parameter table 609, thereby performing encryption control. Calculate the input Enc (u).
  • the multiplication process between the encryption parameter Enc (Parameters) and the encryption target value Enc (r) in the multiplication unit 608 is not a simple multiplication but a partial multiplication process disclosed in Patent Document 1. is there.
  • the multiplication unit 608 delivers the encryption control input Enc (u) calculated by multiplication processing of the encryption parameter Enc (Parameters) and the encryption target value Enc (r) to the input / output control unit 607.
  • the table record selection processing unit 610 uses the record number (label of the encryption parameter table 609) based on the current date and time information included in the data frame received from the plant control device 103 through the reception unit 309 of the second control network module 115. Generate). Then, the encryption parameter recorded in the record of the encryption parameter table 609 corresponding to the generated label is read and delivered to the multiplication unit 608.
  • the date and time information generation unit 611 outputs current date and time information, and also outputs date and time information (hereinafter “start date and time information”) instructed by the date and time information generation unit 611 of the controller 104 at the start time of synchronous operation. In addition, start and stop control of the table record selection processing unit 610 is performed.
  • the current date and time information generated by the date and time information generation unit 611 of the controller 104 differs from the date and time information generation unit 606 of the input device 102, and the table record selection processing unit 610 executes label operation of the encryption parameter table 609.
  • the current date and time information generated by the date and time information generation unit 611 is stored in the encoding date and time field of the data frame of the encryption control input Enc (u) transmitted from the multiplication unit 608 through the input / output control unit 607 and the transmission unit 208 It is stored as encoding date and time information.
  • the encryption target value Enc (r) and the encryption control input Enc (u) transmitted from the controller 104 to the plant-side control device 103 through the transmission unit 208 of the second control network module 115 are the second target of the plant-side control device 103.
  • the decryption processing unit 612 is input through the reception unit 309 of the control network module 115.
  • the decryption processing unit 612 decrypts the encryption target value Enc (r) and the encryption control input Enc (u) using the secret key acquired from the table record selection processing unit 613.
  • the decoded target value r and the base value of the control input u are handed over to the control operation processing unit 614.
  • the control arithmetic processing unit 614 calculates target values r and control values u that are the basis of the control inputs u, and generates target values r and control inputs u.
  • the control input u is handed over to the control processing unit 615.
  • the control processing unit 615 generates a control signal from the control input u and controls the control target 106. For example, if the control target 106 is a motor, the control processing unit 615 controls voltage, phase, and the like applied to the motor.
  • the control target 106 is controlled by the control processing unit 615, the operation of the control target 106 is detected by the sensor 107.
  • the signal conversion processing unit 616 converts the observation signal output from the sensor 107 into an observation value y.
  • the observation value y output from the signal conversion processing unit 616 is input to the target error operation processing unit 617 together with the target value r output from the control operation processing unit 614.
  • the target error calculation processing unit 617 subtracts the observed value y from the target value r and outputs a target error ⁇ .
  • the target error ⁇ is encrypted by the encryption processing unit 603 and converted into an encrypted target error Enc ( ⁇ ).
  • the encryption target error Enc ( ⁇ ) is transmitted to the controller 104 through the transmission unit 208 of the second control network module 115.
  • the table record selection processing unit 613 records the record number (label of the public key table 618 based on the current date information and start date information contained in the data frame received from the controller 104 through the receiving unit 309 of the second control network module 115). Generate). Then, the secret key recorded in the record of the public key table 618 corresponding to the generated label is read and handed over to the decryption processing unit 612. Similarly, the public key recorded in the record of the public key table 618 corresponding to the generated label is read and handed over to the encryption processing unit 603.
  • the date and time information generation unit 619 outputs current date and time information, and also outputs date and time information (hereinafter “start date and time information”) instructed by the date and time information generation unit 611 of the controller 104 at the start time of synchronous operation.
  • the date and time information generation unit 619 controls start and stop of the table record selection processing unit 610.
  • the current date and time information generated by the date and time information generation unit 619 of the plant-side control device 103 is different from the date and time information generation unit 606 of the input device 102 and is a label of the public key table 618 executed by the table record selection processing unit 613.
  • the current date and time information generated by the date and time information generation unit 619 is used as encoding date and time information in the encoding date and time field of the data frame of the encryption target error Enc ( ⁇ ) transmitted from the encryption processing unit 603 through the transmission unit 208. Stored.
  • the input / output control unit 602 of the input device 102 may be connected to an external monitoring device (not shown) as needed.
  • the monitoring worker of the encryption control system 101 connects an external monitoring device to the input device 102 to perform predetermined monitoring tasks and the like.
  • the input / output control unit 607 of the controller 104 has a log table 620 for recording the encryption target value Enc (r), the encryption control input Enc (u), the encryption target error Enc ( ⁇ ), etc. while being encrypted. It is provided and used for monitoring work.
  • FIG. 7 is a block diagram showing the software function of the encryption control system 101 in the information network L110.
  • the date and time information generation unit 606 of the input device 102, the date and time information generation unit 611 of the controller 104, and the date and time information generation unit 619 of the plant control device 103 are connected to the date and time information source device 105 through the information network L110.
  • the date and time information generation unit 606 of the input device 102, the date and time information generation unit 611 of the controller 104, and the date and time information generation unit 619 of the plant side control device 103 are similar to the date and time information source device 105.
  • each function of the NTP client program, and each date and time information generation unit 606 synchronizes with the date and time information of the date and time information source device 105. Furthermore, any one of the date and time information generation unit 606 of the input device 102, the date and time information generation unit 611 of the controller 104, and the date and time information generation unit 619 of the plant control device 103 directs the start of synchronous operation. The other two play the role of master, and the other two play the role of slave that performs synchronous operation according to the instructions of the master.
  • FIG. 8 is a table showing field configurations of the public key table 618, the public key sub-table 604, and the encryption parameter table 609.
  • the public key table 618 has a record number field, a public key field, and a secret key field.
  • the record number field stores an integer starting with one. This record number is a number that uniquely identifies a record in the public key table 618, and is also called a label.
  • the public key field stores a public key for encrypting a desired value of the public key cryptosystem.
  • the secret key field stores a secret key to be paired with the public key of the public key field for decrypting a desired encrypted value of the public key cryptosystem.
  • the public key sub-table 604 has a record number field and a public key field. That is, the public key sub-table 604 is a subset of the public key table 618 in which the secret key field is deleted from the public key table 618.
  • the encryption parameter table 609 has a record number field, an encryption first parameter field, an encryption second parameter field, and an encryption third parameter field.
  • the encrypted first parameter field stores an encrypted first parameter Enc (Kp) obtained by encrypting the first parameter Kp serving as the gain of the control system.
  • the encrypted second parameter field stores an encrypted second parameter Enc (Ki) obtained by encrypting the second parameter Ki serving as the gain of the control system.
  • the encrypted third parameter field stores an encrypted third parameter Enc (Kd) obtained by encrypting the third parameter Kd serving as the gain of the control system.
  • the first parameter Kp, the second parameter Ki, and the third parameter Kd are invariant values in the control system, and are determined by a predetermined calculation when designing the control system.
  • the encryption parameter table 609 is provided with fields of encryption parameters in accordance with the number of parameters required by the control system.
  • the encryption first parameter field in the record of the record number field of the encryption parameter table 609 is “1”, the first parameter Kp in the public key field of the record of the public key table 618, and the record number field of the public key table 618
  • the encrypted first parameter Enc (Kp) encrypted using the stored public key is stored.
  • the second parameter Ki is disclosed, and the record number field of the public key table 618 is published in the record "1”.
  • An encrypted second parameter Enc (Ki) encrypted using the public key stored in the key field is stored.
  • the third parameter Kd is disclosed in the third encrypted parameter field in the record where the record number field of the encryption parameter table 609 is "1", and the third published parameter in the record number field of the public key table 618 is "1".
  • the encrypted third parameter Enc (Kd) encrypted using the public key stored in the key field is stored.
  • the encryption first parameter field in the record of the record number field of the encryption parameter table 609 is “2”, the first parameter Kp, and the public key field of the record of the public key table 618 in the record number field of “2”
  • the encrypted first parameter Enc (Kp) encrypted using the stored public key is stored.
  • the encryption parameters of each record in the encryption parameter table 609 are encrypted with the public key stored in the public key field of the public key table 618 associated with the record number field of each record.
  • FIG. 9A is a block diagram for explaining the software function of the table record selection processing unit 605 of the input device 102.
  • the current date and time information output from the date and time information generation unit 606 is input to the step number calculation unit 902 together with the start date and time information 901 stored at the synchronous operation start time.
  • the step number calculation unit 902 subtracts the start date and time information 901 from the current date and time information and divides by the step time to calculate the number of steps. For example, when the step time is 10 msec, the current date and time information is 09:30 05.100 seconds on November 1, 2017, and the start date and time information 901 is 09:30 05.000 seconds on November 1, 2017, the step is performed.
  • the step time coincides with the control cycle of the control target 106.
  • the encryption control system according to the embodiment of the present invention, the start date and time of the control program is set to 0, and the number of steps is counted for each control cycle.
  • the number of steps is used by a pseudo random number calculation unit 903 described later. Further, as will be described in detail with reference to FIG. 13, in the plant-side control device 103, the number of steps proceeds by “1” between the data to be received and the data to be transmitted.
  • the number of steps output by the step number calculation unit 902 is input to the pseudo random number calculation unit 903.
  • the pseudo random number calculation unit 903 is given an initial value 904, and generates a pseudo random number of an integer of 0 or more or a natural number by repeating the definite arithmetic processing by the number of inputted steps.
  • the generated pseudo random numbers are subjected to a remainder operation according to the number of records in the public key sub-table 604, and this remainder becomes a label, that is, a record number.
  • the pseudo random number calculation unit 903 reads the public key field of the public key sub-table 604 using the label, and outputs the public key to the encryption processing unit 603.
  • each pseudorandom number calculation unit 903 given the same number of steps outputs the same label.
  • FIG. 9B is a block diagram for explaining the software function of the table record selection processing unit 610 of the controller 104.
  • the data frame D 905 received from the plant-side control device 103 is provided with a start date and time field and an encoding date and time field.
  • the encoding date information included in the encoding date field and the start date information 901 included in the start date field are input to the step number calculation unit 902.
  • the step number calculation unit 902 subtracts the start date and time information 901 from the encoding date and time information and divides by the step time to calculate the number of steps. That is, the process of the step number calculation unit 902 in the controller 104 is the same as the operation number calculation unit 902 of the input device 102 except that the input data is different.
  • the number of steps output by the step number calculation unit 902 is input to the pseudo random number calculation unit 903.
  • the pseudo random number calculation unit 903 is given an initial value 904, and generates a pseudo random number of an integer of 0 or more or a natural number by repeating the definite arithmetic processing by the number of inputted steps.
  • the generated pseudo random numbers are subjected to a remainder operation according to the number of records in the encryption parameter table 609, and this remainder becomes a label, that is, a record number.
  • the pseudo random number calculation unit 903 reads the encrypted first parameter field, the encrypted second parameter field, and the encrypted third parameter field of the encryption parameter table 609 using the label, and the encrypted first parameter and the encrypted second parameter And the encrypted third parameter to the multiplication unit 608.
  • FIG. 9C is a block diagram for explaining the software function of the table record selection processing unit 613 at the encryption target value of the plant-side control apparatus 103.
  • the data frame D 906 received from the input device 102 through the controller 104 has an encoding date / time field in addition to the encryption target value Enc (r).
  • the encoding date and time information included in the encoding date and time field is input to the step number calculation unit 902 together with the start date and time information 901 stored at the synchronous operation start time.
  • the step number calculation unit 902 subtracts the start date and time information 901 from the encoding date and time information and divides by the step time to calculate the number of steps. That is, the process of step number calculating section 902 at the encryption target value of plant side control apparatus 103 is the same as that of step number calculating section 902 of input apparatus 102 except that the input data is different. is there.
  • the number of steps output by the step number calculation unit 902 is input to the pseudo random number calculation unit 903.
  • the pseudo random number calculation unit 903 is given an initial value 904, and generates a pseudo random number of an integer of 0 or more or a natural number by repeating the definite arithmetic processing by the number of inputted steps.
  • the generated pseudo random numbers are subjected to a remainder operation according to the number of records in the public key table 618, and this remainder becomes a label, that is, a record number.
  • the pseudo random number calculation unit 903 reads the secret key field of the public key table 618 using the label, and outputs the secret key to the decryption processing unit 612.
  • FIG. 10 is a block diagram for explaining the software function of the table record selection processing unit 613 in the encryption control input of the plant-side control apparatus 103.
  • the data frame D1007 received from the controller 104 is provided with a start date and time field and an encoding date and time field.
  • the encoding date information included in the encoding date field and the start date information 901 included in the start date field are input to the step number calculation unit 902.
  • the step number calculation unit 902 subtracts the start date and time information 901 from the encoding date and time information and divides by the step time to calculate the number of steps.
  • 9A, 9B and 9C is that the start date and time information 901 is subtracted from the encoding date and time information and divided by the step time. Then, not only the number of steps is output to the pseudo random number calculation unit 903 but also the number of steps + 1 is output.
  • the number of steps and the value of the number of steps + 1 output from the number-of-steps calculation unit 902 are input to the pseudorandom number calculation unit 903.
  • the pseudo random number calculation unit 903 is given an initial value 904, and generates a pseudo random number of an integer of 0 or more or a natural number by repeating the definite arithmetic processing by the number of inputted steps.
  • the generated pseudo random numbers are subjected to a remainder operation according to the number of records in the public key table 618, and this remainder becomes a label, that is, a record number.
  • the pseudo random number calculation unit 903 reads the secret key field of the public key table 618 using the label corresponding to the number of steps, and outputs the secret key to the decryption processing unit 612.
  • the pseudo random number calculation unit 903 reads the public key field of the public key table 618 using the label corresponding to the value of the step number + 1, and outputs the public key to the encryption processing unit 603.
  • the pseudo random number calculation units 903 provided in each of the units 613 all incorporate the same definite arithmetic processing. Therefore, when the same initial value 904 is given, the same label is output if the number of steps is the same.
  • FIG. 11 is a flowchart showing a flow of synchronous operation start processing in the date and time information generation unit 611 of the controller 104.
  • FIG. 11 is described on the premise that the date and time information generation unit 611 of the controller 104 is a master, the same is true even if the input device 102 and the plant-side control device 103 are masters.
  • the date and time information generation unit 611 of the controller 104 confirms whether or not its date and time information is calibrated with an error sufficiently smaller than the date and time information output by the date and time information source device 105 (S1102). ).
  • the date and time information generation unit 611 itself of the controller 104 is calibrated with a sufficiently small error from the date and time information output by the date and time information source device 105 (YES in S1102), then the date and time information generation of the controller 104
  • the unit 611 makes the date and time information generation unit 606 of the input device 102 calibrate whether or not the date and time information generation unit 606 of the input device 102 is sufficiently smaller than the date and time information output from the date and time information source device 105. It inquires (S1103).
  • the date and time information of the date and time information generation unit 606 of the input device 102 is calibrated with a sufficiently small error from the date and time information output from the date and time information source device 105 (YES in S1103), then the date and time information generation of the controller 104
  • the unit 611 corrects the date and time information generation unit 619 of the plant side control device 103 with a sufficiently small error from the date and time information output by the date and time information source device 105 with respect to the date and time information generation unit 619 of the plant side control device 103. It is inquired whether there is any (S1104).
  • step S1102 if the calibration of the date and time information is not completed normally (NO in S1102, NO in S1103, NO in S1104), the process returns to step S1102 and the confirmation operation is repeated. .
  • step S1104 if the date and time information of the date and time information generation unit 619 of the plant-side control device 103 is calibrated with an error small enough to the date and time information output by the date and time information source device 105 (YES in S1104), All the date and time information generation units 606 of the input device 102, the controller 104, and the plant side control device 103 are calibrated. Therefore, the date and time information generation unit 611 of the controller 104 cooperates with the pseudo random number calculation unit 903 of the table record selection processing unit 610 as a preparation stage of the synchronous operation to set the time for starting the synchronous operation, the step time, and the like.
  • Parameters such as the initial value 904 to be given to the pseudo random number calculation unit 903 and the pseudo random number calculation unit 903 of the plant control device 103 are determined, and transmitted to the input device 102 and the date and time information generation unit 619 of the plant control device 103 (S1105) .
  • step S1105 When preparation for the synchronous operation is completed in step S1105, the date and time information generation unit 611 of the controller 104 waits until the set synchronous operation start time (NO in S1106) and when the synchronous operation start time comes (YES in S1106), The synchronous operation is started (S1107), and the series of processing is ended (S1108).
  • FIG. 12 is a flowchart showing the flow of the operation of the pseudo random number calculation unit 903 of the controller 104.
  • the pseudo random number calculation unit 903 determines the point P on the elliptic curve determined in step S1202 (S1203). It is a requisite condition that the point P is not zero at the y coordinate.
  • the above coefficients a and b and point P, and the number p of records of the public key sub-table 604, the encryption parameter table 609 and the public key table 618 correspond to the pseudo random number calculation unit 903 of the input device 102 and the pseudo of the plant side control device 103. This is the initial value 904 given to the random number calculation unit 903.
  • the pseudo random number calculation unit 903 cooperates with the date and time information generation unit 611 to determine the time to start the synchronous operation, the step time, and the coefficients a and b and the point P which are the initial value 904, the date and time information of the input device 102. It transmits to the production
  • the above steps S1202, S1203 and S1204 correspond to step S1105 in FIG.
  • the pseudo random number calculation unit 903 initializes the number of steps t to 0 and substitutes the coordinate information of the point P for the point Q (S1205). Then, under the control of the date and time information generation unit 611, the synchronous operation start time is awaited (S1206). This step S1206 corresponds to step S1106 in FIG. When the synchronous operation start time has come (YES in S1206), the date and time information generation unit 611 gives a start trigger to the pseudo random number calculation unit 903. In response to this, the pseudorandom number calculation unit 903 continues the subsequent processing.
  • the pseudo random number calculation unit 903 obtains the coordinates of the third point R on the elliptic curve which intersects the straight line connecting the point P and the point Q (S1207).
  • an intersection point intersecting a tangent on the elliptic curve is taken as a point R '.
  • the pseudo random number calculation unit 903 converts the value of the x coordinate of the point R ′ into an integer.
  • the x coordinate of point R ' is a rational number, for example, the numden () function implemented in MATLAB (registered trademark) converts a rational number into a fraction and outputs its denominator and numerator.
  • FIG. 12 shows the flow of the operation of the pseudo random number calculation unit 903 of the controller 104 which is the master, the pseudo random number calculation unit 903 of the input device 102 which is the slave and the pseudo random number calculation of the plant side control device 103
  • the unit 903 receives the initial value 904 from the date and time information generation unit 611 of the controller 104 at the time of step S 1204
  • the unit 903 executes the operations after step S 1205. That is, the operation of the pseudo random number calculation unit 903 after step S1205 is the same for both the master and slave.
  • FIG. 13 is a time chart for explaining the synchronous operation of the encryption control system 101.
  • the step time is 10 msec and the number of steps is t.
  • the encryption target value Enc (r) is transmitted to the plant-side control apparatus 103 via the controller 104 (S1301).
  • the multiplication control is performed by the control input u and the multiplication unit 608 as in the above to obtain the encryption control input Enc (u).
  • the encryption control input Enc (u) is transmitted to the plant-side control apparatus 103 (S1302).
  • the plant-side control device 103 receives the encryption target value Enc (r) from the input device 102 via the controller 104 and the encryption control input Enc (u) from the controller 104. (S1303).
  • the decryption processing unit 612 of the plant-side control device 103 calculates a label based on current date and time information and start date and time information 901 attached to each data frame, and uses an encryption key corresponding to the calculated label. Decode the target value r and the control input u.
  • the control arithmetic processing unit 614 performs arithmetic processing on the values that are the basis of the target value r and the control input u decoded by the decoding processing unit 612, and generates the target value r and the control input u.
  • the homomorphic public key encryption used in the embodiment of the present invention can multiply (divide) encrypted data, but can not add (subtract). Therefore, the multiplication unit 608 of the controller 104 performs only multiplication processing in control operation processing on the supplied data. Then, the control processing unit 614 completes the addition processing, which can not be performed as it is encrypted, to complete the control processing.
  • the control processing unit 615 generates a control signal from the control input u and controls the control target 106. When the control target 106 is controlled by the control processing unit 615, the operation of the control target 106 is detected by the sensor 107.
  • the signal conversion processing unit 616 converts the observation signal output from the sensor 107 into an observation value y.
  • the observation value y output from the signal conversion processing unit 616 is input to the target error operation processing unit 617 together with the target value r output from the control operation processing unit 614.
  • the target error computing unit 617 subtracts the observed value y from the target value r and outputs a target error ⁇ (S1304).
  • the plant-side control device 103 controls the encrypted target error Enc ( ⁇ ) through the transmission unit 208 of the second control network module 115 It transmits to 104 (S1306).
  • the controller 104 receives the encryption target error Enc ( ⁇ ) from the plant-side control device 103 (S1307).
  • the encrypted target error Enc ( ⁇ ) received from the reception unit 309 of the second control network module 115 of the controller 104 is delivered to the multiplication unit 608 through the input / output control unit 607.
  • the multiplication unit 608 multiplies the encryption first parameter, the encryption second parameter and the encryption third parameter, and the encryption target error Enc ( ⁇ ) to obtain an encryption control input Enc (u) (S1308). . Then, the encryption control input Enc (u) is transmitted to the plant-side control apparatus 103 (S1309).
  • the plant-side control device 103 receives the encryption target value Enc (r) from the input device 102 via the controller 104 and the encryption control input Enc (u) from the controller 104 (S1311). .
  • the decryption processing unit 612 of the plant-side control device 103 calculates a label based on current date and time information and start date and time information 901 attached to each data frame, and uses an encryption key corresponding to the calculated label. Decode the target value r and the control input u.
  • the control arithmetic processing unit 614 performs arithmetic processing on the values that are the basis of the target value r and the control input u decoded by the decoding processing unit 612, and generates the target value r and the control input u.
  • the control processing unit 615 generates a control signal from the control input u and controls the control target 106. When the control target 106 is controlled by the control processing unit 615, the operation of the control target 106 is detected by the sensor 107.
  • the signal conversion processing unit 616 converts the observation signal output from the sensor 107 into an observation value y.
  • the observation value y output from the signal conversion processing unit 616 is input to the target error operation processing unit 617 together with the target value r output from the control operation processing unit 614.
  • the target error calculation processing unit 617 subtracts the observed value y from the target value r, and outputs a target error ⁇ (S1312).
  • the plant control device 103 receives the encryption target value Enc (r) in the step number t from the input device 102 and the encryption control input Enc (u) in the step number t from the controller 104, the target value The control object 106 is controlled based on r and the control input u. As a result, the observation value y obtained from the sensor 107 is subtracted from the target value r to obtain a target error ⁇ .
  • the encryption processing unit 603 encrypts the target error ⁇ with the public key in the step number t + 1, and outputs the encrypted target error Enc ( ⁇ ) to the controller 104. That is, in the cycle of data reception, operation and data transmission of the plant-side control device 103, the number of steps is incremented by one.
  • the controller 104 controls the current date and time information attached to the data frame of the encrypted target error Enc (.epsilon.) Received from the plant-side control device 103 and the encrypted number in the step number t obtained from the start date and time information 901.
  • One parameter, the encrypted second parameter and the encrypted third parameter are multiplied by the encryption target error Enc ( ⁇ ) to obtain the encrypted control input Enc (u), and the encrypted control input Enc (u) is sent to the plant side controller 103 . That is, in the cycle of data reception, operation and data transmission of the controller 104, the number of steps does not change as it is.
  • FIG. 14A is a graph of the control input u and the target error ⁇ in the encryption control system 101 according to Patent Document 1.
  • FIG. 14B is a graph of the control input u and the target error ⁇ in the encryption control system 101 according to the embodiment of the present invention. Both graphs in FIGS. 14A and 14B are simulation results assuming that the falsification attack is performed on the encryption target error Enc ( ⁇ ) at a time of 10 seconds with a step time of 10 msec.
  • FIG. 14A since only one set of public key and secret key is used, the effect of the falsification attack does not appear in the target error ⁇ .
  • FIG. 14B a scheme is employed in which the pair of public key and secret key used is randomly switched for each step number, so that the target error ⁇ is clearly different from that before the falsification attack by the falsification attack, continuous Show no change.
  • the control object 106 In the control system, it is desirable that the control object 106 be in a stable state. Therefore, it is unlikely that the target error ⁇ fluctuates significantly. Therefore, the fluctuation range of the target error ⁇ is generally small and continuous. If the signal having a small fluctuation range and continuity in a normal state suddenly has a large fluctuation range and exhibits a non-continuous change, it can be clearly recognized that some abnormality has occurred.
  • FIG. 15A is a graph of an attack detector in the encryption control system 101 according to Patent Document 1.
  • FIG. 15B is a graph of an attack detector in the encryption control system 101 according to an embodiment of the present invention.
  • the attack detector can not detect a tampering attack because only one set of public key and secret key is used.
  • FIG. 15B since the scheme of randomly switching the set of public key and secret key used for each step number is adopted, the attack detector clearly indicates that the target error ⁇ has been tampered with the tampering attack. It can be recognized.
  • the pseudo random number calculation unit 903 is configured to operate when a request for calculation occurs, but the result calculated in advance may be stored in a label table.
  • the label table has a step number field and a label field.
  • the step number field stores the number of steps.
  • a label calculated by the pseudo random number calculation unit 903 corresponding to the number of steps is stored.
  • the pair of the public key and the secret key is switched every control cycle, but it may be switched every plural control cycles. However, if the switching cycle is too long, the vulnerability to malicious third parties may increase.
  • One of the input device 102, the plant-side control device 103, and the controller 104 may share the function of the date and time information source device 105. For example, by equipping the input device 102 with a GPS (global positioning system) receiver, accurate date and time information can be obtained.
  • GPS global positioning system
  • FIG. 16 is a block diagram showing a software function in the control network of the controller 1601 according to the modification of the embodiment of the present invention.
  • a controller 1601 shown in FIG. 16 has a configuration in which the input device 102 and the controller 104 shown in FIG. 6 are integrated.
  • the table record selection processing unit 1602 has functions of a table record selection processing unit 605 of the input device 102 and a table record selection processing unit 610 of the controller 104. That is, the table record selection processing unit 1602 has a function for the encryption processing unit 603 to select a predetermined record from the public key sub-table 604 and to select a predetermined record from the encryption parameter table 609.
  • the input / output control unit 1603 has functions of an input / output control unit 602 of the input device 102 and an input / output control unit 607 of the controller 104. Then, the date and time information generation unit 606 of the input device 102 is omitted. That is, the date and time information generation unit 611 has a function of providing date and time information to be added to the encryption control input output from the multiplication unit 603, providing date and time information to the table record selection processing unit 1602 and giving activation timing.
  • the same function can be realized by using the controller 1601 in which the input device 102 and the controller 104 are integrated instead of the input device 102 and the controller 104.
  • the input device 102 of FIG. 6 has a public key sub-table 604. Therefore, when realizing the controller 1601 in which the input device 102 and the controller 104 are integrated, not only the target value r but also the first parameter Kp, the second parameter Ki and the third parameter Kd are encrypted together in the encryption processing unit 603. With this configuration, although the amount of calculation of the encryption processing unit 603 increases, the encryption parameter table 609 can be omitted.
  • the encryption control system 101 is disclosed.
  • the input device 102, the plant-side control device 103, and the controller 104 are equipped with a pseudo random number calculation unit 903 having a common function to perform time synchronization. And synchronous operation is started at the same time.
  • RTC Internal bus
  • 207 NIC
  • 208 transmission unit
  • 309 reception unit
  • 410 A / D converter
  • 411 D / A converter
  • 501 CPU
  • 502 ROM
  • 503 RAM
  • 504 non-volatile Storage
  • 07 Bus
  • 508 Display unit
  • Operation unit 601: Target value input unit
  • 602 Input / output control unit
  • 603 Encryption processing unit
  • 604 Public key sub table
  • 605 Table record selection processing unit
  • 606 date and time information generation unit
  • 607 ... input / output control unit
  • 608 ... multiplication unit
  • 610 ...
  • table record selection processing unit 611 ... date and time information generation unit, 612 ... decryption processing unit, 613 ... table Record selection processing unit 614
  • Control arithmetic processing unit 615 Control processing unit 616 Signal conversion processing unit 617 Target error arithmetic processing unit 618 Public key table 619 Date and time information generation unit 620

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Programmable Controllers (AREA)

Abstract

暗号鍵が漏洩するリスクをより低減させることができる、暗号化制御システム、暗号化制御方法及び暗号化制御プログラムを提供する。入力装置、プラント側制御装置及びコントローラには、共通の機能を有する擬似乱数算出部を装備して、時刻同期を行う。そして、同一時刻で同期運転を開始する。このように暗号化制御システムを構成することで、制御システム全体の制御周期に同期して、公開鍵と秘密鍵のペアを切り替えることが可能になる。よって、制御システムに対する、悪意ある第三者による介入を瞬時に且つ明確に検出することが可能になる。

Description

暗号化制御システム、暗号化制御方法及び暗号化制御プログラム
 本発明は、暗号化制御システム、暗号化制御方法及び暗号化制御プログラムに関する。
 近年、インターネット等の情報技術の発達に伴い、電気、ガス、水道等の、国民生活を支えるインフラストラクチャ(Infrastructure:社会基盤)、あるいは工場や発電所等の工業施設を制御する制御システムにおいて、情報技術を応用したネットワーク化が進んでいる。このような制御システムのネットワーク化やICT(Information and Communication Technology)の進化により、制御システムには処理速度の向上、処理内容の高度化等の多大な恩恵がもたらされる。その一方で、制御システムのネットワーク化にはサイバー攻撃という新たな脅威を呼び込むことが懸念されている。実際に、発電所や工場などのプラント動作を監視または制御する制御システムに対するサイバー攻撃が出現しており、社会的に重要な問題として注目されている。
 このような背景により、重要なインフラストラクチャを支える制御システムをサイバー攻撃から守るための技術開発が急務とされており、制御システムに対して情報系セキュリティ技術を転用する他、サイバー攻撃の検知などに関する研究が進められている。
 特許文献1には、本発明の発明者を一部含む、暗号化制御システムの技術が開示されている。
特開2016-90884号公報
 発明者は、特許文献1において、制御システムの中核部分に当たるコントローラが暗号化された入力データ及び出力データに対して直接演算処理を施すことで、コントローラに公開鍵及び/または秘密鍵を不要にした制御システムの実現に成功した。この発明により、制御システムはプラントにのみ秘密鍵を装備すればよいこととなり、公開鍵及び/または秘密鍵が漏洩するリスクを低減させることを実現した。
 しかしながら、特許文献1に使用される公開鍵と秘密鍵のペアは1組だけである。このため、クラウドコンピューティング等の膨大な計算機資源を用いると暗号を解読されてしまう虞がある。
 本発明は係る課題を解決し、暗号鍵が漏洩するリスクをより低減させることができる、暗号化制御システム、暗号化制御方法及び暗号化制御プログラムを提供することを目的とする。
 上記課題を解決するために、本発明の暗号化制御システムは、コントローラと、プラント側制御装置を有する。
 コントローラは、目標値を公開鍵で暗号化して暗号化目標値を出力する第一の暗号化処理部と、目標値を公開鍵で暗号化して暗号化目標値を出力する第一の暗号化処理部と、
第一の暗号化処理部に対し、公開鍵が複数個格納される公開鍵サブテーブルから所定のレコードを選択すると共に、制御システムのパラメータが公開鍵サブテーブルの公開鍵によって暗号化された暗号化パラメータが記録されたレコードよりなる暗号化パラメータテーブルから所定のレコードを選択する第一のテーブルレコード選択処理部と、プラント側制御装置から暗号化目標誤差を受信して、第一のテーブルレコード選択処理部が選択した暗号化パラメータを乗算して暗号化制御入力を出力する乗算部と、乗算部から出力される暗号化制御入力に付加する日時情報を提供すると共に、第一のテーブルレコード選択処理部に起動タイミングを与える第二の日時情報生成部とを具備する。
 プラント側制御装置は、コントローラから受信した暗号化目標値を復号して目標値を得ると共に、コントローラから受信した暗号化制御入力を復号して制御入力を得る復号処理部と、制御入力に基づいて所定の制御対象を制御する制御処理部とを具備する。更に、制御対象を観測するセンサから観測値を取得する信号変換処理部と、目標値から観測値を減算して目標誤差を算出する目標誤差演算処理部と、目標誤差を暗号化して暗号化目標誤差を出力する第二の暗号化処理部と、復号処理部に対し、公開鍵と公開鍵の対になる秘密鍵が複数個格納される公開鍵テーブルから所定のレコードを選択すると共に、第二の暗号化処理部に対し、公開鍵テーブルから所定のレコードを選択する第二のテーブルレコード選択処理部と、第二の暗号化処理部から出力される暗号化目標誤差に付加する日時情報を提供すると共に、第二のテーブルレコード選択処理部に起動タイミングを与える第二の日時情報生成部とを具備する。
 そして、第一の日時情報生成部と、第二の日時情報生成部は、相互に同時に起動タイミングを生成するものである。
 本発明によれば、暗号鍵が漏洩するリスクをより低減させることができる、暗号化制御システム、暗号化制御方法及び暗号化制御プログラムを提供することができる。
 上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
本発明の実施形態に係る、暗号化制御システムの全体構成を示す概略図である。 入力装置のハードウェア構成を示すブロック図である。 コントローラのハードウェア構成を示すブロック図である。 プラント側制御装置のハードウェア構成を示すブロック図である。 日時情報源装置のハードウェア構成を示すブロック図である。 暗号化制御システムの、制御ネットワークにおけるソフトウェア機能を示すブロック図である。 暗号化制御システムの、情報ネットワークにおけるソフトウェア機能を示すブロック図である。 公開鍵テーブル、公開鍵サブテーブル及び暗号化パラメータテーブルのフィールド構成を示す表である。 入力装置とコントローラのテーブルレコード選択処理部のソフトウェア機能と、プラント側制御装置の暗号化目標値におけるテーブルレコード選択処理部のソフトウェア機能を説明するブロック図である。 プラント側制御装置の暗号化制御入力におけるテーブルレコード選択処理部のソフトウェア機能を説明するブロック図である。 コントローラの日時情報生成部における、同期運転開始処理の流れを示すフローチャートである。 コントローラの擬似乱数算出部の動作の流れを示すフローチャートである。 暗号化制御システムの同期運転を説明するタイムチャートである。 特許文献1に係る暗号化制御システムと、本発明の実施形態に係る暗号化制御システムにおける、制御入力uと目標誤差εのグラフである。 特許文献1に係る暗号化制御システムと、本発明の実施形態に係る暗号化制御システムにおける、攻撃検出器のグラフである。 本発明の実施形態の変形例に係るコントローラの、制御ネットワークにおけるソフトウェア機能を示すブロック図である。
[暗号化制御システム101の実施形態]
 図1は、本発明の実施形態に係る、暗号化制御システム101の全体構成を示す概略図である。なお、これ以降の説明において、暗号化された値をEnc()という関数で示す。
 暗号化制御システム101は、入力装置102と、プラント側制御装置103と、コントローラ104と、日時情報源装置105を有する。
 入力装置102は、コントローラ104を通じて、プラント側制御装置103に対し、目標値rを公開鍵暗号で暗号化した暗号化目標値Enc(r)を送信する。
 プラント側制御装置103には、制御対象106とセンサ107が接続されている。プラント側制御装置103は、制御対象106に制御信号を与え、センサ107から制御対象106の状態情報である観測値yを取得する。そして、コントローラ104と第二制御ネットワークL109で接続され、暗号化制御情報の送受信を行う。
 コントローラ104は、入力装置102と第一制御ネットワークL108で接続されると共に、プラント側制御装置103と第二制御ネットワークL109で接続される。コントローラ104は入力装置102から第一制御ネットワークL108を通じて暗号化目標値Enc(r)を受信し、プラント側制御装置103から第二制御ネットワークL109を通じて暗号化目標誤差Enc(ε)を受信する。そして、暗号化されたこれら情報を暗号化されたまま復号せずに所定の演算処理を行い、第二制御ネットワークL109を通じてプラント側制御装置103へ演算結果である暗号化制御入力Enc(u)を送信する。
 本発明の実施形態に係る暗号化制御システム101において使用する公開鍵暗号は、特許文献1に開示されるものと同じく、例えばRSA暗号(Rivest Shamir Adleman)等の、準同型性を持つ公開鍵暗号を使用する。準同型性を持つ公開鍵暗号は、2つの暗号化した値同士を復号せずにそのまま乗算し、乗算した値を復号することで、暗号化される前の値を乗算した値と一致させることが可能である。
 公開鍵暗号の準同型性に関する説明は特許文献1に記載されており、本発明の実施形態に係る暗号化制御システム101では公開鍵及び秘密鍵のペアを複数個使用する以外は、公開鍵暗号自体の演算処理には何も変更がないので、公開鍵暗号自体の詳細な説明は割愛する。
 入力装置102、コントローラ104、プラント側制御装置103はそれぞれ情報ネットワークL110を通じて、日時情報源装置105に接続される。日時情報源装置105は、ネットワークOSとNTPサーバ(Network Time Protocol)及びNTPクライアントが稼働するパソコンやサーバである。
 第一制御ネットワークL108及び第二制御ネットワークL109はデータ転送の確実性を重視したネットワークであり、様々な種類のネットワークインターフェースが利用可能である。
 一方、情報ネットワークL110は制御ネットワーク程の確実性は要求されない。本発明の実施形態では、周知のTCP/IPを使用するものとする。
 入力装置102、コントローラ104及びプラント側制御装置103は、プログラマブルコントローラと呼ばれる装置である。スロットを多数有するケース状のマウントベース111に、スロットに収納される大きさのモジュールを、必要な機能に応じて収納する。マウントベース111にはモジュール同士を接続するインターフェースが内蔵されており、モジュールをスロットに挿入すると、モジュール間のデータの送受信や適切な電源の供給が確立される。
 入力装置102のマウントベース111aには、CPUモジュール112と、情報ネットワークモジュール113と、第一制御ネットワークモジュール114aが装着されている。
 コントローラ104のマウントベース111bには、CPUモジュール112と、情報ネットワークモジュール113と、第一制御ネットワークモジュール114bと、第二制御ネットワークモジュール115が装着されている。
 プラント側制御装置103のマウントベース111cには、CPUモジュール112と、情報ネットワークモジュール113と、第二制御ネットワークモジュール115と、入出力モジュール116が装着されている。
 入力装置102の第一制御ネットワークモジュール114aは送信側であり、コントローラ104の第一制御ネットワークモジュール114bは受信側である。
 コントローラ104とプラント側制御装置103の第二制御ネットワークモジュール115は、相互の送信側端子と受信側端子が互いに接続されている。
[入力装置102のハードウェア構成]
 図2は、入力装置102のハードウェア構成を示すブロック図である。
 入力装置102は、マウントベース111に設けられているモジュールバス201に接続されているCPUモジュール112、情報ネットワークモジュール113、第一制御ネットワークモジュール114aを備える。
 CPUモジュール112は、内部バス206に接続されているCPU202、ROM203、RAM204、及び日時情報を生成するRTC(RealTime Clock)205を備える。内部バス206はモジュールバス201に接続されている。
 CPUモジュール112のROM203には、暗号化制御システム101における制御演算処理及び暗号化処理等を遂行するためのプログラムが格納されている。
 情報ネットワークモジュール113は、内部バス206に接続されているCPU202、ROM203、RAM204、及びNIC(Network Interface Card)207を備える。内部バス206はモジュールバス201に接続されている。情報ネットワークモジュール113のROM203には、ネットワークOSと、NTPサーバプログラム及びNTPクライアントプログラム等が格納されている。
 第一制御ネットワークモジュール114aは、送信部208がモジュールバス201に接続されている。
[コントローラ104のハードウェア構成]
 図3は、コントローラ104のハードウェア構成を示すブロック図である。
 コントローラ104は、マウントベース111に設けられているモジュールバス201に接続されている、CPUモジュール112、情報ネットワークモジュール113、第一制御ネットワークモジュール114b、及び第二制御ネットワークモジュール115を備える。
 CPUモジュール112と情報ネットワークモジュール113は、入力装置102のものと同じなので説明は割愛する。
 第一制御ネットワークモジュール114bは、受信部309がモジュールバス201に接続されている。
 第二制御ネットワークモジュール115は、送信部208と受信部309が内部バス206に接続されている。内部バス206はモジュールバス201に接続されている。
[プラント側制御装置103のハードウェア構成]
 図4は、プラント側制御装置103のハードウェア構成を示すブロック図である。
 プラント側制御装置103は、マウントベース111に設けられているモジュールバス201に接続されている、CPUモジュール112、情報ネットワークモジュール113、第二制御ネットワークモジュール115、及び入出力モジュール116を備える。
 CPUモジュール112、情報ネットワークモジュール113、第二制御ネットワークモジュール115は、コントローラ104のものと同じなので説明は割愛する。
 入出力モジュール116は、内部バス206に接続されている、センサ107が接続されるA/D変換器410と、制御対象106が接続されるD/A変換器411を備える。内部バス206はモジュールバス201に接続されている。なお、この入出力モジュール116はあくまで一例であり、制御対象106やセンサ107等の接続される対象に応じて、A/D変換器410及びD/A変換器411に接続される信号処理回路等が必要になる場合がある。
[日時情報源装置105のハードウェア構成]
 図5は、日時情報源装置105のハードウェア構成を示すブロック図である。
 サーバ装置やパソコン等で構成される日時情報源装置105は、バス507に接続されているCPU501、ROM502、RAM503、不揮発性ストレージ504、RTC505、及びNIC506を備える。パソコンを流用する場合は、表示部508、操作部509を備えることもある。
 不揮発性ストレージ504には、ネットワークOSと、NTPサーバプログラム及びNTPクライアントプログラムが格納されている。
[暗号化制御システム101の、制御ネットワークにおけるソフトウェア機能]
 図6は、暗号化制御システム101の、制御ネットワークにおけるソフトウェア機能を示すブロック図である。図6では紙面の都合上、情報ネットワークL110の記述を割愛している。情報ネットワークL110については図7で説明する。
 入力装置102は、プラント側制御装置103に対して、暗号化目標値Enc(r)を生成して、コントローラ104を介してプラント側制御装置103へ送信する。
 目標値入力部601は、暗号化されない目標値rを入出力制御部602に与える。
 入出力制御部602は、目標値入力部601から入力された目標値rを暗号化処理部603に引き渡す。そして、暗号化処理部603が生成した暗号化目標値Enc(r)を受け取り、コントローラ104へ送信する。
 暗号化処理部603は、公開鍵サブテーブル604からテーブルレコード選択処理部605が選択した公開鍵レコードを用いて、入出力制御部602から引き取った目標値rに暗号化処理を施す。そして、生成した暗号化目標値Enc(r)を入出力制御部602に引き渡す。
 テーブルレコード選択処理部605は、日時情報生成部606から受け取った現在日時情報に基づき、公開鍵サブテーブル604のレコード番号(ラベル)を生成する。そして、生成したラベルに相当する公開鍵サブテーブル604のレコードに記録されている公開鍵を読み取り、暗号化処理部603に引き渡す。
 日時情報生成部606は、現在日時情報を出力すると共に、テーブルレコード選択処理部605に対する起動及び停止制御を行う。
 入力装置102から第一制御ネットワークモジュール114aのケーブルを通じてコントローラ104に送信される暗号化目標値Enc(r)は、コントローラ104の入出力制御部607に入力される。
 入出力制御部607は、入力装置102から受信した暗号化目標値Enc(r)をそのまま第二制御ネットワークモジュール115の送信部208を通じて、プラント側制御装置103へ送信する。そして、プラント側制御装置103から第二制御ネットワークモジュール115の受信部309を通じて受信した暗号化目標誤差Enc(ε)を、乗算部608に引き渡す。
 乗算部608は、暗号化パラメータテーブル609からテーブルレコード選択処理部610が選択した暗号化パラメータEnc(Parameters)を用いて、暗号化目標誤差Enc(ε)と乗算処理を行うことで、暗号化制御入力Enc(u)を算出する。なお、この乗算部608における暗号化パラメータEnc(Parameters)と暗号化目標値Enc(r)との乗算処理は、単純な乗算ではなく、特許文献1に開示されている、部分的な乗算処理である。
 乗算部608は、暗号化パラメータEnc(Parameters)と暗号化目標値Enc(r)との乗算処理によって算出した暗号化制御入力Enc(u)を、入出力制御部607に引き渡す。
 テーブルレコード選択処理部610は、プラント側制御装置103から第二制御ネットワークモジュール115の受信部309を通じて受信したデータフレームに含まれている現在日時情報に基づき、暗号化パラメータテーブル609のレコード番号(ラベル)を生成する。そして、生成したラベルに相当する暗号化パラメータテーブル609のレコードに記録されている暗号化パラメータを読み取り、乗算部608に引き渡す。
 日時情報生成部611は、現在日時情報を出力すると共に、コントローラ104の日時情報生成部611から指示された、同期運転開始時点の日時情報(以下「始動日時情報」)も出力する。また、テーブルレコード選択処理部610に対する起動及び停止制御を行う。しかし、コントローラ104の日時情報生成部611が生成する現在日時情報は、入力装置102の日時情報生成部606とは異なり、テーブルレコード選択処理部610が実行する、暗号化パラメータテーブル609のラベルの演算には使われない。その代わり、日時情報生成部611が生成する現在日時情報は、乗算部608から入出力制御部607及び送信部208を通じて送信される暗号化制御入力Enc(u)のデータフレームのエンコード日時フィールドに、エンコード日時情報として格納される。
 コントローラ104から第二制御ネットワークモジュール115の送信部208を通じてプラント側制御装置103に送信される暗号化目標値Enc(r)及び暗号化制御入力Enc(u)は、プラント側制御装置103の第二制御ネットワークモジュール115の受信部309を通じて復号処理部612に入力される。
 復号処理部612は、暗号化目標値Enc(r)及び暗号化制御入力Enc(u)を、テーブルレコード選択処理部613から取得した秘密鍵を用いて復号する。復号された目標値r及び制御入力uの基となる値は、制御用演算処理部614に引き渡される。
 制御用演算処理部614は、目標値r及び制御入力uの基となる値を演算して、目標値r及び制御入力uを生成する。制御入力uは制御処理部615に引き渡される。
 制御処理部615は、制御入力uから制御信号を生成し、制御対象106を制御する。例えば、制御対象106がモータであるならば、制御処理部615は、モータに与える電圧や位相等を制御する。制御対象106が制御処理部615によって制御されると、制御対象106の動作はセンサ107によって検出される。
 センサ107が出力する観測信号は、信号変換処理部616によって観測値yに変換される。信号変換処理部616が出力する観測値yは、制御用演算処理部614が出力する目標値rと共に目標誤差演算処理部617に入力される。目標誤差演算処理部617は、目標値rから観測値yを減算して、目標誤差εを出力する。
 目標誤差εは、暗号化処理部603によって暗号化され、暗号化目標誤差Enc(ε)に変換される。暗号化目標誤差Enc(ε)は、第二制御ネットワークモジュール115の送信部208を通じて、コントローラ104へ送信される。
 テーブルレコード選択処理部613は、コントローラ104から第二制御ネットワークモジュール115の受信部309を通じて受信したデータフレームに含まれている現在日時情報及び始動日時情報に基づき、公開鍵テーブル618のレコード番号(ラベル)を生成する。そして、生成したラベルに相当する公開鍵テーブル618のレコードに記録されている秘密鍵を読み取り、復号処理部612に引き渡す。また同様に、生成したラベルに相当する公開鍵テーブル618のレコードに記録されている公開鍵を読み取り、暗号化処理部603に引き渡す。
 日時情報生成部619は、現在日時情報を出力すると共に、コントローラ104の日時情報生成部611から指示された、同期運転開始時点の日時情報(以下「始動日時情報」)も出力する。また、日時情報生成部619は、テーブルレコード選択処理部610に対する起動及び停止制御を行う。しかし、プラント側制御装置103の日時情報生成部619が生成する現在日時情報は、入力装置102の日時情報生成部606とは異なり、テーブルレコード選択処理部613が実行する、公開鍵テーブル618のラベルの演算には使われない。その代わり、日時情報生成部619が生成する現在日時情報は、暗号化処理部603から送信部208を通じて送信される暗号化目標誤差Enc(ε)のデータフレームのエンコード日時フィールドに、エンコード日時情報として格納される。
 なお、入力装置102の入出力制御部602は、必要に応じて図示しない外部モニタ装置が接続されることがある。暗号化制御システム101の監視作業者は、外部モニタ装置を入力装置102に接続して、所定の監視業務等を遂行する。
 コントローラ104の入出力制御部607には、暗号化目標値Enc(r)、暗号化制御入力Enc(u)、暗号化目標誤差Enc(ε)等を暗号化されたまま記録するログテーブル620が設けられ、監視業務に利用される。
[暗号化制御システム101の、情報ネットワークL110におけるソフトウェア機能]
 図7は、暗号化制御システム101の、情報ネットワークL110におけるソフトウェア機能を示すブロック図である。
 入力装置102の日時情報生成部606と、コントローラ104の日時情報生成部611と、プラント側制御装置103の日時情報生成部619は、情報ネットワークL110を通じて日時情報源装置105に接続される。
 入力装置102の日時情報生成部606と、コントローラ104の日時情報生成部611と、プラント側制御装置103の日時情報生成部619は、日時情報源装置105と同様に、ネットワークOSと、NTPサーバプログラム及びNTPクライアントプログラムの機能を有しており、各々の日時情報生成部606は日時情報源装置105の日時情報に同期する。
 更に、入力装置102の日時情報生成部606と、コントローラ104の日時情報生成部611と、プラント側制御装置103の日時情報生成部619のうちのどれか一つは、同期運転の開始を指揮するマスター(master)の役割を担い、残り二つは、マスターの指示に従って同期運転を実行するスレーヴ(slave)の役割を担う。
[テーブルのフィールド構成]
 図8は、公開鍵テーブル618、公開鍵サブテーブル604及び暗号化パラメータテーブル609のフィールド構成を示す表である。
 公開鍵テーブル618は、レコード番号フィールドと、公開鍵フィールドと、秘密鍵フィールドを有する。
 レコード番号フィールドは、1から始まる整数が格納される。このレコード番号は、公開鍵テーブル618のレコードを一意に識別する番号であり、ラベルとも呼ばれる。
 公開鍵フィールドは、公開鍵暗号方式の、所望の値を暗号化するための公開鍵が格納される。
 秘密鍵フィールドは、公開鍵暗号方式の、暗号化された所望の値を復号するための、公開鍵フィールドの公開鍵と対になる秘密鍵が格納される。
 公開鍵サブテーブル604は、レコード番号フィールドと、公開鍵フィールドを有する。
 すなわち、公開鍵サブテーブル604は、公開鍵テーブル618から秘密鍵フィールドを削除した、公開鍵テーブル618のサブセットである。
 暗号化パラメータテーブル609は、レコード番号フィールドと、暗号化第一パラメータフィールドと、暗号化第二パラメータフィールドと、暗号化第三パラメータフィールドを有する。
 暗号化第一パラメータフィールドには、制御システムのゲインとなる第一パラメータKpを暗号化した暗号化第一パラメータEnc(Kp)が格納される。
 暗号化第二パラメータフィールドには、制御システムのゲインとなる第二パラメータKiを暗号化した暗号化第二パラメータEnc(Ki)が格納される。
 暗号化第三パラメータフィールドには、制御システムのゲインとなる第三パラメータKdを暗号化した暗号化第三パラメータEnc(Kd)が格納される。
 第一パラメータKp、第二パラメータKi及び第三パラメータKdは制御システムにおいて不変の値であり、制御システムの設計時に所定の計算にて決定される。
 なお、上記の第一パラメータKp、第二パラメータKi及び第三パラメータKdは、PID制御を想定しているが、制御システムはPID制御に限らない。暗号化パラメータテーブル609は、制御システムが要求するパラメータの数に応じて、暗号化パラメータのフィールドが設けられる。
 暗号化パラメータテーブル609のレコード番号フィールドが「1」のレコードにおける暗号化第一パラメータフィールドには、第一パラメータKpを、公開鍵テーブル618のレコード番号フィールドが「1」のレコードにおける公開鍵フィールドに格納されている公開鍵を用いて暗号化された、暗号化第一パラメータEnc(Kp)が格納される。
 同様に、暗号化パラメータテーブル609のレコード番号フィールドが「1」のレコードにおける暗号化第二パラメータフィールドには、第二パラメータKiを、公開鍵テーブル618のレコード番号フィールドが「1」のレコードにおける公開鍵フィールドに格納されている公開鍵を用いて暗号化された、暗号化第二パラメータEnc(Ki)が格納される。
 同様に、暗号化パラメータテーブル609のレコード番号フィールドが「1」のレコードにおける暗号化第三パラメータフィールドには、第三パラメータKdを、公開鍵テーブル618のレコード番号フィールドが「1」のレコードにおける公開鍵フィールドに格納されている公開鍵を用いて暗号化された、暗号化第三パラメータEnc(Kd)が格納される。
 暗号化パラメータテーブル609のレコード番号フィールドが「2」のレコードにおける暗号化第一パラメータフィールドには、第一パラメータKpを、公開鍵テーブル618のレコード番号フィールドが「2」のレコードにおける公開鍵フィールドに格納されている公開鍵を用いて暗号化された、暗号化第一パラメータEnc(Kp)が格納される。
 以下同様に、暗号化パラメータテーブル609における各レコードの暗号化パラメータは、各レコードのレコード番号フィールドに紐付く公開鍵テーブル618の公開鍵フィールドに格納されている公開鍵で暗号化されている。
[テーブルレコード選択処理部605]
 図9Aは、入力装置102のテーブルレコード選択処理部605のソフトウェア機能を説明するブロック図である。
 日時情報生成部606が出力する現在日時情報は、同期運転開始時点に記憶していた始動日時情報901と共に、ステップ数算出部902に入力される。ステップ数算出部902は、現在日時情報から始動日時情報901を減算し、ステップ時間で除算して、ステップ数を算出する。例えば、ステップ時間が10msec、現在日時情報が2017年11月1日09時30分05.100秒、始動日時情報901が2017年11月1日09時30分05.000秒である場合、ステップ数は100÷10=10である。なお、ステップ時間は、制御対象106の制御周期と一致する。
 産業機器等では、ある制御周期で計測と制御に係る制御プログラムを実行する。そこで、本発明の実施形態に係る暗号化制御システムでは、制御プログラムの始動日時を0として、制御周期毎にステップ数を計数する。このステップ数は、後述する擬似乱数算出部903に利用される。また、図13で詳述するが、プラント側制御装置103では、受信するデータと送信するデータとの間で、ステップ数が「1」だけ進む。
 ステップ数算出部902が出力するステップ数は、擬似乱数算出部903に入力される。擬似乱数算出部903は、初期値904を与えられ、確定的な演算処理を入力されるステップ数だけ繰り返すことで、0以上の整数または自然数の擬似乱数を生成する。生成した擬似乱数は、公開鍵サブテーブル604のレコード数にて剰余演算が行われ、この剰余がラベル、すなわちレコード番号となる。擬似乱数算出部903はラベルを用いて公開鍵サブテーブル604の公開鍵フィールドを読み出し、公開鍵を暗号化処理部603へ出力する。なお、レコード番号を0から始めるか(0以上の整数)1から始めるか(自然数)は設計事項である。
 入力装置102、コントローラ104、そしてプラント側制御装置103のテーブルレコード選択処理部605に同一の演算処理を行う擬似乱数算出部903を装備して、同一の初期値904を与える。これにより、同一のステップ数を与えられた各々の擬似乱数算出部903は、同一のラベルを出力する。
 図9Bは、コントローラ104のテーブルレコード選択処理部610のソフトウェア機能を説明するブロック図である。
 プラント側制御装置103から受信したデータフレームD905には、暗号化目標誤差Enc(ε)の他に、始動日時フィールドと、エンコード日時フィールドが付されている。
 エンコード日時フィールドに含まれているエンコード日時情報と、始動日時フィールドに含まれている始動日時情報901は、ステップ数算出部902に入力される。ステップ数算出部902は、エンコード日時情報から始動日時情報901を減算し、ステップ時間で除算して、ステップ数を算出する。すなわち、コントローラ104におけるステップ数算出部902の処理は、入力装置102のステップ数算出部902と、入力されるデータが異なる以外は、演算処理自体は全く同じである。
 ステップ数算出部902が出力するステップ数は、擬似乱数算出部903に入力される。擬似乱数算出部903は、初期値904を与えられ、確定的な演算処理を入力されるステップ数だけ繰り返すことで、0以上の整数または自然数の擬似乱数を生成する。生成した擬似乱数は、暗号化パラメータテーブル609のレコード数にて剰余演算が行われ、この剰余がラベル、すなわちレコード番号となる。擬似乱数算出部903はラベルを用いて暗号化パラメータテーブル609の暗号化第一パラメータフィールド、暗号化第二パラメータフィールド及び暗号化第三パラメータフィールドを読み出し、暗号化第一パラメータ、暗号化第二パラメータ及び暗号化第三パラメータを乗算部608へ出力する。
 図9Cは、プラント側制御装置103の、暗号化目標値におけるテーブルレコード選択処理部613のソフトウェア機能を説明するブロック図である。
 入力装置102からコントローラ104を通じて受信したデータフレームD906には、暗号化目標値Enc(r)の他に、エンコード日時フィールドが付されている。
 エンコード日時フィールドに含まれているエンコード日時情報は、同期運転開始時点に記憶していた始動日時情報901と共に、ステップ数算出部902に入力される。ステップ数算出部902は、エンコード日時情報から始動日時情報901を減算し、ステップ時間で除算して、ステップ数を算出する。すなわち、プラント側制御装置103の、暗号化目標値におけるステップ数算出部902の処理は、入力装置102のステップ数算出部902と、入力されるデータが異なる以外は、演算処理自体は全く同じである。
 ステップ数算出部902が出力するステップ数は、擬似乱数算出部903に入力される。擬似乱数算出部903は、初期値904を与えられ、確定的な演算処理を入力されるステップ数だけ繰り返すことで、0以上の整数または自然数の擬似乱数を生成する。生成した擬似乱数は、公開鍵テーブル618のレコード数にて剰余演算が行われ、この剰余がラベル、すなわちレコード番号となる。擬似乱数算出部903はラベルを用いて公開鍵テーブル618の秘密鍵フィールドを読み出し、秘密鍵を復号処理部612へ出力する。
 図10は、プラント側制御装置103の、暗号化制御入力におけるテーブルレコード選択処理部613のソフトウェア機能を説明するブロック図である。
 コントローラ104から受信したデータフレームD1007には、暗号化制御入力Enc(u)の他に、始動日時フィールドと、エンコード日時フィールドが付されている。
 エンコード日時フィールドに含まれているエンコード日時情報と、始動日時フィールドに含まれている始動日時情報901は、ステップ数算出部902に入力される。ステップ数算出部902は、エンコード日時情報から始動日時情報901を減算し、ステップ時間で除算して、ステップ数を算出する。
 ここで、図10に示すステップ数算出部902の、図9A、図9B及び図9Cにおけるステップ数算出部902との相違点は、エンコード日時情報から始動日時情報901を減算し、ステップ時間で除算して、擬似乱数算出部903へステップ数を出力するだけでなく、ステップ数+1も出力する点である。
 ステップ数算出部902が出力するステップ数及びステップ数+1の値は、擬似乱数算出部903に入力される。擬似乱数算出部903は、初期値904を与えられ、確定的な演算処理を入力されるステップ数だけ繰り返すことで、0以上の整数または自然数の擬似乱数を生成する。生成した擬似乱数は、公開鍵テーブル618のレコード数にて剰余演算が行われ、この剰余がラベル、すなわちレコード番号となる。
 擬似乱数算出部903は、ステップ数に対応するラベルを用いて公開鍵テーブル618の秘密鍵フィールドを読み出し、秘密鍵を復号処理部612へ出力する。
 次に擬似乱数算出部903は、ステップ数+1の値に対応するラベルを用いて公開鍵テーブル618の公開鍵フィールドを読み出し、公開鍵を暗号化処理部603へ出力する。
 図9Aに示した入力装置102のテーブルレコード選択処理部605、図9Bに示したコントローラ104のテーブルレコード選択処理部610、図9C及び図10に示したプラント側制御装置103のテーブルレコード選択処理部613の、それぞれに設けられている擬似乱数算出部903は、全て同一の確定的な演算処理が組み込まれている。したがって、同一の初期値904を与えると、同じステップ数であれば全て同一のラベルを出力する。
[同期運転開始処理]
 図11は、コントローラ104の日時情報生成部611における、同期運転開始処理の流れを示すフローチャートである。この図11では、コントローラ104の日時情報生成部611がマスターであることを前提に説明するが、入力装置102やプラント側制御装置103がマスターであっても同様である。
 処理を開始すると(S1101)、コントローラ104の日時情報生成部611は自身の日時情報が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されているか否かを確認する(S1102)。
 コントローラ104の日時情報生成部611自身の日時情報が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されているならば(S1102のYES)、次にコントローラ104の日時情報生成部611は、入力装置102の日時情報生成部606に対し、入力装置102の日時情報生成部606が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されているか否かを問い合わせる(S1103)。
 入力装置102の日時情報生成部606の日時情報が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されているならば(S1103のYES)、次にコントローラ104の日時情報生成部611は、プラント側制御装置103の日時情報生成部619に対し、プラント側制御装置103の日時情報生成部619が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されているか否かを問い合わせる(S1104)。
 ステップS1102、S1103及びS1104の何れの条件分岐においても、日時情報の較正が正常に完了していなければ(S1102のNO、S1103のNO、S1104のNO)、ステップS1102まで戻って確認作業が繰り返される。
 ステップS1104で、プラント側制御装置103の日時情報生成部619の日時情報が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されているならば(S1104のYES)、この時点で入力装置102、コントローラ104及びプラント側制御装置103の全ての日時情報生成部606が較正されている。そこで、コントローラ104の日時情報生成部611は、同期運転の準備段階として、テーブルレコード選択処理部610の擬似乱数算出部903と協調して、同期運転を開始する時間、ステップ時間、入力装置102の擬似乱数算出部903及びプラント側制御装置103の擬似乱数算出部903に与える初期値904等のパラメータを決定し、入力装置102及びプラント側制御装置103の日時情報生成部619へ送信する(S1105)。
 ステップS1105にて同期運転の準備が完了したら、コントローラ104の日時情報生成部611は設定した同期運転開始時間になるまで待ち(S1106のNO)、同期運転開始時間になったら(S1106のYES)、同期運転を開始して(S1107)、一連の処理を終了する(S1108)。
[擬似乱数算出部903の擬似乱数算出処理]
 擬似乱数算出部903が使用する擬似乱数は、悪意ある第三者に対して容易に規則性が見出されないように工夫する必要がある。暗号理論に多用される楕円曲線関数の加法定理を応用した擬似乱数生成関数の一例を示す。
 図12は、コントローラ104の擬似乱数算出部903の動作の流れを示すフローチャートである。
 処理を開始すると(S1201)、先ず、擬似乱数算出部903は楕円曲線関数y=x+ax+bの係数a,bを決定する(S1202)。
 次に、擬似乱数算出部903はステップS1202で決定した楕円曲線上の点Pを決定する(S1203)。この点Pは、y座標が0でないことが必須条件である。以上の係数a,b及び点Pと、公開鍵サブテーブル604、暗号化パラメータテーブル609及び公開鍵テーブル618のレコード数pが、入力装置102の擬似乱数算出部903及びプラント側制御装置103の擬似乱数算出部903に与える初期値904である。
 次に、擬似乱数算出部903は日時情報生成部611と協調して、同期運転を開始する時間、ステップ時間、そして初期値904である係数a,b及び点Pを、入力装置102の日時情報生成部606及びプラント側制御装置103の日時情報生成部619に送信する(S1204)。
 以上の、ステップS1202、S1203及びS1204が、図11のステップS1105に相当する。
 次に、擬似乱数算出部903はステップ数tを0に初期化し、点Qに点Pの座標情報を代入する(S1205)。そして、日時情報生成部611の制御の下、同期運転開始時間を待つ(S1206)。このステップS1206は、図11のステップS1106に相当する。
 同期運転開始時間になったら(S1206のYES)、日時情報生成部611は起動トリガを擬似乱数算出部903に与える。擬似乱数算出部903はこれを受けて、これ以降の処理を継続する。
 先ず、擬似乱数算出部903は点Pと点Qを結ぶ直線に交わる、楕円曲線上の第三の点Rの座標を求める(S1207)。点Pと点Qが同一座標である場合は、楕円曲線上の接線に交わる交点を点R'とする。
 次に、擬似乱数算出部903は点R'のx座標の値を整数に変換する。点R'のx座標は有理数であるが、例えばMATLAB(登録商標)に実装されているnumden()関数は、有理数を分数に変換し、その分母と分子を出力する。このnumden()関数のような、有理数を分数に変換し、その分母を取り出すことで、点Rのx座標の値を整数に変換することが可能である。そして、得られた擬似乱数である整数から、レコード数pの剰余を求める(S1208)。この剰余が、ラベル、すなわち公開鍵サブテーブル604、暗号化パラメータテーブル609及び公開鍵テーブル618のレコードを指し示すレコード番号になる。
 次に、擬似乱数算出部903はステップ数tを1インクリメントする(S1209)。そして、点R'のy軸の値の符号を反転させた値を点R'の写像であるRとする。この点Rの座標情報を点Qに代入する(S1210)。そして、ステップS1207から一連の処理を繰り返す。
 図12では、マスターであるコントローラ104の擬似乱数算出部903の動作の流れを示したが、スレーヴである入力装置102の入力装置102の擬似乱数算出部903及びプラント側制御装置103の擬似乱数算出部903は、ステップS1204の時点でコントローラ104の日時情報生成部611から初期値904を受信すると、ステップS1205以降の動作を実行する。すなわち、ステップS1205以降の擬似乱数算出部903の動作は、マスターもスレーヴも同じである。
[同期運転処理]
 図13は、暗号化制御システム101の同期運転を説明するタイムチャートである。図13中、ステップ時間を10msec、ステップ数をtとする。同期運転始動時をt=0とし、t=0以降、tが1ずつインクリメントする。
 同期運転始動時(t=0)、入力装置102は目標値rをt=0のラベルに相当する公開鍵で暗号化して、暗号化目標値Enc(r)を得る。そして、暗号化目標値Enc(r)をコントローラ104を経由してプラント側制御装置103へ送信する(S1301)。暗号化目標値Enc(r)のデータフレームD1321には、日時情報生成部606が生成したt=0における現在日時情報が含まれている。
 同期運転始動時(t=0)、コントローラ104は暗号化パラメータテーブル609からt=0のラベルに相当する暗号化第一パラメータ、暗号化第二パラメータ及び暗号化第三パラメータを読み出し、初期値904としての制御入力uと乗算部608にて乗算処理を行い、暗号化制御入力Enc(u)を得る。そして、暗号化制御入力Enc(u)をプラント側制御装置103へ送信する(S1302)。暗号化制御入力Enc(u)のデータフレームD1322には、同期運転開始時における始動日時情報901と、t=0における現在日時情報が含まれている。この時点では、始動日時情報901と現在日時情報は同一である。
 同期運転始動時(t=0)、プラント側制御装置103は入力装置102からコントローラ104を経由して暗号化目標値Enc(r)を、コントローラ104から暗号化制御入力Enc(u)を受信する(S1303)。
 次にプラント側制御装置103の復号処理部612は各々のデータフレームに付されている現在日時情報、始動日時情報901を基にラベルを計算し、算出したラベルに対応する暗号鍵を用いて、目標値rと制御入力uをデコードする。制御用演算処理部614は、復号処理部612によってデコードされた目標値rと制御入力uの基となる値に演算処理を行い、目標値rと制御入力uを生成する。本発明の実施形態において使用する、準同型性を持つ公開鍵暗号は、暗号化したままのデータ同士を乗算(除算)することはできるが、加算(減算)ができない。そこで、コントローラ104の乗算部608は、与えられるデータに対し、制御用演算処理における乗算処理のみを行う。そして、暗号化したままではできない加算処理を制御用演算処理部614で遂行することで、制御用演算処理が完遂する。制御処理部615は、制御入力uから制御信号を生成し、制御対象106を制御する。制御対象106が制御処理部615によって制御されると、制御対象106の動作はセンサ107によって検出される。
 センサ107が出力する観測信号は、信号変換処理部616によって観測値yに変換される。信号変換処理部616が出力する観測値yは、制御用演算処理部614が出力する目標値rと共に目標誤差演算処理部617に入力される。目標誤差演算処理部617は、目標値rから観測値yを減算して、目標誤差εを出力する(S1304)。
 暗号化処理部603は、目標誤差εを、t+1のステップ数に相当するラベルに対応する公開鍵で暗号化する(S1305)。この時点ではt=0なので、t+1=1、すなわちステップ数1に相当するラベルに対応する公開鍵が、目標誤差εの暗号化に使われる。
 同期運転始動からステップ数が1インクリメントして、t=1になった時点で、プラント側制御装置103は、第二制御ネットワークモジュール115の送信部208を通じて、暗号化目標誤差Enc(ε)をコントローラ104へ送信する(S1306)。暗号化目標誤差Enc(ε)のデータフレームD1323には、同期運転開始時における始動日時情報901と、t=1における現在日時情報が含まれている。
 t=1の時点で、コントローラ104は、プラント側制御装置103から暗号化目標誤差Enc(ε)を受信する(S1307)。コントローラ104の第二制御ネットワークモジュール115の受信部309から受信した暗号化目標誤差Enc(ε)は、入出力制御部607を通じて乗算部608に引き渡される。乗算部608は、暗号化目標誤差Enc(ε)のデータフレームに付されている、始動日時情報901と、t=1における現在日時情報をテーブルレコード選択処理部610に引き渡す。テーブルレコード選択処理部610は、t=1のラベルに相当する暗号化第一パラメータ、暗号化第二パラメータ及び暗号化第三パラメータを読み出し、乗算部608に引き渡す。乗算部608は暗号化第一パラメータ、暗号化第二パラメータ及び暗号化第三パラメータと、暗号化目標誤差Enc(ε)を乗算処理して、暗号化制御入力Enc(u)を得る(S1308)。そして、暗号化制御入力Enc(u)をプラント側制御装置103へ送信する(S1309)。暗号化制御入力Enc(u)のデータフレームD1324には、同期運転開始時における始動日時情報901と、t=1における現在日時情報が含まれている。
 t=1の時点で、入力装置102は目標値rをt=1のラベルに相当する公開鍵で暗号化して、暗号化目標値Enc(r)を得る。そして、暗号化目標値Enc(r)をコントローラ104を経由してプラント側制御装置103へ送信する(S1310)。暗号化目標値Enc(r)のデータフレームD1325には、t=1における現在日時情報が含まれている。
 t=1の時点で、プラント側制御装置103は入力装置102からコントローラ104を経由して暗号化目標値Enc(r)を、コントローラ104から暗号化制御入力Enc(u)を受信する(S1311)。
 次にプラント側制御装置103の復号処理部612は各々のデータフレームに付されている現在日時情報、始動日時情報901を基にラベルを計算し、算出したラベルに対応する暗号鍵を用いて、目標値rと制御入力uをデコードする。制御用演算処理部614は、復号処理部612によってデコードされた目標値rと制御入力uの基となる値に演算処理を行い、目標値rと制御入力uを生成する。制御処理部615は、制御入力uから制御信号を生成し、制御対象106を制御する。制御対象106が制御処理部615によって制御されると、制御対象106の動作はセンサ107によって検出される。
 センサ107が出力する観測信号は、信号変換処理部616によって観測値yに変換される。信号変換処理部616が出力する観測値yは、制御用演算処理部614が出力する目標値rと共に目標誤差演算処理部617に入力される。目標誤差演算処理部617は、目標値rから観測値yを減算して、目標誤差εを出力する(S1312)。
 暗号化処理部603は、目標誤差εを、t+1のステップ数に相当するラベルに対応する公開鍵で暗号化する(S1313)。この時点ではt=1なので、t+1=2、すなわちステップ数2に相当するラベルに対応する公開鍵が、目標誤差εの暗号化に使われる。
 以下同様に、プラント側制御装置103は、入力装置102からステップ数tにおける暗号化目標値Enc(r)を、コントローラ104からステップ数tにおける暗号化制御入力Enc(u)を受信すると、目標値rと制御入力uに基づいて制御対象106を制御する。その結果、センサ107から得られた観測値yを目標値rから減算して目標誤差εを得る。暗号化処理部603は、目標誤差εをステップ数t+1における公開鍵で暗号化して、暗号化目標誤差Enc(ε)をコントローラ104へ出力する。
 つまり、プラント側制御装置103のデータ受信、演算、データ送信のサイクルにおいて、ステップ数は1インクリメントする。
 これに対し、コントローラ104は、プラント側制御装置103から受信した暗号化目標誤差Enc(ε)のデータフレームに付されている現在日時情報、始動日時情報901から得たステップ数tにおける暗号化第一パラメータ、暗号化第二パラメータ及び暗号化第三パラメータを、暗号化目標誤差Enc(ε)と乗算処理して、暗号化制御入力Enc(u)を得て、プラント側制御装置103へ送信する。
 つまり、コントローラ104のデータ受信、演算、データ送信のサイクルにおいて、ステップ数はそのまま変化しない。
[数値シミュレーション]
 以上説明した実施形態に係る暗号化制御システム101の理論的検証のため、計算機上で数値シミュレーションを実施した。
 図14Aは、特許文献1に係る暗号化制御システム101における、制御入力uと目標誤差εのグラフである。
 図14Bは、本発明の実施形態に係る暗号化制御システム101における、制御入力uと目標誤差εのグラフである。
 図14A及び図14Bの何れのグラフも、ステップ時間を10msecとし、時刻10secにおいて、暗号化目標誤差Enc(ε)に対して改竄攻撃を行ったと想定したシミュレーション結果である。
 図14Aでは、使用する公開鍵及び秘密鍵の組が1組だけであるため、改竄攻撃による影響が目標誤差εに現れない。しかし、図14Bでは、ステップ数毎に使用する公開鍵及び秘密鍵の組をランダムに切り替える仕組みを採用しているので、改竄攻撃によって目標誤差εが改竄攻撃される前とは明確に異なる、連続性のない変化を示す。
 制御システムは制御対象106が安定した状態であることが望ましい。このため、目標誤差εが大幅に変動することはまずあり得ない。したがって、目標誤差εの変動幅は概ね小さく、連続性を有する。通常の状態において変動幅が小さく連続性を有する信号が、急に変動幅が大きくなり、連続性のない変化を示すようになれば、何らかの異常が発生したものと明確に認識することができる。
 例えば、目標誤差εの変動幅を2乗して、所定の閾値と比較して、当該閾値を超えていれば、暗号化制御システム101に対する攻撃があったと判定することができる。この判定演算を攻撃検出器とする。
 図15Aは、特許文献1に係る暗号化制御システム101における、攻撃検出器のグラフである。
 図15Bは、本発明の実施形態に係る暗号化制御システム101における、攻撃検出器のグラフである。
 図15Aでは、使用する公開鍵及び秘密鍵の組が1組だけであるため、攻撃検出器は改竄攻撃を検出することができない。しかし、図15Bでは、ステップ数毎に使用する公開鍵及び秘密鍵の組をランダムに切り替える仕組みを採用しているので、攻撃検出器は改竄攻撃によって目標誤差εが改竄攻撃されたことを明確に認識することができる。
 以上に説明した実施形態には、以下のような変形例が考えられる。
 (1)上記の実施形態では、擬似乱数算出部903が、計算の要求が発生した時点で動作するように構成されていたが、予め計算した結果をラベルテーブルに記憶しておいてもよい。
 ラベルテーブルは、ステップ数フィールドとラベルフィールドを有する。
 ステップ数フィールドにはステップ数が格納される。
 ラベルフィールドにはステップ数に対応する、擬似乱数算出部903が算出したラベルが格納される。
 このようなラベルテーブルを数千あるいは数万レコード程度記憶しておけば、CPUモジュール112の演算リソースを主たる制御演算に集中させることができる。
 (2)上記の実施形態では、制御周期毎に公開鍵と秘密鍵のペアを切り替えるように構成されていたが、複数の制御周期毎に切り替えるように構成してもよい。但し、あまり切り替えの周期が長すぎると、悪意ある第三者に対する脆弱性が増大する虞がある。
 (3)日時情報源装置105の機能を、入力装置102、プラント側制御装置103、コントローラ104の何れか1台が兼用してもよい。例えば、入力装置102にGPS(global positioning system)受信機を装備することで、正確な日時情報を得ることが可能になる。
 (4)入力装置102とコントローラ104を一体化することができる。
 図16は、本発明の実施形態の変形例に係るコントローラ1601の、制御ネットワークにおけるソフトウェア機能を示すブロック図である。
 図16に示すコントローラ1601は、図6に示した入力装置102とコントローラ104を一体化した構成である。
 先ず、テーブルレコード選択処理部1602は、入力装置102のテーブルレコード選択処理部605とコントローラ104のテーブルレコード選択処理部610の機能を有する。すなわちテーブルレコード選択処理部1602は、暗号化処理部603に対し、公開鍵サブテーブル604から所定のレコードを選択すると共に、暗号化パラメータテーブル609から所定のレコードを選択する機能を有する。
 次に、入出力制御部1603は、入力装置102の入出力制御部602とコントローラ104の入出力制御部607の機能を有する。
 そして、入力装置102の日時情報生成部606は省略される。すなわち日時情報生成部611は、乗算部603から出力される暗号化制御入力に付加する日時情報を提供すると共に、テーブルレコード選択処理部1602に日時情報を提供すると共に起動タイミングを与える機能を有する。
 以上に説明したように、暗号化制御システム101において、入力装置102とコントローラ104に代えて、入力装置102とコントローラ104を一体化したコントローラ1601を用いても、同等の機能を実現することができる。
 なお、図6の入力装置102は公開鍵サブテーブル604を有している。そこで、入力装置102とコントローラ104を一体化したコントローラ1601を実現する際、暗号化処理部603に目標値rだけでなく、第一パラメータKp、第二パラメータKi及び第三パラメータKdも一緒に暗号化させる構成にすれば、暗号化処理部603の演算量は増えるが、暗号化パラメータテーブル609を省略することができる。
 本実施形態では、暗号化制御システム101を開示した。
 入力装置102、プラント側制御装置103及びコントローラ104には、共通の機能を有する擬似乱数算出部903を装備して、時刻同期を行う。そして、同一時刻で同期運転を開始する。このように暗号化制御システム101を構成することで、制御システム全体の制御周期に同期して、公開鍵と秘密鍵のペアを切り替えることが可能になる。よって、制御システムに対する、悪意ある第三者による介入を瞬時に且つ明確に検出することが可能になる。
 以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
 101…暗号化制御システム、102…入力装置、103…プラント側制御装置、104…コントローラ、105…日時情報源装置、106…制御対象、107…センサ、111…マウントベース、112…CPUモジュール、113…情報ネットワークモジュール、114a、114b…第一制御ネットワークモジュール、115…第二制御ネットワークモジュール、116…入出力モジュール、201…モジュールバス、202…CPU、203…ROM、204…RAM、205…RTC、206…内部バス、207…NIC、208…送信部、309…受信部、410…A/D変換器、411…D/A変換器、501…CPU、502…ROM、503…RAM、504…不揮発性ストレージ、505…RTC、506…NIC、507…バス、508…表示部、509…操作部、601…目標値入力部、602…入出力制御部、603…暗号化処理部、604…公開鍵サブテーブル、605…テーブルレコード選択処理部、606…日時情報生成部、607…入出力制御部、608…乗算部、609…暗号化パラメータテーブル、610…テーブルレコード選択処理部、611…日時情報生成部、612…復号処理部、613…テーブルレコード選択処理部、614…制御用演算処理部、615…制御処理部、616…信号変換処理部、617…目標誤差演算処理部、618…公開鍵テーブル、619…日時情報生成部、620…ログテーブル、901…始動日時情報、902…ステップ数算出部、903…擬似乱数算出部、904…初期値、1601…コントローラ、1602…テーブルレコード選択処理部、1603…入出力制御部

Claims (7)

  1.  コントローラと、プラント側制御装置を有する暗号化制御システムであり、
     前記コントローラは、
     目標値を公開鍵で暗号化して暗号化目標値を出力する第一の暗号化処理部と、
     前記第一の暗号化処理部に対し、公開鍵が複数個格納される公開鍵サブテーブルから所定のレコードを選択すると共に、制御システムのパラメータが前記公開鍵サブテーブルの公開鍵によって暗号化された暗号化パラメータが記録されたレコードよりなる暗号化パラメータテーブルから所定のレコードを選択する第一のテーブルレコード選択処理部と、
     前記プラント側制御装置から暗号化目標誤差を受信して、前記第一のテーブルレコード選択処理部が選択した前記暗号化パラメータを乗算して暗号化制御入力を出力する乗算部と、
     前記乗算部から出力される前記暗号化制御入力に付加する日時情報を提供すると共に、前記第一のテーブルレコード選択処理部に日時情報を提供すると共に起動タイミングを与える第一の日時情報生成部と
    を具備し、
     前記プラント側制御装置は、
     前記コントローラから受信した前記暗号化目標値を復号して目標値を得ると共に、前記コントローラから受信した前記暗号化制御入力を復号して制御入力を得る復号処理部と、
     前記制御入力に基づいて所定の制御対象を制御する制御処理部と、
     前記制御対象を観測するセンサから観測値を取得する信号変換処理部と、
     前記目標値から前記観測値を減算して目標誤差を算出する目標誤差演算処理部と、
     前記目標誤差を暗号化して暗号化目標誤差を出力する第二の暗号化処理部と、
     前記復号処理部に対し、公開鍵と前記公開鍵の対になる秘密鍵が複数個格納される公開鍵テーブルから所定のレコードを選択すると共に、前記第二の暗号化処理部に対し、前記公開鍵テーブルから所定のレコードを選択する第二のテーブルレコード選択処理部と、
     前記第二の暗号化処理部から出力される前記暗号化目標誤差に付加する日時情報を提供すると共に、前記第二のテーブルレコード選択処理部に起動タイミングを与える第二の日時情報生成部と
    を具備し、
     前記第一の日時情報生成部と、前記第二の日時情報生成部は、相互に同時に起動タイミングを生成するものである、
    暗号化制御システム。
  2.  入力装置と、コントローラと、プラント側制御装置を有する暗号化制御システムであり、
     前記入力装置は、
     目標値を公開鍵で暗号化して暗号化目標値を出力する第一の暗号化処理部と、
     前記第一の暗号化処理部に対し、公開鍵が複数個格納される公開鍵サブテーブルから所定のレコードを選択する第一のテーブルレコード選択処理部と、
     前記第一のテーブルレコード選択処理部に日時情報を提供すると共に起動タイミングを与える第一の日時情報生成部と
    を具備し、
     前記コントローラは、
     制御システムのパラメータが前記公開鍵サブテーブルの公開鍵によって暗号化された暗号化パラメータが記録されたレコードよりなる暗号化パラメータテーブルから所定のレコードを選択する第二のテーブルレコード選択処理部と、
     前記プラント側制御装置から暗号化目標誤差を受信して、前記第二のテーブルレコード選択処理部が選択した前記暗号化パラメータを乗算して暗号化制御入力を出力する乗算部と、
     前記乗算部から出力される前記暗号化制御入力に付加する日時情報を提供すると共に、前記第二のテーブルレコード選択処理部に起動タイミングを与える第二の日時情報生成部と
    を具備し、
     前記プラント側制御装置は、
     前記入力装置から受信した前記暗号化目標値を復号して目標値を得ると共に、前記コントローラから受信した前記暗号化制御入力を復号して制御入力を得る復号処理部と、
     前記制御入力に基づいて所定の制御対象を制御する制御処理部と、
     前記制御対象を観測するセンサから観測値を取得する信号変換処理部と、
     前記目標値から前記観測値を減算して目標誤差を算出する目標誤差演算処理部と、
     前記目標誤差を暗号化して暗号化目標誤差を出力する第二の暗号化処理部と、
     前記復号処理部に対し、公開鍵と前記公開鍵の対になる秘密鍵が複数個格納される公開鍵テーブルから所定のレコードを選択すると共に、前記第二の暗号化処理部に対し、前記公開鍵テーブルから所定のレコードを選択する第三のテーブルレコード選択処理部と、
     前記第二の暗号化処理部から出力される前記暗号化目標誤差に付加する日時情報を提供すると共に、前記第三のテーブルレコード選択処理部に起動タイミングを与える第三の日時情報生成部と
    を具備し、
     前記第一の日時情報生成部と、前記第二の日時情報生成部と、前記第三の日時情報生成部は、相互に同時に起動タイミングを生成するものである、
    暗号化制御システム。
  3.  前記第一のテーブルレコード選択処理部と、前記第二のテーブルレコード選択処理部と、前記第三のテーブルレコード選択処理部は、同一の初期値を与えられ、所定の周期に同一の演算処理を行い、前記公開鍵サブテーブルと、前記暗号化パラメータテーブルと、前記公開鍵テーブルのレコード番号に相当する整数を出力する擬似乱数算出部を具備する、
    請求項2に記載の暗号化制御システム。
  4.  入力装置から暗号化目標値を含む第一のデータフレームを受信する暗号化目標値受信ステップと、
     前記第一のデータフレームに付されているエンコード日時フィールドから第一のエンコード日時情報を読み出し、前記第一のエンコード日時情報から始動日時情報を減算し、所定の周期で除算することで暗号化目標値ステップ数を算出する、暗号化目標値ステップ数算出ステップと、
     前記暗号化目標値ステップ数に基づいて第一の擬似乱数を算出し、公開鍵と前記公開鍵の対になる秘密鍵が複数個格納される公開鍵テーブルのレコード番号を前記第一の擬似乱数に基づいて指定して、選択したレコードに格納されている前記秘密鍵を用いて前記暗号化目標値を復号する、暗号化目標値復号ステップと
    を有する、暗号化制御方法。
  5.  更に、
     コントローラから暗号化パラメータを含む第二のデータフレームを受信する暗号化パラメータ受信ステップと、
     前記第二のデータフレームに付されているエンコード日時フィールドから第二のエンコード日時情報を読み出し、前記第二のエンコード日時情報から始動日時情報を減算し、所定の周期で除算することで暗号化パラメータステップ数を算出する、暗号化パラメータステップ数算出ステップと、
     前記暗号化パラメータステップ数に基づいて第二の擬似乱数を算出し、前記公開鍵テーブルのレコード番号を前記第二の擬似乱数に基づいて指定して、選択したレコードに格納されている前記秘密鍵を用いて前記暗号化パラメータを復号する、暗号化パラメータ復号ステップと、
     前記暗号化パラメータ復号ステップにおいて復号された前記暗号化パラメータの値に所定の演算処理を施して制御入力を得る制御用演算処理ステップと、
     前記制御入力に基づいて制御対象が制御され、前記制御対象を観測したセンサから得られた観測値を前記目標値から減算して、目標誤差を得る目標誤差演算処理ステップと、
     前記暗号化パラメータステップ数算出ステップにて算出した前記暗号化パラメータステップ数に1を加算した新たなステップ数に基づいて第三の擬似乱数を算出し、前記公開鍵テーブルのレコード番号を前記第三の擬似乱数に基づいて指定して、選択したレコードに格納されている前記公開鍵を用いて前記目標誤差を暗号化する、目標誤差暗号化処理ステップと、
     前記目標誤差に、現在日時情報を格納するエンコード日時フィールドと、始動日時情報を格納する始動日時フィールドを付加して、第三のデータフレームを前記コントローラに送信する、暗号化目標誤差送信ステップと
    を有する、請求項4に記載の暗号化制御方法。
  6.  計算機に、
     入力装置から暗号化目標値を含む第一のデータフレームを受信する暗号化目標値受信ステップと、
     前記第一のデータフレームに付されているエンコード日時フィールドから第一のエンコード日時情報を読み出し、前記第一のエンコード日時情報から始動日時情報を減算し、所定の周期で除算することで暗号化目標値ステップ数を算出する、暗号化目標値ステップ数算出ステップと、
     前記暗号化目標値ステップ数に基づいて第一の擬似乱数を算出し、公開鍵と前記公開鍵の対になる秘密鍵が複数個格納される公開鍵テーブルのレコード番号を前記第一の擬似乱数に基づいて指定して、選択したレコードに格納されている前記秘密鍵を用いて前記暗号化目標値を復号する、暗号化目標値復号ステップと
    を実行させる、暗号化制御プログラム。
  7.  更に、
     コントローラから暗号化パラメータを含む第二のデータフレームを受信する暗号化パラメータ受信ステップと、
     前記第二のデータフレームに付されているエンコード日時フィールドから第二のエンコード日時情報を読み出し、前記第二のエンコード日時情報から始動日時情報を減算し、所定の周期で除算することで暗号化パラメータステップ数を算出する、暗号化パラメータステップ数算出ステップと、
     前記暗号化パラメータステップ数に基づいて第二の擬似乱数を算出し、前記公開鍵テーブルのレコード番号を前記第二の擬似乱数に基づいて指定して、選択したレコードに格納されている前記秘密鍵を用いて前記暗号化パラメータを復号する、暗号化パラメータ復号ステップと、
     前記暗号化パラメータ復号ステップにおいて復号された前記暗号化パラメータの値に所定の演算処理を施して制御入力を得る制御用演算処理ステップと、
     前記制御入力に基づいて制御対象が制御され、前記制御対象を観測したセンサから得られた観測値を前記目標値から減算して、目標誤差を得る目標誤差演算処理ステップと、
     前記暗号化パラメータステップ数算出ステップにて算出した前記暗号化パラメータステップ数に1を加算した新たなステップ数に基づいて第三の擬似乱数を算出し、前記公開鍵テーブルのレコード番号を前記第三の擬似乱数に基づいて指定して、選択したレコードに格納されている前記公開鍵を用いて前記目標誤差を暗号化する、目標誤差暗号化処理ステップと、
     前記目標誤差に、現在日時情報を格納するエンコード日時フィールドと、始動日時情報を格納する始動日時フィールドを付加して、第三のデータフレームを前記コントローラに送信する、暗号化目標誤差送信ステップと
    を実行させる、請求項6に記載の暗号化制御プログラム。
PCT/JP2018/038954 2017-10-20 2018-10-19 暗号化制御システム、暗号化制御方法及び暗号化制御プログラム WO2019078343A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/756,159 US11196723B2 (en) 2017-10-20 2018-10-19 Encrypted control system, encrypted control method, and encrypted control program
JP2019548817A JP7391368B2 (ja) 2017-10-20 2018-10-19 暗号化制御方法及び暗号化制御プログラム
JP2023194586A JP2024012613A (ja) 2017-10-20 2023-11-15 暗号化制御システム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-203513 2017-10-20
JP2017203513 2017-10-20

Publications (1)

Publication Number Publication Date
WO2019078343A1 true WO2019078343A1 (ja) 2019-04-25

Family

ID=66173692

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/038954 WO2019078343A1 (ja) 2017-10-20 2018-10-19 暗号化制御システム、暗号化制御方法及び暗号化制御プログラム

Country Status (3)

Country Link
US (1) US11196723B2 (ja)
JP (2) JP7391368B2 (ja)
WO (1) WO2019078343A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020182142A (ja) * 2019-04-26 2020-11-05 株式会社安川電機 通信システム、通信方法、及びプログラム
JP2020184751A (ja) * 2019-04-26 2020-11-12 株式会社安川電機 通信システム、通信方法、及びプログラム
US11277388B2 (en) 2019-04-26 2022-03-15 Kabushiki Kaisha Yaskawa Denki Communication system, communication method, and information storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9561034B2 (en) 2011-11-01 2017-02-07 Zipline Medical, Inc. Surgical incision and closure apparatus
CN117272356A (zh) * 2023-11-22 2023-12-22 江西科技学院 计算机的加密方法、系统及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01212041A (ja) * 1988-02-18 1989-08-25 Hitachi Ltd 暗号化通信システム
WO2013189783A1 (en) * 2012-06-19 2013-12-27 Abb Research Ltd Processing operating data of an industrial system
JP2016527844A (ja) * 2013-08-06 2016-09-08 ベドロック・オートメーション・プラットフォームズ・インコーポレーテッド 安全な産業用制御システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101554399B1 (ko) * 2011-01-07 2015-09-18 야마하 가부시키가이샤 자동 연주 장치, 저장 장치, 연주 정보 출력 장치 및 연주 시스템
US9100657B1 (en) * 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US9191203B2 (en) 2013-08-06 2015-11-17 Bedrock Automation Platforms Inc. Secure industrial control system
JP5833146B2 (ja) * 2012-02-09 2015-12-16 株式会社日立製作所 機密データ漏えい防止装置および方法
US9137528B1 (en) * 2012-09-28 2015-09-15 Google Inc. Synchronizing sparse coding dictionaries for use in communication sessions
JP6360781B2 (ja) 2014-11-07 2018-07-18 国立大学法人電気通信大学 暗号化制御システムおよび暗号化制御方法、並びにプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01212041A (ja) * 1988-02-18 1989-08-25 Hitachi Ltd 暗号化通信システム
WO2013189783A1 (en) * 2012-06-19 2013-12-27 Abb Research Ltd Processing operating data of an industrial system
JP2016527844A (ja) * 2013-08-06 2016-09-08 ベドロック・オートメーション・プラットフォームズ・インコーポレーテッド 安全な産業用制御システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FUJITA, TAKAHIRO ET AL.: "Encryption of Controllers Using ElGamal Cryptosystem", TRANSACTIONS OF THE SOCIETY OF INSTRUMENT AND CONTROL ENGINEERS, vol. 51, no. 9, 2015 - 6 July 2015 (2015-07-06), pages 661 - 666, XP055594691 *
SUZUKI, TAKASHI ET AL.: "Encrypted Control System with selective Keys", PROCEEDINGS OF THE 60TH JAPAN JOINT AUTOMATIC CONTROL CONFERENCE, 6 December 2017 (2017-12-06), XP055594694, Retrieved from the Internet <URL:https://www.jstage.jst.go.jp/article/jacc/60/0/60_513/_article/-char/ja> [retrieved on 20181206] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020182142A (ja) * 2019-04-26 2020-11-05 株式会社安川電機 通信システム、通信方法、及びプログラム
JP2020184751A (ja) * 2019-04-26 2020-11-12 株式会社安川電機 通信システム、通信方法、及びプログラム
US11277388B2 (en) 2019-04-26 2022-03-15 Kabushiki Kaisha Yaskawa Denki Communication system, communication method, and information storage medium

Also Published As

Publication number Publication date
JP2024012613A (ja) 2024-01-30
US20200280545A1 (en) 2020-09-03
US11196723B2 (en) 2021-12-07
JP7391368B2 (ja) 2023-12-05
JPWO2019078343A1 (ja) 2020-11-12

Similar Documents

Publication Publication Date Title
JP7391368B2 (ja) 暗号化制御方法及び暗号化制御プログラム
US9973334B2 (en) Homomorphically-created symmetric key
NL2013944B1 (en) Public-key encryption system.
EP2704352A1 (en) Method, device and system for processing encrypted text
EP3198784B1 (en) Public-key encryption system
US9130909B2 (en) Data management apparatus, power usage calculation system, and data management method
JP6178142B2 (ja) 生成装置、方法およびプログラム
KR102154164B1 (ko) 의사 랜덤 시퀀스 생성 방법 및 데이터 스트림의 코딩 또는 디코딩 방법
JP2016529753A (ja) 鍵共有デバイス及び方法
CN111259419A (zh) 基于多传感器的随机数加密方法及装置
CN113225371A (zh) 一种电力物联网终端控制指令加解密系统及方法
CN111404671A (zh) 移动化量子保密通信方法、网关、移动终端及服务器
JP2016090884A (ja) 暗号化制御システムおよび暗号化制御方法、並びにプログラム
CN105339995A (zh) 解密装置、解密能力提供装置、其方法、以及程序
JP2021500760A (ja) 外部監視攻撃からモジュラーインバージョン演算を保護すること
US9473471B2 (en) Method, apparatus and system for performing proxy transformation
CN106534077B (zh) 一种基于对称密码的可认证的代理重加密系统及方法
Al-Kaabi et al. Methods toward enhancing RSA algorithm: a survey
US11082223B2 (en) Communication device, communication method, and recording medium
CN107342855B (zh) 基于sm2算法的签名方法
KR102372844B1 (ko) 단방향 암호화 장치 및 방법
CN105681027A (zh) Hsm加密信息同步实现方法、装置和系统
JP4979085B2 (ja) 時限式暗号化方法および装置、時限式復号方法および装置、ならびに時限式暗号化復号システム
WO2020179672A1 (ja) 暗号化制御システム、暗号化制御方法および暗号化制御プログラム
Wang et al. Network time protocol based time-varying encryption system for smart grid meter

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18867735

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019548817

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18867735

Country of ref document: EP

Kind code of ref document: A1