WO2020179672A1 - Encryption control system, encryption control method, and encryption control program - Google Patents

Encryption control system, encryption control method, and encryption control program Download PDF

Info

Publication number
WO2020179672A1
WO2020179672A1 PCT/JP2020/008362 JP2020008362W WO2020179672A1 WO 2020179672 A1 WO2020179672 A1 WO 2020179672A1 JP 2020008362 W JP2020008362 W JP 2020008362W WO 2020179672 A1 WO2020179672 A1 WO 2020179672A1
Authority
WO
WIPO (PCT)
Prior art keywords
encryption
key
control
ciphertext
random number
Prior art date
Application number
PCT/JP2020/008362
Other languages
French (fr)
Japanese (ja)
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 JP2021504051A priority Critical patent/JP7450277B2/en
Publication of WO2020179672A1 publication Critical patent/WO2020179672A1/en

Links

Images

Classifications

    • 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
    • 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
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Definitions

  • the present invention relates to an encryption control system, an encryption control method, and an encryption control program.
  • control system various devices in the system are interconnected via a network.
  • Non-Patent Document 1 a method of determining a control input while ciphering signals and parameters inside a controller (controller) while keeping them secret.
  • Non-Patent Document 2 the inventors conducted an experiment of encryption control using a key of 128 (bit) or less by ElGamal encryption and verified the real-time property.
  • Non-Patent Document 2 the inventors report that there is a trade-off relationship between security and processing time because the processing time increases as the encryption key used in the encryption control system becomes longer.
  • the processing time is the time required for the "encryption and decryption" processing, and it is known that if the encryption key is lengthened, not only the decryption processing time but also the encryption processing time increases.
  • the real-time property refers to a time constraint on the processing time from when the system starts one process to when it ends. For example, if a control system is designed to perform encryption control once every 10 (ms), the processing time must always be within 10 (ms). In this verification method, the processing time is measured by repeatedly executing the encryption control 10,000 times and 100,000 times using an experimental device. Then, when the processing time never exceeds the time constraint of 10 (ms) during control, this control system is guaranteed to be real-time with a sampling cycle of 10 (ms).
  • ElGamal encryption is an encryption method whose security is based on the difficulty of finding a solution to a discrete logarithmic problem.
  • bit the discrete logarithm problem on a finite field with 768 (bit) order
  • the inventors have studied a key length design problem capable of avoiding all key deciphering within the useful life of the controlled object, and are aiming to apply the encryption control to a real system.
  • the inventors use ElGamal encryption to prevent key decryption within the useful life (10 to 20 years) with a shorter key length than the encryption keys (public key and private key) used in conventional encryption control systems. I found a way to do dynamic expansion of. Then, we conducted a control simulation with the control signal and calculation kept secret, and considered a mechanism to update the encryption key (public key, secret key) in the sensing time unit of the sensor for the controlled object within the service life.
  • an object of the present invention is to provide an encryption control system, an encryption control method, and an encryption control program in which an encryption key and a ciphertext are dynamically and endlessly updated in a predetermined time unit (step). is there.
  • an encryption control system of the present invention is an encryption control system for controlling a control target by an encryption controller that enables information in a control system to be concealed by a cryptographic theory.
  • Each step includes an encryption key update unit that dynamically updates the private key and the public key, and an encryption text update unit that dynamically updates the encryption text.
  • the encryption key updating unit and the ciphertext updating unit in the encryption control system of the present invention each include a random number generator, and all the random number generators generate the same random number at the same time step and are generated by the random number generator. By performing the multiplication remainder processing of the random number and the encryption control parameter, the private key, the public key, and the ciphertext are updated.
  • the encryption key updating unit creates the encryption key used at the next time step from the encryption key used at the current time step based on the control law of the control system.
  • the ciphertext update unit updates the ciphertext
  • the ciphertext update unit creates the ciphertext by calculating the ciphertext used at the next time step based on the control law of the control system from the ciphertext used at the current time step. Try to update.
  • FIG. 11 is a waveform diagram showing a comparison between the dynamic encryption control for updating the key of the present invention and the conventional static encryption control. It is a figure explaining the key size and processing time of the dynamic encryption control which performs the key update of this invention by comparison with the solution of the conventional discrete logarithm problem.
  • Z n is an integer set of 0 or more and less than n
  • Z n x is a set of relatively prime elements in Z n
  • M is a set of integer values (plaintext) that can be used for encryption.
  • the ElGamal encryption algorithm consists of three algorithms: key generation (Gen), encryption (Enc), and decryption (Dec).
  • q is a prime number of k (bit)
  • g is the cyclic group G It is a generation source.
  • encryption key is usually used as a term that includes both a public key and a private key.
  • Cryptographic key is a technical term translated into Japanese from "cryptographic key”, and according to the definition published by the Information-technology Promotion Agency (IPA), an affiliated organization of the Ministry of Economy, Trade and Industry, the encryption key is "encryption and decryption”. The sequence of symbols that control the conversion process.”
  • IPA Information-technology Promotion Agency
  • the public key is represented by k p (t) and the private key is represented by k s (t). (t) indicates that both the public key and the private key are variables that change over time.
  • the public key k p : (G, q, g, h) is the ElGamal encryption public key k p, which is the cyclic group G, the prime number q, the generator g of the cyclic group G, and the time (t). ) Includes four parameters of h(t).
  • h (t) is one parameter that constitutes the public key k p (t), but since the parameters other than this h (t) do not change with time, the public key k p ( In some cases, the description will be made by replacing t) with the public key h(t).
  • the secret key k s (t) of the ElGamal encryption is composed of only the changing parameter s (t), and thus the secret key k s (t) is synonymous with the secret key s (t). Therefore, the secret key k s (t) may be described as the secret key s (t) in the following calculation formulas and the like.
  • the ciphertext vector C is composed of two components, scalar values c 1 and c 2 , which will be described later.
  • the ciphertext vector C is represented by Formula 1.
  • This equation of number 1 shows that the plaintext m encrypted with the public key k p becomes the ciphertext vector C.
  • the scalar values c 1 and c 2 which are the components of the ciphertext vector C, are g n , respectively, as shown by the equation 1. It is indicated by mod p and mh n mod p.
  • n is a random number uniformly selected from the set of integers Z q when encrypting.
  • the "random number selected uniformly” means a random number selected from random values following a uniform distribution. That is, a random number n is an integer value selected with the same probability from all the elements of the integer set Z q , which are 0 or more and less than q.
  • (c 1 ) -s is a modular reciprocal whose method (divisor) is p of (c 1 ) s . If the ciphertext C is encrypted by the equation 1, the equation 3 holds. This equation of number 3 is a mathematical expression showing that the plaintext m is encrypted with the public key k p and then decrypted with the private key k s to return to the original plaintext m.
  • R is a real number set
  • N is a natural number set
  • Z is an integer set. It is assumed that the discrete-time controller used in the encryption control system of the present invention is designed in advance, and the input / output relationship thereof is described by the control rule f shown by Equation 4.
  • is a control parameter of the controller, and is a symbol that collectively indicates the control parameters K p , K i , and K d .
  • K p is a proportional element
  • K i is an integral element
  • K d is a differential element.
  • is an input vector that summarizes the state vector x of the controller and the input u c to the controller.
  • the state vector x is a vector of state variables, and the state variable is a variable that numerically represents the state of the control system such as the controlled object or the controller.
  • the matrices A, B, C and D are coefficient matrices representing the control parameter ⁇ , and an appropriate coefficient is set on the basis of control engineering by an administrator (responsible person) who has knowledge of the controlled object.
  • is a matrix summarizing the calculation process of the control input u and the updated state vector x.
  • the map f represents the product of a matrix and a vector.
  • f ⁇ represents the multiplication of the row vector of ⁇ and the column vector of ⁇ .
  • f + represents a mapping in which the column vectors of the matrix are added together.
  • the map f can be expressed as a composite function of f + and f ⁇ .
  • is the output of the map f ⁇ and the input of the map f + , and is a matrix summarizing the calculation process of the map f.
  • x (t) is a vector indicating the state of the controller at time t
  • u (t) indicates a control input
  • u c (t) is the input to the controller.
  • is an input vector that combines the state vector x of the controller and the input u c to the controller.
  • the equation 4 means the multiplication of the input vector ⁇ and the control parameter ⁇ .
  • This equation 5 is obtained by encrypting the control parameter ⁇ of the controller with the public key k p and encrypting the input vector ⁇ of the controller with the public key k p according to the encryption control rule f ⁇ . It is shown that f ( ⁇ , ⁇ (t)) can be obtained by decoding with k s .
  • the plaintext space M needs to be defined as a subgroup of the real number set Zp.
  • Equation 7 Since the observed value and the parameter of the controller are real numbers, when encrypting, the coefficient ⁇ for reducing the rounding error as shown in Equation 7 is used to round the plaintext space M is necessary.
  • y is a real number vector
  • ⁇ y is an integer vector of elements of the set M
  • y i and d i are i-th elements of the vectors y and d.
  • is an integer value to be multiplied in order to reduce the error of rounding to the set M, and is called a plaintext conversion gain.
  • Q is a mapping that transforms the real vector y into an integer vector of the elements of the set M.
  • the problem of finding the secret key parameter s from the parameter h of the public key k p and the prime number p in this equation of number 8 is the discrete logarithm problem.
  • a method called a quasi-exponential time algorithm is known as a method for solving this problem. It is also known that the expected time L p required to solve the discrete logarithm problem of Equation 8 by using this quasi-exponential time algorithm is Equation 9.
  • a p that gives a prime number q is called a safety prime number.
  • the inventors have a key length design problem in which it is difficult to decipher the key within the useful life of the control system (for example, 10 to 20 years) in order to prevent leakage of all input / output signals during operation of the encrypted control system. It was investigated. Let L u (sec) be the useful life of the control system, and L a (sec) be the time required for an attacker to decrypt all keys. Then, if the L u (sec) ⁇ L a (sec), since the attacker can get all of the secret key during the operation of encryption control system, for an attacker, decoding of the input and output signals of all time Will be possible.
  • the attacker can not identify all of the private key in the operating time of encryption control system. In other words, in this case, the encrypted control system reaches the end of its life (useful life) before the input / output signals at all times are leaked, so even if an attacker identifies all the private keys, it will be controlled. There is no chance to attack the system. From the above discussion, the key length design problem can be reduced to a minimum of the problem of finding a key length k (bit) that satisfies L u (sec) ⁇ L a (sec).
  • the inventors of the present invention dynamically update the public key k p (t) and the secret key k s (t) according to the time (step) t, thereby enabling the real-time encryption with a short key length.
  • the control system was considered. That is, as a solution to the key length design problem, the inventors dynamically extend the ElGamal encryption by implementing a plurality of keys, and solve the key length design problem of the encryption control system with a shorter key length key. I succeeded in getting at.
  • the service life L u attackers control system in comparison with the time L a required for all key decryption, the minimum satisfying L u (sec) ⁇ L a (sec) in a single key
  • the key length k was 601 (bit). However, if this is two keys, the minimum key length k can be a shorter bit length. If there are three encryption keys, the key length k can be further shortened. Extend this idea, given that updating the encryption key for each step response of the control system, the minimum key length k satisfying L u (sec) ⁇ L a (sec) is shorter than 128 (bit) But the problem goes away. In other words, if the number of encryption keys becomes huge, it becomes virtually impossible for an attacker to decrypt all the encryption keys. That is, by introducing the technical idea of updating the encryption key for each step response of the control system, it is possible to realize a sufficiently practical encryption control system even with a weak computer resource such as the above-mentioned single board computer. It will be possible.
  • the inventors updated the public key k p (t), the secret key k s (t), and the ciphertext C(c 1 (t),c 2 (t)) of the ElGamal cipher with the equation 10 I decided to update it step by step based on the formula.
  • the public key k p (t) is represented by h (t), which is one of the parameters of ElGamal encryption
  • the private key k s (t) is also represented by the parameter s (t). Therefore, in the following description of the mathematical formula, it is simply described as the public key h (t) and the private key s (t).
  • v (t) and w (t) are random numbers that form the elements of the integer set Z q .
  • the private key s (t + 1), public key h (t + 1) and ciphertext C (c 1 ) in the next step The following two theorems are considered for (t + 1) and c 2 (t + 1)).
  • [Theorem 1] (Key update) In the encryption key (public key and private key), the initial value h (0) of the public key and the initial value s (0) of the private key can be obtained by the encryption control algorithm (Gen). Given in the equation, the public key h (t) and the private key s (t) satisfy the equation 3 at all times t.
  • the public key h (t) and the private key s (t) used in the control system are updated every sampling period T s using a random number by the update formula shown in the equation several tens. Since it is updated every sampling cycle T s , it is difficult for an attacker who does not have the same random number generator as the control system to update to s (t + 1) even if the private key s (t) is acquired. is there.
  • the sampling cycle T s varies depending on the type of control system. For example, if the control target is something like a mechanical robot, the sampling cycle T s of this mechanical robot can be switched at a cycle of about 0.1 msec. On the other hand, in the case of a large plant such as a chemical plant, it may occur once every few months or years. That is, the sampling cycle T s is a value that is determined by how fast the control target is sensed, and may be a short cycle or a long cycle depending on the control target. In general, slow-moving objects have a long cycle, and fast-moving objects have a short cycle.
  • the number of samples in the useful life L u is the value L u / T s step of dividing the service life L u of the control system at the sampling period T s.
  • there are q possible values of the private key s (t) (q is a prime number of k (bit)).
  • L a (L u / T s) L p ⁇ v, c ⁇ becomes.
  • L p is the estimated time required to solve the discrete logarithm problem using the quasi-exponential time algorithm (see Equation 9).
  • the key length design problem in the encryption control system using the update formula shown in Formula 10 is that both the useful life L u and the sampling period T s are positive values larger than 0, and T s ⁇ L p ⁇ v, c ⁇ .
  • T s 1.0 ⁇ 10 -2 (sec)
  • the minimum k (bit) value that satisfies T s ⁇ L p ⁇ v, c ⁇ is 105 (bit).
  • T s 1.0 ⁇ 10 ⁇ 3 (sec)
  • the minimum k(bit) value becomes 83 (bit). From this, if the ElGamal cipher is dynamically expanded by the update formula shown in Formula 10, it is difficult to specify all the input signals within one sampling period T s even if the key length is shorter than before. It can be said that there is.
  • FIG. 1 is for explaining the principle of an encryption control system in which a decryption unit 30 and an encryption unit 40 are provided between a controller (encryption controller) 10 for performing this control simulation and a plant 20 including a control target 21. It is a schematic diagram of. In FIG. 1, the plant 20 and the controlled object 21 are described separately, but these two can be considered to be substantially synonymous.
  • an example of a PID (Proportional Integral Differential Controller) controller which is a type of general feedback control in control engineering, is a method of controlling an input value by a deviation between an output value and a target value.
  • a target value r is set for the plant 20 including the controlled object 21.
  • This target value r is supplied from the decryption unit 30 to the plant 20, and in order to realize this, the encryption target value Enc (r) is supplied to the encryption controller 10.
  • the observed value y is output from the controlled object 21.
  • the target value r output from the decoding unit 30 differs depending on the control target 21 of the plant 20, in the PID control simulation described later with reference to FIG. 4, the initial position is “1”, the initial speed is “0”, The target position is set to "0”.
  • the target error ⁇ output from the subtractor 22 is sent to the encryption unit 40.
  • the state vector x of the encryption controller 10 is also output from the decryption unit 30 and sent to the encryption unit 40.
  • the encryption unit 40 generates an input vector ⁇ that is a collection of the state vector x and the target error ⁇ of the encryption controller 10, and encrypts the input vector ⁇ with the public key k p (t). Then, the encryption input vector Enc ( ⁇ ) is output from the encryption unit 40 and sent to the encryption controller (control) 10.
  • the encrypted input vector Enc( ⁇ ) includes the encrypted state vector Enc(x) and the encrypted target error Enc( ⁇ ).
  • the encryption controller 10 in addition to the encrypted input vector Enc( ⁇ ), the encrypted target value Enc(r), the first encryption control parameter Enc(K p ), and the second encryption control parameter Enc( K i ) and the third cryptographic control parameter Enc (K d ) are supplied.
  • the first to third encryption control parameters Enc (K p ), Enc (K i ), and Enc (K d ) supplied to the encryption controller 10 are typical encryption control parameters. Multiplying this encryption control parameter with the encrypted input vector Enc ( ⁇ ) When the remainder processing operation is performed, the output matrix Enc ( ⁇ ) of the encrypted encryption controller (control) 10 is output.
  • the output matrix Enc ( ⁇ ) contains the encryption control signal Enc (u) and the updated encryption state vector Enc (x).
  • the encrypted output matrix Enc( ⁇ ) and the encrypted target value Enc(r) output from the encryption controller 10 are added to the decryption unit 30, decrypted by the decryption unit 30, and the control signal u, A state vector x and a target value r are generated. Then, the control signal u is used to control the controlled object 21. Further, the target value r is sent to the subtractor 22 of the plant 20, and the state vector x of the controller is sent to the encryption unit 40 via the plant 20.
  • the process shown in FIG. 1 is repeated in each step (sampling cycle T s ), and the public key h (t) used for encryption of the encryption unit 40 and the private key used for decryption of the decryption unit 30 in each step.
  • s (t) and ciphertext C (c 1 (t), c 2 (t)) are updated.
  • the updating process of the public key h(t), the secret key s(t), and the ciphertext C(c 1 (t),c 2 (t)) is performed according to the updating rule described in Expression 10.
  • the ciphertext C is the encryption control parameters Enc(K p ), Enc(K i ), Enc(K d ), encryption target value Enc(r), encryption control signal Enc(u), encryption Includes all of the state vector Enc (x) and the encryption target error Enc ( ⁇ ).
  • the decryption unit 30, the encryption unit 40, and the encryption controller (control) 10 are connected via a transmission line.
  • the components other than the encryption controller (control) 10 are surrounded by a dotted line.
  • the meaning of being surrounded by a dotted line is that the decryption unit 30 and the encryption unit 40 are closely related to the plant 20, and the decrypted control signal u, target value r, target error ⁇ , and state vector x are This means that the plaintext is not output to the transmission line.
  • FIG. 2A is a block diagram showing a function when updating the public key h(t), the secret key s(t), the ciphertext c 1 (t), and the c 2 (t) by the update rule shown in Formula 10. is there.
  • the storage unit 50 the random number generator 51, the secret key update unit 52, the public key update unit 53, the ciphertext update units 54 and 55, and the random number update unit 56. Equipped with.
  • the initial value of each parameter is stored in the storage unit 50.
  • p and q are prime numbers
  • g is a generator of the cyclic group G
  • these scalar values p, q, and g are fixed numbers that do not change with time.
  • N (0) is stored.
  • the secret key parameter S(0), the public key parameter H(0), the random number N(0), and the encryption control parameter ENC ⁇ (0) are the secret key S(T), the public key when calculating with the formula 10. This is the initial value for updating H (T), ciphertext C 1 (t), and c 2 (t) at each step.
  • Fixed parameters (p, q, g) stored in the storage unit 50 and initial values (s(0), h(0), n(0), Enc ⁇ (0)) of parameters updated with time are It is selected according to its use and sent to the private key update unit 52, the public key update unit 53, the ciphertext update units 54 and 55, and the random number update unit 56.
  • it becomes a value (s (t), h (t), n (t), Enc ⁇ (t)) at that time (step t) and is stored in the storage unit 50.
  • the stored secret key s(t), public key h(t), random number n(t), and encryption control parameter Enc ⁇ (t) at step t are updated at the next step (t+1). It is used for.
  • the ciphertext updating unit 55 uses the ciphertext initial values c 1 (0) and c 2 (0) obtained from the encryption control parameter Enc initial value ⁇ (0) and the random numbers v(0) and w(0 ) Is used to update with several tens of equations to obtain the ciphertext c 2 (1).
  • the random number update unit 56 generates a random number n (1) to be used in the next step by using the initial value n (0) of the random number taken out from the storage unit 50 and the random number v (0) from the random number generator 51. ..
  • the update formula for this random number n (t) is not shown in the equation of several tens, but the following formula is used.
  • n(t+1) (n(t)+v(t)) mod q
  • FIG. 2B shows how the public key h (t), the private key s (t), and the ciphertext control parameter Enc ( ⁇ ) are updated at each step corresponding to the sampling period T s .
  • Enc ( ⁇ ) shown in FIG. 2B is the first encryption control parameter Enc (K p ), the second encryption control parameter Enc (K i ), and the third encryption control parameter Enc (K d ) in FIG. It is an encryption control parameter shown as a representative.
  • updating the encryption control parameter Enc ⁇ (t) is synonymous with updating the ciphertext C(c 1 , c 2 ).
  • the public key h(t), the secret key s(t), and the ciphertext C(c 1 (t), c 2 (t)) are updated at each step, and the update is repeated.
  • f 1 is a mapping that updates the private key s (t), and the new secret key s (t + 1) is entered by inputting the private key s (t) and the random number w (t). make.
  • f 2 is a map for updating the public key h(t), and the public key h(t) and the random number w(t) are input to create a new public key h(t+1).
  • f 3 is the map to update the ciphertext c 1, make the ciphertext c 1 (t), random number v (t) by entering a new ciphertext c 1 (t + 1).
  • f 4 is a mapping that updates the ciphertext c 2 (t), and the new ciphertexts c 1 (t), c 2 (t), random numbers v (t), w (t) are entered. Generate the ciphertext c 2 (t+1).
  • FIG. 3B shows the difference (y-ECSy) between the response when encrypted and the response when not encrypted. From FIG. 3B, it can be seen that the error between the two responses is within the guaranteed range (15 digits) of the double precision floating point type.
  • FIG. 4A to 4C show a secret key (s), a public key (h), and an encryption control parameter Enc(K p ) when a conventional static key and a dynamically expanded key according to the present invention are used. It is the figure which showed by comparison.
  • the encryption control parameter Enc (K p ) is the result of a simulation specialized for proportional control.
  • the secret key (s) has a constant value.
  • the secret key (s) is updated by the update rule of Equation 10
  • the secret key (s) changes drastically.
  • the public key (h) is also a constant value when a static key is used, but as can be seen from FIG. 4B, when it is updated by the update rule of several tens of equations, it changes drastically. There is. That is, it can be seen that the private key (s) and the public key (h) are updated at all times.
  • FIG. 4C shows the gain of the encryption control parameter Enc(K p ) of proportional control, which is an example of a ciphertext, and it can be seen that this value also changes greatly and is updated at each step.
  • the drastic fluctuation of the encryption control parameter Enc (K p ) in FIG. 4C means that the ciphertext C also fluctuates drastically.
  • FIG. 4C shows only the variation of the scalar value c 1 (t) of the ciphertext C(c 1 , c 2 ), it goes without saying that the scalar value c 2 (t) also varies. ..
  • the ciphertext C changes drastically, but from FIG. 3A it can be said that the control simulation is being performed correctly, so it can be seen that the corresponding plaintext is constant. That is, even if the plaintext has a constant value, the value of the ciphertext C changes from moment to moment because the public key (h) is updated from moment to moment. It has succeeded in concealing it reliably.
  • the private key (s), and the public key (h) are all changing drastically in the same way, the private key (s) and the public key (h) of several tens of expressions are changed. ), It can be seen that the update formula of the ciphertext C (c 1 (t), c 2 (t)) is functioning effectively.
  • FIG. 5A and 5B show the processing time related to the discrete logarithm problem.
  • FIG. 5A is a Mac book air (registered trademark (registration number No.
  • FIG. 5205574 CPU: 1.6 GHz, memory 8 GB) using an exponential calculation algorithm to obtain a secret key (s) from the recorded public key (h). The processing time ( ⁇ sec) obtained by calculating the discrete logarithm problem 1000 times is shown.
  • FIG. 5B shows the maximum value, the average value, and the minimum value of the processing time required for the attack.
  • the useful life L u of the control system is smaller than the expected time L p required to solve the discrete logarithm problem (L u ⁇ L p ⁇ v,c
  • the key length is 96 (bit).
  • the sampling period T s is smaller than the expected time L p required to solve the discrete logarithm problem (T s ⁇ L p ⁇ v, c ⁇ ).
  • the key length is 48 (bit). From FIG. 5B, it can be seen that the dynamic encryption system prevents the identification of all input signals with a shorter key length than the static encryption system.
  • FIG. 6 is a schematic view showing the overall configuration of the encryption control system 101 according to the embodiment of the encryption control of the present invention.
  • 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 controller 104 is connected to the input device 102 by the first control network L108, and is connected to the plant side control device 103 by the second control network L109.
  • a controlled object 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 an observation value, which is state information of the control target 106, from the sensor 107.
  • the input device 102, the controller 104, and the plant side control device 103 are each 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 are operated.
  • the first control network L108 and the second control network L109 are networks that emphasize the certainty of data transfer, and various types of network interfaces can be used.
  • the information network L110 is not required to be as reliable as the control network.
  • the input device 102, the controller 104, and the plant-side controller 103 are devices called programmable controllers.
  • the programmable controller includes a case-shaped mount base 111 having a large number of slots, and a module having a size accommodated in the slots of the mount base 111 is accommodated according to a required function.
  • the mount base 111 has a built-in interface for connecting the modules to each other, and when the modules are inserted into the slots, transmission/reception of data between the modules and supply of appropriate power are established.
  • the CPU module 112, the information network module 113, and the first control network module 114a are mounted on the 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 the 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 the mount base 111c of the plant-side control device 103.
  • the first control network module 114a of the input device 102 is the transmitting side
  • the first control network module 114b of the controller 104 is the receiving side.
  • the controller 104 and the second control network module 115 of the plant-side control device 103 the transmission side terminal and the reception side terminal are mutually connected.
  • FIG. 7 is a block diagram showing the hardware configuration of the input device 102.
  • the input device 102 includes a CPU module 112, an information network module 113, and a first control network module 114a connected to a module bus 201 provided on the mount base 111.
  • 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 calculation processing, encryption processing, and the like in the encryption control system 101.
  • the information network module 113 includes a CPU 202, a ROM 203, a RAM 204, and a NIC (Network Interface Card) 207 connected to the 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 of the first control network module 114a is connected to the module bus 201.
  • FIG. 8 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. These modules are connected to the module bus 201 provided on 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 thereof will be omitted.
  • the first control network module 114b includes a receiving unit 309 connected to the module bus 201.
  • the second control network module 115 includes a transmitter 208 and a receiver 309 connected to the internal bus 206.
  • the internal bus 206 is connected to the module bus 201.
  • FIG. 9 is a block diagram showing a hardware configuration of the plant-side 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. These modules are connected to the module bus 201 provided on the mount base 111 (see FIG. 1). 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 thereof will be omitted.
  • the input / output module 116 includes an A / D converter 410 to which the sensor 107 is connected, and a D / A converter 411 to which the controlled object 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 is required depending on the connected control target 106, sensor 107, or the like. May become.
  • the date and time information source device 105 shown in FIG. 6 is also composed of a server device, a personal computer, and the like, and the CPU, ROM, RAM, and the like connected to the bus. It goes without saying that it has a non-volatile storage, an RTC and a NIC.
  • FIG. 10 is a block diagram showing software functions in the control network of the encryption control system 101.
  • the input device 102 includes a target value input unit 501, an input/output control unit 502, an encryption processing unit 503, a storage unit 504, a public key update unit 505, and a date/time information generation unit 506.
  • the target value input unit 501 gives the input / output control unit 502 the target value r before being encrypted.
  • the input / output control unit 502 sends the target value r input from the target value input unit 501 to the encryption processing unit 503.
  • the encryption processing unit 503 encrypts the target value r using the public key k p updated by the public key update unit 505. Then, the encryption processing unit 503 sends the encrypted target value Enc(r) to the input/output control unit 502, and the input/output control unit 502 sends the encrypted target value Enc(r) to the controller 104. ..
  • the storage unit 504 stores the public key k p (0) that is an initial value for updating the public key k p (t).
  • the only value is the public key parameter h(0).
  • the public key update unit 505 has a built-in random number generator 505a, and the random number generator 505a generates a random number w (t) necessary for updating the public key h (t).
  • the public key update unit 505 performs the multiplication remainder processing of the public key h (0) of the initial value from the storage unit 504 and the random number w (0) from the random number generator 505a, so that the second equation of several tens of equations can be used. Output the public key h (1) updated according to the update rule shown in the equation.
  • the updated new public key h (1) is stored in the storage unit 504 as an initial value for the next step.
  • the public key update unit 505 changes the public key h (t) at time t (step t) to the public key h (t + 1) at the next step (time (t + 1)).
  • the public key updating unit 505 corresponds to the public key updating unit 53 in FIG. 2A
  • the random number generator 505a corresponds to the random number generator 51 in FIG. 2A.
  • p, q, g, h (0) are stored in the storage unit 504, and h (t) is updated as the time t advances. It
  • the random numbers v (t) and w (t) generated by the random number generator 505a are random numbers used in the calculation of the public key update unit 505, but the random number generator 510a of the ciphertext update unit 510 of the controller 104 described later and It must be synchronized with the random number generator 513a of the encryption key updating unit 513 of the plant-side control device 103.
  • the three random number generators 505a, 510a, and 513a are synchronized based on the time information from the date and time information generation units 506, 511, and 319, and are controlled to generate the same random number at the same time t (step t). ..
  • the random number generators 505a, 510a, and 513a have the same random number list composed of a plurality of random numbers, and at the same time t, the random number generators 505a, 510a, and 513a read the records having the same record number in the random number list. , And the same random numbers v(t) and w(t) are generated, respectively.
  • the public key update unit 505 sends the public key h (t + 1) updated in step (t + 1) to the encryption processing unit 503.
  • the encryption processing unit 503 encrypts the target value r with the new public key h(t+1) updated by the public key updating unit 505, and outputs the encrypted target value Enc(r) to the input/output control unit. Send to 502.
  • the controller 104 includes an input/output control unit 507, a multiplication unit 508, a storage unit 509, a ciphertext update unit 510, a date/time information generation unit 511, and a log table 520. Further, the transmission unit 208 and the reception unit 309 described in the hardware configuration of FIG. 8 are provided.
  • the encryption target value Enc (r) transmitted from the input device 102 to the controller 104 is input to the input / output control unit 507 of the controller 104.
  • the input / output control unit 507 transmits the encryption target value Enc (r) to the plant side control device 103 as it is via the transmission unit 208. Further, the input / output control unit 507 receives the encrypted input vector Enc ( ⁇ ) from the plant side control device 103 via the receiving unit 309, and sends the encrypted input vector Enc ( ⁇ ) to the multiplication unit 508.
  • the information output from the input / output control unit 507 and the information input to the input / output control unit 507 are all stored in the log table 520.
  • the ciphertext update unit 510 of the controller 104 uses the first to third encryption control parameters Enc (K p ), Enc (K i ), and Enc (K d ) stored in the storage unit 509 (hereinafter collectively). Update the "encryption control parameter Enc ( ⁇ ) or Enc ⁇ "). That is, the ciphertext update unit 510 has the encryption control parameter Enc ( ⁇ ) recorded in the storage unit 509 based on the current date and time information included in the data received from the plant side control device 103 via the reception unit 309. ) Is read, updated to the encryption control parameter Enc ⁇ (1), and sent to the multiplication unit 508. The updated encryption control parameter Enc ⁇ (1) is stored in the storage unit 509.
  • the ciphertext update unit 510 repeatedly updates the encryption control parameter Enc ⁇ (t), and the next time (t + 1) (step (t + 1)) according to the third and fourth equations of several tens of equations. )
  • Cryptographic control parameter Enc ⁇ (t + 1) is generated and sent to the multiplier 508.
  • the ciphertext update unit 510 has a built-in random number generator 510a, and the same random number is generated from this random number generator 510a at the same time (step) as the random number generator 505a of the input device 102. To be done.
  • the encryption control unit Enc ⁇ (t) has been updated in the encryption update unit 510
  • the updated encryption control parameter Enc ⁇ (t+1) is also stored in the storage unit 509 for the next update. It At this time, the updated date and time information from the date and time information generation unit 511 is also stored in the storage unit 509 together with the encryption control parameter Enc ⁇ (t+1).
  • the ciphertext updating unit 510 includes the functions of the public key updating unit 53 in addition to the ciphertext updating unit 54 and the ciphertext updating unit 55 of FIG. 2A. This is because the public key h (t) is required to update the ciphertext c 2 (t) as shown by the equation of several tens.
  • the random number generator 510a corresponds to the random number generator 51 of FIG. 2A.
  • p, q, g, h(0), Enc ⁇ (0) are stored in the storage unit 509, and as the time t advances, h( t) and Enc ⁇ (t) are updated.
  • the multiplication unit 508 performs a multiplication process between the encrypted input vector Enc ( ⁇ ) sent from the input / output control unit 507 and the encryption control parameter Enc ⁇ (t) from the ciphertext update unit 510, and performs the encryption output matrix Enc. Calculate ( ⁇ ). Since this encrypted output matrix Enc ( ⁇ ) includes the encryption control signal Enc (u) and the updated encryption state vector Enc (x) as described in FIG. 1, the encrypted output matrix Enc ( ⁇ ) ⁇ ) may be read as the encryption control input Enc (u) for explanation.
  • the encrypted output matrix Enc( ⁇ ) calculated by the multiplication process of the multiplication unit 508 is sent to the plant-side control device 103 via the input/output control unit 507 and the transmission unit 208. Further, the encrypted output matrix Enc ( ⁇ ) is fed back to the input device 102 for monitoring.
  • the state vector x of the controller (controller) 104 is also encrypted, and the encrypted state vector Enc(x) included in the encrypted output matrix Enc( ⁇ ) is transmitted to the plant side via the transmission unit 208. It is sent to the control device 103.
  • the encrypted input vector Enc( ⁇ ) to the controller is the control signal x(t) indicating the state of the controller at time t and the input vector u c (t) to the controller. (See Equation 4).
  • the output matrix Enc ( ⁇ ) of the encryption controller is calculated by calculating the parameter Enc ( ⁇ ) of the encryption controller and the input vector Enc ( ⁇ ) of the encryption controller read from the storage unit 509 by the ciphertext update unit 510. ) Is output.
  • the encryption state vector Enc (x) included in the output matrix Enc ( ⁇ ) is decrypted by the decoding processing unit 512 of the plant-side control device 103 and used as the state vector x as the state vector x through the encryption processing unit 518 through the control arithmetic processing unit 514. Sent to.
  • the date / time information generation unit 511 that outputs the current date / time information outputs the date / time information (hereinafter referred to as “start date / time information”) at the start of synchronous operation between the plant-side controller 103 and the controller 104, and starts the ciphertext update unit 510. And stop control. Further, the current date and time information generated by the date and time information generation unit 511 is sent to the data frame of the encryption control input Enc (u) transmitted from the multiplication unit 508 to the plant side control device 103 through the input / output control unit 507 and the transmission unit 208. It is stored as encoded date and time information.
  • the plant-side control device 103 includes a decryption processing unit 512, an encryption key update unit 513, a control arithmetic processing unit 514, a control processing unit 515, a signal conversion processing unit 516, a target error arithmetic processing unit 517, an encryption processing unit 518, and a date and time.
  • An information generation unit 519 and a storage unit 521 are provided.
  • the encryption control input Enc (u) included in the encryption target value Enc (r) and the encryption output matrix Enc ( ⁇ ) transmitted from the controller 104 to the plant side controller 103 via the transmission unit 208 is on the plant side. It is input to the decoding processing unit 512 through the receiving unit 309 of the control device 103.
  • the decryption processing unit 512 decrypts the encryption target value Enc(r) and the encryption control input Enc(u) using the secret key s(t+1) updated by the encryption key updating unit 513.
  • the encrypted target value Enc(r) and the encrypted control input Enc(u) decrypted by the decryption processing unit 512 become the target value r and the control input u and are sent to the control arithmetic processing unit 514 for control.
  • the target value r and the control input u are output from the arithmetic processing unit 514.
  • the control input u is sent to the control processing unit 515, and the target value r is sent to the target error calculation unit 517.
  • the control arithmetic processing unit 514 outputs the state vector x of the controller 104 decrypted by the decryption processing unit 512, and sends this state vector x to the encryption processing unit 518.
  • the encryption key updating unit 513 includes a random number generator 513a.
  • the random number generator 513a also generates the same random numbers v (t) and w (t) at the same time in synchronization with the random number generator 505a of the input device 102 and the random number generator 510a of the controller 104.
  • the storage unit 521 stores the initial values of the public key h (t) and the private key s (t) before the update.
  • the encryption key update unit 513 reads the secret key s (t) before the update stored in the storage unit 521, and reads the secret key s (t) and the random number w (t) read from the random number generator 513a.
  • the private key s (t + 1) after the update is generated by performing the multiplication remainder processing by the update equation shown in the first equation of the equation of several tens. Then, this updated private key s (t + 1) is sent to the decryption processing unit 512.
  • the decryption processing unit 512 uses the secret key s(t+1) to decrypt the encryption target value Enc(r) and the encryption control input Enc(u).
  • the encryption key update unit 513 reads the public key h (t) before the update stored in the storage unit 521, and the public key h (t) and the random number w (t) read from the random number generator 513a. Is multiplied by the update formula shown in the second formula of the equation tens, and the public key h (t + 1) after the update is generated. Then, the updated public key s (t + 1) is sent to the encryption processing unit 518.
  • the control processing unit 515 generates a control signal based on the control input u input from the control arithmetic processing unit 514, and controls the control target 106 by this control signal. For example, if the control target 106 is a motor, the control processing unit 515 controls the voltage, phase, etc. applied to the motor.
  • the control target 106 is controlled by the control signal, the operating state of the control target 106 is detected by the sensor 107.
  • the signal output from the sensor 107 is sent to the signal conversion processing unit 516 and converted into the observed value y. Then, the observed value y is sent to the target error calculation processing section 517.
  • the target error calculation processing unit 517 calculates the difference between the target value r from the control calculation processing unit 514 and the observed value y from the signal conversion processing unit 516, and outputs the target error ⁇ .
  • the encryption is performed by.
  • the target error ⁇ is encrypted by the encryption processing unit 518 and converted into the encryption target error Enc ( ⁇ ).
  • the public key h (t + 1) at the time (t + 1) updated by the encryption key update unit 513 is supplied to the encryption processing unit 518, and the public key h (t +) is supplied to the encryption processing unit 518.
  • the target error ⁇ is encrypted using 1).
  • the encryption target error Enc ( ⁇ ) encrypted by the encryption processing unit 518 is transmitted to the controller 104 via the transmission unit 208.
  • the state vector x of the decrypted controller 104 output from the control arithmetic processing unit 514 is also encrypted by the encryption processing unit 518, and is included in the encryption input vector Enc ( ⁇ ).
  • the vector Enc(x) is transmitted to the controller 104 via the transmission unit 208.
  • the storage unit 521 stores the public key h (t) and the private key s (t) in the current step before the update.
  • the updated secret key s(t+1) and public key h(t+1) are stored in the storage unit 521 as the base values for the next update.
  • the cipher key updating unit 513 includes the functions of the secret key updating unit 52, the public key updating unit 53, and the ciphertext updating units 54 and 55 of FIG. 2A.
  • the random number generator 513a corresponds to the random number generator 51 of FIG. 2A.
  • the storage unit 521 stores p, q, g, s (0), h (0), and Enc ⁇ (0), and the time t advances. S (t), h (t) and Enc ⁇ (t) are updated accordingly.
  • the date and time information generation unit 519 outputs the current date and time information, and also outputs the same date and time information at the start of synchronous operation as instructed by the date and time information generation unit 511 of the controller 104 (hereinafter, "start date and time information").
  • the date and time information generation unit 519 also controls activation and stop of the encryption key update unit 513.
  • the current date and time information generated by the date and time information generation unit 519 is encoded in the data frame of the encryption target error Enc ( ⁇ ) included in the encryption input vector Enc ( ⁇ ) transmitted from the encryption processing unit 518. Stored as information.
  • FIG. 11 is a flowchart showing the flow of synchronous operation start processing of the date / time information generation unit 506 of the input device 102, the date / time information generation unit 519 of the plant side control device 103, and the date / time information generation unit 511 of the controller 104.
  • the date/time information generation unit 511 of the controller 104 serves as a master
  • the date/time information generation unit 519 of the plant-side control device 103 and the date/time information generation unit 506 of the input device 102 serve as slaves.
  • the date/time information generation unit of the input device 102 or the plant-side control device 103 may be the master.
  • the date/time information generating unit 511 of the controller 104 determines whether or not the date/time information of itself is calibrated with a sufficiently small error from the date/time information output by the date/time information source device 105 shown in FIG. Is confirmed (S12).
  • the sufficiently small error means that the error is calibrated to a state sufficiently smaller than the period in which the information from the plant is sensed to obtain the observed value y. The same applies to steps S13 and S14 described later.
  • the date/time information generation unit 511 of the controller 104 determines whether or not the date/time information generation unit 506 of the input device 102 is calibrated to the input device 102 with a sufficiently small error from the date/time information output by the date/time information source device 105. Inquire and confirm (S13).
  • the date/time information generation unit 511 of the controller 104 is calibrated to the plant-side control device 103 by the date/time information generation unit 519 of the plant-side control device 103 with a sufficiently small error from the date/time information output by the date/time information source device 105.
  • An inquiry is made as to whether or not it is present (S14).
  • step S14 When it is confirmed in step S14 that the date and time information of the date and time information generation unit 519 of the plant side control device 103 is calibrated with a sufficiently small error from the date and time information output by the date and time information source device 105 (S14 YES), at this point, all the date and time information generation units 506, 511, and 519 of the input device 102, the controller 104, and the plant-side control device 103 are calibrated. Therefore, the date/time information generation unit 511 of the controller 104 determines the time to start the synchronous operation, the step time to update the encryption key, the initial value of the key update, and the like as the preparation step for the synchronous operation, and the date/time information of the input device 102. The data is transmitted to the generation unit 506 and the date/time information generation unit 519 of the plant-side control device 103 (S15).
  • step S15 the date / time information generation unit 511 of the controller 104 waits until the set synchronous operation start time is reached (NO in S16), and when the synchronous operation start time is reached (in S16). YES), synchronous operation is started (S17), and a series of processes is completed (S18).
  • step S12, S13 and S14 if the calibration of the date and time information is not completed normally (NO in S12, NO in S13, NO in S14), return to step S12 and perform the confirmation work. repeat.
  • FIG. 12 is a sequence diagram for explaining the synchronous operation of the input device 102, the controller 104, and the plant-side control device 103 of the encryption control system 101.
  • the homomorphic cipher used in the embodiment of the present invention can multiply (or divide) the encrypted data, but cannot add or subtract. Therefore, the multiplication unit 508 of the controller 104 only performs multiplication processing on the given data, and after decoding, the control calculation processing unit 514 performs addition / subtraction processing. Further, the control processing unit 515 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 515, the operation of the control target 106 is detected by the sensor 107 (S24).
  • the observation signal detected by the sensor 107 is converted into the observation value y by the signal conversion processing unit 516.
  • the observed value y output from the signal conversion processing unit 516 is input to the target error calculation processing unit 517 together with the target value r from the control calculation processing unit 514.
  • the target error calculation processing unit 517 subtracts the observed value y from the target value r and outputs the target error ⁇ (S24).
  • the encryption processing unit 518 encrypts the target error ⁇ at time t with the public key k p (t+1) updated by the encryption key updating unit 513 so as to correspond to the step at time (t+1). (S25).
  • the time t is "0" but the time (t + 1) is "1", that is, the public key k p (t + 1) corresponding to step 1 is used for encryption of the target error ⁇ .
  • the plant-side control device 103 causes the transmission target unit 208 to transmit the encrypted target error Enc( ⁇ ) Is transmitted to the controller 104 (S26).
  • the controller 104 receives the encryption target error Enc ( ⁇ ) from the plant-side controller 103 via the receiving unit 309 (S27).
  • the received encryption target error Enc( ⁇ ) is sent to the multiplication unit 508 through the input/output control unit 507.
  • the multiplication unit 508 multiplies the encryption control parameter Enc ⁇ (1) and the encryption target error Enc ( ⁇ ) included in the encryption input vector Enc ( ⁇ ) to calculate the encryption control gain, and based on this.
  • the encryption control input Enc(u) is obtained (S28). Then, the encryption control input Enc (u) is transmitted to the plant-side control device 103 (S29).
  • the decryption processing unit 512 of the plant-side control device 103 uses the current date/time information and start date/time information attached to the data frame of the encryption target value Enc(r) and the encryption control input Enc(u) as a basis.
  • the target value r and the control input u are decrypted using the encryption key.
  • the control arithmetic processing unit 514 outputs the target value r decoded by the decoding processing unit 512, the control input u, and the state vector x of the controller 104.
  • the control processing unit 515 generates a control signal from the control input u and controls the control target 106.
  • the controlled object 106 is controlled by the control processing unit 515, the operation of the controlled object 106 is detected by the sensor 107.
  • the observation signal output from the sensor 107 is converted into the observation value y by the signal conversion processing unit 516.
  • the observed value y is input to the target error calculation processing unit 517 together with the target value r output from the control calculation processing unit 514.
  • the target error calculation processing section 517 subtracts the observed value y from the target value r and outputs the target error ⁇ (S32).
  • the encryption processing unit 518 encrypts this target error ⁇ with the public key k p (t+1) updated in step (t+1) (S33).
  • the public key used by the encryption processing unit 518 to encrypt the target error ⁇ is the public key k p (t+2) corresponding to step 2.
  • the plant side control device 103 receives the encryption target value Enc (r) in step 2 from the input device 102 and receives the encryption control input Enc (u) in step 2 from the controller 104
  • the plant side control device 103 receives the encryption target value Enc (r) in step 2.
  • the control target 106 is controlled based on the corresponding target value r and the control input u.
  • the observed value y obtained from the sensor 107 is subtracted from the target value r to obtain the target error ⁇ .
  • the encryption processing unit 518 encrypts the target error ⁇ with the public key k p (t + 2) in step 2, and outputs the encryption target error Enc ( ⁇ ) to the controller 104 (S34).
  • FIG. 13 shows a modified example of the embodiment of the encryption control system of the present invention shown in FIG.
  • the controller 500 has a configuration in which the input device 102 and the controller 104 shown in FIG. 10 are integrated.
  • the cipher key/cipher text update unit 521 has the functions of both the public key update unit 505 and the cipher text update unit 510 shown in FIG.
  • the storage unit 522 has the functions of both the storage unit 504 and the storage unit 509 of FIG.
  • the encryption key/ciphertext update unit 521 updates the public key before update obtained from the storage unit 522 to the public key of the next step, and provides the updated public key to the encryption processing unit 503. Further, the encryption key/ciphertext update unit 521 uses the random number generated by the random number generator 521 a and the encryption control parameter Enc ⁇ (t) stored in the storage unit 522 to update the ciphertext C(before update). Update c 1 (t), c 2 (t)) to the ciphertext C (c 1 (t + 1), c 2 (t + 1)) of the next step, and update this updated ciphertext to the multiplication unit 508. Send to.
  • the input/output control unit 523 is an input/output controller that also has the functions of the input/output control unit 502 of the input device 102 and the input/output control unit 507 of the controller 104. However, it is not necessary to have two date and time information generators.
  • the date and time information generation unit 511 included in the controller 104 may be provided.
  • the date/time information generation unit 511 provides date/time information to be added to the encryption control input Enc(u) output from the multiplication unit 508, and also provides activation timing for activating the encryption key/ciphertext update unit 521.
  • the encryption control system 101 is disclosed.
  • the input device 102, the plant-side control device 103, and the controller 104 perform synchronous operation at the same time.
  • the encryption control system 101 By configuring the encryption control system 101 in this way, it becomes possible to update the public key, the secret key, and the ciphertext at each step in synchronization with the control cycle of the entire control system. Therefore, the encryption key (public key, private key) and ciphertext are updated in a relatively short time compared to the service life of the control target, making it extremely difficult for a malicious third party to decipher the encryption key and ciphertext. Is thought to be.
  • the private key, the public key and the ciphertext are updated based on the dynamic extension of the ElGamal encryption, but the ElGamal encryption is only an example, and the encryption of the present invention is used.
  • the basic technical idea of the computerized control system can be applied to other ciphers. Although the technical idea and the embodiment example thereof that are the basis of the encryption control system of the present invention have been described above, the present invention is not limited to the above embodiment example, and the gist of the present invention described in the claims As long as it does not deviate from the above, other modifications and applications are included.
  • Information network module 114a, 114b ... First control network module, 115 ... second control network module, 116 ... input / output module, 202 ... CPU, 203 ... ROM, 204 ... RAM, 205 ... RTC, 206 ... bus, 207 ... NIC, 208 ... transmitter, 309 ... Receiver, 410 ... A / D converter, 411 ... D / A converter, 501 ... Target value input unit, 502, 507 ... Input / output control unit, 503 ... Encryption processing unit, 506, 511, 519 ... Date and time Information generation unit, 508 ... Multiplying unit, 512 ... Decoding processing unit, 514 ...
  • Control arithmetic processing unit 515 ... Control processing unit, 516 ... Signal conversion processing unit, 517 ... Target error calculation processing unit, 518 ... Encryption processing unit , 620... Log table, 523... Encryption key/ciphertext update unit

Abstract

Disclosed is an encryption control system for making it possible to prevent all keys from being deciphered within the service life of a controlling system even if the key length of cryptographic keys used for encryption control is relatively short, the encryption control system controlling a control target by an encryption controller capable of concealing information in the controlling system by cryptography. The encryption control system comprises: a cryptographic key updating unit that dynamically updates a private key and a public key in every encryption step; and a ciphertext updating unit that dynamically updates a ciphertext in every encryption step. The cryptographic key updating unit and the ciphertext updating unit each include a random number generator, and are configured so that the same random number is generated when updating the cryptographic keys and the ciphertext.

Description

暗号化制御システム、暗号化制御方法および暗号化制御プログラムEncryption control system, encryption control method, and encryption control program
 本発明は、暗号化制御システム、暗号化制御方法および暗号化制御プログラムに関する。 The present invention relates to an encryption control system, an encryption control method, and an encryption control program.
 近年、インターネット等の情報技術の発達に伴い、電力、水道などの重要インフラ、および化学プラントなどの大規模制御系において、情報技術を応用した制御系のネットワーク化が進んでいる。このようなネットワーク化した制御系(制御システム)では、システム内の各種デバイスはネットワークを介して相互接続される。 In recent years, along with the development of information technology such as the Internet, networks of control systems that apply information technology are advancing in important infrastructure such as electric power and water, and large-scale control systems such as chemical plants. In such a networked control system (control system), various devices in the system are interconnected via a network.
 このような制御系では、各種デバイスが相互接続されることで、システム全体の処理速度の向上や処理内容の高度化等を図ることができる。また、システムの管理者は、ネットワークを介して遠隔地からプラントの監視や制御を行うことができるので、システム管理上でも多くの利益が得られる。 In such a control system, various devices can be interconnected to improve the processing speed of the entire system and the sophistication of processing contents. In addition, since the system administrator can monitor and control the plant from a remote location via the network, many benefits can be obtained in terms of system management.
 しかし、制御系内のネットワーク化は、利便性が向上する一方で、システムやその周囲に害をなす恐れもある。実際に、発電所や工場などのプラント動作を監視または制御する制御系に対するサイバー攻撃が出現し、社会的に重要な問題として懸念されている。例えば、2000年のオーストラリアでは、ネットワーク化した下水処理施設が攻撃され、100万リットルの下水が市街にあふれるという事故が起きた。また、2010年にイランの核関連施設がStuxnetというウィルスに感染し、設備が破壊されている。 However, while networking within the control system improves convenience, it may also harm the system and its surroundings. In fact, cyber attacks on control systems that monitor or control plant operations such as power plants and factories have emerged, and are of concern as a socially important issue. For example, in Australia in 2000, a networked sewage treatment plant was attacked, causing a million liters of sewage to flood the city. In 2010, a nuclear-related facility in Iran was infected with a virus called Stuxnet, and the facility was destroyed.
 このように、サイバー攻撃による損害は重大化する傾向にあり、ネットワーク化した制御系をサイバー攻撃から守るための技術開発が急務となっている。このため、制御工学分野でも、情報系セキュリティ技術を転用する研究や、サイバー攻撃の検知などに関する研究が進められている。
 例えば、制御器(コントローラ)と制御対象(プラント)間のネットワーク通信において、信号を暗号化することにより、信号に対する盗聴や改ざんを防ぐ研究も進められている。
In this way, the damage caused by cyber attacks tends to become more serious, and there is an urgent need to develop technology to protect networked control systems from cyber attacks. For this reason, research on diversion of information security technology and research on detection of cyber attacks are also underway in the field of control engineering.
For example, in network communication between a controller (controller) and a control target (plant), a signal is encrypted to prevent wiretapping or tampering with the signal.
 既に、発明者らは、制御系の中核部分に当たるコントローラにより、暗号化された入力データおよび出力データに対して一旦復号することなく暗号化されたまま直接演算処理を施すことで、コントローラ側の秘密鍵を不要とする暗号化制御システム技術を開発して特許を得ている(特許文献1参照)。この特許文献1に記載の技術では、秘密鍵はプラント側にのみに装備すればよく、秘密鍵をコントローラやプラントへ移動する必要がないので、秘密鍵が紛失または漏洩するリスクを低減させることができる。 The inventor has already performed a secret arithmetic operation on the controller side by directly performing arithmetic processing on the encrypted input data and output data without decrypting them by the controller, which is the core part of the control system. We have developed and obtained a patent for an encryption control system technology that does not require a key (see Patent Document 1). In the technique described in Patent Document 1, the private key only needs to be installed on the plant side, and it is not necessary to move the private key to the controller or the plant. Therefore, the risk of the private key being lost or leaked can be reduced. it can.
 また発明者らは、制御器(コントローラ)内部の信号やパラメータを暗号により秘匿したまま、制御入力を決定する方法を提案している(非特許文献1)。
 さらに発明者らは、ElGamal暗号による128(bit)以下の鍵を用いた暗号化制御の実験を行い、リアルタイム性の検証を行った(非特許文献2)。
 この非特許文献2で、発明者らは、暗号化制御系で用いる暗号鍵が長くなるにつれて処理時間が伸びることから、セキュリティと処理時間の間にトレードオフの関係があると報告している。処理時間とは、「暗号化と復号」の処理にかかる時間であり、暗号鍵を長くすると、復号のみならず、暗号化のための処理時間も増えることが分かっている。
Further, the inventors have proposed a method of determining a control input while ciphering signals and parameters inside a controller (controller) while keeping them secret (Non-Patent Document 1).
Furthermore, the inventors conducted an experiment of encryption control using a key of 128 (bit) or less by ElGamal encryption and verified the real-time property (Non-Patent Document 2).
In this Non-Patent Document 2, the inventors report that there is a trade-off relationship between security and processing time because the processing time increases as the encryption key used in the encryption control system becomes longer. The processing time is the time required for the "encryption and decryption" processing, and it is known that if the encryption key is lengthened, not only the decryption processing time but also the encryption processing time increases.
 ここで、リアルタイム性について説明しておく。リアルタイム性とは、システムが1つの処理を始めてから終わるまでの処理時間に対する時間的制約をいう。例えば、ある制御系に対し、10(ms)につき1回の暗号化制御を行うように設計するならば、処理時間は必ず10(ms)以内に収まらなければならない。この検証方法は、実験装置を使って実際に1万回、10万回と暗号化制御を繰り返し実行して処理時間を計測する。そして、制御中に一度も処理時間が10(ms)という時間的制約を超えなかった場合に、この制御系は、10(ms)のサンプリング周期でリアルタイム性が保証されたという。  Here, I will explain the real-time property. The real-time property refers to a time constraint on the processing time from when the system starts one process to when it ends. For example, if a control system is designed to perform encryption control once every 10 (ms), the processing time must always be within 10 (ms). In this verification method, the processing time is measured by repeatedly executing the encryption control 10,000 times and 100,000 times using an experimental device. Then, when the processing time never exceeds the time constraint of 10 (ms) during control, this control system is guaranteed to be real-time with a sampling cycle of 10 (ms).
 一般に、個人の口座番号などのプライバシーを管理する場合には、少なくともその個人の生涯に亘って個人の口座番号などのプライバシーを秘匿し続けなければならない。したがって、個人の存命中のような極めて長い期間、暗号の解読ができないようにする必要があり、そのためには、現実的には解くことが困難な強い暗号化方式を用意することが必要になる。 In general, when managing the privacy of an individual's account number, etc., the privacy of the individual's account number, etc. must be kept secret for at least the life of the individual. Therefore, it is necessary to prevent the decryption of the code for an extremely long period of time, such as during the life of an individual, and for that purpose, it is necessary to prepare a strong encryption method that is difficult to break in reality. ..
 これに対して、多くの制御系では、10年~20年程度の耐用年数が設定されている。つまり、耐用年数内でサイバー攻撃を防ぐことさえできれば、制御対象が耐用年数を超えた後に秘密鍵および入出力信号が露出しても問題ないケースも多く存在する。
 このため、既存の暗号化制御系に使われる鍵長設計問題では、特に解読が困難な機密性が重視されるのに対し、耐用年数内のサイバー攻撃を防ぐことを目的とする暗号化制御系では、制御系の機密性と可用性を両立させた新しい鍵長設計指標が求められている。
On the other hand, many control systems have a useful life of about 10 to 20 years. In other words, as long as it is possible to prevent a cyber attack within the useful life, there are many cases where there is no problem even if the secret key and the input/output signal are exposed after the controlled object exceeds the useful life.
For this reason, in the key length design problem used in existing cryptographic control systems, confidentiality, which is difficult to decipher, is particularly important, whereas cryptographic control systems aimed at preventing cyber attacks within the useful life. Therefore, a new key length design index that achieves both confidentiality and availability of the control system is required.
特許第6360781号公報Japanese Patent No. 6360781
 特許文献1に記載される暗号化制御システムでは、使用される公開鍵と秘密鍵のペアは1組だけであり、公開鍵と秘密鍵は更新されないため、クラウドコンピューティング等の膨大な計算機資源を用いると暗号文を解読されてしまう恐れも否定できない。 In the encryption control system described in Patent Document 1, since only one pair of public key and private key is used, and the public key and private key are not updated, enormous computer resources such as cloud computing are required. There is no denying the danger of decrypting the ciphertext if used.
 発明者らは、この問題を解決するためにElGamal暗号に注目した。ElGamal暗号は、離散対数問題の解を求める困難性を安全性の根拠にする暗号化方式である。
 しかし、ElGamal暗号でも既に768(bit)位数を持つ有限体上の離散対数問題が解けた事例もあり、さらにセキュリティの高い暗号化システムが求められている。発明者らは、制御対象の耐用年数内において全ての鍵解読を回避することが可能な鍵長設計問題を検討し、暗号化制御の実システムへの適用を目指している。
The inventors turned to ElGamal encryption to solve this problem. ElGamal encryption is an encryption method whose security is based on the difficulty of finding a solution to a discrete logarithmic problem.
However, even in ElGamal encryption, there are cases where the discrete logarithm problem on a finite field with 768 (bit) order has already been solved, and an encryption system with higher security is required. The inventors have studied a key length design problem capable of avoiding all key deciphering within the useful life of the controlled object, and are aiming to apply the encryption control to a real system.
 すなわち、発明者らは、従来の暗号化制御システムで用いられる暗号鍵(公開鍵および秘密鍵)よりも、短い鍵長で耐用年数(10~20年)内の鍵解読を防ぐために、ElGamal暗号の動的拡張を行う方法を見出した。そして、制御信号および計算を秘匿したままで制御シミュレーションを行い、耐用年数内での制御対象に対するセンサのセンシング時間単位で暗号鍵(公開鍵、秘密鍵)を更新する仕組みを考察した。 That is, the inventors use ElGamal encryption to prevent key decryption within the useful life (10 to 20 years) with a shorter key length than the encryption keys (public key and private key) used in conventional encryption control systems. I found a way to do dynamic expansion of. Then, we conducted a control simulation with the control signal and calculation kept secret, and considered a mechanism to update the encryption key (public key, secret key) in the sensing time unit of the sensor for the controlled object within the service life.
 したがって、本発明の目的は、暗号鍵および暗号文が所定の時間単位(ステップ)で動的にかつ際限なく更新される暗号化制御システム、暗号化制御方法および暗号化制御プログラムを提供することにある。 Therefore, an object of the present invention is to provide an encryption control system, an encryption control method, and an encryption control program in which an encryption key and a ciphertext are dynamically and endlessly updated in a predetermined time unit (step). is there.
 上記課題を解決するために、本発明の暗号化制御システムは、制御系内の情報を暗号理論により秘匿可能とする暗号化コントローラにより制御対象を制御する暗号化制御システムであって、暗号化するステップ毎に、秘密鍵および公開鍵を動的に更新する暗号鍵更新部と、暗号文を動的に更新する暗号文更新部と、を備える。 In order to solve the above-mentioned problems, an encryption control system of the present invention is an encryption control system for controlling a control target by an encryption controller that enables information in a control system to be concealed by a cryptographic theory. Each step includes an encryption key update unit that dynamically updates the private key and the public key, and an encryption text update unit that dynamically updates the encryption text.
 また、本発明の暗号化制御システムにおける暗号鍵更新部および暗号文更新部はそれぞれ乱数生成器を備え、全ての乱数生成器は同時刻のステップで同じ乱数を生成し、乱数生成器で生成された乱数と暗号化制御パラメータとの乗算剰余処理を行うことにより、秘密鍵、公開鍵の更新および暗号文の更新を行うようにしている。 In addition, the encryption key updating unit and the ciphertext updating unit in the encryption control system of the present invention each include a random number generator, and all the random number generators generate the same random number at the same time step and are generated by the random number generator. By performing the multiplication remainder processing of the random number and the encryption control parameter, the private key, the public key, and the ciphertext are updated.
 更に、本発明の暗号化制御システムでは、暗号鍵更新部は、現在時刻のステップで使用した暗号鍵から制御系の制御則に基づいて、次回の時刻のステップで用いる暗号鍵を演算により作成して暗号鍵を更新し、暗号文更新部は、現在時刻のステップで使用した暗号文から制御系の制御則に基づいて、次回の時刻のステップで用いる暗号文を演算により作成して暗号文を更新するようにする。 Further, in the encryption control system of the present invention, the encryption key updating unit creates the encryption key used at the next time step from the encryption key used at the current time step based on the control law of the control system. The ciphertext update unit updates the ciphertext, and the ciphertext update unit creates the ciphertext by calculating the ciphertext used at the next time step based on the control law of the control system from the ciphertext used at the current time step. Try to update.
 本発明によれば、従来の暗号化制御システムの鍵長に比べて、比較的鍵長を短くしても、制御系の耐用年数内における全鍵解読を回避することが可能になる。
 上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
According to the present invention, even if the key length is relatively shorter than the key length of the conventional encryption control system, it becomes possible to avoid all key decryption within the useful life of the control system.
Problems, configurations, and effects other than those described above will be clarified by the following description of the embodiments.
本発明の実施形態に係る暗号化制御システムの暗号化制御の原理を説明するための図である。It is a figure for demonstrating the principle of the encryption control of the encryption control system which concerns on embodiment of this invention. 本発明の暗号化制御に係る暗号鍵(秘密鍵、公開鍵)と暗号文が更新される原理を示すブロック図と毎ステップで更新される様子を示す図である。It is a block diagram which shows the principle that the encryption key (private key, public key) and the ciphertext which concerns on the encryption control of this invention are updated, and the figure which shows the state of being updated in every step. 本発明の暗号化制御に係る制御シミュレーションにおける出力応答と誤差応答を示す図である。It is a figure which shows the output response and error response in the control simulation which concerns on the encryption control of this invention. 本発明の鍵更新を行う動的な暗号化制御と従来の静的な暗号化制御の比較を示す波形図である。FIG. 11 is a waveform diagram showing a comparison between the dynamic encryption control for updating the key of the present invention and the conventional static encryption control. 本発明の鍵更新を行う動的な暗号化制御の鍵サイズと処理時間を、従来の離散対数問題の解との比較で説明する図である。It is a figure explaining the key size and processing time of the dynamic encryption control which performs the key update of this invention by comparison with the solution of the conventional discrete logarithm problem. 本発明の実施形態に係る暗号化制御システムの全体構成を示す概略図である。It is a schematic diagram showing the whole encryption control system composition concerning an embodiment of the present invention. 本発明の実施形態に係る暗号化制御システムの入力装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware configuration of the input device of the encryption control system which concerns on embodiment of this invention. 本発明の実施形態に係る暗号化制御システムのコントローラのハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware configuration of the controller of the encryption control system which concerns on embodiment of this invention. 本発明の実施形態に係る暗号化制御システムのプラント側制御装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the plant side control apparatus of the encryption control system which concerns on embodiment of this invention. 本発明の実施形態に係る暗号化制御システムのソフトウェア機能を示すブロック図である。It is a block diagram which shows the software function of the encryption control system which concerns on embodiment of this invention. 本発明の実施形態に係る暗号化制御システムの暗号化制御システムの同期運転を説明するフローチャートである。It is a flow chart explaining synchronous operation of an encryption control system of an encryption control system concerning an embodiment of the present invention. 本発明の実施形態に係る暗号化制御システムの暗号化制御システムにおける動作を説明するシーケンス図である。It is a sequence diagram explaining operation|movement in the encryption control system of the encryption control system which concerns on embodiment of this invention. 本発明の実施形態の変形例に係るコントローラの制御ネットワークにおけるソフトウェア機能を示すブロック図である。It is a block diagram which shows the software function in the control network of the controller which concerns on the modification of embodiment of this invention.
 まず、本発明の暗号化制御システムの実施形態例を説明する前に、本発明の暗号化制御システムで使用されるElGamal暗号について、その概略を説明しておく。
 以後の説明では、Zを0以上n未満の整数集合、Z をZの中で互いに素となる要素の集合とする。また、Mを暗号化に用いることが可能な整数値(平文)の集合とする。
 ElGamal暗号のアルゴリズムは、鍵生成(Gen)、暗号化(Enc)、復号(Dec)の3つのアルゴリズムから構成される。
First, before describing an embodiment of the encryption control system of the present invention, an outline of the ElGamal encryption used in the encryption control system of the present invention will be described.
In the following description, Z n is an integer set of 0 or more and less than n, and Z n x is a set of relatively prime elements in Z n . Further, M is a set of integer values (plaintext) that can be used for encryption.
The ElGamal encryption algorithm consists of three algorithms: key generation (Gen), encryption (Enc), and decryption (Dec).
 鍵生成アルゴリズム(Gen)は、設計者が与えるパラメータkを元に公開鍵kp:=(G,q,g,h)および秘密鍵ks:=sを出力する。
 但し、qはk (bit)の素数、GはZp に含まれ、(p-1)mod q=0 である素数pを法とした位数qの巡回群、gは巡回群Gの生成元である。秘密鍵ksは、公開鍵kpのパラメータg、hと秘密鍵ksのパラメータsとの間で、h=gs  mod pが成立するように設計される鍵である。巡回群を表す記号Gは、一般の暗号化方式で用いられる集合を表す記号であり、ここではG=M、すなわち、平文空間Mと一致する。
The key generation algorithm (Gen) outputs a public key k p := (G,q,g,h) and a secret key k s :=s based on a parameter k given by the designer.
However, q is a prime number of k (bit), G is contained in Z p x, (p-1 ) mod q = 0 and is a prime number p modulo the position number of cyclic groups q, g is the cyclic group G It is a generation source. The private key k s is between the parameters g, h of the public key k p and the parameter s of the private key k s , h = g s.   It is a key designed so that mod p holds. The symbol G representing the cyclic group is a symbol representing a set used in a general encryption method, and here, G=M, that is, the plaintext space M.
 ここで、暗号鍵、公開鍵および秘密鍵について、その言葉の意味と符号について説明しておく。暗号鍵という場合、通常、公開鍵と秘密鍵の両方を含む用語として用いている。暗号鍵は、「cryptographic key」を和訳した専門用語であり、経済産業省の外郭団体である独立行政法人情報処理推進機構(IPA)が公開する定義によれば、暗号鍵は「暗号化および復号化の処理を制御するシンボルの連続」とされている。 Here, the meaning and code of the words of the encryption key, public key, and private key will be explained. The term encryption key is usually used as a term that includes both a public key and a private key. Cryptographic key is a technical term translated into Japanese from "cryptographic key", and according to the definition published by the Information-technology Promotion Agency (IPA), an affiliated organization of the Ministry of Economy, Trade and Industry, the encryption key is "encryption and decryption". The sequence of symbols that control the conversion process."
 公開鍵はkp(t)で表し、秘密鍵はk(t)で表す。(t)は、公開鍵、秘密鍵とも時間とともに変化する変数であることを示している。なお、公開鍵kp:=(G,q,g,h)と表記したのは、ElGamal暗号の公開鍵kpは、巡回群G、素数q、巡回群Gの生成元g、時間(t)とともに変化するh(t)の4つのパラメータを含むからである。すなわちh(t)は、公開鍵kp(t)を構成する1つのパラメータであるが、このh(t)以外のパラメータは時間とともに変わらないため、以降の計算式等では公開鍵kp(t)を公開鍵h(t)と読み替えて説明する場合がある。 また、ElGamal暗号の秘密鍵ks(t)は、変化するパラ-メータs(t)だけで構成されるので、秘密鍵ks(t)は、秘密鍵s(t)と同義である。したがって、以降の計算式等では秘密鍵ks(t)を秘密鍵s(t)として説明することもある。 The public key is represented by k p (t) and the private key is represented by k s (t). (t) indicates that both the public key and the private key are variables that change over time. The public key k p : = (G, q, g, h) is the ElGamal encryption public key k p, which is the cyclic group G, the prime number q, the generator g of the cyclic group G, and the time (t). ) Includes four parameters of h(t). That is, h (t) is one parameter that constitutes the public key k p (t), but since the parameters other than this h (t) do not change with time, the public key k p ( In some cases, the description will be made by replacing t) with the public key h(t). The secret key k s (t) of the ElGamal encryption is composed of only the changing parameter s (t), and thus the secret key k s (t) is synonymous with the secret key s (t). Therefore, the secret key k s (t) may be described as the secret key s (t) in the following calculation formulas and the like.
 暗号化アルゴリズム(Enc)は、公開鍵kp:=(G,q,g,h)を用い、平文の集合Mに属する平文mを暗号化する。暗号文ベクトルCは、後述するスカラー値c1、c2の2つの成分から構成される。暗号文ベクトルCは数1式で表される。 The encryption algorithm (Enc) uses the public key k p :=(G,q,g,h) to encrypt the plaintext m belonging to the set M of plaintexts. The ciphertext vector C is composed of two components, scalar values c 1 and c 2 , which will be described later. The ciphertext vector C is represented by Formula 1.
Figure JPOXMLDOC01-appb-M000004
 この数1式は、平文mを公開鍵kpで暗号化したものが、暗号文ベクトルCになることを示している。暗号文ベクトルCの構成要素であるスカラー値c1、c2は、数1式で示されるように、それぞれgn  mod p、mhnmod pで示される。但し、nは暗号化する際に整数集合Zqから一様に選ばれる乱数である。ここで、「一様に選ばれる乱数」とは、一様分布に従うランダムな値から選ばれる乱数を意味する。すなわち、整数集合Zqの中の、全要素である0以上q未満の整数値から、同じ確率で選ばれる整数値を乱数nとする。
Figure JPOXMLDOC01-appb-M000004
This equation of number 1 shows that the plaintext m encrypted with the public key k p becomes the ciphertext vector C. The scalar values c 1 and c 2 , which are the components of the ciphertext vector C, are g n , respectively, as shown by the equation 1.   It is indicated by mod p and mh n mod p. However, n is a random number uniformly selected from the set of integers Z q when encrypting. Here, the "random number selected uniformly" means a random number selected from random values following a uniform distribution. That is, a random number n is an integer value selected with the same probability from all the elements of the integer set Z q , which are 0 or more and less than q.
 復号アルゴリズム(Dec)は、秘密鍵ks:=sと公開鍵kp:=(G,q,g,h)を用いて暗号文ベクトルCを数2式に従って復号し、平文m’を出力する。復号が正しく行われたときには、m’=mとなる。 The decryption algorithm (Dec) decodes the ciphertext vector C according to the equation 2 using the private key k s : = s and the public key k p : = (G, q, g, h), and outputs the plaintext m'. To do. When the decoding is done correctly, m'=m.
Figure JPOXMLDOC01-appb-M000005
  但し、(c1)-sは、(c1)sのpを法(除数)とするモジュラー逆数である。暗号文Cが数1式により暗号化されていれば、数3式が成立する。この数3式は、平文mを公開鍵kpで暗号化したものを、秘密鍵ksで復号すると元の平文mに戻ることを数式で示したものである。
Figure JPOXMLDOC01-appb-M000005
However, (c 1 ) -s is a modular reciprocal whose method (divisor) is p of (c 1 ) s . If the ciphertext C is encrypted by the equation 1, the equation 3 holds. This equation of number 3 is a mathematical expression showing that the plaintext m is encrypted with the public key k p and then decrypted with the private key k s to return to the original plaintext m.
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000006
 次に、本発明の暗号化制御システムの原理について説明する。ここでは、Rは実数集合、Nは自然数集合、Zは整数集合とする。本発明の暗号化制御システムで用いられる離散時間制御器は、事前に設計されており、その入出力関係は、数4式で示す制御則fで記述されるとする。 Next, the principle of the encryption control system of the present invention will be described. Here, R is a real number set, N is a natural number set, and Z is an integer set. It is assumed that the discrete-time controller used in the encryption control system of the present invention is designed in advance, and the input / output relationship thereof is described by the control rule f shown by Equation 4.
Figure JPOXMLDOC01-appb-M000007
 ここで、tは自然数集合Nの要素であり、現在の日時を自然数で丸めて示したステップ(t=1,2,3,4・・・)である。また、Φは制御器の制御パラメータであり、制御パラメータKp、Ki、Kdを総括的に示す記号である。なお、Kpは比例要素、Kiは積分要素、Kdは微分要素を指す。ζは制御器の状態ベクトルxと制御器への入力ucをまとめた入力ベクトルである。状態ベクトルxとは、状態変数のベクトルであり、状態変数とは、制御対象や制御器など、制御系が持つ状態を数値として表した変数である。
 行列A、B、C、Dは、制御パラメータΦを表す係数行列であり、制御対象に対して知識のある管理者(責任者)によって、制御工学に基づいて適切な係数が設定される。
Figure JPOXMLDOC01-appb-M000007
Here, t is an element of the natural number set N, and is a step (t=1,2,3,4...) In which the current date and time is rounded by a natural number. In addition, Φ is a control parameter of the controller, and is a symbol that collectively indicates the control parameters K p , K i , and K d . K p is a proportional element, K i is an integral element, and K d is a differential element. ζ is an input vector that summarizes the state vector x of the controller and the input u c to the controller. The state vector x is a vector of state variables, and the state variable is a variable that numerically represents the state of the control system such as the controlled object or the controller.
The matrices A, B, C and D are coefficient matrices representing the control parameter Φ, and an appropriate coefficient is set on the basis of control engineering by an administrator (responsible person) who has knowledge of the controlled object.
 Ψは、制御入力uと更新した状態ベクトルxの計算過程をまとめた行列である。写像fは、行列とベクトルの積を表す。f×は、Φの行ベクトルとζの列ベクトルの乗算を表す。また,f+は、行列の列ベクトル同士で足し合わせる写像を表す。このとき、写像fは、f+とf×の合成関数として表すことができる。Ψは、写像f×の出力であると同時に写像f+の入力であり、写像fの計算過程をまとめた行列である。 Ψ is a matrix summarizing the calculation process of the control input u and the updated state vector x. The map f represents the product of a matrix and a vector. f × represents the multiplication of the row vector of Φ and the column vector of ζ. In addition, f + represents a mapping in which the column vectors of the matrix are added together. At this time, the map f can be expressed as a composite function of f + and f × . Ψ is the output of the map f × and the input of the map f + , and is a matrix summarizing the calculation process of the map f.
 また、x(t)は、時刻tにおける制御器の状態を示すベクトルであり、u(t)は制御入力を示す。uc(t)は制御器への入力である。数4式からも、ζが制御器の状態ベクトルxと制御器への入力ucをまとめた入力ベクトルであることが分かる。数4式は、入力ベクトルζと制御パラメータΦとの乗算を意味しているが、この数4式から制御器への入力ベクトルζ(t)と制御パラメータΦの乗算により、制御入力u(t)が得られること、および制御器の状態ベクトルx(t)と制御パラメータΦの乗算により、制御器の状態ベクトルx(t)がx(t+1)に更新されることが分かる。そして、対象となる制御系の制御則fが数4式で与えられ、暗号化方式(Gen,Enc,Dec)として、関数fεが数5式を満たすとき、関数fεを関数fに対する暗号化制御と呼ぶ。 Further, x (t) is a vector indicating the state of the controller at time t, and u (t) indicates a control input. u c (t) is the input to the controller. From Equation 4, it can be seen that ζ is an input vector that combines the state vector x of the controller and the input u c to the controller. The equation 4 means the multiplication of the input vector ζ and the control parameter Φ. By multiplying the input vector ζ (t) from the equation 4 to the controller and the control parameter Φ, the control input u (t) ) Is obtained, and the state vector x (t) of the control is updated to x (t + 1) by multiplying the state vector x (t) of the control by the control parameter Φ. Then, when the control law f of the target control system is given by the equation 4, and the function fε satisfies the equation 5 as the encryption method (Gen, Enc, Dec), the function fε is encrypted for the function f. Call.
