KR102649929B1 - Digital signature generation and verification method for low-end PLC - Google Patents

Digital signature generation and verification method for low-end PLC Download PDF

Info

Publication number
KR102649929B1
KR102649929B1 KR1020220161631A KR20220161631A KR102649929B1 KR 102649929 B1 KR102649929 B1 KR 102649929B1 KR 1020220161631 A KR1020220161631 A KR 1020220161631A KR 20220161631 A KR20220161631 A KR 20220161631A KR 102649929 B1 KR102649929 B1 KR 102649929B1
Authority
KR
South Korea
Prior art keywords
coordinate table
low
signature generation
generating
verification method
Prior art date
Application number
KR1020220161631A
Other languages
Korean (ko)
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 KR1020220161631A priority Critical patent/KR102649929B1/en
Application granted granted Critical
Publication of KR102649929B1 publication Critical patent/KR102649929B1/en

Links

Classifications

    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Programmable Controllers (AREA)

Abstract

본 발명은 스마트 공장 내 저사양 PCL(Programmable Logic Controller)의 보안 향상을 위해, 적은 메모리를 사용하면서도 전자서명 생성 및 검증 속도를 향상시키는, 저사양 PLC를 위한 전자서명 생성 및 검증 방법에 관한 것이다.The present invention relates to a method for generating and verifying electronic signatures for low-specification PLCs that improves the speed of electronic signature generation and verification while using less memory in order to improve the security of low-specification PCLs (Programmable Logic Controllers) in smart factories.

Description

저사양 PLC를 위한 전자서명 생성 및 검증 방법{Digital signature generation and verification method for low-end PLC}Digital signature generation and verification method for low-end PLC}

본 발명은 저사양 PLC를 위한 전자서명 생성 및 검증 방법에 관한 것으로, 더욱 상세하게는 스마트 공장 내 저사양 PCL(Programmable Logic Controller)의 보안 향상을 위해, 적은 메모리를 사용하면서도 전자서명 생성 및 검증 속도를 향상시킬 수 있는 저사양 PLC를 위한 전자서명 생성 및 검증 방법에 관한 것이다.The present invention relates to a method for generating and verifying electronic signatures for low-specification PLCs. More specifically, to improve the security of low-specification PCLs (Programmable Logic Controllers) in smart factories, the speed of electronic signature generation and verification is improved while using less memory. This is about a method of generating and verifying electronic signatures for low-end PLCs.

스마트 공장 시스템의 안전성이 대두 되면서 공장 내 PLC(Programmable Logic Controller)에 대한 보안 강화의 필요성이 더욱 증가하고 있다.As the safety of smart factory systems emerges, the need to strengthen security for PLCs (Programmable Logic Controllers) within factories is increasing.

스마트 공장 시스템의 보안 강화를 위해 PLC 간 수행되는 전자서명의 생성 및 검증 방법의 일환으로, 종래에는 주로 타원곡선을 이용한 전자서명 방식을 이용하고 있다.As part of the generation and verification method of electronic signatures performed between PLCs to strengthen the security of the smart factory system, electronic signatures using elliptic curves are conventionally used.

타원곡선 전자서명 생성 및 검증 알고리즘은 테이블을 참조하는 스칼라 곱셈 연산 방식을 주로 사용하고 있으며, 고정된 점 P를 이용한 스칼라 곱셈 연산의 효율성을 높일 수 잇도록 해당 좌표에 대한 사전 계산 테이블을 미리 저장함으로써 전자서명의 생성 또는 검증 시 미리 저장된 계산 테이블을 이용하여 전자서명의 생성 및 검증 속도를 향상시키게 된다.The elliptic curve electronic signature generation and verification algorithm mainly uses a scalar multiplication operation method that refers to a table, and to increase the efficiency of the scalar multiplication operation using a fixed point P, a pre-calculation table for the corresponding coordinates is stored in advance. When creating or verifying an electronic signature, the speed of creating and verifying the electronic signature is improved by using a pre-stored calculation table.

이와 같이, 유한체 연산을 이용한 전자서명의 생성 및 검증의 고속화를 위해서는 테이블 참조를 기반하는 연산 방식이 요구되고 있으나, 스마트 공장 내 PLC의 사양은 현재까지도 저사양 PLC가 대부분을 차지하고 있다. In this way, in order to speed up the creation and verification of electronic signatures using finite field operations, a calculation method based on table references is required, but the specifications of PLCs in smart factories are still mostly low-specification PLCs.

이러한 저사양 PLC 자원은 매우 한정적이기 때문에 대용량의 테이블 저장이 불가능하다는 문제점이 있으며, 종래의 테이블 참조 방법의 경우 테이블을 미리 생성하여 저장하여 사용하기 때문에, 테이블 저장에 필요한 메모리는 고정적로 할당되며, 해당 스칼라 곱셈 연산을 수행할 때만 사용되기 때문에 메모리 낭비가 발생된다는 문제점이 있다.Because these low-end PLC resources are very limited, there is a problem in that it is impossible to store large tables. In the case of the conventional table reference method, the table is created in advance, stored, and used, so the memory required to store the table is fixedly allocated, and the corresponding Since it is only used when performing scalar multiplication operations, there is a problem that memory is wasted.

이러한 문제점을 해결하기 위해 테이블 생성을 스칼라 곱셈 연산 시마다 생성을 하게 되면 연산에 요구되는 시간이 증가하여 효율성이 감소하게 된다는 문제점이 있다.To solve this problem, if a table is created every time a scalar multiplication operation is performed, the time required for the operation increases and efficiency decreases.

한편, 전술한 배경 기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.Meanwhile, the above-mentioned background technology is technical information that the inventor possessed for deriving the present invention or acquired in the process of deriving the present invention, and cannot necessarily be said to be known technology disclosed to the general public before filing the application for the present invention. .

한국등록특허 제10-0341507호Korean Patent No. 10-0341507

본 발명의 일측면은 특정 좌표 값만 미리 저장을 하고 스칼라 곱셈 연산 시 미리 저장된 특정 좌표 값을 이용하여 테이블을 확장하여 완성한 후, 완성된 테이블을 스칼라 곱셈 연산에 사용함으로써 적은 메모리 사용만으로도 최소한의 PCL 보안 성능을 보장할 수 있는 저사양 PLC를 위한 전자서명 생성 및 검증 방법을 제공한다.One aspect of the present invention is to store only specific coordinate values in advance, expand and complete the table using the specific coordinate values stored in advance during the scalar multiplication operation, and then use the completed table for the scalar multiplication operation, thereby achieving minimal PCL security with only a small amount of memory usage. Provides a method of creating and verifying electronic signatures for low-end PLCs that can guarantee performance.

본 발명의 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problem of the present invention is not limited to the technical problem mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

본 발명의 일 실시예에 따른 저사양 PLC를 위한 전자서명 생성 및 검증 방법은, 스마트 공장 내 저사양 PCL(Programmable Logic Controller)의 보안 향상을 위해, 적은 메모리를 사용하면서도 전자서명 생성 및 검증 속도를 향상시킨다.The electronic signature generation and verification method for low-specification PLC according to an embodiment of the present invention improves the speed of electronic signature generation and verification while using less memory to improve the security of low-specification PCL (Programmable Logic Controller) in smart factories. .

상기 저사양 PLC를 위한 전자서명 생성 및 검증 방법은,The electronic signature generation and verification method for the low-end PLC is,

스칼라 곱셈 연산을 위해 설정된 모든 고정좌표 중 일부 고정좌표만 저장된 부분 좌표 테이블을 생성하는 단계;Creating a partial coordinate table in which only some fixed coordinates are stored among all fixed coordinates set for a scalar multiplication operation;

상기 부분 좌표 테이블을 참조하여 모든 고정좌표가 포함된 확장 좌표 테이블을 생성하는 단계;generating an extended coordinate table including all fixed coordinates by referring to the partial coordinate table;

상기 확장 좌표 테이블에 기초하여 스칼라 곱셈 연산을 수행하는 단계; 및performing a scalar multiplication operation based on the extended coordinate table; and

스칼라 곱셈 연산 결과에 기초하여 전자서명을 생성하는 단계를 포함한다.It includes generating a digital signature based on the result of the scalar multiplication operation.

상술한 본 발명의 일측면에 따르면, 특징좌표를 모두 저장하지 않고, 베이스를 최소한으로 선택하여 선택된 베이스들을 조합하는 연산을 통해 특징좌표를 도출함으로써 데이터 저장을 위한 메모리는 적게 소모하면서도 전사서명의 생성 및 검증을 위한 연산속도를 보장할 수 있다.According to one aspect of the present invention described above, rather than storing all of the feature coordinates, the feature coordinates are derived through an operation that selects the minimum number of bases and combines the selected bases, thereby generating a transfer signature while consuming less memory for data storage. and operation speed for verification can be guaranteed.

도 1은 본 발명의 일 실시예에 따른 저사양 PLC를 위한 전자서명 생성 및 검증 방법의 개략적인 구성이 도시된 도면이다.
도 2 내지 도 4는 타원곡선을 이용한 전자서명 방법의 구체적인 일 예가 도시된 도면이다.
Figure 1 is a diagram illustrating a schematic configuration of a method for generating and verifying an electronic signature for a low-end PLC according to an embodiment of the present invention.
Figures 2 to 4 are diagrams showing a specific example of an electronic signature method using an elliptic curve.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The detailed description of the present invention described below refers to the accompanying drawings, which show by way of example specific embodiments in which the present invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the invention are different from one another but are not necessarily mutually exclusive. For example, specific shapes, structures and characteristics described herein may be implemented in one embodiment without departing from the spirit and scope of the invention. Additionally, it should be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the invention. Accordingly, the detailed description that follows is not intended to be taken in a limiting sense, and the scope of the invention is limited only by the appended claims, together with all equivalents to what those claims assert, if properly described. Similar reference numbers in the drawings refer to identical or similar functions across various aspects.

이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 저사양 PLC를 위한 전자서명 생성 및 검증 방법의 개략적인 흐름이 도시된 순서도이다.Figure 1 is a flowchart showing a schematic flow of a method for generating and verifying an electronic signature for a low-end PLC according to an embodiment of the present invention.

본 발명에 따른 저사양 PLC를 위한 전자서명 생성 및 검증 방법은 스마트 공장 내 저사양 PCL(Programmable Logic Controller)의 보안 향상을 위해, 적은 메모리를 사용하면서도 전자서명 생성 및 검증 속도를 향상시키는 것을 목적으로 한다.The purpose of the electronic signature generation and verification method for low-specification PLC according to the present invention is to improve the speed of electronic signature generation and verification while using less memory in order to improve the security of low-specification PCL (Programmable Logic Controller) in a smart factory.

현재 많이 사용되는 타원곡선 전자서명 서명 생성/검증 방법은 테이블을 참조하는 스칼라 곱셈 연산 방식을 많이 사용하고 있다.The currently widely used elliptic curve electronic signature signature generation/verification method often uses a scalar multiplication operation method that refers to a table.

특히, 서명 생성/검증 시 고정된 점 P를 이용하여 스칼라 곱셈 연산을 효율적으로 하기 위해서 해당 좌표에 대한 사전 계산 테이블을 미리 저장하고, 서명 생성/검증 연산 시 저장된 사전 계산 테이블을 사용한다.In particular, in order to efficiently perform a scalar multiplication operation using a fixed point P when generating/verifying a signature, a pre-calculation table for the relevant coordinates is stored in advance, and the stored pre-calculation table is used during signature generation/verification operations.

이 때, 테이블에 저장된 사전 계산 점들이 많을 수록 서명 생성/검증 속도가 향상된다.At this time, the more pre-calculated points stored in the table, the faster the signature generation/verification speed.

예를 들어, P-256 타원곡선에서 테이블 저장 시 사용되는 메모리 및 연산수는 아래 표 1과 같으며, 연산 방법은 도 2에 도시된 바와 같다.For example, the memory and operation numbers used when storing a table in the P-256 elliptic curve are as shown in Table 1 below, and the calculation method is as shown in Figure 2.

[표 1][Table 1]

이와 같이, 종래의 테이블 참조 방법의 경우는 테이블을 기 생성하여 저장하여 사용하기 때문에 테이블 저장에 필요한 메모리는 고정되게 해당 스칼라 곱셈 연산을 수행할 때만 사용되기 때문에 메모리 낭비가 발생된다. 그렇다고 하더라도 테이블 생성을 스칼라 곱셈 연산 시마다 생성을 하게 되면 연산의 효율성이 떨어진다는 문제점이 있다.As such, in the case of the conventional table reference method, since the table is already created, stored, and used, the memory required to store the table is fixed and used only when performing the corresponding scalar multiplication operation, resulting in memory waste. Even so, there is a problem that if the table is created every time a scalar multiplication operation is performed, the efficiency of the operation decreases.

이와 같은 문제점을 해결하기 위해, 본 발명에 따른 저사양 PLC를 위한 전자서명 생성 및 검증 방법은 특징좌표를 모두 저장하지 않고, 베이스를 최소한으로 선택하여, 선택된 베이스들을 조합하는 연산을 통해 특징좌표를 도출해내는 방법으로, 메모리를 적게 차지하게 하면서, 연산속도도 어느정도 향상시킬 수 있는 것을 특징으로 한다.To solve this problem, the electronic signature generation and verification method for a low-end PLC according to the present invention does not store all feature coordinates, but selects the minimum number of bases and derives feature coordinates through an operation that combines the selected bases. This method is characterized by being able to improve the calculation speed to some extent while taking up less memory.

구체적으로, 본 발명에 따른 저사양 PLC를 위한 전자서명 생성 및 검증 방법은 스칼라 곱셈 연산을 위해 설정된 모든 고정좌표 중 일부 고정좌표만 저장된 부분 좌표 테이블을 생성하는 단계(S100); 상기 부분 좌표 테이블을 참조하여 모든 고정좌표가 포함된 확장 좌표 테이블을 생성하는 단계(S200); 상기 확장 좌표 테이블에 기초하여 스칼라 곱셈 연산을 수행하는 단계(S300); 및 스칼라 곱셈 연산 결과에 기초하여 전자서명을 생성하는 단계(S400)를 포함한다.Specifically, the method for generating and verifying an electronic signature for a low-end PLC according to the present invention includes the steps of generating a partial coordinate table in which only some fixed coordinates are stored among all fixed coordinates set for a scalar multiplication operation (S100); Generating an extended coordinate table including all fixed coordinates by referring to the partial coordinate table (S200); performing a scalar multiplication operation based on the extended coordinate table (S300); and generating a digital signature based on the scalar multiplication operation result (S400).

일 실시예에서, 부분 좌표 테이블을 생성하는 단계에서는 윈도우 사이즈에 따라 (2^x)P를 저장한다. 예를 들어, P-256 타원곡선에서 윈도우 사이즈가 4인 경우, (2^192)P, (2^128)P, (2^64)P, P의 특징을 갖는 특징좌표가 저장될 수 있다.In one embodiment, in the step of generating a partial coordinate table, (2^x)P is stored according to the window size. For example, if the window size is 4 in the P-256 elliptic curve, feature coordinates with features of (2^192)P, (2^128)P, (2^64)P, and P can be stored. .

일 실시예에서, 부분 좌표 테이블을 참조하여 모든 고정좌표가 포함된 확장 좌표 테이블을 생성하는 단계에서는 상술한 실시예에 따라 미리 저장된 부분 좌표 테이블을 이용하여 테이블을 확장할 수 있다.In one embodiment, in the step of generating an expanded coordinate table including all fixed coordinates with reference to the partial coordinate table, the table may be expanded using the partial coordinate table previously stored according to the above-described embodiment.

예를 들어, (2^192)P, (2^128)P, (2^64)P, P를 이용하여 테이블을 확장하는 경우, 도 3에 도시된 바와 같이 4개 좌표 테이블에서 15개 테이블로 확장되며 11개의 ADD가 필요하다. 이와 같은 경우, (2^64)P+P, (2^128)P+P, (2^192)P+P, (2^128)P+(2^64)P, (2^192)P+(2^64)P, (2^192)P+(2^128)P, (2^128)P+(2^64)P+P, (2^192)P+(2^64)P+P, (2^192)P+(2^128)P+P, (2^192)P+(2^128)P+(2^64)P, (2^192)P+(2^128)P+(2^64)P+P로 테이블이 확장될 수 있다.For example, when expanding a table using (2^192)P, (2^128)P, (2^64)P, P, 15 tables are created from 4 coordinate tables as shown in Figure 3. It expands to and requires 11 ADDs. In cases like this, (2^64)P+P, (2^128)P+P, (2^192)P+P, (2^128)P+(2^64)P, (2^192)P+ (2^64)P, (2^192)P+(2^128)P, (2^128)P+(2^64)P+P, (2^192)P+(2^64)P+P, (2^192)P+(2^128)P+P, (2^192)P+(2^128)P+(2^64)P, (2^192)P+(2^128)P+(2^64) )The table can be expanded with P+P.

구체적으로, 테이블 생성의 목표는 도 2에 도시된 스텝 1의 precomputation의 값들을 계산하는 것으로, 도 2에서 w=4라고 했을때, 계산되어야 하는 값은 [a_3, a_2, a_1, a_0]P 가 되고 a_3, a_2, a_1, a_0는 0 또는 1이다. Specifically, the goal of table creation is to calculate the precomputation values of step 1 shown in Figure 2. When w=4 in Figure 2, the value to be calculated is [a_3, a_2, a_1, a_0]P. and a_3, a_2, a_1, and a_0 are 0 or 1.

이러한 경우, 저장하는 좌표값은 [1,0,0,0]P = (2^192)P, [0,1,0,0]P = (2^128)P, [0,0,1,0]P = (2^64)P, [0,0,0,1]P = P 가 저장되며, 확장하는 방법은 다음과 같다.In this case, the coordinate values to be stored are [1,0,0,0]P = (2^192)P, [0,1,0,0]P = (2^128)P, [0,0,1 ,0]P = (2^64)P, [0,0,0,1]P = P are stored, and the method of expansion is as follows.

[0,0,1,1]P = (2^64)P+P = [0,0,1,0]P + [0,0,0,1]P[0,0,1,1]P = (2^64)P+P = [0,0,1,0]P + [0,0,0,1]P

[0,1,0,1]P = (2^128)P+P = [0,1,0,0]P + [0,0,0,1]P[0,1,0,1]P = (2^128)P+P = [0,1,0,0]P + [0,0,0,1]P

[1,0,0,1]P = (2^192)P+P = [1,0,0,0]P + [0,0,0,1]P[1,0,0,1]P = (2^192)P+P = [1,0,0,0]P + [0,0,0,1]P

[0,1,1,0]P = (2^128)P+(2^64)P = [0,1,0,0]P + [0,0,1,0]P[0,1,1,0]P = (2^128)P+(2^64)P = [0,1,0,0]P + [0,0,1,0]P

[1,0,1,0]P = (2^192)P+(2^64)P = [1,0,0,0]P + [0,0,1,0]P [1,0,1,0]P = (2^192)P+(2^64)P = [1,0,0,0]P + [0,0,1,0]P

[1,1,0,0]P = (2^192)P+(2^128)P = [1,0,0,0]P + [0,1,0,0]P [1,1,0,0]P = (2^192)P+(2^128)P = [1,0,0,0]P + [0,1,0,0]P

[0,1,1,1]P = (2^128)P+(2^64)P+P = [0,1,1,0]P + [0,0,0,1]P [0,1,1,1]P = (2^128)P+(2^64)P+P = [0,1,1,0]P + [0,0,0,1]P

[1,0,1,1]P = (2^192)P+(2^64)P+P = [1,0,1,0]P + [0,0,0,1]P [1,0,1,1]P = (2^192)P+(2^64)P+P = [1,0,1,0]P + [0,0,0,1]P

[1,1,0,1]P = (2^192)P+(2^128)P+P = [1,1,0,0]P + [0,0,0,1]P [1,1,0,1]P = (2^192)P+(2^128)P+P = [1,1,0,0]P + [0,0,0,1]P

[1,1,1,0]P = (2^192)P+(2^128)P+(2^64)P = [1,1,0,0]P + [0,0,1,0]P[1,1,1,0]P = (2^192)P+(2^128)P+(2^64)P = [1,1,0,0]P + [0,0,1,0] P

[1,1,1,1]P = (2^192)P+(2^128)P+(2^64)P+P = [1,1,1,0]P + [0,0,0,1]P[1,1,1,1]P = (2^192)P+(2^128)P+(2^64)P+P = [1,1,1,0]P + [0,0,0, 1]P

이와 같이 했을 때 타원곡선 덧셈 연산(ADD)가 11번 추가된다.When doing this, the elliptic curve addition operation (ADD) is added 11 times.

여기서, 타원곡선 뎃셈 연산(ADD)은 하기 수학식 및 도 4에 도시된 알고리즘을 이용하여 연산된다.Here, the elliptic curve addition operation (ADD) is calculated using the following equation and the algorithm shown in FIG. 4.

[수학식][Equation]

몇몇 다른 실시예에서, 본 발명에 따른 저사양 PLC를 위한 전자서명 생성 및 검증 방법은 미리 저장된 부분 좌표 테이블을 암호화하는 단계(미도시)를 더 포함할 수 있다.In some other embodiments, the method of generating and verifying an electronic signature for a low-end PLC according to the present invention may further include the step of encrypting a pre-stored partial coordinate table (not shown).

암호화 단계는 부분 좌표 테이블을 구성하는 데이터를 소정 크기의 열과 행으로 구성된 데이터 행렬로 변환하여 데이터 행렬에 따라 나열된 각각의 비트에 2차원 좌표값을 설정한다.The encryption step converts the data constituting the partial coordinate table into a data matrix composed of columns and rows of a predetermined size and sets a two-dimensional coordinate value for each bit listed according to the data matrix.

이후, 암호화 단계에서는 소정 크기의 열과 행으로 구성된 데이터 행렬을 이미지화하여, 이미지로부터 적어도 하나의 특징점을 추출하고, 추출된 특징점에 기초하여 데이터 행렬에 따라 나열된 각각의 비트를 시프트함으로써 부분 좌표 테이블을 암호화할 수 있다.Afterwards, in the encryption step, a data matrix consisting of columns and rows of a predetermined size is imaged, at least one feature point is extracted from the image, and the partial coordinate table is encrypted by shifting each bit listed according to the data matrix based on the extracted feature point. can do.

구체적으로, 암호화 단계는 부분 좌표 테이블을 구성하는 비트열을 미리 정해진 크기의 행렬로 나열할 수 있다.Specifically, the encryption step may list the bit strings constituting the partial coordinate table as a matrix of a predetermined size.

예컨대, 예컨대, 암호화 단계에서는 가로로 최대 10개의 비트가 나열되도록 부분 좌표 테이블을 구성하는 비트열을 나열하며, 첫번째부터 열번째 비트는 1열에, 열한번째 비트부터 스무번째 비트는 2열에 나열하여 n열로 구성된 행렬에 따라 비트를 나열할 수 있다.For example, in the encryption stage, the bit strings that make up the partial coordinate table are listed so that up to 10 bits are listed horizontally, with the first to tenth bits listed in column 1 and the eleventh to twentieth bits in column two, making n columns. Bits can be arranged according to the constructed matrix.

이때, 암호화 단계는 가장 먼저 매핑된 데이터 영역 (1, 1)의 2차원 좌표값을 부여하고, 두번째로 나열 데이터는 (1, 2)의 2차원 좌표값을 부여하며, 이와 같은 방법으로 가장 나중에 배열된 데이터는(n, m)의 2차원 좌표값이 할당될 수 있다.At this time, the encryption step gives the two-dimensional coordinate value of the first mapped data area (1, 1), and secondly, the two-dimensional coordinate value of (1, 2) is given to the listed data, and in this way, the last Arranged data may be assigned two-dimensional coordinate values of (n, m).

이후, 암호화 단계는 데이터 행렬 정보를 이미지로 변환할 수 있다.Afterwards, the encryption step may convert the data matrix information into an image.

암호화 단계는 생성된(변환된) 이미지를 적어도 두 영역으로 분할한다. 일 실시예에서, 암호화 단계는 미리 설정된 영역에 따라 이미지를 두 영역으로 분할할 수 있다. 일 실시예에서, 암호화 단계는 생성된 이미지로부터 제1 영역으로부터 적어도 세 개의 특징점을 추출하여 제1 특징점 그룹을 생성하고, 제2 영역으로부터 세 개의 특징점을 추출하여 제2 특징점 그룹을 생성한다.The encryption step divides the generated (converted) image into at least two regions. In one embodiment, the encryption step may split the image into two regions according to a preset region. In one embodiment, the encryption step generates a first feature point group by extracting at least three feature points from the first area of the generated image, and creates a second feature point group by extracting three feature points from the second region.

암호화 단계는 제1 특징점 그룹을 구성하는 적어도 세 개의 특징점을 연결하는 제1 특징도형을 생성하고, 제2 특징점 그룹을 구성하는 적어도 세 개의 특징점을 연결하는 제2 특징도형을 생성한다.The encryption step generates a first feature shape connecting at least three feature points constituting the first feature point group, and generates a second feature figure connecting at least three feature points constituting the second feature point group.

이후, 암호화 단계는 제1 특징도형의 무게중심을 추출하여 제1 무게중심으로 설정하고, 제2 특징도형의 무게중심을 추출하여 제2 무게중심으로 설정한다.Afterwards, in the encryption step, the center of gravity of the first feature shape is extracted and set as the first center of gravity, and the center of gravity of the second feature figure is extracted and set as the second center of gravity.

계속해서, 암호화 단계는, 이미지 상에 상기 제1 무게중심 및 상기 제2 무게중심을 표시하여, 상기 제1 무게중심의 가로 축 픽셀좌표값을 제1 난수로 설정하고, 상기 제1 무게중심의 세로 축 픽셀좌표값을 제2 난수로 설정하고, 상기 제2 무게중심의 가로 축 픽셀좌표값을 제3 난수로 설정하고, 상기 제2 무게중심의 세로 축 픽셀좌표값을 제4 난수로 설정한다.Subsequently, the encryption step displays the first center of gravity and the second center of gravity on the image, sets the horizontal axis pixel coordinate value of the first center of gravity to a first random number, and sets the horizontal axis pixel coordinate value of the first center of gravity to a first random number. The vertical axis pixel coordinate value is set to a second random number, the horizontal axis pixel coordinate value of the second center of gravity is set to a third random number, and the vertical axis pixel coordinate value of the second center of gravity is set to a fourth random number. .

암호화 단계는, 데이터 행렬을 구성하는 각각의 비트를 제4 난수만큼 가로 방향으로 시프트한 후, 제1 난수만큼 세로 방향으로 시프트한 1차 변형 행렬 데이터를 생성한다.In the encryption step, each bit constituting the data matrix is horizontally shifted by a fourth random number and then vertically shifted by a first random number to generate primary transformation matrix data.

마지막으로, 암호화 단계는, 1차 변형 행렬 데이터를 구성하는 각각의 비트열을 제2 난수만큼 가로 방향으로 시프트한 후, 제3 난수만큼 세로 방향으로 시프트한 2차 변형 행렬 데이터를 생성한다. Finally, in the encryption step, each bit string constituting the first transformation matrix data is horizontally shifted by a second random number and then vertically shifted by a third random number to generate secondary transformation matrix data.

일 실시예에서, 암호화 단계는 ARIA(Academy Research Institute Agency), ECC(Elliptic Curve Cryptosystem) 등과 같은 경량 암 복호화 알고리즘을 이용하여 암 복호화 절차를 구현할 수도 있다.In one embodiment, the encryption step may implement an encryption and decryption procedure using a lightweight encryption and decryption algorithm such as ARIA (Academy Research Institute Agency), ECC (Elliptic Curve Cryptosystem), etc.

한편, 암호화 단계는 데이터 행렬이 시프트되어 암호화된 펌웨어를 전송하는 과정에서, 암호화 단계에 의해 생성된 네 개의 난수정보를 ECU로 함께 전송한다.Meanwhile, in the encryption step, the data matrix is shifted and the encrypted firmware is transmitted, and the four random number information generated by the encryption step are transmitted together to the ECU.

이에 따라, ECU는 수신된 난수 정보들에 기초하여 변형된 행렬 데이터를 원래의 행렬로 복조하여 펌웨어 업데이트 과정을 수행할 수 있다.Accordingly, the ECU can perform a firmware update process by demodulating the transformed matrix data into the original matrix based on the received random number information.

이와 같은, 본 발명에 따른 기술은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.As such, the technology according to the present invention may be implemented as an application or in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc., singly or in combination.

상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.The program instructions recorded on the computer-readable recording medium may be those specifically designed and configured for the present invention, or may be known and usable by those skilled in the computer software field.

컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and perform program instructions, such as ROM, RAM, flash memory, etc.

프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of program instructions include not only machine language code such as that created by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the invention and vice versa.

이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 공간으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to embodiments, those skilled in the art will understand that various modifications and changes can be made to the present invention without departing from the spirit and space of the present invention as set forth in the following patent claims. You will be able to.

Claims (3)

스마트 공장 내 저사양 PLC(Programmable Logic Controller)의 보안 향상을 위해, 적은 메모리를 사용하면서도 전자서명 생성 및 검증 속도를 향상시키는, 저사양 PLC를 위한 전자서명 생성 및 검증 방법에 있어서,
상기 저사양 PLC를 위한 전자서명 생성 및 검증 방법은,
스칼라 곱셈 연산을 위해 설정된 모든 고정좌표 중 일부 고정좌표만 저장된 부분 좌표 테이블을 생성하는 단계;
상기 부분 좌표 테이블을 참조하여 모든 고정좌표가 포함된 확장 좌표 테이블을 생성하는 단계;
상기 확장 좌표 테이블에 기초하여 스칼라 곱셈 연산을 수행하는 단계; 및
스칼라 곱셈 연산 결과에 기초하여 전자서명을 생성하는 단계를 포함하고,
상기 부분 좌표 테이블을 생성하는 단계는,
윈도우 사이즈에 따라 특징좌표의 개수가 결정되되, P-256 타원곡선에서 윈도우 사이즈가 4인 경우 (2^192)P, (2^128)P, (2^64)P 및 P의 특징값을 갖는 특징좌표가 저장되는 것을 특징으로 하고,
상기 부분 좌표 테이블을 참조하여 모든 고정좌표가 포함된 확장 좌표 테이블을 생성하는 단계는,
하기 수학식에 따른 타원곡선 덧셈 연산 결과에 기초하여 확장 좌표 테이블의 연산 결과값이 결정되는 것을 특징으로 하며,

[수학식]


상기 저사양 PLC를 위한 전자서명 생성 및 검증 방법은,
미리 저장된 부분 좌표 테이블을 암호화하는 단계를 더 포함하고,
상기 미리 저장된 부분 좌표 테이블을 암호화하는 단계는,
부분 좌표 테이블을 구성하는 데이터를 소정 크기의 열과 행으로 구성된 데이터 행렬로 변환하여 데이터 행렬에 따라 나열된 각각의 비트에 2차원 좌표값을 설정하고,
소정 크기의 열과 행으로 구성된 데이터 행렬을 이미지화하여, 이미지로부터 적어도 하나의 특징점을 추출하고, 추출된 특징점에 기초하여 데이터 행렬에 따라 나열된 각각의 비트를 시프트함으로써 부분 좌표 테이블을 암호화하는 것을 특징으로 하는, 저사양 PLC를 위한 전자서명 생성 및 검증 방법.

In order to improve the security of low-end PLCs (Programmable Logic Controllers) in smart factories, an electronic signature generation and verification method for low-end PLCs that improves the speed of creating and verifying electronic signatures while using less memory,
The electronic signature generation and verification method for the low-end PLC is,
Creating a partial coordinate table in which only some fixed coordinates are stored among all fixed coordinates set for a scalar multiplication operation;
generating an extended coordinate table including all fixed coordinates by referring to the partial coordinate table;
performing a scalar multiplication operation based on the extended coordinate table; and
Including generating a digital signature based on the result of the scalar multiplication operation,
The step of generating the partial coordinate table is,
The number of feature coordinates is determined according to the window size, but in the P-256 elliptic curve, if the window size is 4, the feature values of (2^192)P, (2^128)P, (2^64)P and P are Characterized by storing feature coordinates,
The step of generating an extended coordinate table containing all fixed coordinates by referring to the partial coordinate table,
Characterized in that the operation result value of the extended coordinate table is determined based on the result of the elliptic curve addition operation according to the following equation,

[Equation]


The electronic signature generation and verification method for the low-end PLC is,
further comprising encrypting the pre-stored partial coordinate table,
The step of encrypting the pre-stored partial coordinate table includes:
The data constituting the partial coordinate table is converted into a data matrix composed of columns and rows of a predetermined size, and two-dimensional coordinate values are set for each bit listed according to the data matrix,
Characterized by imaging a data matrix composed of columns and rows of a predetermined size, extracting at least one feature point from the image, and encrypting the partial coordinate table by shifting each bit listed according to the data matrix based on the extracted feature point. , Electronic signature generation and verification method for low-end PLC.

삭제delete 삭제delete
KR1020220161631A 2022-11-28 2022-11-28 Digital signature generation and verification method for low-end PLC KR102649929B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220161631A KR102649929B1 (en) 2022-11-28 2022-11-28 Digital signature generation and verification method for low-end PLC

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220161631A KR102649929B1 (en) 2022-11-28 2022-11-28 Digital signature generation and verification method for low-end PLC

Publications (1)

Publication Number Publication Date
KR102649929B1 true KR102649929B1 (en) 2024-03-21

Family

ID=90472334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220161631A KR102649929B1 (en) 2022-11-28 2022-11-28 Digital signature generation and verification method for low-end PLC

Country Status (1)

Country Link
KR (1) KR102649929B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100341507B1 (en) 1999-12-17 2002-06-21 김지윤 Elliptic Curve Cryptography and Digital Signature Method using fast finite field operations
KR20120028432A (en) * 2010-09-15 2012-03-23 고려대학교 산학협력단 Calculating apparatus and method for elliptic curve cryptography
JP2015156786A (en) * 2014-02-14 2015-08-27 ベドロック・オートメーション・プラットフォームズ・インコーポレーテッド Secure power supply related to industrial control system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100341507B1 (en) 1999-12-17 2002-06-21 김지윤 Elliptic Curve Cryptography and Digital Signature Method using fast finite field operations
KR20120028432A (en) * 2010-09-15 2012-03-23 고려대학교 산학협력단 Calculating apparatus and method for elliptic curve cryptography
JP2015156786A (en) * 2014-02-14 2015-08-27 ベドロック・オートメーション・プラットフォームズ・インコーポレーテッド Secure power supply related to industrial control system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
D. Hankerson, A. Menezes, S. Vanstone, Guide to elliptic curve cryptography, Springer, pp. 75-186(2004.)* *

Similar Documents

Publication Publication Date Title
JP4304215B2 (en) Secret sharing apparatus, method and program
JP4334582B2 (en) Secret sharing apparatus, method and program
US10778441B2 (en) Redactable document signatures
JP6804668B2 (en) Block data validation method and equipment
CN105162583B (en) A kind of single, single-stage and multistage key pair dispersing method and its system
JP2007052703A (en) Test scenario creation program, test scenario creation apparatus, and test scenario creation method
JP2007124032A (en) Secrecy distribution apparatus, method, and program
CN114221766B (en) Data encryption method, data decryption method and data encryption device
CN107315539B (en) Data storage method and data extraction method
KR102649929B1 (en) Digital signature generation and verification method for low-end PLC
US20150058639A1 (en) Encryption processing device and storage device
CN108932407B (en) Program safety protection method and device
JP6273226B2 (en) Encryption system, authentication system, encryption device, decryption device, authenticator generation device, verification device, encryption method, authentication method
JP6044628B2 (en) Random number generation device, random number generation method, object placement device, and computer program
CN110022203A (en) A kind of SM3 acceleration method and device
JP4154276B2 (en) DSP data extraction / insertion method, data extraction / insertion apparatus, and DSP
JP6011775B2 (en) Distributed apparatus, restoration apparatus, distribution method, restoration method, and distributed restoration system
KR102132685B1 (en) Apparatus and method for order-revealing encryption
CN110069757A (en) Special efficacy word edit methods and equipment
CN110113320A (en) A kind of cloud storage data integrity verification method based on Bilinear map accumulator
JP6961950B2 (en) Storage method, storage device and storage program
KR101264286B1 (en) System and method for database encryption
KR101872329B1 (en) Random number generator for supporting multi entropy pool
KR101688636B1 (en) Computation method for providing compression function for fast message hashing, and apparatus using the same
CN111669269B (en) BLK data encryption method, device and storage medium

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant