WO2014125639A1 - Appareil de gestion de programme de commande, appareil de commande et système de commande - Google Patents

Appareil de gestion de programme de commande, appareil de commande et système de commande Download PDF

Info

Publication number
WO2014125639A1
WO2014125639A1 PCT/JP2013/053812 JP2013053812W WO2014125639A1 WO 2014125639 A1 WO2014125639 A1 WO 2014125639A1 JP 2013053812 W JP2013053812 W JP 2013053812W WO 2014125639 A1 WO2014125639 A1 WO 2014125639A1
Authority
WO
WIPO (PCT)
Prior art keywords
control program
array
device identifier
pseudo
random number
Prior art date
Application number
PCT/JP2013/053812
Other languages
English (en)
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 PCT/JP2013/053812 priority Critical patent/WO2014125639A1/fr
Priority to TW102112626A priority patent/TW201433891A/zh
Publication of WO2014125639A1 publication Critical patent/WO2014125639A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence

Definitions

  • the present invention relates to a technique for obfuscating a control program used in, for example, a Factory Automation (FA) system.
  • FA Factory Automation
  • a controller device for controlling the operation of production equipment in a factory is arranged.
  • This controller is called a programmable logic controller (PLC).
  • PLC programmable logic controller
  • a control program for operating the PLC is created (designed) in a language such as a ladder using programming software.
  • the created control program (for example, ladder format) is converted into a format (machine code) that can be executed by programming software, and written to the PLC via a communication line.
  • Programming software is widely marketed as software that operates on Windows (registered trademark). If there is a computer on which Windows (registered trademark) operates, and if there is programming software, the control program is read from the PLC and the control program to the PLC. Can be easily written using a computer. For this reason, in recent years, when a control program is extracted from a PLC that has already been operated in a factory, or when a control program is written to a PLC from programming software, data flowing through a communication line has been stolen. . Due to these actions, there is a problem that imitation of PLC is manufactured by improperly diverting the control program.
  • Patent Document 1 A common measure against counterfeiting programs is to protect the program by obfuscation. By obfuscating the program, the analysis cost is increased, and even if the program is stolen, it is difficult for an attacker to obtain significant information.
  • Patent Document 1 when a program is executed, the program rewrites itself to complicate the behavior, thereby obfuscating the program and increasing the analysis cost.
  • Patent Document 2 and Patent Document 3 data in a program is encoded and obfuscated, and the program is normally executed by releasing the encoding during the execution of the program.
  • the requirements specific to the FA system when obfuscating the control program include the following. (1) The control program may be written in a language unique to the FA system such as a ladder language. (2) Since the control program is read from the PLC and edited, the control program obfuscated is controlled before it is obfuscated. (3) Execution speed does not decrease at the time of execution Since the execution timing of the process becomes very important in the control program, a decrease in the execution speed is hardly allowed. (4) The behavior at the time of execution does not change The change in the behavior may cause the execution timing of the process to shift.
  • Patent Document 1 the program self-rewrites during execution of the program, and obfuscation is performed by complicating the control.
  • Patent Document 2 and Patent Document 3 data in a program is encoded and obfuscated, and the program is normally executed by releasing the encoding during the execution of the program. Since these obfuscation techniques change the behavior of the obfuscation target and increase the processing, the execution speed decreases. Therefore, it is difficult to apply these obfuscation techniques to the control program.
  • the present invention has been made in view of the above, and has as its main purpose to effectively obfuscate the control program, increase the analysis cost of the control program, and make unauthorized use difficult.
  • the control program management device is: A control program management apparatus that manages a control program in which a device identifier that is a device identifier is described, A pseudo-random number generator that generates a pseudo-random number using a controller-specific value that is a value specific to a controller device that executes the control program; A device identifier replacement unit that replaces the device identifier described in the control program with another device identifier using the pseudo random number generated by the pseudo random number generation unit; And an output unit that outputs the control program after the device identifier is replaced by the device identifier replacement unit to the controller device.
  • the device identifier in the control program is replaced with another device identifier using a pseudo-random number using the controller unique value, the device identifier after replacement is changed from the device identifier after replacement to the device identifier before replacement. I can't get it back. For this reason, it is possible to obfuscate the control program, making it difficult to misappropriate the control program. Further, according to the present invention, since only the device identifier is replaced, the execution speed when executing the control program after returning from the device identifier after replacement to the device identifier before replacement does not decrease, The runtime behavior is not changed.
  • FIG. 2 is a diagram illustrating a configuration example of a control system according to the first embodiment.
  • FIG. 3 is a diagram illustrating a functional configuration example of a computer apparatus according to the first embodiment.
  • FIG. 3 is a diagram illustrating a functional configuration example of a controller device according to the first embodiment.
  • 2 is a diagram illustrating a hardware configuration example of a computer apparatus according to Embodiment 1.
  • FIG. 3 is a diagram illustrating an internal configuration example of an obfuscation processing unit according to the first embodiment. The figure which shows the internal structural example of the obfuscation cancellation
  • FIG. FIG. 4 is a diagram showing a processing sequence at the time of writing a control program according to the first embodiment.
  • FIG. 4 is a diagram showing a processing sequence at the time of writing a control program according to the first embodiment.
  • FIG. 3 is a flowchart showing an example of a control program execution process according to the first embodiment.
  • FIG. 4 is a diagram showing a processing sequence at the time of reading a control program according to the first embodiment.
  • FIG. 4 is a flowchart showing an example of obfuscation processing according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of a conversion table creation process according to the first embodiment.
  • FIG. 4 is a diagram showing an outline of conversion table creation processing according to the first embodiment.
  • FIG. 3 is a flowchart showing an example of a control program conversion process according to the first embodiment.
  • FIG. 3 is a diagram showing an outline of control program conversion processing according to the first embodiment.
  • FIG. 4 is a flowchart showing an example of obfuscation cancellation processing according to the first embodiment.
  • FIG. 6 is a flowchart showing an example of reverse conversion table creation processing according to the first embodiment.
  • FIG. 5 is a diagram showing an overview of reverse conversion table creation processing according to the first embodiment.
  • FIG. 3 is a flowchart showing an example of a control program reverse conversion process according to the first embodiment. The figure which shows the outline
  • FIG. FIG. 4 is a flowchart showing an example of obfuscation cancellation processing according to the first embodiment. The figure which shows the internal structural example of the obfuscation process part which concerns on Embodiment 2.
  • FIG. 4 is a flowchart showing an example of obfuscation cancellation processing according to the first embodiment.
  • FIG. 10 is a diagram showing a processing sequence at the time of writing a control program according to the second embodiment.
  • FIG. 10 is a diagram illustrating an example of a conversion table creation process according to the second embodiment.
  • FIG. 9 is a flowchart showing an example of a control program conversion process according to the second embodiment.
  • FIG. 10 is a diagram showing an outline of control program conversion processing according to the second embodiment.
  • FIG. 9 is a flowchart showing an example of reverse conversion table creation processing according to the second embodiment. The flowchart figure which shows the example of the control program reverse conversion process which concerns on Embodiment 2.
  • FIG. 10 is a diagram showing a processing sequence at the time of writing a control program according to the second embodiment.
  • FIG. 10 is a diagram illustrating an example of a conversion table creation process according to the second embodiment.
  • FIG. 9 is a flowchart showing an example of a control program conversion process according to the second embodiment.
  • FIG. 9 is a flowchart showing an example of reverse conversion table creation
  • FIG. 9 is a flowchart showing an example of a control program conversion process according to the third embodiment.
  • FIG. 10 is a diagram showing an outline of a control program conversion process according to the third embodiment.
  • FIG. 9 is a flowchart showing an example of a control program reverse conversion process according to the third embodiment.
  • FIG. 10 is a diagram showing an outline of a control program conversion process according to the third embodiment.
  • FIG. 1 shows a configuration example of a control system according to the present embodiment.
  • a computer device 101 and a controller device 102 are connected by a communication line 105.
  • the controller device 102 is a PLC.
  • the controller device 102 and the production equipment 104 are connected by a communication line 106.
  • Specific examples of the communication lines 105 and 106 include a USB (Universal Serial Bus) cable or a LAN (Local Area Network) cable compatible with Ethernet (registered trademark).
  • the production device 104 is, for example, a servo amplifier or an inverter. Note that the FA system includes a controller device 102 and a production device 104.
  • the computer apparatus 101 generates a control program to be executed by the controller apparatus 102, obfuscates the generated control program, and outputs the obfuscated control program to the controller apparatus 102.
  • the computer device 101 corresponds to an example of a control program management device.
  • a device identifier which is a device identifier is described.
  • the device identifier is a combination of a device type value (X, Y, M, etc.) and a device number (0, 1, 2, etc.).
  • a device is a variable used for control in the controller apparatus 102. Each device represents a contact, a coil, a switch, or the like.
  • the control program generated by the computer apparatus 101 can be expressed in a ladder format, for example, as shown in the control program 131 of FIG. X0, X2, X5, Y0, Y2, and Y7 shown in the control program 131 of FIG. 14 are device identifiers.
  • the X device is a variable for inputting a signal from an external input switch or the like of the controller apparatus 102.
  • the Y device is a variable for outputting a signal to the outside of the controller device 102.
  • the computer apparatus 101 converts the numerical value (device number) included in the device identifier to replace the device identifier and obfuscate the control program.
  • the device X0 of the control program 131 is replaced with the device X6 to form the obfuscation control program 132.
  • the controller device 102 executes a control program and controls the operation of the production equipment 104.
  • the controller device 102 inputs the control program after obfuscation from the computer device 101, releases the obfuscation of the input control program after obfuscation, and acquires the control program before obfuscation.
  • the controller device 102 cancels obfuscation by returning the device identifier after replacement to the device identifier before replacement in a procedure logically opposite to the device identifier replacement procedure in the computer device 101. Then, the controller device 102 executes the control program whose obfuscation has been canceled and controls the operation of the production device 104.
  • FIG. 2 shows functional blocks of the computer apparatus 101.
  • the computer device 101 includes a control program management unit 103 and a communication device 107.
  • the input unit 110 inputs (acquires) input information of the control program creator.
  • the control program creation unit 111 creates a control program based on the input information of the control program creator input by the input unit 110.
  • the control program management unit 112 performs control and management such as conversion, storage, obfuscation, and output to the controller device 102 of the created control program.
  • the control program conversion unit 113 converts the control program (ladder program) generated by the control program creation unit 111 into a format that can be executed by the controller device 102.
  • the control program storage unit 114 stores the control program 131 converted into an executable format by the control program conversion unit 113.
  • the obfuscation processing unit 115 obfuscates the control program 131. More specifically, the obfuscation processing unit 115 generates a pseudo random number using a device ID (Identification) that is a value unique to the controller device 102 and additional information 133 that is a different value each time it is generated, The device identifier in the control program 131 is replaced using the generated pseudo random number, and the control program 131 is obfuscated. In addition, the obfuscation processing unit 115 cancels obfuscation of the obfuscated control program output from the controller device 102.
  • a device ID Identity
  • the obfuscation processing unit 115 generates a pseudo random number using the device ID and the additional information 133, and uses the generated pseudo random number to replace the replaced device in the control program obfuscated.
  • the identifier is returned to the device identifier before replacement, and obfuscation is canceled.
  • the device ID corresponds to an example of a controller specific value
  • the additional information 133 corresponds to an example of one-time information.
  • the obfuscation processing unit 115 corresponds to an example of a pseudo random number generation unit and a device identifier replacement unit.
  • the control program 131 is obfuscated using the device ID and the additional information 133, but it is also possible to obfuscate the control program 131 using only the device ID.
  • the communication processing unit 116 communicates with the controller device 102 via the communication device 107 based on control from the control program management unit 112. More specifically, the communication processing unit 116 inputs the device ID from the controller device 102, outputs the control program after obfuscation to the controller device 102, and inputs the control program after obfuscation from the controller device 102. To do.
  • the communication processing unit 116 corresponds to an example of an output unit.
  • the input unit 110, the control program creation unit 111, the control program management unit 112, the control program conversion unit 113, the obfuscation processing unit 115, and the communication processing unit 116 in the control program management unit 103 can be realized as programs.
  • the input unit 110, the control program creation unit 111, the control program management unit 112, the control program conversion unit 113, the obfuscation processing unit 115, and the communication processing unit 116 can be elements of programming software.
  • FIG. 3 shows functional blocks of the controller device 102.
  • the communication control unit 121 performs communication with the computer device 101 and communication with the production device 104. For example, the communication control unit 121 outputs the device ID 134 to the computer apparatus 101, inputs the control program after obfuscation from the computer apparatus 101, and outputs the control program after obfuscation to the computer apparatus 101.
  • the communication control unit 121 communicates with each unit in the controller device 102 via the internal bus 128.
  • the device ID management unit 122 stores and manages the device ID 134.
  • the device ID management unit 122 corresponds to an example of a controller unique value storage unit.
  • the additional information management unit 123 stores and manages the additional information 133.
  • the control program storage unit 124 stores an obfuscation control program 132 that is an obfuscated control program 131.
  • the obfuscation release processing unit 125 returns the device identifier after replacement to the device identifier before replacement by a procedure logically opposite to the replacement procedure performed by the obfuscation processing unit 115 of the computer apparatus 101, and performs obfuscation control.
  • Remove obfuscation of program 132 More specifically, the obfuscation cancellation processing unit 125 generates a pseudo random number using the device ID 134 and the additional information 133, and uses the generated pseudo random number to replace the device after replacement in the obfuscation control program 132.
  • the identifier is returned to the device identifier before replacement, and obfuscation is canceled.
  • the obfuscation cancellation processing unit 125 corresponds to an example of a pseudo-random number generation unit and a device identifier restoration unit.
  • the control program execution unit 126 executes the control program after the obfuscation is canceled by the obfuscation cancellation processing unit 125.
  • FIG. 4 shows a hardware configuration example of the computer apparatus 101.
  • a CPU Central Processing Unit
  • the memory 212 is, for example, a RAM (Random Access Memory).
  • the external storage device 214 is, for example, a ROM (Read Only Memory), a flash memory, or a hard disk device.
  • the control program storage unit 114 illustrated in FIG. 2 is realized by the memory 212 and the external storage device 214.
  • the input / output device 213 is, for example, a mouse, a keyboard, a display device, or the like.
  • the communication device 107 is, for example, a NIC (Network Interface Card).
  • the input unit 110, the control program creation unit 111, the control program management unit 112, the control program conversion unit 113, the obfuscation processing unit 115, and the communication processing unit 116 in the control program management unit 103 illustrated in FIG. Can be realized as a program.
  • an input unit 110, a control program creation unit 111, a control program management unit 112, a control program conversion unit 113, an obfuscation processing unit 115, and a communication processing unit 116, which will be described below, are executed.
  • Function is realized.
  • the program is normally stored in the external storage device 214, and is sequentially read and executed by the CPU 211 while being loaded in the memory 212.
  • an operating system is also stored in the external storage device 214. At least a part of the OS is loaded into the memory 212, and the CPU 211 implements the functions in the control program management unit 103 while executing the OS. Run the program. Further, in the following description, “determining”, “determining”, “conversion of”, “replacement of”, “setting of”, “extraction of”, “generation of”, “ Information, data, signal values, and variable values indicating the results of the processing described as “Create”, “Selection”, “Input of”, “Output of”, etc. are stored as files in the memory 212. ing.
  • the functions of the input unit 110, the control program creation unit 111, the control program management unit 112, the control program conversion unit 113, the obfuscation processing unit 115, and the communication processing unit 116 are hardware such as firmware, elements, and circuits. It may be realized with.
  • the controller apparatus 102 also includes a CPU, a memory, an input / output device, an external storage device, and a communication device. Also in the controller device 102, the device ID management unit 122, the additional information management unit 123, and the control program storage unit 124 illustrated in FIG. 3 are realized by a memory and an external storage device. Also in the controller device 102, the functions of the communication control unit 121, the obfuscation release processing unit 125, and the control program execution unit 126 may be realized by a program. In this case, when the CPU executes these programs, the following functions of the communication control unit 121, the obfuscation release processing unit 125, and the control program execution unit 126 are realized. In addition, at least some of the functions of the communication control unit 121, the obfuscation release processing unit 125, and the control program execution unit 126 may be realized by hardware such as firmware, elements, and circuits.
  • FIG. 5 shows a detailed configuration of the obfuscation processing unit 115 of the computer apparatus 101.
  • control program conversion processing unit 301 inputs the control program 131 and replaces the device identifier in the control program 131 using data necessary for obfuscation (specifically, the conversion table 307).
  • the control program 131 is obfuscated.
  • the control program conversion processing unit 301 corresponds to an example of a device identifier replacement unit.
  • the conversion table creation processing unit 302 generates a conversion table 307 necessary for obfuscation of the control program 131 in the control program conversion processing unit 301. More specifically, the conversion table creation processing unit 302 generates a pseudo random number using the device ID 134 and the additional information 133, and generates a conversion table 307 using the generated pseudo random number.
  • the conversion table creation processing unit 302 corresponds to an example of a pseudo random number generation unit and a device identifier replacement unit.
  • the data processing unit 303 manages data (device ID, additional information) necessary for obfuscation of the control program 131.
  • the control program reverse conversion processing unit 304 inputs the obfuscation control program 132 from the controller device 102, and uses the data (specifically, the reverse conversion table 308) necessary for deobfuscation to obfuscate the control program 132. Is converted back to the control program 131.
  • the reverse conversion table creation processing unit 305 creates a reverse conversion table 308 necessary for reverse conversion of the obfuscation control program 132. More specifically, the reverse conversion table creation processing unit 305 generates a pseudo random number using the device ID 134 and the additional information 133, and generates the reverse conversion table 308 using the generated pseudo random number.
  • the additional information authentication unit 306 authenticates the additional information 133 when the obfuscation control program 132 is inversely converted.
  • FIG. 6 shows a detailed configuration of the obfuscation cancellation processing unit 125 of the controller device 102.
  • control program reverse conversion processing unit 401 reversely converts the obfuscation control program 132 into the control program 131 using data necessary for deobfuscation (specifically, the reverse conversion table 404).
  • the control program reverse conversion processing unit 401 corresponds to an example of a device identifier restoration unit.
  • the reverse conversion table creation processing unit 402 creates a reverse conversion table 404 necessary for reverse conversion of the obfuscation control program 132. More specifically, the reverse conversion table creation processing unit 305 generates a pseudo random number using the device ID 134 and the additional information 133, and generates the reverse conversion table 404 using the generated pseudo random number.
  • the inverse conversion table creation processing unit 402 corresponds to an example of a pseudo random number generation unit and a device identifier restoration unit.
  • the data processing unit 403 manages data required when obfuscation is canceled.
  • the processing procedure according to the present embodiment includes three processes. That is, the processing procedure according to the present embodiment includes (1) a process in which the control program management unit 103 creates the control program 131, obfuscates the control program 131, and writes the obfuscation control program 132 to the controller device 102. ) Processing in which the controller device 102 cancels the obfuscation of the obfuscation control program 132 and executes the control program 131. (3) The control program management unit 103 reads the obfuscation control program 132 from the controller device 102, and the obfuscation control program. The process consists of a process of releasing obfuscation 132 and restoring the control program 131.
  • control program management unit 103 creates the control program 131, obfuscates the control program 131, and writes the obfuscation control program 132 to the controller device 102 is shown in FIG. Show.
  • control program creation unit 111 creates the control program 131 based on the input information from the input unit 110.
  • control program conversion unit 113 converts the control program 131 created in the processing step 501 into a format that can be executed by the controller device 102. Note that both the control program before being converted into the executable format and the control program after being converted into the executable format are referred to as the control program 131.
  • the control program storage unit 114 stores the converted control program 131.
  • the obfuscation processing unit 115 executes the obfuscation process 511 on the control program 131 after conversion of the execution format to create the obfuscation control program 132.
  • the obfuscation processing unit 115 transmits a transmission request 531 for the device ID 134 to the controller device 102 via the control program management unit 112, the communication processing unit 116, and the communication device 107.
  • the device ID 134 of the device ID management unit 122 is transmitted from the communication control unit 121 to the computer device 101.
  • the additional information 133 is acquired by the obfuscation processing unit 115.
  • the obfuscation processing unit 115 may generate the additional information 133, or the obfuscation processing unit 115 receives the additional information 133 from the external device via the control program management unit 112, the communication processing unit 116, and the communication device 107. May be.
  • the communication processing unit 116 transmits the obfuscation control program 132 and the additional information 133 acquired by the obfuscation processing unit 115 during obfuscation to the controller device 102 via the communication device 107. To do.
  • the communication control unit 121 receives the obfuscation control program 132 and the additional information 133, and the obfuscation control program 132 is stored in the control program storage unit 124 and the additional information 133. Is stored in the additional information management unit 123.
  • FIG. 8 shows the flow of the control program execution process 610, which is the process of (2) above, that is, the controller device 102 cancels the obfuscation of the obfuscation control program 132 and executes the control program 131.
  • the obfuscation release processing unit 125 releases the obfuscation control program 132 and creates the control program 131.
  • control program execution unit 126 executes the control program 131.
  • control program management unit 103 reads the obfuscation control program 132 from the controller device 102, cancels the obfuscation of the obfuscation control program 132, and restores the control program 131.
  • the flow of this is shown in FIG.
  • the obfuscation processing unit 115 sends the obfuscation control program 132 to the controller device 102 via the control program management unit 112, the communication processing unit 116, and the communication device 107.
  • a read request 731 is transmitted.
  • the communication control unit 121 transmits the obfuscation control program 132 in the control program storage unit 124 and the device ID 134 in the device ID management unit 122.
  • the communication processing unit 116 receives the obfuscation control program 132 and the device ID 134.
  • the obfuscation cancellation processing unit 125 cancels the obfuscation of the obfuscation control program 132 received from the controller device 102 and creates the control program 131.
  • the obfuscation control program 132 cancels obfuscation using the device ID 134 and the additional information 133 received from the controller device 102.
  • control program 131 is stored in the control program storage unit 114 in the processing stage 703.
  • FIG. 10 shows the flow of the control program obfuscation process 511 in the processing stage 504.
  • the data processing unit 303 requests the device ID 134 from the controller device 102 in order to create the conversion table 307.
  • the data processing unit 303 receives the device ID 134 from the controller device 102.
  • the data processing unit 303 acquires a time stamp of the current time and uses it as additional information 133.
  • the additional information 133 does not need to be a time stamp, and may be any information as long as it has different values for each creation.
  • the conversion table creation processing unit 302 executes the conversion table creation processing 811 to create the conversion table 307.
  • control program conversion processing unit 301 executes the control program conversion processing 812.
  • the control program conversion processing unit 301 converts the device identifier of the control program 131 into the obfuscation control program 132 by randomizing the device identifier of the control program 131 using the conversion table 307 in the control program conversion processing 812.
  • FIG. 11 shows details of the conversion table creation processing 811 in the processing stage 804, and FIG. 12 shows an embodiment of the conversion table creation processing 811 in the processing stage 804.
  • the conversion table creation processing unit 302 uses the device number used in the control program 131 as an index, and a table 911 (the same as the array of numerical values before conversion and after conversion). FIG. 12) is created.
  • the conversion table creation processing unit 302 creates a pseudo random number 912 using the device ID 134 and the additional information 133 as seeds.
  • the conversion table creation processing unit 302 uses the created pseudo-random number 912 to randomly sort the converted array of the table 911, whereby the conversion table in the converted array of the table 911
  • the conversion table 307 is created using a new array in which the numerical order is changed and the numerical order is changed. As shown in FIG. 12, the array before conversion in the conversion table 307 remains the array before conversion in the table 911. Since the order of numerical values in the array after conversion of the conversion table 307 is changed from the array after conversion in the table 911, the order of numerical values is different from the array before conversion in the conversion table 307.
  • the array before conversion in the conversion table 307 corresponds to an example of the first array, and the array after conversion corresponds to an example of the second array.
  • the device number range after conversion can be matched with the device number range used in the control program 131 before conversion. For this reason, the obfuscated control program 132 after conversion can be made appropriate as a control program.
  • the numerical values used as the index when the table 911 is created in the processing stage 901 are not only the numerical values actually used in the control program 131 but all the numerical values that can be used as device numbers. Can also be used.
  • the numerical values used as the device numbers are [0, 2, 5, 7], but the numerical values that are not used as the device numbers as the numerical values before conversion as shown in FIG. [0, 1, 2, 3, 4, 5, 6, 7] can be used.
  • FIG. 13 shows details of the control program conversion processing 812 in the processing stage 805
  • FIG. 14 shows an embodiment of the control program conversion processing 812 in the processing stage 805.
  • the control program conversion processing unit 301 uses the conversion table 307 to convert the device identifier (for example, X0 or Y0) of the control program 131 into a different device identifier.
  • the control program conversion processing unit 301 reads one device identifier.
  • the control program conversion processing unit 301 converts the device identifier read in processing step 1101 with reference to the conversion table 307. Specifically, the control program conversion processing unit 301 determines the position in the array before conversion of the numerical value of the device number, extracts the numerical value in the converted array at the same position as the determined position, and extracts the device number Is converted into the extracted numerical value in the converted array, and the device identifier is replaced. If there is an unconverted device identifier in the processing stage 1103, the process returns to the processing stage 1101. The above process is repeated for all device identifiers.
  • the conversion table 307 may be discarded after the conversion from the control program 131 to the obfuscation control program 132 is completed. Further, since the additional information 133 is used to generate the reverse conversion table 404 in the controller apparatus 102, the additional information 133 is stored in the computer apparatus 101 until the reverse conversion table 404 is generated. However, the computer apparatus 101 may discard the additional information 133 after the reverse conversion table 404 is generated.
  • the data processing unit 403 reads the device ID 134 from the device ID management unit 122.
  • the data processing unit 403 reads the additional information 133 from the additional information management unit 123.
  • the reverse conversion table creation processing unit 402 executes the reverse conversion table creation processing 1311 to create the reverse conversion table 404.
  • control program reverse conversion processing unit 401 executes the control program reverse conversion processing 1312 to convert the obfuscation control program 132 into the control program 131 using the reverse conversion table 404.
  • FIG. 16 shows details of the reverse conversion table creation processing 1311
  • FIG. 17 shows an embodiment of the reverse conversion table creation processing 1311.
  • the reverse conversion table creation processing unit 402 uses the device number used in the obfuscation control program 132, and the table 1411 (the numerical value before conversion and the numerical value after conversion are the same). FIG. 17) is created.
  • the inverse conversion table creation processing unit 402 creates a pseudo random number 1412 using the device ID 134 and the additional information 133 as seeds.
  • the pseudo-random number generation algorithm in the conversion table creation processing unit 302 of the computer device 101 is the same as the pseudo-random number generation algorithm in the inverse conversion table creation processing unit 402 of the controller device 102. That is, the reverse conversion table creation processing unit 402 generates the same pseudo random number as the pseudo random number generated by the conversion table creation processing unit 302.
  • the inverse conversion table creation processing unit 402 uses the created pseudo-random number 1412 to randomly sort the array before conversion in the table 1411, thereby converting the numerical values in the array before conversion in the table 1411.
  • the reverse conversion table 404 is created using a new array in which the order is changed and the numerical order is changed. As shown in FIG. 17, the converted array in the inverse conversion table 404 remains the converted array in the table 1411. Since the order of numerical values in the array before conversion in the reverse conversion table 404 is changed from the array before conversion in the table 1411, the order of numerical values is different from the array after conversion in the reverse conversion table 404.
  • the array before conversion of the inverse conversion table 404 corresponds to an example of the fourth array, and the array after conversion corresponds to an example of the third array.
  • the reverse conversion table 404 is created using the same algorithm (logically reverse procedure) as the conversion table creation process 811 using the device ID 134 and the additional information 133 transmitted from the obfuscation processing unit 115. For this reason, the conversion table 307 and the inverse conversion table 404 used when the control program 131 is obfuscated in the control program obfuscation process 511, except that the array before conversion and the array after conversion are reversed. Are the same.
  • FIG. 18 shows details of the control program reverse conversion processing 1312
  • FIG. 19 shows an embodiment of the control program reverse conversion processing 1312.
  • the control program reverse conversion processing unit 401 uses the reverse conversion table 404 to convert the randomized obfuscation control program 132 device identifier into the original device identifier.
  • the control program inverse conversion processing unit 401 reads one device identifier.
  • the control program reverse conversion processing unit 401 converts the device number with reference to the reverse conversion table 404. Specifically, the control program reverse conversion processing unit 401 determines the position in the array before conversion of the numerical value of the device number, extracts the numerical value in the array after conversion at the same position as the determined position, and The numerical value of the number is converted into the extracted numerical value, and the device identifier is restored. If there is an unconverted device identification in the processing step 1603, the processing returns to the processing step 1601. The above process is repeated for all device identifiers.
  • the converted numerical value corresponding to the numerical value “6” in the reverse conversion table 404 is “0”.
  • the processing unit 401 converts “X6” to “X0”.
  • FIG. 20 shows details of the obfuscation cancellation processing 711 shown in FIG.
  • the data processing unit 403 reads the device ID 134 from the controller device 102.
  • the additional information authentication unit 306 confirms that the stored additional information 133 is the same as the additional information 133 created at the time of obfuscation.
  • the reverse conversion table creation processing unit 305 executes the reverse conversion table creation processing 1811 to create the reverse conversion table 308.
  • the control program reverse conversion processing unit 304 executes the control program reverse conversion processing 1812 to convert the obfuscation control program 132 into the control program 131 using the reverse conversion table 308.
  • the operation of the reverse conversion table creation process 1811 is the same as that of the reverse conversion table creation process 1311, and the operation of the control program reverse conversion process 1812 is the same as the control program reverse conversion process 1312. For this reason, the description of the reverse conversion table creation processing 1811 and the control program reverse conversion processing 1812 is omitted.
  • the control program cannot operate normally. This makes it difficult to produce counterfeit products by misappropriation.
  • a conversion table by using all the numerical values that can be used as device numbers in the index, the range of the numerical values of the device numbers after device number conversion becomes wider, making it more difficult to analyze the obfuscation method become.
  • the conversion table is made random by using different information for each creation of a time stamp or the like as additional information, and is different even when the same control program is obfuscated in association with the same controller device. Since the obfuscation result can be obtained, it becomes difficult to analyze the obfuscation method.
  • the control system including the following means has been described.
  • (1) Means for creating a conversion table for converting a numerical value into a different numerical value using a pseudo-random number generated from the device ID.
  • (2) Using the conversion table in (1) above, the device number of the control program is set.
  • Means for converting (3) Means for transmitting the control program after conversion in (2) to the controller (4)
  • control system includes means for creating a conversion table for converting a certain numerical value into a different numerical value using a pseudo-random number created from additional information that becomes different data each time the device ID is created.
  • a conversion table for converting a certain numerical value into a different numerical value using a pseudo-random number created from additional information that becomes different data each time the device ID is created.
  • control system includes means for creating a conversion table that converts a numerical value used in the control program into a different numerical value using a pseudo-random number created from the device ID. did.
  • control system includes means for creating a conversion table that converts a numerical value that can be used in the control program into a different numerical value by using a pseudo-random number created from the device ID. .
  • control system includes means for authenticating that the additional information is legitimate when reading the control program from the controller.
  • FIG. 1 In the first embodiment, one conversion table is used in the control program conversion process 812. In the present embodiment, an example in which the control program 131 is converted using a plurality of conversion tables will be described. Also in the present embodiment, the overall configuration of the control system is as shown in FIG. 1, the configuration example of the computer device 101 is as shown in FIG. 2, and the configuration example of the controller device 102 is as shown in FIG. . In the present embodiment, the configurations of the obfuscation processing unit 115 and the obfuscation release processing unit 125 are different from those of the first embodiment.
  • FIG. 21 shows a configuration example of the obfuscation processing unit 115 of the present embodiment
  • FIG. 22 shows a configuration example of the obfuscation release processing unit 125 of the present embodiment.
  • table setting information 1909 indicating the number of conversion tables to be created is added as compared with the configuration shown in FIG.
  • Elements other than the table setting information 1909 are the same as the elements shown in FIG.
  • table setting information 2005 indicating the number of conversion tables to be created is added as compared to the configuration illustrated in FIG. 6.
  • Elements other than the table setting information 2005 are the same as the elements shown in FIG.
  • FIG. 23 shows a flow of processing for writing the control program 131 in the present embodiment into the controller device 102.
  • Processing steps 2101 to 2103 are the same as the processing steps 501 to 503 in FIG.
  • the conversion table 1907 is generated and the control program 131 is obfuscated using the conversion table 1907 to generate the obfuscation control program 132, which is used for obfuscation, as in the processing stage 504 of FIG.
  • the communication processing unit 116 sends the obfuscation control program 132, the additional information 133 used to generate the conversion table 1907, and the table setting information 1909 to the controller device via the communication device 107. 102.
  • the communication control unit 121 receives the obfuscation control program 132, additional information 133, and table setting information 1909, and the obfuscation control program 132 is stored in the control program storage unit 124 and added.
  • the information 133 is stored in the additional information management unit 123, and the table setting information 1909 is stored as the table setting information 2005.
  • FIG. 24 shows details of the conversion table creation processing 811 in the present embodiment.
  • the conversion table creation processing unit 1902 sets the number of conversion tables 1907 to be created in the table setting information 1909.
  • the conversion table creation processing unit 1902 uses the device number used in the control program 131 as an index, and the table 2211 in which the numerical values before conversion and the converted numerical values are identical is the same. Create This processing is the same as the processing in the processing stage 901 in FIG.
  • processing step 2203 the conversion table creation processing unit 1902 creates a pseudo random number 2212 using the device ID 134 and the additional information 133 as seeds. This process is the same as the process in process step 902 of FIG.
  • the conversion table creation processing unit 1902 uses the created pseudo-random number 2212 to randomly sort the converted array of the table 2211, thereby ordering the numerical values in the converted array of the table 2211. And a conversion table 1907 is created using a new array whose numerical order has changed. This processing is the same as the processing in the processing stage 903 in FIG.
  • the created conversion table 1907 is associated with the count value. For example, when the quantity set in the processing stage 2201 is “2”, two conversion tables 1907 are created. The first conversion table 1907A is associated with the count value “0”, and the second conversion table 1907B is associated with the count value “1”.
  • the process returns to the processing stage 2202. If the number of created tables reaches the number set in the processing step 2201 in the processing step 2205, the processing is terminated.
  • FIG. 25 shows details of the control program conversion processing 812 according to the present embodiment
  • FIG. 26 shows an example of the control program conversion processing 812 according to the present embodiment.
  • control program conversion processing unit 1901 reads one device identifier.
  • the control program conversion processing unit 1901 confirms the count value of a predetermined counter, refers to the conversion table 1907 corresponding to the current count value, and determines the device number read in the processing stage 2301. Convert.
  • the count value of the counter takes “0” or “1”.
  • the control program conversion processing unit 1901 selects the conversion table 1907 associated with the count value “0”.
  • the device number read in the processing step 2301 is converted with reference to the array before conversion and the array after conversion of the selected conversion table 1907.
  • the device number conversion process itself using the conversion table 1907 is the same as that described in the first embodiment. Note that the converted array in the conversion table 1907 selected based on the count value corresponds to an example of the selected second array.
  • the control program conversion processing unit 1901 increments the count value of the counter at the processing stage 2304. If the count value of the counter has reached the set number of the table setting information 1909, the count value of the counter is initialized in processing step 2305.
  • the process returns to the processing stage 2301. The above process is repeated for all device identifiers.
  • the control program conversion processing unit 1901 selects the conversion table 1907A when converting the device 2401 (X0) in the control program 131. Since the converted numerical value corresponding to the numerical value “0” in the conversion table 1907A is “6”, the control program conversion processing unit 1901 converts “X0” to “X6”. Next, when converting the device 2402 (Y0) in the control program 131, the control program conversion processing unit 1901 advances the counter and selects the conversion table 1907B. Since the converted numerical value corresponding to the numerical value “0” in the conversion table 1907B is “5”, the control program conversion processing unit 1901 converts “Y0” to “Y5”.
  • FIG. 27 shows details of the reverse conversion table creation processing 1311 according to the present embodiment.
  • the reverse conversion table creation processing unit 402 sets the quantity of the table setting information 2005 to the quantity of the reverse conversion table 2004 to be created.
  • the inverse conversion table creation processing unit 402 creates a table 2511 in which the numerical value before conversion and the converted numerical value are the same, using the device number used in the obfuscation control program 132. .
  • the reverse conversion table creation processing unit 2002 creates a pseudo random number 2512 using the device ID 134 and the additional information 133 as seeds. Also in the present embodiment, the pseudo random number generation algorithm in the conversion table creation processing unit 1902 of the computer apparatus 101 and the pseudo random number generation algorithm in the inverse conversion table creation processing unit 2002 of the controller apparatus 102 are the same. That is, the reverse conversion table creation processing unit 2002 generates the same pseudo random number as the pseudo random number generated by the conversion table creation processing unit 1902.
  • the inverse conversion table creation processing unit 2002 uses the created pseudorandom number 2512 to randomly sort the array before conversion in the table 2511, so that the numerical values in the array before conversion in the table 2511 are converted.
  • the reverse conversion table 2004 is created by changing the order and using a new array whose numerical order has changed. Similar to the conversion table 1907, the created reverse conversion table 2004 is associated with the count value. For example, when the quantity set in the processing stage 2501 is “2”, two reverse conversion tables 2004 are created. The first reverse conversion table 2004A is associated with the count value “0”, and the second reverse conversion table 2004B is associated with the count value “1”.
  • the process returns to the processing stage 2502. If the number of created tables reaches the quantity set in the processing stage 2501 in the processing stage 2505, the process is terminated.
  • FIG. 28 shows details of the control program reverse conversion processing 1312 according to the present embodiment
  • FIG. 29 shows an example of the control program reverse conversion processing 1312 according to the present embodiment.
  • the control program reverse conversion processing unit 2001 reads one device identifier.
  • the control program reverse conversion processing unit 2001 converts the device number with reference to the reverse conversion table 2004 corresponding to the count value of the counter.
  • the count value of the counter is “0” or “1”.
  • the control program reverse conversion processing unit 2001 selects the reverse conversion table 2004 associated with the count value “0”.
  • the device number read in the processing step 2601 is converted with reference to the array before conversion and the array after conversion of the selected inverse conversion table 2004.
  • the device number reverse conversion process itself using the reverse conversion table 2004 is the same as that shown in the first embodiment. Note that the array before conversion of the inverse conversion table 2004 selected based on the count value corresponds to an example of the selected fourth array.
  • control program reverse conversion processing unit 2001 increments the count value of the counter in the processing step 2604. If the count value of the counter has reached the set number of the table setting information 2005, the control program reverse conversion processing unit 2001 initializes the counter in the processing step 2605. If there is an unconverted device in the process step 2603, the process returns to the process step 2601. The above process is repeated for all device identifiers.
  • the control program reverse conversion processing unit 2001 selects the reverse conversion table 2004A when the device 2701 (X6) in the obfuscation control program 132 is converted. Since the converted numerical value corresponding to the numerical value “6” in the reverse conversion table 2004A is “0”, the control program reverse conversion processing unit 2001 converts “X6” to “X0”. Next, when converting the device 2702 (Y5) in the obfuscation control program 132, the control program reverse conversion processing unit 2001 advances the counter and selects the reverse conversion table 2004B. Since the converted numerical value corresponding to the numerical value “5” in the reverse conversion table 2004B is “0”, the control program reverse conversion processing unit 2001 converts “Y5” to “Y0”.
  • Embodiment 3 a control program conversion method different from the method shown in the first embodiment will be described.
  • the control program conversion processing unit 301 uses the conversion table 307 to convert the device number, but in this embodiment, the device number is not converted but the conversion table is associated with the step number. To convert.
  • step numbers are appended to each device identifier.
  • the step number (0) is appended to the identifier “X0”.
  • the conversion table creation processing unit 302 generates the conversion table 307 in the same manner as in the first embodiment.
  • the control program reverse conversion processing unit 401 also generates the reverse conversion table 404 in the same manner as in the first embodiment.
  • control program conversion processing 812 by the control program conversion processing unit 301 and control program reverse conversion processing 1311 by the control program reverse conversion processing unit 401 are different from the first embodiment.
  • each processing will be described.
  • FIG. 30 shows details of the control program conversion processing 812
  • FIG. 31 shows an embodiment of the control program conversion processing 812.
  • control program conversion processing unit 301 reads one device identifier.
  • the control program conversion processing unit 301 converts the read device identifier into the device identifier of the step with reference to the conversion table 307. More specifically, the control program conversion processing unit 301 determines the position in the array before conversion of the numerical value of the step number added to the read device identifier. Then, the control program conversion processing unit 301 extracts a numerical value in the converted array at the same position as the determined position. Then, the control program conversion processing unit 301 identifies a device identifier in which the extracted numerical value is added as a step number, and replaces the device identifier read in the processing step 2801 with the identified device identifier.
  • process step 2803 if there is an unconverted device identifier in process step 2803, the process returns to process step 2801. The above process is repeated for all device identifiers.
  • the step number of the device 2901 (X0) is “0”.
  • the converted numerical value corresponding to the numerical value “0” in the conversion table 307 is “6”. Therefore, the control program conversion processing unit 301 converts “X0” into “Y7”, which is a device identifier to which the step number “6” is added.
  • FIG. 32 shows details of the control program reverse conversion processing 1312
  • FIG. 33 shows an embodiment of the control program reverse conversion processing 1312.
  • control program reverse conversion processing unit 401 reads one device identifier.
  • the control program reverse conversion processing unit 401 converts the read device identifier into the device identifier of the step with reference to the reverse conversion table 404. More specifically, the control program reverse conversion processing unit 401 determines the position in the array before conversion of the numerical value of the step number appended to the read device identifier. Then, the control program reverse conversion processing unit 401 extracts a numerical value in the converted array at the same position as the determined position in the array before conversion. Then, the control program reverse conversion processing unit 401 identifies a device identifier having the extracted numerical value attached as a step number, and replaces the device identifier read in the processing step 3001 with the identified device identifier.
  • the step number of the device 3101 (Y7) is “0”.
  • the converted numerical value corresponding to the numerical value “0” in the reverse conversion table 404 is “6”. Therefore, the control program reverse conversion processing unit 401 converts “Y7” into “X0”, which is a device identifier to which the step number “6” is added.
  • the numerical values “0 to 7” included in the conversion table 307 and the inverse conversion table 404 are based on the step numbers “0 to 7” in the control program 131. That is, when the device identifier is converted using the step number, the conversion table 307 needs to be generated using the numerical value of the step number. Similarly, the inverse conversion table 404 needs to be generated using the numerical value of the step number.
  • the obfuscation processing unit 115 of the computer apparatus 101 generates a plurality of conversion tables as in the second embodiment, and selects the plurality of conversion tables according to the count value.
  • the obfuscation processing unit 115 converts the device identifier using the selected conversion table with the step number interposed, as in the third embodiment.
  • the obfuscation cancellation processing unit 125 of the controller device 102 generates a plurality of inverse conversion tables as in the second embodiment, and selects the plurality of inverse conversion tables according to the count value.
  • the obfuscation cancellation processing unit 125 restores the device identifier using the selected inverse conversion table with the step number interposed, as in the third embodiment.
  • control system including means for converting the device identifier according to the number of steps of the control program using the conversion table has been described.
  • the obfuscation is canceled before the control program is executed by the controller device, so that the execution speed does not decrease and the behavior at the time of execution does not change. Further, if an inverse conversion table is used, the obfuscated control program can be inversely converted to the control program before obfuscation.
  • the obfuscation control program and additional information necessary for deobfuscation can be copied to another controller device.
  • the control program does not operate as expected, making it difficult to manufacture counterfeit products through unauthorized use.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

Selon l'invention, un appareil informatique (101) gère un programme de commande dans lequel un identificateur de dispositif qui est un identificateur (ID) d'un dispositif est décrit. A l'aide d'un ID de machine qui est une valeur unique pour un appareil de commande (102) qui exécute le programme de commande, l'appareil informatique (101) génère un nombre pseudo-aléatoire et, à l'aide du nombre pseudo-aléatoire généré, substitue un autre identificateur de dispositif à l'identificateur de dispositif qui est décrit dans le programme de commande. L'appareil informatique (101) délivre à l'appareil de commande (102) le programme de commande pour lequel l'identificateur de dispositif a été substitué.
PCT/JP2013/053812 2013-02-18 2013-02-18 Appareil de gestion de programme de commande, appareil de commande et système de commande WO2014125639A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2013/053812 WO2014125639A1 (fr) 2013-02-18 2013-02-18 Appareil de gestion de programme de commande, appareil de commande et système de commande
TW102112626A TW201433891A (zh) 2013-02-18 2013-04-10 控制程式管理裝置、控制裝置以及控制系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/053812 WO2014125639A1 (fr) 2013-02-18 2013-02-18 Appareil de gestion de programme de commande, appareil de commande et système de commande

Publications (1)

Publication Number Publication Date
WO2014125639A1 true WO2014125639A1 (fr) 2014-08-21