Figure JPOXMLDOC01-appb-M000008
Figure JPOXMLDOC01-appb-M000008
 この数5式は、制御器の制御パラメータΦを公開鍵kpで暗号化したものと、制御器の入力ベクトルζを公開鍵kpで暗号化したものを、暗号化制御則fεに従って秘密鍵ksで復号するとf(Φ,ζ(t))が得られることを示している。
 ここで、暗号化方式(Gen,Enc,Dec)にElGamal暗号を用いると、平文空間Mは、公開鍵kp:=(G,q,g,h)を用いて、数6式で定義される。数6式でgは巡回群Gの生成元であり、公開鍵kpの1つのパラメータである。pは公開鍵のパラメータqから導かれる素数である。なお、ElGamal暗号の安全性を保つためには、平文空間Mは、実数集合Zpの部分群として定義する必要がある。
This equation 5 is obtained by encrypting the control parameter Φ of the controller with the public key k p and encrypting the input vector ζ of the controller with the public key k p according to the encryption control rule fε. It is shown that f (Φ, ζ (t)) can be obtained by decoding with k s .
Here, when ElGamal encryption is used as the encryption method (Gen, Enc, Dec), the plaintext space M is defined by the equation 6 using the public key k p : = (G, q, g, h). It In Equation 6, g is the generator of the cyclic group G and is one parameter of the public key k p . p is a prime number derived from the public key parameter q. In order to maintain the security of ElGamal encryption, the plaintext space M needs to be defined as a subgroup of the real number set Zp.
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000009
 観測値および制御器のパラメータは実数であるため、暗号化する際には、数7式で示すような、丸めの誤差を低減するための係数γを使って、平文空間Mの元への丸めが必要である。 Since the observed value and the parameter of the controller are real numbers, when encrypting, the coefficient γ for reducing the rounding error as shown in Equation 7 is used to round the plaintext space M is necessary.
Figure JPOXMLDOC01-appb-M000010
  ここで、yは実数ベクトル、γyは集合Mの要素の整数ベクトル、yi、diはベクトルy、dのi番目の要素である。γは、集合Mへの丸めの誤差を低減するために乗ずる整数値であり、平文変換ゲインと呼ぶ。Qは実数ベクトルyを集合Mの要素の整数ベクトルに変換する写像である。
Figure JPOXMLDOC01-appb-M000010
Here, y is a real number vector, γy is an integer vector of elements of the set M, and y i and d i are i-th elements of the vectors y and d. γ is an integer value to be multiplied in order to reduce the error of rounding to the set M, and is called a plaintext conversion gain. Q is a mapping that transforms the real vector y into an integer vector of the elements of the set M.
 ここで、平文変換ゲインγと集合Mへの丸めについて、さらに詳しく説明する。yは実数であるから、小数点以下の数字が繰り返し現れる。一例として、観測値yが「y=2.3568937…」と小数点以下が続く実数であったとする。この数字を整数に丸めると、小数点以下を切り捨てて「2」になる。このときの観測値yとの誤差は約35.7%になる。平文変換ゲインγ=10として、10yにすると「γy=23.568937…」、この数値γyを整数に丸めると「23」になり、誤差は約5.7%になって、平文変換ゲインγを掛ける前と比較すると、誤差が大幅に小さくなることがわかる。以上が集合Mへの丸めの意味である。 Here, the plaintext conversion gain γ and the rounding to the set M will be described in more detail. Since y is a real number, numbers below the decimal point appear repeatedly. As an example, it is assumed that the observed value y is a real number followed by "y=2.3568937..." If this number is rounded to an integer, the number after the decimal point will be rounded down to "2". The error from the observed value y at this time is about 35.7%. When the plaintext conversion gain γ = 10 is set to 10y, it becomes “γy = 23.568937…”, and when this numerical value γy is rounded to an integer, it becomes “23”, and the error is about 5.7%, which is compared with before multiplying the plaintext conversion gain γ. Then, it can be seen that the error is significantly reduced. The above is the meaning of rounding into the set M.
<暗号化制御系の鍵長設計問題>
 まず、攻撃者が鍵を解読する方法(手順)を説明する。攻撃者がネットワーク上で公開鍵kpのパラメータhと素数pを入手した場合、攻撃者は数8式を満足する秘密鍵パラメータsを特定する必要がある。なお、pは公開鍵kpのパラメータqから求められる素数である。
<Key length design problem of encryption control system>
First, a method (procedure) for an attacker to decrypt the key will be described. When the attacker obtains the parameter h of the public key k p and the prime number p on the network, the attacker needs to specify the secret key parameter s that satisfies the equation (8). Note that p is a prime number obtained from the parameter q of the public key k p .
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000011
 この数8式で、公開鍵kpのパラメータhと素数pから秘密鍵パラメータsを求める問題が離散対数問題である。この問題の解法については、準指数時間アルゴリズムという手法が知られている。そして、この準指数時間アルゴリズムを用いて、数8式の離散対数問題を解くのに要する予想時間Lpは数9式になることも知られている。 The problem of finding the secret key parameter s from the parameter h of the public key k p and the prime number p in this equation of number 8 is the discrete logarithm problem. A method called a quasi-exponential time algorithm is known as a method for solving this problem. It is also known that the expected time L p required to solve the discrete logarithm problem of Equation 8 by using this quasi-exponential time algorithm is Equation 9.
Figure JPOXMLDOC01-appb-M000012
Figure JPOXMLDOC01-appb-M000012
 ここで、pは、p=2q+1(qは素数)で表され、鍵長k(bit)に対して2k<p<2k+1となる素数である。素数qを与えるpを安全素数と呼ぶ。vおよびcはアルゴリズムにより決まる定数で、指数計算法では、v=1/2、c=1であり、数体ふるい法では、v=1/3、c=(64/9)1/3である。また、p→∞のとき、o(1)は0に収束する。
 鍵長k(bit)が大きくなるにつれて、計算時間Lpが指数的に増加するので、十分大きなkの下では、離散対数問題を解くことは困難であるとされている。
Here, p is represented by p=2q+1 (q is a prime number), and is a prime number such that 2 k <p<2 k+1 with respect to the key length k (bit). A p that gives a prime number q is called a safety prime number. v and c are constants determined by the algorithm. In the exponential calculation method, v=1/2 and c=1. In the number field sieving method, v=1/3 and c=(64/9) 1/3 . is there. When p→∞, o(1) converges to 0.
Since the calculation time L p exponentially increases as the key length k (bit) increases, it is considered difficult to solve the discrete logarithm problem under sufficiently large k.
 そこで、発明者らは、暗号化制御系の稼働中に全入出力信号の漏洩を防ぐために、制御系の耐用年数内(例えば10~20年)での鍵解読が困難な鍵長の設計問題を検討した。
 制御系の耐用年数をLu(sec)、攻撃者が全ての鍵解読に要する時間をLa(sec)とする。すると、Lu(sec)≧La(sec)であれば、攻撃者は暗号化制御系の稼働中に全ての秘密鍵を入手できるから、攻撃者にとっては、全時刻の入出力信号の解読が可能になる。
Therefore, the inventors have a key length design problem in which it is difficult to decipher the key within the useful life of the control system (for example, 10 to 20 years) in order to prevent leakage of all input / output signals during operation of the encrypted control system. It was investigated.
Let L u (sec) be the useful life of the control system, and L a (sec) be the time required for an attacker to decrypt all keys. Then, if the L u (sec) ≧ L a (sec), since the attacker can get all of the secret key during the operation of encryption control system, for an attacker, decoding of the input and output signals of all time Will be possible.
 しかし、一方で、Lu(sec)<La(sec)であれば、攻撃者は暗号化制御系の稼働時間内に全ての秘密鍵を特定することができない。つまり、この場合、暗号化制御系は、全時刻の入出力信号が漏洩する前に制御系の寿命(耐用年数)が来るため、万が一に攻撃者が全ての秘密鍵を特定しても、制御系に対して攻撃する機会がなくなってしまう。
 以上の議論から、鍵長設計問題は、Lu(sec)<La(sec)を満たす最小の鍵長k(bit)を求める問題に帰着させることができる。
However, on the other hand, if L u (sec) <L a (sec), the attacker can not identify all of the private key in the operating time of encryption control system. In other words, in this case, the encrypted control system reaches the end of its life (useful life) before the input / output signals at all times are leaked, so even if an attacker identifies all the private keys, it will be controlled. There is no chance to attack the system.
From the above discussion, the key length design problem can be reduced to a minimum of the problem of finding a key length k (bit) that satisfies L u (sec) <L a (sec).
 鍵を更新しない静的な暗号化制御系では、攻撃者が全ての鍵解読に要する時間La(sec)は、数9式で示した離散対数問題を解くのに要する予想時間Lp(v,c)と等しくなる。例えば、制御系の耐用年数Lu(sec)を30年(≒9.46×108sec)として、攻撃者が480(GFLOPS:Giga Floating-point Operations Per Second)の性能の計算機を用いて数体ふるい法を実行した場合には、Lu(sec)<La(sec)を満たす最小のkは601(bit)となる。
 このk=601(bit)を有する暗号をリアルタイムで解くことが可能な高性能な計算機は限られるので、従来のように鍵を更新しない静的な暗号化制御系は現実的ではない。
 一方、通称ラズパイとも呼ばれるARM(アーム)プロセッサを搭載したシングルボードコンピュータであるRaspberry Piを用いた実験では、鍵長128(bit)までが限度である。
In static encryption control system does not update the key, the time L a attackers required for all key decryption (sec), the expected time L p (v required to solve the discrete logarithm problem shown in equation (9) ,c). For example, assuming that the control system useful life Lu (sec) is 30 years (≈ 9.46 × 10 8 sec), an attacker uses a computer with a performance of 480 (GFLOPS: Giga Floating-point Operations Per Second) when you perform a law, the smallest k that satisfies L u (sec) <L a (sec) becomes 601 (bit).
Since the number of high-performance computers that can solve this cipher with k=601 (bit) in real time is limited, the conventional static encryption control system that does not update the key is not realistic.
On the other hand, in an experiment using Raspberry Pi, which is a single board computer equipped with an ARM (arm) processor, also known as Raspberry Pi, the key length is limited to 128 (bit).
<動的拡張による解法>
 そこで、発明者らは、公開鍵kp(t)および秘密鍵ks(t)を時刻(ステップ)tに従って動的に更新することにより、短い鍵長でリアルタイム性の実現を可能とする暗号制御システムを考察した。
 すなわち、発明者らは、鍵長設計問題に対する解法として、鍵を複数個実装することによりElGamal暗号の動的拡張を行い、暗号化制御系の鍵長設計問題の解をより短い鍵長の鍵で得ることに成功した。
<Solution by dynamic expansion>
Therefore, the inventors of the present invention dynamically update the public key k p (t) and the secret key k s (t) according to the time (step) t, thereby enabling the real-time encryption with a short key length. The control system was considered.
That is, as a solution to the key length design problem, the inventors dynamically extend the ElGamal encryption by implementing a plurality of keys, and solve the key length design problem of the encryption control system with a shorter key length key. I succeeded in getting at.
 先に説明した、制御系の耐用年数Luと攻撃者が全ての鍵解読に要する時間Laとの比較では、単一の鍵でLu(sec)<La(sec)を満たす最小の鍵長kは601(bit)であった。しかし、これが2個の鍵であれば、最小の鍵長kはもっと短いビット長で済む。暗号鍵が3個であれば更に鍵長kを短くできる。この考えを拡張し、制御系のステップ応答毎に暗号鍵を更新することを考えると、Lu(sec)<La(sec)を満たす最小の鍵長kは128(bit)よりも短くしても問題がなくなる。つまり、暗号鍵の数が膨大になれば、攻撃者による全ての暗号鍵の解読が事実上不可能になる。すなわち、制御系のステップ応答毎に暗号鍵を更新する技術思想を導入することにより、前述のシングルボードコンピュータのような非力な計算機資源でも、十分に実用的な暗号化制御システムを実現することが可能になる。 Previously described, the service life L u attackers control system in comparison with the time L a required for all key decryption, the minimum satisfying L u (sec) <L a (sec) in a single key The key length k was 601 (bit). However, if this is two keys, the minimum key length k can be a shorter bit length. If there are three encryption keys, the key length k can be further shortened. Extend this idea, given that updating the encryption key for each step response of the control system, the minimum key length k satisfying L u (sec) <L a (sec) is shorter than 128 (bit) But the problem goes away. In other words, if the number of encryption keys becomes huge, it becomes virtually impossible for an attacker to decrypt all the encryption keys. That is, by introducing the technical idea of updating the encryption key for each step response of the control system, it is possible to realize a sufficiently practical encryption control system even with a weak computer resource such as the above-mentioned single board computer. It will be possible.
 発明者らは、ElGamal暗号の公開鍵kp(t)、秘密鍵ks(t)、暗号文C(c1(t),c2(t))に対して、数10式に示す更新式に基づいて毎ステップで更新させることにした。数10式では、公開鍵kp(t)をElGamal暗号のパラメータの一つであるh(t)で表し、秘密鍵ks(t)を同じくパラメータs(t)で表している。したがって、以降の数式の説明では、単に、公開鍵h(t)、秘密鍵s(t)として説明する。 The inventors updated the public key k p (t), the secret key k s (t), and the ciphertext C(c 1 (t),c 2 (t)) of the ElGamal cipher with the equation 10 I decided to update it step by step based on the formula. In the equation tens, the public key k p (t) is represented by h (t), which is one of the parameters of ElGamal encryption, and the private key k s (t) is also represented by the parameter s (t). Therefore, in the following description of the mathematical formula, it is simply described as the public key h (t) and the private key s (t).
Figure JPOXMLDOC01-appb-M000013
Figure JPOXMLDOC01-appb-M000013
 ここで、v(t)、w(t)は、整数集合Zの元をなす乱数である。この更新則がすべてのステップで離散対数問題の解を与えることを証明するために、次のステップの秘密鍵s(t+1)、公開鍵h(t+1)および暗号文C(c1(t+1)、c2(t+1))について以下に示す2つの定理が考えられている。
 [定理1](鍵の更新)
 暗号鍵(公開鍵と秘密鍵)において、公開鍵の初期値h(0)および秘密鍵の初期値s(0)が暗号化制御アルゴリズム(Gen)で求まるものとして、暗号鍵の更新が数10式で与えられるならば、公開鍵h(t)および秘密鍵s(t)はすべての時刻tで数3式を満足する。
Here, v (t) and w (t) are random numbers that form the elements of the integer set Z q . To prove that this update rule gives a solution to the discrete logarithm problem in every step, the private key s (t + 1), public key h (t + 1) and ciphertext C (c 1 ) in the next step The following two theorems are considered for (t + 1) and c 2 (t + 1)).
[Theorem 1] (Key update)
In the encryption key (public key and private key), the initial value h (0) of the public key and the initial value s (0) of the private key can be obtained by the encryption control algorithm (Gen). Given in the equation, the public key h (t) and the private key s (t) satisfy the equation 3 at all times t.
 この定理1は、以下の数11式のように、数3式で示される時刻(t+1)の復号アルゴリズムDecの式を変形して時刻(t)の復号アルゴリズム(Dec)の式を導くことにより証明することができる。
 ここで、n(t)は、n(t+1)=(n(t)+v(t))mod q という式でステップ毎に更新される乱数である。同じ乱数であるが、n(t)は、数10式で用いたv(t)、w(t)とは異なり、数1式にて使用する乱数nである。
This Theorem 1 transforms the formula of the decoding algorithm Dec at the time (t+1) shown in the formula 3 to obtain the formula of the decoding algorithm (Dec) at the time (t) as shown in the following formula 11. It can be proved by this.
Here, n(t) is a random number updated at each step by the formula n(t+1)=(n(t)+v(t))mod q. Although they are the same random numbers, n(t) is a random number n used in Formula 1 unlike v(t) and w(t) used in Formula 10.
Figure JPOXMLDOC01-appb-M000014
Figure JPOXMLDOC01-appb-M000014
 [定理2](暗号文更新)
 暗号文の更新が数10式で与えられるならば、暗号文c1(t)、c2(t)は、全ての時刻tで数3式を満たす。
 この定理2も、数12式に示すように、数3式が成り立つことを確認することで、証明することが可能である。
[Theorem 2] (Ciphertext update)
If the ciphertext update is given by Expression 10, the ciphertexts c 1 (t) and c 2 (t) satisfy Expression 3 at all times t.
This theorem 2 can also be proved by confirming that the equation 3 holds, as shown in the equation 12.
Figure JPOXMLDOC01-appb-M000015
Figure JPOXMLDOC01-appb-M000015
 以上説明したように、公開鍵h(t)、秘密鍵s(t)、および暗号文c1(t)、c2(t)が乱数を用いて更新できることが分かった。さらに、数10式によって更新される暗号文c1(t+1)、c2(t+1)は乗法に対して準同型性を満たすことも分かった。 As explained above, it was found that the public key h (t), the private key s (t), and the ciphertexts c 1 (t) and c 2 (t) can be updated using random numbers. Furthermore, it was also found that the ciphertexts c 1 (t + 1) and c 2 (t + 1) updated by the equation tens satisfy homomorphism with respect to multiplication.
 数10式に示す更新式により、制御系で用いる公開鍵h(t)と秘密鍵s(t)を、乱数を用いてサンプリング周期Tsごとに更新することを考える。サンプリング周期Tsごとに更新するため、制御系と同じ乱数発生器を持たない攻撃者は、仮に秘密鍵s(t)を取得しても、s(t+1)に更新することは困難である。 It is considered that the public key h (t) and the private key s (t) used in the control system are updated every sampling period T s using a random number by the update formula shown in the equation several tens. Since it is updated every sampling cycle T s , it is difficult for an attacker who does not have the same random number generator as the control system to update to s (t + 1) even if the private key s (t) is acquired. is there.
 なお、サンプリング周期Tsは、制御系の種類によって異なる。例えば、制御対象が機械ロボットのようなものであれば、この機械ロボットのサンプリング周期Tsは0.1msec程度の周期で切り替えることが考えられる。これに対して化学プラントなどの大型のプラントであれば、数か月または数年に一度ということもあり得る。すなわち、サンプリング周期Tsは、どの程度の速さで制御対象をセンシングするかで決まる値であり、制御対象によって短い周期になったり、長い周期になったりする。一般的には、ゆっくり動くものは長い周期になり、速く動くものは短い周期になる。 The sampling cycle T s varies depending on the type of control system. For example, if the control target is something like a mechanical robot, the sampling cycle T s of this mechanical robot can be switched at a cycle of about 0.1 msec. On the other hand, in the case of a large plant such as a chemical plant, it may occur once every few months or years. That is, the sampling cycle T s is a value that is determined by how fast the control target is sensed, and may be a short cycle or a long cycle depending on the control target. In general, slow-moving objects have a long cycle, and fast-moving objects have a short cycle.
 なお、耐用年数Lu内のサンプリング数(ステップ数)は、制御系の耐用年数Luをサンプリング周期Tsで割った値Lu/Tsステップである。一方、秘密鍵s(t)の取り得る値はq通り(qはk(bit)の素数)である。
 ここで、q≧Lu/Tsであれば、全ての鍵解読に要する時間Laは、L=(Lu/Ts)Lp{v,c}になる。なお、Lpは、準指数時間アルゴリズムを用いて、離散対数問題を解くのに要する予想時間である(数9式参照)。
Incidentally, the number of samples in the useful life L u (number of steps) is the value L u / T s step of dividing the service life L u of the control system at the sampling period T s. On the other hand, there are q possible values of the private key s (t) (q is a prime number of k (bit)).
Here, if q ≧ L u / T s, time L a required for all key decryption, L a = (L u / T s) L p {v, c} becomes. L p is the estimated time required to solve the discrete logarithm problem using the quasi-exponential time algorithm (see Equation 9).
 数10式に示す更新式を用いた暗号化制御系における鍵長設計問題は、耐用年数Luおよびサンプリング周期Tsのいずれも0より大きい正の値であり、Ts<Lp{v,c}となる。
 例えば、サンプリング周期Ts=1.0×10-2(sec)とした場合、Ts<Lp{v,c}を満たす最小のk(bit)の値は105(bit)になる。また、サンプリング周期Tsを更に短くして、Ts=1.0×10-3(sec)とすると、最小のk(bit)の値は83(bit)になる。このことから、数10式に示した更新式により、ElGamal暗号を動的に拡張すると、従来より短い鍵長であっても、1サンプリング周期Ts内で全入力信号を特定することは困難であるということができる。
The key length design problem in the encryption control system using the update formula shown in Formula 10 is that both the useful life L u and the sampling period T s are positive values larger than 0, and T s <L p {v, c}.
For example, if the sampling period T s = 1.0 × 10 -2 (sec), the minimum k (bit) value that satisfies T s <L p {v, c} is 105 (bit). Further, if the sampling cycle T s is further shortened and T s =1.0×10 −3 (sec), the minimum k(bit) value becomes 83 (bit). From this, if the ElGamal cipher is dynamically expanded by the update formula shown in Formula 10, it is difficult to specify all the input signals within one sampling period T s even if the key length is shorter than before. It can be said that there is.
 <制御シミュレーション>
 次に、数10式の更新式を用いて、公開鍵、秘密鍵および暗号文が更新されていること、および制御性能が大きく変化しないことをシミュレーションにより確認する。そのため、一次遅れ系に対し、サンプリング周期Ts=1.0×10-2(sec)として離散化したPID制御器を設計し、初期位置を「1」、初期速度を「0」として、目標位置「0」へ収束させる制御シミュレーションを行った。
 まず、k=128(bit)の公開鍵を用いて、制御器および信号を暗号化し、従来の制御器と同じ条件でシミュレーションを行った。公開鍵h(t)および秘密鍵s(t)の更新周期はサンプリング周期と同じにした。
<Control simulation>
Next, it is confirmed by simulation that the public key, the secret key, and the ciphertext are updated, and that the control performance does not significantly change, using the update formulas of the several tens formulas. Therefore, we designed a discretized PID controller with a sampling period T s =1.0 × 10 -2 (sec) for the first-order lag system, set the initial position to "1", the initial velocity to "0", and the target position to " A control simulation was performed to converge to "0".
First, the controller and signal were encrypted using the public key of k = 128 (bit), and the simulation was performed under the same conditions as the conventional controller. The update cycle of the public key h (t) and the private key s (t) is the same as the sampling cycle.
 図1は、この制御シミュレーションを行う制御器(暗号化コントローラ)10と制御対象21を含むプラント20との間に復号部30と暗号化部40を設けた暗号化制御方式の原理を説明するための概略図である。図1では、プラント20と制御対象21を分けて記載しているが、この2つは実質的に同義と考えても差し支えない。 FIG. 1 is for explaining the principle of an encryption control system in which a decryption unit 30 and an encryption unit 40 are provided between a controller (encryption controller) 10 for performing this control simulation and a plant 20 including a control target 21. It is a schematic diagram of. In FIG. 1, the plant 20 and the controlled object 21 are described separately, but these two can be considered to be substantially synonymous.
 図1を参照して、制御工学における一般的なフィーバック制御の一種である、入力値の制御を出力値と目標値との偏差によって行う方法であるPID(Proportional Integral Differential Controller)制御器を例として説明する。
 図1に示すように、制御対象21を含むプラント20に対して、目標値rが設定される。
 この目標値rは復号部30からプラント20に向けて供給されるものであるが、これを実現する上で、暗号化コントローラ10に暗号化目標値Enc(r)が供給される。
 また、復号部30からの制御入力uによって制御される制御対象21を不図示のセンサでセンシングすることにより、制御対象21から観測値yが出力される。
Referring to FIG. 1, an example of a PID (Proportional Integral Differential Controller) controller, which is a type of general feedback control in control engineering, is a method of controlling an input value by a deviation between an output value and a target value. As described below.
As shown in FIG. 1, a target value r is set for the plant 20 including the controlled object 21.
This target value r is supplied from the decryption unit 30 to the plant 20, and in order to realize this, the encryption target value Enc (r) is supplied to the encryption controller 10.
Further, by sensing the controlled object 21 controlled by the control input u from the decoding unit 30 with a sensor (not shown), the observed value y is output from the controlled object 21.
 この観測値yは減算器22において、復号部30で復号された目標値rとの減算がなされ、減算器22から目標誤差ε(=r-y)が出力される。なお、ここで復号部30から出力される目標値rは、プラント20の制御対象21によって異なるが、図4で後述するPID制御シミュレーションでは、初期位置を「1」、初期速度を「0」、目標位置「0」に設定している。減算器22から出力される目標誤差εは、暗号化部40に送られる。 This observed value y is subtracted from the target value r decoded by the decoding unit 30 in the subtractor 22, and the target error ε (= r-y) is output from the subtractor 22. Although the target value r output from the decoding unit 30 differs depending on the control target 21 of the plant 20, in the PID control simulation described later with reference to FIG. 4, the initial position is “1”, the initial speed is “0”, The target position is set to "0". The target error ε output from the subtractor 22 is sent to the encryption unit 40.
 復号部30から暗号化コントローラ10の状態ベクトルxも出力され、暗号化部40に送られる。暗号化部40では、暗号化コントローラ10の状態ベクトルxと目標誤差εをまとめた入力ベクトルζが生成され、公開鍵kp(t)によって暗号化される。そして、暗号化部40より暗号化入力ベクトルEnc(ζ)が出力され、暗号化コントローラ(制御器)10に送られる。なお、この暗号化入力ベクトルEnc(ζ)は、暗号化された状態ベクトルEnc(x)と、暗号化された目標誤差Enc(ε)を含む。 The state vector x of the encryption controller 10 is also output from the decryption unit 30 and sent to the encryption unit 40. The encryption unit 40 generates an input vector ζ that is a collection of the state vector x and the target error ε of the encryption controller 10, and encrypts the input vector ζ with the public key k p (t). Then, the encryption input vector Enc (ζ) is output from the encryption unit 40 and sent to the encryption controller (control) 10. The encrypted input vector Enc(ζ) includes the encrypted state vector Enc(x) and the encrypted target error Enc(ε).
 暗号化コントローラ10には、暗号化入力ベクトルEnc(ζ)の他に、暗号化された目標値Enc(r)、第1暗号化制御パラメータEnc(Kp)、第2暗号化制御パラメータEnc(Ki)、および第3暗号化制御パラメータEnc(Kd)が供給されている。
 例えば、最も単純な比例制御で説明すると、比例制御では誤差に比例ゲインをかけるため、Enc(Kp)×Enc(ε)mod p=Enc(u)になる。この計算は平文同士でKp×εを計算したものと一致する。
