KR102025808B1 - Driving assistance Apparatus for Vehicle and Control method thereof - Google Patents

Driving assistance Apparatus for Vehicle and Control method thereof Download PDF

Info

Publication number
KR102025808B1
KR102025808B1 KR1020170157805A KR20170157805A KR102025808B1 KR 102025808 B1 KR102025808 B1 KR 102025808B1 KR 1020170157805 A KR1020170157805 A KR 1020170157805A KR 20170157805 A KR20170157805 A KR 20170157805A KR 102025808 B1 KR102025808 B1 KR 102025808B1
Authority
KR
South Korea
Prior art keywords
data
control unit
verification
server
encrypted
Prior art date
Application number
KR1020170157805A
Other languages
Korean (ko)
Other versions
KR20190060032A (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 엘지전자 주식회사
Priority to KR1020170157805A priority Critical patent/KR102025808B1/en
Publication of KR20190060032A publication Critical patent/KR20190060032A/en
Application granted granted Critical
Publication of KR102025808B1 publication Critical patent/KR102025808B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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)
    • H04L9/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Lock And Its Accessories (AREA)
  • Traffic Control Systems (AREA)

Abstract

본 발명은, 서버가, 차량에 구비된 제1 제어 유닛의 소프트웨어를 업데이트하기 위한 데이터(이하 ‘제1 데이터’라 함)와, 상기 제1 데이터를 상기 서버의 개인키(private key)로 암호화하여 생성되는 데이터(이하 ‘암호화 데이터’라 함)를, 상기 차량에 구비된 제2 제어 유닛으로 전송하는 제1 단계, 상기 제2 제어 유닛이, 상기 제1 데이터 및 상기 암호화 데이터를 수신하는 제2 단계, 상기 제2 제어 유닛이, 상기 암호화 데이터 및 상기 서버의 공개키(public key)에 기초하여 상기 제1 데이터를 검증하고, 상기 제1 데이터에 대한 검증 결과를 나타내는 검증 데이터(verification data)를 생성하는 제3 단계, 상기 제2 제어 유닛이, 상기 검증 데이터와 상기 제1 데이터를, 상기 제1 제어 유닛에 전송하는 제4 단계, 및 상기 제1 제어 유닛이, 상기 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 제1 데이터를 사용하여 업데이트를 수행하는 제5 단계를 포함하는 차량용 제어 유닛의 업데이트 방법에 관한 것이다.According to the present invention, a server encrypts data (hereinafter referred to as 'first data') for updating software of a first control unit provided in a vehicle, and the first data is encrypted with a private key of the server. Transmitting data (hereinafter referred to as 'encryption data') to the second control unit provided in the vehicle, and the second control unit receiving the first data and the encrypted data. Step 2, the second control unit verifies the first data based on the encrypted data and the public key of the server, and verifies data indicating a verification result of the first data. Generating a third step, the second control unit transmitting the verification data and the first data to the first control unit, and the first control unit based on the verification data.If it is determined that there is an error in the first data group, to a updating method for a vehicle control unit comprising a fifth step of performing the update, using the first data.

Description

차량용 제어 유닛의 업데이트 방법 및 차량{Driving assistance Apparatus for Vehicle and Control method thereof}Driving method and vehicle update method of vehicle control unit

본 발명은 비대칭 암호화 방식의 검증을 수행할 수 없는 제어 유닛과, 비대칭 암호화 방식의 검증을 수행할 수 있는 제어 유닛을 구비한 차량에서, 비대칭 암호화 방식의 검증을 수행할 수 있는 제어 유닛이, 비대칭 암호화 방식의 검증을 수행할 수 없는 제어 유닛을 대신하여 데이터의 전자 서명을 검증하는 방법에 관한 것이다. According to the present invention, in a vehicle having a control unit that cannot perform verification of the asymmetric encryption method and a control unit that can perform verification of the asymmetric encryption method, the control unit capable of performing the verification of the asymmetric encryption method is asymmetric. A method for verifying the electronic signature of data on behalf of a control unit that is unable to perform encryption-based verification.

차량은 탑승하는 사용자가 원하는 방향으로 이동시키는 장치이다. 대표적으로 자동차를 예를 들 수 있다.The vehicle is a device for moving in the direction desired by the user on board. An example is a car.

한편, 차량을 이용하는 사용자의 편의를 위해, 각 종 센서와 전자 장치 등이 구비되고 있는 추세이다. 특히, 사용자의 운전 편의를 위해 차량 운전자 보조 시스템(ADAS : Advanced Driver Assistance System)에 대한 연구가 활발하게 이루어지고 있다. 나아가, 차량이 자율적으로 주행하는 차량용 주행 시스템에 대한 연구 개발이 활발하게 이루어지고 있다.On the other hand, for the convenience of the user using the vehicle, various types of sensors, electronic devices, etc. are provided. In particular, research on the Advanced Driver Assistance System (ADAS) has been actively conducted for the user's driving convenience. Furthermore, research and development on a vehicle driving system in which a vehicle runs autonomously is being actively performed.

차량에 다양한 전자 장치와 시스템이 구비됨에 따라, 차량에는 다양한 제어 유닛이 구비되는 추세이다. 예를 들어, 차량에 구비되는 제어 유닛은, ECU(Electronic Control Unit)나, 프로세서일 수 있다.As various electronic devices and systems are provided in a vehicle, various control units are provided in the vehicle. For example, the control unit provided in the vehicle may be an ECU (Electronic Control Unit) or a processor.

또한, 차량에 구비된 여러 제어 유닛에는, 각각의 소프크웨어가 탑재될 수 있다. 이 경우, 차량에 구비된 여러 제어 유닛에 탑재된 소프트웨어는, 서버에서 제공하는 업데이트 데이터를 통하여 업데이트될 수 있다.In addition, the various control units provided in the vehicle may be equipped with respective software. In this case, software mounted in various control units provided in the vehicle may be updated through update data provided by the server.

차량에 구비된 제어 유닛이, 서버에서 제공하는 업데이트 데이터를 수신하는 경우, 수신되는 데이터의 전자 서명을 검증해야 한다. 이러한 전자 서명의 검증을 수행하기 위해서는, 비대칭 암호화 방식(asymmetric cryptosystem)을 사용해야 한다. 비대칭 암호화 방식(asymmetric cryptosystem)의 검증은, 대칭 암호화 방식(symmetric cryptosystem)의 검증보다 많은 연산 능력을 필요로 한다. 그러나, 차량에는, 연산 능력이 부족하여, 비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없는 제어 유닛이 존재할 수 있다.When the control unit provided in the vehicle receives the update data provided by the server, it is necessary to verify the electronic signature of the received data. In order to perform verification of such an electronic signature, an asymmetric cryptosystem must be used. Verification of an asymmetric cryptosystem requires more computational power than verification of a symmetric cryptosystem. However, there may be a control unit in the vehicle that lacks computing power and cannot perform verification of an asymmetric cryptosystem.

예를 들어, 하드웨어 상의 문제로 HSM(Hardware Security Module)을 구비하지 않거나, 연산 능력이 부족한 HSM을 구비한 제어 유닛은, 비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없다.For example, a control unit that does not have a hardware security module (HSM) due to a hardware problem, or has an HSM that lacks computing power, cannot perform verification of an asymmetric cryptosystem.

본 발명의 실시예는, 차량에 비대칭 암호화 방식의 검증을 수행할 수 없는 제1 제어 유닛이 존재하는 경우, 비대칭 암호화 방식의 검증을 수행할 수 있는 제2 제어 유닛을 이용하여, 제1 제어 유닛에 대한 데이터를 대신 검증하고, 검증 결과에 따라 제1 제어 유닛의 업데이트를 수행할 것인지 결정하는 제어 유닛의 업데이트 방법을 제공하는데 목적이 있다.An embodiment of the present invention provides a first control unit using a second control unit capable of performing verification of an asymmetric encryption method when there is a first control unit that cannot perform verification of an asymmetric encryption method in a vehicle. It is an object of the present invention to provide a method of updating a control unit that verifies data for the second control unit and determines whether to perform an update of the first control unit according to the verification result.

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

상기 과제를 달성하기 위하여, 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법은, 서버가, 차량에 구비된 제1 제어 유닛의 소프트웨어를 업데이트하기 위한 데이터(이하 ‘제1 데이터’라 함)와, 상기 제1 데이터를 상기 서버의 개인키(private key)로 암호화하여 생성되는 데이터(이하 ‘암호화 데이터’라 함)를, 상기 차량에 구비된 제2 제어 유닛으로 전송하는 제1 단계, 상기 제2 제어 유닛이, 상기 제1 데이터 및 상기 암호화 데이터를 수신하는 제2 단계, 상기 제2 제어 유닛이, 상기 암호화 데이터 및 상기 서버의 공개키(public key)에 기초하여 상기 제1 데이터를 검증하고, 상기 제1 데이터에 대한 검증 결과를 나타내는 검증 데이터(verification data)를 생성하는 제3 단계, 상기 제2 제어 유닛이, 상기 검증 데이터와 상기 제1 데이터를, 상기 제1 제어 유닛에 전송하는 제4 단계, 및 상기 제1 제어 유닛이, 상기 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 제1 데이터를 사용하여 업데이트를 수행하는 제5 단계를 포함할 수 있다.In order to achieve the above object, the update method of a vehicle control unit according to an embodiment of the present invention, the server, the data for updating the software of the first control unit provided in the vehicle (hereinafter referred to as 'first data') And a first step of transmitting data (hereinafter, referred to as 'encryption data') generated by encrypting the first data with a private key of the server to a second control unit provided in the vehicle. A second step of receiving, by the second control unit, the first data and the encrypted data, the second control unit verifies the first data based on the encrypted data and the public key of the server And generating verification data indicating verification results for the first data, wherein the second control unit controls the verification data and the first data to perform the first control. A fourth step of transmitting to the unit, and a fifth step of performing an update using the first data if the first control unit determines that the first data is free of errors based on the verification data. Can be.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Specific details of other embodiments are included in the detailed description and the drawings.

본 발명의 실시예에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.According to an embodiment of the present invention, there are one or more of the following effects.

첫째, 차량에 연산 능력이 부족한 제어 유닛이 존재하더라도, 연산 능력이 충분한 다른 제어 유닛을 이용하여 데이터를 대신 검증할 수 있는 효과가 있다.First, even if a control unit lacking computing power exists in a vehicle, there is an effect that data can be verified instead using another control unit having sufficient computing power.

둘째, 데이터의 검증을 대신 수행하는 제어 유닛 뿐만 아니라, 데이터에 대한 재검증을 수행하는 또 다른 제어 유닛을 이용하여 데이터 검증의 정확성이 향상된다.Second, the accuracy of data verification is improved by using not only a control unit that performs verification of data, but also another control unit that performs revalidation on data.

본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the claims.

도 1은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버와 제어 유닛들을 나타내는 도면이다.
도 2 및 도 3은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 단계 및 제2 단계를 설명하기 위한 도면이다.
도 4 및 도 5은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제3 단계 및 재4 단계를 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 재검증 단계를 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.
도 8 및 도 9는 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제2 및 3 재검증 단계를 설명하기 위한 도면이다.
도 10 및 도 11은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.
도 12은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버와 제어 유닛들을 나타내는 도면이다.
도 13은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 단계 및 제2 단계를 설명하기 위한 도면이다.
도 14 및 도 15은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제3 단계 및 제4 단계를 설명하기 위한 도면이다.
도 16은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 재검증 단계를 설명하기 위한 도면이다.
도 17 및 도 18은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제2 및 3 재검증 단계를 설명하기 위한 도면이다.
도 19은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.
1 is a diagram illustrating a server and control units performing a method of updating a vehicle control unit according to an exemplary embodiment of the present invention.
2 and 3 are diagrams for explaining the first step and the second step of the update method of the vehicle control unit according to the embodiment of the present invention.
4 and 5 are views for explaining the third step and the fourth step of the update method of the vehicle control unit according to the embodiment of the present invention.
FIG. 6 is a diagram for describing a first revalidation step of an update method of a vehicle control unit according to an embodiment of the present invention.
7 is a view for explaining a fifth step of the updating method of the vehicle control unit according to the embodiment of the present invention.
8 and 9 are diagrams for describing second and third revalidation steps of an update method of a vehicle control unit according to an exemplary embodiment of the present invention.
10 and 11 are diagrams for describing a fifth step of the updating method of the vehicle control unit according to the embodiment of the present invention.
12 is a diagram illustrating a server and control units performing a method of updating a vehicle control unit according to an embodiment of the present invention.
13 is a view for explaining the first step and the second step of the update method of the vehicle control unit according to the embodiment of the present invention.
14 and 15 are diagrams for describing third and fourth steps of an updating method of a vehicle control unit according to an embodiment of the present invention.
FIG. 16 is a diagram for describing a first revalidation step of an update method of a vehicle control unit according to an embodiment of the present invention.
17 and 18 are diagrams for describing second and third revalidation steps of an update method of a vehicle control unit according to an exemplary embodiment of the present invention.
19 is a view for explaining a fifth step of the updating method of the vehicle control unit according to the embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings, and the same or similar components are denoted by the same reference numerals regardless of the reference numerals, and redundant description thereof will be omitted. The suffixes "module" and "unit" for components used in the following description are given or used in consideration of ease of specification, and do not have distinct meanings or roles from each other. In addition, in describing the embodiments disclosed herein, when it is determined that the detailed description of the related known technology may obscure the gist of the embodiments disclosed herein, the detailed description thereof will be omitted. In addition, the accompanying drawings are intended to facilitate understanding of the embodiments disclosed herein, but are not limited to the technical spirit disclosed herein by the accompanying drawings, all changes included in the spirit and scope of the present invention. It should be understood to include equivalents and substitutes.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms including ordinal numbers such as first and second may be used to describe various components, but the components are not limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

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

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. Singular expressions include plural expressions unless the context clearly indicates otherwise.

본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this application, the terms "comprises" or "having" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

본 명세서에서 기술되는 차량은, 자동차, 오토바이를 포함하는 개념일 수 있다. 이하에서는, 차량에 대해 자동차를 위주로 기술한다.The vehicle described herein may be a concept including an automobile and a motorcycle. In the following, a vehicle is mainly described for a vehicle.

본 명세서에서 기술되는 차량은, 동력원으로서 엔진을 구비하는 내연기관 차량, 동력원으로서 엔진과 전기 모터를 구비하는 하이브리드 차량, 동력원으로서 전기 모터를 구비하는 전기 차량등을 모두 포함하는 개념일 수 있다. 차량은, 다양한 제어 유닛을 구비한다.The vehicle described herein may be a concept including both an internal combustion engine vehicle having an engine as a power source, a hybrid vehicle having an engine and an electric motor as a power source, and an electric vehicle having an electric motor as a power source. The vehicle is equipped with various control units.

최근 Automotive system에서는 자동차 환경의 변화에 따라 요구되는 차량 보안을 위해 HSM(HW security module)로서 EVITA(E-safety Vehicle Intrusion proTected Applications) 등급을 요구하는 추세이다.Recently, in the automotive system, an E-safety Vehicle Intrusion proTected Applications (EVITA) grade is required as a HW security module (HSM) for vehicle security required in accordance with changes in the automotive environment.

EVITA 등급은 요구되는 안전 등급(security level)에 따라 EVITA-Full, EVITA-Medium, EVITA-light로 분류된다.EVITA classes are classified into EVITA-Full, EVITA-Medium, and EVITA-light according to the required security level.

차량에는, 비대칭 암호화 방식(asymmetric cryptography)의 연산이 어려운 제어 유닛(ECU)이 존재한다.In vehicles, there are control units (ECUs) that are difficult to compute in asymmetric cryptography.

예를 들어, Performance의 제한, chip size 등 기타 H/W의 문제로 HSM이 구비되지 않거나, Sensor, actuator과 같이 요구되는 안전 등급이 낮아 Light EVITA의 HSM만을 구비하는 제어 유닛은, 비대칭 암호화 방식(asymmetric cryptography)의 연산이 불가하다.For example, a control unit that does not have an HSM due to performance limitations, chip size, or other H / W problems, or has a low safety class such as a sensor or an actuator, and has only a light EVITA HSM, is asymmetric encryption method ( Operation of asymmetric cryptography is impossible.

비대칭 암호화 방식의 연산이 어려운 제어 유닛은 서버로부터 전송되는 업데이트 데이터의 무결성을 전자 서명으로 검증하기가 어렵다.Control units that are difficult to operate with asymmetric cryptography are difficult to verify with digital signature the integrity of update data sent from the server.

본 발명은 비대칭 암호화 연산이 가능한 제2 제어 유닛(120)이 비대칭 암호화 연산이 불가한 제1 제어 유닛(110)을 대신하여 서버(200)의 업데이트 데이터의 서명을 검증하는 업데이트 방법에 관한 것이다. The present invention relates to an update method in which a second control unit (120) capable of asymmetric encryption operation verifies the signature of update data of the server (200) on behalf of the first control unit (110).

또한, 본 발명의 다른 일 실시예는, 제2 제어 유닛(120)이 검증 결과나 데이터를 조작하는 가능성을 차단하기 위하여, 하나 이상의 제3 제어 유닛이나 제4 제어 유닛(140)이 데이터를 재 검증하는 방법을 포함한다.In addition, another embodiment of the present invention, the one or more third control unit or fourth control unit 140 to re-write the data in order to block the possibility that the second control unit 120 manipulates the verification result or data. Includes verification methods.

도 1은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버(200)와 제어 유닛들을 나타내는 도면이다.1 is a diagram illustrating a server 200 and a control unit for performing a method of updating a vehicle control unit according to an exemplary embodiment of the present invention.

본 발명의 서버(200)는, 차량(100)에 구비된 각종 제어 유닛의 소프트웨어를 업데이트하기 위한 데이터를 제공한다.The server 200 of the present invention provides data for updating software of various control units provided in the vehicle 100.

이를 위하여 서버(200)는, 각종 업데이트를 수행하기 위한 데이터를 생성하고, 저장한다. 서버(200)는, 각종 데이터를 차량에 전송하기 위한 통신 장치를 구비할 수 있다. To this end, the server 200 generates and stores data for performing various updates. The server 200 may be provided with a communication device for transmitting various data to a vehicle.

서버(200)는, 구비된 통신 장치를 통하여, 각종 데이터를 차량(100)으로 전송할 수 있다. The server 200 may transmit various data to the vehicle 100 through the provided communication device.

서버(200)는, 서버 난수 및 서버 개인키 중 적어도 하나를 구비할 수 있다.The server 200 may include at least one of a server random number and a server private key.

서버(200)는, 서버 난수를 주기적으로 갱신할 수 있다. 예를 들어, 서버(200)는, 서버 난수를 기설정된 시간이 경과할때마다 새로운 값으로 설정하거나, 부팅될 때마다 서버 난수를 새롭게 설정할 수 있다.The server 200 may periodically update the server random number. For example, the server 200 may set the server random number to a new value each time a predetermined time elapses, or newly set the server random number each time it is booted.

서버(200)는, 주기적으로 갱신되는 서버 난수를 제2 제어 유닛(120), 제3 제어 유닛, 및 제4 제어 유닛(140)과 공유할 수 있다. 이에 따라, 제2 제어 유닛(120), 제3 제어 유닛, 및 제4 제어 유닛(140)은, 주기적으로 갱신되는 서버 난수를 구비할 수 있다.The server 200 may share the server random number updated periodically with the second control unit 120, the third control unit, and the fourth control unit 140. Accordingly, the second control unit 120, the third control unit, and the fourth control unit 140 may include server random numbers that are periodically updated.

차량(100)은, 각종 제어 유닛을 구비할 수 있다. 예를 들어, 차량(100)은, 디스플레이 장치를 제어하기 위한 제어 유닛, 브레이크 장치를 제어하기 위한 제어 유닛, 오디오 장치를 제어하기 위한 제어 유닛, 조향 장치를 제어하기 위한 제어 유닛, 공조 장치를 제어하기 위한 제어 유닛, 차량(100)이 움직이기 위한 각종 구동 장치를 제어하기 위한 제어 유닛 등을 구비할 수 있다. The vehicle 100 may be provided with various control units. For example, the vehicle 100 controls a control unit for controlling a display device, a control unit for controlling a brake device, a control unit for controlling an audio device, a control unit for controlling a steering device, and an air conditioning device. And a control unit for controlling various driving devices for moving the vehicle 100.

본 발명의 차량(100)은, 제1 제어 유닛(110) 및 제2 제어 유닛(120)을 구비할 수 있다. The vehicle 100 of the present invention may include a first control unit 110 and a second control unit 120.

제1 제어 유닛(110)은, HSM(Hardware Security Module)를 구비하지 않거나, 비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없는 HSM만을 구비한다. 이에 따라, 제1 제어 유닛(110)은, 비대칭 암호화 방식의 검증을 수행할 수 없다.The first control unit 110 does not have a hardware security module (HSM) or only an HSM that cannot perform verification of an asymmetric cryptosystem. Accordingly, the first control unit 110 cannot perform verification of the asymmetric encryption method.

비대칭 암호화 방식의 검증은, 특정 장치가 구비하는 개인키로 암호화된 데이터를, 상기 특정 장치의 공개키로 복호화하여, 상기 데이터가 정당한 권한을 갖는 주체로부터 전송되었는지 및 무결성이 만족되는지를 확인하는 것이다.The asymmetric encryption scheme verifies that the data encrypted with the private key included in the specific device is decrypted with the public key of the specific device to confirm that the data is transmitted from a subject having a legitimate authority and that the integrity is satisfied.

제1 제어 유닛(110)은, 유닛 난수, 및 검증이나 재검증을 수행하는 제어 유닛들 각각의 개인 대칭키(symmetric-key)를 구비할 수 있다. The first control unit 110 may include a unit random number and a personal symmetric key of each of the control units that perform verification or revalidation.

예를 들어, 도면의 실시예와 같이 차량(100)이 제2 제어 유닛(120), 제3 제어 유닛A(130a), 제3 제어 유닛B(130b)를 구비하는 경우, 제1 제어 유닛(110)은, 제2 제어 유닛(120)의 개인 대칭키1, 제3 제어 유닛A(130a)의 개인 대칭키A, 및 제3 제어 유닛B(130b)의 개인 대칭키B를 구비할 수 있다.For example, when the vehicle 100 includes the second control unit 120, the third control unit A 130a, and the third control unit B 130b as in the embodiment of the drawing, the first control unit ( 110 may include a personal symmetric key 1 of the second control unit 120, a personal symmetric key A of the third control unit A 130a, and a personal symmetric key B of the third control unit B 130b. .

차량(100)에 구비된 모든 제어 유닛은, 유닛 난수를 공유할 수 있다. 유닛 난수는, 특정 제어 유닛에 의하여 주기적으로 갱신되어, 다른 제어 유닛들에 공유될 수 있다. 이에 따라, 제1 제어 유닛(110), 제2 제어 유닛(120), 제3 제어 유닛, 및 제4 제어 유닛(140)은, 유닛 난수를 구비할 수 있다.All control units provided in the vehicle 100 can share a unit random number. The unit random number can be updated periodically by a particular control unit and shared with other control units. Thereby, the 1st control unit 110, the 2nd control unit 120, the 3rd control unit, and the 4th control unit 140 can be equipped with a unit random number.

제2 제어 유닛(120)은, 비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비한다. 이에 따라, 제2 제어 유닛(120)은, 비대칭 암호화 방식의 검증을 수행할 수 있다.The second control unit 120 has an HSM capable of performing asymmetric encryption scheme verification. Accordingly, the second control unit 120 may perform verification of an asymmetric encryption scheme.

제2 제어 유닛(120)은, 서버 난수, 유닛 난수, 서버(200) 공개키, 및 개인 대칭키1을 구비할 수 있다. The second control unit 120 may include a server random number, a unit random number, a server 200 public key, and a personal symmetric key 1.

본 발명에서, 개인 대칭키1은, 제1 대칭키로 명명될 수도 있다.In the present invention, the personal symmetric key 1 may be named as the first symmetric key.

제2 제어 유닛(120)은, 서버(200)와 통신을 수행할 수 있다. 이는 차량과 서버(200)와의 통신이므로, V2X 통신으로 명명될 수 있다. The second control unit 120 may communicate with the server 200. Since this is a communication between the vehicle and the server 200, it may be referred to as V2X communication.

V2X 통신은, 차량과 서버(200)(V2I : Vehicle to Infra), 차량과 타 차량(V2V : Vehicle to Vehicle), 및 차량과 보행자(V2P : Vehicle to Pedestrian) 간의 무선 통신을 뜻한다.V2X communication refers to wireless communication between a vehicle and a server 200 (V2I: Vehicle to Infra), a vehicle and another vehicle (V2V), and a vehicle and a pedestrian (V2P).

제2 제어 유닛(120)은, 서버(200)와 통신을 수행하기 위한 통신 모듈을 구비할 수 있다.The second control unit 120 may include a communication module for communicating with the server 200.

차량(100)은, 하나 이상의 제3 제어 유닛를 더 구비할 수 있다. 도면의 실시예와 같이, 차량(100)은, 제3 제어 유닛A(130a), 및 제3 제어 유닛B(130b)을 구비하여, 2개의 제3 제어 유닛을 구비할 수도 있다.The vehicle 100 may further include one or more third control units. As in the embodiment of the figure, the vehicle 100 may include a third control unit A 130a and a third control unit B 130b, and may include two third control units.

제3 제어 유닛은, 비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비한다. 이에 따라, 제3 제어 유닛도, 비대칭 암호화 방식의 검증을 수행할 수 있다.The third control unit has an HSM capable of performing asymmetric encryption scheme verification. Accordingly, the third control unit can also perform verification of the asymmetric encryption method.

제3 제어 유닛은, 서버 난수, 유닛 난수, 서버(200) 공개키, 및 고유의 개인 대칭키를 구비할 수 있다. 본 발명에서 제3 제어 유닛이 구비하는 개인 대칭키는, 제2 대칭키라고 명명될 수 있다.The third control unit may comprise a server random number, a unit random number, a server 200 public key, and a unique private symmetric key. In the present invention, the personal symmetric key provided in the third control unit may be referred to as a second symmetric key.

제3 제어 유닛은, 하나 이상일 수 있다. 제3 제어 유닛이 복수인 경우, 복수의 제3 제어 유닛은, 각각 자신의 개인 대칭키를 구비한다. 도면의 실시에에서, 제3 제어 유닛A(130a)는, 개인 대칭키A를 구비하고, 제3 제어 유닛B(130b)는, 개인 대칭키B를 구비할 수 있다.The third control unit may be one or more. When there are a plurality of third control units, the plurality of third control units each have their own personal symmetric keys. In the embodiment of the figure, the third control unit A 130a may have a personal symmetric key A, and the third control unit B 130b may have a personal symmetric key B.

차량(100)은, 제4 제어 유닛(140)를 더 구비할 수 있다. 제4 제어 유닛(140)에 대한 설명은, 도 12에 대한 설명에서 후술한다.The vehicle 100 may further include a fourth control unit 140. The description of the fourth control unit 140 will be described later with reference to FIG. 12.

제4 제어 유닛(140)은, 비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비한다. 이에 따라, 제4 제어 유닛(140)도, 비대칭 암호화 방식의 검증을 수행할 수 있다.The fourth control unit 140 includes an HSM capable of performing asymmetric encryption scheme verification. Accordingly, the fourth control unit 140 may also perform verification of the asymmetric encryption method.

차량(100)에 구비된 모든 제어 유닛은, IVN(In-Vehicle Network)로 연결도니다. 예를 들어, IVN은, CAN(Controller Area Network)일 수 있다.All control units provided in the vehicle 100 are connected to an in-vehicle network (IVN). For example, the IVN may be a controller area network (CAN).

이에 따라, 차량(100)에 구비된 모든 제어 유닛은, IVN(In-Vehicle Network)를 통하여 각종 데이터를 공유할 수 있다. 예를 들어, 제2 제어 유닛(120)이 제1 데이터를 IVN로 전송하는 경우, 다른 제어 유닛들 모두 제1 데이터를 획득할 수 있다.Accordingly, all control units provided in the vehicle 100 may share various data through the in-vehicle network (IVN). For example, when the second control unit 120 transmits the first data to the IVN, all other control units may acquire the first data.

본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법은, 제1 단계, 제2 단계, 제3 단계, 제4 단계, 및 제5 단계를 포함할 수 있다. 또한, 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법은, 제4 단계 및 제5 단계 사이에 제1 재검증 단계, 제2 재검증 단계, 및 제3 재검증 단계를 더 포함할 수도 있다.The updating method of the vehicle control unit according to the embodiment of the present invention may include a first step, a second step, a third step, a fourth step, and a fifth step. In addition, the updating method of the vehicle control unit according to the embodiment of the present invention may further include a first revalidation step, a second revalidation step, and a third revalidation step between the fourth and fifth steps. .

구체적으로, 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법은, 서버(200)가, 차량에 구비된 제1 제어 유닛(110)의 소프트웨어를 업데이트하기 위한 데이터(이하 '제1 데이터'라 함)와, 제1 데이터를 상기 서버(200)의 개인키(private key)로 암호화하여 생성되는 데이터(이하 '암호화 데이터'라 함)를, 차량에 구비된 제2 제어 유닛(120)으로 전송하는 제1 단계; 제2 제어 유닛(120)이, 제1 데이터 및 암호화 데이터를 수신하는 제2 단계; 제2 제어 유닛(120)이, 암호화 데이터 및 서버(200)의 공개키(public key)에 기초하여 제1 데이터를 검증하고, 제1 데이터에 대한 검증 결과를 나타내는 검증 데이터(verification data)를 생성하는 제3 단계; 제2 제어 유닛(120)이, 검증 데이터와 제1 데이터를, 제1 제어 유닛(110)에 전송하는 제4 단계; 및 제1 제어 유닛(110)이, 검증 데이터에 기초하여 제1 데이터에 오류가 없다고 판단되면, 제1 데이터를 사용하여 업데이트를 수행하는 제5 단계를 포함할 수 있다. 이하 도면을 참조하여 각 단계를 구체적으로 설명한다.Specifically, in the method for updating a vehicle control unit according to an embodiment of the present invention, data for the server 200 to update software of the first control unit 110 provided in the vehicle (hereinafter referred to as 'first data'). And data generated by encrypting the first data with the private key of the server 200 (hereinafter referred to as 'encryption data') are transmitted to the second control unit 120 provided in the vehicle. A first step of doing; A second step in which the second control unit 120 receives the first data and the encrypted data; The second control unit 120 verifies the first data based on the encrypted data and the public key of the server 200, and generates verification data indicating the verification result for the first data. Performing a third step; A fourth step of transmitting, by the second control unit 120, the verification data and the first data to the first control unit 110; And a fifth step of, if the first control unit 110 determines that there is no error in the first data based on the verification data, performing the update using the first data. Hereinafter, each step will be described in detail with reference to the accompanying drawings.

도 2 및 도 3은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 단계 및 제2 단계를 설명하기 위한 도면이다.2 and 3 are diagrams for explaining the first step and the second step of the update method of the vehicle control unit according to the embodiment of the present invention.

도 2를 참조하면, 제1 단계에서, 서버(200)는, 제1 제어 유닛(110)을 업데이트하기 위한 데이터(제1 데이터)와 제1 데이터를 암호화한 전자 서명 값인 암호화 데이터를 제2 제어 유닛(120)에 전송한다.Referring to FIG. 2, in a first step, the server 200 controls secondly data (first data) for updating the first control unit 110 and encrypted data which is an electronic signature value that encrypts the first data. Transmit to unit 120.

본 발명의 제1 제어 유닛(110)은 전자 서명을 검증하기 위한 비대칭 암호화 방식의 연산을 수행할 수 없으므로, 서버(200)는 제1 제어 유닛(110)을 대신하여 검증을 수행할 제2 제어 유닛(120)에게 제1 데이터와 암호화 데이터를 전송한다.Since the first control unit 110 of the present invention cannot perform an asymmetric encryption method for verifying the electronic signature, the server 200 controls the second control to perform verification on behalf of the first control unit 110. The first data and the encrypted data are transmitted to the unit 120.

도 3을 참조하면, 제1 단계에서, 서버(200)는, 제1 데이터 및 암호화 데이터를 전송하기 전에, 제1 데이터를 분할하고, 암호화 데이터를 생성한다.Referring to FIG. 3, in a first step, the server 200 divides the first data and generates encrypted data before transmitting the first data and the encrypted data.

제1 단계에서, 서버(200)는, 제1 데이터의 크기, 제1 제어 유닛(110)의 메모리 크기, 제2 제어 유닛(120)의 메모리 크기, 및 IVN의 데이터 프레임 (data frame)의 최대 크기 중 적어도 하나에 기초하여, 제1 데이터에 대한 분할 사이즈(fragmentation size)를 결정할 수 있다. In a first step, the server 200 may determine the size of the first data, the memory size of the first control unit 110, the memory size of the second control unit 120, and the maximum of the data frame of the IVN. Based on at least one of the sizes, a fragmentation size for the first data may be determined.

제1 데이터의 크기가 제2 제어 유닛(120)이나 제1 제어 유닛(110)의 메모리 크기보다 큰 경우, 서버(200)는, 제1 데이터를 적절한 사이즈로 분할하여 제2 제어 유닛(120)이나 제1 제어 유닛(110)이 분할된 데이터에 대하여 순차적으로 검증 및 전달을 수행할 수 있게 할 수 있다. When the size of the first data is larger than the memory size of the second control unit 120 or the first control unit 110, the server 200 divides the first data into an appropriate size and the second control unit 120. Alternatively, the first control unit 110 may perform verification and transfer on the divided data sequentially.

또한, IVN의 데이터 프레임 (data frame)의 최대 크기가 제1 데이터의 크기보다 작은 경우, 1개의 데이터 프레임에 제1 데이터가 모두 포함될 수 없으므로, 서버(200)는, 제1 데이터를 적절한 사이즈로 분할하여 제2 제어 유닛(120)이 수행하는 2차 데이터 분할시 많은 시간이 소요되지 않게 할 수 있다.In addition, when the maximum size of the data frame of the IVN is smaller than the size of the first data, since all the first data may not be included in one data frame, the server 200 may store the first data in an appropriate size. By dividing, it is possible to avoid a large amount of time in the secondary data division performed by the second control unit 120.

서버(200)는, 제1 데이터에 대한 분할 사이즈가 결정된 경우, 결정된 분할 사이즈에 따라 제1 데이터를 분할(fragment)하여, N개의 1차 분할 데이터를 생성한다.When the partition size for the first data is determined, the server 200 fragments the first data according to the determined partition size to generate N primary partitioned data.

예를 들어, 제1 데이터의 크기가 1메가 바이트이고, IVN의 데이터 프레임의 최대 크기가 8바이트인 경우, 서버(200)는, 제1 데이터에 대한 분할 사이즈를, 1킬로 바이트로 결정할 수 있다. 서버(200)는, 제1 데이터를 1킬로 바이트의 크기로 분할하여, 1024개의 1차 분할 데이터를 생성할 수 있다. 이 경우, 1차 분할 데이터의 개수 N은 1024이다.For example, when the size of the first data is 1 megabyte and the maximum size of the data frame of the IVN is 8 bytes, the server 200 may determine the partition size for the first data as 1 kilobyte. . The server 200 may generate 1024 primary partitioned data by dividing the first data into a size of 1 kilobyte. In this case, the number N of primary divided data is 1024.

제1 단계에서, 서버(200)는, N개의 1차 분할 데이터를, 제2 제어 유닛(120)으로 전송한다. 즉, 서버(200)는, 제1 데이터를 N개의 1차 분할 데이터로 분할하여 제2 제어 유닛(120)에 전송한다.In the first step, the server 200 transmits the N primary divided data to the second control unit 120. That is, the server 200 divides the first data into N primary divided data and transmits the first data to the second control unit 120.

제1 단계에서, 서버(200)는, 제1 데이터를 서버 난수와 서버(200)의 개인키로 암호화하여, 암호화 데이터를 생성한다.In a first step, the server 200 encrypts the first data with a server random number and a private key of the server 200 to generate encrypted data.

도면의 실시예에서, 서버(200)는, N개로 분할된 제1 데이터에 대하여 암호화를 수행한다. 서버(200)는, N개의 1차 분할 데이터 각각에 서버 난수를 결합시킨 값의 해시 값을 서버 개인키로 암호화한다. 이에 따라, N개의 암호화 데이터가 생성된다. 서버(200)는, N개의 암호화 데이터를 제2 제어 유닛(120)에 전송한다.In the embodiment of the figure, the server 200 performs encryption on the N data divided into N pieces. The server 200 encrypts a hash value of a value obtained by combining server random numbers with each of the N primary pieces of data with a server private key. As a result, N pieces of encrypted data are generated. The server 200 transmits N pieces of encrypted data to the second control unit 120.

제2 단계에서, 제2 제어 유닛(120)은, 서버(200)로부터 N개의 1차 분할 데이터를 수신한다.In a second step, the second control unit 120 receives the N primary partitioned data from the server 200.

도 4 및 도 5은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제3 단계 및 재4 단계를 설명하기 위한 도면이다.4 and 5 are views for explaining the third step and the fourth step of the update method of the vehicle control unit according to the embodiment of the present invention.

도 4를 참조하면, 제2 제어 유닛(120)은, 제3 단계에서 검증 데이터를 생성하고, 제4 단계에서, 검증 데이터, 제1 데이터, 암호화 데이터를 IVN에 전송한다.Referring to FIG. 4, the second control unit 120 generates verification data in a third step, and transmits verification data, first data, and encrypted data to the IVN in a fourth step.

제3 단계에서, 제2 제어 유닛(120)은, 암호화 데이터, 서버(200)의 공개키, 및 서버 난수에 기초하여, 제1 데이터를 검증할 수 있다.In a third step, the second control unit 120 may verify the first data based on the encrypted data, the public key of the server 200, and the server random number.

구체적으로, 제2 제어 유닛(120)은, 암호화 데이터를 서버(200)의 공개키로 복호화한 값과, 서버 난수와 제1 데이터를 결합한 값의 해시값을 비교하여, 제1 데이터를 검증할 수 있다.In detail, the second control unit 120 may verify the first data by comparing a value obtained by decrypting the encrypted data with the public key of the server 200 and a hash value of a value obtained by combining the server random number with the first data. have.

제2 제어 유닛(120)은, 암호화 데이터를 서버(200)의 공개키로 복호화한 값과, 서버 난수와 제1 데이터를 결합한 값의 해시값이 동일하다고 판단되면, 제1 데이터에 오류가 없다고 판단한다.If the second control unit 120 determines that the value obtained by decrypting the encrypted data with the public key of the server 200 and the hash value of the combined value of the server random number and the first data is the same, the second control unit 120 determines that there is no error in the first data. do.

제2 제어 유닛(120)은, 암호화 데이터를 서버(200)의 공개키로 복호화한 값과, 서버 난수와 제1 데이터를 결합한 값의 해시값이 상이하다고 판단되면, 제1 데이터에 오류가 있다고 판단한다.If it is determined that the value obtained by decrypting the encrypted data with the public key of the server 200 and the hash value of the combined value of the server random number and the first data is different, the second control unit 120 determines that the first data has an error. do.

제3 단계에서, 제2 제어 유닛(120)은, 제1 데이터에 대한 검증 결과와 제1 데이터를 상기 제1 대칭키로 암호화하여, 검증 데이터를 생성할 수 있다.In a third step, the second control unit 120 may generate verification data by encrypting the verification result of the first data and the first data with the first symmetric key.

또한, 제3 단계에서, 제2 제어 유닛(120)은, 제1 데이터에 대한 검증 결과와 제1 데이터를, 유닛 난수와 제1 대칭키로 암호화하여, 검증 데이터를 생성할 수도 있다.In addition, in the third step, the second control unit 120 may generate the verification data by encrypting the verification result and the first data with respect to the first data with the unit random number and the first symmetric key.

제2 제어 유닛(120)은, 제1 데이터에 대한 검증결과와, 제1 데이터의 해시값과, 유닛 난수를 결합하고, 결합된 값을 개인 대칭키1로 암호화하여, 검증 데이터를 생성할 수 있다. 이는, 메시지 인증 코드(MAC, Message Authentication Code)를 생성하는 방식이다.The second control unit 120 may combine the verification result for the first data, the hash value of the first data, the unit random number, and encrypt the combined value with the personal symmetric key 1 to generate the verification data. have. This is a method of generating a message authentication code (MAC).

도 5를 참조하면, 제3 단계에서, 제2 제어 유닛(120)은, N개의 1차 분할 데이터 각각에 대하여 검증을 수행하여, N개의 검증 데이터를 생성한다.Referring to FIG. 5, in a third step, the second control unit 120 performs verification on each of the N first pieces of divided data to generate N pieces of verification data.

제3 단계에서, 제2 제어 유닛(120)은, N개의 1차 분할 데이터 각각에 대하여 상술한 과정을 수행한다. 이에 따라, N개의 검증 데이터가 생성된다.In a third step, the second control unit 120 performs the above-described process for each of the N pieces of primary divided data. As a result, N pieces of verification data are generated.

제4 단계에서, 제2 제어 유닛(120)은, IVN의 데이터 프레임의 최대 크기에 기초하여, N개의 1차 분할 데이터에 대한 2차 분할 사이즈를 결정한다.In a fourth step, the second control unit 120 determines the secondary partition size for the N primary partitioned data, based on the maximum size of the data frame of the IVN.

예를 들어, 제2 제어 유닛(120)은, IVN의 데이터 프레임의 최대 크기를, 2차 분할 사이즈로 결정할 수 있다. 예를 들어, IVN이 CAN이고, CAN의 데이터 프레임의 최대 크기가 8바이트인 경우, 제2 제어 유닛(120)은, 2차 분할 사이즈를 8바이트로 결정할 수 있다.For example, the second control unit 120 may determine the maximum size of the data frame of the IVN as the secondary division size. For example, when IVN is CAN and the maximum size of the data frame of CAN is 8 bytes, the second control unit 120 may determine the secondary division size as 8 bytes.

제4 단계에서, 제2 제어 유닛(120)은, 서버(200)로부터 수신된 N개의 1차 분할 데이터 각각을, 2차 분할 사이즈에 따라 분할하여, 총 N*M 개의 2차 분할 데이터를 생성할 수 있다.In a fourth step, the second control unit 120 divides each of the N primary partition data received from the server 200 according to the secondary partition size to generate a total of N * M secondary partition data. can do.

제4 단계에서, 제2 제어 유닛(120)은, N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 제1 제어 유닛(110)에 전송할 수 있다.In a fourth step, the second control unit 120 may transmit N * M secondary divided data and N verify data to the first control unit 110.

도 6은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 재검증 단계를 설명하기 위한 도면이다.FIG. 6 is a diagram for describing a first revalidation step of an update method of a vehicle control unit according to an exemplary embodiment of the present invention.

도 6을 참조하면, 제1 제어 유닛(110)은, 제2 제어 유닛(120)이 전송하는 제1 데이터 및 검증 데이터를 수신할 수 있다. 예를 들어, 제1 제어 유닛(110)은, N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 수신할 수 있다.Referring to FIG. 6, the first control unit 110 may receive first data and verification data transmitted by the second control unit 120. For example, the first control unit 110 may receive N * M secondary split data and N verify data.

또한, 제3 제어 유닛은, 제2 제어 유닛(120)이 전송하는 제1 데이터와 암호화 데이터를 수신할 수 있다. 제3 제어 유닛이, 제2 제어 유닛(120)이 전송하는 제1 데이터와 암호화 데이터를 수신하는 단계는, 제1 재검증 단계라고 명명될 수 있다.In addition, the third control unit may receive first data and encrypted data transmitted by the second control unit 120. Receiving, by the third control unit, the first data and the encrypted data transmitted by the second control unit 120 may be referred to as a first revalidation step.

도면과 같이, 제3 제어 유닛이 2개인 경우, 제3 제어 유닛A(130a)와, 제3 제어 유닛B(130b)는, 각각 제1 데이터와 암호화 데이터를 수신할 수 있다.As shown in the figure, when there are two third control units, the third control unit A 130a and the third control unit B 130b can receive the first data and the encrypted data, respectively.

도 7은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.7 is a view for explaining a fifth step of the updating method of the vehicle control unit according to the embodiment of the present invention.

도 7을 참조하면, 제5 단계에서, 제1 제어 유닛(110)은, 제2 제어 유닛(120)의 검증 결과를 확인한다.Referring to FIG. 7, in a fifth step, the first control unit 110 confirms the verification result of the second control unit 120.

제1 제어 유닛(110)은, N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 순차적으로 수신한다.The first control unit 110 sequentially receives N * M secondary divided data and N verify data.

제1 제어 유닛(110)은, N*M 개의 2차 분할 데이터를 수신하면서, N개의 1차 분할 데이터를 복원한다.The first control unit 110 restores the N primary divided data while receiving the N * M secondary divided data.

제1 제어 유닛(110)은, 1차 분할 데이터 1개가 복원될 때마다 검증 데이터를 이용하여 제2 제어 유닛(120)의 검증 결과를 확인한다.The first control unit 110 confirms the verification result of the second control unit 120 using the verification data each time one primary division data is restored.

제1 제어 유닛(110)은, 검증 결과를 확인하기 위하여, 검증 확인 데이터를 생성한다.The first control unit 110 generates verification confirmation data in order to confirm the verification result.

제1 제어 유닛(110)은, 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 제1 데이터를 유닛 난수와 제1 대칭키(개인 대칭키1)로 암호화하여, 검증 확인 데이터(verification check data)를 생성한다.The first control unit 110 encrypts the virtual verification result and the first data, assuming that there is no error in the first data, using a unit random number and a first symmetric key (personal symmetric key 1) to verify verification data. data).

구체적으로, 제1 제어 유닛(110)은, 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과, 제1 데이터의 해시값, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키1로 암호화하여, 검증 확인 데이터를 생성할 수 있다.Specifically, the first control unit 110 combines a virtual verification result assuming that the first data is free of errors, a hash value of the first data, and a unit random number, and encrypts the combined value with a personal symmetric key 1. The verification confirmation data can be generated.

제1 제어 유닛(110)은, 검증 확인 데이터와 제2 제어 유닛(120)이 전송한 검증 데이터가 동일하면, 제2 제어 유닛(120)이 제1 데이터에 오류가 없다고 판단한 것으로 판단한다.When the verification confirmation data and the verification data transmitted by the second control unit 120 are the same, the first control unit 110 determines that the second control unit 120 determines that the first data has no error.

제1 제어 유닛(110)은, 검증 확인 데이터와 제2 제어 유닛(120)이 전송한 검증 데이터가 상이하면, 제2 제어 유닛(120)이 제1 데이터에 오류가 있다고 판단한 것으로 판단한다.When the verification confirmation data and the verification data transmitted by the second control unit 120 are different, the first control unit 110 determines that the second control unit 120 determines that the first data has an error.

제1 제어 유닛(110)은, N개의 1차 분할 데이터를 복원하면서, 복원되는 데이터를 이용하여 N개의 검증 확인 데이터를 생성할 수 있다. 제1 제어 유닛(110)은, 1개의 검증 확인 데이터가 생성될 때마다 이에 대응하는 검증 데이터와 비교하여 검증 결과를 확인할 수 있다.The first control unit 110 may generate N pieces of verification confirmation data by using the restored data while restoring the N primary partitioned data. The first control unit 110 may confirm the verification result by comparing the verification data corresponding to each time one piece of verification verification data is generated.

제1 제어 유닛(110)은, N 번의 검증 결과 확인 과정을 통하여, 최종적으로 제2 제어 유닛(120)의 검증 결과를 판단할 수 있다.The first control unit 110 may finally determine the verification result of the second control unit 120 through N verification result verification processes.

제1 제어 유닛(110)은, N개의 검증 데이터와 N개의 검증 확인 데이터가 상호 대응하는 것끼리 모두 동일하다고 판단되면, 제2 제어 유닛(120)이 제1 데이터에 오류가 없다고 판단한 것으로 판단한다.If it is determined that the N verification data and the N verification confirmation data correspond to each other, the first control unit 110 determines that the second control unit 120 has determined that the first data has no error. .

도면의 실시예와 달리 제3 제어 유닛이 없고, 제2 제어 유닛(120)과 제1 제어 유닛(110)만 존재하는 실시예에서, 제1 제어 유닛(110)은, 제2 제어 유닛(120)의 검증 결과에 기초하여, 업데이트 수행 여부를 결정한다. Unlike the embodiment of the drawing, in the embodiment in which there is no third control unit and only the second control unit 120 and the first control unit 110 exist, the first control unit 110 is the second control unit 120. Based on the verification result of), it is determined whether to perform the update.

