PLC Program Verification Using Shared Confidential Codes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programmable logic controller (PLC) systems lack security measures to prevent corruption or tampering of control programs acquired from external sources, potentially leading to unintended and inappropriate processes.

Innovation Solution

A control system that includes a programmable controller and a program transmission apparatus, which generates and verifies unique codes for control programs using confidential data to ensure integrity, allowing only authorized and unaltered programs to be executed by the PLC.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a PLC independently acquires a program from an external source, then the ease of operation is improved, but the security is worsened due to potential corruption or tampering of the transmitted program

Engineering Contradiction:
Improveprogram acquisitionVSAvoidprogram integrity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies preliminary action by generating a verification code (hash value) in advance at the transmission side before sending the control program. This verification code is transmitted together with the program and will be used later for validation, preventing tampering issues before they can occur during program execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by having the PLC generate a verification code from the received program using the same hash function and confidential data, then compare it with the transmitted verification code. This feedback mechanism confirms program integrity by detecting any alterations that occurred during transmission or storage.

Inventive Principle:
Principle #23Feedback

2Reliability

If a verification mechanism is added to ensure program integrity, then the reliability is improved, but the device complexity increases due to additional code generation and verification steps

Engineering Contradiction:
Improveprogram integrityVSAvoidverification system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent replaces complex mechanical or procedural verification systems with a mathematical hash function-based verification mechanism. This substitution uses computational algorithms (SHA-256 or similar) to generate and verify program integrity codes, which is more efficient and less complex than traditional manual or hardware-based verification methods.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent changes the parameter of verification from potentially complex multi-step processes to a simple hash value comparison. By transforming the verification problem into a mathematical parameter (hash code) that can be easily generated and compared, the system achieves high reliability with minimal added complexity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12596344B2Control system, control program transmission method, and recording medium
Publication Date: 2026.04.07 MITSUBISHI ELECTRIC CORP
  • US12596344B2 patent drawing
  • US12596344B2 patent drawing
  • US12596344B2 patent drawing

AI summary

The control system (1000) includes a programmable logic controller (PLC) (40) to control a device, and a program transmission apparatus (10) to transmit a control program (70) for causing the PLC (40) to control the device. The program transmission apparatus (10) includes a first code generator (113) to generate a first code (71) for verification of presence or absence of a change from the control program (70) by using the control program (70) and confidential data (80). The PLC (40) includes a second code generator (433) to generate a second code by using a receiving program as the control program (70) and the confidential data (80) that is shared with the program transmission apparatus (10), and an executor (435) to execute the receiving program when the first code (71) is identical to the second code.