WO2024101511A1 - V2x 통신 환경에서 메시지의 서명 검증 방법 및 이를 수행하는 컴퓨팅 장치 - Google Patents

V2x 통신 환경에서 메시지의 서명 검증 방법 및 이를 수행하는 컴퓨팅 장치 Download PDF

Info

Publication number
WO2024101511A1
WO2024101511A1 PCT/KR2022/018928 KR2022018928W WO2024101511A1 WO 2024101511 A1 WO2024101511 A1 WO 2024101511A1 KR 2022018928 W KR2022018928 W KR 2022018928W WO 2024101511 A1 WO2024101511 A1 WO 2024101511A1
Authority
WO
WIPO (PCT)
Prior art keywords
signature
message
point
coordinate system
public key
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2022/018928
Other languages
English (en)
French (fr)
Inventor
박한나
정해일
조성민
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ciot Co Inc
Original Assignee
Ciot Co Inc
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 Ciot Co Inc filed Critical Ciot Co Inc
Publication of WO2024101511A1 publication Critical patent/WO2024101511A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32—Cryptographic 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
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04W—WIRELESS COMMUNICATION NETWORKS
    • H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06—Authentication
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04W—WIRELESS COMMUNICATION NETWORKS
    • H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30—Services specially adapted for particular environments, situations or purposes
    • H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04W—WIRELESS COMMUNICATION NETWORKS
    • H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30—Services specially adapted for particular environments, situations or purposes
    • H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/46—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for vehicle-to-vehicle communication [V2V]

Definitions

  • the present invention relates to a method for verifying signatures during message transmission and reception between computing devices. Preferably it relates to a method of verifying a signature in a message with a computer device in a vehicle.
  • IEEE 1609.2 defines protocols for protecting messages in vehicle-to-vehicle (V2V) or vehicle-to-infrastructure (V2I) communication based on WAVE (Wireless Access in Vehicular Environment) and is ECDSA. Use electronic signature techniques.
  • ECDSA Elliptic Curve Digital Signature Algorithm
  • ECDSA Elliptic Curve Digital Signature Algorithm
  • ECC Elliptic curve cryptography
  • elliptic curve cryptography has the advantage of being suitable for situations where transmission volume and resources are limited, such as IoT (Internet of Thing) devices, or for vehicle communication environments driving at high speeds, and for this reason, it is emerging as a next-generation public key cryptography technology to replace RSA.
  • IoT Internet of Thing
  • the digital signature and verification method through elliptic curve cryptography using a short key length is used in the process of mutual communication within the limitations of the communication protocol for autonomous driving. It is being applied.
  • the purpose of the present invention is to propose an elliptic curve-based encryption method with improved verification speed.
  • the purpose of the present invention is to propose an encryption method that provides appropriate parameters depending on the environment.
  • the purpose of the present invention is to propose a faster coordinate system conversion method depending on the environment.
  • the purpose of the present invention is to propose an encryption method that provides parameters considering standard communication protocols in an autonomous driving environment.
  • a method for verifying the signature of a message in a V2X communication environment for solving the technical problem includes receiving the message including a signature generated by encrypting the message to be signed with a private key; calculating a point operation coefficient of a reference point and a public key defined as a point on a first coordinate system from the received message; and verifying the signature by comparing the signature with a result of a dot operation according to the calculated coefficient, wherein the signature is preferably one in which one value among signatures according to a message protocol is replaced with an inverse.
  • the message preferably further includes an identifier indicating whether to replace the inverse of the one value.
  • the signature preferably replaces the work value with the inverse for calculating the point operation coefficient of the reference point.
  • the receiving step is to receive an operation result of at least one scalar product of the public key
  • the dot operation step is to receive a dot operation result according to the calculated coefficient or at least some of the sub-operations constituting the dot operation. It is desirable to perform the calculation by referring to the value in the calculation table stored in advance.
  • the operation table preferably generates the operation result list by converting the operation result of the scalar product of the public key received in the first coordinate system to the second coordinate system, and converts the operation result list to the first coordinate system and stores it. .
  • the signature is generated by scalar multiplying an arbitrary reference point on the first coordinate system according to a random number, and the point operation step preferably involves performing a dot operation on the reference point and the public key according to the calculated coefficient.
  • the list of scalar product results for the reference point be created in advance.
  • a computing device that performs signature verification of a basic safety message in a V2X communication environment includes a processor; a memory that loads a computer program executed by the processor; and
  • Storage for storing the computer program, wherein the computer program includes an operation of receiving the message including a signature generated by encrypting the message to be signed with a private key, and selecting a point on a first coordinate system from the received message.
  • the message preferably further includes an identifier indicating whether to replace the inverse of the one value.
  • the signature preferably replaces the work value with the inverse for calculating the point operation coefficient of the reference point.
  • the receiving operation is to receive an operation result of at least one scalar product of the public key
  • the dot operation operation is to receive a dot operation result according to the calculated coefficient or at least some of the sub-operations constituting the dot operation. It is desirable to perform the calculation by referring to the value in the calculation table stored in advance.
  • the operation table preferably generates the operation result list by converting the operation result of the scalar product of the public key received in the first coordinate system to the second coordinate system, and converts the operation result list to the first coordinate system and stores it. .
  • the signature is generated by scalar multiplying an arbitrary reference point on the first coordinate system according to a random number, and the dot operation is preferably performed by performing a dot operation on the reference point and the public key according to the calculated coefficient.
  • the list of scalar product results for the reference point be created in advance.
  • the present invention enables more stable transmission and reception of information through parameters optimized according to the environment.
  • the present invention allows improved calculations to be performed using information provided within a standard communication protocol, and messages can be safely transmitted and received with infrastructure in heterogeneous environments or with other users.
  • Figure 1 is an example diagram showing an environment to which a signature verification method performed in a V2X communication environment according to an embodiment of the present invention is applied.
  • Figure 2 is an example diagram showing a certificate-based signature verification method performed in a V2X communication environment according to an embodiment of the present invention.
  • Figure 3 is an example diagram showing a pseudocode for generating an elliptic curve-based digital signature in a V2X communication environment according to an embodiment of the present invention.
  • Figure 4 is a flowchart showing a signature verification method performed in a V2X communication environment according to an embodiment of the present invention.
  • Figure 5 is a flowchart showing a detailed process of a signature verification method performed in a V2X communication environment according to an embodiment of the present invention.
  • Figure 6 is an example diagram showing a pseudocode for verifying a signature performed in a V2X communication environment according to an embodiment of the present invention.
  • Figure 7 is an example diagram showing the configuration of signature data performed in a V2X communication environment according to an embodiment of the present invention.
  • Figure 8 is an exemplary diagram showing an example of generating an operation table for a signature verification method performed in a V2X communication environment according to an embodiment of the present invention.
  • Figure 9 is an example diagram showing an example of message transmission and reception performed in a V2X communication environment according to an embodiment of the present invention.
  • Figure 10 is an exemplary diagram showing an implementation in the form of a computing device that performs a signature verification method according to embodiments of the present invention.
  • FIG. 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.
  • the high-speed signature verification method according to the present invention is centered on a driving vehicle 200, and the vehicle 200 is connected to another vehicle 200 or a roadside infrastructure RSU (Road Side Unit) 400. It can be applied to an environment where communication is performed.
  • RSU Road Side Unit
  • Each receiving subject extracts parameters from the information received on a standard communication protocol through the internal computing device 300, for example, the vehicle's On-Board Unit (OBU), and verifies the encrypted message with a digital signature. Performs processing on messages.
  • OBU On-Board Unit
  • a vehicle (200) driving at high speed can exchange information in complex traffic situations, and can receive information from an external cloud server (300) through a base station ( 30), various real-time information is collected and used for driving.
  • IEEE 1609.2 defines protocols to protect messages in vehicle-to-vehicle (V2V) or vehicle-to-infrastructure (V2I) communication based on WAVE (Wireless Access in Vehicular Environment). Curve cryptography can be used.
  • BSM 500 used in IEEE 1609.2 is defined in SAE J2735.
  • a verification speed of at least 50 messages per second may be required to verify the signature of the message, and an even faster verification speed may be required in a highway environment or a wider multi-lane environment. may be needed.
  • IEEE 1609.2 can apply an elliptic curve encryption method with a relatively short key length used for encryption for a WAVE-based communication environment.
  • digital signature and verification methods using elliptic curves can be used to send and receive messages in an autonomous driving environment.
  • the signature verification process can be performed through the signer ID 512 and signature 514 extracted from the signature data 510.
  • the signer ID 512 in the signature data 510 enables identification of the algorithm, such as a hash function, used in the signature from the corresponding certificate 520-N, and the public key 524 of the certificate 520-N. Verification can be performed by comparing the information decrypted from the message and the signature.
  • the algorithm such as a hash function
  • the certificates may have a hierarchical structure, and the lower certificate identifies the upper certificate through the issuer identifier 522 and identifies itself through the public key of the upper certificate.
  • the process of verifying the signature can be performed sequentially up to the highest level certificate.
  • IEEE 1609.2 applies the elliptic curve encryption method, and domain parameters defining the elliptic curve required for verification may be included in the signature data 510.
  • ECDSA Elliptic Curve Digital Signature Algorithm
  • ECDSA literally performs digital signatures based on elliptic curves.
  • ECDSA is also an asymmetric key and generates a pair of private key and public key on the above-mentioned finite field.
  • the recipient receives the message and signature encrypted through the private key, the message is sent through the public key.
  • the authenticity of the signature is verified by decrypting it and comparing the signature and the decrypted value.
  • ECDSA is a domain parameter D, coefficients a and b defining an elliptic curve, and a reference point P as a generator. It can be composed of rank n.
  • the signature process is performed by selecting a randomly generated random number k among integers from 1 to n-1 using rank n (Step 1).
  • Q k*P
  • PA point addition
  • PD point doubling
  • PD point addition and point doubling
  • the high-speed signature verification method according to this embodiment is a method to solve this problem. proposes.
  • the coordinates on the finite field of Q can be defined within the domain parameter n through modulo operation (Step3).
  • the result of the modulo operation is used as the value r of the digital signature.
  • the message m to be encrypted and sent is created with the hash value e generated through the hash function H() (Step 4), and the other value s -1 of the digital signature is the hash value e, the private key d, the calculated r, and can be generated as a modulo value for the operation of the random number k (Step5).
  • s -1 is used to determine the scalar product coefficient of the reference point p during the signature verification process. Specifically, when the verifying side calculates the inverse s -1 for element s among the signatures defined in IEEE 1609.2 to determine the coefficient. In order to reduce the load, it should be calculated and provided in advance as an inverse source.
  • the digital signature process ends by returning the generated signature r and the inverse of s, s -1 (Step 6).
  • the side that received the signature and message verifies the authenticity of the signature by decrypting the received message.
  • the computing device 300 on the receiving side that performs the high-speed signature verification method according to this embodiment receives the message and a signature generated by encrypting the message to be signed with a private key (S100).
  • the computing device 300 may receive a value replacing the inverse of a signature according to a message protocol (S110).
  • S110 a message protocol
  • the point operation coefficient of the reference point and the public key defined as a point on the first coordinate system is calculated from the received message using the received message (S200), and the computing device 300 according to this embodiment calculates the inverse s -1 Through a signature including, the coefficient defining the number of point operations, preferably scalar multiplication, can be calculated more efficiently (S210).
  • signature verification is performed by accepting the message (m) and signature (r, s -1 ) and decrypting them with the public key (Q).
  • the computing device 300 verifies the validity of the signature (Step 1.) Specifically, it checks whether the range of r, s -1 is 0 ⁇ r ⁇ n, 0 ⁇ s -1 ⁇ n.
  • the hash value e is generated by hashing the message through the hash function H(), similar to hashing during the signature generation process (Step 2.)
  • the hash function used at this time can be identified by using the signer ID shown in FIG. 2 above. It can be identified through
  • the final verification compares the calculated verification value v with the r of the signature. If v and r are the same, the signature verification is completed (“Accept Signature”). Otherwise, it is rejected (Step 8.)
  • the signature data replaces s among the signatures (r,s) generated through the elliptic curve with the inverse, and may include identifier information for this.
  • signature data 510 may include an identifier for a hash function as a hash ID 513 in addition to the signer ID 512 and signature 514 described above in FIG. 2 .
  • the target data 515 which is the subject of a signature, is a message structure in the form of a sequence and may include hashed data used when generating or verifying a signature value. Furthermore, a selectively expandable data field may be added to the target data 515, and additional data may include an identifier flag indicating that s among the signature elements according to this embodiment has been replaced by the inverse.
  • signature 514 specifically includes r and s -1 replaced by a signature according to ECDSA.
  • the operation can be performed by referring to the result of the point operation or the value in the operation table that pre-stores at least some of the sub-operations constituting the point operation. .
  • point calculation on the first coordinate system defined as a finite field is performed differently from general real number calculation, and therefore requires a more complicated calculation process.
  • the computing device 300 performs the operation by referring to the result of the point operation according to the calculated coefficient or the value in the operation table that pre-stores at least some of the sub-operations constituting the point operation. You can skip the calculation process and perform faster calculations.
  • the scalar multiplication of a dot operation can be composed of a combination of a dot addition and a dot double operation, and sub-operations can be classified based on the dot addition operation that makes up the dot operation.
  • the result of the sequential scalar multiplication of the reference point P can be fixed, so it can be generated and provided by the signer in advance.
  • the calculation results of sequential scalar multiplication in a specified range are generated as a list and stored in a table. Therefore, the verification process can be performed more efficiently by directly referencing the calculation results for the corresponding coefficients in the table. there is.
  • the operation table can generate and store a list of operation results of scalar products with sequential odd coefficients as a table.
  • the computing device 300 uses half the size of the table according to the total coefficients, but configures the sub-operation according to the calculated coefficients as addition (subtraction) of scalar products with odd coefficients to enable high-speed operation referring to the table. do.
  • the public key Q and the dot doubling operation result 2Q of public key Q can be received in advance and stored in the memory, and therefore the calculation process for this is omitted. It can be.
  • 3Q can be composed of a point addition operation of Q and 2Q, and 5Q can be performed by adding the previously calculated 3Q and the calculated 2Q.
  • an expandable data field of the target data 515 in the signature data 51 according to FIG. 7 can be added and transmitted as included in the additional data.
  • the computing device 300 may generate a table of the results of sequential scalar multiplication of public keys. At this time, the size of the operation result list to be generated may be determined depending on the characteristics of the transmitted and received message.
  • the creation process can be performed using a mixed coordinate system.
  • Q used for calculation in the computing device 200 is defined as a point on a general finite coordinate system
  • a scalar multiplication operation can be performed by additionally using a projection coordinate system that projects the finite coordinate system for faster point calculation during the creation of the calculation table. You can.
  • the transformation of the coordinate system can be calculated using the inverse of the values in the calculation table.
  • the computing device 300 may be provided with an additional inverse for the coordinate system transformation of the generated calculation table.
  • the computing device 300 when the computing device 300 generates an operation table according to the selected projected coordinate system, it converts the table into a finite coordinate system using the received inverse.
  • the computing device 300 provides an integrated inverse according to the product of all values in the table instead of providing an overall inverse for the values of the calculation table, and creates a coordinate system for each detailed value using a relational expression through the integrated inverse.
  • the coordinate system conversion process can be streamlined by converting sequentially.
  • the high-speed signature verification process uses the inverse of the signature s provided by the transmitter, the computation result list of the public key P, and some computation results of Q to obtain sequential computation results in order to improve the efficiency of the computation required for signature verification. Since the efficiency of operations can be improved by creating and storing the list as an operation table, the operation list can be created more quickly by using a projected coordinate system (preferably the Jacobian coordinate system) to create the operation table of Q. there is.
  • a projected coordinate system preferably the Jacobian coordinate system
  • the computing device 300 may calculate the scalar product result by referring to the operation table for the sub-operations constituting the point operation.
  • the point calculation result of the public key and the reference point generated from the private key to a point on the first coordinate system defined as a finite field in the above-described signature process is referred to and the received signature is verified (S300).
  • the verified message is processed by the computing device 300 on the receiving side (S400). For example, by using the information contained in the message and reflecting it on autonomous driving, it is possible to perform safer driving or provide additional information to passengers in the autonomous vehicle.
  • the high-speed signature verification method according to this embodiment can be applied to an autonomous driving environment.
  • the cloud server 300 can provide a large amount of data in streaming form in real time along with a message, so a plurality of scalar product results (Q, By providing 2Q) in advance, the resources required for verification within the vehicle 200 are reduced.
  • the vehicle 200 can receive information by reusing the efficiently created calculation table even during frequent communication.
  • communication between the vehicle 200 and the vehicle 200 may be conducted in a direction to notify the rear following vehicles 200 of, for example, an abnormal state of the vehicle 200 in front or a situation determined by the vehicle 200 in front. Since urgency is required, it is also possible to provide multiple scalar product results (Q, 2Q) and the inverse s -1 along with message #3 for quick verification in the vehicle 200 with smaller available resources. . In other words, verification can be performed more quickly by directly providing the inverse.
  • the vehicle 200 it is possible for the vehicle 200 to communicate with a user terminal (UE, User Equipment), and it is also possible to perform communication in the form of notifying the approach of the vehicle 200 to the user terminal for shuttle service.
  • UE User Equipment
  • the vehicle 200 can provide a plurality of scalar product results (Q, 2Q) of the public key and the inverse s -1 along with message #4 to guide the location of the vehicle 200 in real time, and the user terminal receives Verification can be performed by creating an operation table from the scalar product result.
  • 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 includes a processor 308, input/output I/O 302, memory 340, and interface. It may include 306 and bus 314.
  • the processor 308, input/output device 302, memory 340, and/or interface 306 may be coupled to each other through a bus 314.
  • the bus 314 corresponds to a path through which data moves.
  • the processor 308 includes a Central Processing Unit (CPU), Micro Processor Unit (MPU), Micro Controller Unit (MCU), Graphic Processing Unit (GPU), microprocessor, digital signal processor, microcontroller, and application processor (AP). , application processor) and logic elements capable of performing similar functions.
  • CPU Central Processing Unit
  • MPU Micro Processor Unit
  • MCU Micro Controller Unit
  • GPU Graphic Processing Unit
  • microprocessor digital signal processor
  • microcontroller microcontroller
  • AP application processor
  • application processor application processor
  • 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.
  • the interface 306 may perform the function of transmitting data to or receiving data from a communication network.
  • Interface 306 may be wired or wireless.
  • the interface 306 may include an antenna or a wired or wireless transceiver.
  • the memory 340 is a volatile operating memory that improves the operation of the processor 308 and protects personal information, and may further include high-speed DRAM and/or SRAM.
  • memory 340 stores 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.
  • 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 allows the processor to perform each step. For example, an operation of receiving the message including a signature created by encrypting the message to be signed with a private key, calculating a reference point defined as a point on a first coordinate system from the received message and a point operation coefficient of the public key.
  • a computer program including a calculation operation and an operation of verifying the signature by comparing the result of a dot operation according to the calculated coefficient with the signature may be performed by a processor.
  • various embodiments described herein may be implemented in a recording medium readable by a computer or similar device, for example, using software, hardware, or a combination thereof.
  • the embodiments described herein include application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), and field programmable gate arrays (FPGAs). In some cases, it may be implemented using at least one of processors, controllers, micro-controllers, microprocessors, and other electrical units for performing functions.
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • FPGAs field programmable gate arrays
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • FPGAs field programmable gate arrays
  • 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.
  • Software code can be implemented as a software application written in an appropriate programming language.
  • the software code may be stored in a memory module and executed by a control module.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 컴퓨팅 장치간 메시지 송수신 과정에서 서명을 검증하는 방법에 관한 것이다. 본 발명에 따른 V2X 통신 환경에서 메시지의 서명 검증 방법은 서명하고자 하는 상기 메시지를 개인키로 암호화하여 생성한 서명을 포함하는 상기 메시지를 수신하는 단계; 상기 수신된 메시지로부터 제1 좌표계 상의 한 점으로 정의된 기준점 및 공개키의 점 연산 계수를 산출하는 단계; 및 상기 산출된 계수에 따른 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 단계를 포함하고, 상기 서명은 메시지 프로토콜에 따른 서명 중 일 값을 역원으로 대체한 것이 바람직하다. 본 발명에 따르면, 보다 향상된 검증 속도를 통해 제약된 환경에서도 정확한 정보를 신속하게 제공받을 수 있다.

Description

V2X 통신 환경에서 메시지의 서명 검증 방법 및 이를 수행하는 컴퓨팅 장치
본 발명은 컴퓨팅 장치간 메시지 송수신 과정에서 서명을 검증하는 방법에 관한 것이다. 바람직하게는 차량 내 컴퓨터 장치와의 메시지 내 서명의 검증 방법에 관한 것이다.
IEEE 1609.2 는 WAVE (Wireless Access in Vehicular Environment) 기반의 차량간(V2V, Vehicle-to-Vehicle) 또는 차량과 인프라간(V2I, Vehicle-to-Infrastructure) 통신 상의 메시지를 보호하기 위한 프로토콜들을 정의하며 ECDSA 전자 서명 기법을 사용한다.
ECDSA(Elliptic Curve Digital Signature Algorithm)는 타원곡선 이론에 기반한 공개 키 암호 방식으로 타원곡선 암호(elliptic curve cryptography; ECC)는 RSA 과 같은 기존 공개 키 암호 방식에 비하여 비교적 짧은 키를 사용하면서도 그와 비슷한 수준의 안전성을 제공한다는 장점이 있다.
따라서, 타원곡선 암호는 IoT(Internet of Thing) 장치와 같이 전송량과 리소스가 제한된 상황이나 고속 주행 중인 차량 통신 환경에 적합한 장점이 있으며, 이러한 이유로 RSA를 대체할 차세대 공개키 암호기술로 부상하고 있다.
즉, RSA 등의 기존의 공개키 암호 방식 (public key cryptosystem)에 비해 짧은 키 길이를 이용한 타원곡선 암호를 통한 디지털 서명 및 검증 방식은 자율주행을 위한 통신 프로토콜의 제한 내에서 상호 통신을 위한 과정에 응용되고 있다.
다만, 유한체에서 정의되는 타원곡선에 의한 서명/검증 방식은 일반적인 실수체의 연산에 비하여 높은 연산량을 요구하므로 이에 따라 보다 효율적인 검증 방법을 제공할 필요가 있다.
본 발명은 보다 향상된 검증 속도를 갖는 타원곡선 기반의 암호화 방법을 제안하는 것을 목적으로 한다.
또한, 본 발명은 환경에 따라 적합한 파라미터를 제공하는 암호화 방법을 제안하는 것을 목적으로 한다.
또한, 본 발명은 환경에 따라 보다 빠른 좌표계 변환 방법을 제안하는 것을 목적으로 한다.
또한, 본 발명은 자율주행 환경에서 표준 통신 프로토콜을 고려한 파라미터를 제공하는 암호화 방법을 제안하는 것을 목적으로 한다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 V2X 통신 환경에서 메시지의 서명 검증 방법은 서명하고자 하는 상기 메시지를 개인키로 암호화하여 생성한 서명을 포함하는 상기 메시지를 수신하는 단계; 상기 수신된 메시지로부터 제1 좌표계 상의 한 점으로 정의된 기준점 및 공개키의 점 연산 계수를 산출하는 단계; 및 상기 산출된 계수에 따른 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 단계를 포함하고, 상기 서명은 메시지 프로토콜에 따른 서명 중 일 값을 역원으로 대체한 것이 바람직하다.
상기 메시지는 상기 일 값의 역원 대체 여부에 대한 식별자를 더 포함하는 것이 바람직하다.
상기 서명은 기준점의 점 연산 계수의 산출을 위한 일 값을 역원으로 대체한 것이 바람직하다.
상기 수신하는 단계는 상기 공개키에 대한 적어도 하나 이상의 스칼라 곱의 연산 결과를 수신하고, 상기 점 연산하는 단계는 상기 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행하는 것이 바람직하다.
상기 연산 테이블은 제1 좌표계로 수신된 상기 공개키의 스칼라 곱의 연산 결과를 제2 좌표계로 변환하여 상기 연산 결과 리스트를 생성하고, 상기 연산 결과 리스트를 제1 좌표계로 변환하여 저장한 것이 바람직하다.
상기 서명은 임의의 난수에 따라 상기 제1 좌표계 상의 임의의 기준점을 스칼라 곱함으로써 생성되고, 상기 점 연산하는 단계는 상기 기준점과 상기 공개키를 상기 산출된 계수에 따라 점 연산하는 것이 바람직하다.
상기 기준점에 대한 스칼라 곱 결과 리스트는 미리 생성된 것이 바람직하다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 V2X 통신 환경에서 기본 안전 메시지의 서명 검증 을 수행하는 컴퓨팅 장치는 프로세서; 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드하는 메모리; 및
상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 서명하고자 하는 상기 메시지를 개인키로 암호화하여 생성한 서명을 포함하는 상기 메시지를 수신하는 동작, 상기 수신된 메시지로부터 제1 좌표계 상의 한 점으로 정의된 기준점 및 공개키의 점 연산 계수를 산출하는 동작, 및 상기 산출된 계수에 따른 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 동작을 포함하고, 상기 서명은 메시지 프로토콜에 따른 서명 중 일 값을 역원으로 대체한 것이 바람직하다.
상기 메시지는 상기 일 값의 역원 대체 여부에 대한 식별자를 더 포함하는 것이 바람직하다.
상기 서명은 기준점의 점 연산 계수의 산출을 위한 일 값을 역원으로 대체한 것이 바람직하다.
상기 수신하는 동작은 상기 공개키에 대한 적어도 하나 이상의 스칼라 곱의 연산 결과를 수신하고, 상기 점 연산하는 동작은 상기 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행하는 것이 바람직하다.
상기 연산 테이블은 제1 좌표계로 수신된 상기 공개키의 스칼라 곱의 연산 결과를 제2 좌표계로 변환하여 상기 연산 결과 리스트를 생성하고, 상기 연산 결과 리스트를 제1 좌표계로 변환하여 저장한 것이 바람직하다.
상기 서명은 임의의 난수에 따라 상기 제1 좌표계 상의 임의의 기준점을 스칼라 곱함으로써 생성되고, 상기 점 연산하는 동작은 상기 기준점과 상기 공개키를 상기 산출된 계수에 따라 점 연산하는 것이 바람직하다.
상기 기준점에 대한 스칼라 곱 결과 리스트는 미리 생성된 것이 바람직하다.
본 발명에 따르면, 보다 향상된 검증 속도를 통해 제약된 환경에서도 정확한 정보를 신속하게 제공받을 수 있다.
또한, 본 발명은 환경에 따라 최적화된 파라미터를 통해 보다 안정성 높은 정보의 송수신이 가능하다.
또한, 본 발명은 표준 통신 프로토콜 내에서 제공되는 정보를 통해 향상된 연산을 수행하고 이종 환경의 인프라나 다른 사용자들과도 메시지를 안전하게 송수신 할 수 있도록 한다.
도 1은 본 발명의 일 실시예에 따른 V2X 통신 환경에서 수행되는 서명 검증 방법이 적용되는 환경을 나타낸 예시도이다.
도 2는 본 발명의 일 실시예에 따른 V2X 통신 환경에서 수행되는 인증서 기반의 서명 검증 방법을 나타내는 예시도이다.
도 3은 본 발명의 일 실시예에 따른 V2X 통신 환경에서 타원곡선 기반의 디지털 서명의 생성을 위한 수도 코드를 나타낸 예시도이다.
도 4은 본 발명의 일 실시예에 따른 V2X 통신 환경에서 수행되는 서명 검증 방법을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 V2X 통신 환경에서 수행되는 서명 검증 방법의 세부 과정을 나타낸 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 V2X 통신 환경에서 수행되는 서명의 검증을 위한 수도 코드를 나타낸 예시도이다.
도 7은 본 발명의 일 실시예에 따른 V2X 통신 환경에서 수행되는 서명 데이터의 구성을 나타내는 예시도이다.
도 8은 본 발명의 일 실시예에 따른 V2X 통신 환경에서 수행되는 서명 검증 방법의 연산 테이블 생성 예를 나타낸 예시도이다.
도 9는 본 발명의 일 실시예에 따른 V2X 통신 환경에서 수행되는 메시지의 송수신예를 나타낸 예시도이다.
도 10은 본 발명의 일 실시예들에 따른 서명 검증 방법을 수행하는 컴퓨팅 장치 형태의 구현을 나타낸 예시도이다.
이하의 내용은 단지 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시 되지 않았지만 발명의 원리를 구현하고 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시 예들은 원칙적으로, 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이외같이 특별히 열거된 실시 예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
또한, 발명을 설명함에 있어서 발명과 관련된 공지 기술에 대한 구체적인 설명이 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하에는 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예에 대해 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 고속 서명 검증 방법이 수행되는 환경을 예시하는 예시도이다.
도 1을 참고하면, 일 실시예에서 본 발명에 따른 고속 서명 검증 방법은 주행중인 차량(200)을 중심으로 차량(200)이 다른 차량(200) 또는 노변 인프라 RSU(Road Side Unit)(400)와 통신을 수행하는 환경에 적용될 수 있다.
각 수신 주체는 내부의 컴퓨팅 장치(300) 예를 들어 차량의 OBU(On-Board Unit)를 통해 표준 규약된 통신 프로토콜 상에서 수신되는 정보 내에서 파라미터를 추출하고 디지털 서명으로 암호화된 메시지를 검증함으로써 해당 메시지에 대한 처리를 수행한다.
와이파이 기반의 웨이브(WAVE, Wireless Access in Vehicle Environments)에서 정의된 표준 프로토콜을 통해 고속으로 주행하는 차량(200)은 복잡한 교통상황에서 정보를 교환할 수 있으며, 외부의 클라우드 서버(300)로부터 기지국(30)을 통해 다양한 실시간 정보를 수집하여 주행에 활용할 수 있도록 한다.
IEEE 1609.2 는 WAVE (Wireless Access in Vehicular Environment) 기반의 차량간(V2V, Vehicle-to-Vehicle) 또는 차량과 인프라간(V2I, Vehicle-to-Infrastructure) 통신 상의 메시지를 보호하기 위한 프로토콜들을 정의하며 타원곡선 암호 방식을 사용할 수 있다.
IEEE 1609.2 에서 이용되는 기본 안전 메시지(BSM, Basic Safety Message)(500)는 SAE J2735에서 정의된다. 도 1과 같이 특정 노변 장치(400)로 초당 10개의 메시지가 송신되는 경우 메시지의 서명의 검증을 위해서는 적어도 초당 50개 이상의 검증속도가 필요할 수 있으며 고속도로 환경이나 보다 넓은 다 차로 환경에서는 더욱 빠른 검증속도가 필요할 수 있다.
이를 위해, IEEE 1609.2 는 WAVE 기반의 통신 환경을 위해 암호화를 위해서 이용되는 키의 길이가 상대적으로 짧은 타원곡선 암호 방식을 적용할 수 있다. 즉, 타원곡선을 통한 디지털 서명 및 검증 방식이 자율주행 환경에서 메시지를 송수신 하는 데 이용될 수 있다.
도 2를 참고하면, 본 실시예에 따른 서명의 검증 과정은 서명 데이터(510)로부터 추출되는 서명자(Signer) ID(512)와 서명(Signature)(514)을 통해 검증을 수행할 수 있다.
서명 데이터(510) 내 서명자 ID(512)는 대응되는 인증서(520-N)로부터 서명에 이용된 해시 함수 등의 알고리즘을 식별할 수 있도록 하며, 인증서(520-N)의 공개키(524)를 통해 메시지로부터 복호화된 정보와 서명을 비교함으로써 검증을 수행할 수 있다.
나아가, 본 실시예에서 인증서(520-1…520-N)들은 계층적인 구조를 가질 수 있으며 하위 인증서는 발행자(Issuer) 식별자(522)를 통해 상위 인증서를 식별하고 상위 인증서의 공개키를 통해 자신의 서명을 검증하는 과정을 최상위 인증서 까지 연쇄적으로 수행할 수 있다.
이때, 서명의 검증 과정에서 효율적인 연산을 위해서 IEEE 1609.2 는 타원곡선 암호 방식을 적용하고 있으며 검증에 필요한 타원곡선을 정의하는 도메인 파라미터 들은 서명 데이터(510) 내에 포함될 수 있다.
타원곡선 암호화를 통한 서명과 검증과정에 대하여 먼저 설명하면, 타원 곡선을 통한 디지털 서명 알고리즘 ECDSA(Elliptic Curve Digital Signature Algorithm)는 디지털 서명의 한 방법으로 타원 곡선을 이용하여 디지털 기반의 서명을 수행하는 알고리즘이다.
ECDSA는 문자 그대로 타원 곡선에 기반하여 디지털 서명을 수행한다. 타원 곡선은 y2 = x3 + ax + b 형태의 비교적 간단한 형태의 방정식으로 정의될 수 있으나, 타원 곡선을 사용하는 암호화 기술은 실수체와 달리 소수체의 유한체(Finite Field)를 이용하므로 일방향성을 가질 수 있다.
유한체에서 정의된 타원 곡선 상의 한 시작점(base point)에서 반복적인 곱셈 연산을 수행했을 때 곱셈의 결과에 따른 종료점은 쉽게 구할 수 있지만, 시작점과 종료점 만을 아는 상태에서 시작점에서 얼마 횟수의 곱셈 연산을 수행해야 하는지는 역으로 유추하기 어렵다는 일방향성을 디지털 서명에 이용한다.
즉 ECDSA 역시 비대칭키로 개인키(private key)와 공개키(public key)를 상술한 유한체 상에서 쌍으로 생성하며, 개인키를 통해 암호화된 메시지와 서명을 수신측에서 수신하면 메시지를 공개키를 통해 복호화하고 서명과 복호화된 값을 비교함으로써 서명의 진위 여부를 검증한다.
구체적으로 본 실시예에 따른 ECDSA의 서명 생성 과정을 도 3에서 예시된 수도 코드(Pseudo Code)를 참고하여 설명하면 ECDSA는 도메인 파라미터 D는 타원곡선을 정의하는 계수 a,b 및 생성자로 기준점 P와 위수 n으로 구성될 수 있다.
먼저, 위수 n 을 사용하여 1 ~ n-1 까지의 정수 중 랜덤하게 발생된 난수 k를 선택하는 것으로 서명 과정은 수행된다(Step1). ECDSA의 공개키(Q)는 난수 k를 유한체 상의 기준점(P)와 곱하는 형태로 Q = k*P 를 통해 생성되며, Q의 x축 좌료 값 x1은 정수로 변환될 수 있다.(Step2).
이때, Q = k*P 는 일반적인 실수계 연산과 달리 점 가산 (point addition; PA) 및 점 두배 (point doubling; PD) 연산의 반복으로 계산될 수 있으며 유한 좌표계 상에서 점 가산과 점 두배의 연산에는 연산 소요 사이클이 비교적 큰 역원 연산이 포함될 수 있다.
다만 이러한 연산의 부하는 반복적인 서명을 수행하는 송신 측에 비하여 서명을 수신하여 제공된 공개키를 통해 검증하는 측에서 영향이 더 크게 나타나므로 본 실시예에 따른 고속 서명 검증 방법은 이를 해결하기 위한 방법을 제안한다.
이어서, Q의 유한체 상의 좌표는 모듈로 연산을 통해서 도메인 파라미터 n 내에 정의될 수 있다(Step3). 이때, 모듈로 연산의 결과는 디지털 서명의 값 r로 이용된다.
다음, 암호화하여 보내고자 하는 메시지 m은 해시함수 H()를 통해 생성된 해시값 e로 생성되며(Step 4) 디지털 서명의 다른 값 s-1는 해시값 e, 개인키 d, 산출된 r, 및 난수 k의 연산에 대한 모듈로 값으로 생성될 수 있다(Step5).
이때, s-1는 서명의 검증 과정에서 기준점 p의 스칼라 곱 계수를 결정하는데 이용되며 구체적으로 IEEE 1609.2 에서 정의된 서명 중 요소 s에 대한 역원 s-1을 검증하는 측에서 산출하여 계수를 결정할 때의 부하를 줄이기 위해 역원으로 미리 계산하여 제공하도록 한다.
생성된 서명 r 및 s의 역원 s-1를 리턴하는 것으로 디지털 서명 과정은 종료된다(Step6).
이어서, 서명과 메시지를 수신한 측에서는 수신된 메시지를 복호화함으로써 서명의 진위 여부를 검증한다.
이에 대해서는 도 4를 참고하여 설명한다.
도 4를 참고하면, 본 실시예에 따른 고속 서명 검증 방법을 수행하는 수신측의 컴퓨팅 장치(300)는 서명하고자 하는 메시지를 개인키로 암호화하여 생성한 서명과 상기 메시지를 수신한다(S100).
이때, 도 5를 참고하면 본 실시예에 따른 컴퓨팅 장치(300)는 메시지 프로토콜에 따른 서명 중 일 값을 역원을 대체한 값 수신할 수 있다(S110)
다음, 수신된 메시지를 이용하여 수신된 메시지로부터 제1 좌표계 상의 한 점으로 정의된 기준점 및 공개키의 점 연산 계수 산출하되(S200), 본 실시예에 따른 컴퓨팅 장치(300) 는 역원 s-1를 포함하는 서명을 통해 점 연산, 바람직하게는 스칼라 곱의 횟수를 정의하는 계수를 보다 효율적으로 산출할 수 있다(S210).
도 6에 따른 수도 코드를 통해 보다 상세하게 설명하면, 서명 검증은 메시지(m)와 서명(r, s-1)를 받아들여 공개키(Q)로 복호화 함으로써 수행된다.
먼저, 컴퓨팅 장치(300)는 서명을 유효성을 검증한다(Step1.) 구체적으로 r, s-1의 범위가 0 < r < n, 0 < s-1 < n 인지 체크한다.
유효한 서명인 경우 서명 생성 과정에서 해싱한 것과 마찬가지로 메시지를 해시함수 H()를 통해 해싱하여 해시 값 e를 생성한다(Step2.) 이때 이용된 해시함수에 대한 식별은 상술한 도 2의 서명자 ID를 통해 식별할 수 있다.
이어서, 검증을 위한 계수의 산출을 위한 매개 값으로 서명 내 일 값 s의 역원에 대한 모듈로 값으로 w(w = s-1 mod n)를 계산한다(Step 3.).
본 실시예에서는 서명의 요소 중 s를 역원 s-1 로 대체하여 수신하였으므로 부가적인 역원 연산 없이 w를 산출할 수 있다.
다음 구체적인 계수로 두 점 기준점 P에 대한 계수 u1(u1 = e*w mod n)과 공개키 Q에 대한 계수 u2(u2 = r*w mod n)를 각각 해시 값 e과 매개 값 w 및 서명 값 중 r 을 이용하여 생성한다(Step4).
서명의 검증을 위해서는 산출된 계수에 따라 각 기준점의 스칼라 곱 연산과 산출된 결과의 가산 연산을 수행한다(Step5.)
추출된 P와 Q의 계수에 대한 스칼라 곱 결과를 가산함으로써 검증을 위한 X(X(x1, y1) = (u1*P + u2*Q))를 산출할 수 있다(Step5.).
추가적으로 X의 유효성을 검증하기 위해 산출된 (x1, y1)가 무한원점(O)이면 잘못된 서명이므로 거절(“Reject Signature”)하되(Step6.), 유효한 경우 추가적인 모듈로 연산을 통해 최종 피 검증값 v(v = x1 mod n)를 생성한다(Step 7.).
최종 검증은 산출된 피 검증값 v와 서명의 r을 비교하여 v와 r이 동일하면 서명의 검증을 완료(“Accept Signature”)하고 그렇지 않은 경우 거절한다(Step 8.)
이때, 본 실시예에 따른 서명 데이터는 타원곡선을 통해 생성된 서명 (r,s) 중 s를 역원으로 대체하므로 이에 대한 식별자 정보를 포함할 수 있다.
도 7을 참조하면, 서명 데이터(510)는 도 2에서 상술한 서명자 ID(512) 및 서명(514)외에 해시 함수에 대한 식별자를 해시 ID(513)로 포함할 수 있다.
서명의 대상이 되는 대상 데이터(515)는 시퀀스 형태의 메시지 구조로써, 서명 값을 생성 또는 검증할 때 이용되는 해시되는 데이터를 포함할 수 있다. 나아가 대상 데이터(515)에는 선택적으로 확장 가능한 데이터 필드가 추가될 수 있으며 부가 데이터로 본 실시예에 따른 서명 요소 중 s가 역원으로 대체되었음을 식별자 플래그로 포함할 수 있다.
따라서, 서명(514)은 구체적으로 ECDSA 에 따른 서명으로 r 및 대체된 s-1를 포함한다.
나아가 본 실시예에는 산출된 계수에 따른 점 연산의 효율적인 연산을 위해 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행할 수 있다.
상술한 바와 같이 유한체로 정의된 제1 좌표계 상의 점 연산은 일반적인 실수계 연산과 달리 수행되며, 따라서 보다 복잡한 연산 과정을 요하게 된다.
따라서, 본 실시예에 따른 컴퓨팅 장치(300)는 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행함으로써 일부 연산 과정을 생략하고 보다 빠른 연산을 수행할 수 있다.
구체적으로 점 연산의 스칼라 곱은 점 가산과 점 두배 연산의 조합으로 구성될 수 있으며 하위 연산은 점 연산을 구성하는 점 가산 연산을 기준으로 구분할 수 있다.
구체적으로 기준점 P의 순차적인 스칼라 곱의 연산 결과는 고정될 수 있으므로 미리 서명자가 생성하고 제공할 수 있다.
또한, 공개키 Q에 대해서는 지정된 범위에서 순차적인 스칼라 곱의 연산 결과를 리스트로 생성하여 테이블로 저장하며 따라서, 해당되는 계수에 대한 연산 결과를 테이블에서 직접 참조함으로써 보다 효율적으로 검증 과정을 수행할 수 있다.
바람직하게 본 실시예에서 연산 테이블은 순차적인 홀수 계수를 갖는 스칼라 곱의 연산 결과 리스트를 테이블로 생성하여 저장할 수 있다.
즉, 컴퓨팅 장치(300)가 전체 계수에 따른 테이블의 절반의 크기를 이용하되 산출된 계수에 따른 하위 연산을 홀수 계수를 갖는 스칼라 곱의 가산(감산)으로 구성함으로써 테이블을 참조한 고속 연산이 가능하도록 한다.
도 8을 참고하면, 본 실시예에서 연산 테이블에 저장되는 연산 결과 리스트 중에서 공개키 Q와 공개키 Q의 점 두배 연산 결과 2Q는 미리 수신되어 메모리에 저장될 수 있으며 따라서, 이에 대한 연산 과정은 생략될 수 있다.
3Q는 Q와 2Q의 점 가산 연산으로 구성될 수 있으며, 5Q는 앞서 산출된 3Q와 산출된 2Q의 가산으로 수행될 수 있다.
또한, 이를 위해 이용되는 2Q의 경우 도 7에 따른 서명 데이터(51) 내 대상 데이터(515)의 확장 가능한 데이터 필드가 추가될 수 있으며 부가 데이터에 포함하여 전송될 수 있다.
이상 컴퓨팅 장치(300)는 공개키의 순차적인 스칼라 곱의 연산 결과를 테이블로 생성할 수 있다. 이때 생성하고자 하는 연산 결과 리스트의 크기는 송수신되는 메시지의 특성에 따라 결정될 수 있다.
나아가 연산 결과 리스트의 보다 빠른 생성을 위하여 생성과정은 혼합 좌표계를 이용하여 수행될 수 있다.
컴퓨팅 장치(200)에서 연산을 위해 이용되는 Q는 일반적인 유한 좌표계 상의 점으로 정의되므로 연산 테이블의 생성 과정에서 보다 빠른 점 연산을 위해 유한 좌표계를 투영한 투영 좌표계를 추가적으로 이용하여 스칼라 곱 연산을 수행할 수 있다.
바람직하게는 유한 좌표계의 수신된 점 Q의 일 좌표 값 (x,y)를 (x,y,z=1)로 투영 좌표계로 변환하여 연산 결과 리스트를 생성한다.
이상의 과정으로 생성된 연산 테이블의 값들은 투영 좌표계의 값을 가지므로 검증을 위해서는 다시 유한 좌표계의 값으로 변환이 필요하다.
본 실시예에서 좌표계의 변환은 연산 테이블 내 값들의 역원을 이용하여 연산 될 수 있다. 하지만, 역원 연산은 일반적으로 복잡한 연산과정에 따라 많은 리소스를 필요로 하므로 컴퓨팅 장치(300)는 생성된 연산 테이블의 좌표계 변환을 위한 역원을 추가로 제공받을 수 있다.
따라서, 본 실시예에서 컴퓨팅 장치(300)는 선택된 투영 좌표계에 따른 연산 테이블이 생성되면, 수신된 역원을 이용하여 유한 좌표계로 테이블을 변환한다.
이때, 본 실시예에서 컴퓨팅 장치(300)는 연산 테이블의 값들에 대한 전체 역원을 제공하는 대신 테이블 내 전체 값들의 곱에 따른 통합 역원을 제공하고, 통합 역원을 통한 관계식으로 각 세부 값들의 좌표계를 순차적으로 변환하도록 함으로써 좌표계 변환 과정을 효율화 할 수 있다.
이상 본 실시예에 따른 고속 서명 검증 과정은 서명 검증에 소요되는 연산의 효율화를 위해 송신측에서 제공된 서명 s의 역원과 공개키 P의 연산 결과 리스트 및 Q의 일부 연산 결과를 이용하여 순차적인 연산 결과 리스트를 연산 테이블로 생성하여 저장하는 것을 통해 연산의 효율화를 꾀할 수 있으므로, Q의 연산 테이블의 생성에 투영 좌표계(바람직하게는 자코비안(Jacobian) 좌표계)를 이용함으로써 보다 빠르게 연산 리스트를 생성할 수 있다.
이상 본 실시예에 따른 컴퓨팅 장치(300)는 점 연산을 구성하는 하위 연산을 연산 테이블을 참조하여 스칼라 곱 결과를 산출할 수 있다.
다음, 산출된 계수에 따라 상술한 서명 과정에서 개인키로부터 유한체로 정의된 제1 좌표계 상의 한 점으로 생성된 공개키와 기준점의 점 연산 결과를 참조하고 수신된 서명을 검증한다(S300).
이상의 과정을 통해 서명의 검증되면 검증된 메시지를 수신 측의 컴퓨팅 장치(300)에서 처리한다(S400). 예를 들어, 메시지에 포함된 정보를 이용하여 자율주행에 반영함으로써 보다 안전한 주행을 수행할 수행하거나 자율주행 차량에 탑승한 승객에게 부가적인 정보를 제공해 줄 수 있다.
도 9를 참조하면, 본 실시예에 따른 고속 서명 검증 방법은 자율주행 환경에 적용될 수 있다.
일 예로 클라우드 서버(300)와 차량(200) 간의 통신에서 클라우드 서버(300)는 메시지와 함께 실시간으로 대용량의 데이터들을 스트리밍 형태로 제공할 수 있으므로 메시지 #1와 함께 복수의 스칼라 곱 결과(Q,2Q)를 미리 제공함으로써 차량(200) 내에서의 검증에 드는 리소스를 줄이도록 한다. 차량(200)에서는 빈번한 통신에도 효율적으로 생성된 연산 테이블을 재사용함으로써 정보를 수신할 수 있다.
또한, 도로 인프라(400) 간 차량(200) 간의 통신의 경우 주행 도로에 인접한 각각의 노변 장치(RSU, Road Side Unit)와 통신을 지속적으로 수행하므로 생성된 연산 테이블의 재사용 가능성이 높으므로 인프라(400)에서 미리 연산된 공개키의 스칼라 곱을 복수(Q,2Q)로 포함하는 메시지 #2로 제공함으로써 차량(200)에서 연산 테이블을 효율적으로 생성하도록 하는 것도 가능하다.
이어서, 차량(200)과 차량(200)간의 통신은 예를 들어 전방 차량(200)의 이상 상태나 전방 차량(200)에서 판단한 상황을 후방 추종 차량(200)들에게 통지하기 위한 방향으로 이루어질 수 있으며, 긴급성을 요하므로 보다 가용 리소스가 작은 차량(200)에서 빠른 검증을 위해 메시지와 함께 복수의 스칼라 곱 결과(Q,2Q)와 역원 s-1을 메시지 #3와 함께 제공하는 것도 가능하다. 즉, 역원을 직접 제공함으로써 검증을 보다 빠르게 수행할 수 있도록 한다.
또한, 차량(200)이 사용자의 단말(UE, User Equipment)과 통신하는 것도 가능하며 셔틀 서비스를 위해 사용자의 단말에게 차량(200)의 접근을 알리는 형태로 통신을 수행하는 것도 가능하다.
따라서 차량(200)은 차량(200)의 위치를 실시간으로 안내하기 위해 메시지 #4와 함께 공개키의 복수의 스칼라 곱 결과(Q, 2Q)와 역원 s-1를 제공할 수 있으며 사용자 단말은 수신된 스칼라 곱 결과로부터 연산 테이블을 생성하여 검증을 수행할 수 있다.
또는 차량(200)이 횡단보도에 진입하는 경우와 같이 긴급성을 요하는 경우에는 추가적인 스칼라 곱 결과와 역원을 함께 보행자의 사용자 단말에 제공하는 것도 가능하며 상황에 따라 선택적으로 송신하는 파라미터를 결정할 수 있다.
이하, 본 발명의 일 실시예에 따른 고속 서명 검증을 수행하는 컴퓨팅 장치(300)의 구체적인 하드웨어 구현에 대하여 설명한다.
도 10을 참조하면, 본 발명의 몇몇 실시예들에서 컴퓨팅 장치(300)는 컴퓨팅 장치의 형태로 구현될 수 있다. 컴퓨팅 장치(300)를 구성하는 각각의 모듈 중 하나 이상은 범용 컴퓨팅 프로세서 상에서 구현되며 따라서 프로세서(processor)(308), 입출력 I/O(302), 메모리 (memory)(340), 인터페이스(interface)(306) 및 버스(314, bus)를 포함할 수 있다. 프로세서(308), 입출력 장치(302), 메모리 (340) 및/또는 인터페이스(306)는 버스(314)를 통하여 서로 결합될 수 있다. 버스(314)는 데이터들이 이동되는 통로(path)에 해당한다.
구체적으로, 프로세서(308)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit), 마이크로프로세서, 디지털 신호 프로세스, 마이크로컨트롤러, 어플리케이션 프로세서(AP, application processor) 및 이들과 유사한 기능을 수행할 수 있는 논리 소자들 중에서 적어도 하나를 포함할 수 있다.
입출력 장치(302)는 키패드(keypad), 키보드, 터치스크린 및 디스플레이 장치 중 적어도 하나를 포함할 수 있다. 메모리 장치(340)는 데이터 및/또는 프로그램 등을 저장할 수 있다.
인터페이스(306)는 통신 네트워크로 데이터를 전송하거나 통신 네트워크로부터 데이터를 수신하는 기능을 수행할 수 있다. 인터페이스(306)는 유선 또는 무선 형태일 수 있다. 예컨대, 인터페이스(306)는 안테나 또는 유무선 트랜시버 등을 포함할 수 있다. 메모리 (340)는 프로세서(308)의 동작을 향상시키되, 개인정보의 보호를 위한 휘발성의 동작 메모리로서, 고속의 디램 및/또는 에스램 등을 더 포함할 수도 있다.
또한, 메모리(340) 내에는 여기에 설명된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 상술한 검증 방법의 선택된 양태들을 수행하도록 하는 로직을 포함할 수 있다.
메모리 (340)에 저장된 상술한 검증 방법을 수행하는 각 단계를 포함하는 명령어들의 집합으로 프로그램 또는 어플리케이션을 로드하고 프로세서가 각 단계를 수행할 수 있도록 한다. 예를 들어, 서명하고자 하는 상기 메시지를 개인키로 암호화하여 생성한 서명을 포함하는 상기 메시지를 수신하는 동작, 상기 수신된 메시지로부터 제1 좌표계 상의 한 점으로 정의된 기준점 및 공개키의 점 연산 계수를 산출하는 동작, 및 상기 산출된 계수에 따른 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 동작 등이 포함된 컴퓨터 프로그램이 프로세서에 의해 각 수행될 수 있다.
나아가, 여기에 설명되는 다양한 실시예는 예를 들어, 소프트웨어, 하드웨어 또는 이들의 조합된 것을 이용하여 컴퓨터 또는 이와 유사한 장치로 읽을 수 있는 기록매체 내에서 구현될 수 있다.
하드웨어적인 구현에 의하면, 여기에 설명되는 실시예는 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), 기타 기능 수행을 위한 전기적인 유닛 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시예들이 제어 모듈 자체로 구현될 수 있다.
소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다. 적절한 프로그램 언어로 씌여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리 모듈에 저장되고, 제어모듈에 의해 실행될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다.
따라서, 본 발명에 개시된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다