Family

ID=51353664

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/053812 WO2014125639A1 (fr) 2013-02-18 2013-02-18 Appareil de gestion de programme de commande, appareil de commande et système de commande

Country Status (2)

Country Link
TW (1) TW201433891A (fr)
WO (1) WO2014125639A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328207A (zh) * 2020-11-30 2021-02-05 中国石油大学(华东) 一种基于单片机随机源工作参数的真随机数产生器及产生方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02297626A (ja) * 1989-05-12 1990-12-10 Nec Corp プログラム及びデータの内容隠蔽方式
JP2002073190A (ja) * 2000-09-04 2002-03-12 Funai Electric Co Ltd プログラム変換装置、及び、プログラム変換方法
JP2009110113A (ja) * 2007-10-26 2009-05-21 Mitsubishi Electric Corp プログラム変換装置及びプログラム及びプログラム変換方法
JP2011165041A (ja) * 2010-02-12 2011-08-25 Mitsubishi Electric Corp 制御装置及び管理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02297626A (ja) * 1989-05-12 1990-12-10 Nec Corp プログラム及びデータの内容隠蔽方式
JP2002073190A (ja) * 2000-09-04 2002-03-12 Funai Electric Co Ltd プログラム変換装置、及び、プログラム変換方法
JP2009110113A (ja) * 2007-10-26 2009-05-21 Mitsubishi Electric Corp プログラム変換装置及びプログラム及びプログラム変換方法
JP2011165041A (ja) * 2010-02-12 2011-08-25 Mitsubishi Electric Corp 制御装置及び管理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328207A (zh) * 2020-11-30 2021-02-05 中国石油大学(华东) 一种基于单片机随机源工作参数的真随机数产生器及产生方法

Also Published As

Publication number Publication date
TW201433891A (zh) 2014-09-01

Similar Documents

Publication Publication Date Title
KR101677557B1 (ko) 통계적 프로세싱
JP4304215B2 (ja) 秘密分散装置、方法及びプログラム
EP2388730A1 (fr) Procédé pour générer un code de logiciel
CN108063756B (zh) 一种密钥管理方法、装置及设备
CN104978167A (zh) 随机数发生器和用于产生随机数的方法
US10628562B2 (en) Method for protecting a computer program from being influenced, and computer system
CN103294496B (zh) 烧录***
US20210037100A1 (en) Method and control system for controlling and/or monitoring devices
Nithyanand et al. A theoretical analysis: Physical unclonable functions and the software protection problem
CN105577644A (zh) 一种加密认证方法和***
JP6919973B2 (ja) プログラムコードのコンピュータ支援難読化方法
WO2017195369A1 (fr) Dispositif d'assistance au développement de programme, dispositif de commande et de surveillance de train et procédé d'assistance au développement de programme
WO2014125639A1 (fr) Appareil de gestion de programme de commande, appareil de commande et système de commande
CN109150813B (zh) 一种设备的验证方法及装置
CN102215131B (zh) 一种功能License的管理方法及装置
US20220114276A1 (en) Controlling a data network with respect to a use of a distributed database
CN103701591A (zh) 一种序列密码实现方法和密钥流生成方法及装置
US20190268144A1 (en) Data processing method, control system, and control device
CN111339523B (zh) 嵌入式设备的授权方法及装置
WO2020261654A1 (fr) Système de commande, dispositif de commande et procédé de gestion
JP6931331B2 (ja) ブロックチェーン管理システム、ブロックチェーン管理方法及びブロックチェーン管理プログラム
CN113228012A (zh) 用于鉴别fpga配置的方法和设备
US9530022B1 (en) Protection of designs for electronic systems
US10055194B2 (en) Operation based on two operands
JP5356583B2 (ja) 半導体記憶装置

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13875241

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP