KR102084552B1 - Apparatus, method and system for verifying integrity of vechicle data based on code - Google Patents

Apparatus, method and system for verifying integrity of vechicle data based on code Download PDF

Info

Publication number
KR102084552B1
KR102084552B1 KR1020180019404A KR20180019404A KR102084552B1 KR 102084552 B1 KR102084552 B1 KR 102084552B1 KR 1020180019404 A KR1020180019404 A KR 1020180019404A KR 20180019404 A KR20180019404 A KR 20180019404A KR 102084552 B1 KR102084552 B1 KR 102084552B1
Authority
KR
South Korea
Prior art keywords
electronic control
secret
polynomial
identification information
code
Prior art date
Application number
KR1020180019404A
Other languages
Korean (ko)
Other versions
KR20190088367A (en
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 숭실대학교산학협력단
Publication of KR20190088367A publication Critical patent/KR20190088367A/en
Application granted granted Critical
Publication of KR102084552B1 publication Critical patent/KR102084552B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)

Abstract

본 발명은 코드 기반 차량 데이터 검증 장치, 방법 및 시스템에 관한 것으로, 본 발명의 코드 기반 차량 데이터 검증 장치는 복수의 전자제어장치(ECU: Electronic Control Unit)와 통신하는 통신부, 상기 복수의 전자제어장치의 식별정보와 자동차 시스템의 부팅 코드 중 핵심 코드를 시크릿 마스터(secret master)로 하는 이변수 대칭 다항식(Bivariate Symmetric Polynomial)를 저장하는 메모리, 및 상기 메모리에 저장된 상기 이변수 대칭 다항식에 상기 복수의 전자제어장치의 식별정보를 대입하여 복수의 일변수 다항식을 생성한 후, 상기 통신부를 통해 상기 복수의 전자제어장치로 전송하고, 특정 전자제어장치로부터 자신의 식별정보가 대입된 일변수 다항식에 특정 상수를 대입한 시크릿 쉐어값과 부팅 요청 신호를 수신하는 경우, t개의 다른 전자제어장치로 각 전자제어장치의 일변수 다항식에 상기 특정 상수를 대입한 시크릿 쉐어값을 요청하고, 수신된 (t+1)개의 시크릿 쉐어값을 이용하여 상기 이변수 대칭 다항식의 시크릿 마스터를 산출하여 자동차 시스템의 부팅을 수행하는 제어부를 포함한다. The present invention relates to a code-based vehicle data verification device, method, and system. The code-based vehicle data verification device of the present invention includes a communication unit communicating with a plurality of electronic control units (ECUs), and the plurality of electronic control devices. The plurality of electrons in the memory for storing the bivariate symmetric polynomial having the identification information of and the core code among the boot codes of the vehicle system as a secret master, and the bivariate symmetric polynomial stored in the memory Substituting identification information of the control device to generate a plurality of one-variable polynomials, and then transmitting them to the plurality of electronic control devices through the communication unit, and specific constants to the one-variable polynomials to which their identification information is assigned from a specific electronic control device When receiving the secret share value and the boot request signal, substituting for each electronic device using t different electronic control devices. Request the secret share value by substituting the specific constant into the one-variable polynomial of the fishing device, and calculate the secret master of the bivariate symmetric polynomial using the received (t + 1) secret share values to boot the vehicle system. It includes a control unit to perform.

Description

코드 기반 차량 데이터 검증 장치, 방법 및 시스템{APPARATUS, METHOD AND SYSTEM FOR VERIFYING INTEGRITY OF VECHICLE DATA BASED ON CODE}Code-based vehicle data verification device, method, and system {APPARATUS, METHOD AND SYSTEM FOR VERIFYING INTEGRITY OF VECHICLE DATA BASED ON CODE}

본 발명은 자동차 시스템의 안전 부팅 및 전송 데이터의 무결성 검증에 관한 것이다.The present invention relates to the verification of the integrity of the safety boot and transmission data of an automobile system.

자동차의 전자제어장치(ECU: Electronic Control Unit)는 엔진이나 기타 전기적으로 연결된 부품들(센서들 포함)을 제어하는 메인 프로세서로 각 부품에서 수신한 신호를 바탕으로 최적값을 산출하고, 제어신호를 출력하여 자동차를 제어하는 기능을 담당한다. 이때, ECU는 차량 내에 다수개 구비될 수 있고, 다수의 ECU들 또는 센서 장치들은 비호스트 버스(Non-Host Bus) 방식의 publish-subscribe 통신 모델을 사용하여 상호 통신한다. 이 방식에서는 패킷(packet)을 모든 노드들에 브로드캐스팅하여 전달하게 되는데, 이로 인해 캔 버스(CAN Bus)를 지나는 패킷은 악성 컴포넌트에 의해 언제든 도청 및 변조가 가능하다. 따라서 이러한 취약점을 보완하고자, 각각의 ECU 혹은 센서 장치에 키를 배포하고, 자동차 내부 패킷 및 센싱 데이터의 인증, 무결성 검증을 위한 연구가 활발히 이루어지고 있다.An electronic control unit (ECU) of a vehicle is a main processor that controls engines or other electrically connected parts (including sensors), and calculates the optimum value based on the signals received from each part. It is responsible for outputting and controlling the vehicle. At this time, a plurality of ECUs may be provided in a vehicle, and a plurality of ECUs or sensor devices communicate with each other using a publish-subscribe communication model of a non-host bus method. In this method, a packet is broadcasted to all nodes and delivered. Therefore, packets passing through the CAN bus can be intercepted and tampered with by malicious components at any time. Therefore, in order to compensate for these vulnerabilities, research is being conducted to distribute keys to each ECU or sensor device, and to verify and verify the integrity and authentication of packets and sensing data inside vehicles.

특히, 빠른 속도와 높은 신뢰성에 기반한 5G 이동 통신 시스템이 가까운 미래에 도입됨에 따라 전기 자동차, 자율 주행 자동차 등 스마트 자동차가 시장에 등장하기 시작했다. 그러나, 수백개의 센서들로부터 발생하는 데이터에 기반하여 동작하는 스마트 자동차는 센싱 데이터의 도청 및 변조 등의 공격으로부터 취약하며, 이는 운전자의 생명을 직/간접적으로 위협할 수 있다. In particular, as 5G mobile communication systems based on high speed and high reliability were introduced in the near future, smart cars such as electric vehicles and autonomous vehicles began to appear on the market. However, smart cars operating based on data generated from hundreds of sensors are vulnerable to attacks such as eavesdropping and tampering of sensing data, which may directly or indirectly threaten the driver's life.

이러한, 차량용 데이터의 암호화, 무결성 검증 기술은 자동차 보안의 가장 중요한 화두로 자리잡고 있다. 데이터 인증 및 무결성 검증 기술 이외에도 소프트웨어 핵심 로직을 보호하기 위해 난독화, 패킹 등의 기술을 사용하고 있다. 그러나, 높은 컴퓨팅 파워를 갖춘 PC 환경에서 동작하는 이러한 기술들은 성능 오버헤드로 인해 제한된 컴퓨팅 성능을 가진 자동차 내부 장치에 그대로 적용하기 어렵다는 한계가 있다. 따라서, 자동차에 적합한 초고속 경량 암호화 기술을 통해 종래의 한계점을 보완하고, 보다 안전하고 신뢰할 수 있는 주행 환경을 제공할 필요가 있다.These technologies for vehicle data encryption and integrity verification have become the most important topics in automotive security. In addition to data authentication and integrity verification technologies, obfuscation, packing, and other technologies are used to protect software core logic. However, these technologies, which operate in a PC environment with high computing power, have limitations in that they cannot be applied to an in-vehicle device having limited computing power due to performance overhead. Therefore, there is a need to supplement the limitations of the related art and provide a safer and more reliable driving environment through an ultra-fast and lightweight encryption technology suitable for automobiles.

한국등록특허 제10-1072277호 (2011.10.05.), 발명의 명칭: 실시간 차량 데이터 무결성 보장 장치 및 방법과 이를 이용한 차량용 블랙박스 시스템,Korean Registered Patent No. 10-1072277 (2011.10.05.), Name of invention: Real-time vehicle data integrity guarantee device and method and vehicle black box system using the same, 일본공개특허 JP2017-017443, 2017년 1월 19일 공개, 발명의 명칭: 차량용 정보 통신 시스템 및 인증 방법,Japanese Patent Publication No. JP2017-017443, published on January 19, 2017, title of invention: vehicle information and communication system and authentication method, 미국등록특허 US9,866,570, 2018년 1월 9일 등록, 발명의 명칭: ON-VEHICLE COMMUNICATION SYSTEM.US registered patent US9,866,570, registered on January 9, 2018, title of invention: ON-VEHICLE COMMUNICATION SYSTEM.

본 발명은 자동차 시스템의 부팅 코드 중 일부를 시크릿 마스터로 사용하여 이변수 대칭 다항식에 상대방 식별정보를 대입하여 운전자 단말기를 포함하는 복수의 전자제어장치로 배포하고, (t+1)개의 시크릿 쉐어값을 이용하여 시크릿 마스터를 복원하여 자동차 시스템을 부팅하는 코드 기반 차량 데이터 검증 장치, 방법 및 시스템을 제공하는데 그 목적이 있다.The present invention uses a part of the boot code of the vehicle system as a secret master, substitutes counterpart identification information into a bivariate symmetric polynomial, distributes it to a plurality of electronic control devices including a driver terminal, and (t + 1) secret share values An object of the present invention is to provide a code-based vehicle data verification device, method, and system for booting a vehicle system by restoring an incognito master using.

또한, 본 발명은 각 전자제어장치에 분배된 일변수 다항식을 이용하여 비밀키를 생성하여 데이터의 무결성을 검증할 수 있는 코드 기반 차량 데이터 검증 장치, 방법 및 시스템을 제공하는데 그 목적이 있다. In addition, an object of the present invention is to provide a code-based vehicle data verification apparatus, method, and system capable of verifying the integrity of data by generating a secret key using a single variable polynomial distributed to each electronic control device.

상기의 목적을 달성하기 위해 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 장치는 복수의 전자제어장치(ECU: Electronic Control Unit)와 통신하는 통신부, 상기 복수의 전자제어장치의 식별정보와 자동차 시스템의 부팅 코드 중 핵심 코드를 시크릿 마스터(secret master)로 하는 이변수 대칭 다항식(Bivariate Symmetric Polynomial)를 저장하는 메모리, 및 상기 메모리에 저장된 상기 이변수 대칭 다항식에 상기 복수의 전자제어장치의 식별정보를 대입하여 복수의 일변수 다항식을 생성한 후, 상기 통신부를 통해 상기 복수의 전자제어장치로 전송하고, 특정 전자제어장치로부터 자신의 식별정보가 대입된 일변수 다항식에 특정 상수를 대입한 시크릿 쉐어값과 부팅 요청 신호를 수신하는 경우, t개의 다른 전자제어장치로 각 전자제어장치의 일변수 다항식에 상기 특정 상수를 대입한 시크릿 쉐어값을 요청하고, 수신된 (t+1)개의 시크릿 쉐어값을 이용하여 상기 이변수 대칭 다항식의 시크릿 마스터를 산출하여 자동차 시스템의 부팅을 수행하는 제어부를 포함한다.In order to achieve the above object, a code-based vehicle data verification device according to an embodiment of the present invention includes a communication unit communicating with a plurality of electronic control units (ECUs), identification information of the plurality of electronic control devices, and a vehicle. Memory for storing a bivariate symmetric polynomial whose core code is a secret master among the boot codes of the system, and identification information of the plurality of electronic controllers in the bivariate symmetric polynomial stored in the memory After creating a plurality of one-variable polynomials by substituting, and transmitting to the plurality of electronic control devices through the communication unit, a secret share in which a specific constant is substituted into a one-variable polynomial in which identification information is substituted from a specific electronic control device When receiving a value and a boot request signal, t different electronic control devices are used to calculate a single variable polynomial of each electronic control device. Group by requesting a secret share values by substituting a specific constant, and calculating the secret master of the number of the mutant using the received (t + 1) of secret share values symmetrical polynomial and a control unit for performing a boot of the vehicle system.

이변수 대칭 다항식(f(x,y))은, 아래 수학식으로 표시되고, 상기 시크릿 마스터는 f(0, 0)=a00이고,

Figure 112018017172236-pat00001
aij 이변수 대칭 다항식의 계수이고, y는 다른 전자제어장치의 식별정보이고, aij=aji이고, 상기 복수의 일변수 다항식(Sk(x))은, 아래 수학식으로 표시될 수 있다.The bivariate symmetric polynomial (f (x, y)) is expressed by the following equation, and the secret master is f (0, 0) = a 00 ,
Figure 112018017172236-pat00001
a ij The coefficient of the bivariate symmetric polynomial, y is identification information of another electronic control device, a ij = a ji , and the plurality of monovariate polynomials (S k (x)) may be expressed by the following equation.

Figure 112018017172236-pat00002
Figure 112018017172236-pat00002

제어부는 상기 특정 전자제어장치로부터 수신한 일변수 다항식 S0(x)에 x=0을 대입한 S0(0)과, 상기 수신된 t개의 일변수 다항식 S1(x), ..., St(x)에 x=0을 대입한, 시크릿 쉐어값 S1(0), ..., St(0)을 이용하여 아래 수학식에 의해 유효성 검사를 수행한 후, 상기 시크릿 마스터를 산출할 수 있다. A control unit a variable polynomial S 0 (x) S 0 ( 0) , and the received t of a variable polynomial S 1 (x) by substituting x = 0 to the reception from the particular electronic control unit, ..., After performing validation by the following equation using the secret share values S 1 (0), ..., S t (0), where x = 0 is substituted for S t (x), and then the secret master is Can be calculated.

Figure 112018017172236-pat00003
Figure 112018017172236-pat00003

여기서,

Figure 112018017172236-pat00004
이고, g는 Z* p에 속하는 생성기를 나타낸다.here,
Figure 112018017172236-pat00004
And g represents a generator belonging to Z * p .

시크릿 마스터는 아래 수학식에 의해 산출될 수 있다.The secret master can be calculated by the following equation.

Figure 112018017172236-pat00005
,
Figure 112018017172236-pat00005
,

Figure 112018017172236-pat00006
Figure 112018017172236-pat00006

본 발명의 다른 실시예에 따른 코드 기반 차량 데이터 검증 시스템은 자동차의 제어와 관련된 복수의 전자제어장치(ECU: Electronic Control Unit), 및 상기 자동차 시스템의 부팅 코드 중 핵심 코드를 시크릿 마스터(secret master)로 하는 이변수 대칭 다항식(Bivariate Symmetric Polynomial)에 상기 복수의 전자제어장치의 식별정보를 대입하여 복수의 일변수 다항식을 생성한 후, 상기 복수의 전자제어장치로 전송하고, 특정 전자제어장치로부터 자신의 식별정보가 대입된 일변수 다항식에 특정 상수가 대입된 시크릿 쉐어값과 부팅 요청 신호를 수신하는 경우, t개의 다른 전자제어장치로 상기 전자제어장치의 식별정보가 대입된 일변수 다항식에 상기 특정 상수를 대입한 시크릿 쉐어값을 요청하고, 수신된 (t+1)개의 시크릿 쉐어값을 이용하여 상기 이변수 대칭 다항식의 시크릿 마스터를 산출하여 자동차 시스템의 부팅을 수행하는 중앙 제어 장치를 포함할 수 있다. The code-based vehicle data verification system according to another embodiment of the present invention includes a plurality of electronic control units (ECUs) related to the control of a vehicle, and a secret master of core codes among boot codes of the vehicle systems. After substituting the identification information of the plurality of electronic controllers into a bivariate symmetric polynomial, a plurality of one-variable polynomials are generated, transmitted to the plurality of electronic controllers, and transferred from a specific electronic controller. When receiving a secret share value and a boot request signal in which a specific constant is assigned to the one-variable polynomial to which identification information of is assigned, the identification is specified in the one-variable polynomial to which the identification information of the electronic control device is assigned to t different electronic control devices. Request the secret share value with the constant assigned, and use the received (t + 1) secret share value to calculate the bivariate symmetric polynomial. It may include a central control unit for calculating the secret master to boot the vehicle system.

또한, 코드 기반 차량 데이터 검증 시스템은 상기 자동차 시스템의 부팅 코드 중 핵심 코드를 분리하고, 상기 분리된 핵심 코드를 시크릿 마스터로 하는 이변수 대칭 다항식을 생성하여 상기 중앙 제어 장치로 전송하는 외부의 프로세서를 더 포함하여 구성될 수 있다. In addition, the code-based vehicle data verification system separates the core code among the boot codes of the vehicle system, and generates an external variable processor that generates a bivariate symmetric polynomial using the separated core code as an secret master and transmits it to the central control device. It may be configured to include more.

복수의 전자제어장치 중 제1 전자제어장치는 자신의 식별정보를 대입한 제1 일변수 다항식에 상대방인 제2 전자제어장치의 식별정보를 대입한 값을 제1 비밀키(kij)로 생성하고, 상기 제1 비밀키와 메시지를 결합하여 MAC(message authentication code)를 생성하여 전송하고, 상기 제2 전자제어장치는, 자신의 식별정보를 대입한 제2 일변수 다항식에 상대방인 상기 제1 전자제어장치의 식별정보를 대입한 값을 제2 비밀키(kji)로 생성하고, 상기 제2 비밀키를 이용하여 상기 MAC을 검증하여 상기 메시지를 검증할 수 있다.Among the plurality of electronic control devices, the first electronic control device generates a value obtained by substituting identification information of the second electronic control device as the first secret key (k ij ) into the first one variable polynomial in which the identification information is substituted. Then, the first secret key is combined with the message to generate and transmit a message authentication code (MAC), and the second electronic control device is the first counterpart to the second one-variable polynomial by substituting its own identification information. A value obtained by substituting identification information of the electronic control device is generated as a second secret key (k ji ), and the MAC is verified using the second secret key to verify the message.

본 발명의 또 다른 실시예에 따른 코드 기반 차량 데이터 검증 방법은 중앙 제어 장치에서, 자동차 시스템의 부팅 코드 중 핵심 코드를 시크릿 마스터(secret master)로 하는 이변수 대칭 다항식(Bivariate Symmetric Polynomial)에 복수의 전자제어장치(ECU: Electronic Control Unit)의 식별정보를 대입하여 복수의 일변수 다항식을 생성한 후, 상기 복수의 전자제어장치로 전송하는 단계, 상기 중앙 제어 장치에서, 특정 전자제어장치로부터 자신의 식별정보가 대입된 일변수 다항식에 특정 상수를 대입한 시크릿 쉐어값과 부팅 요청 신호를 수신하는 경우, t개의 다른 전자제어장치로 상기 전자제어장치의 식별정보가 대입된 일변수 다항식에 상기 특정 상수를 대입한 시크릿 쉐어값을 요청하는 단계, 및 상기 중앙 제어 장치에서, 수신된 (t+1)개의 시크릿 쉐어값을 이용하여 상기 이변수 대칭 다항식의 시크릿 마스터를 산출하여 자동차 시스템의 부팅을 수행하는 단계를 포함한다.Code-based vehicle data verification method according to another embodiment of the present invention, in the central control device, a plurality of bivariate symmetric polynomial (Bivariate Symmetric Polynomial) in the core code of the secret code (secret master) of the boot code of the vehicle system After generating a plurality of one-variable polynomials by substituting identification information of an electronic control unit (ECU), transmitting the data to the plurality of electronic control units, in the central control unit, from the specific electronic control unit When receiving a secret share value and a boot request signal in which a specific constant is assigned to the one-variable polynomial to which identification information is assigned, the specific constant to the one-variable polynomial to which identification information of the electronic control device is assigned to t different electronic control devices. Requesting the secret share value substituted with, and in the central control device, using the received (t + 1) secret share values Calculates the master secret of the mutant group can symmetric polynomial comprises the step of performing the boot of the vehicle system.

또한, 코드 기반 차량 데이터 검증 방법은 상기 복수의 일변수 다항식을 생성한 후, 상기 복수의 전자제어장치로 전송하는 단계 이전에, 상기 중앙 제어 장치 또는 외부의 프로세서에서, 상기 자동차 시스템의 부팅 코드 중 핵심 코드를 분리하고, 상기 분리된 핵심 코드를 시크릿 마스터로 하는 이변수 대칭 다항식을 생성하는 단계를 더 포함할 수 있다.In addition, the code-based vehicle data verification method, after generating the plurality of one-variable polynomials, and before transmitting to the plurality of electronic control devices, in the central control device or an external processor, among the boot codes of the vehicle system The method may further include separating the core code and generating a bivariate symmetric polynomial using the separated core code as an secret master.

또한, 코드 기반 차량 데이터 검증 방법은 상기 자동차 시스템의 부팅을 수행하는 단계 이후에, 상기 복수의 전자제어장치 중 제1 전자제어장치에서, 제1 전자제어장치의 식별정보를 대입한 제1 일변수 다항식에 상대방인 제2 전자제어장치의 식별정보를 대입한 값을 제1 비밀키(kij)로 생성하는 단계, 상기 제1 전자제어장치에서, 상기 제1 비밀키와 메시지를 결합하여 MAC(message authentication code)를 생성하여 상기 제2 전자제어장치로 전송하는 단계, 상기 제2 전자제어장치에서, 상기 제2 전자제어장치의 식별정보를 대입한 제2 일변수 다항식에 상대방인 상기 제1 전자제어장치의 식별정보를 대입한 값을 제2 비밀키(kji)로 생성하는 단계, 및 상기 제2 전자제어장치에서, 상기 제2 비밀키를 이용하여 상기 MAC을 검증하는 단계를 포함할 수 있다.In addition, the code-based vehicle data verification method is a first one variable in which the identification information of the first electronic control device is substituted in the first electronic control device among the plurality of electronic control devices after the step of booting the vehicle system. Generating a value obtained by substituting identification information of the second electronic control device as a counterpart to the polynomial as a first secret key (k ij ), and in the first electronic control device, combining the first secret key and the message to perform MAC ( generating a message authentication code) and transmitting it to the second electronic control device, and in the second electronic control device, the first electronic that is a counterpart to a second one-variable polynomial in which identification information of the second electronic control device is substituted. And generating a value obtained by substituting identification information of the control device as a second secret key (k ji ), and verifying the MAC using the second secret key in the second electronic control device. have.

본 발명에 의하면, 상대방 장치의 식별정보와 이변수 대칭 다항식을 이용하여 자동차 시스템의 부팅 정보를 검증하고, 상호 통신 데이터를 검증할 수 있으므로, 암화화 및 무결성 검증을 경량화할 수 있고 빠른 연산 속도를 제공할 수 있는 효과가 있다.According to the present invention, the boot information of the vehicle system can be verified by using the identification information of the counterpart device and the bivariate symmetric polynomial, and the mutual communication data can be verified. Therefore, encryption and integrity verification can be reduced in weight and speed of computation is high. There is an effect that can be provided.

도 1 내지 도 2는 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 시스템 및 장치의 개략적인 구성도이다.
도 3은 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 시스템의 송신 장치와 수신 장치의 데이터 검증을 설명하기 위한 도면이다.
도 4 내지 도 6은 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 방법을 설명하기 위한 흐름도이다.
1 to 2 are schematic configuration diagrams of a code-based vehicle data verification system and apparatus according to an embodiment of the present invention.
3 is a diagram for explaining data verification of a transmitting device and a receiving device of a code-based vehicle data verification system according to an embodiment of the present invention.
4 to 6 are flowcharts for explaining a code-based vehicle data verification method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면을 참조하여 상세하게 설명하도록 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.The present invention can be applied to various changes and can have various embodiments, and specific embodiments will be described in detail with reference to the drawings. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals are used for similar components.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재 항목들의 조합 또는 복수의 관련된 기재 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related description items or any one of a plurality of related description items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급될 때에는 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is said to be "connected" to or "connected" to another component, it should be understood that other components may be directly connected to or connected to the other component, but may exist in the middle. something to do. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "include" or "have" are intended to indicate the presence of features, numbers, steps, actions, components, parts or combinations thereof described herein, one or more other features. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the present invention pertains. Terms such as those defined in a commonly used dictionary should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined in the present application. Does not.

명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다. Throughout the specification and claims, when a part includes a certain component, this means that other components may be further included rather than excluding other components unless specifically stated to the contrary.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1 내지 도 2는 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 시스템 및 장치의 개략적인 구성도이다.1 to 2 are schematic configuration diagrams of a code-based vehicle data verification system and apparatus according to an embodiment of the present invention.

도 1 내지 도 2를 참조하면, 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 시스템은 복수의 전자제어장치(ECU: Electronic Control Unit)(20a 내지 20e), 및 중앙 제어 장치(10)를 포함하여 구성될 수 있다.1 to 2, a code-based vehicle data verification system according to an embodiment of the present invention includes a plurality of electronic control units (ECUs) 20a to 20e and a central control unit 10. It can be configured to include.

복수의 전자제어장치(20a 내지 20e)는 스마트 폰, 스마트 키 등과 같은 사용자 단말기(20a)가 포함될 수 있고, 센서, 엔진, 전장 부품 등을 제어하는 장치를 포함하며, 기능에 따라 하나의 전자제어장치가 다수의 센서, 다수의 전장 부품을 제어할 수 있다. The plurality of electronic control devices 20a to 20e may include a user terminal 20a such as a smart phone or a smart key, and includes a device for controlling sensors, engines, and electronic components, and one electronic control according to functions The device can control multiple sensors, multiple electronic components.

중앙 제어 장치(10)는 통신부(11), 메모리(12), 및 제어부(13)를 포함하여 구성될 수 있다. The central control device 10 may include a communication unit 11, a memory 12, and a control unit 13.

통신부(11)는 복수의 전자제어장치(20a 내지 20e)와 데이터 통신할 수 있고, 바람직하게는 저전력 블루투스, 블루투스 또는 근거리 무선통신을 수행할 수 있다. The communication unit 11 can perform data communication with a plurality of electronic control devices 20a to 20e, and preferably performs low-power Bluetooth, Bluetooth, or short-range wireless communication.

메모리(12)는 복수의 전자제어장치(20a 내지 20e)의 식별정보와 자동차 시스템의 부팅 코드 중 핵심 코드를 시크릿 마스터(secret master)로 하는 이변수 대칭 다항식(Bivariate Symmetric Polynomial)을 저장할 수 있다. 이때, 복수의 전자제어장치(20a 내지 20e)의 식별정보는 장치의 명칭, IP주소, 폰번호 등이 될 수 있고, 대표 식별정보가 이진수로 저장될 수 있다. The memory 12 may store a bivariate symmetric polynomial that uses identification information of a plurality of electronic control devices 20a to 20e and a core code as a secret master among boot codes of a vehicle system. At this time, the identification information of the plurality of electronic control devices 20a to 20e may be a device name, an IP address, a phone number, etc., and representative identification information may be stored in binary.

제어부(13)는 메모리(12)에 저장된 이변수 대칭 다항식에 복수의 전자제어장치(20a 내지 20e)의 식별정보를 대입하여 복수의 일변수 다항식을 생성할 수 있다. 이때, 이변수 대칭 다항식은 중앙 제어 장치(10)에서 직접 생성하거나 또는 외부 프로세서로부터 수신하여 중앙 제어 장치(10)에 저장될 수 있다. 또한, 제어부(13)는 복수의 일변수 다항식 각각을 복수의 전자제어장치(20a 내지 20e)로 전송할 수 있다. 제어부(13)는 특정 전자제어장치(20a)로부터 자신의 식별정보가 대입된 일변수 다항식에 특정 상수(x=0)를 대입한 시크릿 쉐어값(Sk(0))과 부팅 요청 신호를 수신하는 경우, t개의 다른 전자제어장치(20b 내지 20e)로 각 전자제어장치의 식별정보가 대입된 일변수 다항식에 특정 상수(x=0)를 대입한 시크릿 쉐어값(Sk(0))을 요청할 수 있다. 제어부(13)는 수신된 (t+1)개의 시크릿 쉐어값(Sk(0), k=0, 1, ..., t)을 이용하여 이변수 대칭 다항식의 시크릿 마스터를 산출하여 자동차 시스템의 부팅을 수행할 수 있다. The controller 13 may generate a plurality of one-variable polynomials by substituting identification information of the plurality of electronic control devices 20a to 20e into the bivariate symmetric polynomial stored in the memory 12. At this time, the bivariate symmetric polynomial can be generated directly from the central control device 10 or received from an external processor and stored in the central control device 10. In addition, the controller 13 may transmit each of the plurality of one-variable polynomials to the plurality of electronic control devices 20a to 20e. The control unit 13 receives the secret share value (S k (0)) and a boot request signal by substituting a specific constant (x = 0) into the one-variable polynomial to which identification information is assigned from the specific electronic control device 20a. In the case of, the secret share value (S k (0)) in which a specific constant (x = 0) is assigned to a one-variable polynomial in which identification information of each electronic control device is assigned to t different electronic control devices 20b to 20e. You can ask. The controller 13 calculates the secret master of a binomial symmetric polynomial by using the received (t + 1) secret share values (S k (0), k = 0, 1, ..., t) Booting can be performed.

구체적으로, 이변수 대칭 다항식 f(x, y)는 [수학식 1]로 나타내고, 시크릿 마스터 a00는 x=0, y=0을 대입하여, f(0, 0)으로 계산할 수 있다. 여기서, aij 이변수 대칭 다항식의 계수이고, y는 다른 전자제어장치의 식별정보이고, aij=aji인 관계를 만족한다.Specifically, the bivariate symmetric polynomial f (x, y) is represented by [Equation 1], and the secret master a 00 can be calculated by f (0, 0) by substituting x = 0, y = 0. Where a ij is It is a coefficient of a bivariate symmetric polynomial, y is identification information of another electronic control device, and satisfies the relationship of a ij = a ji .

Figure 112018017172236-pat00007
Figure 112018017172236-pat00007

이변수 대칭 다항식 f(x, y)는 [수학식 1]과 같이, t차수의 다항식으로 구성될 수 있고, 다항식의 계수가 대칭형으로 형성되고, 이변수 중 하나는 자신의 식별정보이고 다른 하나는 통신 상대방의 식별정보가 대입될 수 있다. 이러한, 복수의 전자제어장치 각각의 식별정보가 대입된 일변수 다항식 Sk(x)은 [수학식 2]와 같이 나타낼 수 있다.The bivariate symmetric polynomial f (x, y) can be composed of a polynomial of order t, as in [Equation 1], the coefficients of the polynomial are formed symmetrically, and one of these variables is its identification information and the other The identification information of the communication counterpart may be substituted. One variable polynomial S k (x) to which identification information of each of the plurality of electronic control devices is substituted can be expressed as [Equation 2].

Figure 112018017172236-pat00008
Figure 112018017172236-pat00008

제어부(13)는 특정 전자제어장치(20a)로부터 수신한 일변수 다항식 S0(x)에 x=0을 대입한 S0(0)과, 수신된 t개의 일변수 다항식 S1(x), ..., St(x)에 x=0을 대입한, 시크릿 쉐어값 S1(0), ..., St(0)을 이용하여 [수학식 3]에 의해 유효성 검사를 수행한 후, 시크릿 마스터 a00를 산출할 수 있다.The control unit 13 is S 0 (0) by substituting x = 0 into the one-variable polynomial S 0 (x) received from the specific electronic control device 20a, and the received t one-variable polynomial S 1 (x), ..., S t (x) is substituted with x = 0, and the validation is performed by [Equation 3] using the secret share values S 1 (0), ..., S t (0). Then, the secret master a 00 can be calculated.

Figure 112018017172236-pat00009
Figure 112018017172236-pat00009

여기서, Sk(0) 은 [수학식 4]로 계산할 수 있고, g는 Z* p에 속하는 생성기(generator)를 나타낸다.Here, S k (0) can be calculated by [Equation 4], g represents a generator belonging to Z * p .

Figure 112018017172236-pat00010
Figure 112018017172236-pat00010

상기와 과정을 거쳐, 시크릿 마스터 a00는 [수학식 5] 및 [수학식 6]에 의해 산출될 수 있다.Through the above process, the secret master a 00 may be calculated by [Equation 5] and [Equation 6].

Figure 112018017172236-pat00011
Figure 112018017172236-pat00011

Figure 112018017172236-pat00012
Figure 112018017172236-pat00012

따라서, 이변수 대칭 다항식은 상기와 같이 t차수이므로, (t+1)개의 일변수 다항식을 이용하여 역행렬을 이용하여 계산될 수 있다. Therefore, since the bivariate symmetric polynomial is the t-order as described above, it can be calculated using an inverse matrix using (t + 1) one-variable polynomials.

도 2를 참조하면, 자동차 시스템의 부팅 코드 중 핵심 코드(Secret Master Code)를 분리하고, 분리된 핵심 코드를 시크릿 마스터로 하는 이변수 대칭 다항식을 생성하는 과정은 중앙 제어 장치(ROS Master)(10)에서 수행되지 않고, 외부의 프로세서(30)에서 수행될 수 있다. Referring to FIG. 2, the process of separating the secret master code among the boot codes of the vehicle system and generating a bivariate symmetric polynomial using the separated core code as the secret master is a central control unit (ROS Master) 10 ), But may be performed by an external processor 30.

마찬가지로, (t+1)개의 시크릿 쉐어값을 이용하여 시크릿 마스터를 산출하여 핵심 코드를 생성하여 자동차 시스템의 부팅 코드를 생성하는 과정은 중앙 제어 장치(10) 또는 외부의 프로세서(30)에서 수행될 수 있다.Similarly, the process of generating the boot code of the vehicle system by generating the core code by calculating the secret master using (t + 1) secret share values may be performed by the central control device 10 or the external processor 30 You can.

도 3은 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 시스템의 송신 장치와 수신 장치의 데이터 검증을 설명하기 위한 도면이다.3 is a diagram for explaining data verification of a transmitting device and a receiving device of a code-based vehicle data verification system according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 시스템의 송신 장치(20b)는 제1 비밀키(kij)를 생성하여 메시지(데이터)를 전송하고, 수신 장치(20c)는 제2 비밀키(kji)를 이용하여 전송된 메시지(데이터)를 검증할 수 있다. Referring to FIG. 3, the transmitting device 20b of the code-based vehicle data verification system according to an embodiment of the present invention generates a first secret key k ij to transmit a message (data), and receives the device 20c ) Can verify the transmitted message (data) using the second secret key (k ji ).

구체적으로, 송신 장치(20b)의 식별정보를 대입한 제1 일변수 다항식에 상대방인 수신 장치(20c)의 식별정보를 대입한 값을 제1 비밀키(kij)으로 생성하고, 제1 비밀키(kij)와 메시지를 결합하여 MAC(message authentication code)를 생성하여(M+MAC) 수신 장치(20c)로 전송할 수 있다. Specifically, a value obtained by substituting identification information of the receiving device 20c as a counterpart to the first one-variable polynomial in which the identification information of the transmitting device 20b is substituted is generated as the first secret key k ij , and the first secret By combining the key (k ij ) and the message, a message authentication code (MAC) can be generated (M + MAC) and transmitted to the receiving device 20c.

수신 장치(20c)는 수신 장치(20c)의 식별정보를 대입한 제2 일변수 다항식에 통신 상대방인 송신 장치(20b)의 식별정보를 대입한 값을 제2 비밀키(kji)로 생성하여, 전송된 메시지의 MAC를 검증할 수 있다. 수신 장치(20c)에서 검증이 성공하면 메시지의 무결성이 인증되는 것으로 판단하고, 검증이 실패하면 메시지의 무결성이 인정되지 않아 검증 실패로 판단할 수 있다. The receiving device 20c generates a value obtained by substituting identification information of the transmitting device 20b as a communication counterpart into the second one-variable polynomial in which the identification information of the receiving device 20c is substituted, using the second secret key k ji , MAC of the transmitted message can be verified. If the verification succeeds in the receiving device 20c, it is determined that the integrity of the message is authenticated. If the verification fails, the integrity of the message is not recognized, and thus it can be determined as verification failure.

예를 들어, 제1 일변수 다항식이 "5x+3"이고, 제2 일변수 다항식이 "8x+5"이고, 수신 장치의 식별정보가 '2'이고, 송신 장ㅊ의 식별 정보가 '1'인 경우, 제1 비밀키(kij)와 제2 비밀키(kji)는 '13'으로 일치하는 것을 확인할 수 있다. For example, the first one-variable polynomial is "5x + 3", the second one-variable polynomial is "8x + 5", the identification information of the receiving device is' 2 ', and the identification information of the transmission device is' 1. In case of ', it can be seen that the first secret key (k ij ) and the second secret key (k ji ) match' 13 '.

이러한 방법을 이용하여 자동차 시스템에 포함된 복수의 전자제어장치들로 일변수 다항식이 전송된 이후 이루어진 상호간의 데이터 통신의 무결성을 검증할 수 있다. Using this method, it is possible to verify the integrity of data communication between the plurality of electronic control devices included in the automobile system after one-variable polynomial is transmitted.

도 4 내지 도 6은 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 방법을 설명하기 위한 흐름도이다.4 to 6 are flowcharts for explaining a code-based vehicle data verification method according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 방법은 이변수 대칭 다항식을 생성하고(S410), ECU ID를 이용하여 일변수 다항식을 생성하고(S420), 일변수 다항식을 ECU로 전송할 수 있다(S430). 4, the code-based vehicle data verification method according to an embodiment of the present invention generates a bivariate symmetric polynomial (S410), generates a monovariate polynomial using an ECU ID (S420), and a single variable polynomial Can be transmitted to the ECU (S430).

다음으로, 특정 전자제어장치로부터 일변수 다항식에 특정 상수를 대입한 시크릿 쉐어값을 수신하면(S440), 다른 전자제어장치로 일변수 다항식에 특정 상수를 대입한 시크릿 쉐어값을 요청하고(S450), 수신된 시크릿 쉐어값의 개수가 (t+1)개를 만족하는지 판단하여(S460), 만족하는 경우(예), 시크릿 마스터를 산출하고 자동차 시스템을 부팅할 수 있다(S470).Next, when a secret share value in which a specific constant is substituted for a single variable polynomial is received from a specific electronic control device (S440), a secret share value in which a specific constant is substituted for a single variable polynomial is requested from another electronic control device (S450). , It is determined whether the number of received secret share values (t + 1) satisfies (S460), and if satisfied (Yes), the secret master may be calculated and the vehicle system may be booted (S470).

또한, 수신된 시크릿 쉐어값의 개수가 (t+1)개를 만족하는지 못한 경우(아니오), (t+1)개의 시크릿 쉐어값이 수신될 때까지 다른 전자제어장치로 시크릿 쉐어값을 요청할 수 있다(S450).In addition, if the number of received secret share values does not satisfy (t + 1) (No), another electronic control device may request the secret share value until (t + 1) secret share values are received. Yes (S450).

상기의 각 단계들은 앞서 도 1 내지 도 2에서 상세히 설명하였으므로, 구체적인 설명은 생략하도록 한다.Since each of the above steps has been described in detail in FIGS. 1 to 2 above, detailed description will be omitted.

도 5를 참조하면, 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 방법은 외부의 프로세서, CPU(중앙 제어 장치), 복수의 전자제저장치(제1 ECU, 제2 ECU, .. , 제t ECU) 사이에서 처리될 수 있다.Referring to FIG. 5, a code-based vehicle data verification method according to an embodiment of the present invention includes an external processor, a CPU (central control device), and a plurality of electronic control devices (first ECU, second ECU, .. t ECU).

구체적으로, 코드 기반 차량 데이터 검증 방법은 외부의 프로세서에서 이변수 대칭 다항식을 생성하고(S510), 이를 CPU로 전송하여(S520) 차량 데이터 검증에 사용할 수 있다. Specifically, the code-based vehicle data verification method may generate a bivariate symmetric polynomial from an external processor (S510) and transmit it to the CPU (S520) to use in vehicle data verification.

다음으로, CPU는 이변수 대칭 다항식에 제1 ECU 식별정보를 입력하여 제1 일변수 다항식을 생성하여 제1 ECU로 전송하고, 제2 ECU 식별정보를 입력하여 제2 일변수 다항식을 생성하여 제2 ECU로 전송하고, 제t ECU 식별정보를 입력하여 제t 일변수 생성하여 제t ECU로 전송할 수 있다(S540).Next, the CPU generates the first one-variable polynomial by inputting the first ECU identification information to the bivariate symmetric polynomial and transmits it to the first ECU, and generates the second one-variable polynomial by inputting the second ECU identification information. 2 It can be transmitted to the ECU, and the t-th ECU identification information may be input to generate the t-th variable to transmit to the t-th ECU (S540).

CPU는 제1 ECU 내지 제t ECU 중 하나의 ECU(예를 들어, 제1 ECU)로부터 시크릿 쉐어값과 부팅 요청을 수신하는 경우(S550), 다른 ECU들로 시크릿 쉐어값 요청을 전송하여 수신할 수 있다(S560, S570). When the CPU receives the secret share value and the boot request from one of the first ECU to the t ECU (for example, the first ECU) (S550), the secret share value request is transmitted to other ECUs to be received. It can be (S560, S570).

CPU는 (t+1)개의 시크릿 쉐어값을 수신한 것으로 판단되면(S580), 시크릿 마스터를 산출하고, 산출된 시크릿 마스터를 이용하여 자동차 시스템을 부팅할 수 있다(S590). 앞서 설명한 것처럼, CPU는 t 차수의 다항식의 각 계수를 구하기 위하여 (t+1)개의 시크릿 쉐어값이 필요하고, 이를 이용하여 시크릿 마스터 a00를 역행렬을 이용하여 계산할 수 있다. If it is determined that the CPU has received (t + 1) secret share values (S580), the secret master may be calculated and the vehicle system may be booted using the calculated secret master (S590). As described above, the CPU needs (t + 1) secret share values to obtain each coefficient of the polynomial of order t, and can use this to calculate the secret master a 00 using an inverse matrix.

도 6을 참조하면, 본 발명의 일 실시예에 따른 코드 기반 차량 데이터 검증 방법은 자동차 시스템 내의 복수의 전자제어장치(ECU)로 일변수 다항식이 분배된 이후, 즉, 자동차 시스템의 부팅(S610)이 완료된 이후, 분배된 일변수 다항식을 사용하여 상호 데이터 통신의 무결성을 검증할 수 있다.6, the code-based vehicle data verification method according to an embodiment of the present invention after a single variable polynomial is distributed to a plurality of electronic control units (ECUs) in the vehicle system, that is, booting the vehicle system (S610) After this is done, the integrity of the mutual data communication can be verified using the distributed one-variable polynomial.

송신 장치인 제1 ECU는 제1 비밀키를 생성하고(S620), 메시지를 제1 비밀키를 이용하여 MAC와 결합하여 전송할 수 있다(S630). 메시지를 수신한 제2 ECU는 제2 비밀키를 생성하고(S640), 수신된 MAC와 결합된 메시지를 MAC과 메시지로 분할하여, 생성된 제2 비밀키를 이용하여 MAC를 검증하여 메시지의 무결성을 결정할 수 있다. 구체적인 실시예는 앞서 도 3에서 설명하였다.The first ECU, which is the transmitting device, may generate a first secret key (S620), and transmit the message in combination with the MAC using the first secret key (S630). Upon receiving the message, the second ECU generates a second secret key (S640), divides the message associated with the received MAC into a message with the MAC, and verifies the MAC using the generated second secret key to verify the integrity of the message. Can decide. A specific embodiment was previously described in FIG. 3.

본 발명에 따르면, 이변수 대칭 다항식에 각 장치의 식별정보를 대입하여 일변수 다항식을 생성하여 각 장치로 분배한 후, 이를 이용하여 비밀키를 생성함으로써, 연산량이 적고 빠른 암호화 및 무결성 검증을 수행할 수 있다. According to the present invention, by substituting identification information of each device into a bivariate symmetric polynomial, generating a single variable polynomial and distributing it to each device, and then generating a secret key using the same, performing a small amount of computation and fast encryption and integrity verification can do.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 사람이라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those skilled in the art to which the present invention pertains may make various modifications and variations without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. The scope of protection of the present invention should be interpreted by the claims below, and all technical spirits within the scope equivalent thereto should be interpreted as being included in the scope of the present invention.

10: 중앙 제어 장치 11: 통신부
12: 메모리 13: 제어부
20a 내지 20e: 복수의 전자제어장치
10: central control unit 11: communication unit
12: Memory 13: Control
20a to 20e: a plurality of electronic control devices

Claims (10)

복수의 전자제어장치(ECU: Electronic Control Unit)와 통신하는 통신부;
상기 복수의 전자제어장치의 식별정보와 자동차 시스템의 부팅 코드 중 핵심 코드를 시크릿 마스터(secret master)로 하는 이변수 대칭 다항식(Bivariate Symmetric Polynomial)를 저장하는 메모리; 및
상기 메모리에 저장된 상기 이변수 대칭 다항식에 상기 복수의 전자제어장치의 식별정보를 대입하여 복수의 일변수 다항식을 생성한 후, 상기 통신부를 통해 상기 복수의 전자제어장치로 전송하고, 특정 전자제어장치로부터 자신의 식별정보가 대입된 일변수 다항식에 특정 상수를 대입한 시크릿 쉐어값과 부팅 요청 신호를 수신하는 경우, t개의 다른 전자제어장치로 각 전자제어장치의 일변수 다항식에 상기 특정 상수를 대입한 시크릿 쉐어값을 요청하고, 수신된 (t+1)개의 상기 시크릿 쉐어값을 이용하여 상기 이변수 대칭 다항식의 시크릿 마스터를 산출하여 자동차 시스템의 부팅을 수행하는 제어부;를 포함하고,
상기 제어부는, 상기 특정 전자제어장치로부터 수신한 일변수 다항식 S0(x)에 x=0을 대입한 S0(0)과, 상기 수신된 t개의 일변수 다항식 S1(x), ..., St(x)에 x=0을 대입한, S1(0), ..., St(0)을 이용하여 유효성 검사를 수행한 후, 상기 시크릿 마스터를 산출하는 코드 기반 차량 데이터 검증 장치.
A communication unit communicating with a plurality of electronic control units (ECUs);
A memory for storing the bivariate symmetric polynomial, wherein the identification code of the plurality of electronic control devices and the core code among the boot codes of the vehicle system is a secret master; And
After substituting identification information of the plurality of electronic controllers into the bivariate symmetric polynomial stored in the memory, a plurality of one-variable polynomials are generated, transmitted to the plurality of electronic controllers through the communication unit, and a specific electronic controller. When receiving a secret share value and a boot request signal by substituting a specific constant into the one-variable polynomial to which one's own identification information is substituted, the specific constant is substituted into the one-variable polynomial of each electronic controller by t different electronic controllers. Includes a control unit for requesting a secret share value and calculating the secret master of the bivariate symmetric polynomial using the received (t + 1) secret share values to perform booting of a vehicle system.
Wherein, the one variable polynomial S 0 (x) S 0 ( 0) , and the received t of a variable polynomial S 1 (x) by substituting x = 0 to the reception from the particular electronic control unit, .. ., S t (x) is substituted with x = 0, S 1 (0), ..., S t (0), after performing validation, code-based vehicle data to calculate the secret master Verification device.
제1항에 있어서,
상기 이변수 대칭 다항식(f(x,y))은, 아래 수학식으로 표시되고, 상기 시크릿 마스터는 f(0, 0)=a00이고,
Figure 112018017172236-pat00013

(여기서, aij 이변수 대칭 다항식의 계수이고, y는 다른 전자제어장치의 식별정보이고, aij=aji임)
상기 복수의 일변수 다항식(Sk(x))은, 아래 수학식으로 표시되는, 코드 기반 차량 데이터 검증 장치.
Figure 112018017172236-pat00014

According to claim 1,
The bivariate symmetric polynomial (f (x, y)) is expressed by the following equation, and the secret master is f (0, 0) = a 00 ,
Figure 112018017172236-pat00013

(Where a ij is Coefficient of bivariate symmetric polynomial, y is identification information of other electronic control devices, and a ij = a ji )
The plurality of single-variable polynomials (S k (x)) is represented by the following equation, a code-based vehicle data verification device.
Figure 112018017172236-pat00014

제2항에 있어서,
상기 유효성 검사는 아래 수학식에 의해 수행되는 코드 기반 차량 데이터 검증 장치.
Figure 112019102312384-pat00015

(여기서,
Figure 112019102312384-pat00016
이고, g는 Z* p에 속하는 생성기를 나타냄)
According to claim 2,
The validity check is a code-based vehicle data verification device performed by the following equation.
Figure 112019102312384-pat00015

(here,
Figure 112019102312384-pat00016
, G represents a generator belonging to Z * p )
제3항에 있어서,
상기 시크릿 마스터는 아래 수학식에 의해 산출되는, 코드 기반 차량 데이터 검증 장치.
Figure 112018017172236-pat00017
,
Figure 112018017172236-pat00018

According to claim 3,
The secret master is calculated by the following equation, a code-based vehicle data verification device.
Figure 112018017172236-pat00017
,
Figure 112018017172236-pat00018

자동차의 제어와 관련된 복수의 전자제어장치(ECU: Electronic Control Unit); 및
자동차 시스템의 부팅 코드 중 핵심 코드를 시크릿 마스터(secret master)로 하는 이변수 대칭 다항식(Bivariate Symmetric Polynomial)에 상기 복수의 전자제어장치의 식별정보를 대입하여 복수의 일변수 다항식을 생성한 후, 상기 복수의 전자제어장치로 전송하고, 특정 전자제어장치로부터 자신의 식별정보가 대입된 일변수 다항식에 특정 상수를 대입한 시크릿 쉐어값과 부팅 요청 신호를 수신하는 경우, t개의 다른 전자제어장치로 상기 전자제어장치의 식별정보가 대입된 일변수 다항식에 상기 특정 상수를 대입한 시크릿 쉐어값을 요청하고, 수신된 (t+1)개의 시크릿 쉐어값을 이용하여 상기 이변수 대칭 다항식의 시크릿 마스터를 산출하여 자동차 시스템의 부팅을 수행하는 중앙 제어 장치;를 포함하고,
상기 중앙 제어 장치는 상기 특정 전자제어장치로부터 수신한 일변수 다항식 S0(x)에 x=0을 대입한 S0(0)과, 상기 수신된 t개의 일변수 다항식 S1(x), ..., St(x)에 x=0을 대입한, S1(0), ..., St(0)을 이용하여 유효성 검사를 수행한 후, 상기 시크릿 마스터를 산출하는 코드 기반 차량 데이터 검증 시스템.
A plurality of electronic control units (ECUs) related to the control of a vehicle; And
After the identification information of the plurality of electronic control devices is substituted into the bivariate symmetric polynomial whose core code is the secret master among the boot codes of the automobile system, the plurality of one-variable polynomials are generated, and then the When transmitting to a plurality of electronic control devices and receiving a secret share value and a boot request signal in which a specific constant is assigned to a one-variable polynomial in which identification information is assigned from a specific electronic control device, the booting signal is received by t other electronic control devices. Request the secret share value by substituting the specific constant into the one-variable polynomial to which the identification information of the electronic control device is substituted, and calculate the secret master of the bivariate symmetric polynomial using the received (t + 1) secret share values Includes a central control unit for performing the booting of the vehicle system;
The central control device is a one variable polynomial S 0 (x) S 0 ( 0) , and the received t of a variable polynomial S 1 (x) by substituting x = 0 to the reception from the particular electronic control unit. Code-based vehicle that calculates the secret master after performing validation using S 1 (0), ..., S t (0), substituting x = 0 into S t (x). Data verification system.
제5항에 있어서,
상기 자동차 시스템의 부팅 코드 중 핵심 코드를 분리하고, 상기 분리된 핵심 코드를 시크릿 마스터로 하는 이변수 대칭 다항식을 생성하여 상기 중앙 제어 장치로 전송하는 외부의 프로세서;를 더 포함하는, 코드 기반 차량 데이터 검증 시스템.
The method of claim 5,
Code-based vehicle data further comprising: an external processor that separates the core code among the boot codes of the vehicle system and generates a bivariate symmetric polynomial using the separated core code as an incognito master, and transmits it to the central control unit Verification system.
제5항에 있어서,
상기 복수의 전자제어장치 중 제1 전자제어장치는, 자신의 식별정보를 대입한 제1 일변수 다항식에 상대방인 제2 전자제어장치의 식별정보를 대입한 값을 제1 비밀키(kij)로 생성하고, 상기 제1 비밀키와 메시지를 결합하여 MAC(message authentication code)를 생성하여 전송하고,
상기 제2 전자제어장치는, 자신의 식별정보를 대입한 제2 일변수 다항식에 상대방인 상기 제1 전자제어장치의 식별정보를 대입한 값을 제2 비밀키(kji)로 생성하고, 상기 제2 비밀키를 이용하여 상기 MAC을 검증하여 상기 메시지를 검증하는, 코드 기반 차량 데이터 검증 시스템.
The method of claim 5,
Of the plurality of electronic control devices, the first electronic control device is a first secret key (k ij ), which is a value obtained by substituting identification information of the second electronic control device as a counterpart to the first one variable polynomial in which the identification information is substituted. Generated by combining the first secret key and the message to generate and transmit a message authentication code (MAC),
The second electronic control device generates a value obtained by substituting identification information of the first electronic control device as the second secret key (k ji ) as the second one-variable polynomial in which the identification information is substituted. A code-based vehicle data verification system that verifies the message by verifying the MAC using a second secret key.
중앙 제어 장치에서, 자동차 시스템의 부팅 코드 중 핵심 코드를 시크릿 마스터(secret master)로 하는 이변수 대칭 다항식(Bivariate Symmetric Polynomial)에 복수의 전자제어장치(ECU: Electronic Control Unit)의 식별정보를 대입하여 복수의 일변수 다항식을 생성한 후, 상기 복수의 전자제어장치로 전송하는 단계;
상기 중앙 제어 장치에서, 특정 전자제어장치로부터 자신의 식별정보가 대입된 일변수 다항식에 특정 상수를 대입한 시크릿 쉐어값과 부팅 요청 신호를 수신하는 경우, t개의 다른 전자제어장치로 상기 전자제어장치의 식별정보가 대입된 일변수 다항식에 상기 특정 상수를 대입한 시크릿 쉐어값을 요청하는 단계; 및
상기 중앙 제어 장치에서, 수신된 (t+1)개의 시크릿 쉐어값을 이용하여 상기 이변수 대칭 다항식의 시크릿 마스터를 산출하여 자동차 시스템의 부팅을 수행하는 단계;를 포함하고,
상기 특정 전자제어장치로부터 수신한 일변수 다항식 S0(x)에 x=0을 대입한 S0(0)과, 상기 수신된 t개의 일변수 다항식 S1(x), ..., St(x)에 x=0을 대입한, S1(0), ..., St(0)을 이용하여 유효성 검사를 수행한 후, 상기 시크릿 마스터를 산출하는 코드 기반 차량 데이터 검증 방법.
In the central control unit, the identification information of a plurality of Electronic Control Units (ECUs) is substituted into a bivariate symmetric polynomial (CPU) whose core code is the secret master among the boot codes of the automobile system. Generating a plurality of one-variable polynomials and transmitting them to the plurality of electronic control devices;
In the central control device, when receiving a secret share value and a boot request signal in which a specific constant is substituted into a one-variable polynomial to which identification information is assigned from a specific electronic control device, the electronic control device to t other electronic control devices Requesting a secret share value in which the specific constant is substituted into a one-variable polynomial with identification information of; And
In the central control unit, using the received (t + 1) secret share value to calculate the secret master of the bivariate symmetric polynomial to perform the booting of the vehicle system;
In one variable polynomial S 0 (x) received from the particular electronic control unit x = A Substituting 0 S 0 (0), and the received t of a variable polynomial S 1 (x), ..., S t A code-based vehicle data verification method for calculating the secret master after performing validation using S 1 (0), ..., S t (0), by substituting x = 0 into (x).
제8항에 있어서,
상기 복수의 일변수 다항식을 생성한 후, 상기 복수의 전자제어장치로 전송하는 단계 이전에,
상기 중앙 제어 장치 또는 외부의 프로세서에서, 상기 자동차 시스템의 부팅 코드 중 핵심 코드를 분리하고, 상기 분리된 핵심 코드를 시크릿 마스터로 하는 이변수 대칭 다항식을 생성하는 단계;를 더 포함하는, 코드 기반 차량 데이터 검증 방법.
The method of claim 8,
After generating the plurality of one-variable polynomials, and transmitting them to the plurality of electronic control devices,
Further comprising, in the central control unit or an external processor, separating the core code among the boot codes of the vehicle system, and generating a bivariate symmetric polynomial using the separated core code as an secret master. Data verification method.
제8항에 있어서,
상기 자동차 시스템의 부팅을 수행하는 단계 이후에,
상기 복수의 전자제어장치 중 제1 전자제어장치에서, 제1 전자제어장치의 식별정보를 대입한 제1 일변수 다항식에 상대방인 제2 전자제어장치의 식별정보를 대입한 값을 제1 비밀키(kij)로 생성하는 단계;
상기 제1 전자제어장치에서, 상기 제1 비밀키와 메시지를 결합하여 MAC(message authentication code)를 생성하여 상기 제2 전자제어장치로 전송하는 단계;
상기 제2 전자제어장치에서, 상기 제2 전자제어장치의 식별정보를 대입한 제2 일변수 다항식에 상대방인 상기 제1 전자제어장치의 식별정보를 대입한 값을 제2 비밀키(kji)로 생성하는 단계; 및
상기 제2 전자제어장치에서, 상기 제2 비밀키를 이용하여 상기 MAC을 검증하는 단계;를 포함하는 코드 기반 차량 데이터 검증 방법.
The method of claim 8,
After the step of performing the booting of the vehicle system,
The first secret key is a value obtained by substituting the identification information of the second electronic control device as a counterpart to the first one variable polynomial in which the identification information of the first electronic control device is substituted in the first electronic control device among the plurality of electronic control devices. (k ij );
Generating, by the first electronic control device, a message authentication code (MAC) by combining the first secret key and a message and transmitting the message to the second electronic control device;
In the second electronic control device, a value obtained by substituting identification information of the first electronic control device as a counterpart to a second one-variable polynomial in which the identification information of the second electronic control device is substituted is a second secret key (k ji ). Generating with; And
And verifying the MAC using the second secret key in the second electronic control device.
KR1020180019404A 2018-01-18 2018-02-19 Apparatus, method and system for verifying integrity of vechicle data based on code KR102084552B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180006639 2018-01-18
KR20180006639 2018-01-18

Publications (2)

Publication Number Publication Date
KR20190088367A KR20190088367A (en) 2019-07-26
KR102084552B1 true KR102084552B1 (en) 2020-04-23

Family

ID=67469829

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180019404A KR102084552B1 (en) 2018-01-18 2018-02-19 Apparatus, method and system for verifying integrity of vechicle data based on code

Country Status (1)

Country Link
KR (1) KR102084552B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114007222B (en) * 2021-10-20 2024-03-15 北京龙智数科科技服务有限公司 Illegal data authentication method, illegal data authentication device, computer equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017046038A (en) * 2015-08-24 2017-03-02 Kddi株式会社 On-vehicle computer system, vehicle, management method, and computer program
JP2017195504A (en) * 2016-04-20 2017-10-26 Kddi株式会社 Verification system, verification apparatus, verification method, and computer program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090056616A (en) * 2007-11-30 2009-06-03 목포대학교산학협력단 Method for pairwise key establishment using bivariate polynomial in ubiquitous sensor network
KR101072277B1 (en) 2009-08-31 2011-10-11 주식회사 아나스타시스 Apparatus and method for guaranteeing data integrity in real time, and black box system using thereof
KR101567172B1 (en) * 2013-12-27 2015-11-13 현대자동차주식회사 A booting method of the vehicle and an booting apparatus of the vehicle
JP6345157B2 (en) 2015-06-29 2018-06-20 クラリオン株式会社 In-vehicle information communication system and authentication method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017046038A (en) * 2015-08-24 2017-03-02 Kddi株式会社 On-vehicle computer system, vehicle, management method, and computer program
JP2017195504A (en) * 2016-04-20 2017-10-26 Kddi株式会社 Verification system, verification apparatus, verification method, and computer program

Also Published As

Publication number Publication date
KR20190088367A (en) 2019-07-26

Similar Documents

Publication Publication Date Title
US11618394B2 (en) Vehicle secure messages based on a vehicle private key
CN108363347B (en) Hardware security for electronic control unit
Jo et al. A survey of attacks on controller area networks and corresponding countermeasures
EP3297247B1 (en) In-vehicle encrypted networking
Woo et al. A practical wireless attack on the connected car and security protocol for in-vehicle CAN
JP5479408B2 (en) In-vehicle network system
EP3274845B1 (en) Security systems and method for identification of in-vehicle attack originator
US11251978B2 (en) System and method for cryptographic protections of customized computing environment
US9231936B1 (en) Control area network authentication
Martínez-Cruz et al. Security on in-vehicle communication protocols: Issues, challenges, and future research directions
Bendiab et al. Autonomous vehicles security: Challenges and solutions using blockchain and artificial intelligence
US20180205729A1 (en) Method and apparatus for encryption, decryption and authentication
US11354449B2 (en) Secure initial provisioning of a system on a chip
Hartzell et al. Security analysis of an automobile controller area network bus
KR102084552B1 (en) Apparatus, method and system for verifying integrity of vechicle data based on code
CN116800531A (en) Automobile electronic and electric architecture and safety communication method
Carsten et al. A system to recognize intruders in controller area network (can)
Sharma et al. Review of the Security of Backward-Compatible Automotive Inter-ECU Communication
Buntsma et al. Cybersecurity in Automotive Networks
WO2023074072A1 (en) Data storage system, mobile body, and data storage program
Sharma et al. An Extended Survey on Vehicle Security
CN110875800B (en) Method and arrangement for encoding/decoding signals at a first and a second communication node in a road vehicle
Khan Automotive Cyber Security Challenges
Abd El-Gleel et al. Secure lightweight CAN protocol handling message loss for electric vehicles
CN110875800A (en) Method and arrangement for encoding/decoding signals by a first and a second communication node in a road vehicle

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right