이 경우, 제5 단계에서, 제1 제어 유닛(110)은, 제 2제어 유닛이 전송한 검증 데이터에 기초하여, 제1 데이터에 오류가 있는지 판단한다. 제1 제어 유닛(110)은, 제2 제어 유닛(120)의 검증 결과에 따라 제1 데이터에 오류가 없다고 판단되면, 제1 데이터에 대응하는 업데이트를 수행하고, 제1 데이터에 오류가 있다고 판단되면, 제1 데이터에 대응하는 업데이트를 중단한다.In this case, in the fifth step, the first control unit 110 determines whether there is an error in the first data based on the verification data transmitted by the second control unit. When the first control unit 110 determines that there is no error in the first data according to the verification result of the second control unit 120, the first control unit 110 performs an update corresponding to the first data and determines that there is an error in the first data. If so, the update corresponding to the first data is stopped.

구체적으로, 제5 단계에서, 제1 제어 유닛(110)은, 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 제1 데이터를 유닛 난수와 제1 대칭키(개인 대칭키1)로 암호화하여, 검증 확인 데이터(verification check data)를 생성하고, 검증 확인 데이터와 검증 데이터가 동일하면, 제1 데이터에 오류가 없다고 판단하고, 검증 확인 데이터와 검증 데이터가 상이하면, 제1 데이터에 오류가 있다고 판단한다.Specifically, in the fifth step, the first control unit 110 encrypts the virtual verification result and the first data with the unit random number and the first symmetric key (personal symmetric key 1) assuming that the first data has no error. To generate verification check data, and if the verification check data and the verification data are the same, it is determined that the first data has no error, and if the verification check data and the verification data are different, the first data has an error I judge it.

