KR102536397B1 - Signature verification method performed in a computing device and a computing device performing the same method - Google Patents

Signature verification method performed in a computing device and a computing device performing the same method Download PDF

Info

Publication number
KR102536397B1
KR102536397B1 KR1020220139327A KR20220139327A KR102536397B1 KR 102536397 B1 KR102536397 B1 KR 102536397B1 KR 1020220139327 A KR1020220139327 A KR 1020220139327A KR 20220139327 A KR20220139327 A KR 20220139327A KR 102536397 B1 KR102536397 B1 KR 102536397B1
Authority
KR
South Korea
Prior art keywords
calculation
signature
coordinate system
dot
point
Prior art date
Application number
KR1020220139327A
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 KR1020220139327A priority Critical patent/KR102536397B1/en
Priority to PCT/KR2022/018917 priority patent/WO2024090659A1/en
Application granted granted Critical
Publication of KR102536397B1 publication Critical patent/KR102536397B1/en

Links

Images

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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
    • 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/3249Cryptographic 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 RSA or related signature schemes, e.g. Rabin scheme

Landscapes

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

Abstract

The present invention relates to a method for verifying signatures in a process of transmitting and receiving messages between computing devices. According to the present invention, the method for verifying signatures performed in the computing devices comprises the steps of: receiving the messages and the signatures generated by encrypting the message to be signed with a private key; point calculating a public key generated from the private key to one point on a first coordinate system defined as a finite field according to a coefficient calculated from the signatures and the messages; and verifying the signatures by comparing a result of the point calculation with the signatures, wherein the step of the point calculation is preferably performed by referring to the result of the point calculation according to the calculated coefficient or a value in a calculation table in which at least some of sub-calculations constituting the point calculation are previously stored. According to the present invention, accurate information can be provided even during high-speed driving through improved verification speed. Additionally, the present invention enables more stable information to be transmitted and received through a parameter optimized according to an autonomous driving environment.

Description

컴퓨팅 장치에서 수행되는 서명 검증 방법 및 이를 수행하는 컴퓨팅 장치{Signature verification method performed in a computing device and a computing device performing the same method}Signature verification method performed in a computing device and a computing device performing the same method}

본 발명은 컴퓨팅 장치간 메시지 송수신 과정에서 서명을 검증하는 방법에 관한 것이다.
본 발명은 2021년도 정부(과학기술정보통신부)의 재원으로 정보통신기획평가원의 지원을 받아 수행된 연구결와 관련된 것이다 (No. 2021-0-00689, n:n OBU/RSU 다중 V2N(DSRC, C-V2X)을 위한 고속, 저지연 암호 연산 자율주행 하드웨어 보안 모듈 기술 개발).
The present invention relates to a method for verifying a signature in a process of transmitting and receiving a message between computing devices.
The present invention is related to research results conducted with the support of the Information and Communication Planning and Evaluation Institute with financial resources from the government (Ministry of Science and ICT) in 2021 (No. 2021-0-00689, n:n OBU / RSU multiple V2N (DSRC, C -Development of high-speed, low-latency cryptographic operation autonomous driving hardware security module technology for V2X).

타원곡선 이론에 기반한 공개 키 암호 방식으로 타원곡선 암호(elliptic curve cryptography; ECC)는 RSA 과 같은 기존 공개 키 암호 방식에 비하여 비교적 짧은 키를 사용하면서도 그와 비슷한 수준의 안전성을 제공한다는 장점이 있다.As a public key cryptography based on the elliptic curve theory, elliptic curve cryptography (ECC) has the advantage of providing a similar level of security while using a relatively short key compared to existing public key cryptography such as RSA.

따라서, 타원곡선 암호는 IoT(Internet of Thing) 장치와 같이 전송량과 리소스가 제한된 상황이나 고속 주행 중인 차량 통신 환경에 적합한 장점이 있으며, 이러한 이유로 RSA를 대체할 차세대 공개키 암호기술로 부상하고 있다.Therefore, elliptic curve cryptography has advantages suitable for situations in which transmission volume and resources are limited, such as Internet of Thing (IoT) devices, or vehicle communication environments running at high speed. For this reason, it is emerging as a next-generation public key cryptography to replace RSA.

즉, RSA 등의 기존의 공개키 암호 방식 (public key cryptosystem)에 비해 짧은 키 길이를 이용한 타원곡선 암호를 통한 디지털 서명 및 검증 방식은 통신 프로토콜의 제한 내에서 상호 통신을 위한 과정에 응용되고 있다.That is, a digital signature and verification method through elliptic curve cryptography using a shorter key length than existing public key cryptosystems such as RSA is applied to a process for mutual communication within the limits of a communication protocol.

다만, 유한체에서 정의되는 타원곡선에 의한 서명/검증 방식은 일반적인 실수체의 연산에 비하여 높은 연산량을 요구하므로 이에 따라 보다 효율적인 검증 방법을 제공할 필요가 있다.However, since the signature/verification method based on the elliptic curve defined in the finite field requires a higher amount of calculation than the calculation of a general real object, it is necessary to provide a more efficient verification method accordingly.

본 발명은 보다 향상된 검증 속도를 갖는 타원곡선 기반의 암호화 방법을 제안하는 것을 목적으로 한다. An object of the present invention is to propose an elliptic curve-based encryption method having a more improved verification speed.

또한, 본 발명은 환경에 따라 적합한 파라미터를 제공하는 암호화 방법을 제안하는 것을 목적으로 한다.In addition, an object of the present invention is to propose an encryption method that provides suitable parameters according to the environment.

또한, 본 발명은 환경에 따라 보다 빠른 좌표계 변환 방법을 제안하는 것을 목적으로 한다.In addition, an object of the present invention is to propose a faster coordinate system conversion method according to the environment.

또한, 본 발명은 자율주행 환경에서 표준 통신 프로토콜을 고려한 파라미터를 제공하는 암호화 방법을 제안하는 것을 목적으로 한다.In addition, an object of the present invention is to propose an encryption method for providing parameters considering a standard communication protocol in an autonomous driving environment.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 컴퓨팅 장치에서 수행되는 서명 검증 방법은 서명하고자 하는 메시지를 개인키로 암호화하여 생성한 서명과 상기 메시지를 수신하는 단계; 상기 서명 및 메시지로부터 산출된 계수에 따라 상기 개인키로부터 유한체로 정의된 제1 좌표계 상의 한 점으로 생성된 공개키를 점 연산하는 단계; 및 상기 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 단계를 포함하고, 상기 점 연산하는 단계는 상기 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행하는 것이 바람직하다.A signature verification method performed in a computing device according to the present invention for solving the above technical problem includes receiving the message and a signature generated by encrypting a message to be signed with a private key; Dot-calculating a public key generated as a point on a first coordinate system defined as a finite number from the private key according to coefficients calculated from the signature and the message; and verifying the signature by comparing a result of the dot calculation with the signature, wherein the performing of the dot calculation comprises a result of the dot calculation or at least some of sub-operations constituting the dot calculation according to the calculated coefficients. It is desirable to perform the operation by referring to the value in the operation table previously stored.

상기 수신하는 단계는 상기 공개키에 대한 적어도 하나 이상의 스칼라 곱의 연산 결과를 수신하고, 상기 연산 테이블은 수신된 연산 결과를 이용하여 상기 공개키의 순차적인 스칼라 곱의 연산 결과 리스트를 생성하여 저장한 것이 바람직하다.The receiving step receives an operation result of at least one scalar multiplication of the public key, and the operation table generates and stores an operation result list of sequential scalar multiplication of the public key using the received operation result. it is desirable

상기 연산 테이블은 제1 좌표계로 수신된 상기 공개키의 스칼라 곱의 연산 결과를 제2 좌표계로 변환하여 상기 연산 결과 리스트를 생성하고, 상기 연산 결과 리스트를 제1 좌표계로 변환하여 저장한 것이 바람직하다.Preferably, the calculation table generates the calculation result list by converting the calculation result of the scalar product of the public key received in the first coordinate system into the second coordinate system, and converts the calculation result list into the first coordinate system and stores the result. .

상기 점 연산하는 단계는, 상기 점 연산을 구성하는 하위 연산을 상기 연산 테이블 내 저장된 스칼라 곱의 감산으로 구분하는 것이 바람직하다.In the step of calculating the dot, it is preferable to divide sub-arithmetic operations constituting the dot calculation into subtraction of scalar products stored in the calculation table.

상기 점 연산하는 단계는 상기 하위 연산 중 역원을 필요로 하는 상기 제1 하위 연산을 제2 좌표계의 상기 제2 하위 연산으로 변환하고, 상기 제2 하위 연산의 결과를 상기 연산 테이블로부터 추출하는 것이 바람직하다.Preferably, the step of calculating the point converts the first sub-operation requiring an inverse among the sub-operations into the second sub-operation of a second coordinate system, and extracts a result of the second sub-operation from the calculation table. do.

상기 연산 테이블의 좌표계는 컴퓨팅 장치의 리소스 가용량에 따라 미리 결정되는 것이 바람직하다.Preferably, the coordinate system of the arithmetic table is determined in advance according to the available resource capacity of the computing device.

상기 서명은 임의의 난수에 따라 상기 제1 좌표계 상의 임의의 기준점을 스칼라 곱함으로써 생성되고, 상기 점 연산하는 단계는 상기 기준점과 상기 공개키를 상기 산출된 계수에 따라 점 연산하는 것이 바람직하다.Preferably, the signature is generated by scalar multiplication of an arbitrary reference point on the first coordinate system according to a random number, and in the dot calculation step, the reference point and the public key are dot-calculated according to the calculated coefficient.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 컴퓨팅 장치에서 수행되는 서명 검증 방법을 수행하는 컴퓨팅 장치는 프로세서; 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드하는 메모리; 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 서명하고자 하는 메시지를 개인키로 암호화하여 생성한 서명과 상기 메시지를 수신하는 동작, 상기 서명 및 메시지로부터 산출된 계수에 따라 상기 개인키로부터 유한체로 정의된 제1 좌표계 상의 한 점으로 생성된 공개키를 점 연산하는 동작, 상기 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 동작을 포함하고, 상기 점 연산하는 동작은 상기 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행하는 것이 바람직하다.A computing device for performing a signature verification method performed in a computing device according to the present invention for solving the above technical problem includes a processor; a memory for loading a computer program executed by the processor; and a storage for storing the computer program, wherein the computer program includes an operation of receiving a signature generated by encrypting a message to be signed with a private key and the message, and converting the message to the private key according to a coefficient calculated from the signature and the message. an operation of performing a dot calculation on a public key generated as a point on a first coordinate system defined as a finite field from , and an operation of verifying the signature by comparing a result of the dot calculation with the signature; It is preferable to perform the calculation by referring to a result of the point calculation or a value in an calculation table pre-stored at least some of the sub-calculations constituting the point calculation according to the calculated coefficient.

상기 수신하는 동작은 상기 공개키에 대한 적어도 하나 이상의 스칼라 곱의 연산 결과를 수신하고, 상기 연산 테이블은 수신된 연산 결과를 이용하여 상기 공개키의 순차적인 스칼라 곱의 연산 결과 리스트를 생성하여 저장한 것이 바람직하다.The receiving operation receives an operation result of at least one scalar multiplication of the public key, and the operation table generates and stores an operation result list of sequential scalar multiplication of the public key using the received operation result. it is desirable

상기 연산 테이블은 제1 좌표계로 수신된 상기 공개키의 스칼라 곱의 연산 결과를 제2 좌표계로 변환하여 상기 연산 결과 리스트를 생성하고, 상기 연산 결과 리스트를 제1 좌표계로 변환하여 저장한 것이 바람직하다.Preferably, the calculation table generates the calculation result list by converting the calculation result of the scalar product of the public key received in the first coordinate system into the second coordinate system, and converts the calculation result list into the first coordinate system and stores the result. .

상기 점 연산하는 동작은, 상기 점 연산을 구성하는 하위 연산을 상기 연산 테이블 내 저장된 스칼라 곱의 감산으로 구분하는 것이 바람직하다.In the operation of performing the dot calculation, it is preferable to divide sub-operations constituting the dot calculation into subtraction of scalar products stored in the calculation table.

상기 점 연산하는 동작은 상기 하위 연산 중 역원을 필요로 하는 상기 제1 하위 연산을 제2 좌표계의 상기 제2 하위 연산으로 변환하고,The point calculation operation converts the first sub-operation requiring an inverse among the sub-operations into the second sub-operation of a second coordinate system,

상기 제2 하위 연산의 결과를 상기 연산 테이블로부터 추출하는 것이 바람직하다.Preferably, a result of the second sub-operation is extracted from the operation table.

상기 연산 테이블의 좌표계는 컴퓨팅 장치의 리소스 가용량에 따라 미리 결정되는 것이 바람직하다.Preferably, the coordinate system of the arithmetic table is determined in advance according to the available resource capacity of the computing device.

상기 서명은 임의의 난수에 따라 상기 제1 좌표계 상의 임의의 기준점을 스칼라 곱함으로써 생성되고, 상기 점 연산하는 단계는 상기 기준점과 상기 공개키를 상기 산출된 계수에 따라 점 연산하는 것이 바람직하다.Preferably, the signature is generated by scalar multiplication of an arbitrary reference point on the first coordinate system according to a random number, and in the dot calculation step, the reference point and the public key are dot-calculated according to the calculated coefficient.

본 발명에 따르면, 보다 향상된 검증 속도를 통해 제약된 환경에서도 정확한 정보를 신속하게 제공받을 수 있다.According to the present invention, accurate information can be quickly provided even in a restricted environment through a more improved verification speed.

또한, 본 발명은 환경에 따라 최적화된 파라미터를 통해 보다 안정성 높은 정보의 송수신이 가능하다.In addition, according to the present invention, it is possible to transmit and receive information with higher stability through parameters optimized according to the environment.

또한, 본 발명은 표준 통신 프로토콜 내에서 제공되는 정보를 통해 향상된 연산을 수행하고 이종 환경의 인프라나 다른 사용자들과도 메시지를 안전하게 송수신 할 수 있도록 한다.In addition, the present invention enables advanced calculations to be performed through information provided within a standard communication protocol, and messages can be safely transmitted and received even with heterogeneous infrastructure or other users.

도 1은 본 발명의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 서명 검증 방법이 적용되는 환경을 나타낸 예시도이다.
도 2는 종래의 타원곡선 기반의 디지털 서명의 생성을 위한 수도 코드를 나타낸 예시도이다.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 서명 검증 방법을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 서명 검증 방법의 세부 과정을 나타낸 흐름도이다.
도 5 내지 6은 본 발명의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 서명 검증 방법에서 생성된 연산 테이블을 나타낸 예시도이다.
도 7은 본 발명의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 서명의 검증을 위한 수도 코드를 나타낸 예시도이다.
도 8은 본 발명의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 서명 검증 방법의 세부 과정을 나타낸 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 서명 검증 방법의 실시예를 나타낸 예시도이다.
도 10은 본 발명의 일 실시예들에 따른 서명 검증 방법을 수행하는 컴퓨팅 장치 형태의 구현을 나타낸 예시도이다.
1 is an exemplary diagram illustrating an environment to which a signature verification method performed in a computing device according to an embodiment of the present invention is applied.
2 is an exemplary view showing a number code for generating a digital signature based on a conventional elliptic curve.
3 is a flowchart illustrating a signature verification method performed in a computing device according to an embodiment of the present invention.
4 is a flowchart illustrating detailed processes of a signature verification method performed in a computing device according to an embodiment of the present invention.
5 and 6 are exemplary diagrams illustrating an operation table generated in a signature verification method performed in a computing device according to an embodiment of the present invention.
7 is an exemplary diagram illustrating pseudocodes for signature verification performed in a computing device according to an embodiment of the present invention.
8 is a flowchart illustrating detailed processes of a signature verification method performed in a computing device according to an embodiment of the present invention.
9 is an exemplary diagram illustrating an embodiment of a signature verification method performed in a computing device according to an embodiment of the present invention.
10 is an exemplary diagram illustrating an implementation in the form of a computing device that performs a signature verification method according to an embodiment of the present invention.

이하의 내용은 단지 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시 되지 않았지만 발명의 원리를 구현하고 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시 예들은 원칙적으로, 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이외같이 특별히 열거된 실시 예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. The following merely illustrates the principle of the invention. Therefore, those skilled in the art can invent various devices that embody the principles of the invention and fall within the concept and scope of the invention, even though not explicitly described or shown herein. In addition, all conditional terms and embodiments listed in this specification are, in principle, clearly intended only for the purpose of understanding the concept of the invention, and it should be understood that it is not limited to the specifically listed embodiments and conditions. .

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. The above objects, features and advantages will become more apparent through the following detailed description in conjunction with the accompanying drawings, and accordingly, those skilled in the art to which the invention belongs will be able to easily implement the technical idea of the invention. .

또한, 발명을 설명함에 있어서 발명과 관련된 공지 기술에 대한 구체적인 설명이 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하에는 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예에 대해 상세하게 설명한다.In addition, in describing the invention, if it is determined that a detailed description of a known technology related to the invention may unnecessarily obscure the subject matter of the invention, the detailed description will be omitted. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 고속 서명 검증 방법이 수행되는 환경을 예시하는 예시도이다.1 is an exemplary diagram illustrating an environment in which a high-speed signature verification method according to an embodiment of the present invention is performed.

도 1을 참고하면, 일 실시예에서 본 발명에 따른 고속 서명 검증 방법은 주행중인 차량(200)을 중심으로 차량(200)이 다른 차량(200) 또는 노변 인프라(400)와 통신을 수행하는 환경에 적용될 수 있다.Referring to FIG. 1 , in an embodiment, the high-speed signature verification method according to the present invention is an environment in which a vehicle 200 communicates with another vehicle 200 or a roadside infrastructure 400 centered on a vehicle 200 in motion. can be applied to

구체적으로 각 수신 주체는 내부의 컴퓨팅 장치(300)를 통해 표준 규약된 통신 프로토콜 상에서 수신되는 정보 내에서 파라미터를 추출하고 디지털 서명으로 암호화된 메시지를 검증함으로써 해당 메시지에 대한 처리를 수행한다.Specifically, each receiving subject extracts a parameter from information received on a standardized communication protocol through the internal computing device 300 and verifies a message encrypted with a digital signature, thereby processing the corresponding message.

예를 들어 와이파이 기반의 웨이브(WAVE, Wireless Access in Vehicle Environments) 또는 보다 향상된 속도와 커버리지를 위한 이동통신 기반의 C-V2X(Cellular-V2X)에서 정의된 표준 프로토콜을 통해 고속으로 주행하는 차량(200)이 복잡한 교통상황에서 정보를 교환할 수 있도록 하며, 외부의 클라우드 서버(300)로부터 기지국(30)을 통해 다양한 실시간 정보를 수집하여 주행에 활용할 수 있도록 한다.For example, a vehicle traveling at high speed through a standard protocol defined in Wi-Fi-based WAVE (Wireless Access in Vehicle Environments) or mobile communication-based C-V2X (Cellular-V2X) for improved speed and coverage (200 ) allows information to be exchanged in complex traffic situations, and various real-time information is collected from an external cloud server 300 through the base station 30 and used for driving.

상술한 바와 같이 자율주행의 상용화가 진행될수록 차량(200) 과의 통신에서 보안과 안전 문제에 대한 중요성은 높아지고 있으며 제한된 통신 프로토콜 내에서 암호화를 위해서 이용되는 키의 길이가 상대적으로 짧은 타원곡선 암호 방식을 적용할 수 있다. 즉, 타원곡선을 통한 디지털 서명 및 검증 방식이 자율주행 환경에서 메시지를 송수신 하는 데 이용될 수 있다.As described above, as the commercialization of autonomous driving progresses, the importance of security and safety issues in communication with the vehicle 200 increases, and the length of the key used for encryption within the limited communication protocol is relatively short. Elliptic curve cryptography can be applied. That is, a digital signature and verification method through an elliptic curve can be used to transmit and receive messages in an autonomous driving environment.

구체적으로 타원곡선 암호화를 통한 서명과 검증과정에 대하여 먼저 설명하면, 타원 곡선을 통한 디지털 서명 알고리즘 ECDSA(Elliptic Curve Digital Signature Algorithm)는 디지털 서명의 한 방법으로 타원 곡선을 이용하여 디지털 기반의 서명을 수행하는 알고리즘이다. Specifically, the signature and verification process through elliptic curve encryption will be described first. The Elliptic Curve Digital Signature Algorithm (ECDSA), a digital signature algorithm through elliptic curve, performs digital signatures using elliptic curves as a method of digital signature. It is an algorithm that

ECDSA는 문자 그대로 타원 곡선에 기반하여 디지털 서명을 수행한다. 타원 곡선은 y2 = x3 + ax + b 형태의 비교적 간단한 형태의 방정식으로 정의될 수 있으나, 타원 곡선을 사용하는 암호화 기술은 실수체와 달리 소수체의 유한체(Finite Field)를 이용하므로 일방향성을 가질 수 있다.ECDSA literally performs digital signatures based on elliptic curves. An elliptic curve can be defined as a relatively simple equation in the form of y2 = x3 + ax + b, but encryption technology using an elliptic curve is unidirectional because it uses a finite field of prime numbers, unlike real numbers. can have

유한체에서 정의된 타원 곡선 상의 한 시작점(base point)에서 반복적인 곱셈 연산을 수행했을 때 곱셈의 결과에 따른 종료점은 쉽게 구할 수 있지만, 시작점과 종료점 만을 아는 상태에서 시작점에서 얼마 횟수의 곱셈 연산을 수행해야 하는지는 역으로 유추하기 어렵다는 일방향성을 디지털 서명에 이용한다.When a repetitive multiplication operation is performed at one base point on an elliptic curve defined in a finite field, the end point according to the multiplication result can be easily obtained. The one-way property that it is difficult to conversely infer what should be done is used for digital signatures.

즉 ECDSA 역시 비대칭키로 개인키(private key)와 공개키(public key)를 상술한 유한체 상에서 쌍으로 생성하며, 개인키를 통해 암호화된 메시지와 서명을 수신측에서 수신하면 메시지를 공개키를 통해 복호화하고 서명과 복호화된 값을 비교함으로써 서명의 진위 여부를 검증한다.That is, ECDSA also generates a private key and a public key as a pair of asymmetric keys on the finite element described above, and when a message and signature encrypted through the private key are received by the receiver, the message is The authenticity of the signature is verified by decrypting and comparing the signature with the decrypted value.

구체적으로 도 2의 ECDSA의 서명 생성을 위한 수도 코드(Pseudo Code)를 참고하면 ECDSA는 도메인 파라미터 D는 타원곡선을 정의하는 계수 a,b 및 생성자로 기준점 P와 위수 n으로 구성될 수 있다.Specifically, referring to the pseudo code for ECDSA signature generation in FIG. 2, the domain parameter D of ECDSA may consist of coefficients a and b defining an elliptic curve, and a reference point P and order n as a generator.

먼저, 위수 n 을 사용하여 1 ~ n-1 까지의 정수 중 랜덤하게 발생된 난수 k를 선택하는 것으로 서명 과정은 수행된다(Step1). ECDSA의 공개키(Q)는 난수 k를 유한체 상의 기준점(P)와 곱하는 형태로 Q = k*P 를 통해 생성되며, Q의 x축 좌료 값 x1은 정수로 변환될 수 있다.(Step2).First, a signing process is performed by selecting a randomly generated random number k among integers from 1 to n-1 using order number n (Step 1). The public key (Q) of ECDSA is generated through Q = k*P in the form of multiplying the random number k by the reference point (P) on the finite field, and the x-axis coordinate value x1 of Q can be converted to an integer. (Step2) .

이때, Q = k*P 는 일반적인 실수계 연산과 달리 점 가산 (point addition; PA) 및 점 두배 (point doubling; PD) 연산의 반복으로 계산될 수 있으며 유한 좌표계 상에서 점 가산과 점 두배의 연산에는 연산 소요 사이클이 비교적 큰 역원 연산이 포함될 수 있다. At this time, Q = k*P can be calculated by repeating point addition (PA) and point doubling (PD) operations, unlike general real-valued operations, and point addition and point doubling operations on a finite coordinate system An inverse operation that requires a relatively large operation cycle may be included.

다만 이러한 연산의 부하는 반복적인 서명을 수행하는 송신 측에 비하여 서명을 수신하여 제공된 공개키를 통해 검증하는 측에서 영향이 더 크게 나타나므로 본 실시예에 따른 고속 서명 검증 방법은 이를 해결하기 위한 방법을 제안한다.However, the load of such an operation has a greater influence on the side that receives the signature and verifies it through the provided public key compared to the side that performs the repetitive signature, so the high-speed signature verification method according to this embodiment is a method for solving this problem. suggests

이어서, Q의 유한체 상의 좌표는 모듈로 연산을 통해서 도메인 파라미터 n 내에 정의될 수 있다(Step3). 이때, 모듈로 연산의 결과는 디지털 서명의 값 r로 이용된다.Then, the coordinates on the finite field of Q can be defined in the domain parameter n through modulo operation (Step3). At this time, the result of the modulo operation is used as the value r of the digital signature.

다음, 암호화하여 보내고자 하는 메시지 m은 해시함수 H()를 통해 생성된 해시값 e로 생성되며(Step 4) 디지털 서명의 다른 값 s는 해시값 e, 개인키 d, 산출된 r, 및 난수 k의 연산에 대한 모듈로 값으로 생성될 수 있다(Step5).Next, the message m to be encrypted and sent is generated with the hash value e generated through the hash function H() (Step 4), and the other value s of the digital signature is the hash value e, the private key d, the calculated r, and the random number It can be generated as a modulo value for the operation of k (Step5).

생성된 서명 r,s를 리턴하는 것으로 디지털 서명 과정은 종료된다(Step6).The digital signature process ends by returning the generated signatures r and s (Step 6).

이어서, 서명과 메시지를 수신한 측에서는 수신된 메시지를 복호화함으로써 서명의 진위 여부를 검증한다.Subsequently, the side receiving the signature and the message verifies authenticity of the signature by decoding the received message.

이에 대해서는 도 3을 참고하여 설명한다.This will be described with reference to FIG. 3 .

도 3을 참고하면, 본 실시예에 따른 고속 서명 검증 방법을 수행하는 수신측의 컴퓨팅 장치(300)는 서명하고자 하는 메시지를 개인키로 암호화하여 생성한 서명과 상기 메시지를 수신한다(S100).Referring to FIG. 3 , the receiving computing device 300 performing the high-speed signature verification method according to the present embodiment receives the message and a signature generated by encrypting a message to be signed with a private key (S100).

또한, 본 실시예에서는 서명과 메시지 외에 서명에 이용된 개인키에 대응되는 공개키를 수신할 수 있다.In addition, in this embodiment, in addition to signatures and messages, a public key corresponding to a private key used for signature can be received.

이어서, 수신된 서명 및 메시지로부터 점 연산, 바람직하게는 스칼라 곱의 횟수를 정의하는 계수를 산출하고, 산출된 계수에 따라 상술한 서명 과정에서 개인키로부터 유한체로 정의된 제1 좌표계 상의 한 점으로 생성된 공개키를 점 연산한다(S200).Subsequently, a coefficient defining the number of point operations, preferably scalar multiplications, is calculated from the received signature and message, and according to the calculated coefficient, a point on the first coordinate system defined as a finite field is obtained from the private key in the above-described signature process. The generated public key is dotted (S200).

상술한 바와 같이 유한체로 정의된 제1 좌표계 상의 점 연산은 일반적인 실수계 연산과 달리 수행되며, 따라서 보다 복잡한 연산 과정을 요하게 된다.As described above, the point operation on the first coordinate system defined as the finite field is performed differently from general real-valued operation, and thus requires a more complicated operation process.

따라서, 본 실시예에 따른 컴퓨팅 장치(300)는 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행함으로써 일부 연산 과정을 생략하고 보다 빠른 연산을 수행할 수 있다.Accordingly, the computing device 300 according to the present embodiment performs an operation by referring to a value in an operation table pre-stored at least a part of the dot calculation result or sub-operations constituting the dot calculation according to the calculated coefficient, thereby performing some calculations. The calculation process can be omitted and faster calculation can be performed.

구체적으로 점 연산의 스칼라 곱은 점 가산과 점 두배 연산의 조합으로 구성될 수 있으며 하위 연산은 점 연산을 구성하는 점 가산 연산을 기준으로 구분할 수 있다.Specifically, the scalar multiplication of a dot operation can be composed of a combination of a dot addition and a dot doubling operation, and sub-operations can be classified based on the dot addition operation constituting the dot operation.

이때 본 실시예에 따른 컴퓨팅 장치(300)는 공개키에 대한 적어도 하나 이상의 스칼라 곱의 연산 결과를 공개키 집합으로 수신하고, 수신된 연산 결과를 이용하여 공개키의 순차적인 스칼라 곱의 연산 결과 리스트를 연산 테이블로 생성함으로써 검증 과정에서 산출된 계수에 따른 스칼라 곱을 효율적으로 처리할 수 있다.At this time, the computing device 300 according to the present embodiment receives an operation result of at least one scalar multiplication of the public key as a public key set, and uses the received operation result to list the operation result of sequential scalar multiplication of the public key. By generating as an operation table, scalar multiplication according to coefficients calculated in the verification process can be efficiently processed.

도 4를 참고하면, 본 실시예에서 메시지를 수신하는 단계(S100)는 공개 키의 일부 스칼라 곱 연산 결과 수신할 수 있다(S105).Referring to FIG. 4 , in the present embodiment, in the step of receiving a message (S100), a scalar multiplication result of a public key may be received (S105).

다음, 수신된 연산 결과를 이용하여 순차적인 스칼라 곱의 연산 결과 리스트를 생성하고(S110) 생성된 연산 결과 리스트를 연산 테이블에 저장한다(S120).Next, a calculation result list of sequential scalar multiplication is generated using the received calculation result (S110), and the generated calculation result list is stored in the calculation table (S120).

바람직하게 본 실시예에서 연산 테이블은 순차적인 홀수 계수를 갖는 스칼라 곱의 연산 결과 리스트를 테이블로 생성하여 저장할 수 있다.Preferably, in this embodiment, the calculation table may generate and store a list of calculation results of scalar products having sequential odd coefficients as a table.

즉, 컴퓨팅 장치(300)가 전체 계수에 따른 테이블의 절반의 크기를 이용하되 산출된 계수에 따른 하위 연산을 홀수 계수를 갖는 스칼라 곱의 가산(감산)으로 구성함으로써 테이블을 참조한 고속 연산이 가능하도록 한다.That is, the computing device 300 uses half the size of the table according to the total coefficients, but configures the lower operation according to the calculated coefficients as addition (subtraction) of scalar products having odd coefficients, thereby enabling high-speed calculation with reference to the table do.

도 5를 참고하면, 본 실시예에서 연산 테이블에 저장되는 연산 결과 리스트 중에서 공개키 Q와 공개키 Q의 점 두배 연산 결과는 미리 수신되어 메모리에 저장될 수 있으며 따라서, 이에 대한 연산 과정은 생략될 수 있다.Referring to FIG. 5 , in this embodiment, among the calculation result list stored in the calculation table, the public key Q and the dot doubling calculation result of the public key Q may be received in advance and stored in the memory, and therefore, the calculation process for this may be omitted. can

3Q는 Q와 2Q의 점 가산 연산으로 구성될 수 있으며, 5Q는 앞서 산출된 3Q와 산출된 2Q의 가산으로 수행될 수 있다. 3Q may be composed of a dot addition operation of Q and 2Q, and 5Q may be performed by adding the previously calculated 3Q and the calculated 2Q.

구체적으로 미리 결정된 연산 테이블의 크기에 따라 연산 결과 리스트는 생성될 수 있으며 도 6을 참조하면, 공개키의 순차적인 스칼라 곱의 연산 결과를 테이블로 생성할 수 있다. 이때 생성하고자 하는 연산 결과 리스트의 크기는 송수신되는 메시지의 특성에 따라 결정될 수 있다.Specifically, an operation result list may be generated according to a predetermined size of the operation table, and referring to FIG. 6 , operation results of sequential scalar multiplication of public keys may be generated as a table. At this time, the size of the operation result list to be generated may be determined according to the characteristics of the message to be transmitted and received.

이때, 공개키 외에 생성자 P 역시 검증 과정에서 스칼라 곱 연산을 수행할 필요가 있으나, P에 대한 스칼라 곱 연산 결과는 통신 프로토콜에 따라 결정되어 미리 연산 후 전달되어 저장될 수 있다. At this time, in addition to the public key, the generator P also needs to perform a scalar multiplication operation in the verification process, but the scalar multiplication operation result for P may be determined according to the communication protocol, calculated in advance, and transmitted and stored.

다음, 본 실시예에 따른 컴퓨팅 장치(300)는 생성된 연산 테이블을 이용하여 서명을 검증한다.Next, the computing device 300 according to the present embodiment verifies the signature using the generated calculation table.

본 실시예에 따른 검증 과정에 대해서는 도 6을 참고하여 보다 상세히 설명한다.A verification process according to this embodiment will be described in detail with reference to FIG. 6 .

도 6을 참고하면 본 실시예에 따른 서명 검증은 메시지(m)와 서명(r, s)를 받아들여 공개키(Q)로 복호화 함으로써 수행된다. Referring to FIG. 6, signature verification according to this embodiment is performed by accepting a message (m) and signatures (r, s) and decrypting the message (m) with a public key (Q).

먼저, 서명을 유효성을 검증한다(Step1.) 구체적으로 r, s의 범위가 0 < r < n, 0 < s < n 인지 체크한다.First, the validity of the signature is verified (Step1.) Specifically, it is checked whether the ranges of r and s are 0 < r < n and 0 < s < n.

유효한 서명인 경우 서명 생성 과정에서 해싱한 것과 마찬가지로 메시지를 해시함수 H()를 통해 해싱하여 해시 값 e를 생성한다(Step2.)If it is a valid signature, the hash value e is generated by hashing the message through the hash function H() in the same way as hashing in the signature generation process (Step 2.)

이어서, 검증을 위한 계수의 산출을 위한 매개 값으로 서명 내 일 값 s의 역에 대한 모듈로 값으로 w(w = s-1 mod n)를 계산한다(Step 3.).Subsequently, w (w = s-1 mod n) is calculated as a modulo value for the inverse of the one value s in the signature as an intermediary value for calculating the coefficient for verification (Step 3.).

다음 구체적인 계수로 두 점 기준점 P에 대한 계수 u1(u1 = e*w mod n)과 공개키 Q에 대한 계수 u2(u2 = r*w mod n)를 각각 해시 값 e과 매개 값 w 및 서명 값 중 r 을 이용하여 생성한다(Step4).The coefficient u1 (u1 = e*w mod n) for the two reference points P and the coefficient u2 (u2 = r*w mod n) for the public key Q are respectively the hash value e, the parameter value w, and the signature value. It is created using r of (Step 4).

서명의 검증을 위해서는 산출된 계수에 따라 각 기준점의 스칼라 곱 연산과 산출된 결과의 가산 연산을 수행한다(Step5.)To verify the signature, scalar multiplication of each reference point according to the calculated coefficient and addition of the calculated result are performed (Step5.)

다만, 본 실시예에서는 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행한다. However, in this embodiment, the calculation is performed by referring to values in a calculation table in which at least some of the sub-operations constituting the dot calculation or the dot calculation result are stored in advance according to the calculated coefficients.

바람직하게 연산 테이블은 지정된 범위에서 순차적인 스칼라 곱의 연산 결과를 리스트로 저장하며 따라서, 해당되는 계수에 대한 연산 결과를 테이블에서 직접 참조함으로써 보다 효율적으로 검증 과정을 수행할 수 있다.Preferably, the calculation table stores calculation results of sequential scalar multiplication in a specified range as a list, and therefore, the verification process can be performed more efficiently by directly referring to the calculation results for corresponding coefficients in the table.

이를 위해, 연산 테이블 T는 X의 산출 이전에 생성될 수 있으며(Step1.5) r,s의 유효성을 검증한 이후(Step1) 수행됨으로써 순차적인 검증 과정에서 지연을 최소화할 수 있다.To this end, the calculation table T can be created before calculating X (Step 1.5) and performed after verifying the validity of r and s (Step 1), thereby minimizing delay in the sequential verification process.

즉, 미리 생성된 연산 테이블의 참조를 통해 추출된 P와 Q의 계수에 대한 스칼라 곱 결과를 가산함으로써 검증을 위한 X(X(x1, y1) = (u1*P + u2*Q))를 산출할 수 있다(Step5.).That is, X(X(x1, y1) = (u1*P + u2*Q)) for verification is calculated by adding the scalar multiplication result of the coefficients of P and Q extracted through reference to the pre-generated operation table. You can (Step5.).

추가적으로 X의 유효성을 검증하기 위해 산출된 (x1, y1)가 무한원점(O)이면 잘못된 서명이므로 거절(“Reject Signature”)하되(Step6.), 유효한 경우 추가적인 모듈로 연산을 통해 최종 피 검증값 v(v = x1 mod n)를 생성한다(Step 7.).In addition, if (x1, y1) calculated to verify the validity of X is infinite origin (O), it is an invalid signature, so it is rejected (“Reject Signature”) (Step 6.), but if it is valid, the final verified value through additional modulo operation Create v(v = x1 mod n) (Step 7.).

최종 검증은 산출된 피 검증값 v와 서명의 r을 비교하여 v와 r이 동일하면 서명의 검증을 완료(“Accept Signature”)하고 그렇지 않은 경우 거절한다(Step 8.)The final verification compares the calculated value v to be verified with r of the signature, and if v and r are the same, the verification of the signature is completed (“Accept Signature”), otherwise it is rejected (Step 8.)

나아가 본 실시예에서 테이블의 생성은 보다 빠른 생성을 위하여 혼합 좌표계를 이용하여 수행될 수 있다. Furthermore, in this embodiment, table creation may be performed using a mixed coordinate system for faster creation.

도 7을 참조하여 설명하면 컴퓨팅 장치(200)에서 연산을 위해 이용되는 Q는 일반적인 유한 좌표계 상의 점으로 정의되므로 연산 테이블의 생성 과정에서 보다 빠른 점 연산을 위해 유한 좌표계를 투영한 투영 좌표계를 추가적으로 이용하여 스칼라 곱 연산을 수행할 수 있다.Referring to FIG. 7, since Q used for calculation in the computing device 200 is defined as a point on a general finite coordinate system, a projected coordinate system in which the finite coordinate system is projected is additionally used for faster point calculation in the process of generating the calculation table. to perform the scalar multiplication operation.

바람직하게는 유한 좌표계의 수신된 점 Q의 일 좌표 값 (x,y)를 (x,y,z=1)로 투영 좌표계로 변환하여 연산 결과 리스트를 생성한다.Preferably, a coordinate value (x, y) of the received point Q in the finite coordinate system is converted to (x, y, z = 1) in the projected coordinate system to generate an operation result list.

본 실시예에 따른 고속 서명 검증 과정은 스칼라 곱 연산의 효율화를 위해 송신측에서 제공된 일부 연산 결과를 이용하여 순차적인 연산 결과 리스트를 연산 테이블로 생성하여 저장하는 것을 목표로 하는 바, 연산 테이블의 생성에 투영 좌표계(바람직하게는 자코비안(Jacobian) 좌표계)를 이용함으로써 보다 빠르게 연산 리스트를 생성할 수 있다.The high-speed signature verification process according to the present embodiment aims to generate and store a list of sequential calculation results as an calculation table using some calculation results provided from the transmitter in order to increase the efficiency of the scalar multiplication operation. By using a projected coordinate system (preferably a Jacobian coordinate system) for , the operation list can be generated more quickly.

이상의 과정으로 생성된 연산 테이블의 값들은 투영 좌표계의 값을 가지므로 검증을 위해서는 다시 유한 좌표계의 값으로 변환이 필요하다.Since the values of the calculation table created through the above process have the values of the projected coordinate system, they need to be converted back to the values of the finite coordinate system for verification.

본 실시예에서 좌표계의 변환은 연산 테이블 내 값들의 역원을 이용하여 연산 될 수 있다. 하지만, 역원 연산은 일반적으로 복잡한 연산과정에 따라 많은 리소스를 필요로 하므로 컴퓨팅 장치(300)는 생성된 연산 테이블의 좌표계 변환을 위한 역원을 추가로 제공받을 수 있다.In this embodiment, the transformation of the coordinate system can be calculated using the inverse of values in the calculation table. However, since the inverse calculation generally requires a lot of resources according to a complicated calculation process, the computing device 300 may additionally receive an inverse for coordinate system transformation of the generated calculation table.

따라서, 본 실시예에서 컴퓨팅 장치(300)는 선택된 투영 좌표계에 따른 연산 테이블이 생성되면, 수신된 역원을 이용하여 유한 좌표계로 테이블을 변환한다.Therefore, in this embodiment, when the calculation table according to the selected projected coordinate system is generated, the computing device 300 converts the table into the finite coordinate system using the received inverse circle.

이때, 본 실시예에서 컴퓨팅 장치(300)는 연산 테이블의 값들에 대한 전체 역원을 제공하는 대신 테이블 내 전체 값들의 곱에 따른 통합 역원을 제공하고, 통합 역원을 통한 관계식으로 각 세부 값들의 좌표계를 순차적으로 변환하도록 함으로써 좌표계 변환 과정을 효율화 할 수 있다.At this time, in this embodiment, the computing device 300 provides an integrated inverse according to the product of all values in the table instead of providing a total inverse of the values of the calculation table, and calculates the coordinate system of each detailed value by a relational expression through the integrated inverse. It is possible to streamline the coordinate system conversion process by sequentially transforming.

이상 본 실시예에 따른 컴퓨팅 장치(300)는 점 연산을 구성하는 하위 연산을 연산 테이블을 참조하여 스칼라 곱 결과를 산출할 수 있다.As described above, the computing device 300 according to the present embodiment may calculate a scalar multiplication result by referring to an operation table for a lower operation constituting a dot operation.

구체적으로 검증 과정은 도 8을 참고하면, 연산 테이블 T를 생성하는 단계(Step1.5)는 투영 좌표계로 테이블을 생성하는 단계(Step1.5.1)과, 추가적으로 입력된 통합 역원(INV)을 이용하여 생성된 투영 좌표계 테이블을 유한 좌표계로 변환하는 단계(Step1.5.2)로 구성될 수 있다.Specifically, referring to FIG. 8, the verification process includes the step of generating the calculation table T (Step1.5) using the step of generating the table in the projected coordinate system (Step1.5.1) and the additionally input integral inverse (INV). It may consist of converting the generated projected coordinate system table into a finite coordinate system (Step1.5.2).

이상의 과정을 통해 서명의 검증되면 검증된 메시지를 수신 측의 컴퓨팅 장치(300)에서 처리한다(S400). 예를 들어, 메시지에 포함된 정보를 이용하여 자율주행에 반영함으로써 보다 안전한 주행을 수행할 수행하거나 자율주행 차량에 탑승한 승객에게 부가적인 정보를 제공해 줄 수 있다.When the signature is verified through the above process, the verified message is processed in the computing device 300 of the receiving side (S400). For example, by reflecting information included in the message to autonomous driving, it is possible to perform safer driving or to provide additional information to passengers boarding the autonomous vehicle.

도 9를 참조하면, 본 실시예에 따른 고속 서명 검증 방법은 자율주행 환경에 적용될 수 있다.Referring to FIG. 9 , the high-speed signature verification method according to this embodiment can be applied to an autonomous driving environment.

일 예로 클라우드 서버(300)와 차량(200) 간의 통신에서 클라우드 서버(300)는 메시지와 함께 실시간으로 대용량의 데이터들을 스트리밍 형태로 제공할 수 있으므로 메시지 #1와 함께 복수의 스칼라 곱 결과(Q,2Q)를 미리 제공함으로써 차량(200) 내에서의 검증에 드는 리소스를 줄이도록 한다. 차량(200)에서는 빈번한 통신에도 효율적으로 생성된 연산 테이블을 재사용함으로써 정보를 수신할 수 있다. For example, in the communication between the cloud server 300 and the vehicle 200, the cloud server 300 can provide a large amount of data in a streaming form in real time together with a message, so that a plurality of scalar multiplication results (Q, 2Q) is provided in advance to reduce resources required for verification in the vehicle 200. The vehicle 200 can receive information by reusing the generated calculation table efficiently even in frequent communication.

또한, 도로 인프라(400) 간 차량(200) 간의 통신의 경우 주행 도로에 인접한 각각의 노변 장치(RSU, Road Side Unit)와 통신을 지속적으로 수행하므로 생성된 연산 테이블의 재사용 가능성이 높으므로 인프라(400)에서 미리 연산된 공개키의 스칼라 곱을 복수(Q,2Q)로 메시지 #2와 제공함으로써 차량(200)에서 연산 테이블을 효율적으로 생성하도록 하는 것도 가능하다.In addition, in the case of communication between vehicles 200 between road infrastructures 400, since communication is continuously performed with each Roadside Unit (RSU) adjacent to a driving road, the reusability of the generated calculation table is high, so the infrastructure ( It is also possible to efficiently generate the calculation table in the vehicle 200 by providing message #2 with the scalar product of the public key calculated in advance in 400 as a plurality (Q, 2Q).

이어서, 차량(200)과 차량(200)간의 통신은 예를 들어 전방 차량(200)의 이상 상태나 전방 차량(200)에서 판단한 상황을 후방 추종 차량(200)들에게 통지하기 위한 방향으로 이루어질 수 있으며, 긴급성을 요하므로 보다 가용 리소스가 작은 차량(200)에서 빠른 검증을 위해 메시지와 함께 복수의 스칼라 곱 결과(Q,2Q)와 역원(INV)을 메시지 #3와 함께 제공하는 것도 가능하다. 즉, 역원(INV)을 직접 제공함으로써 좌표계 변환을 보다 빠르게 수행할 수 있도록 한다.Subsequently, communication between the vehicles 200 and the vehicles 200 may be performed in a direction for notifying, for example, the abnormal state of the preceding vehicle 200 or the situation determined by the preceding vehicle 200 to the rear following vehicles 200. And, since urgency is required, it is also possible to provide a plurality of scalar product results (Q, 2Q) and an inverse (INV) together with message # 3 for quick verification in the vehicle 200 with smaller available resources. . That is, by directly providing the inverse (INV), the coordinate system transformation can be performed more quickly.

또한, 차량(200)이 사용자의 단말(UE, User Equipment)과 통신하는 것도 가능하며 셔틀 서비스를 위해 사용자의 단말에게 차량(200)의 접근을 알리는 형태로 통신을 수행하는 것도 가능하다.In addition, the vehicle 200 may communicate with the user's terminal (UE, User Equipment), and it is also possible to perform communication in the form of notifying the user's terminal of the approach of the vehicle 200 for the shuttle service.

따라서 차량(200)은 차량(200)의 위치를 실시간으로 안내하기 위해 메시지 #4와 함께 공개키의 복수의 스칼라 곱 결과(Q, 2Q)를 제공할 수 있으며 사용자 단말은 수신된 스칼라 곱 결과로부터 연산 테이블을 생성하여 검증을 수행할 수 있다.Therefore, the vehicle 200 may provide a plurality of scalar multiplication results (Q, 2Q) of the public key together with message # 4 in order to guide the location of the vehicle 200 in real time, and the user terminal may receive a scalar multiplication result from the received Verification can be performed by creating an operation table.

또는 차량(200)이 횡단보도에 진입하는 경우와 같이 긴급성을 요하는 경우에는 추가적인 스칼라 곱 결과와 역원을 함께 보행자의 사용자 단말에 제공하는 것도 가능하며 상황에 따라 선택적으로 송신하는 파라미터를 결정할 수 있다.Alternatively, if urgency is required, such as when the vehicle 200 enters a crosswalk, it is also possible to provide an additional scalar multiplication result and an inverse to the pedestrian's user terminal, and parameters to be selectively transmitted according to the situation can be determined. there is.

이하, 본 발명의 일 실시예에 따른 고속 서명 검증을 수행하는 컴퓨팅 장치(300)의 구체적인 하드웨어 구현에 대하여 설명한다.Hereinafter, a specific hardware implementation of the computing device 300 performing high-speed signature verification according to an embodiment of the present invention will be described.

도 10을 참조하면, 본 발명의 몇몇 실시예들에서 컴퓨팅 장치(300)는 컴퓨팅 장치의 형태로 구현될 수 있다. 컴퓨팅 장치(300)를 구성하는 각각의 모듈 중 하나 이상은 범용 컴퓨팅 프로세서 상에서 구현되며 따라서 프로세서(processor)(308), 입출력 I/O(302), 메모리 (memory)(340), 인터페이스(interface)(306) 및 버스(314, bus)를 포함할 수 있다. 프로세서(308), 입출력 장치(302), 메모리 (340) 및/또는 인터페이스(306)는 버스(314)를 통하여 서로 결합될 수 있다. 버스(314)는 데이터들이 이동되는 통로(path)에 해당한다.Referring to FIG. 10 , in some embodiments of the present invention, computing device 300 may be implemented in the form of a computing device. One or more of each module constituting the computing device 300 is implemented on a general-purpose computing processor, and thus the processor 308, input/output I/O 302, memory 340, and interface 306 and bus 314 (bus). Processor 308 , input/output device 302 , memory 340 and/or interface 306 may be coupled to each other via bus 314 . The bus 314 corresponds to a path through which data is moved.

구체적으로, 프로세서(308)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit), 마이크로프로세서, 디지털 신호 프로세스, 마이크로컨트롤러, 어플리케이션 프로세서(AP, application processor) 및 이들과 유사한 기능을 수행할 수 있는 논리 소자들 중에서 적어도 하나를 포함할 수 있다.Specifically, the processor 308 includes a central processing unit (CPU), a micro processor unit (MPU), a micro controller unit (MCU), a graphic processing unit (GPU), a microprocessor, a digital signal processor, a microcontroller, and an application processor (AP). , application processor), and logic elements capable of performing functions similar thereto.

입출력 장치(302)는 키패드(keypad), 키보드, 터치스크린 및 디스플레이 장치 중 적어도 하나를 포함할 수 있다. 메모리 장치(340)는 데이터 및/또는 프로그램 등을 저장할 수 있다.The input/output device 302 may include at least one of a keypad, a keyboard, a touch screen, and a display device. The memory device 340 may store data and/or programs.

인터페이스(306)는 통신 네트워크로 데이터를 전송하거나 통신 네트워크로부터 데이터를 수신하는 기능을 수행할 수 있다. 인터페이스(306)는 유선 또는 무선 형태일 수 있다. 예컨대, 인터페이스(306)는 안테나 또는 유무선 트랜시버 등을 포함할 수 있다. 메모리 (340)는 프로세서(308)의 동작을 향상시키되, 개인정보의 보호를 위한 휘발성의 동작 메모리로서, 고속의 디램 및/또는 에스램 등을 더 포함할 수도 있다. Interface 306 may perform a function of transmitting data to or receiving data from a communication network. Interface 306 may be wired or wireless. For example, the interface 306 may include an antenna or a wired/wireless transceiver. The memory 340 improves the operation of the processor 308 and is a volatile operation memory for protecting personal information, and may further include high-speed DRAM and/or SRAM.

또한, 메모리(340) 내에는 여기에 설명된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 상술한 검증 방법의 선택된 양태들을 수행하도록 하는 로직을 포함할 수 있다.Also stored within memory 340 are programming and data configurations that provide the functionality of some or all of the modules described herein. For example, it may include logic to perform selected aspects of the verification method described above.

메모리 (340)에 저장된 상술한 검증 방법을 수행하는 각 단계를 포함하는 명령어들의 집합으로 프로그램 또는 어플리케이션을 로드하고 프로세서가 각 단계를 수행할 수 있도록 한다. 예를 들어, 서명하고자 하는 메시지를 개인키로 암호화하여 생성한 서명과 상기 메시지를 수신하는 동작, 상기 서명 및 메시지로부터 산출된 계수에 따라 상기 개인키로부터 유한체로 정의된 제1 좌표계 상의 한 점으로 생성된 공개키를 점 연산하는 동작 및 상기 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 동작 등이 포함된 컴퓨터 프로그램이 프로세서에 의해 각 수행될 수 있다.A program or application is loaded with a set of instructions including each step of performing the above-described verification method stored in the memory 340, and the processor performs each step. For example, according to a signature generated by encrypting a message to be signed with a private key, an operation of receiving the message, and a coefficient calculated from the signature and the message, a point on the first coordinate system defined as a finite field is generated from the private key. A computer program including an operation of dot-calculating the calculated public key and an operation of verifying the signature by comparing the result of the dot-calculation with the signature may be respectively performed by the processor.

나아가, 여기에 설명되는 다양한 실시예는 예를 들어, 소프트웨어, 하드웨어 또는 이들의 조합된 것을 이용하여 컴퓨터 또는 이와 유사한 장치로 읽을 수 있는 기록매체 내에서 구현될 수 있다.Furthermore, various embodiments described herein may be implemented in a recording medium readable by a computer or a device similar thereto using, for example, software, hardware, or a combination thereof.

하드웨어적인 구현에 의하면, 여기에 설명되는 실시예는 ASICs (application specific integrated circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (programmable logic devices), FPGAs (field programmable gate arrays, 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시예들이 제어 모듈 자체로 구현될 수 있다.According to hardware implementation, the embodiments described herein include application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), It may be implemented using at least one of processors, controllers, micro-controllers, microprocessors, and electrical units for performing other functions. The described embodiments may be implemented in the control module itself.

소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다. 적절한 프로그램 언어로 씌여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리 모듈에 저장되고, 제어모듈에 의해 실행될 수 있다.According to software implementation, embodiments such as procedures and functions described in this specification may be implemented as separate software modules. Each of the software modules may perform one or more functions and operations described herein. The software code may be implemented as a software application written in any suitable programming language. The software code may be stored in a memory module and executed by a control module.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. The above description is merely an example of the technical idea of the present invention, and those skilled in the art can make various modifications, changes, and substitutions without departing from the essential characteristics of the present invention. will be.

따라서, 본 발명에 개시된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.Therefore, the embodiments disclosed in the present invention and the accompanying drawings are not intended to limit the technical idea of the present invention, but to explain, and the scope of the technical idea of the present invention is not limited by these embodiments and the accompanying drawings. . The protection scope of the present invention should be construed according to the following claims, and all technical ideas within the equivalent range should be construed as being included in the scope of the present invention.

Claims (15)

컴퓨팅 장치에서 수행되는 서명 검증 방법에 있어서,
서명하고자 하는 메시지를 개인키로 암호화하여 생성한 서명과 상기 메시지를 수신하는 단계;
상기 서명 및 메시지로부터 산출된 계수에 따라 상기 개인키로부터 유한체로 정의된 제1 좌표계 상의 한 점으로 생성된 공개키를 점 연산하는 단계; 및
상기 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 단계를 포함하고,
상기 점 연산하는 단계는 상기 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행하되,
상기 수신하는 단계는 상기 공개키에 대한 적어도 하나 이상의 스칼라 곱의 연산 결과를 수신하고,
상기 연산 테이블은 제1 좌표계로 수신된 상기 공개키의 스칼라 곱의 연산 결과를 제2 좌표계로 변환하여 홀수 계수의 스칼라 곱의 연산 결과 리스트를 생성하고, 상기 생성된 연산 결과 리스트를 제1 좌표계로 변환하여 저장한 것을 특징으로 하는 서명 검증 방법.
A signature verification method performed on a computing device,
Receiving a signature generated by encrypting a message to be signed with a private key and the message;
Dot-calculating a public key generated as a point on a first coordinate system defined as a finite number from the private key according to coefficients calculated from the signature and the message; and
verifying the signature by comparing the result of the dot operation with the signature;
In the dot calculation, the calculation is performed by referring to a result of the dot calculation or a value in a calculation table in which at least some of sub-operations constituting the dot calculation are stored in advance according to the calculated coefficient,
The receiving step receives an operation result of at least one scalar product of the public key,
The calculation table converts the calculation result of the scalar product of the public key received in the first coordinate system into the second coordinate system to generate a calculation result list of the scalar product of odd coefficients, and converts the generated calculation result list into the first coordinate system. Signature verification method characterized by converting and storing.
제 1 항에 있어서,
상기 점 연산하는 단계는,
상기 점 연산을 구성하는 하위 연산을 상기 홀수 계수의 스칼라 곱의 연산 결과 간의 감산으로 구분하여 상기 연산 테이블을 참조하는 것을 특징으로 하는 서명 검증 방법.
According to claim 1,
The step of calculating the point is,
The signature verification method of claim 1 , wherein sub-operations constituting the dot operation are divided into subtraction between operation results of the scalar product of the odd coefficients and refer to the operation table.
제 1 항에 있어서,
상기 연산 테이블은 상기 제2 좌표계의 연산 결과들의 통합 역원을 이용하여 상기 연산 결과 리스트를 제1 좌표계로 변환하는 것을 특징으로 하는 서명 검증 방법.
According to claim 1,
Wherein the calculation table converts the calculation result list into the first coordinate system using an integrated inverse of the calculation results of the second coordinate system.
제 2 항에 있어서,
상기 서명은 임의의 난수에 따라 상기 제1 좌표계 상의 임의의 기준점을 스칼라 곱함으로써 생성되고,
상기 점 연산하는 단계는 상기 기준점과 상기 공개키를 상기 산출된 계수에 따라 점 연산하는 것을 특징으로 하는 서명 검증 방법.
According to claim 2,
The signature is generated by scalar multiplication of an arbitrary reference point on the first coordinate system according to an arbitrary random number,
The dot-calculating step performs dot-calculation on the reference point and the public key according to the calculated coefficient.
프로세서;
상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드하는 메모리; 및
상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
상기 컴퓨터 프로그램은,
서명하고자 하는 메시지를 개인키로 암호화하여 생성한 서명과 상기 메시지를 수신하는 동작,
상기 서명 및 메시지로부터 산출된 계수에 따라 상기 개인키로부터 유한체로 정의된 제1 좌표계 상의 한 점으로 생성된 공개키를 점 연산하는 동작, 및
상기 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 동작을 포함하고,
상기 점 연산하는 동작은 상기 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행하되,
상기 수신하는 동작은 상기 공개키에 대한 적어도 하나 이상의 스칼라 곱의 연산 결과를 수신하고,
상기 연산 테이블은 제1 좌표계로 수신된 상기 공개키의 스칼라 곱의 연산 결과를 제2 좌표계로 변환하여 홀수 계수의 스칼라 곱의 연산 결과 리스트를 생성하고, 상기 생성된 연산 결과 리스트를 제1 좌표계로 변환하여 저장한 것을 특징으로 하는 컴퓨팅 장치.
processor;
a memory for loading a computer program executed by the processor; and
Including a storage for storing the computer program,
The computer program,
Receiving a signature generated by encrypting a message to be signed with a private key and the message;
An operation of point-calculating a public key generated as a point on a first coordinate system defined as a finite field from the private key according to coefficients calculated from the signature and the message; and
And verifying the signature by comparing the result of the dot operation with the signature,
In the operation of calculating the points, the calculation is performed by referring to a result of the point calculation or a value in an calculation table in which at least some of the sub-operations constituting the point calculation are stored in advance according to the calculated coefficient,
The receiving operation receives an operation result of at least one scalar product of the public key,
The calculation table converts the calculation result of the scalar product of the public key received in the first coordinate system into the second coordinate system to generate a calculation result list of the scalar product of odd coefficients, and converts the generated calculation result list into the first coordinate system. Computing device characterized in that converted and stored.
제 5 항에 있어서,
상기 점 연산하는 동작은,
상기 점 연산을 구성하는 하위 연산을 상기 홀수 계수의 스칼라 곱의 연산 결과 간의 감산으로 구분하여 상기 연산 테이블을 참조하는 것을 특징으로 하는 컴퓨팅 장치.
According to claim 5,
The operation of calculating the point,
The computing device according to claim 1 , wherein sub-operations constituting the dot operation are divided into subtraction between operation results of the scalar product of the odd coefficients and referred to the operation table.
제 5 항에 있어서,
상기 연산 테이블은 상기 제2 좌표계의 연산 결과들의 통합 역원을 이용하여 상기 연산 결과 리스트를 제1 좌표계로 변환하는 것을 특징으로 하는 컴퓨팅 장치.
According to claim 5,
The calculation table converts the calculation result list into the first coordinate system using an integral inverse of the calculation results of the second coordinate system.
제 6 항에 있어서,
상기 서명은 임의의 난수에 따라 상기 제1 좌표계 상의 임의의 기준점을 스칼라 곱함으로써 생성되고,
상기 점 연산하는 단계는 상기 기준점과 상기 공개키를 상기 산출된 계수에 따라 점 연산하는 것을 특징으로 하는 컴퓨팅 장치.
According to claim 6,
The signature is generated by scalar multiplication of an arbitrary reference point on the first coordinate system according to an arbitrary random number,
The computing device, characterized in that in the dot calculation, the reference point and the public key are dot-calculated according to the calculated coefficient.
제 1 항 내지 제 4 항 중 어느 한 항에 따른 서명 검증 방법을 컴퓨팅 장치에서 수행하는 컴퓨터 판독 가능한 기록 매체에 저장된 프로그램.A program stored in a computer-readable recording medium for performing the signature verification method according to any one of claims 1 to 4 in a computing device. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020220139327A 2022-10-26 2022-10-26 Signature verification method performed in a computing device and a computing device performing the same method KR102536397B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220139327A KR102536397B1 (en) 2022-10-26 2022-10-26 Signature verification method performed in a computing device and a computing device performing the same method
PCT/KR2022/018917 WO2024090659A1 (en) 2022-10-26 2022-11-28 Signature verification method performed in computing device and computing device for performing same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220139327A KR102536397B1 (en) 2022-10-26 2022-10-26 Signature verification method performed in a computing device and a computing device performing the same method

Publications (1)

Publication Number Publication Date
KR102536397B1 true KR102536397B1 (en) 2023-05-26

Family

ID=86536393

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220139327A KR102536397B1 (en) 2022-10-26 2022-10-26 Signature verification method performed in a computing device and a computing device performing the same method

Country Status (2)

Country Link
KR (1) KR102536397B1 (en)
WO (1) WO2024090659A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100098017A (en) * 2009-02-27 2010-09-06 고려대학교 산학협력단 Method for scalar multiplication using extended montgomery ladder
KR20120028432A (en) * 2010-09-15 2012-03-23 고려대학교 산학협력단 Calculating apparatus and method for elliptic curve cryptography

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010000048A (en) * 1999-11-18 2001-01-05 안병엽 Efficient and fast multiple points scalar multiplication method over elliptic curve using m-ary method
FR2807898B1 (en) * 2000-04-18 2002-06-28 Gemplus Card Int ELLIPTICAL CURVE CRYPTOGRAPHY PROCESS

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100098017A (en) * 2009-02-27 2010-09-06 고려대학교 산학협력단 Method for scalar multiplication using extended montgomery ladder
KR20120028432A (en) * 2010-09-15 2012-03-23 고려대학교 산학협력단 Calculating apparatus and method for elliptic curve cryptography

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TTAK.KO-12.0015/R3(2016.12.27.)* *

Also Published As

Publication number Publication date
WO2024090659A1 (en) 2024-05-02

Similar Documents

Publication Publication Date Title
Zhang et al. Edge computing-based privacy-preserving authentication framework and protocol for 5G-enabled vehicular networks
CN102761415B (en) System for generating, verifying and mixing digital signatures of p-element domain SM2 elliptic curves
EP3035590B1 (en) Method and device for generating digital signature
CN109714153B (en) Efficient aggregated signature method
EP2582085A1 (en) Generating implicit certificates
CN109450640B (en) SM 2-based two-party signature method and system
CN109818730B (en) Blind signature acquisition method and device and server
CN110505067B (en) Block chain processing method, device, equipment and readable storage medium
Glas et al. Prime field ECDSA signature processing for reconfigurable embedded systems
Kim et al. Device authentication protocol for smart grid systems using homomorphic hash
Roman et al. Authentication protocol in CTNs for a CWD-WPT charging system in a cloud environment
CA2769995A1 (en) Issuing implicit certificates
CN103259662A (en) Novel procuration signature and verification method based on integer factorization problems
Baee et al. Broadcast authentication in latency-critical applications: On the efficiency of IEEE 1609.2
EP2890049B1 (en) Method to reduce the latency of ecdsa signature generation using precomputation
Singh et al. Secured user's authentication and private data storage-access scheme in cloud computing using Elliptic curve cryptography
Kaur et al. A secure, lightweight, and privacy-preserving authentication scheme for V2G connections in smart grid
Sikarwar et al. LABVS: Lightweight authentication and batch verification scheme for universal internet of vehicles (UIoV)
CN105306212A (en) Signcryption method with hidden identity and strong security
KR102536397B1 (en) Signature verification method performed in a computing device and a computing device performing the same method
CN116033414B (en) VANETs privacy protection method and equipment
Salami et al. SMAK-IOV: secure mutual authentication scheme and key exchange protocol in fog based IoV
Ďurech et al. Security analysis of cryptographic constructions used within communications in modern transportation systems on the base of modelling
CN115242412A (en) Certificateless aggregation signature method and electronic equipment
Hegde et al. Distributed integrity and non-repudiation scheme in the dynamic vehicular cloud environment

Legal Events

Date Code Title Description
GRNT Written decision to grant