Claims (15)

  1. V2X 통신 환경에서 메시지의 서명 검증 방법에 있어서,
    서명하고자 하는 상기 메시지를 개인키로 암호화하여 생성한 서명을 포함하는 상기 메시지를 수신하는 단계;
    상기 수신된 메시지로부터 제1 좌표계 상의 한 점으로 정의된 기준점 및 공개키의 점 연산 계수를 산출하는 단계; 및
    상기 산출된 계수에 따른 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 단계를 포함하고,
    상기 서명은 메시지 프로토콜에 따른 서명 중 일 값을 역원으로 대체한 것을 특징으로 하는 서명 검증 방법.
  2. 제 1 항에 있어서,
    상기 메시지는 상기 일 값의 역원 대체 여부에 대한 식별자를 더 포함하는 것을 특징으로 하는 서명 검증 방법.
  3. 제 2 항에 있어서,
    상기 서명은 기준점의 점 연산 계수의 산출을 위한 일 값을 역원으로 대체한 것을 특징으로 하는 서명 검증 방법.
  4. 제 2 항에 있어서,
    상기 수신하는 단계는 상기 공개키에 대한 적어도 하나 이상의 스칼라 곱의 연산 결과를 수신하고,
    상기 점 연산하는 단계는 상기 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행하는 것을 특징으로 하는 서명 검증 방법.
  5. 제 2 항에 있어서,
    상기 연산 테이블은 제1 좌표계로 수신된 상기 공개키의 스칼라 곱의 연산 결과를 제2 좌표계로 변환하여 상기 연산 결과 리스트를 생성하고, 상기 연산 결과 리스트를 제1 좌표계로 변환하여 저장한 것을 특징으로 하는 서명 검증 방법.
  6. 제 5 항에 있어서,
    상기 서명은 임의의 난수에 따라 상기 제1 좌표계 상의 임의의 기준점을 스칼라 곱함으로써 생성되고,
    상기 점 연산하는 단계는 상기 기준점과 상기 공개키를 상기 산출된 계수에 따라 점 연산하는 것을 특징으로 하는 서명 검증 방법.
  7. 제 1 항에 있어서,
    상기 기준점에 대한 스칼라 곱 결과 리스트는 미리 생성된 것을 특징으로 하는 서명 검증 방법.
  8. 프로세서;
    상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    서명하고자 하는 메시지를 개인키로 암호화하여 생성한 서명을 포함하는 상기 메시지를 수신하는 동작,
    상기 수신된 메시지로부터 제1 좌표계 상의 한 점으로 정의된 기준점 및 공개키의 점 연산 계수를 산출하는 동작, 및
    상기 산출된 계수에 따른 점 연산의 결과와 상기 서명을 비교하여 상기 서명을 검증하는 동작을 포함하고,
    상기 서명은 메시지 프로토콜에 따른 서명 중 일 값을 역원으로 대체한 것을 특징으로 하는 컴퓨팅 장치.
  9. 제 8 항에 있어서,
    상기 메시지는 상기 일 값의 역원 대체 여부에 대한 식별자를 더 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  10. 제 9 항에 있어서,
    상기 서명은 기준점의 점 연산 계수의 산출을 위한 일 값을 역원으로 대체한 것을 특징으로 하는 컴퓨팅 장치.
  11. 제 9 항에 있어서,
    상기 수신하는 동작은 상기 공개키에 대한 적어도 하나 이상의 스칼라 곱의 연산 결과를 수신하고,
    상기 점 연산하는 동작은 상기 산출된 계수에 따라 점 연산 결과 또는, 상기 점 연산을 구성하는 하위 연산 중 적어도 일부를 미리 저장한 연산 테이블 내 값을 참조하여 연산을 수행하는 것을 특징으로 하는 컴퓨팅 장치.
  12. 제 9 항에 있어서,
    상기 연산 테이블은 제1 좌표계로 수신된 상기 공개키의 스칼라 곱의 연산 결과를 제2 좌표계로 변환하여 상기 연산 결과 리스트를 생성하고, 상기 연산 결과 리스트를 제1 좌표계로 변환하여 저장한 것을 특징으로 하는 컴퓨팅 장치.
  13. 제 12 항에 있어서,
    상기 서명은 임의의 난수에 따라 상기 제1 좌표계 상의 임의의 기준점을 스칼라 곱함으로써 생성되고,
    상기 점 연산하는 동작은 상기 기준점과 상기 공개키를 상기 산출된 계수에 따라 점 연산하는 것을 특징으로 하는 컴퓨팅 장치.
  14. 제 8 항에 있어서,
    상기 기준점에 대한 스칼라 곱 결과 리스트는 미리 생성된 것을 특징으로 하는 컴퓨팅 장치.
  15. 제 1 항 내지 제 7 항 중 어느 한 항에 따른 서명 검증 방법을 컴퓨팅 장치에서 수행하는 컴퓨터 판독 가능한 기록 매체에 저장된 프로그램.
PCT/KR2022/018928 2022-11-09 2022-11-28 V2x 통신 환경에서 메시지의 서명 검증 방법 및 이를 수행하는 컴퓨팅 장치 Ceased WO2024101511A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0149004 2022-11-09
KR20220149004 2022-11-09

Publications (1)

Publication Number Publication Date
WO2024101511A1 true WO2024101511A1 (ko) 2024-05-16

Family

ID=91033025

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/018928 Ceased WO2024101511A1 (ko) 2022-11-09 2022-11-28 V2x 통신 환경에서 메시지의 서명 검증 방법 및 이를 수행하는 컴퓨팅 장치

Country Status (1)

Country Link
WO (1) WO2024101511A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090005041A (ko) * 2006-04-24 2009-01-12 모토로라 인코포레이티드 타원 곡선 공개키 암호화 검증을 위한 방법
KR20100062565A (ko) * 2008-12-02 2010-06-10 삼성전자주식회사 모듈러스의 음의 역원을 구하는 방법
KR20170061411A (ko) * 2015-11-26 2017-06-05 한밭대학교 산학협력단 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법
KR20220143557A (ko) * 2021-04-16 2022-10-25 삼성전자주식회사 암호화 장치, 암호화 장치를 포함하는 시스템의 인증 방법 및 서명을 생성하는 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090005041A (ko) * 2006-04-24 2009-01-12 모토로라 인코포레이티드 타원 곡선 공개키 암호화 검증을 위한 방법
KR20100062565A (ko) * 2008-12-02 2010-06-10 삼성전자주식회사 모듈러스의 음의 역원을 구하는 방법
KR20170061411A (ko) * 2015-11-26 2017-06-05 한밭대학교 산학협력단 룩업 테이블을 이용한 타원 곡선의 스칼라 곱셈 연산 장치 및 방법
KR20220143557A (ko) * 2021-04-16 2022-10-25 삼성전자주식회사 암호화 장치, 암호화 장치를 포함하는 시스템의 인증 방법 및 서명을 생성하는 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YANG, HYEON-JUN: "A High-Performance ECC Processor Supporting NIST P-521 Elliptic Curve. Journal of the Korea Institute of Information and Communication Engineering", JOURNAL OF THE KOREA INSTITUTE OF INFORMATION AND COMMUNICATION ENGINEERING, KOREA INSTITUTE OF INFORMATION AND COMMUNICATION ENGINEERING, vol. 26, no. 4, 1 April 2022 (2022-04-01), pages 548 - 555, XP093169354, ISSN: 2234-4772, DOI: 10.6109/jkiice.2022.26.4.548 *

Similar Documents

Publication Publication Date Title
Wang et al. SEMA: Secure and efficient message authentication protocol for VANETs
Horng et al. b-SPECS+: Batch verification for secure pseudonymous authentication in VANET
CN112753203B (zh) 一种安全通信方法及装置
JP7105308B2 (ja) デジタル署名方法、装置及びシステム
CN110896390B (zh) 一种发送消息的方法、验证消息的方法、装置及通信系统
CN102761415A (zh) p元域SM2椭圆曲线的数字签名生成、验证及混合系统
CN112689260B (zh) 车载终端的消息验证方法和终端
CN119652525B (zh) 一种IPSec混合抗量子计算安全方法及电子设备
Wang et al. A secure and efficient pairing-free certificateless aggregate signcryption scheme for V2G networks
CN116599772A (zh) 一种数据处理方法及相关设备
Ali et al. Secure message broadcasting in VANET over Wormhole attack by using cryptographic technique
Mamun et al. Enhancing transportation cyber-physical systems security: A shift to post-quantum cryptography
CN117858086B (zh) 基于零信任网关的v2x安全认证方法、系统及装置
US10135621B2 (en) Method to reduce the latency of ECDSA signature generation using precomputation
Sikarwar et al. LABVS: Lightweight authentication and batch verification scheme for universal internet of vehicles (UIoV)
Bianchi et al. DynamiQS: Quantum Secure Authentication for dynamic charging of electric vehicles
Fazzat et al. A comparative performance study of cryptographic algorithms for connected vehicles
Lin et al. A fast fault-tolerant routing with ecdsa signature protocol for internet of vehicles
WO2024090659A1 (ko) 컴퓨팅 장치에서 수행되는 서명 검증 방법 및 이를 수행하는 컴퓨팅 장치
CN119834977A (zh) 基于量子密钥的通信方法、装置、设备、介质及程序产品
CN116566606B (zh) 一种基于aes-128动态随机加密的车载通信优化方法及系统
CN117528506A (zh) 数据转发方法、接入控制器、无线接入点、设备及介质
CN117998354A (zh) 基于量子会话密钥的数据交互方法、电子设备及介质
CN115567916A (zh) 一种车载自组织网络的无证书签密方法
Rabadi Implicit certificates support in IEEE 1609 security services for wireless access in vehicular environment (WAVE)

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22965283

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22965283

Country of ref document: EP

Kind code of ref document: A1