도 8 및 도 9는 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제2 및 3 재검증 단계를 설명하기 위한 도면이다.8 and 9 are diagrams for describing second and third revalidation steps of an update method of a vehicle control unit according to an exemplary embodiment of the present invention.

도 8을 참조하면, 본 발명에 따른 차량용 제어 유닛의 업데이트 방법은, 제3 제어 유닛이, 암호화 데이터 및 서버(200)의 공개키를 기초로 제1 데이터를 검증하여, 재검증 데이터를 생성하는 제2 재검증 단계; 및 제3 제어 유닛이, 재검증 데이터를, 상기 제1 제어 유닛(110)에 전송하는 제3 재검증 단계를 더 포함할 수 있다.Referring to FIG. 8, in the method for updating a vehicle control unit according to the present invention, the third control unit verifies the first data based on the encrypted data and the public key of the server 200, and generates revalidation data. A second revalidation step; And a third revalidating step, wherein the third control unit sends the revalidation data to the first control unit 110.

도면의 실시예와 같이 제3 제어 유닛이 복수인 경우, 제2 재검증 단계에서, 복수의 제3 제어 유닛 각각은, 암호화 데이터 및 서버(200)의 공개키를 기초로 제1 데이터를 검증하여, 재검증 데이터를 생성할 수 있다. 이 경우, 제3 재검증 단계에서, 복수의 제3 제어 유닛은, 각각 재검증 데이터를 전송한다.When there are a plurality of third control units as in the embodiment of the drawing, in the second re-verification step, each of the plurality of third control units verifies the first data based on the encrypted data and the public key of the server 200. In this case, revalidation data can be generated. In this case, in the third revalidation step, the plurality of third control units respectively transmit revalidation data.

도면의 실시예에서, 제3 제어 유닛A(130a)는, 제1 데이터를 검증하여 재검증 데이터A를 생성하고, 생성된 재검증 데이터A를 제1 제어 유닛(110)에 전송한다. 제3 제어 유닛B(130b)는, 제1 데이터를 검증하여 재검증 데이터B를 생성하고, 생성된 재검증 데이터B를 제1 제어 유닛(110)에 전송한다.In the embodiment of the figure, the third control unit A 130a verifies the first data to generate the revalidation data A, and transmits the generated revalidation data A to the first control unit 110. The third control unit B 130b verifies the first data to generate the revalidation data B, and transmits the generated revalidation data B to the first control unit 110.

도 9를 참조하면, 제3 제어 유닛A(130a) 및 제3 제어 유닛B(130b)는, 각각 재검증 데이터를 생성한다. 두 제어 유닛의 동작은 동일하므로, 이하 하나의 제어 유닛의 동작만 설명한다.9, the 3rd control unit A 130a and the 3rd control unit B 130b generate revalidation data, respectively. Since the operations of the two control units are identical, only the operation of one control unit will be described below.

제3 제어 유닛A(130a)는, 제2 제어 유닛(120)이 순차적으로 전송하는 N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 순차적으로 수신한다.The third control unit A 130a sequentially receives the N * M secondary divided data and the N verification data that the second control unit 120 sequentially transmits.

제3 제어 유닛A(130a)는, N*M 개의 2차 분할 데이터를 수신하면서, N개의 1차 분할 데이터를 복원한다.The third control unit A 130a restores the N primary divided data while receiving the N * M secondary divided data.

제3 제어 유닛A(130a)는, 1차 분할 데이터 1개가 복원될 때마다 이에 대한 재검증 데이터를 생성한다.The third control unit A 130a generates revalidation data for each one of the first divided data pieces.

예를 들어, 제3 제어 유닛A(130a)는, 1차 분할 데이터 1이 복원되는 경우, 재검증 데이터 1을 생성한다. 제3 제어 유닛A(130a)는, 1차 분할 데이터 2이 복원되는 경우, 재검증 데이터 2을 생성한다. 제3 제어 유닛A(130a)는, 이러한 과정을 N번 반복하여 N개의 재검증 데이터를 생성한다.For example, the third control unit A 130a generates revalidation data 1 when the primary divided data 1 is restored. The third control unit A 130a generates the revalidation data 2 when the primary divided data 2 is restored. The third control unit A 130a repeats this process N times to generate N revalidation data.

제3 제어 유닛A(130a)는, 암호화 데이터 및 서버(200)의 공개키를 기초로 상기 제1 데이터를 검증하고, 제1 데이터에 대한 검증 결과, 제1 데이터, 유닛 난수, 및 개인 대칭키A를 이용하여 재검증 데이터A를 생성한다.The third control unit A 130a verifies the first data based on the encrypted data and the public key of the server 200, and verifies the first data, the first data, the unit random number, and the personal symmetric key. Use A to generate revalidation data A.

구체적으로, 제3 제어 유닛A(130a)는, 제1 데이터에 대한 검증 결과, 제1 데이터의 해시값, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키A로 암호화하여, 재검증 데이터A를 생성할 수 있다.Specifically, the third control unit A 130a combines the verification result for the first data, the hash value of the first data, and the unit random number, encrypts the combined value with the personal symmetric key A, and re-validates the data. A can be generated.

도면의 실시예에서, 재검증 데이터A는, 재검증 데이터1 내지 N을 포함하는 것이다.In the embodiment of the figure, the revalidation data A includes the revalidation data 1 to N.

도 10 및 도 11은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.10 and 11 are diagrams for describing a fifth step of the updating method of the vehicle control unit according to the embodiment of the present invention.

제5 단계에서, 제1 제어 유닛(110)은, 재검증 데이터와 검증 데이터에 기초하여, 업데이트의 수행 여부를 결정할 수 있다.In a fifth step, the first control unit 110 may determine whether to perform the update based on the revalidation data and the verification data.

제3 제어 유닛이 하나인 실시예에서, 제1 제어 유닛(110)은, 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되고, 상기 재검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 업데이트를 수행하고, 상기 검증 데이터 및 상기 재검증 데이터 중 적어도 하나에 기초하여, 상기 제1 데이터에 오류가 있다고 판단되면, 상기 업데이트를 중단할 수 있다.In an embodiment in which there is one third control unit, the first control unit 110 determines that there is no error in the first data based on the verification data and an error in the first data based on the revalidation data. If not determined, the update may be performed, and if it is determined that there is an error in the first data based on at least one of the verification data and the re-validation data, the updating may be stopped.

구체적으로, 제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를, 상기 제1 대칭키로 암호화하여 제1 검증 확인 데이터를 생성한다. 또한, 제1 제어 유닛(110)은, 상기 가상의 검증 결과와 상기 제1 데이터를, 상기 제2 대칭키로 암호화하여 제2 검증 확인 데이터를 생성한다. 유닛 난수가 존재한다면, 제1 제어 유닛(110)은, 상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제1 대칭키로 암호화하여 상기 제1 검증 확인 데이터를 생성하고, 상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제2 대칭키로 암호화하여 상기 제2 검증 확인 데이터를 생성한다.Specifically, in the fifth step, the first control unit 110 encrypts the virtual verification result and the first data, which are assumed that there is no error in the first data, by encrypting the first data with the first symmetric key to confirm the first verification. Generate data. The first control unit 110 generates the second verification confirmation data by encrypting the virtual verification result and the first data with the second symmetric key. If a unit random number exists, the first control unit 110 encrypts the virtual verification result and the first data with the unit random number and the first symmetric key to generate the first verification confirmation data, and the virtual The second verification confirmation data is generated by encrypting the verification result and the first data with the unit random number and the second symmetric key.

이후, 제1 제어 유닛(110)은, 상기 제1 검증 확인 데이터와 상기 검증 데이터가 동일하고, 상기 제2 검증 확인 데이터와 상기 재검증 데이터가 동일하다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 수행한다. 제1 제어 유닛(110)은, 상기 제1 검증 확인 데이터와 상기 검증 데이터가 상이하거나, 상기 제2 검증 확인 데이터와 상기 재검증 데이터가 상이하다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 중단한다.Subsequently, when it is determined that the first verification confirmation data and the verification data are the same and the second verification confirmation data and the revalidation data are the same, the first control unit 110 updates the corresponding data. Perform The first control unit 110 stops updating corresponding to the first data when it is determined that the first verification confirmation data and the verification data are different or the second verification confirmation data and the revalidation data are different. do.

제3 제어 유닛이 복수인 실시예에서, 제1 제어 유닛(110)은, 상기 복수의 제3 제어 유닛 각각이 전송하는 복수의 재검증 데이터를 수신하고, 상기 검증 데이터 및 상기 복수의 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단한다.In an embodiment where there are a plurality of third control units, the first control unit 110 receives a plurality of revalidation data transmitted by each of the plurality of third control units, and the verification data and the plurality of revalidation data. Judgment of a plurality of verification results indicated by each is made.

구체적으로, 제5 단계에서, 제1 제어 유닛(110)은, 상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를, 상기 복수의 개인 대칭키로 암호화하여, 상기 검증 데이터 및 복수의 재검증 데이터 각각에 대응하는 복수의 검증 확인 데이터를 생성한다.Specifically, in the fifth step, the first control unit 110 encrypts the virtual verification result and the first data, which are assumed that there is no error in the first data, by encrypting the plurality of personal symmetric keys, thereby verifying the verification data. And a plurality of verification confirmation data corresponding to each of the plurality of revalidation data.

제1 제어 유닛(110)은, 상기 복수의 검증 확인 데이터 중 상기 검증 데이터에 대응하는 것과, 상기 검증 데이터가 동일한 경우, 상기 검증 데이터가 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단한다.The first control unit 110 determines that the verification data indicates a verification result that there is no error in the first data when the verification data is the same as the verification data among the plurality of verification confirmation data.

제1 제어 유닛(110)은, 상기 복수의 검증 확인 데이터와 상기 복수의 재검증 데이터를, 상호 대응하는 데이터끼리 비교하여, 대응하는 검증 확인 데이터와 동일한 재검증 데이터는, 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단한다.The first control unit 110 compares the plurality of verification confirmation data and the plurality of revalidation data with mutually corresponding data, so that the revalidation data that is the same as the corresponding verification confirmation data is incorrect in the first data. It is judged that there is no verification result.

제1 제어 유닛(110)은, 상기 복수의 검증 결과 중 상기 제1 데이터에 오류가 없다는 검증 결과가 이외의 검증 결과보다 많거나, 상기 제1 데이터에 오류가 없다는 검증 결과의 수가 기설정된 기준값보다 크다고 판단되면, 업데이트를 수행한다. 기준값은, 제1 제어 유닛(110)에 저장된 값이다.The first control unit 110 has more than a verification result other than the verification result that the first data has no error among the plurality of verification results, or the number of verification results that there is no error in the first data than a preset reference value. If it is determined to be large, perform update. The reference value is a value stored in the first control unit 110.

도 10을 참조하면, 제5 단계에서, 제1 제어 유닛(110)은, 재검증 데이터A 및 재검증 데이터B에 기초하여, 제3 제어 유닛A(130a) 및 제3 제어 유닛B(130b)의 검증 결과를 확인할 수 있다.Referring to FIG. 10, in a fifth step, the first control unit 110 is based on the revalidation data A and the revalidation data B, and the third control unit A 130a and the third control unit B 130b. You can check the verification result.

제1 제어 유닛(110)은, 제2 제어 유닛(120)으로부터 수신된 제1 데이터의 해시값, 제1 데이터에 오류가 없다고 가정한 가상의 검증 결과, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키A로 암호화하여 제2 검증 확인 데이터A를 생성할 수 있다.The first control unit 110 combines the hash value of the first data received from the second control unit 120, the virtual verification result assuming that the first data has no error, and the unit random number, and the combined value. May be encrypted with a private symmetric key A to generate a second verification confirmation data A.

제1 제어 유닛(110)은, 제2 검증 확인 데이터A를, 재검증 데이터A와 비교하고, 제2 검증 확인 데이터A와 재검증 데이터A가 동일한 경우, 제3 제어 유닛A(130a)가 제1 데이터에 오류가 없다고 판단한 것으로 판단한다. 제1 제어 유닛(110)은, 제2 검증 확인 데이터A와 재검증 데이터A가 상이한 경우, 제3 제어 유닛A(130a)가 제1 데이터에 오류가 있다고 판단한 것으로 판단한다.The first control unit 110 compares the second verification confirmation data A with the re-validation data A, and when the second verification confirmation data A and the re-validation data A are the same, the third control unit A 130a is the first. 1 It is judged that the data is judged that there is no error. The first control unit 110 determines that the third control unit A 130a determines that the first data has an error when the second verification confirmation data A and the revalidation data A are different.

제1 제어 유닛(110)은, 제2 제어 유닛(120)으로부터 수신된 제1 데이터의 해시값, 제1 데이터에 오류가 없다고 가정한 가상의 검증 결과, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키B로 암호화하여 제2 검증 확인 데이터B를 생성할 수 있다.The first control unit 110 combines the hash value of the first data received from the second control unit 120, the virtual verification result assuming that the first data has no error, and the unit random number, and the combined value. May be encrypted with a private symmetric key B to generate a second verification confirmation data B.

제1 제어 유닛(110)은, 제2 검증 확인 데이터B를, 재검증 데이터B와 비교하고, 제2 검증 확인 데이터B와 재검증 데이터B가 동일한 경우, 제3 제어 유닛B(130b)가 제1 데이터에 오류가 없다고 판단한 것으로 판단한다. 제1 제어 유닛(110)은, 제2 검증 확인 데이터B와 재검증 데이터B가 상이한 경우, 제3 제어 유닛B(130b)가 제1 데이터에 오류가 있다고 판단한 것으로 판단한다.The first control unit 110 compares the second verification confirmation data B with the revalidation data B, and when the second verification confirmation data B and the revalidation data B are the same, the third control unit B 130b is the first. 1 It is judged that the data is judged that there is no error. The first control unit 110 determines that the third control unit B 130b determines that the first data has an error when the second verification confirmation data B and the revalidation data B are different.

도 11을 참조하면, 제1 제어 유닛(110)은, 복수의 검증 결과 중, 제1 데이터에 오류가 없다고 판단한 검증 결과가 그외의 검증 결과보다 많은 경우, 제1 데이터를 이용하여 업데이트를 수행할 수 있다.Referring to FIG. 11, when the verification result determined that there is no error in the first data among a plurality of verification results is greater than other verification results, the first control unit 110 may perform the update using the first data. Can be.

도 12은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버(200)와 제어 유닛들을 나타내는 도면이다.12 is a diagram illustrating a server 200 and a control unit for performing a method of updating a vehicle control unit according to an exemplary embodiment of the present invention.

차량(100)은, 서버(200)와 통신을 수행하는 제4 제어 유닛(140)을 더 구비할 수 있다.The vehicle 100 may further include a fourth control unit 140 that communicates with the server 200.

이 경우, 상기 제1 제어 유닛(110), 제2 제어 유닛(120), 제3 제어 유닛(130), 및 제4 제어 유닛(140)은, 상기 차량의 IVN으로 연결될 수 있다.In this case, the first control unit 110, the second control unit 120, the third control unit 130, and the fourth control unit 140 may be connected to the vehicle's IVN.

제4 제어 유닛(140)은, 서버(200)로부터 데이터를 수신하는 제어 유닛이고, 개인 대칭키 4를 제1 유닛과 공유한다.The fourth control unit 140 is a control unit that receives data from the server 200 and shares the personal symmetric key 4 with the first unit.

상기 제1 단계에서, 상기 서버(200)는, 상기 제1 데이터와 상기 암호화 데이터를 상기 제2 제어 유닛(120)과 제4 제어 유닛(140)으로 전송한다.In the first step, the server 200 transmits the first data and the encrypted data to the second control unit 120 and the fourth control unit 140.

상기 제2 단계에서, 상기 제2 제어 유닛(120)과 제4 제어 유닛(140)은, 상기 제1 데이터와 상기 암호화 데이터를 수신한다.In the second step, the second control unit 120 and the fourth control unit 140 receive the first data and the encrypted data.

상기 제3 단계에서, 상기 제2 제어 유닛(120)은, 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제1 데이터를 검증하여, 제1 검증 데이터를 생성하고, 상기 제4 제어 유닛(140)은, 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제1 데이터를 검증하여, 제2 검증 데이터를 생성한다.In the third step, the second control unit 120 verifies the first data based on the encrypted data and the public key of the server 200, generates first verification data, and generates the fourth control. The unit 140 verifies the first data based on the encrypted data and the public key of the server 200 to generate second verification data.

상기 제4 단계에서, 상기 제2 제어 유닛(120)은, 상기 제1 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송하고, 상기 제4 제어 유닛(140)은, 상기 제2 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송한다.In the fourth step, the second control unit 120 transmits the first verification data, the first data, and the encrypted data to the IVN of the vehicle, and the fourth control unit 140 And transmit the second verification data, the first data, and the encrypted data to an IVN of the vehicle.

상기 제1 재검증 단계에서, 상기 제3 제어 유닛(130)은, 상기 제2 제어 유닛(120)이 전송한 제1 데이터(이하 '제2 데이터'라 함)와 암호화 데이터(이하 '제2 암호화 데이터'라 함)를 수신하고, 상기 제4 제어 유닛(140)이 전송한 제1 데이터(이하 '제3 데이터'라 함)와 암호화 데이터(이하 '제3 암호화 데이터'라 함)를 수신한다. 상기 제2 제어 유닛(120)은, 상기 제3 데이터 및 제3 암호화 데이터를 수신한다. 상기 제4 제어 유닛(140)은, 상기 제2 데이터 및 제2 암호화 데이터를 수신한다.In the first re-verification step, the third control unit 130 may include first data (hereinafter referred to as 'second data') and encrypted data (hereinafter, referred to as 'second data') transmitted by the second control unit 120. Encrypted data ') and first data (hereinafter referred to as' third data') and encrypted data (hereinafter referred to as' third encrypted data ') transmitted by the fourth control unit 140. do. The second control unit 120 receives the third data and the third encrypted data. The fourth control unit 140 receives the second data and the second encrypted data.

상기 제2 재검증 단계에서, 상기 제3 제어 유닛(130)은, 상기 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제1 재검증 데이터를 생성하고, 상기 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제2 재검증 데이터를 생성하고, 상기 제2 제어 유닛(120)은, 상기 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제3 재검증 데이터를 생성하고, 상기 제4 제어 유닛(140)은, 상기 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제4 재검증 데이터를 생성한다.In the second re-verification step, the third control unit 130 verifies the second data based on the second encrypted data and the public key of the server 200 to generate first re-validation data. And verify the third data based on the third encrypted data and the public key of the server 200 to generate second re-validation data, and the second control unit 120 performs the third encryption. Verifying the third data based on the data and the public key of the server 200 to generate third revalidation data, and the fourth control unit 140 generates the second encrypted data and the server 200. Generate the fourth re-verification data by verifying the second data based on the public key.

상기 제3 재검증 단계에서, 상기 제3 제어 유닛(130)은, 상기 제1 재검증 데이터 및 제2 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제2 제어 유닛(120)은, 상기 제3 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제4 제어 유닛(140)은, 상기 제4 재검증 데이터를 상기 제1 제어 유닛(110)에 전송한다.In the third revalidation step, the third control unit 130 transmits the first revalidation data and the second revalidation data to the first control unit 110, and the second control unit 120. ) Transmits the third revalidation data to the first control unit 110, and the fourth control unit 140 transmits the fourth revalidation data to the first control unit 110. .

상기 제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터에 기초하여, 상기 제2 데이터 또는 상기 제3 데이터에 대응하는 업데이트의 수행 여부를 결정한다.In the fifth step, the first control unit 110, based on the first and second verification data and the first to fourth revalidation data, of the update corresponding to the second data or the third data. Determine whether to do it.

도 13은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 단계 및 제2 단계를 설명하기 위한 도면이다.13 is a view for explaining the first step and the second step of the update method of the vehicle control unit according to the embodiment of the present invention.

제1 단계에서, 서버(200)는, 제1 데이터와 암호화 데이터를 제2 제어 유닛(120)과 제4 제어 유닛(140)으로 전송한다.In a first step, the server 200 transmits the first data and the encrypted data to the second control unit 120 and the fourth control unit 140.

이 경우에도, 서버(200)는, 제1 데이터에 대한 1차 분할을 수행한다.Even in this case, the server 200 performs the first division on the first data.

제1 데이터를 제2 제어 유닛(120) 뿐만 아니라, 제4 제어 유닛(140)도 수신하므로, 데이터의 오류 발생을 검출할 가능성이 향상될 수 있다.Since not only the second control unit 120 but also the fourth control unit 140 are received, the possibility of detecting an error of the data can be improved.

제2 단계에서, 상기 제2 제어 유닛(120)과 제4 제어 유닛(140)은, 상기 제1 데이터와 상기 암호화 데이터를 수신한다.In a second step, the second control unit 120 and the fourth control unit 140 receive the first data and the encrypted data.

도 14 및 도 15은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제3 단계 및 제4 단계를 설명하기 위한 도면이다.14 and 15 are diagrams for describing third and fourth steps of an updating method of a vehicle control unit according to an embodiment of the present invention.

도 15를 참조하면, 제3 단계에서, 상기 제2 제어 유닛(120)은, 제2 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제1 검증 데이터를 생성하고, 상기 제4 제어 유닛(140)은, 제3 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제2 검증 데이터를 생성한다.Referring to FIG. 15, in a third step, the second control unit 120 verifies the second data based on the second encrypted data and the public key of the server 200 to verify the first verification data. The fourth control unit 140 generates the second verification data by verifying the third data based on the third encrypted data and the public key of the server 200.

본 발명에서 제2 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제2 제어 유닛(120)이 수신하고 전달하는 제1 데이터를 의미한다.In the present invention, the second data refers to first data that the second control unit 120 receives and transmits when the fourth control unit 140 exists.

본 발명에서 제3 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제4 제어 유닛(140)이 수신하고 전달하는 제1 데이터를 의미한다.In the present invention, the third data refers to first data that the fourth control unit 140 receives and transmits when the fourth control unit 140 exists.

제2 데이터와 제3 데이터는, 원칙적으로 제1 데이터와 동일한 데이터이지만, 서버(200)가 데이터를 전송하는 과정에서 데이터가 손실될 수 있고, 제2 제어 유닛(120)이나 제4 제어 유닛(140)이 공격 다하여 오류가 발생하는 경우 수신된 제1 데이터를 손상시킬 수 있으므로, 본 발명에서는, 제1 데이터를 수신하고 전달하는 주체에 따라 구분한다.The second data and the third data are, in principle, the same data as the first data, but data may be lost while the server 200 transmits the data, and the second control unit 120 or the fourth control unit ( If the error occurs due to the attack 140, the received first data may be damaged. In the present invention, the first data may be classified according to a subject that receives and transmits the first data.

본 발명에서 제2 암호화 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제2 제어 유닛(120)이 수신하고 전달하는 암호화 데이터를 의미한다.In the present invention, the second encrypted data refers to encrypted data that the second control unit 120 receives and transmits when the fourth control unit 140 exists.

본 발명에서 제3 암호화 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제4 제어 유닛(140)이 수신하고 전달하는 암호화 데이터를 의미한다.In the present invention, the third encrypted data means encrypted data that the fourth control unit 140 receives and transmits when the fourth control unit 140 exists.

제2 암호화 데이터와 제3 암호화 데이터는, 원칙적으로 암호화 데이터와 동일한 데이터이지만, 서버(200)가 암호화 데이터를 전송하는 과정에서 암호화 데이터가 손실될 수 있고, 제2 제어 유닛(120)이나 제4 제어 유닛(140)이 공격 다하여 오류가 발생하는 경우 수신된 암호화 데이터를 손상시킬 수 있으므로, 본 발명에서는, 암호화 데이터를 수신하고 전달하는 주체에 따라 구분한다.Although the second encrypted data and the third encrypted data are, in principle, the same data as the encrypted data, the encrypted data may be lost while the server 200 transmits the encrypted data, and thus the second control unit 120 or the fourth encrypted data may be lost. In the present invention, since the control unit 140 may damage the received encrypted data when an error occurs due to the attack, the control unit 140 classifies the encrypted data according to the subject receiving and transmitting the encrypted data.

제2 제어 유닛(120)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.The second control unit 120 may determine that there is no error in the second data when the value obtained by decrypting the second encrypted data with the public key of the server 200 is equal to the hash value of the second data.

제2 제어 유닛(120)과 서버(200)가 서버 난수를 공유하는 경우, 제2 제어 유닛(120)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.When the second control unit 120 and the server 200 share a server random number, the second control unit 120 decrypts the second encrypted data with the public key of the server 200, and the value of the second control unit 120 is different from the second data. If the server random number is equal to the hash value of the combined value, it may be determined that there is no error in the second data.

제4 제어 유닛(140)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.The fourth control unit 140 may determine that the third data has no error when the value obtained by decrypting the third encrypted data with the public key of the server 200 is equal to the hash value of the third data.

제4 제어 유닛(140)과 서버(200)가 서버 난수를 공유하는 경우, 제4 제어 유닛(140)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.When the fourth control unit 140 and the server 200 share the server random number, the fourth control unit 140 decodes the third encrypted data with the public key of the server 200, and the value of the third data is different from the third data. If the server random number is equal to the hash value of the combined value, it may be determined that there is no error in the third data.

제2 제어 유닛(120)은, 제2 데이터에 대한 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화하여 제1 검증 데이터를 생성할 수 있다.The second control unit 120 may generate the first verification data by combining the verification result of the second data, the unit random number and the hash value of the second data, and encrypting the combined value with the personal symmetric key 1. .

제4 제어 유닛(140)은, 제3 데이터에 대한 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화하여 제2 검증 데이터를 생성할 수 있다.The fourth control unit 140 may generate the second verification data by combining the verification result of the third data, the unit random number and the hash value of the third data, and encrypting the combined value with the personal symmetric key 4. .

도 14를 참조하면, 제4 단계에서, 상기 제2 제어 유닛(120)은, 상기 제1 검증 데이터, 상기 제2 데이터, 및 상기 제2 암호화 데이터를, 상기 차량의 IVN으로 전송하고, 상기 제4 제어 유닛(140)은, 상기 제2 검증 데이터, 상기 제3 데이터, 및 상기 제3 암호화 데이터를, 상기 차량의 IVN으로 전송한다.Referring to FIG. 14, in a fourth step, the second control unit 120 transmits the first verification data, the second data, and the second encrypted data to an IVN of the vehicle. The fourth control unit 140 transmits the second verification data, the third data, and the third encrypted data to the IVN of the vehicle.

도 16은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 재검증 단계를 설명하기 위한 도면이다.FIG. 16 is a diagram for describing a first revalidation step of an update method of a vehicle control unit according to an embodiment of the present invention.

도 16을 참조하면, 제1 재검증 단계에서, 제3 제어 유닛(130)은, 제2 제어 유닛(120)이 전송한 제2 데이터와 제2 암호화 데이터를 수신한다.Referring to FIG. 16, in the first revalidation step, the third control unit 130 receives the second data and the second encrypted data transmitted by the second control unit 120.

제3 제어 유닛(130)은, 상기 제4 제어 유닛(140)이 전송한 제3 데이터와 제3 암호화 데이터를 수신한다.The third control unit 130 receives the third data and the third encrypted data transmitted by the fourth control unit 140.

상기 제2 제어 유닛(120)은, 상기 제3 데이터 및 제3 암호화 데이터를 수신한다.The second control unit 120 receives the third data and the third encrypted data.

상기 제4 제어 유닛(140)은, 상기 제2 데이터 및 제2 암호화 데이터를 수신한다.The fourth control unit 140 receives the second data and the second encrypted data.

제1 제어 유닛(110)은, 제2 데이터, 제3 데이터, 제1 검증 데이터, 및 제2 검증 데이터를 수신한다.The first control unit 110 receives the second data, the third data, the first verification data, and the second verification data.

도 17 및 도 18은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제2 및 3 재검증 단계를 설명하기 위한 도면이다.17 and 18 are diagrams for describing second and third revalidation steps of an update method of a vehicle control unit according to an exemplary embodiment of the present invention.

도 18을 참조하면, 제2 재검증 단계가 나타난다.Referring to FIG. 18, a second revalidation step is shown.

도 18의 (a)를 참조하면, 제2 제어 유닛(120)이 제3 데이터에 대한 검증을 수행하여, 제3 재검증 데이터를 생성하는 과정이 나타난다.Referring to FIG. 18A, a process in which the second control unit 120 performs verification on the third data to generate third re-validation data is shown.

제2 제어 유닛(120)은, 상기 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제3 재검증 데이터를 생성한다.The second control unit 120 verifies the third data based on the third encrypted data and the public key of the server 200 to generate third revalidation data.

제2 제어 유닛(120)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.When the value obtained by decrypting the third encrypted data with the public key of the server 200 is equal to the hash value of the third data, the second control unit 120 may determine that the third data has no error.

제2 제어 유닛(120)과 서버(200)가 서버 난수를 공유하는 경우, 제2 제어 유닛(120)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.When the second control unit 120 and the server 200 share a server random number, the second control unit 120 decrypts the third encrypted data with the public key of the server 200, and the value of the third data is determined by the third data. If the server random number is equal to the hash value of the combined value, it may be determined that there is no error in the third data.

제2 제어 유닛(120)은, 제3 데이터에 대한 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화하여 제3 재검증 데이터를 생성할 수 있다.The second control unit 120 may generate the third revalidation data by combining the verification result of the third data, the unit random number and the hash value of the third data, and encrypting the combined value with the personal symmetric key 1. have.

도 18의 (b)를 참조하면, 제4 제어 유닛(140)이 제2 데이터에 대한 검증을 수행하여, 제4 재검증 데이터를 생성하는 과정이 나타난다.Referring to FIG. 18B, a process of generating the fourth re-validation data by the fourth control unit 140 by performing verification on the second data is shown.

제4 제어 유닛(140)은, 상기 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제4 재검증 데이터를 생성한다.The fourth control unit 140 verifies the second data based on the second encrypted data and the public key of the server 200 to generate fourth re-validation data.

제4 제어 유닛(140)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.The fourth control unit 140 may determine that the second data has no error when the value obtained by decrypting the second encrypted data with the public key of the server 200 is equal to the hash value of the second data.

제4 제어 유닛(140)과 서버(200)가 서버 난수를 공유하는 경우, 제4 제어 유닛(140)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.When the fourth control unit 140 and the server 200 share a server random number, the fourth control unit 140 decrypts the second encrypted data with the public key of the server 200, and the value of the second data is determined by the second data. If the server random number is equal to the hash value of the combined value, it may be determined that there is no error in the second data.

제4 제어 유닛(140)은, 제2 데이터에 대한 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화하여 제4 재검증 데이터를 생성할 수 있다.The fourth control unit 140 may generate the fourth re-validation data by combining the verification result of the second data, the unit random number and the hash value of the second data, and encrypting the combined value with the personal symmetric key 4. have.

도 18의 (c)를 참조하면, 제3 제어 유닛(130)이 제2 및 3 데이터에 대한 검증을 수행하여, 제1 및 2 재검증 데이터를 생성하는 과정이 나타난다.Referring to FIG. 18C, a process in which the third control unit 130 performs verification on the second and third data to generate the first and second revalidation data is shown.

제3 제어 유닛(130)은, 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제1 재검증 데이터를 생성한다.The third control unit 130 verifies the second data based on the second encrypted data and the public key of the server 200 to generate first re-validation data.

제3 제어 유닛(130)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.The third control unit 130 may determine that the second data has no error when the value obtained by decrypting the second encrypted data with the public key of the server 200 is equal to the hash value of the second data.

제3 제어 유닛(130)과 서버(200)가 서버 난수를 공유하는 경우, 제3 제어 유닛(130)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.When the third control unit 130 and the server 200 share the server random number, the third control unit 130 decodes the second encrypted data with the public key of the server 200, and the value of the second data is determined by the second data. If the server random number is equal to the hash value of the combined value, it may be determined that there is no error in the second data.

제3 제어 유닛(130)은, 제2 데이터에 대한 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화하여 제1 재검증 데이터를 생성할 수 있다.The third control unit 130 may generate the first revalidation data by combining the verification result of the second data, the unit random number and the hash value of the second data, and encrypting the combined value with the personal symmetric key 3. have.

제3 제어 유닛(130)은, 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제2 재검증 데이터를 생성한다.The third control unit 130 verifies the third data based on the third encrypted data and the public key of the server 200 to generate second re-validation data.

제3 제어 유닛(130)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.The third control unit 130 may determine that there is no error in the third data when the value obtained by decrypting the third encrypted data with the public key of the server 200 is equal to the hash value of the third data.

제3 제어 유닛(130)과 서버(200)가 서버 난수를 공유하는 경우, 제3 제어 유닛(130)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.When the third control unit 130 and the server 200 share the server random number, the third control unit 130 has a value obtained by decrypting the third encrypted data with the public key of the server 200. If the server random number is equal to the hash value of the combined value, it may be determined that there is no error in the third data.

제3 제어 유닛(130)은, 제3 데이터에 대한 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화하여 제2 재검증 데이터를 생성할 수 있다.The third control unit 130 may generate the second revalidation data by combining the verification result of the third data, the unit random number and the hash value of the third data, and encrypting the combined value with the personal symmetric key 3. have.

도 17을 참조하면, 제3 재검증 단계에서, 상기 제3 제어 유닛(130)은, 상기 제1 재검증 데이터 및 제2 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제2 제어 유닛(120)은, 상기 제3 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제4 제어 유닛(140)은, 상기 제4 재검증 데이터를 상기 제1 제어 유닛(110)에 전송한다.Referring to FIG. 17, in a third re-validation step, the third control unit 130 transmits the first re-validation data and the second re-validation data to the first control unit 110, and the first re-validation data. The second control unit 120 transmits the third revalidation data to the first control unit 110, and the fourth control unit 140 sends the fourth revalidation data to the first control unit ( 110).

제1 제어 유닛(110)은, 제1 내지 4 재검증 데이터를 수신한다.The first control unit 110 receives the first to fourth revalidation data.

도 19은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.19 is a view for explaining a fifth step of the updating method of the vehicle control unit according to the embodiment of the present invention.

제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터에 기초하여, 상기 제2 데이터 또는 상기 제3 데이터에 대응하는 업데이트의 수행 여부를 결정한다.In a fifth step, the first control unit 110 performs an update corresponding to the second data or the third data based on the first and second verification data and the first to fourth revalidation data. Determine whether or not.

제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단한다.In a fifth step, the first control unit 110 determines a plurality of verification results represented by each of the first and second verification data and the first to fourth revalidation data.

제1 제어 유닛(110)은, 제2 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화한다. 이에 따라 생성된 값(이하 '제1 확인 데이터'라 함.)은, 제1 검증 데이터에 대응하는 검증 확인 데이터이다. The first control unit 110 combines the unit random number and the hash value of the second data, and encrypts the combined value with the personal symmetric key 1 as a result of the virtual verification assuming that there is no error in the second data. The value generated according to this (hereinafter referred to as 'first verification data') is verification verification data corresponding to the first verification data.

제1 제어 유닛(110)은, 제1 확인 데이터와 제1 검증 데이터가 동일하다고 판단되면, 제1 검증 데이터가 제2 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제2 제어 유닛(120)이 제2 데이터에 오류가 없다고 판단하였음을 나타낸다.When it is determined that the first verification data and the first verification data are the same, the first control unit 110 may determine that the first verification data indicates a verification result that there is no abnormality in the second data. This indicates that the second control unit 120 has determined that there is no error in the second data.

제1 제어 유닛(110)은, 제2 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화한다. 이에 따라 생성된 값(이하 '제2 확인 데이터'라 함.)은, 제1 재검증 데이터에 대응하는 검증 확인 데이터이다. The first control unit 110 combines the unit random number, the hash value of the second data, and encrypts the combined value with the personal symmetric key 3 as a result of the virtual verification assuming that there is no error in the second data. The value generated according to this (hereinafter referred to as 'second confirmation data') is verification confirmation data corresponding to the first revalidation data.

제1 제어 유닛(110)은, 제2 확인 데이터와 제1 재검증 데이터가 동일하다고 판단되면, 제1 재검증 데이터가 제2 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제3 제어 유닛(130)이 제2 데이터에 오류가 없다고 판단하였음을 나타낸다.When it is determined that the second confirmation data and the first revalidation data are the same, the first control unit 110 may determine that the first revalidation data indicates a verification result that there is no abnormality in the second data. This indicates that the third control unit 130 has determined that there is no error in the second data.

제1 제어 유닛(110)은, 제2 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화한다. 이에 따라 생성된 값(이하 '제3 확인 데이터'라 함.)은, 제4 재검증 데이터에 대응하는 검증 확인 데이터이다. The first control unit 110 combines the unit random number and the hash value of the second data, and encrypts the combined value with the personal symmetric key 4 as a result of the virtual verification assuming that there is no error in the second data. The value thus generated (hereinafter referred to as 'third verification data') is verification verification data corresponding to the fourth revalidation data.

제1 제어 유닛(110)은, 제3 확인 데이터와 제4 재검증 데이터가 동일하다고 판단되면, 제4 재검증 데이터가 제2 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제4 제어 유닛(140)이 제2 데이터에 오류가 없다고 판단하였음을 나타낸다.When it is determined that the third confirmation data and the fourth re-validation data are the same, the first control unit 110 may determine that the fourth re-validation data indicates a verification result that there is no abnormality in the second data. This indicates that the fourth control unit 140 has determined that there is no error in the second data.

제1 제어 유닛(110)은, 제3 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화한다. 이에 따라 생성된 값(이하 '제4 확인 데이터'라 함.)은, 제2 검증 데이터에 대응하는 검증 확인 데이터이다. The first control unit 110 combines the unit random number and the hash value of the third data, and encrypts the combined value with the personal symmetric key 4 as a result of the virtual verification assuming that the third data has no error. The value generated according to this (hereinafter referred to as 'fourth verification data') is verification verification data corresponding to the second verification data.

제1 제어 유닛(110)은, 제4 확인 데이터와 제2 검증 데이터가 동일하다고 판단되면, 제2 검증 데이터가 제3 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제4 제어 유닛(140)이 제3 데이터에 오류가 없다고 판단하였음을 나타낸다.When it is determined that the fourth verification data and the second verification data are the same, the first control unit 110 may determine that the second verification data indicates a verification result that there is no abnormality in the third data. This indicates that the fourth control unit 140 has determined that there is no error in the third data.

제1 제어 유닛(110)은, 제3 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화한다. 이에 따라 생성된 값(이하 '제5 확인 데이터'라 함.)은, 제2 재검증 데이터에 대응하는 검증 확인 데이터이다. The first control unit 110 combines the unit random number, the hash value of the third data, and encrypts the combined value with the personal symmetric key 3 as a result of the virtual verification assuming that the third data has no error. The value generated according to this (hereinafter referred to as '5th verification data') is verification confirmation data corresponding to the second revalidation data.

제1 제어 유닛(110)은, 제5 확인 데이터와 제2 재검증 데이터가 동일하다고 판단되면, 제2 재검증 데이터가 제3 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제3 제어 유닛(130)이 제3 데이터에 오류가 없다고 판단하였음을 나타낸다.When it is determined that the fifth confirmation data and the second re-validation data are the same, the first control unit 110 may determine that the second re-validation data indicates a verification result that there is no abnormality in the third data. This indicates that the third control unit 130 has determined that there is no error in the third data.

제1 제어 유닛(110)은, 제3 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화한다. 이에 따라 생성된 값(이하 '제6 확인 데이터'라 함.)은, 제3 재검증 데이터에 대응하는 검증 확인 데이터이다. The first control unit 110 combines the unit random number, the hash value of the third data, and encrypts the combined value with the personal symmetric key 1 as a result of the virtual verification assuming that the third data has no error. The value generated according to this (hereinafter referred to as 'sixth confirmation data') is verification confirmation data corresponding to the third revalidation data.

제1 제어 유닛(110)은, 제6 확인 데이터와 제3 재검증 데이터가 동일하다고 판단되면, 제3 재검증 데이터가 제3 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제2 제어 유닛(120)이 제3 데이터에 오류가 없다고 판단하였음을 나타낸다.When it is determined that the sixth confirmation data and the third revalidation data are the same, the first control unit 110 may determine that the third revalidation data indicates a verification result that there is no abnormality in the third data. This indicates that the second control unit 120 has determined that there is no error in the third data.

제1 제어 유닛(110)은, 제2 데이터와 제3 데이터가 동일한지 판단한다.The first control unit 110 determines whether the second data and the third data are the same.

제1 제어 유닛(110)은, 상기 제2 데이터와 제3 데이터가 동일하다고 판단되는 경우, 상기 복수의 검증 결과 중 상기 제2 데이터나 제3 데이터에 오류가 없다는 검증 결과가, 이외의 검증 결과보다 많은지 판단한다. 제1 제어 유닛(110)은, 상기 제2 데이터나 제3 데이터에 오류가 없다는 검증 결과가, 이외의 검증 결과보다 많다고 판단되면, 상기 제2 데이터나 제3 데이터를 사용하여 업데이트를 수행한다. When it is determined that the second data and the third data are the same, the first control unit 110 verifies that there is no error in the second data or the third data among the plurality of verification results. Determine if there are more. The first control unit 110 performs an update using the second data or the third data when it is determined that the verification result that there is no error in the second data or the third data is larger than other verification results.

제1 제어 유닛(110)은, 상기 제2 데이터와 제3 데이터가 동일하지 않다고 판단되는 경우, 상기 제2 데이터와 제3 데이터 중, 오류가 없다고 판단된 검증 결과가 더 많은 데이터를 선택하고, 선택된 데이터를 사용하여 업데이트를 수행한다.When it is determined that the second data and the third data are not the same, the first control unit 110 selects more data among the second data and the third data, the verification result of which is determined that there is no error, Perform the update using the selected data.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 상기 컴퓨터는 프로세서 또는 제어부를 포함할 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The present invention described above can be embodied as computer readable codes on a medium in which a program is recorded. The computer-readable medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable media include hard disk drives (HDDs), solid state disks (SSDs), silicon disk drives (SDDs), ROMs, RAMs, CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, and the like. This also includes implementations in the form of carrier waves (eg, transmission over the Internet). The computer may also include a processor or a controller. Accordingly, the above detailed description should not be construed as limiting in all aspects and should be considered as illustrative. The scope of the invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the invention are included in the scope of the invention.

100 : 차량
200 : 서버
110 : 제1 제어 유닛
120 : 제2 제어 유닛
100: vehicle
200: server
110: first control unit
120: second control unit

Claims (20)

서버가,
차량에 구비된 제1 제어 유닛의 소프트웨어를 업데이트하기 위한 데이터(이하 '제1 데이터'라 함)와, 상기 제1 데이터를 상기 서버의 개인키(private key)로 암호화하여 생성되는 데이터(이하 '암호화 데이터'라 함)를,
상기 차량에 구비된 제2 제어 유닛으로 전송하는 제1 단계;
상기 제2 제어 유닛이, 상기 제1 데이터 및 상기 암호화 데이터를 수신하는 제2 단계;
상기 제2 제어 유닛이,
상기 암호화 데이터 및 상기 서버의 공개키(public key)에 기초하여 상기 제1 데이터를 검증하고,
상기 제1 데이터에 대한 검증 결과를 나타내는 검증 데이터(verification data)를 생성하는 제3 단계;
상기 제2 제어 유닛이, 상기 검증 데이터와 상기 제1 데이터를, 상기 제1 제어 유닛에 전송하는 제4 단계; 및
상기 제1 제어 유닛이, 상기 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 제1 데이터를 사용하여 업데이트를 수행하는 제5 단계;
를 포함하고,
상기 차량은, 제3 제어 유닛를 더 구비하고,
상기 제1 제어 유닛, 제2 제어 유닛, 및 제3 제어 유닛은, 상기 차량의 IVN(In-Vehicle Network)으로 연결되고,
상기 제4 단계에서,
상기 제2 제어 유닛은, 상기 제1 데이터와 상기 암호화 데이터를, 상기 제3 제어 유닛에 전송하고,
상기 제5 단계 이전에,
상기 차량에 구비된 제3 제어 유닛이, 상기 제2 제어 유닛이 전송하는 상기 제1 데이터와 상기 암호화 데이터를 수신하는 제1 재검증 단계;
상기 제3 제어 유닛이, 상기 암호화 데이터 및 상기 서버의 공개키를 기초로 상기 제1 데이터를 검증하여, 재검증 데이터를 생성하는 제2 재검증 단계; 및
상기 제3 제어 유닛이, 상기 재검증 데이터를, 상기 제1 제어 유닛에 전송하는 제3 재검증 단계; 를 더 포함하고,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 재검증 데이터와 상기 검증 데이터에 기초하여, 상기 업데이트의 수행 여부를 결정하는 차량용 제어 유닛의 업데이트 방법.
The server,
Data for updating the software of the first control unit provided in the vehicle (hereinafter referred to as' first data ') and data generated by encrypting the first data with a private key of the server (hereinafter referred to as' Encrypted data '),
A first step of transmitting to a second control unit provided in the vehicle;
A second step of receiving, by the second control unit, the first data and the encrypted data;
The second control unit,
Verify the first data based on the encrypted data and a public key of the server,
Generating verification data indicating verification results of the first data;
A fourth step of the second control unit transmitting the verification data and the first data to the first control unit; And
A fifth step of, if the first control unit determines that the first data is free of errors based on the verification data, performing an update using the first data;
Including,
The vehicle further includes a third control unit,
The first control unit, the second control unit, and the third control unit are connected to the in-vehicle network (IVN) of the vehicle,
In the fourth step,
The second control unit transmits the first data and the encrypted data to the third control unit,
Before the fifth step,
A first revalidating step of receiving, by the third control unit provided in the vehicle, the first data and the encrypted data transmitted by the second control unit;
A second revalidation step, wherein the third control unit verifies the first data based on the encrypted data and the public key of the server to generate revalidation data; And
A third revalidating step, wherein the third control unit sends the revalidation data to the first control unit; More,
In the fifth step,
The first control unit,
And determining whether or not to perform the update based on the revalidation data and the verification data.
제1항에 있어서,
상기 제1 제어 유닛은,
HSM(Hardware Security Module)를 구비하지 않거나, 비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없는 HSM만을 구비하여, 비대칭 암호화 방식의 검증을 수행할 수 없고,
상기 제2 제어 유닛은,
비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비하여, 비대칭 암호화 방식의 검증을 수행할 수 있는 차량용 제어 유닛의 업데이트 방법.
The method of claim 1,
The first control unit,
There is no hardware security module (HSM) or only HSM that can not perform the verification of asymmetric cryptosystem (symmetric cryptosystem), can not perform verification of asymmetric cryptography,
The second control unit,
An update method of a control unit for a vehicle, comprising: an HSM capable of performing verification of an asymmetric encryption method;
제1항에 있어서,
상기 서버는, 주기적으로 갱신되는 서버 난수(Server Nonce)를, 상기 제2 제어 유닛과 공유하고,
상기 제1 단계에서,
상기 서버는, 상기 제1 데이터를 상기 서버 난수와 상기 서버의 개인키로 암호화하여, 상기 암호화 데이터를 생성하고,
상기 제3 단계에서,
상기 제2 제어 유닛은, 상기 암호화 데이터, 상기 서버의 공개키, 및 상기 서버 난수에 기초하여, 상기 제1 데이터를 검증하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 1,
The server shares a server random number (Server Nonce) periodically updated with the second control unit,
In the first step,
The server encrypts the first data with the server random number and the private key of the server to generate the encrypted data,
In the third step,
And the second control unit verifies the first data based on the encrypted data, the public key of the server, and the server random number.
제1항에 있어서,
상기 제1 단계에서,
상기 서버는,
상기 제1 데이터의 크기, 상기 제1 제어 유닛의 메모리 크기, 상기 제2 제어 유닛의 메모리 크기, 및 상기 IVN의 데이터 프레임(data frame)의 최대 크기 중 적어도 하나에 기초하여, 상기 제1 데이터에 대한 분할 사이즈(fragmentation size)를 결정하고,
상기 분할 사이즈에 따라 상기 제1 데이터를 분할(fragment)하여, N개의 1차 분할 데이터를 생성하고,
상기 N개의 1차 분할 데이터를, 상기 제2 제어 유닛으로 전송하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 1,
In the first step,
The server,
Based on at least one of the size of the first data, the memory size of the first control unit, the memory size of the second control unit, and the maximum size of a data frame of the IVN. Determine the fragmentation size
Segmenting the first data according to the partition size to generate N primary partitioned data,
The update method of the vehicle control unit which transmits the said N primary division data to the said 2nd control unit.
제4항에 있어서,
상기 제2 단계에서,
상기 제2 제어 유닛은, 상기 N개의 1차 분할 데이터를 수신하고,
상기 제3 단계에서,
상기 제2 제어 유닛은, 상기 N개의 1차 분할 데이터 각각에 대하여 검증을 수행하여, N개의 검증 데이터를 생성하고,
상기 제4 단계에서,
상기 제2 제어 유닛은,
상기 IVN의 데이터 프레임의 최대 크기에 기초하여, 상기 N개의 1차 분할 데이터에 대한 2차 분할 사이즈를 결정하고,
상기 N개의 1차 분할 데이터 각각을 상기 2차 분할 사이즈에 따라 분할하여, 총 N*M 개의 2차 분할 데이터를 생성하고,
상기 N*M 개의 2차 분할 데이터, 및 상기 N개의 검증 데이터를 상기 제1 제어 유닛에 전송하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 4, wherein
In the second step,
The second control unit receives the N primary divided data,
In the third step,
The second control unit performs verification on each of the N primary divided data to generate N verification data,
In the fourth step,
The second control unit,
Based on the maximum size of the data frame of the IVN, determine a secondary partition size for the N primary partitioned data,
Each of the N primary partitioned data is partitioned according to the secondary partition size to generate a total of N * M secondary partitioned data,
And updating the N * M secondary divided data and the N verification data to the first control unit.
제5항에 있어서,
상기 IVN은, CAN(Controller Area Network)인, 차량용 제어 유닛의 업데이트 방법.
The method of claim 5,
The IVN is a controller area network (CAN).
제1항에 있어서,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 검증 데이터에 기초하여, 상기 제1 데이터에 오류가 있는지 판단하고,
상기 제1 데이터에 오류가 없다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 수행하고,
상기 제1 데이터에 오류가 있다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 중단하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 1,
In the fifth step,
The first control unit,
Based on the verification data, determine whether there is an error in the first data,
If it is determined that there is no error in the first data, an update corresponding to the first data is performed.
And if it is determined that there is an error in the first data, updating the vehicle corresponding to the first data.
제1항에 있어서,
상기 제1 제어 유닛은,
비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없고, 대칭 암호화 방식(symmetric cryptosystem)의 검증을 수행할 수 있고,
상기 제1 제어 유닛과 제2 제어 유닛은, 각각 제1 대칭키(symmetric key)를 구비하고,
상기 제3 단계에서,
상기 제2 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를 상기 제1 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를 상기 제1 대칭키로 암호화하여, 검증 확인 데이터(verification check data)를 생성하고,
상기 검증 확인 데이터와 상기 검증 데이터가 동일하면, 상기 제1 데이터에 오류가 없다고 판단하고,
상기 검증 확인 데이터와 상기 검증 데이터가 상이하면, 상기 제1 데이터에 오류가 있다고 판단하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 1,
The first control unit,
Cannot perform verification of an asymmetric cryptosystem, can perform verification of a symmetric cryptosystem,
The first control unit and the second control unit each have a first symmetric key,
In the third step,
The second control unit encrypts the verification result of the first data and the first data with the first symmetric key to generate the verification data,
In the fifth step,
The first control unit,
Generating a verification check data by encrypting the virtual verification result assuming that there is no error in the first data and the first data with the first symmetric key,
If the verification confirmation data and the verification data is the same, it is determined that there is no error in the first data,
And if the verification confirmation data is different from the verification data, determining that there is an error in the first data.
제8항에 있어서,
상기 제1 제어 유닛과 제2 제어 유닛은,
주기적으로 갱신되는 유닛 난수(Unit Nonce)를 공유하고,
상기 제3 단계에서,
상기 제2 제어 유닛은,
상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제1 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제1 대칭키로 암호화하여 상기 검증 확인 데이터를 생성하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 8,
The first control unit and the second control unit,
Share a unit random number that is updated periodically,
In the third step,
The second control unit,
Encrypting the verification result of the first data and the first data with the unit random number and the first symmetric key to generate the verification data,
In the fifth step,
The first control unit,
And encrypting the virtual verification result and the first data with the unit random number and the first symmetric key to generate the verification confirmation data.
삭제delete 제1항에 있어서,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되고, 상기 재검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 업데이트를 수행하고,
상기 검증 데이터 및 상기 재검증 데이터 중 적어도 하나에 기초하여, 상기 제1 데이터에 오류가 있다고 판단되면, 상기 업데이트를 중단하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 1,
In the fifth step,
The first control unit,
If it is determined that there is no error in the first data based on the verification data, and it is determined that there is no error in the first data based on the revalidation data, the update is performed.
And if it is determined that there is an error in the first data based on at least one of the verification data and the revalidation data, updating the vehicle control unit.
제1항에 있어서,
상기 제1 제어 유닛과 제2 제어 유닛은, 제1 대칭키를 공유하고,
상기 제1 제어 유닛과 제3 제어 유닛은, 제2 대칭키를 공유하고,
상기 제3 단계에서,
상기 제2 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를 상기 제1 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
상기 제2 재검증 단계에서,
상기 제3 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를 상기 제2 대칭키로 암호화하여, 상기 재검증 데이터를 생성하고
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를, 상기 제1 대칭키로 암호화하여 제1 검증 확인 데이터를 생성하고,
상기 가상의 검증 결과와 상기 제1 데이터를, 상기 제2 대칭키로 암호화하여 제2 검증 확인 데이터를 생성하고,
상기 제1 검증 확인 데이터와 상기 검증 데이터가 동일하고, 상기 제2 검증 확인 데이터와 상기 재검증 데이터가 동일하다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 수행하고,
상기 제1 검증 확인 데이터와 상기 검증 데이터가 상이하거나, 상기 제2 검증 확인 데이터와 상기 재검증 데이터가 상이하다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 중단하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 1,
The first control unit and the second control unit share a first symmetric key,
The first control unit and the third control unit share a second symmetric key,
In the third step,
The second control unit encrypts the verification result of the first data and the first data with the first symmetric key to generate the verification data,
In the second re-validation step,
The third control unit encrypts the verification result of the first data and the first data with the second symmetric key to generate the re-validation data.
In the fifth step,
The first control unit,
Generating first verification confirmation data by encrypting the virtual verification result and the first data, which are assumed that there is no error in the first data, with the first symmetric key;
Encrypting the virtual verification result and the first data with the second symmetric key to generate second verification confirmation data;
If it is determined that the first verification confirmation data and the verification data are the same and the second verification confirmation data and the re-validation data are the same, an update corresponding to the first data is performed,
And if it is determined that the first verification confirmation data and the verification data are different or the second verification confirmation data and the revalidation data are different, the update corresponding to the first data is stopped.
제12항에 있어서,
상기 제1 제어 유닛, 제2 제어 유닛, 및 제3 제어 유닛은,
주기적으로 갱신되는 유닛 난수(Unit Nonce)를 공유하고,
상기 제3 단계에서,
상기 제2 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를 상기 유닛 난수와 상기 제1 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
상기 제2 재검증 단계에서,
상기 제3 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제2 대칭키로 암호화하여, 상기 재검증 데이터를 생성하고,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제1 대칭키로 암호화하여 상기 제1 검증 확인 데이터를 생성하고,
상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제2 대칭키로 암호화하여 상기 제2 검증 확인 데이터를 생성하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 12,
The first control unit, the second control unit, and the third control unit,
Share a unit random number that is updated periodically,
In the third step,
The second control unit encrypts the verification result of the first data and the first data with the unit random number and the first symmetric key to generate the verification data,
In the second re-validation step,
The third control unit encrypts the verification result of the first data and the first data with the unit random number and the second symmetric key to generate the revalidation data,
In the fifth step,
The first control unit,
Encrypting the virtual verification result and the first data with the unit random number and the first symmetric key to generate the first verification confirmation data,
And encrypting the virtual verification result and the first data with the unit random number and the second symmetric key to generate the second verification confirmation data.
제1항에 있어서,
상기 제3 제어 유닛은, 복수 개이고,
상기 제1 재검증 단계에서,
상기 복수의 제3 제어 유닛은, 각각 상기 제2 제어 유닛이 전송하는 상기 제1 데이터 및 상기 암호화 데이터를 수신하고,
상기 제2 재검증 단계에서,
상기 복수의 제3 제어 유닛 각각은, 상기 암호화 데이터 및 상기 서버의 공개키를 기초로 상기 제1 데이터를 검증하여, 재검증 데이터를 생성하고,
상기 제3 재검증 단계에서,
상기 복수의 제3 제어 유닛은, 각각 상기 재검증 데이터를 전송하고,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 복수의 제3 제어 유닛 각각이 전송하는 복수의 재검증 데이터를 수신하고,
상기 검증 데이터 및 상기 복수의 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단하고,
상기 복수의 검증 결과 중 상기 제1 데이터에 오류가 없다는 검증 결과가 이외의 검증 결과보다 많거나, 상기 제1 데이터에 오류가 없다는 검증 결과의 수가 기설정된 기준값보다 크다고 판단되면, 상기 업데이트를 수행하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 1,
There are a plurality of third control units,
In the first re-validation step,
The plurality of third control units respectively receive the first data and the encrypted data transmitted by the second control unit,
In the second re-validation step,
Each of the plurality of third control units verifies the first data based on the encrypted data and the public key of the server, and generates re-verification data.
In the third re-validation step,
The plurality of third control units each transmit the revalidation data,
In the fifth step,
The first control unit,
Receive a plurality of revalidation data transmitted by each of the plurality of third control units,
Determine a plurality of verification results represented by each of the verification data and the plurality of revalidation data,
If it is determined that the verification result that the first data has no error among the plurality of verification results is greater than other verification results or the number of verification results that there is no error in the first data is larger than a preset reference value, the update is performed. Update method of the vehicle control unit.
제14항에 있어서,
상기 제2 제어 유닛과 복수의 제3 제어 유닛은, 각각 자신의 개인 대칭키를 하나씩 구비하고,
상기 제1 제어 유닛은, 상기 복수의 개인 대칭키를 모두 구비하고,
상기 제3 단계에서,
상기 제2 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를, 자신의 개인 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
상기 제2 재검증 단계에서,
상기 복수의 제3 제어 유닛 각각은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를, 자신의 개인 대칭키로 암호화하여, 상기 재검증 데이터를 생성하고,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를, 상기 복수의 개인 대칭키로 암호화하여, 상기 검증 데이터 및 복수의 재검증 데이터 각각에 대응하는 복수의 검증 확인 데이터를 생성하고,
상기 복수의 검증 확인 데이터 중 상기 검증 데이터에 대응하는 것과, 상기 검증 데이터가 동일한 경우, 상기 검증 데이터가 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단하고,
상기 복수의 검증 확인 데이터와 상기 복수의 재검증 데이터를, 상호 대응하는 데이터끼리 비교하여, 대응하는 검증 확인 데이터와 동일한 재검증 데이터는, 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 14,
The second control unit and the plurality of third control units each have its own personal symmetric key,
The first control unit includes all of the plurality of personal symmetric keys,
In the third step,
The second control unit encrypts the verification result of the first data and the first data with its own personal symmetric key to generate the verification data,
In the second re-validation step,
Each of the plurality of third control units encrypts the verification result of the first data and the first data with its own personal symmetric key to generate the re-validation data.
In the fifth step,
The first control unit,
The virtual verification result assuming that there is no error in the first data and the first data are encrypted with the plurality of personal symmetric keys to generate a plurality of verification confirmation data corresponding to each of the verification data and the plurality of re-verification data. and,
When the verification data is the same as the verification data among the plurality of verification confirmation data, it is determined that the verification data indicates a verification result that there is no error in the first data,
The plurality of verification confirmation data and the plurality of re-validation data are compared with each other to correspond to each other, and the re-validation data identical to the corresponding verification confirmation data determines that the first data is free of errors. How to update the control unit.
제1항에 있어서,
상기 차량은, 상기 서버와 통신을 수행하는 제4 제어 유닛을 더 구비하고,
상기 제1 제어 유닛, 제2 제어 유닛, 제3 제어 유닛, 및 제4 제어 유닛은, 상기 차량의 IVN으로 연결되고,
상기 제1 단계에서, 상기 서버는, 상기 제1 데이터와 상기 암호화 데이터를 상기 제2 제어 유닛과 제4 제어 유닛으로 전송하고,
상기 제2 단계에서, 상기 제2 제어 유닛과 제4 제어 유닛은, 상기 제1 데이터와 상기 암호화 데이터를 수신하고,
상기 제3 단계에서,
상기 제2 제어 유닛은, 암호화 데이터 및 상기 서버의 공개키를 기초로 상기 제1 데이터를 검증하여, 제1 검증 데이터를 생성하고,
상기 제4 제어 유닛은, 암호화 데이터 및 상기 서버의 공개키를 기초로 상기 제1 데이터를 검증하여, 제2 검증 데이터를 생성하고,
상기 제4 단계에서,
상기 제2 제어 유닛은, 상기 제1 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송하고,
상기 제4 제어 유닛은, 상기 제2 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송하고,
상기 제1 재검증 단계에서,
상기 제3 제어 유닛은,
상기 제2 제어 유닛이 전송한 제1 데이터(이하 '제2 데이터'라 함)와 암호화 데이터(이하 '제2 암호화 데이터'라 함)를 수신하고,
상기 제4 제어 유닛이 전송한 제1 데이터(이하 '제3 데이터'라 함)와 암호화 데이터(이하 '제3 암호화 데이터'라 함)를 수신하고,
상기 제2 제어 유닛은, 상기 제3 데이터 및 제3 암호화 데이터를 수신하고,
상기 제4 제어 유닛은, 상기 제2 데이터 및 제2 암호화 데이터를 수신하고,
상기 제2 재검증 단계에서,
상기 제3 제어 유닛은,
상기 제2 암호화 데이터와 상기 서버의 공개키를 기초로 상기 제2 데이터를 검증하여, 제1 재검증 데이터를 생성하고,
상기 제3 암호화 데이터와 상기 서버의 공개키를 기초로 상기 제3 데이터를 검증하여, 제2 재검증 데이터를 생성하고,
상기 제2 제어 유닛은, 상기 제3 암호화 데이터와 상기 서버의 공개키를 기초로 상기 제3 데이터를 검증하여, 제3 재검증 데이터를 생성하고,
상기 제4 제어 유닛은, 상기 제2 암호화 데이터와 상기 서버의 공개키를 기초로 상기 제2 데이터를 검증하여, 제4 재검증 데이터를 생성하고,
상기 제3 재검증 단계에서,
상기 제3 제어 유닛은, 상기 제1 재검증 데이터 및 제2 재검증 데이터를 상기 제1 제어 유닛에 전송하고,
상기 제2 제어 유닛은, 상기 제3 재검증 데이터를 상기 제1 제어 유닛에 전송하고,
상기 제4 제어 유닛은, 상기 제4 재검증 데이터를 상기 제1 제어 유닛에 전송하고,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터에 기초하여,
상기 제2 데이터 또는 상기 제3 데이터에 대응하는 업데이트의 수행 여부를 결정하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 1,
The vehicle further includes a fourth control unit for communicating with the server,
The first control unit, the second control unit, the third control unit and the fourth control unit are connected to the vehicle's IVN,
In the first step, the server transmits the first data and the encrypted data to the second control unit and the fourth control unit,
In the second step, the second control unit and the fourth control unit receive the first data and the encrypted data,
In the third step,
The second control unit verifies the first data based on encrypted data and the public key of the server, and generates first verification data,
The fourth control unit verifies the first data based on encrypted data and the public key of the server, and generates second verification data,
In the fourth step,
The second control unit transmits the first verification data, the first data, and the encrypted data to an IVN of the vehicle,
The fourth control unit transmits the second verification data, the first data, and the encrypted data to the IVN of the vehicle,
In the first re-validation step,
The third control unit,
Receive first data (hereinafter referred to as 'second data') and encrypted data (hereinafter referred to as 'second encrypted data') transmitted by the second control unit,
Receive first data (hereinafter referred to as 'third data') and encrypted data (hereinafter referred to as 'third encrypted data') transmitted by the fourth control unit,
The second control unit receives the third data and the third encrypted data,
The fourth control unit receives the second data and the second encrypted data,
In the second re-validation step,
The third control unit,
Verify the second data based on the second encrypted data and the public key of the server to generate first re-validation data,
Verify the third data based on the third encrypted data and the public key of the server to generate second re-verification data,
The second control unit verifies the third data based on the third encrypted data and the public key of the server, and generates third revalidation data;
The fourth control unit verifies the second data based on the second encrypted data and the public key of the server, and generates fourth re-verification data,
In the third re-validation step,
The third control unit transmits the first revalidation data and the second revalidation data to the first control unit,
The second control unit transmits the third revalidation data to the first control unit,
The fourth control unit transmits the fourth revalidation data to the first control unit,
In the fifth step,
The first control unit,
Based on the first and second verification data and the first to fourth revalidation data,
And determining whether to perform an update corresponding to the second data or the third data.
제16항에 있어서,
상기 제5 단계에서,
상기 제1 제어 유닛은,
상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단하고,
상기 제2 데이터와 제3 데이터가 동일한지 판단하고,
상기 제2 데이터와 제3 데이터가 동일하다고 판단되는 경우, 상기 복수의 검증 결과 중 상기 제2 데이터나 제3 데이터에 오류가 없다는 검증 결과가, 이외의 검증 결과보다 많다고 판단되면, 상기 제2 데이터나 제3 데이터를 사용하여 업데이트를 수행하고,
상기 제2 데이터와 제3 데이터가 동일하지 않다고 판단되는 경우, 상기 제2 데이터와 제3 데이터 중, 오류가 없다고 판단된 검증 결과가 더 많은 데이터를 선택하고, 선택된 데이터를 사용하여 업데이트를 수행하는 차량용 제어 유닛의 업데이트 방법.
The method of claim 16,
In the fifth step,
The first control unit,
Determine a plurality of verification results represented by the first and second verification data and the first to fourth re-verification data, respectively,
Determine whether the second data and the third data are the same;
When it is determined that the second data and the third data are the same, when it is determined that there are more verification results that there is no error in the second data or the third data among the plurality of verification results, the second data is determined. I use third party data to perform the update,
If it is determined that the second data and the third data are not the same, selecting more data among the second data and the third data, the verification result of which is determined that there is no error, and performing an update using the selected data Update method of the vehicle control unit.
삭제delete 삭제delete 삭제delete
KR1020170157805A 2017-11-24 2017-11-24 Driving assistance Apparatus for Vehicle and Control method thereof KR102025808B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170157805A KR102025808B1 (en) 2017-11-24 2017-11-24 Driving assistance Apparatus for Vehicle and Control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170157805A KR102025808B1 (en) 2017-11-24 2017-11-24 Driving assistance Apparatus for Vehicle and Control method thereof

Publications (2)

Publication Number Publication Date
KR20190060032A KR20190060032A (en) 2019-06-03
KR102025808B1 true KR102025808B1 (en) 2019-09-26

Family

ID=66849105

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170157805A KR102025808B1 (en) 2017-11-24 2017-11-24 Driving assistance Apparatus for Vehicle and Control method thereof

Country Status (1)

Country Link
KR (1) KR102025808B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102249222B1 (en) * 2019-10-10 2021-05-06 박재완 Apparatus and system and method for software update of vehicle

Citations (3)

* 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
JP2017120984A (en) 2015-12-28 2017-07-06 Kddi株式会社 On-vehicle computer system, vehicle, management method and computer program
JP2017199183A (en) * 2016-04-27 2017-11-02 日立オートモティブシステムズ株式会社 Vehicle-purpose electronic control unit, program update method and server device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674182B (en) * 2009-09-30 2011-07-06 西安西电捷通无线网络通信股份有限公司 Entity public key acquisition and certificate verification and authentication method and system of introducing online trusted third party

Patent Citations (3)

* 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
JP2017120984A (en) 2015-12-28 2017-07-06 Kddi株式会社 On-vehicle computer system, vehicle, management method and computer program
JP2017199183A (en) * 2016-04-27 2017-11-02 日立オートモティブシステムズ株式会社 Vehicle-purpose electronic control unit, program update method and server device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A. Menezes 외 2명, Handbook of Applied Cryptography, Chapter.10, CRC Press (1996.)*
A. Menezes 외 2명, Handbook of Applied Cryptography, Chapter.12, CRC Press (1996.)*

Also Published As

Publication number Publication date
KR20190060032A (en) 2019-06-03

Similar Documents

Publication Publication Date Title
US11662991B2 (en) Vehicle-mounted device upgrade method and related device
US10171478B2 (en) Efficient and secure method and apparatus for firmware update
EP3780481B1 (en) Method for upgrading vehicle-mounted device, and related device
US10419220B2 (en) Management device, key generating device, vehicle, maintenance tool, management system, management method, and computer program
US11265170B2 (en) Vehicle information collection system, vehicle-mounted computer, vehicle information collection device, vehicle information collection method, and computer program
CN103166759B (en) Use the method and apparatus downloaded for secure firmware of diagnosis link connector (DLC) and ONSTAR system
JP6065113B2 (en) Data authentication apparatus and data authentication method
US11652602B2 (en) Secure communication in a traffic control network
JP2010011400A (en) Cipher communication system of common key system
US11924353B2 (en) Control interface for autonomous vehicle
CN110612699B (en) Method and system for protecting computing system memory and storage medium
US10581811B2 (en) Method and system for asymmetric key derivation
KR20200020645A (en) Method, system and computer program for updating firmware of ecu
JP2018055566A (en) Maintenance device, maintenance method, and computer program
KR102025808B1 (en) Driving assistance Apparatus for Vehicle and Control method thereof
JP6203798B2 (en) In-vehicle control system, vehicle, management device, in-vehicle computer, data sharing method, and computer program
JP2018050255A (en) Vehicle information collecting system, data security device, vehicle information collecting method, and computer program
Giri et al. An integrated safe and secure approach for authentication and secret key establishment in automotive Cyber-Physical systems
KR20170029259A (en) Method of providing secure odometer management by changing secret key and appratus for implementing the same
JP2018057044A (en) Vehicle information gathering system, data safety device, vehicle information gathering device, vehicle information gathering method, and computer program
WO2017216874A1 (en) Key management device, key management program, and key sharing method
JP2023064497A (en) Data storage system, mobile body, and data storage program
KR20240003978A (en) Method for providing dssad data in autonomous driving controller
CN114879980A (en) Vehicle-mounted application installation method and device, computer equipment and storage medium
JP2017225186A (en) On-vehicle control system, vehicle, management device, on-vehicle computer, data sharing method, and computer program

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