In the encryption controller 10, in addition to the encrypted input vector Enc(ζ), the encrypted target value Enc(r), the first encryption control parameter Enc(K p ), and the second encryption control parameter Enc( K i ) and the third cryptographic control parameter Enc (K d ) are supplied.
For example, the simplest proportional control will be explained. In proportional control, an error is proportionally multiplied by a proportional gain, so that Enc(K p )×Enc(ε)mod p=Enc(u). This calculation agrees with the calculation of K p ×ε between plaintexts.
 暗号化コントローラ10に供給される第1~第3暗号化制御パラメータEnc(Kp)、Enc(Ki)、Enc(Kd)は、代表的な暗号化制御パラメータである。この暗号化制御パラメータに暗号化された入力ベクトルEnc(ζ)を乗算剰余の処理演算を行うと、暗号化された暗号化コントローラ(制御器)10の出力行列Enc(Ψ)が出力される。出力行列Enc(Ψ)は、暗号化制御信号Enc(u)および更新された暗号化状態ベクトルEnc(x)を含む。 The first to third encryption control parameters Enc (K p ), Enc (K i ), and Enc (K d ) supplied to the encryption controller 10 are typical encryption control parameters. Multiplying this encryption control parameter with the encrypted input vector Enc (ζ) When the remainder processing operation is performed, the output matrix Enc (Ψ) of the encrypted encryption controller (control) 10 is output. The output matrix Enc (Ψ) contains the encryption control signal Enc (u) and the updated encryption state vector Enc (x).
 暗号化コントローラ10から出力される暗号化された出力行列Enc(Ψ)および暗号化された目標値Enc(r)は、復号部30に加えられ、復号部30で復号されて、制御信号u、状態ベクトルxおよび目標値rが生成される。そして、制御信号uは制御対象21を制御するために利用される。また、目標値rはプラント20の減算器22に送られ、制御器の状態ベクトルxはプラント20を経由して暗号化部40に送られる。 The encrypted output matrix Enc(Ψ) and the encrypted target value Enc(r) output from the encryption controller 10 are added to the decryption unit 30, decrypted by the decryption unit 30, and the control signal u, A state vector x and a target value r are generated. Then, the control signal u is used to control the controlled object 21. Further, the target value r is sent to the subtractor 22 of the plant 20, and the state vector x of the controller is sent to the encryption unit 40 via the plant 20.
 この図1に示す処理は、毎ステップ(サンプリング周期Ts)で繰り返され、毎ステップで暗号化部40の暗号化に用いられる公開鍵h(t)、復号部30の復号に用いられる秘密鍵s(t)および暗号文C(c1(t),c2(t))が更新される。この公開鍵h(t)、秘密鍵s(t)および暗号文C(c1(t),c2(t))の更新処理は、数10式で述べた更新則に従って行われる。 暗号文Cは、図1における暗号化制御パラメータEnc(Kp)、Enc(Ki)、Enc(Kd)、暗号化目標値Enc(r)、暗号化制御信号Enc(u)、暗号化状態ベクトルEnc(x)及び暗号化目標誤差Enc(ε)の全てを含む。 The process shown in FIG. 1 is repeated in each step (sampling cycle T s ), and the public key h (t) used for encryption of the encryption unit 40 and the private key used for decryption of the decryption unit 30 in each step. s (t) and ciphertext C (c 1 (t), c 2 (t)) are updated. The updating process of the public key h(t), the secret key s(t), and the ciphertext C(c 1 (t),c 2 (t)) is performed according to the updating rule described in Expression 10. The ciphertext C is the encryption control parameters Enc(K p ), Enc(K i ), Enc(K d ), encryption target value Enc(r), encryption control signal Enc(u), encryption Includes all of the state vector Enc (x) and the encryption target error Enc (ε).
 なお、ここで復号部30および暗号化部40と暗号化コントローラ(制御器)10は伝送路を介して接続されている。図1では、暗号化コントローラ(制御器)10以外の構成要素は、点線で囲っている。点線で囲ったことの意味は、復号部30、暗号化部40は、プラント20と密接に関係していること、そして復号され制御信号u、目標値r、目標誤差ε、状態ベクトルxは、平文の状態で伝送路に出力されないことを意味している。 Here, the decryption unit 30, the encryption unit 40, and the encryption controller (control) 10 are connected via a transmission line. In FIG. 1, the components other than the encryption controller (control) 10 are surrounded by a dotted line. The meaning of being surrounded by a dotted line is that the decryption unit 30 and the encryption unit 40 are closely related to the plant 20, and the decrypted control signal u, target value r, target error ε, and state vector x are This means that the plaintext is not output to the transmission line.
 図2Aは、公開鍵h(t)、秘密鍵s(t)、暗号文c1(t)、c2(t)を数10式に示す更新則で更新する際の機能を示すブロック図である。図2Aに示すように、鍵更新を実行する機能ブロックとしては、記憶部50、乱数生成器51、秘密鍵更新部52、公開鍵更新部53、暗号文更新部54、55、乱数更新部56を備える。 FIG. 2A is a block diagram showing a function when updating the public key h(t), the secret key s(t), the ciphertext c 1 (t), and the c 2 (t) by the update rule shown in Formula 10. is there. As shown in FIG. 2A, as the functional block for executing the key update, the storage unit 50, the random number generator 51, the secret key update unit 52, the public key update unit 53, the ciphertext update units 54 and 55, and the random number update unit 56. Equipped with.
 図2Aに示すように、最初のステップ(t=0)で、各パラメータの初期値が記憶部50に記憶される。p、qは素数、gは巡回群Gの生成元であり、これらのスカラー値p、q、gは時間変化のない固定された数である。また、記憶部50には、ステップ(t=0)の秘密鍵パラメータs(0)、ステップ(t=0)の公・BR>J鍵パラメータH(0)、ステップ(T=0)の乱数N(0)が記憶される。さらに、記憶部50には、ステップ(T=0)の暗号化制御パラメータENCΦ(0)も記憶される。秘密鍵パラメータS(0)、公開鍵パラメータH(0)、乱数N(0)および暗号化制御パラメータENCΦ(0)は、数10式で計算する際に、秘密鍵S(T)、公開鍵H(T)、暗号文C1(t)、c2(t)を毎ステップで更新する初期値となる。 As shown in FIG. 2A, in the first step (t = 0), the initial value of each parameter is stored in the storage unit 50. p and q are prime numbers, g is a generator of the cyclic group G, and these scalar values p, q, and g are fixed numbers that do not change with time. Further, in the storage unit 50, the secret key parameter s (0) of the step (t = 0), the public / BR> J key parameter H (0) of the step (t = 0), and the random number of the step (T = 0) are stored. N (0) is stored. Further, the storage unit 50 also stores the encryption control parameter ENCΦ (0) in step (T = 0). The secret key parameter S(0), the public key parameter H(0), the random number N(0), and the encryption control parameter ENCΦ(0) are the secret key S(T), the public key when calculating with the formula 10. This is the initial value for updating H (T), ciphertext C 1 (t), and c 2 (t) at each step.
 記憶部50に記憶されている固定パラメータ(p、q、g)と時間とともに更新されるパラメータの初期値(s(0)、h(0)、n(0)、EncΦ(0))は、その用途に応じて選択され、秘密鍵更新部52、公開鍵更新部53、暗号文更新部54、55および乱数更新部56に送られる。また、乱数生成器51で生成される乱数v(t)、w(t)も記憶部50からの各パラメータとともに、秘密鍵更新部52、公開鍵更新部53、暗号文更新部54、55および乱数更新部56に送られる。なお、更新されるパラメータの初期値(s(0)、h(0)、n(0)、EncΦ(0))は、時刻t(ステップt=1、2、3、4・・・)で更新されると、その時刻(ステップt)での値(s(t)、h(t)、n(t)、EncΦ(t))となって、記憶部50に保存される。 そして、保存されたステップtにおける秘密鍵s(t)、公開鍵h(t)、乱数n(t)、暗号化制御パラメータEncΦ(t)は、次のステップ(t+1)の更新の際に利用される。 Fixed parameters (p, q, g) stored in the storage unit 50 and initial values (s(0), h(0), n(0), EncΦ(0)) of parameters updated with time are It is selected according to its use and sent to the private key update unit 52, the public key update unit 53, the ciphertext update units 54 and 55, and the random number update unit 56. In addition, the random numbers v(t) and w(t) generated by the random number generator 51, together with the parameters from the storage unit 50, the secret key updating unit 52, the public key updating unit 53, the ciphertext updating units 54 and 55, and It is sent to the random number update unit 56. The initial values (s(0), h(0), n(0), EncΦ(0)) of the parameters to be updated are at time t (steps t=1, 2, 3, 4,... ). When it is updated, it becomes a value (s (t), h (t), n (t), EncΦ (t)) at that time (step t) and is stored in the storage unit 50. Then, the stored secret key s(t), public key h(t), random number n(t), and encryption control parameter EncΦ(t) at step t are updated at the next step (t+1). It is used for.
 秘密鍵更新部52は、秘密鍵の初期値s(0)を数10式の第1式に従って乱数w(0)を使って更新し、次のステップ(t=1)の秘密鍵s(1)を得る。公開鍵更新部53は、公開鍵の初期値h(0)を数10式の第2式に従って乱数w(0)を使って更新し、次のステップ(t=1)の公開鍵h(1)を得る。暗号文更新部54は、暗号化制御パラメータの初期値EncΦ(0)を数10式の第3式に従って乱数v(0)を使って更新し、次のステップ(t=1)の暗号文c1(1)を得る。 The private key update unit 52 updates the initial value s (0) of the private key using the random number w (0) according to the first equation of several tens of equations, and the private key s (1) in the next step (t = 1). ). The public key update unit 53 updates the initial value h (0) of the public key using the random number w (0) according to the second equation of several tens of equations, and the public key h (1) in the next step (t = 1). ). The ciphertext update unit 54 updates the initial value EncΦ (0) of the encryption control parameter using the random number v (0) according to the third equation of several tens of equations, and the ciphertext c in the next step (t = 1). Get 1 (1).
 また、暗号文更新部55は、暗号化制御パラメータのEnc初期値Φ(0)から得られる暗号文の初期値c1(0)、c2(0)と乱数v(0)、w(0)を用いて数10式により更新し、暗号文c2(1)を得る。乱数更新部56は、記憶部50から取り出した乱数の初期値n(0)と乱数生成器51からの乱数v(0)を用いて、次のステップで利用する乱数n(1)を生成する。この乱数n(t)の更新式は数10式では示されていないが、以下の式が用いられる。
    n(t+1)=(n(t)+v(t))mod q
 このようにして、ステップ(t=1)で更新された秘密鍵s(1)、公開鍵h(1)、暗号文c1(1)、c2(1)および乱数n(1)は、記憶部50に記憶または上書きされ、次の更新ステップの新たな初期値として利用される。
Further, the ciphertext updating unit 55 uses the ciphertext initial values c 1 (0) and c 2 (0) obtained from the encryption control parameter Enc initial value Φ(0) and the random numbers v(0) and w(0 ) Is used to update with several tens of equations to obtain the ciphertext c 2 (1). The random number update unit 56 generates a random number n (1) to be used in the next step by using the initial value n (0) of the random number taken out from the storage unit 50 and the random number v (0) from the random number generator 51. .. The update formula for this random number n (t) is not shown in the equation of several tens, but the following formula is used.
n(t+1)= (n(t)+v(t)) mod q
In this way, the secret key s(1), public key h(1), ciphertext c 1 (1), c 2 (1) and random number n(1) updated in step (t=1) are It is stored or overwritten in the storage unit 50 and used as a new initial value in the next update step.
 図2Bは、公開鍵h(t)と秘密鍵s(t)、そして暗号文制御パラメータEnc(Φ)がサンプリング周期Tsに相当する毎ステップで更新される様子を示したものである。図2Bで示すEnc(Φ)は、図1の第1暗号化制御パラメータEnc(Kp)、第2暗号化制御パラメータEnc(Ki)、および第3暗号化制御パラメータEnc(Kd)を代表して示した暗号化制御パラメータである。すでに述べたように、暗号化制御パラメータEncΦ(t)の更新は暗号文C(c1,c2)の更新と同義である。 FIG. 2B shows how the public key h (t), the private key s (t), and the ciphertext control parameter Enc (Φ) are updated at each step corresponding to the sampling period T s . Enc (Φ) shown in FIG. 2B is the first encryption control parameter Enc (K p ), the second encryption control parameter Enc (K i ), and the third encryption control parameter Enc (K d ) in FIG. It is an encryption control parameter shown as a representative. As described above, updating the encryption control parameter EncΦ(t) is synonymous with updating the ciphertext C(c 1 , c 2 ).
 図2Bに示すように、公開鍵h(t)、秘密鍵s(t)および暗号文C(c1(t),c2(t))が毎ステップで更新され、その更新は繰り返される。数10式で説明したように、f1は秘密鍵s(t)を更新する写像であり、秘密鍵s(t)と乱数w(t)を入力して新しい秘密鍵s(t+1)を作る。また、f2は公開鍵h(t)を更新する写像であり、公開鍵h(t)と乱数w(t)を入力して新しい公開鍵h(t+1)を作る。f3は暗号文c1を更新する写像であり、暗号文c1(t)、乱数v(t)を入力して新たな暗号文c1(t+1)を作る。同様に、f4は暗号文c2(t)を更新する写像であり、暗号文c1(t)、c2(t)、乱数v(t)、w(t)を入力して新たな暗号文c2(t+1)を生成する。 As shown in FIG. 2B, the public key h(t), the secret key s(t), and the ciphertext C(c 1 (t), c 2 (t)) are updated at each step, and the update is repeated. As explained in equation tens, f 1 is a mapping that updates the private key s (t), and the new secret key s (t + 1) is entered by inputting the private key s (t) and the random number w (t). make. Further, f 2 is a map for updating the public key h(t), and the public key h(t) and the random number w(t) are input to create a new public key h(t+1). f 3 is the map to update the ciphertext c 1, make the ciphertext c 1 (t), random number v (t) by entering a new ciphertext c 1 (t + 1). Similarly, f 4 is a mapping that updates the ciphertext c 2 (t), and the new ciphertexts c 1 (t), c 2 (t), random numbers v (t), w (t) are entered. Generate the ciphertext c 2 (t+1).
 このように、ElGamal暗号を用いて鍵更新を行う暗号化制御方法によれば、無数の暗号鍵と暗号文を作成することが可能になる。例えばk=32(bit)であれば、2,147,483,693通りの鍵生成が可能となり、一度流出した鍵を用いる頻度が低下するため、鍵の有効性および機能性は著しく向上する。 In this way, according to the encryption control method that updates the key using ElGamal encryption, it is possible to create innumerable encryption keys and ciphertexts. For example, if k=32 (bit), it is possible to generate 2,147,483,693 ways of keys, and the frequency of using a once leaked key is reduced, so that the validity and functionality of the key are significantly improved.
 図3Aは、PID制御器のシミュレーションにより、k=128(bit)の公開鍵を用いて制御器および信号を暗号化した場合(ECS(128bit))と暗号化しなかった場合(normal PID)の出力応答を示す。横軸は時間(sec)、縦軸はアウトプット(観測値)yである。図3Aに示すように、暗号化した場合でも暗号化しない場合でも、両者はほぼ一致している。図3Bは、暗号化した場合の応答と暗号化しない場合の応答の差分(y-ECSy)を示したものである。図3Bから、両者の応答の誤差は、倍精度浮動小数点型の保証範囲(15桁)内に収まっていることが分かる。 FIG. 3A shows the output when the controller and the signal are encrypted using the public key of k = 128 (bit) (ECS (128bit)) and when it is not encrypted (normal PID) by the simulation of the PID controller. Show the response. The horizontal axis is time (sec), and the vertical axis is output (observed value) y. As shown in FIG. 3A, both are almost the same regardless of whether they are encrypted or not. FIG. 3B shows the difference (y-ECSy) between the response when encrypted and the response when not encrypted. From FIG. 3B, it can be seen that the error between the two responses is within the guaranteed range (15 digits) of the double precision floating point type.
 図4A~図4Cは、従来の静的な鍵と本発明における動的に拡張した鍵を用いた場合の秘密鍵(s)、公開鍵(h)および暗号化制御パラメータEnc(Kp)を比較して示した図である。なお、暗号化制御パラメータEnc(Kp)は比例制御に特化してシミュレーションした結果である。
 静的な鍵を用いた場合は秘密鍵(s)が一定値なのに対して、図4Aから分かるように、数10式の更新則によって更新された場合は、秘密鍵(s)が激しく変化している。また、同様に、公開鍵(h)も静的な鍵を用いた場合は一定値であるが、図4Bから分かるように、数10式の更新則によって更新された場合は、激しく変化している。つまり、全ての時刻において秘密鍵(s)、公開鍵(h)が更新されていることが分かる。
4A to 4C show a secret key (s), a public key (h), and an encryption control parameter Enc(K p ) when a conventional static key and a dynamically expanded key according to the present invention are used. It is the figure which showed by comparison. The encryption control parameter Enc (K p ) is the result of a simulation specialized for proportional control.
As shown in FIG. 4A, when the static key is used, the secret key (s) has a constant value. However, when the secret key (s) is updated by the update rule of Equation 10, the secret key (s) changes drastically. ing. Similarly, the public key (h) is also a constant value when a static key is used, but as can be seen from FIG. 4B, when it is updated by the update rule of several tens of equations, it changes drastically. There is. That is, it can be seen that the private key (s) and the public key (h) are updated at all times.
 図4Cは、暗号文の一例である比例制御の暗号化制御パラメータEnc(Kp)のゲインであるが、この値も大きく変化しており、毎ステップで更新されていることが分かる。図4Cの暗号化制御パラメータEnc(Kp)の激しい変動は、暗号文Cも同様に激しく変動していることを意味する。なお、図4Cでは暗号文C(c1,c2)のうちのスカラー値c1(t)の変動のみを示しているが、スカラー値c2(t)も同様に変動することは言うまでもない。 FIG. 4C shows the gain of the encryption control parameter Enc(K p ) of proportional control, which is an example of a ciphertext, and it can be seen that this value also changes greatly and is updated at each step. The drastic fluctuation of the encryption control parameter Enc (K p ) in FIG. 4C means that the ciphertext C also fluctuates drastically. Although FIG. 4C shows only the variation of the scalar value c 1 (t) of the ciphertext C(c 1 , c 2 ), it goes without saying that the scalar value c 2 (t) also varies. ..
 このように、図4Cに示すように暗号文Cは激しく変化しているが、図3Aから制御シミュレーションが正しく行われているといえるから、対応する平文は一定であることが分かる。すなわち、平文が一定の値であっても、公開鍵(h)が時々刻々と更新されるために、暗号文Cの値が時々刻々と変化するので、悪意ある第三者に対して平文を確実に隠蔽することに成功している。図4に示すように、暗号文C、秘密鍵(s)、および公開鍵(h)はすべて同じように激しく変化していることから、数10式の秘密鍵(s)、公開鍵(h)、暗号文C(c1(t),c2(t))の更新式は有効に機能していることが分かる。 Thus, as shown in FIG. 4C, the ciphertext C changes drastically, but from FIG. 3A it can be said that the control simulation is being performed correctly, so it can be seen that the corresponding plaintext is constant. That is, even if the plaintext has a constant value, the value of the ciphertext C changes from moment to moment because the public key (h) is updated from moment to moment. It has succeeded in concealing it reliably. As shown in FIG. 4, since the ciphertext C, the private key (s), and the public key (h) are all changing drastically in the same way, the private key (s) and the public key (h) of several tens of expressions are changed. ), It can be seen that the update formula of the ciphertext C (c 1 (t), c 2 (t)) is functioning effectively.
 図5A、図5Bは、離散対数問題に係る処理時間を示している。図5Aは、既に発明者らの論文(非特許文献2)で発表した計算結果を元に、鍵長設計問題の数値例を示したものである。
 仮に、ある制御系の耐用年数Lu=100(sec)、サンプリング周期Ts=1.0×10-2(sec)とする。
そして、鍵長32~96(bit)で数10式の更新式を用いて暗号化シミュレーションを1000ステップ計算し、各ステップで用いた公開鍵と秘密鍵を記録した。図5Aは、Mac book air(登録商標(登録番号第5204574号):CPU:1.6GHz,メモリ8GB)で指数計算法アルゴリズムを用いて、記録した公開鍵(h)から秘密鍵(s)を求める離散対数問題を1000回計算した処理時間(μsec)を示している。図5Bは、攻撃に必要な処理時間の最大値、平均値、最小値を示したものである。
5A and 5B show the processing time related to the discrete logarithm problem. FIG. 5A shows a numerical example of the key length design problem based on the calculation result already published in the inventors' paper (Non-Patent Document 2).
Assume that the useful life of a control system L u = 100 (sec), the sampling period T s = 1.0 × 10 -2 ( sec).
Then, the encryption simulation was calculated for 1000 steps using the update formula of several 10 with the key length of 32 to 96 (bit), and the public key and the secret key used in each step were recorded. FIG. 5A is a Mac book air (registered trademark (registration number No. 5205574): CPU: 1.6 GHz, memory 8 GB) using an exponential calculation algorithm to obtain a secret key (s) from the recorded public key (h). The processing time (μsec) obtained by calculating the discrete logarithm problem 1000 times is shown. FIG. 5B shows the maximum value, the average value, and the minimum value of the processing time required for the attack.
 図5Bからわかるように、静的な暗号制御系の場合は、制御系の耐用年数Luが離散対数問題を解くのに要する予想時間Lpより小さくなる(Lu<Lp{v,c}となる)鍵長は96(bit)である。一方、数10式の更新式を用いる動的な暗号制御系の場合、サンプリング周期Tsが離散対数問題を解くのに要する予想時間Lpより小さくなる(Ts<Lp{v,c})鍵長は48(bit)である。この図5Bから、動的な暗号系にすると、静的な暗号系に比べてより短い鍵長で全入力信号の特定を妨げられることが分かる。しかし、仮に、48(bit)の暗号鍵を用いた場合は、攻撃者はサンプリング周期Ts以内にリアルタイム解読を成功させる場合がありうる。そのような懸念がある場合には、図5Bから、80(bit)以上の鍵長を設定すればよいことも理解できる。 As can be seen from FIG. 5B, in the case of the static cryptographic control system, the useful life L u of the control system is smaller than the expected time L p required to solve the discrete logarithm problem (L u <L p {v,c The key length is 96 (bit). On the other hand, in the case of a dynamic cryptographic control system using several tens of update equations, the sampling period T s is smaller than the expected time L p required to solve the discrete logarithm problem (T s <L p {v, c}). ) The key length is 48 (bit). From FIG. 5B, it can be seen that the dynamic encryption system prevents the identification of all input signals with a shorter key length than the static encryption system. However, if a 48 (bit) encryption key is used, an attacker may succeed in real-time decryption within the sampling cycle T s . If there is such a concern, it can be understood from FIG. 5B that a key length of 80 (bit) or more should be set.
 <暗号化制御システムの実施形態例>
 以下、本発明の暗号化制御システムの秘密鍵、公開鍵および暗号文の更新則を用いたプラント制御システムの具体的な実施形態例について説明する。
<Example of Embodiment of encryption control system>
Hereinafter, specific embodiments of the plant control system using the private key, public key, and ciphertext update rule of the encryption control system of the present invention will be described.
 図6は、本発明の暗号化制御を実施する実施形態に係る暗号化制御システム101の全体構成を示す概略図である。暗号化制御システム101は、入力装置102と、プラント側制御装置103と、コントローラ104と、日時情報源装置105を備える。
 コントローラ104は、入力装置102と第1制御ネットワークL108で接続され、プラント側制御装置103と第2制御ネットワークL109で接続されている。
 プラント側制御装置103には、制御対象106とセンサ107が接続されている。プラント側制御装置103は、後述するように、制御対象106に制御信号を与え、センサ107から制御対象106の状態情報である観測値を取得する。
FIG. 6 is a schematic view showing the overall configuration of the encryption control system 101 according to the embodiment of the encryption control of the present invention. 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 controller 104 is connected to the input device 102 by the first control network L108, and is connected to the plant side control device 103 by the second control network L109.
A controlled object 106 and a sensor 107 are connected to the plant-side control device 103. As will be described later, the plant-side control device 103 gives a control signal to the control target 106 and acquires an observation value, which is state information of the control target 106, from the sensor 107.
 また、入力装置102、コントローラ104、プラント側制御装置103はそれぞれ情報ネットワークL110を通じて、日時情報源装置105に接続される。日時情報源装置105は、ネットワークOSとNTPサーバ(Network Time Protocol)およびNTPクライアントが稼働するパソコンやサーバである。第1制御ネットワークL108および第2制御ネットワークL109はデータ転送の確実性を重視したネットワークであり、様々な種類のネットワークインターフェースが利用可能である。一方、情報ネットワークL110は制御ネットワーク程の確実性は要求されない。 Further, the input device 102, the controller 104, and the plant side control device 103 are each 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 are operated. The first control network L108 and the second control network L109 are networks that emphasize the certainty of data transfer, and various types of network interfaces can be used. On the other hand, the information network L110 is not required to be as reliable as the control network.
 入力装置102、コントローラ104およびプラント側制御装置103は、プログラマブルコントローラと呼ばれる装置である。プログラマブルコントローラは、スロットを多数有するケース状のマウントベース111を備え、このマウントベース111のスロットに収納される大きさのモジュールが必要な機能に応じて収納される。
 マウントベース111にはモジュール同士を接続するインターフェースが内蔵されており、モジュールがスロットに挿入されると、モジュール間のデータの送受信や適切な電源の供給が確立される。
The input device 102, the controller 104, and the plant-side controller 103 are devices called programmable controllers. The programmable controller includes a case-shaped mount base 111 having a large number of slots, and a module having a size accommodated in the slots of the mount base 111 is accommodated according to a required function.
The mount base 111 has a built-in interface for connecting the modules to each other, and when the modules are inserted into the slots, transmission/reception of data between the modules and supply of appropriate power are established.
 入力装置102のマウントベース111aには、CPUモジュール112と、情報ネットワークモジュール113と、第1制御ネットワークモジュール114aが装着されている。コントローラ104のマウントベース111bには、CPUモジュール112と、情報ネットワークモジュール113と、第1制御ネットワークモジュール114bと、第2制御ネットワークモジュール115が装着されている。
 プラント側制御装置103のマウントベース111cには、CPUモジュール112と、情報ネットワークモジュール113と、第2制御ネットワークモジュール115と、入出力モジュール116が装着されている。
The CPU module 112, the information network module 113, and the first control network module 114a are mounted on the 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 the 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 the mount base 111c of the plant-side control device 103.
 入力装置102の第1制御ネットワークモジュール114aは送信側であり、コントローラ104の第1制御ネットワークモジュール114bは受信側である。コントローラ104とプラント側制御装置103の第2制御ネットワークモジュール115は、送信側端子と受信側端子が相互に接続されている。 The first control network module 114a of the input device 102 is the transmitting side, and the first control network module 114b of the controller 104 is the receiving side. In the controller 104 and the second control network module 115 of the plant-side control device 103, the transmission side terminal and the reception side terminal are mutually connected.
 [入力装置102のハードウェア構成]
 図7は、入力装置102のハードウェア構成を示すブロック図である。
 入力装置102は、マウントベース111に設けられているモジュールバス201に接続されているCPUモジュール112、情報ネットワークモジュール113、第1制御ネットワークモジュール114aを備える。CPUモジュール112は、内部バス206に接続されているCPU202、ROM203、RAM204、および日時情報を生成するRTC(Real Time Clock)205を備える。内部バス206はモジュールバス201に接続されている。CPUモジュール112のROM203には、暗号化制御システム101における制御演算処理および暗号化処理等を遂行するためのプログラムが格納されている。
[Hardware configuration of input device 102]
FIG. 7 is a block diagram showing the hardware configuration of the input device 102.
The input device 102 includes a CPU module 112, an information network module 113, and a first control network module 114a connected to a module bus 201 provided on the mount base 111. 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 calculation processing, encryption processing, and the like in the encryption control system 101.
 情報ネットワークモジュール113は、内部バス206に接続されているCPU202、ROM203、RAM204、およびNIC(Network Interface Card)207を備える。内部バス206はモジュールバス201に接続されている。情報ネットワークモジュール113のROM203には、ネットワークOSと、NTPサーバプログラムおよびNTPクライアントプログラム等が格納されている。第1制御ネットワークモジュール114aは、送信部208がモジュールバス201に接続されている。 The information network module 113 includes a CPU 202, a ROM 203, a RAM 204, and a NIC (Network Interface Card) 207 connected to the 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 of the first control network module 114a is connected to the module bus 201.
[コントローラ104のハードウェア構成]
 図8は、コントローラ104のハードウェア構成を示すブロック図である。コントローラ104は、CPUモジュール112、情報ネットワークモジュール113、第1制御ネットワークモジュール114b、および第2制御ネットワークモジュール115を備える。これらのモジュールは、マウントベース111に設けられているモジュールバス201に接続されている。CPUモジュール112と情報ネットワークモジュール113は、入力装置102のものと同じなので説明は省略する。
[Hardware configuration of controller 104]
FIG. 8 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. These modules are connected to the module bus 201 provided on 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 thereof will be omitted.
 第1制御ネットワークモジュール114bは、モジュールバス201に接続されている受信部309を備える。第2制御ネットワークモジュール115は、内部バス206に接続されている送信部208と受信部309を備える。内部バス206はモジュールバス201に接続されている。 The first control network module 114b includes a receiving unit 309 connected to the module bus 201. The second control network module 115 includes a transmitter 208 and a receiver 309 connected to the internal bus 206. The internal bus 206 is connected to the module bus 201.
[プラント側制御装置103のハードウェア構成]
 図9は、プラント側制御装置103のハードウェア構成を示すブロック図である。プラント側制御装置103は、CPUモジュール112、情報ネットワークモジュール113、第2制御ネットワークモジュール115、および入出力モジュール116を備える。これらのモジュールは、マウントベース111(図1参照)に設けられているモジュールバス201に接続されている。CPUモジュール112、情報ネットワークモジュール113、第2制御ネットワークモジュール115は、コントローラ104のものと同じなので説明は割愛する。
[Hardware configuration of plant-side controller 103]
FIG. 9 is a block diagram showing a hardware configuration of the plant-side 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. These modules are connected to the module bus 201 provided on the mount base 111 (see FIG. 1). 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 thereof will be omitted.
 入出力モジュール116は、センサ107が接続されるA/D変換器410と、制御対象106が接続されるD/A変換器411を備える。内部バス206はモジュールバス201に接続されている。なお、この入出力モジュール116はあくまで一例であり、接続される制御対象106やセンサ107等に応じて、A/D変換器410およびD/A変換器411に接続される信号処理回路等が必要になる場合がある。 The input / output module 116 includes an A / D converter 410 to which the sensor 107 is connected, and a D / A converter 411 to which the controlled object 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 is required depending on the connected control target 106, sensor 107, or the like. May become.
 なお、ここではハードウェアの構成図を省略しているが、図6に示す日時情報源装置105も、サーバ装置やパソコン等で構成されるもので、バスに接続されるCPU、ROM、RAM、不揮発性ストレージ、RTCおよびNICを備えていることは言うまでもない。 Although the hardware configuration diagram is omitted here, the date and time information source device 105 shown in FIG. 6 is also composed of a server device, a personal computer, and the like, and the CPU, ROM, RAM, and the like connected to the bus. It goes without saying that it has a non-volatile storage, an RTC and a NIC.
<本発明の実施形態例の暗号化制御システムのソフトウェア機能>
 図10は、暗号化制御システム101の、制御ネットワークにおけるソフトウェア機能を示すブロック図である。
<Software Function of Encryption Control System of Embodiment of the Present Invention>
FIG. 10 is a block diagram showing software functions in the control network of the encryption control system 101.
[入力装置102のソフトウェア機能]
 入力装置102は、目標値入力部501、入出力制御部502、暗号化処理部503、記憶部504、公開鍵更新部505および日時情報生成部506を備える。
[Software function of input device 102]
The input device 102 includes a target value input unit 501, an input/output control unit 502, an encryption processing unit 503, a storage unit 504, a public key update unit 505, and a date/time information generation unit 506.
 目標値入力部501は、暗号化される前の目標値rを入出力制御部502に与える。入出力制御部502は、目標値入力部501から入力された目標値rを暗号化処理部503に送る。暗号化処理部503は、公開鍵更新部505で更新された公開鍵kpを用いて目標値rを暗号化する。そして、暗号化処理部503は、暗号化された目標値Enc(r)を入出力制御部502に送り、入出力制御部502は、この暗号化目標値Enc(r)をコントローラ104へ送信する。 The target value input unit 501 gives the input / output control unit 502 the target value r before being encrypted. The input / output control unit 502 sends the target value r input from the target value input unit 501 to the encryption processing unit 503. The encryption processing unit 503 encrypts the target value r using the public key k p updated by the public key update unit 505. Then, the encryption processing unit 503 sends the encrypted target value Enc(r) to the input/output control unit 502, and the input/output control unit 502 sends the encrypted target value Enc(r) to the controller 104. ..
 ここで、記憶部504には、公開鍵kp(t)を更新するための初期値となる公開鍵kp(0)が保存されている。公開鍵kpのパラメータはkp:=(G,q,g,h)であるが、この中で時刻(ステップ)で更新されるのはh(t)だけであるから、時刻tの初期値となるのは公開鍵パラメータh(0)だけである。また、公開鍵更新部505は、乱数生成器505aを内蔵しており、この乱数生成器505aは、公開鍵h(t)の更新に必要な乱数w(t)を発生する。そして公開鍵更新部505は、記憶部504からの初期値の公開鍵h(0)と乱数生成器505aからの乱数w(0)との乗算剰余処理を行うことで、数10式の第2式で示される更新則に従って更新された公開鍵h(1)を出力する。 Here, the storage unit 504 stores the public key k p (0) that is an initial value for updating the public key k p (t). The parameter of the public key k p is k p := (G,q,g,h), but only h(t) is updated at this time (step), so the initial value at time t The only value is the public key parameter h(0). Further, the public key update unit 505 has a built-in random number generator 505a, and the random number generator 505a generates a random number w (t) necessary for updating the public key h (t). Then, the public key update unit 505 performs the multiplication remainder processing of the public key h (0) of the initial value from the storage unit 504 and the random number w (0) from the random number generator 505a, so that the second equation of several tens of equations can be used. Output the public key h (1) updated according to the update rule shown in the equation.
 更新された新しい公開鍵h(1)は、次のステップのための初期値として、記憶部504に記憶される。公開鍵更新部505は、この処理を順次繰り返すことにより、時刻t(ステップt)における公開鍵h(t)を、次のステップ(時刻(t+1))の公開鍵h(t+1)に更新する。
 なお、公開鍵更新部505は、図2Aの公開鍵更新部53、乱数生成器505aは、図2Aの乱数生成器51に相当する。記憶部504には、図2Aの記憶部50に記憶される要素のうち、p,q,g,h(0)が格納されており、時刻tが進むに連れてh(t)が更新される。
The updated new public key h (1) is stored in the storage unit 504 as an initial value for the next step. By sequentially repeating this process, the public key update unit 505 changes the public key h (t) at time t (step t) to the public key h (t + 1) at the next step (time (t + 1)). To update.
The public key updating unit 505 corresponds to the public key updating unit 53 in FIG. 2A, and the random number generator 505a corresponds to the random number generator 51 in FIG. 2A. Among the elements stored in the storage unit 50 of FIG. 2A, p, q, g, h (0) are stored in the storage unit 504, and h (t) is updated as the time t advances. It
 乱数発生器505aで発生される乱数v(t)、w(t)は公開鍵更新部505の演算に使われる乱数であるが、後述するコントローラ104の暗号文更新部510の乱数生成器510aおよびプラント側制御装置103の暗号鍵更新部513の乱数生成器513aと同期がとれていなければならない。この3つの乱数生成器505a、510a、513aは、日時情報生成部506、511、519からの時刻情報に基づいて同期され、同時刻t(ステップt)では同じ乱数を生成するように制御される。例えば、乱数生成器505a、510a、513aは、複数の乱数からなる同じ乱数リストを有し、同時刻tでは、乱数生成器505a、510a、513aが乱数リストの同じレコード番号のレコードを読み込むことで、それぞれ同じ乱数v(t)、w(t)が生成されるように構成される。 The random numbers v (t) and w (t) generated by the random number generator 505a are random numbers used in the calculation of the public key update unit 505, but the random number generator 510a of the ciphertext update unit 510 of the controller 104 described later and It must be synchronized with the random number generator 513a of the encryption key updating unit 513 of the plant-side control device 103. The three random number generators 505a, 510a, and 513a are synchronized based on the time information from the date and time information generation units 506, 511, and 319, and are controlled to generate the same random number at the same time t (step t). .. For example, the random number generators 505a, 510a, and 513a have the same random number list composed of a plurality of random numbers, and at the same time t, the random number generators 505a, 510a, and 513a read the records having the same record number in the random number list. , And the same random numbers v(t) and w(t) are generated, respectively.
 そして、公開鍵更新部505は、ステップ(t+1)で更新した公開鍵h(t+1)を暗号化処理部503に送る。暗号化処理部503は、公開鍵更新部505で更新された新たな公開鍵h(t+1)により、目標値rを暗号化し、暗号化された目標値Enc(r)を入出力制御部502に送る。 Then, the public key update unit 505 sends the public key h (t + 1) updated in step (t + 1) to the encryption processing unit 503. The encryption processing unit 503 encrypts the target value r with the new public key h(t+1) updated by the public key updating unit 505, and outputs the encrypted target value Enc(r) to the input/output control unit. Send to 502.
<コントローラ104のソフトウェア機能>
 コントローラ104は、入出力制御部507、乗算部508、記憶部509、暗号文更新部510、日時情報生成部511、およびログテーブル520を備える。さらに、図8のハードウェア構成で説明した送信部208と受信部309を備える。
<Software Function of Controller 104>
The controller 104 includes an input/output control unit 507, a multiplication unit 508, a storage unit 509, a ciphertext update unit 510, a date/time information generation unit 511, and a log table 520. Further, the transmission unit 208 and the reception unit 309 described in the hardware configuration of FIG. 8 are provided.
 入力装置102からコントローラ104に送信される暗号化目標値Enc(r)は、コントローラ104の入出力制御部507に入力される。入出力制御部507は、この暗号化目標値Enc(r)を、送信部208を介してそのままプラント側制御装置103へ送信する。また、入出力制御部507は、受信部309を介してプラント側制御装置103から暗号化入力ベクトルEnc(ζ)を受け取り、この暗号化入力ベクトルEnc(ζ)を乗算部508に送る。なお、入出力制御部507から出力される情報と入出力制御部507に入力される情報は、全てログテーブル520に保存される。 The encryption target value Enc (r) transmitted from the input device 102 to the controller 104 is input to the input / output control unit 507 of the controller 104. The input / output control unit 507 transmits the encryption target value Enc (r) to the plant side control device 103 as it is via the transmission unit 208. Further, the input / output control unit 507 receives the encrypted input vector Enc (ζ) from the plant side control device 103 via the receiving unit 309, and sends the encrypted input vector Enc (ζ) to the multiplication unit 508. The information output from the input / output control unit 507 and the information input to the input / output control unit 507 are all stored in the log table 520.
 コントローラ104の暗号文更新部510は、記憶部509に記憶されている第1~第3の暗号化制御パラメータEnc(Kp)、Enc(Ki)、Enc(Kd)(以下、まとめて「暗号化制御パラメータEnc(Φ)またはEncΦ」とする)の更新を行う。すなわち、暗号文更新部510は、プラント側制御装置103から受信部309を介して受信したデータに含まれている現在日時情報に基づき、記憶部509に記録されている暗号化制御パラメータEnc(Φ)の初期値EncΦ(0)を読み取り、暗号化制御パラメータEncΦ(1)に更新して乗算部508に送る。なお、更新した暗号化制御パラメータEncΦ(1)は、記憶部509に保存される。このように、暗号文更新部510は暗号化制御パラメータEncΦ(t)の更新を繰り返し、数10式の第3式、第4式に従って次の時刻(t+1)(ステップ(t+1))の暗号化制御パラメータEncΦ(t+1)を生成し、乗算器508に送られる。 The ciphertext update unit 510 of the controller 104 uses the first to third encryption control parameters Enc (K p ), Enc (K i ), and Enc (K d ) stored in the storage unit 509 (hereinafter collectively). Update the "encryption control parameter Enc (Φ) or EncΦ"). That is, the ciphertext update unit 510 has the encryption control parameter Enc (Φ) recorded in the storage unit 509 based on the current date and time information included in the data received from the plant side control device 103 via the reception unit 309. ) Is read, updated to the encryption control parameter EncΦ (1), and sent to the multiplication unit 508. The updated encryption control parameter EncΦ (1) is stored in the storage unit 509. In this way, the ciphertext update unit 510 repeatedly updates the encryption control parameter EncΦ (t), and the next time (t + 1) (step (t + 1)) according to the third and fourth equations of several tens of equations. ) Cryptographic control parameter EncΦ (t + 1) is generated and sent to the multiplier 508.
 なお、上述したように、暗号文更新部510は、乱数生成器510aを内蔵しており、この乱数生成器510aからも入力装置102の乱数生成器505aと同じ時刻(ステップ)で同じ乱数が発生される。
 暗号化更新部510において、暗号化制御パラメータEncΦ(t)の更新が終了した後は、更新された暗号化制御パラメータEncΦ(t+1)も、次の更新のために記憶部509に保存される。このとき、日時情報生成部511からの更新時の日時情報も暗号化制御パラメータEncΦ(t+1)とともに、記憶部509に保存される。
As described above, the ciphertext update unit 510 has a built-in random number generator 510a, and the same random number is generated from this random number generator 510a at the same time (step) as the random number generator 505a of the input device 102. To be done.
After the encryption control unit EncΦ(t) has been updated in the encryption update unit 510, the updated encryption control parameter EncΦ(t+1) is also stored in the storage unit 509 for the next update. It At this time, the updated date and time information from the date and time information generation unit 511 is also stored in the storage unit 509 together with the encryption control parameter EncΦ(t+1).
 暗号文更新部510は、図2Aの暗号文更新部54および暗号文更新部55に加え、公開鍵更新部53の機能を包含している。数10式にて示されるように、暗号文c2(t)の更新には公開鍵h(t)が必要だからである。乱数生成器510aは、図2Aの乱数生成器51に相当する。記憶部509には、図2Aの記憶部50に記憶される要素のうち、p,q,g,h(0), EncΦ(0)が格納されており、時刻tが進むに連れてh(t)及びEncΦ(t)が更新される。 The ciphertext updating unit 510 includes the functions of the public key updating unit 53 in addition to the ciphertext updating unit 54 and the ciphertext updating unit 55 of FIG. 2A. This is because the public key h (t) is required to update the ciphertext c 2 (t) as shown by the equation of several tens. The random number generator 510a corresponds to the random number generator 51 of FIG. 2A. Of the elements stored in the storage unit 50 of FIG. 2A, p, q, g, h(0), EncΦ(0) are stored in the storage unit 509, and as the time t advances, h( t) and EncΦ(t) are updated.
 乗算部508は、入出力制御部507から送られた暗号化入力ベクトルEnc(ζ)と暗号文更新部510からの暗号化制御パラメータEncΦ(t)との乗算処理を行い、暗号化出力行列Enc(Ψ)を算出する。この暗号化出力行列Enc(Ψ)は、図1で説明したように、暗号化制御信号Enc(u)および更新された暗号化状態ベクトルEnc(x)を含むものであるから、暗号化出力行列Enc(Ψ)を暗号化制御入力Enc(u)と読み替えて説明することもある。 The multiplication unit 508 performs a multiplication process between the encrypted input vector Enc (ζ) sent from the input / output control unit 507 and the encryption control parameter EncΦ (t) from the ciphertext update unit 510, and performs the encryption output matrix Enc. Calculate (Ψ). Since this encrypted output matrix Enc (Ψ) includes the encryption control signal Enc (u) and the updated encryption state vector Enc (x) as described in FIG. 1, the encrypted output matrix Enc (Ψ) Ψ) may be read as the encryption control input Enc (u) for explanation.
 乗算部508の乗算処理によって算出された暗号化出力行列Enc(Ψ)は、入出力制御部507と送信部208を経由して、プラント側制御装置103に送られる。また、暗号化出力行列Enc(Ψ)はモニタ用として入力装置102にもフィードバックされる。
 なお、コントローラ104では、コントローラ(制御器)104の状態ベクトルxも暗号化されて、暗号化出力行列Enc(Ψ)に含まれる暗号化状態ベクトルEnc(x)として、送信部208経由でプラント側制御装置103に送られる。
The encrypted output matrix Enc(Ψ) calculated by the multiplication process of the multiplication unit 508 is sent to the plant-side control device 103 via the input/output control unit 507 and the transmission unit 208. Further, the encrypted output matrix Enc (Ψ) is fed back to the input device 102 for monitoring.
In the controller 104, the state vector x of the controller (controller) 104 is also encrypted, and the encrypted state vector Enc(x) included in the encrypted output matrix Enc(Ψ) is transmitted to the plant side via the transmission unit 208. It is sent to the control device 103.
 上述したように、暗号化された制御器への入力ベクトルEnc(ζ)は、時刻tにおける制御器の状態を示す制御信号x(t)と制御器に対する入力ベクトルuc(t)をまとめたものである(数4式参照)。暗号文更新部510で記憶部509から読み出される暗号化制御器のパラメータEnc(Φ)と暗号化制御器の入力ベクトルEnc(ζ)を演算することで、暗号化制御器の出力行列Enc(Ψ)が出力される。出力行列Enc(Ψ)に含まれる暗号化状態ベクトルEnc(x)は、プラント側制御装置103の復号処理部512で復号されて状態ベクトルxとして、制御用演算処理部514を通じて暗号化処理部518に送られる。 As described above, the encrypted input vector Enc(ζ) to the controller is the control signal x(t) indicating the state of the controller at time t and the input vector u c (t) to the controller. (See Equation 4). The output matrix Enc (Ψ) of the encryption controller is calculated by calculating the parameter Enc (Φ) of the encryption controller and the input vector Enc (ζ) of the encryption controller read from the storage unit 509 by the ciphertext update unit 510. ) Is output. The encryption state vector Enc (x) included in the output matrix Enc (Ψ) is decrypted by the decoding processing unit 512 of the plant-side control device 103 and used as the state vector x as the state vector x through the encryption processing unit 518 through the control arithmetic processing unit 514. Sent to.
 現在日時情報を出力する日時情報生成部511は、プラント側制御装置103とコントローラ104との同期運転開始時点の日時情報(以下「始動日時情報」)を出力するとともに、暗号文更新部510に対する起動および停止制御を行う。
 また、日時情報生成部511が生成する現在日時情報は、乗算部508から入出力制御部507および送信部208を通じてプラント側制御装置103に送信される暗号化制御入力Enc(u)のデータフレームにエンコード日時情報として格納される。
The date / time information generation unit 511 that outputs the current date / time information outputs the date / time information (hereinafter referred to as “start date / time information”) at the start of synchronous operation between the plant-side controller 103 and the controller 104, and starts the ciphertext update unit 510. And stop control.
Further, the current date and time information generated by the date and time information generation unit 511 is sent to the data frame of the encryption control input Enc (u) transmitted from the multiplication unit 508 to the plant side control device 103 through the input / output control unit 507 and the transmission unit 208. It is stored as encoded date and time information.
[プラント側制御装置103のソフトウェア機能]
 プラント側制御装置103は、復号処理部512、暗号鍵更新部513、制御用演算処理部514、制御処理部515、信号変換処理部516、目標誤差演算処理部517、暗号化処理部518、日時情報生成部519および記憶部521を備える。
[Software function of plant-side control device 103]
The plant-side control device 103 includes a decryption processing unit 512, an encryption key update unit 513, a control arithmetic processing unit 514, a control processing unit 515, a signal conversion processing unit 516, a target error arithmetic processing unit 517, an encryption processing unit 518, and a date and time. An information generation unit 519 and a storage unit 521 are provided.
 コントローラ104から送信部208を介してプラント側制御装置103に送信される暗号化目標値Enc(r)および暗号化出力行列Enc(Ψ)に含まれる暗号化制御入力Enc(u)は、プラント側制御装置103の受信部309を通じて復号処理部512に入力される。
 復号処理部512は、暗号化目標値Enc(r)および暗号化制御入力Enc(u)を、暗号鍵更新部513で更新処理された秘密鍵s(t+1)を用いて復号する。復号処理部512で復号処理された暗号化目標値Enc(r)および暗号化制御入力Enc(u)は、目標値rおよび制御入力uとなって制御用演算処理部514に送られ、制御用演算処理部514から目標値rおよび制御入力uが出力される。そして、制御入力uは制御処理部515に送られ、目標値rは目標誤差演算部517に送られる。また、制御用演算処理部514は、復号処理部512で復号されたコントローラ104の状態ベクトルxを出力し、この状態ベクトルxを暗号化処理部518に送る。
The encryption control input Enc (u) included in the encryption target value Enc (r) and the encryption output matrix Enc (Ψ) transmitted from the controller 104 to the plant side controller 103 via the transmission unit 208 is on the plant side. It is input to the decoding processing unit 512 through the receiving unit 309 of the control device 103.
The decryption processing unit 512 decrypts the encryption target value Enc(r) and the encryption control input Enc(u) using the secret key s(t+1) updated by the encryption key updating unit 513. The encrypted target value Enc(r) and the encrypted control input Enc(u) decrypted by the decryption processing unit 512 become the target value r and the control input u and are sent to the control arithmetic processing unit 514 for control. The target value r and the control input u are output from the arithmetic processing unit 514. Then, the control input u is sent to the control processing unit 515, and the target value r is sent to the target error calculation unit 517. Further, the control arithmetic processing unit 514 outputs the state vector x of the controller 104 decrypted by the decryption processing unit 512, and sends this state vector x to the encryption processing unit 518.
 ここで、暗号鍵更新部513の鍵更新処理について説明する。暗号鍵更新部513には、乱数生成器513aが内蔵されている。この乱数生成器513aも、入力装置102の乱数生成器505aおよびコントローラ104の乱数生成器510aと同期して、同時刻に同じ乱数v(t)、w(t)を生成する。また、記憶部521には、更新前の公開鍵h(t)、秘密鍵s(t)の初期値が記憶されている。 Here, the key update process of the encryption key update unit 513 will be described. The encryption key updating unit 513 includes a random number generator 513a. The random number generator 513a also generates the same random numbers v (t) and w (t) at the same time in synchronization with the random number generator 505a of the input device 102 and the random number generator 510a of the controller 104. Further, the storage unit 521 stores the initial values of the public key h (t) and the private key s (t) before the update.
 暗号鍵更新部513は、記憶部521に記憶されている更新前の秘密鍵s(t)を読み出し、この秘密鍵s(t)と乱数生成器513aから読み出した乱数w(t)とを、数10式の第1式に示す更新式により、乗算剰余処理を行って、更新後の秘密鍵s(t+1)を生成する。 そして、この更新された秘密鍵s(t+1)を復号処理部512に送る。復号処理部512は、上述したように、この秘密鍵s(t+1)を使って、暗号化目標値Enc(r)および暗号化制御入力Enc(u)の復号処理を行う。 The encryption key update unit 513 reads the secret key s (t) before the update stored in the storage unit 521, and reads the secret key s (t) and the random number w (t) read from the random number generator 513a. The private key s (t + 1) after the update is generated by performing the multiplication remainder processing by the update equation shown in the first equation of the equation of several tens. Then, this updated private key s (t + 1) is sent to the decryption processing unit 512. As described above, the decryption processing unit 512 uses the secret key s(t+1) to decrypt the encryption target value Enc(r) and the encryption control input Enc(u).
 また、暗号鍵更新部513は、記憶部521に記憶されている更新前の公開鍵h(t)を読み出し、この公開鍵h(t)と乱数生成器513aから読み出した乱数w(t)とを、数10式の第2式に示す更新式により、乗算剰余処理を行って、更新後の公開鍵h(t+1)を生成する。そして、この更新された公開鍵s(t+1)を暗号化処理部518に送る。 Further, the encryption key update unit 513 reads the public key h (t) before the update stored in the storage unit 521, and the public key h (t) and the random number w (t) read from the random number generator 513a. Is multiplied by the update formula shown in the second formula of the equation tens, and the public key h (t + 1) after the update is generated. Then, the updated public key s (t + 1) is sent to the encryption processing unit 518.
 制御処理部515は、制御用演算処理部514から入力された制御入力uに基づいて制御信号を生成し、この制御信号により制御対象106を制御する。例えば、制御対象106がモータであるならば、制御処理部515は、モータに与える電圧や位相等を制御する。制御対象106が制御信号によって制御されると、制御対象106の動作状態がセンサ107により検出される。
 センサ107から出力される信号は、信号変換処理部516に送られ、観測値yに変換される。そして、観測値yが目標誤差演算処理部517に送られる。目標誤差演算処理部517では、制御用演算処理部514からの目標値rと信号変換処理部516からの観測値yとの差分がとられ、目標誤差εが出力される。PID制御器の場合、制御器への入力全般を示すuc(t)と目標誤差ε(t)が等しいので、uc=εとして、制御器への目標誤差ε(t)をフィードバックすることにより、暗号化を行っている。
The control processing unit 515 generates a control signal based on the control input u input from the control arithmetic processing unit 514, and controls the control target 106 by this control signal. For example, if the control target 106 is a motor, the control processing unit 515 controls the voltage, phase, etc. applied to the motor. When the control target 106 is controlled by the control signal, the operating state of the control target 106 is detected by the sensor 107.
The signal output from the sensor 107 is sent to the signal conversion processing unit 516 and converted into the observed value y. Then, the observed value y is sent to the target error calculation processing section 517. The target error calculation processing unit 517 calculates the difference between the target value r from the control calculation processing unit 514 and the observed value y from the signal conversion processing unit 516, and outputs the target error ε. In the case of a PID controller, u c (t), which indicates the overall input to the controller, is equal to the target error ε (t), so u c =ε and feed back the target error ε (t) to the controller. The encryption is performed by.
 目標誤差εは、暗号化処理部518で暗号化され、暗号化目標誤差Enc(ε)に変換される。このとき、暗号鍵更新部513で更新された時刻(t+1)の公開鍵h(t+1)が暗号化処理部518に供給され、暗号化処理部518ではこの公開鍵h(t+1)を用いて目標誤差εが暗号化される。
 暗号化処理部518で暗号化された暗号化目標誤差Enc(ε)は、送信部208を介して、コントローラ104へ送信される。また、制御用演算処理部514から出力される復号されたコントローラ104の状態ベクトルxも暗号化処理部518で暗号化され、暗号化入力ベクトルEnc(ζ)に含まれる、更新された暗号化状態ベクトルEnc(x)として、送信部208経由でコントローラ104に送られる。
The target error ε is encrypted by the encryption processing unit 518 and converted into the encryption target error Enc (ε). At this time, the public key h (t + 1) at the time (t + 1) updated by the encryption key update unit 513 is supplied to the encryption processing unit 518, and the public key h (t +) is supplied to the encryption processing unit 518. The target error ε is encrypted using 1).
The encryption target error Enc (ε) encrypted by the encryption processing unit 518 is transmitted to the controller 104 via the transmission unit 208. Further, the state vector x of the decrypted controller 104 output from the control arithmetic processing unit 514 is also encrypted by the encryption processing unit 518, and is included in the encryption input vector Enc (ζ). The vector Enc(x) is transmitted to the controller 104 via the transmission unit 208.
 なお、暗号鍵更新部513における公開鍵と秘密鍵の毎ステップの更新においては、受信部309を通じてコントローラ104から受信したデータフレームに含まれている現在日時情報および始動日時情報が利用される。記憶部521には、更新前の現在のステップにおける公開鍵h(t)および秘密鍵s(t)が記憶されている。なお、更新された秘密鍵s(t+1)と公開鍵h(t+1)は、次の更新のためのベースになる値として記憶部521に保存される。
 暗号鍵更新部513は、図2Aの秘密鍵更新部52、公開鍵更新部53、および暗号文更新部54、55の機能を包含している。乱数生成器513aは、図2Aの乱数生成器51に相当する。記憶部521には、図2Aの記憶部50に記憶される要素のうち、p,q,g,s(0),h(0),EncΦ(0)が格納されており、時刻tが進むに連れてs(t)、h(t)及びEncΦ(t)が更新される。
In updating the public key and the private key step by step in the encryption key update unit 513, the current date and time information and the start date and time information included in the data frame received from the controller 104 through the reception unit 309 are used. The storage unit 521 stores the public key h (t) and the private key s (t) in the current step before the update. The updated secret key s(t+1) and public key h(t+1) are stored in the storage unit 521 as the base values for the next update.
The cipher key updating unit 513 includes the functions of the secret key updating unit 52, the public key updating unit 53, and the ciphertext updating units 54 and 55 of FIG. 2A. The random number generator 513a corresponds to the random number generator 51 of FIG. 2A. Among the elements stored in the storage unit 50 of FIG. 2A, the storage unit 521 stores p, q, g, s (0), h (0), and EncΦ (0), and the time t advances. S (t), h (t) and EncΦ (t) are updated accordingly.
 日時情報生成部519は、現在日時情報を出力すると共に、コントローラ104の日時情報生成部511により指示されたものと同じ同期運転開始時点の日時情報(以下「始動日時情報」)を出力する。また、日時情報生成部519は、暗号鍵更新部513に対する起動および停止制御も行う。さらに、日時情報生成部519から生成される現在日時情報は、暗号化処理部518から送信される暗号化入力ベクトルEnc(ζ)に含まれる暗号化目標誤差Enc(ε)のデータフレームにエンコード日時情報として格納される。 The date and time information generation unit 519 outputs the current date and time information, and also outputs the same date and time information at the start of synchronous operation as instructed by the date and time information generation unit 511 of the controller 104 (hereinafter, "start date and time information"). The date and time information generation unit 519 also controls activation and stop of the encryption key update unit 513. Further, the current date and time information generated by the date and time information generation unit 519 is encoded in the data frame of the encryption target error Enc (ε) included in the encryption input vector Enc (ζ) transmitted from the encryption processing unit 518. Stored as information.
<本実施形態例の暗号化制御システムにおける同期運転開始処理>
 図10で説明したように、本実施形態例における暗号化制御システムは、秘密鍵s(t)、公開鍵h(t)および暗号文c1(t)、c2(t)が毎ステップで更新される動的に拡張された暗号化制御システムである。したがって、入力装置102、コントローラ104およびプラント側制御装置103を同期して運転させることが極めて重要になる。このため、入力装置102、コントローラ104およびプラント側制御装置103には個別に日時情報生成部506、511、519が設けられている。
<Synchronous operation start processing in the encryption control system of the present embodiment example>
As described with reference to FIG. 10, in the encryption control system in the present embodiment, the private key s (t), the public key h (t), and the ciphertexts c 1 (t) and c 2 (t) are used in each step. It is a dynamically expanded cryptographic control system that is updated. Therefore, it is extremely important to operate the input device 102, the controller 104, and the plant-side control device 103 in synchronization. Therefore, the input device 102, the controller 104, and the plant-side control device 103 are individually provided with date and time information generation units 506, 511, and 519.
 図11は、入力装置102の日時情報生成部506、プラント側制御装置103の日時情報生成部519およびコントローラ104の日時情報生成部511の同期運転開始処理の流れを示すフローチャートである。
 図11では、コントローラ104の日時情報生成部511をマスターとし、プラント側制御装置103の日時情報生成部519および入力装置102の日時情報生成部506はスレーブとして以下説明する。もちろん、コントローラ104の日時情報生成部511のかわりに、入力装置102やプラント側制御装置103の日時情報生成部をマスターにしてもよいことは当然である。
FIG. 11 is a flowchart showing the flow of synchronous operation start processing of the date / time information generation unit 506 of the input device 102, the date / time information generation unit 519 of the plant side control device 103, and the date / time information generation unit 511 of the controller 104.
In FIG. 11, the date/time information generation unit 511 of the controller 104 serves as a master, and the date/time information generation unit 519 of the plant-side control device 103 and the date/time information generation unit 506 of the input device 102 serve as slaves. Of course, instead of the date/time information generation unit 511 of the controller 104, the date/time information generation unit of the input device 102 or the plant-side control device 103 may be the master.
 処理を開始すると(S11)、コントローラ104の日時情報生成部511は、自身の日時情報が、図6に示す日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されているか否かを確認する(S12)。ここで、十分小さい誤差とは、プラントからの情報をセンシングして観測値yを得る周期に比べて十分に小さい状態に較正されていることをいう。後述するステップS13、S14も同様である。 When the processing is started (S11), the date/time information generating unit 511 of the controller 104 determines whether or not the date/time information of itself is calibrated with a sufficiently small error from the date/time information output by the date/time information source device 105 shown in FIG. Is confirmed (S12). Here, the sufficiently small error means that the error is calibrated to a state sufficiently smaller than the period in which the information from the plant is sensed to obtain the observed value y. The same applies to steps S13 and S14 described later.
 コントローラ104の日時情報生成部511自身の日時情報が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されていることが確認された場合には(S12のYES)、次にコントローラ104の日時情報生成部511は、入力装置102に対し、入力装置102の日時情報生成部506が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されているか否かを問い合わせて確認する(S13)。 When it is confirmed that the date and time information of the date and time information generation unit 511 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 S12), then The date/time information generation unit 511 of the controller 104 determines whether or not the date/time information generation unit 506 of the input device 102 is calibrated to the input device 102 with a sufficiently small error from the date/time information output by the date/time information source device 105. Inquire and confirm (S13).
 入力装置102の日時情報生成部506の日時情報が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されていることが確認された場合には(S13のYES)、次にコントローラ104の日時情報生成部511は、プラント側制御装置103に対し、プラント側制御装置103の日時情報生成部519が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されているか否かを問い合わせて確認する(S14)。 When it is confirmed that the date and time information of the date and time information generating unit 506 of the input device 102 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 S13), The date/time information generation unit 511 of the controller 104 is calibrated to the plant-side control device 103 by the date/time information generation unit 519 of the plant-side control device 103 with a sufficiently small error from the date/time information output by the date/time information source device 105. An inquiry is made as to whether or not it is present (S14).
 ステップS14で、プラント側制御装置103の日時情報生成部519の日時情報が、日時情報源装置105が出力する日時情報と十分小さい誤差にて較正されていることが確認された場合には(S14のYES)、この時点で入力装置102、コントローラ104およびプラント側制御装置103の全ての日時情報生成部506、511、519が較正されている。そこで、コントローラ104の日時情報生成部511は、同期運転の準備段階として、同期運転を開始する時間、暗号鍵を更新するステップ時間、鍵更新の初期値等を決定し、入力装置102の日時情報生成部506およびプラント側制御装置103の日時情報生成部519へ送信する(S15)。 When it is confirmed in step S14 that the date and time information of the date and time information generation unit 519 of the plant side control device 103 is calibrated with a sufficiently small error from the date and time information output by the date and time information source device 105 (S14 YES), at this point, all the date and time information generation units 506, 511, and 519 of the input device 102, the controller 104, and the plant-side control device 103 are calibrated. Therefore, the date/time information generation unit 511 of the controller 104 determines the time to start the synchronous operation, the step time to update the encryption key, the initial value of the key update, and the like as the preparation step for the synchronous operation, and the date/time information of the input device 102. The data is transmitted to the generation unit 506 and the date/time information generation unit 519 of the plant-side control device 103 (S15).
 ステップS15にて同期運転の準備が完了した場合には、コントローラ104の日時情報生成部511は設定した同期運転開始時間になるまで待ち(S16のNO)、同期運転開始時間になったら(S16のYES)、同期運転を開始して(S17)、一連の処理を終了する(S18)。
 ステップS12、S13およびS14の何れかの条件分岐においても、日時情報の較正が正常に完了していない場合は(S12のNO、S13のNO、S14のNO)、ステップS12まで戻って確認作業を繰り返す。
When the preparation for the synchronous operation is completed in step S15, the date / time information generation unit 511 of the controller 104 waits until the set synchronous operation start time is reached (NO in S16), and when the synchronous operation start time is reached (in S16). YES), synchronous operation is started (S17), and a series of processes is completed (S18).
In any of the conditional branches of steps S12, S13 and S14, if the calibration of the date and time information is not completed normally (NO in S12, NO in S13, NO in S14), return to step S12 and perform the confirmation work. repeat.
 <本実施形態例の暗号化制御システムにおける同期運転処理>
 図12は、暗号化制御システム101の入力装置102、コントローラ104およびプラント側制御装置103の同期運転を説明するためのシーケンス図である。図12では、暗号化の更新周期であるサンプリング周期Ts(ステップ時間)を10msec、サンプリングするステップをtとする。すなわち、同期運転始動時をt=0とし、t=0以降、tが1ステップ進むごとに、t=1、2、・・・と「1」ずつインクリメントするものとして以下説明する。
<Synchronous operation processing in the encryption control system of the present embodiment example>
FIG. 12 is a sequence diagram for explaining the synchronous operation of the input device 102, the controller 104, and the plant-side control device 103 of the encryption control system 101. In FIG. 12, the sampling cycle T s (step time), which is the encryption update cycle, is 10 msec, and the sampling step is t. That is, the following description will be made on the assumption that t=0 at the time of starting the synchronous operation, and after t=0, each time t advances by one step, t=1, 2,...
 同期運転始動時(t=0)、入力装置102は目標値rをt=0のときの公開鍵kp(t)で暗号化して、暗号化目標値Enc(r)を得る。そして、暗号化目標値Enc(r)を、コントローラ104経由でプラント側制御装置103へ送信する(S21)。ここで、暗号化目標値Enc(r)のデータフレームD21には、日時情報生成部506が生成したt=0における現在日時情報が含まれている。 At the start of synchronous operation (t = 0), the input device 102 encrypts the target value r with the public key k p (t) when t = 0 to obtain the encryption target value Enc (r). Then, the encryption target value Enc (r) is transmitted to the plant-side controller 103 via the controller 104 (S21). Here, the data frame D21 of the encryption target value Enc(r) includes the current date/time information at t=0 generated by the date/time information generation unit 506.
 同期運転始動時(t=0)には、コントローラ104は、暗号文更新部510において、記憶部509に記憶されているt=0時点の初期値となる暗号化制御パラメータEnc(Φ(0))を読み出し、この初期値Enc(Φ(0))と暗号化入力ベクトルEnc(ζ)に含まれる暗号化制御器への入力Enc(uc)、すなわち暗号化制御誤差Enc(ε)を乗算部508にて乗算する処理を行う。そして、乗算部508から暗号化出力行列Enc(Ψ)を得て、暗号化出力行列Enc(Ψ)に含まれる暗号化制御信号Enc(u)を、送信部208を経由してプラント側制御装置103へ送信する(S22)。暗号化制御信号Enc(u)のデータフレームD22には、同期運転開始時における始動日時情報と、t=0における現在日時情報が含まれている。なお、t=0の時点では、始動日時情報と現在日時情報は同一である。 At the start of the synchronous operation (t = 0), the controller 104 determines the encryption control parameter Enc (Φ (0)) which is the initial value at the time of t = 0 stored in the storage unit 509 in the ciphertext update unit 510. ) Is read, and this initial value Enc (Φ (0)) is multiplied by the input Enc (u c ) to the encryption controller included in the encryption input vector Enc (ζ), that is, the encryption control error Enc (ε). The process of multiplication is performed in unit 508. Then, the encrypted output matrix Enc(Ψ) is obtained from the multiplication unit 508, and the encrypted control signal Enc(u) included in the encrypted output matrix Enc(Ψ) is transmitted via the transmission unit 208 to the plant-side control device. It is transmitted to 103 (S22). The data frame D22 of the encrypted control signal Enc(u) includes start date/time information at the start of synchronous operation and current date/time information at t=0. At the time of t = 0, the start date / time information and the current date / time information are the same.
 また、プラント側制御装置103は、同期運転始動時(t=0)に、入力装置102からコントローラ104を経由して暗号化目標値Enc(r)を受信するとともに、コントローラ104から暗号化制御入力Enc(u)を受信する(S23)。
 プラント側制御装置103の復号処理部512は、暗号鍵更新部513から現在日時情報、始動日時情報に関連してt=0時点の秘密鍵ks(0)(s(0)と同じ)を受け取り、暗号化されている目標値Enc(r)と制御入力Enc(u)を復号(デコード)する。そして、制御用演算処理部514は、復号処理部512からの復号された信号を演算処理することで、目標値rと制御入力uを生成す・BR>驕IS24)。
Further, the plant-side control device 103 receives the encryption target value Enc (r) from the input device 102 via the controller 104 at the start of the synchronous operation (t = 0), and also receives the encryption control input from the controller 104. Enc(u) is received (S23).
The decryption processing unit 512 of the plant-side control device 103 obtains the secret key k s (0) (same as s (0) at t = 0) from the encryption key update unit 513 in relation to the current date / time information and the start date / time information. Decodes the received and encrypted target value Enc (r) and control input Enc (u). Then, the control arithmetic processing unit 514 generates a target value r and a control input u by arithmetically processing the decoded signal from the decoding processing unit 512. BR> 驕 IS24).
 本発明の実施形態において使用される準同型性を持つ暗号は、暗号化したままのデータ同士を乗算(または除算)することはできるが、加減算することができない。そこで、コントローラ104の乗算部508は与えられるデータに対して乗算処理のみを行い、復号後、制御用演算処理部514で加減算の処理を行っている。また、制御処理部515は、制御入力uから制御信号を生成し、制御対象106を制御する。制御対象106が制御処理部515によって制御されると、制御対象106の動作がセンサ107によって検出される(S24)。 The homomorphic cipher used in the embodiment of the present invention can multiply (or divide) the encrypted data, but cannot add or subtract. Therefore, the multiplication unit 508 of the controller 104 only performs multiplication processing on the given data, and after decoding, the control calculation processing unit 514 performs addition / subtraction processing. Further, the control processing unit 515 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 515, the operation of the control target 106 is detected by the sensor 107 (S24).
 センサ107で検出される観測信号は、信号変換処理部516によって観測値yに変換される。信号変換処理部516が出力する観測値yは、制御用演算処理部514からの目標値rと共に目標誤差演算処理部517に入力される。目標誤差演算処理部517は、目標値rから観測値yを減算して、目標誤差εを出力する(S24)。
 暗号化処理部518は、時刻tの目標誤差εを時刻(t+1)のステップに対応するように、暗号鍵更新部513で更新された公開鍵kp(t+1)で暗号化する(S25)。この時点では時刻tは「0」であるが時刻(t+1)は「1」となり、すなわちステップ1に対応する公開鍵kp(t+1)が、目標誤差εの暗号化に使われる。
The observation signal detected by the sensor 107 is converted into the observation value y by the signal conversion processing unit 516. The observed value y output from the signal conversion processing unit 516 is input to the target error calculation processing unit 517 together with the target value r from the control calculation processing unit 514. The target error calculation processing unit 517 subtracts the observed value y from the target value r and outputs the target error ε (S24).
The encryption processing unit 518 encrypts the target error ε at time t with the public key k p (t+1) updated by the encryption key updating unit 513 so as to correspond to the step at time (t+1). (S25). At this point, the time t is "0" but the time (t + 1) is "1", that is, the public key k p (t + 1) corresponding to step 1 is used for encryption of the target error ε.
 このように、同期運転始動(t=0)からステップ数が1インクリメントされて、t=1になった時点で、プラント側制御装置103は、送信部208を介して暗号化目標誤差Enc(ε)をコントローラ104へ送信する(S26)。暗号化目標誤差Enc(ε)のデータフレームD23には、同期運転開始時における始動日時情報と、t=1における現在日時情報が含まれている。 As described above, when the step number is incremented by 1 from the synchronous operation start (t=0) to t=1, the plant-side control device 103 causes the transmission target unit 208 to transmit the encrypted target error Enc(ε ) Is transmitted to the controller 104 (S26). The data frame D23 of the encryption target error Enc (ε) includes start date and time information at the start of synchronous operation and current date and time information at t = 1.
 t=1の時点で、コントローラ104は、受信部309を介してプラント側制御装置103から暗号化目標誤差Enc(ε)を受信する(S27)。受信した暗号化目標誤差Enc(ε)は、入出力制御部507を通じて乗算部508に送られる。乗算部508は、暗号化目標誤差Enc(ε)のデータフレームに付されている、始動日時情報と、t=1における現在日時情報を暗号文更新部510に送る。 At the time of t = 1, the controller 104 receives the encryption target error Enc (ε) from the plant-side controller 103 via the receiving unit 309 (S27). The received encryption target error Enc(ε) is sent to the multiplication unit 508 through the input/output control unit 507. The multiplication unit 508 sends the start date / time information and the current date / time information at t = 1 attached to the data frame of the encryption target error Enc (ε) to the ciphertext update unit 510.
 暗号文更新部510は、t=1の時点で更新された暗号化制御パラメータEncΦ(1)を記憶部509から読み出し、乗算部508に送る。乗算部508は暗号化制御パラメータEncΦ(1)と暗号化入力ベクトルEnc(ζ)に含まれる暗号化目標誤差Enc(ε)を乗算処理して、暗号化制御ゲインを計算し、これに基づいて暗号化制御入力Enc(u)を得る(S28)。そして、暗号化制御入力Enc(u)をプラント側制御装置103へ送信する(S29)。暗号化制御入力Enc(u)のデータフレームD24には、同期運転開始時における始動日時情報と、t=1における現在日時情報が含まれている。 The ciphertext update unit 510 reads the encryption control parameter EncΦ (1) updated at the time of t = 1 from the storage unit 509 and sends it to the multiplication unit 508. The multiplication unit 508 multiplies the encryption control parameter EncΦ (1) and the encryption target error Enc (ε) included in the encryption input vector Enc (ζ) to calculate the encryption control gain, and based on this. The encryption control input Enc(u) is obtained (S28). Then, the encryption control input Enc (u) is transmitted to the plant-side control device 103 (S29). The data frame D24 of the encryption control input Enc (u) includes start date and time information at the start of synchronous operation and current date and time information at t = 1.
 t=1の時点で、入力装置102は目標値rをt=1のステップに対応する新しい公開鍵kp(t+1)で暗号化して、暗号化目標値Enc(r)を得る。そして、この暗号化目標値Enc(r)をコントローラ104経由でプラント側制御装置103へ送信する(S30)。なお、暗号化目標値Enc(r)のデータフレームD25には、t=1における現在日時情報が含まれている。 At the time of t = 1, the input device 102 encrypts the target value r with the new public key k p (t + 1) corresponding to the step of t = 1 to obtain the encryption target value Enc (r). Then, this encrypted target value Enc(r) is transmitted to the plant-side control device 103 via the controller 104 (S30). The data frame D25 of the encryption target value Enc(r) includes the current date/time information at t=1.
 プラント側制御装置103は、t=1の時点で、入力装置102から暗号化目標値Enc(r)を受信し、コントローラ104から暗号化制御入力Enc(u)を受信する(S31)。 次に、プラント側制御装置103の復号処理部512は、暗号化目標値Enc(r)および暗号化制御入力Enc(u)のデータフレームに付されている現在日時情報、始動日時情報を基にして暗号鍵を用いて目標値rと制御入力uを復号する。
 そして、制御用演算処理部514は、復号処理部512によって復号された目標値rと制御入力uおよびコントローラ104の状態ベクトルxを出力する。そして、制御処理部515は、制御入力uから制御信号を生成し、制御対象106を制御する。制御対象106が制御処理部515によって制御されると、制御対象106の動作はセンサ107によって検出される。
The plant-side control device 103 receives the encryption target value Enc(r) from the input device 102 and the encryption control input Enc(u) from the controller 104 at time t=1 (S31). Next, the decryption processing unit 512 of the plant-side control device 103 uses the current date/time information and start date/time information attached to the data frame of the encryption target value Enc(r) and the encryption control input Enc(u) as a basis. The target value r and the control input u are decrypted using the encryption key.
Then, the control arithmetic processing unit 514 outputs the target value r decoded by the decoding processing unit 512, the control input u, and the state vector x of the controller 104. Then, the control processing unit 515 generates a control signal from the control input u and controls the control target 106. When the controlled object 106 is controlled by the control processing unit 515, the operation of the controlled object 106 is detected by the sensor 107.
 センサ107から出力される観測信号は、信号変換処理部516によって観測値yに変換される。図10で説明したように、この観測値yは、制御用演算処理部514から出力される目標値rと共に目標誤差演算処理部517に入力される。そして、目標誤差演算処理部517は、目標値rから観測値yを減算して、目標誤差εを出力する(S32)。
 暗号化処理部518は、この目標誤差εを、ステップ(t+1)で更新された公開鍵kp(t+1)で暗号化する(S33)。この時点では既に現在時間tが「1」なので、ステップ(t+1)は「2」となっている。したがって、暗号化処理部518で目標誤差εの暗号化に使われる公開鍵は、ステップ2に相当する公開鍵kp(t+2)となる。
The observation signal output from the sensor 107 is converted into the observation value y by the signal conversion processing unit 516. As described with reference to FIG. 10, the observed value y is input to the target error calculation processing unit 517 together with the target value r output from the control calculation processing unit 514. Then, the target error calculation processing section 517 subtracts the observed value y from the target value r and outputs the target error ε (S32).
The encryption processing unit 518 encrypts this target error ε with the public key k p (t+1) updated in step (t+1) (S33). At this point, the current time t is already "1", so the step (t+1) is "2". Therefore, the public key used by the encryption processing unit 518 to encrypt the target error ε is the public key k p (t+2) corresponding to step 2.
 以下同様に、プラント側制御装置103は、入力装置102からステップ2における暗号化目標値Enc(r)を受信し、コントローラ104からステップ2における暗号化制御入力Enc(u)を受信すると、これに対応する目標値rと制御入力uに基づいて制御対象106を制御する。そして、同様にセンサ107から得られた観測値yを目標値rから減算して目標誤差εを得る。暗号化処理部518は、目標誤差εをステップ2における公開鍵kp(t+2)で暗号化して、暗号化目標誤差Enc(ε)をコントローラ104へ出力する(S34)。このときの暗号化目標誤差Enc(ε)のデータフレームD26には、t=2における現在日時情報が含まれている。
 つまり、プラント側制御装置103のデータ受信、演算、データ送信のサイクルにおいて、ステップは1インクリメントされる。
Similarly, when the plant side control device 103 receives the encryption target value Enc (r) in step 2 from the input device 102 and receives the encryption control input Enc (u) in step 2 from the controller 104, the plant side control device 103 receives the encryption target value Enc (r) in step 2. The control target 106 is controlled based on the corresponding target value r and the control input u. Then, similarly, the observed value y obtained from the sensor 107 is subtracted from the target value r to obtain the target error ε. The encryption processing unit 518 encrypts the target error ε with the public key k p (t + 2) in step 2, and outputs the encryption target error Enc (ε) to the controller 104 (S34). The data frame D26 of the encryption target error Enc(ε) at this time includes the current date and time information at t=2.
That is, in the cycle of data reception, calculation, and data transmission of the plant-side control device 103, the step is incremented by 1.
<変形例>
 図13は、図10で示した本発明の暗号化制御システムの実施形態の変形例を示している。図13に示す変形例では、コントローラ500は、図10に示した入力装置102とコントローラ104を一体化した構成になっている。
 ここで、暗号鍵・暗号文更新部521は、図10で示した公開鍵更新部505と暗号文更新部510の両方の機能を有している。また、記憶部522は、図10の記憶部504と記憶部509の両方の機能を有する。
<Modification>
FIG. 13 shows a modified example of the embodiment of the encryption control system of the present invention shown in FIG. In the modified example shown in FIG. 13, the controller 500 has a configuration in which the input device 102 and the controller 104 shown in FIG. 10 are integrated.
Here, the cipher key/cipher text update unit 521 has the functions of both the public key update unit 505 and the cipher text update unit 510 shown in FIG. Further, the storage unit 522 has the functions of both the storage unit 504 and the storage unit 509 of FIG.
 すなわち、暗号鍵・暗号文更新部521は、記憶部522から得られる更新前の公開鍵を次のステップの公開鍵に更新し、この更新した公開鍵を暗号化処理部503に提供する。また、暗号鍵・暗号文更新部521は、乱数発生器521aで発生された乱数と、記憶部522に記憶されている暗号化制御パラメータEncΦ(t)を用いて、更新前の暗号文C(c1(t),c2(t))を次のステップの暗号文C(c1(t+1)、c2(t+1))に更新し、この更新した暗号文を乗算部508に送る。 That is, the encryption key/ciphertext update unit 521 updates the public key before update obtained from the storage unit 522 to the public key of the next step, and provides the updated public key to the encryption processing unit 503. Further, the encryption key/ciphertext update unit 521 uses the random number generated by the random number generator 521 a and the encryption control parameter EncΦ(t) stored in the storage unit 522 to update the ciphertext C(before update). Update c 1 (t), c 2 (t)) to the ciphertext C (c 1 (t + 1), c 2 (t + 1)) of the next step, and update this updated ciphertext to the multiplication unit 508. Send to.
 また、入出力制御部523は、入力装置102の入出力制御部502とコントローラ104の入出力制御部507の機能を併せて持つ入出力制御器である。
 但し、日時情報生成部は2つ持つ必要はなく。コントローラ104が備える日時情報生成部511があればよい。日時情報生成部511は、乗算部508から出力される暗号化制御入力Enc(u)に付加する日時情報を提供すると共に、暗号鍵・暗号文更新部521を起動する起動タイミングを与える。
The input/output control unit 523 is an input/output controller that also has the functions of the input/output control unit 502 of the input device 102 and the input/output control unit 507 of the controller 104.
However, it is not necessary to have two date and time information generators. The date and time information generation unit 511 included in the controller 104 may be provided. The date/time information generation unit 511 provides date/time information to be added to the encryption control input Enc(u) output from the multiplication unit 508, and also provides activation timing for activating the encryption key/ciphertext update unit 521.
 以上説明したように、図13に示すように、入力装置102とコントローラ104を一体化したコントローラ500を用いても、機能的には図10で示した暗号化制御システム101における入力装置102とコントローラ104の機能と同等の機能を有する暗号化制御システムを実現することができる。 As described above, even if the controller 500 in which the input device 102 and the controller 104 are integrated as shown in FIG. 13 is used, the input device 102 and the controller in the encryption control system 101 shown in FIG. An encryption control system having a function equivalent to the function of 104 can be realized.
 本実施形態では、暗号化制御システム101を開示した。入力装置102、プラント側制御装置103およびコントローラ104は、同一時刻で同期運転を行う。このように暗号化制御システム101を構成することで、制御システム全体の制御周期に同期して、公開鍵と秘密鍵および暗号文を毎ステップで更新することが可能になる。
 したがって、制御対象の耐用年数に比べて比較的短い時間で暗号鍵(公開鍵、秘密鍵)と暗号文の更新が行われるので、悪意ある第三者でも暗号鍵および暗号文の解読は極めて困難になると考えられる。
In this embodiment, the encryption control system 101 is disclosed. The input device 102, the plant-side control device 103, and the controller 104 perform synchronous operation at the same time. By configuring the encryption control system 101 in this way, it becomes possible to update the public key, the secret key, and the ciphertext at each step in synchronization with the control cycle of the entire control system.
Therefore, the encryption key (public key, private key) and ciphertext are updated in a relatively short time compared to the service life of the control target, making it extremely difficult for a malicious third party to decipher the encryption key and ciphertext. Is thought to be.
 また、本発明の暗号化制御システムでは、ElGamal暗号の動的な拡張を基礎として、秘密鍵、公開鍵および暗号文の更新を行っているが、ElGamal暗号はあくまでも一例であり、本発明の暗号化制御システムの基本的な技術思想は他の暗号にも適用することができるものである。以上、本発明の暗号化制御システムの基礎となる技術思想およびその実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むものである。 Further, in the encryption control system of the present invention, the private key, the public key and the ciphertext are updated based on the dynamic extension of the ElGamal encryption, but the ElGamal encryption is only an example, and the encryption of the present invention is used. The basic technical idea of the computerized control system can be applied to other ciphers. Although the technical idea and the embodiment example thereof that are the basis of the encryption control system of the present invention have been described above, the present invention is not limited to the above embodiment example, and the gist of the present invention described in the claims As long as it does not deviate from the above, other modifications and applications are included.
 10、104、500…コントローラ、20…プラント、21、106…制御対象、22…減算器、30…復号部、40…暗号化部、50、504、509、521、522…記憶部、52…秘密鍵更新部、513…暗号鍵(秘密鍵、公開鍵)更新部、53、505…公開鍵更新部、54、55、510…暗号文更新部、56…乱数更新部、
 101…暗号化制御システム、102…入力装置、103…プラント側制御装置、105…日時情報源装置、107…センサ、111…マウントベース、112…CPUモジュール、113…情報ネットワークモジュール、114a、114b…第一制御ネットワークモジュール、115…第二制御ネットワークモジュール、116…入出力モジュール、202…CPU、203…ROM、204…RAM、205…RTC、206…バス、207…NIC、208…送信部、309…受信部、410…A/D変換器、411…D/A変換器、501…目標値入力部、502、507…入出力制御部、503…暗号化処理部、506、511、519…日時情報生成部、508…乗算部、512…復号処理部、514…制御用演算処理部、515…制御処理部、516…信号変換処理部、517…目標誤差演算処理部、518…暗号化処理部、620…ログテーブル、523…暗号鍵・暗号文更新部 
10, 104, 500 ... controller, 20 ... plant, 21, 106 ... controlled object, 22 ... subtractor, 30 ... decryption unit, 40 ... encryption unit, 50, 504, 509, 521, 522 ... storage unit, 52 ... Private key update unit, 513 ... Encryption key (private key, public key) update unit, 53, 505 ... Public key update unit, 54, 55, 510 ... Ciphertext update unit, 56 ... Random number update unit,
101 ... Cryptographic control system, 102 ... Input device, 103 ... Plant side control device, 105 ... Date and time information source device, 107 ... Sensor, 111 ... Mount base, 112 ... CPU module, 113 ... Information network module, 114a, 114b ... First control network module, 115 ... second control network module, 116 ... input / output module, 202 ... CPU, 203 ... ROM, 204 ... RAM, 205 ... RTC, 206 ... bus, 207 ... NIC, 208 ... transmitter, 309 ... Receiver, 410 ... A / D converter, 411 ... D / A converter, 501 ... Target value input unit, 502, 507 ... Input / output control unit, 503 ... Encryption processing unit, 506, 511, 519 ... Date and time Information generation unit, 508 ... Multiplying unit, 512 ... Decoding processing unit, 514 ... Control arithmetic processing unit, 515 ... Control processing unit, 516 ... Signal conversion processing unit, 517 ... Target error calculation processing unit, 518 ... Encryption processing unit , 620... Log table, 523... Encryption key/ciphertext update unit

Claims (9)

  1.  制御系内の情報を暗号理論により秘匿可能とする暗号化コントローラにより制御対象を制御する暗号化制御システムであって、
     暗号化するステップ毎に、離散対数問題の解となる条件を満たす更新則により秘密鍵および公開鍵を動的に更新する暗号鍵更新部と、
     暗号化するステップ毎に、暗号文を動的に更新する暗号文更新部と、を備え、
     前記暗号鍵更新部および前記暗号文更新部はそれぞれ乱数生成器を有しており、前記それぞれの乱数生成器は前記暗号化する同時刻のステップで同じ乱数を生成し、前記それぞれの乱数生成器で生成された乱数と暗号化制御パラメータとの乗算剰余処理を行うことにより、前記秘密鍵、前記公開鍵および前記暗号文を更新する
     暗号化制御システム。
    An encryption control system for controlling an object to be controlled by an encryption controller that enables information in a control system to be concealed by a cryptographic theory,
    For each encryption step, an encryption key update unit that dynamically updates the private key and public key according to an update rule that satisfies the condition that is the solution of the discrete logarithm problem,
    A ciphertext update unit that dynamically updates the ciphertext for each encryption step,
    The encryption key update unit and the ciphertext update unit each have a random number generator, and each of the random number generators generates the same random number at the same time step of encryption, and the respective random number generators. An encryption control system for updating the secret key, the public key, and the ciphertext by performing a modular multiplication with the random number generated in step 1 and the encryption control parameter.
  2.  前記暗号鍵更新部は、現在のステップで使用した暗号鍵から前記制御系の制御則に基づいて、次回のステップで用いる暗号鍵を演算により作成して暗号鍵を更新し、
     前記暗号文更新部は、現在時刻で使用した暗号文から制御系の制御則に基づいて、次回のステップで用いる暗号文を演算により作成して暗号文を更新する、
     請求項1に記載の暗号化制御システム。
    The encryption key update unit updates the encryption key by calculating the encryption key to be used in the next step from the encryption key used in the current step based on the control rules of the control system.
    The ciphertext update unit updates the ciphertext by creating a ciphertext to be used in the next step by calculation from the ciphertext used at the current time based on the control law of the control system,
    The encryption control system according to claim 1.
  3.  前記制御系の秘密鍵をs(t)、公開鍵をh(t)および暗号文をc1(t)c2(t)としたとき、前記秘密鍵、前記公開鍵および前記暗号文の更新に関する前記制御則は、次式に従うものである、
     請求項2に記載の暗号化制御システム。  
    Figure JPOXMLDOC01-appb-I000001
     但し、f1は秘密鍵s(t)を更新する写像、f2は公開鍵h(t)を更新する写像、f3、f4は暗号文c1(t)c2(t)を更新する写像、w(t)、v(t)は秘密鍵s(t)、公開鍵h(t)および暗号文c1(t)c2(t)の更新に用いる乱数、p、qは素数(p=2q+1)、gは巡回群の生成元である。
    When the private key of the control system is s (t), the public key is h (t), and the ciphertext is c 1 (t) , c 2 (t), the private key, the public key, and the ciphertext The above-mentioned control rule regarding update is based on the following equation.
    The encryption control system according to claim 2.
    Figure JPOXMLDOC01-appb-I000001
    However, f 1 is a map for updating the secret key s(t), f 2 is a map for updating the public key h(t), and f 3 and f 4 are ciphertexts c 1 (t) and c 2 (t). The maps to be updated, w(t) and v(t) are the random numbers used to update the secret key s(t), public key h(t) and ciphertexts c 1 (t) and c 2 (t), p and q Is a prime number (p = 2q + 1) and g is the generator of the patrol group.
  4.  前記暗号鍵更新部および前記暗号文更新部で用いられる暗号は、ElGamal暗号である、請求項1~3のいずれか1項に記載の暗号化制御システム。 The encryption control system according to any one of claims 1 to 3, wherein the encryption key update unit and the ciphertext used in the ciphertext update unit are ElGamal encryption.
  5.  前記暗号鍵および前記暗号文を更新するステップ数は、前記制御系の耐用年数Lu(sec)を、前記制御対象をセンシングするサンプリング周期Ts(sec)で割った値Lu(sec)/Ts(sec)である、
     請求項2または3に記載の暗号化制御システム。
    The number of steps of updating the encryption key and the ciphertext is a value obtained by dividing the service life L u (sec) of the control system by the sampling cycle T s (sec) for sensing the control target L u (sec)/ T s (sec),
    The encryption control system according to claim 2 or 3.
  6.  制御系内の情報を暗号理論により秘匿可能とする暗号化コントローラにより制御対象を制御する暗号化制御方法であって、
     暗号化するステップ毎に、暗号鍵更新部において、前記暗号鍵更新部が備える乱数発生器で生成される乱数と1ステップ前の秘密鍵および公開鍵を乗算剰余することにより、秘密鍵および公開鍵を動的に更新する手順と、
     暗号化するステップ毎に、暗号文更新部において、前記暗号文更新部が備える乱数発生器で生成される乱数で、かつ前記暗号鍵更新部が備える乱数発生器で生成される乱数同じ乱数と1ステップ前の暗号化制御パラメータとを乗算剰余することにより、暗号文を動的に更新する手順を含む、
     暗号化制御方法。
    An encryption control method for controlling a control target by an encryption controller that enables information in a control system to be concealed by a cryptographic theory,
    At each encryption step, the encryption key update unit multiplies the random number generated by the random number generator included in the encryption key update unit with the private key and public key one step before, and the private key and public key are surplus. And the procedure to dynamically update
    For each step of encryption, in the ciphertext update unit, a random number generated by the random number generator provided in the ciphertext update unit and a random number generated by the random number generator included in the encryption key update unit are the same random number and 1 Includes a procedure for dynamically updating the ciphertext by performing modular multiplication with the encryption control parameter before the step,
    Encryption control method.
  7.  前記秘密鍵および前記公開鍵を動的に更新する手順においては、現在のステップtで私用した秘密鍵および公開鍵と、乱数を用いて次式に示す制御系の制御則に基づいて、次回の時刻(t+1)で使用する秘密鍵および公開鍵を生成し、
     前記暗号文を動的に更新する手順では、現在の時刻tで使用した暗号文と乱数を用いて次式に示す制御系の制御則に基づいて、次回の時刻(t+1)で用いる暗号文を生成する、
     請求項6に記載の暗号化制御方法。
    Figure JPOXMLDOC01-appb-I000002
     但し、f1は秘密鍵s(t)を更新する写像、f2は公開鍵h(t)を更新する写像、f3、f4は暗号文c1(t)c2(t)を更新する写像、w(t)、v(t)は秘密鍵s(t)、公開鍵h(t)および暗号文c1(t)c2(t)の更新に用いる乱数、p、qは素数(p=2q+1)、gは巡回群の生成元である。
    In the procedure for dynamically updating the private key and the public key, the next time, based on the private key and public key used in the current step t and the control rule of the control system shown in the following equation using a random number. Generate a private and public key to use at time (t + 1)
    In the procedure for dynamically updating the ciphertext, the ciphertext used at the current time t and the ciphertext used at the next time (t + 1) are used based on the control rules of the control system shown in the following equation. Generate a statement,
    The encryption control method according to claim 6.
    Figure JPOXMLDOC01-appb-I000002
    However, f 1 is a map that updates the private key s (t), f 2 is a map that updates the public key h (t), and f 3 and f 4 are ciphertexts c 1 (t) and c 2 (t). The map to be updated, w (t), v (t) is the private key s (t), the public key h (t) and the ciphertext c 1 (t) , c 2 (t) are the random numbers used to update, p, q Is a prime number (p=2q+1) and g is a generator of the cyclic group.
  8.  制御系内の情報を暗号理論により秘匿可能とする暗号化コントローラにより制御対象を制御する暗号化制御をコンピュータに実行させる暗号化制御プログラムであって、
     暗号化するステップ毎に、暗号鍵更新部において、前記暗号鍵更新部が備える乱数発生器で生成される乱数と1ステップ前の秘密鍵および公開鍵を乗算剰余することにより、秘密鍵および公開鍵を動的に更新する手順と、
     暗号化するステップ毎に、暗号文更新部において、前記暗号文更新部が備える乱数発生器で生成される乱数で、かつ前記暗号鍵更新部が備える乱数発生器で生成される乱数同じ乱数を1ステップ前の暗号化制御パラメータを乗算剰余することにより、暗号文を動的に更新する手順と、
     をコンピュータに実行させる暗号化制御プログラム。
    An encryption control program that causes a computer to execute encryption control for controlling a control target by an encryption controller that enables information in a control system to be concealed by a cryptographic theory,
    At each encryption step, the encryption key update unit multiplies the random number generated by the random number generator included in the encryption key update unit with the private key and public key one step before, and the private key and public key are surplus. And the procedure to dynamically update
    At each step of encryption, in the ciphertext update unit, a random number generated by the random number generator included in the ciphertext update unit and the same random number generated by the random number generator included in the encryption key update unit is 1 A procedure for dynamically updating the ciphertext by performing modular multiplication on the encryption control parameter before the step,
    An encryption control program that causes a computer to execute.
  9.  前記秘密鍵および前記公開鍵を動的に更新する手順においては、現在のステップtで使用した暗号鍵と乱数を用いて次式に示す制御系の制御則に基づいて、次回のステップ(t+1)で用いる秘密鍵および公開鍵を生成し、
     前記暗号文を動的に更新する手順では、現在のステップtで使用した暗号文と乱数とから次式に示す制御系の制御則に基づいて、次回のステップ(t+1)で用いる暗号文を生成する、
     請求項8に記載の暗号化制御プログラム。  
    Figure JPOXMLDOC01-appb-I000003
     但し、f1は秘密鍵s(t)を更新する写像、f2は公開鍵h(t)を更新する写像、f3、f4は暗号文c1(t)c2(t)を更新する写像、w(t)、v(t)は秘密鍵s(t)、公開鍵h(t)および暗号文c1(t)c2(t)の更新に用いる乱数、p、qは素数(p=2q+1)、gは巡回群の生成元である。
    In the procedure for dynamically updating the private key and the public key, the next step (t +) is based on the control rule of the control system shown in the following equation using the encryption key and the random number used in the current step t. Generate the private key and public key used in 1)
    In the procedure for dynamically updating the ciphertext, the ciphertext used in the next step (t + 1) is based on the control rule of the control system shown in the following equation from the ciphertext and the random number used in the current step t. To generate,
    The encryption control program according to claim 8.
    Figure JPOXMLDOC01-appb-I000003
    However, f 1 is a map for updating the secret key s(t), f 2 is a map for updating the public key h(t), and f 3 and f 4 are ciphertexts c 1 (t) and c 2 (t). The maps to be updated, w(t) and v(t) are the random numbers used to update the secret key s(t), public key h(t) and ciphertexts c 1 (t) and c 2 (t), p and q Is a prime number (p = 2q + 1) and g is the generator of the patrol group.
PCT/JP2020/008362 2019-03-04 2020-02-28 Encryption control system, encryption control method, and encryption control program WO2020179672A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021504051A JP7450277B2 (en) 2019-03-04 2020-02-28 Encryption control system, encryption control method and encryption control program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-039026 2019-03-04
JP2019039026 2019-03-04

Publications (1)

Publication Number Publication Date
WO2020179672A1 true WO2020179672A1 (en) 2020-09-10

Family

ID=72337781

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/008362 WO2020179672A1 (en) 2019-03-04 2020-02-28 Encryption control system, encryption control method, and encryption control program

Country Status (2)

Country Link
JP (1) JP7450277B2 (en)
WO (1) WO2020179672A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01212041A (en) * 1988-02-18 1989-08-25 Hitachi Ltd Cryptographic communication system
JP2012064439A (en) * 2010-09-16 2012-03-29 Sony Corp Power supply device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01212041A (en) * 1988-02-18 1989-08-25 Hitachi Ltd Cryptographic communication system
JP2012064439A (en) * 2010-09-16 2012-03-29 Sony Corp Power supply device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANTONOPOULOS, A. M.: "Chapter 4. Keys, Addresses,Wallets, Mastering Bitcoin", O'REILLY MEDIA INC., XP55750402, Retrieved from the Internet <URL://https://www.oreilly.com/library/view/mastering-bitcoin/9781491902639/ch04.html> [retrieved on 20200422] *
FUJITA,TAKAHIRO: "Encryption of Controllers UsingElGamal Cryptosystem", TRANSACTIONS OF THE SOCIETYOF INSTRUMENT AND CONTROL ENGINEERS, vol. 51, no. 9, 30 September 2015 (2015-09-30), pages 661 - 666, XP05559469 *

Also Published As

Publication number Publication date
JPWO2020179672A1 (en) 2020-09-10
JP7450277B2 (en) 2024-03-15

Similar Documents

Publication Publication Date Title
Biham et al. Rogue7: Rogue engineering-station attacks on s7 simatic plcs
Çavuşoğlu et al. A new chaotic system with hidden attractor and its engineering applications: analog circuit realization and image encryption
RU2638639C1 (en) Encoder, decoder and method for encoding and encrypting input data
JP7391368B2 (en) Encryption control method and encryption control program
US11824999B2 (en) Chosen-plaintext secure cryptosystem and authentication
JP7147024B2 (en) RANDOM NUMBER GENERATOR AND RANDOM NUMBER GENERATION METHOD
KR20040096778A (en) Method and apparatus for the generation of public key based on a user-defined id in a cryptosystem
KR101899130B1 (en) Methods for encrypting data, decrypting data and apparatus using the same
CN113098675A (en) Binary data encryption system and method based on polynomial complete homomorphism
JP2023520776A (en) Method and system for compression encryption
WO2020179672A1 (en) Encryption control system, encryption control method, and encryption control program
CN116094688A (en) Security control method, device and system based on homomorphic encryption
Riyadi et al. The Dynamic Symmetric Four-Key-Generators System for Securing Data Transmission in the Industrial Control System.
CN110611674B (en) Protocol interaction method, system and storage medium between different computer systems
JP5491713B2 (en) ENCRYPTION DEVICE, ENCRYPTION PROGRAM, AND METHOD
CN114362912A (en) Identification password generation method based on distributed key center, electronic device and medium
KR20150139304A (en) Encryption device and method for protecting a master key
CN115102715B (en) Data transmission safety method and system for software update in networked numerical control system
Fischer Advancements in control system data authentication and verification
JP2008203581A (en) Network system
Duan et al. High-Speed Anonymous Device Authentication Without Asymmetric Cryptography in the Internet-of-Things
WO2022125198A1 (en) Certificate-based encryption implemented with multiple encryption schemes
Frank Chaos theory, deterministic chaos, attractors, and sensitive initial conditions are key principles in chaotic encryption
Kamil NOVEL LIGHTWEIGHT ENCRYPTION API FOR IOT DEVICE COMMUNICATION
Guerreiro et al. A neural key generator for a public block cipher

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: 20766620

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021504051

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: 20766620

Country of ref document: EP

Kind code of ref document: A1