KR102025808B1 - Driving assistance Apparatus for Vehicle and Control method thereof - Google Patents
Driving assistance Apparatus for Vehicle and Control method thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/84—Vehicles
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
본 발명은 비대칭 암호화 방식의 검증을 수행할 수 없는 제어 유닛과, 비대칭 암호화 방식의 검증을 수행할 수 있는 제어 유닛을 구비한 차량에서, 비대칭 암호화 방식의 검증을 수행할 수 있는 제어 유닛이, 비대칭 암호화 방식의 검증을 수행할 수 없는 제어 유닛을 대신하여 데이터의 전자 서명을 검증하는 방법에 관한 것이다. 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
도 1은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버(200)와 제어 유닛들을 나타내는 도면이다.1 is a diagram illustrating a
본 발명의 서버(200)는, 차량(100)에 구비된 각종 제어 유닛의 소프트웨어를 업데이트하기 위한 데이터를 제공한다.The
이를 위하여 서버(200)는, 각종 업데이트를 수행하기 위한 데이터를 생성하고, 저장한다. 서버(200)는, 각종 데이터를 차량에 전송하기 위한 통신 장치를 구비할 수 있다. To this end, the
서버(200)는, 구비된 통신 장치를 통하여, 각종 데이터를 차량(100)으로 전송할 수 있다. The
서버(200)는, 서버 난수 및 서버 개인키 중 적어도 하나를 구비할 수 있다.The
서버(200)는, 서버 난수를 주기적으로 갱신할 수 있다. 예를 들어, 서버(200)는, 서버 난수를 기설정된 시간이 경과할때마다 새로운 값으로 설정하거나, 부팅될 때마다 서버 난수를 새롭게 설정할 수 있다.The
서버(200)는, 주기적으로 갱신되는 서버 난수를 제2 제어 유닛(120), 제3 제어 유닛, 및 제4 제어 유닛(140)과 공유할 수 있다. 이에 따라, 제2 제어 유닛(120), 제3 제어 유닛, 및 제4 제어 유닛(140)은, 주기적으로 갱신되는 서버 난수를 구비할 수 있다.The
차량(100)은, 각종 제어 유닛을 구비할 수 있다. 예를 들어, 차량(100)은, 디스플레이 장치를 제어하기 위한 제어 유닛, 브레이크 장치를 제어하기 위한 제어 유닛, 오디오 장치를 제어하기 위한 제어 유닛, 조향 장치를 제어하기 위한 제어 유닛, 공조 장치를 제어하기 위한 제어 유닛, 차량(100)이 움직이기 위한 각종 구동 장치를 제어하기 위한 제어 유닛 등을 구비할 수 있다. The
본 발명의 차량(100)은, 제1 제어 유닛(110) 및 제2 제어 유닛(120)을 구비할 수 있다. The
제1 제어 유닛(110)은, HSM(Hardware Security Module)를 구비하지 않거나, 비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없는 HSM만을 구비한다. 이에 따라, 제1 제어 유닛(110)은, 비대칭 암호화 방식의 검증을 수행할 수 없다.The
비대칭 암호화 방식의 검증은, 특정 장치가 구비하는 개인키로 암호화된 데이터를, 상기 특정 장치의 공개키로 복호화하여, 상기 데이터가 정당한 권한을 갖는 주체로부터 전송되었는지 및 무결성이 만족되는지를 확인하는 것이다.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
예를 들어, 도면의 실시예와 같이 차량(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
차량(100)에 구비된 모든 제어 유닛은, 유닛 난수를 공유할 수 있다. 유닛 난수는, 특정 제어 유닛에 의하여 주기적으로 갱신되어, 다른 제어 유닛들에 공유될 수 있다. 이에 따라, 제1 제어 유닛(110), 제2 제어 유닛(120), 제3 제어 유닛, 및 제4 제어 유닛(140)은, 유닛 난수를 구비할 수 있다.All control units provided in the
제2 제어 유닛(120)은, 비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비한다. 이에 따라, 제2 제어 유닛(120)은, 비대칭 암호화 방식의 검증을 수행할 수 있다.The
제2 제어 유닛(120)은, 서버 난수, 유닛 난수, 서버(200) 공개키, 및 개인 대칭키1을 구비할 수 있다. The
본 발명에서, 개인 대칭키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
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
차량(100)은, 하나 이상의 제3 제어 유닛를 더 구비할 수 있다. 도면의 실시예와 같이, 차량(100)은, 제3 제어 유닛A(130a), 및 제3 제어 유닛B(130b)을 구비하여, 2개의 제3 제어 유닛을 구비할 수도 있다.The
제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
제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
차량(100)은, 제4 제어 유닛(140)를 더 구비할 수 있다. 제4 제어 유닛(140)에 대한 설명은, 도 12에 대한 설명에서 후술한다.The
제4 제어 유닛(140)은, 비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비한다. 이에 따라, 제4 제어 유닛(140)도, 비대칭 암호화 방식의 검증을 수행할 수 있다.The
차량(100)에 구비된 모든 제어 유닛은, IVN(In-Vehicle Network)로 연결도니다. 예를 들어, IVN은, CAN(Controller Area Network)일 수 있다.All control units provided in the
이에 따라, 차량(100)에 구비된 모든 제어 유닛은, IVN(In-Vehicle Network)를 통하여 각종 데이터를 공유할 수 있다. 예를 들어, 제2 제어 유닛(120)이 제1 데이터를 IVN로 전송하는 경우, 다른 제어 유닛들 모두 제1 데이터를 획득할 수 있다.Accordingly, all control units provided in the
본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법은, 제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
도 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
본 발명의 제1 제어 유닛(110)은 전자 서명을 검증하기 위한 비대칭 암호화 방식의 연산을 수행할 수 없으므로, 서버(200)는 제1 제어 유닛(110)을 대신하여 검증을 수행할 제2 제어 유닛(120)에게 제1 데이터와 암호화 데이터를 전송한다.Since the
도 3을 참조하면, 제1 단계에서, 서버(200)는, 제1 데이터 및 암호화 데이터를 전송하기 전에, 제1 데이터를 분할하고, 암호화 데이터를 생성한다.Referring to FIG. 3, in a first step, the
제1 단계에서, 서버(200)는, 제1 데이터의 크기, 제1 제어 유닛(110)의 메모리 크기, 제2 제어 유닛(120)의 메모리 크기, 및 IVN의 데이터 프레임 (data frame)의 최대 크기 중 적어도 하나에 기초하여, 제1 데이터에 대한 분할 사이즈(fragmentation size)를 결정할 수 있다. In a first step, the
제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
또한, 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
서버(200)는, 제1 데이터에 대한 분할 사이즈가 결정된 경우, 결정된 분할 사이즈에 따라 제1 데이터를 분할(fragment)하여, N개의 1차 분할 데이터를 생성한다.When the partition size for the first data is determined, the
예를 들어, 제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
제1 단계에서, 서버(200)는, N개의 1차 분할 데이터를, 제2 제어 유닛(120)으로 전송한다. 즉, 서버(200)는, 제1 데이터를 N개의 1차 분할 데이터로 분할하여 제2 제어 유닛(120)에 전송한다.In the first step, the
제1 단계에서, 서버(200)는, 제1 데이터를 서버 난수와 서버(200)의 개인키로 암호화하여, 암호화 데이터를 생성한다.In a first step, the
도면의 실시예에서, 서버(200)는, N개로 분할된 제1 데이터에 대하여 암호화를 수행한다. 서버(200)는, N개의 1차 분할 데이터 각각에 서버 난수를 결합시킨 값의 해시 값을 서버 개인키로 암호화한다. 이에 따라, N개의 암호화 데이터가 생성된다. 서버(200)는, N개의 암호화 데이터를 제2 제어 유닛(120)에 전송한다.In the embodiment of the figure, the
제2 단계에서, 제2 제어 유닛(120)은, 서버(200)로부터 N개의 1차 분할 데이터를 수신한다.In a second step, the
도 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
제3 단계에서, 제2 제어 유닛(120)은, 암호화 데이터, 서버(200)의 공개키, 및 서버 난수에 기초하여, 제1 데이터를 검증할 수 있다.In a third step, the
구체적으로, 제2 제어 유닛(120)은, 암호화 데이터를 서버(200)의 공개키로 복호화한 값과, 서버 난수와 제1 데이터를 결합한 값의 해시값을 비교하여, 제1 데이터를 검증할 수 있다.In detail, the
제2 제어 유닛(120)은, 암호화 데이터를 서버(200)의 공개키로 복호화한 값과, 서버 난수와 제1 데이터를 결합한 값의 해시값이 동일하다고 판단되면, 제1 데이터에 오류가 없다고 판단한다.If the
제2 제어 유닛(120)은, 암호화 데이터를 서버(200)의 공개키로 복호화한 값과, 서버 난수와 제1 데이터를 결합한 값의 해시값이 상이하다고 판단되면, 제1 데이터에 오류가 있다고 판단한다.If it is determined that the value obtained by decrypting the encrypted data with the public key of the
제3 단계에서, 제2 제어 유닛(120)은, 제1 데이터에 대한 검증 결과와 제1 데이터를 상기 제1 대칭키로 암호화하여, 검증 데이터를 생성할 수 있다.In a third step, the
또한, 제3 단계에서, 제2 제어 유닛(120)은, 제1 데이터에 대한 검증 결과와 제1 데이터를, 유닛 난수와 제1 대칭키로 암호화하여, 검증 데이터를 생성할 수도 있다.In addition, in the third step, the
제2 제어 유닛(120)은, 제1 데이터에 대한 검증결과와, 제1 데이터의 해시값과, 유닛 난수를 결합하고, 결합된 값을 개인 대칭키1로 암호화하여, 검증 데이터를 생성할 수 있다. 이는, 메시지 인증 코드(MAC, Message Authentication Code)를 생성하는 방식이다.The
도 5를 참조하면, 제3 단계에서, 제2 제어 유닛(120)은, N개의 1차 분할 데이터 각각에 대하여 검증을 수행하여, N개의 검증 데이터를 생성한다.Referring to FIG. 5, in a third step, the
제3 단계에서, 제2 제어 유닛(120)은, N개의 1차 분할 데이터 각각에 대하여 상술한 과정을 수행한다. 이에 따라, N개의 검증 데이터가 생성된다.In a third step, the
제4 단계에서, 제2 제어 유닛(120)은, IVN의 데이터 프레임의 최대 크기에 기초하여, N개의 1차 분할 데이터에 대한 2차 분할 사이즈를 결정한다.In a fourth step, the
예를 들어, 제2 제어 유닛(120)은, IVN의 데이터 프레임의 최대 크기를, 2차 분할 사이즈로 결정할 수 있다. 예를 들어, IVN이 CAN이고, CAN의 데이터 프레임의 최대 크기가 8바이트인 경우, 제2 제어 유닛(120)은, 2차 분할 사이즈를 8바이트로 결정할 수 있다.For example, the
제4 단계에서, 제2 제어 유닛(120)은, 서버(200)로부터 수신된 N개의 1차 분할 데이터 각각을, 2차 분할 사이즈에 따라 분할하여, 총 N*M 개의 2차 분할 데이터를 생성할 수 있다.In a fourth step, the
제4 단계에서, 제2 제어 유닛(120)은, N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 제1 제어 유닛(110)에 전송할 수 있다.In a fourth step, the
도 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
또한, 제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
도면과 같이, 제3 제어 유닛이 2개인 경우, 제3 제어 유닛A(130a)와, 제3 제어 유닛B(130b)는, 각각 제1 데이터와 암호화 데이터를 수신할 수 있다.As shown in the figure, when there are two third control units, the third
도 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
제1 제어 유닛(110)은, N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 순차적으로 수신한다.The
제1 제어 유닛(110)은, N*M 개의 2차 분할 데이터를 수신하면서, N개의 1차 분할 데이터를 복원한다.The
제1 제어 유닛(110)은, 1차 분할 데이터 1개가 복원될 때마다 검증 데이터를 이용하여 제2 제어 유닛(120)의 검증 결과를 확인한다.The
제1 제어 유닛(110)은, 검증 결과를 확인하기 위하여, 검증 확인 데이터를 생성한다.The
제1 제어 유닛(110)은, 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 제1 데이터를 유닛 난수와 제1 대칭키(개인 대칭키1)로 암호화하여, 검증 확인 데이터(verification check data)를 생성한다.The
구체적으로, 제1 제어 유닛(110)은, 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과, 제1 데이터의 해시값, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키1로 암호화하여, 검증 확인 데이터를 생성할 수 있다.Specifically, the
제1 제어 유닛(110)은, 검증 확인 데이터와 제2 제어 유닛(120)이 전송한 검증 데이터가 동일하면, 제2 제어 유닛(120)이 제1 데이터에 오류가 없다고 판단한 것으로 판단한다.When the verification confirmation data and the verification data transmitted by the
제1 제어 유닛(110)은, 검증 확인 데이터와 제2 제어 유닛(120)이 전송한 검증 데이터가 상이하면, 제2 제어 유닛(120)이 제1 데이터에 오류가 있다고 판단한 것으로 판단한다.When the verification confirmation data and the verification data transmitted by the
제1 제어 유닛(110)은, N개의 1차 분할 데이터를 복원하면서, 복원되는 데이터를 이용하여 N개의 검증 확인 데이터를 생성할 수 있다. 제1 제어 유닛(110)은, 1개의 검증 확인 데이터가 생성될 때마다 이에 대응하는 검증 데이터와 비교하여 검증 결과를 확인할 수 있다.The
제1 제어 유닛(110)은, N 번의 검증 결과 확인 과정을 통하여, 최종적으로 제2 제어 유닛(120)의 검증 결과를 판단할 수 있다.The
제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
도면의 실시예와 달리 제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
이 경우, 제5 단계에서, 제1 제어 유닛(110)은, 제 2제어 유닛이 전송한 검증 데이터에 기초하여, 제1 데이터에 오류가 있는지 판단한다. 제1 제어 유닛(110)은, 제2 제어 유닛(120)의 검증 결과에 따라 제1 데이터에 오류가 없다고 판단되면, 제1 데이터에 대응하는 업데이트를 수행하고, 제1 데이터에 오류가 있다고 판단되면, 제1 데이터에 대응하는 업데이트를 중단한다.In this case, in the fifth step, the
구체적으로, 제5 단계에서, 제1 제어 유닛(110)은, 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 제1 데이터를 유닛 난수와 제1 대칭키(개인 대칭키1)로 암호화하여, 검증 확인 데이터(verification check data)를 생성하고, 검증 확인 데이터와 검증 데이터가 동일하면, 제1 데이터에 오류가 없다고 판단하고, 검증 확인 데이터와 검증 데이터가 상이하면, 제1 데이터에 오류가 있다고 판단한다.Specifically, in the fifth step, the
도 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
도면의 실시예와 같이 제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
도면의 실시예에서, 제3 제어 유닛A(130a)는, 제1 데이터를 검증하여 재검증 데이터A를 생성하고, 생성된 재검증 데이터A를 제1 제어 유닛(110)에 전송한다. 제3 제어 유닛B(130b)는, 제1 데이터를 검증하여 재검증 데이터B를 생성하고, 생성된 재검증 데이터B를 제1 제어 유닛(110)에 전송한다.In the embodiment of the figure, the third
도 9를 참조하면, 제3 제어 유닛A(130a) 및 제3 제어 유닛B(130b)는, 각각 재검증 데이터를 생성한다. 두 제어 유닛의 동작은 동일하므로, 이하 하나의 제어 유닛의 동작만 설명한다.9, the 3rd
제3 제어 유닛A(130a)는, 제2 제어 유닛(120)이 순차적으로 전송하는 N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 순차적으로 수신한다.The third
제3 제어 유닛A(130a)는, N*M 개의 2차 분할 데이터를 수신하면서, N개의 1차 분할 데이터를 복원한다.The third
제3 제어 유닛A(130a)는, 1차 분할 데이터 1개가 복원될 때마다 이에 대한 재검증 데이터를 생성한다.The third
예를 들어, 제3 제어 유닛A(130a)는, 1차 분할 데이터 1이 복원되는 경우, 재검증 데이터 1을 생성한다. 제3 제어 유닛A(130a)는, 1차 분할 데이터 2이 복원되는 경우, 재검증 데이터 2을 생성한다. 제3 제어 유닛A(130a)는, 이러한 과정을 N번 반복하여 N개의 재검증 데이터를 생성한다.For example, the third
제3 제어 유닛A(130a)는, 암호화 데이터 및 서버(200)의 공개키를 기초로 상기 제1 데이터를 검증하고, 제1 데이터에 대한 검증 결과, 제1 데이터, 유닛 난수, 및 개인 대칭키A를 이용하여 재검증 데이터A를 생성한다.The third
구체적으로, 제3 제어 유닛A(130a)는, 제1 데이터에 대한 검증 결과, 제1 데이터의 해시값, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키A로 암호화하여, 재검증 데이터A를 생성할 수 있다.Specifically, the third
도면의 실시예에서, 재검증 데이터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
제3 제어 유닛이 하나인 실시예에서, 제1 제어 유닛(110)은, 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되고, 상기 재검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 업데이트를 수행하고, 상기 검증 데이터 및 상기 재검증 데이터 중 적어도 하나에 기초하여, 상기 제1 데이터에 오류가 있다고 판단되면, 상기 업데이트를 중단할 수 있다.In an embodiment in which there is one third control unit, the
구체적으로, 제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
이후, 제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
제3 제어 유닛이 복수인 실시예에서, 제1 제어 유닛(110)은, 상기 복수의 제3 제어 유닛 각각이 전송하는 복수의 재검증 데이터를 수신하고, 상기 검증 데이터 및 상기 복수의 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단한다.In an embodiment where there are a plurality of third control units, the
구체적으로, 제5 단계에서, 제1 제어 유닛(110)은, 상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를, 상기 복수의 개인 대칭키로 암호화하여, 상기 검증 데이터 및 복수의 재검증 데이터 각각에 대응하는 복수의 검증 확인 데이터를 생성한다.Specifically, in the fifth step, the
제1 제어 유닛(110)은, 상기 복수의 검증 확인 데이터 중 상기 검증 데이터에 대응하는 것과, 상기 검증 데이터가 동일한 경우, 상기 검증 데이터가 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단한다.The
제1 제어 유닛(110)은, 상기 복수의 검증 확인 데이터와 상기 복수의 재검증 데이터를, 상호 대응하는 데이터끼리 비교하여, 대응하는 검증 확인 데이터와 동일한 재검증 데이터는, 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단한다.The
제1 제어 유닛(110)은, 상기 복수의 검증 결과 중 상기 제1 데이터에 오류가 없다는 검증 결과가 이외의 검증 결과보다 많거나, 상기 제1 데이터에 오류가 없다는 검증 결과의 수가 기설정된 기준값보다 크다고 판단되면, 업데이트를 수행한다. 기준값은, 제1 제어 유닛(110)에 저장된 값이다.The
도 10을 참조하면, 제5 단계에서, 제1 제어 유닛(110)은, 재검증 데이터A 및 재검증 데이터B에 기초하여, 제3 제어 유닛A(130a) 및 제3 제어 유닛B(130b)의 검증 결과를 확인할 수 있다.Referring to FIG. 10, in a fifth step, the
제1 제어 유닛(110)은, 제2 제어 유닛(120)으로부터 수신된 제1 데이터의 해시값, 제1 데이터에 오류가 없다고 가정한 가상의 검증 결과, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키A로 암호화하여 제2 검증 확인 데이터A를 생성할 수 있다.The
제1 제어 유닛(110)은, 제2 검증 확인 데이터A를, 재검증 데이터A와 비교하고, 제2 검증 확인 데이터A와 재검증 데이터A가 동일한 경우, 제3 제어 유닛A(130a)가 제1 데이터에 오류가 없다고 판단한 것으로 판단한다. 제1 제어 유닛(110)은, 제2 검증 확인 데이터A와 재검증 데이터A가 상이한 경우, 제3 제어 유닛A(130a)가 제1 데이터에 오류가 있다고 판단한 것으로 판단한다.The
제1 제어 유닛(110)은, 제2 제어 유닛(120)으로부터 수신된 제1 데이터의 해시값, 제1 데이터에 오류가 없다고 가정한 가상의 검증 결과, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키B로 암호화하여 제2 검증 확인 데이터B를 생성할 수 있다.The
제1 제어 유닛(110)은, 제2 검증 확인 데이터B를, 재검증 데이터B와 비교하고, 제2 검증 확인 데이터B와 재검증 데이터B가 동일한 경우, 제3 제어 유닛B(130b)가 제1 데이터에 오류가 없다고 판단한 것으로 판단한다. 제1 제어 유닛(110)은, 제2 검증 확인 데이터B와 재검증 데이터B가 상이한 경우, 제3 제어 유닛B(130b)가 제1 데이터에 오류가 있다고 판단한 것으로 판단한다.The
도 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
도 12은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버(200)와 제어 유닛들을 나타내는 도면이다.12 is a diagram illustrating a
차량(100)은, 서버(200)와 통신을 수행하는 제4 제어 유닛(140)을 더 구비할 수 있다.The
이 경우, 상기 제1 제어 유닛(110), 제2 제어 유닛(120), 제3 제어 유닛(130), 및 제4 제어 유닛(140)은, 상기 차량의 IVN으로 연결될 수 있다.In this case, the
제4 제어 유닛(140)은, 서버(200)로부터 데이터를 수신하는 제어 유닛이고, 개인 대칭키 4를 제1 유닛과 공유한다.The
상기 제1 단계에서, 상기 서버(200)는, 상기 제1 데이터와 상기 암호화 데이터를 상기 제2 제어 유닛(120)과 제4 제어 유닛(140)으로 전송한다.In the first step, the
상기 제2 단계에서, 상기 제2 제어 유닛(120)과 제4 제어 유닛(140)은, 상기 제1 데이터와 상기 암호화 데이터를 수신한다.In the second step, the
상기 제3 단계에서, 상기 제2 제어 유닛(120)은, 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제1 데이터를 검증하여, 제1 검증 데이터를 생성하고, 상기 제4 제어 유닛(140)은, 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제1 데이터를 검증하여, 제2 검증 데이터를 생성한다.In the third step, the
상기 제4 단계에서, 상기 제2 제어 유닛(120)은, 상기 제1 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송하고, 상기 제4 제어 유닛(140)은, 상기 제2 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송한다.In the fourth step, the
상기 제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
상기 제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
상기 제3 재검증 단계에서, 상기 제3 제어 유닛(130)은, 상기 제1 재검증 데이터 및 제2 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제2 제어 유닛(120)은, 상기 제3 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제4 제어 유닛(140)은, 상기 제4 재검증 데이터를 상기 제1 제어 유닛(110)에 전송한다.In the third revalidation step, the
상기 제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터에 기초하여, 상기 제2 데이터 또는 상기 제3 데이터에 대응하는 업데이트의 수행 여부를 결정한다.In the fifth step, the
도 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
이 경우에도, 서버(200)는, 제1 데이터에 대한 1차 분할을 수행한다.Even in this case, the
제1 데이터를 제2 제어 유닛(120) 뿐만 아니라, 제4 제어 유닛(140)도 수신하므로, 데이터의 오류 발생을 검출할 가능성이 향상될 수 있다.Since not only the
제2 단계에서, 상기 제2 제어 유닛(120)과 제4 제어 유닛(140)은, 상기 제1 데이터와 상기 암호화 데이터를 수신한다.In a second step, the
도 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
본 발명에서 제2 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제2 제어 유닛(120)이 수신하고 전달하는 제1 데이터를 의미한다.In the present invention, the second data refers to first data that the
본 발명에서 제3 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제4 제어 유닛(140)이 수신하고 전달하는 제1 데이터를 의미한다.In the present invention, the third data refers to first data that the
제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
본 발명에서 제2 암호화 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제2 제어 유닛(120)이 수신하고 전달하는 암호화 데이터를 의미한다.In the present invention, the second encrypted data refers to encrypted data that the
본 발명에서 제3 암호화 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제4 제어 유닛(140)이 수신하고 전달하는 암호화 데이터를 의미한다.In the present invention, the third encrypted data means encrypted data that the
제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
제2 제어 유닛(120)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.The
제2 제어 유닛(120)과 서버(200)가 서버 난수를 공유하는 경우, 제2 제어 유닛(120)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.When the
제4 제어 유닛(140)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.The
제4 제어 유닛(140)과 서버(200)가 서버 난수를 공유하는 경우, 제4 제어 유닛(140)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.When the
제2 제어 유닛(120)은, 제2 데이터에 대한 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화하여 제1 검증 데이터를 생성할 수 있다.The
제4 제어 유닛(140)은, 제3 데이터에 대한 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화하여 제2 검증 데이터를 생성할 수 있다.The
도 14를 참조하면, 제4 단계에서, 상기 제2 제어 유닛(120)은, 상기 제1 검증 데이터, 상기 제2 데이터, 및 상기 제2 암호화 데이터를, 상기 차량의 IVN으로 전송하고, 상기 제4 제어 유닛(140)은, 상기 제2 검증 데이터, 상기 제3 데이터, 및 상기 제3 암호화 데이터를, 상기 차량의 IVN으로 전송한다.Referring to FIG. 14, in a fourth step, the
도 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
제3 제어 유닛(130)은, 상기 제4 제어 유닛(140)이 전송한 제3 데이터와 제3 암호화 데이터를 수신한다.The
상기 제2 제어 유닛(120)은, 상기 제3 데이터 및 제3 암호화 데이터를 수신한다.The
상기 제4 제어 유닛(140)은, 상기 제2 데이터 및 제2 암호화 데이터를 수신한다.The
제1 제어 유닛(110)은, 제2 데이터, 제3 데이터, 제1 검증 데이터, 및 제2 검증 데이터를 수신한다.The
도 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
제2 제어 유닛(120)은, 상기 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제3 재검증 데이터를 생성한다.The
제2 제어 유닛(120)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.When the value obtained by decrypting the third encrypted data with the public key of the
제2 제어 유닛(120)과 서버(200)가 서버 난수를 공유하는 경우, 제2 제어 유닛(120)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.When the
제2 제어 유닛(120)은, 제3 데이터에 대한 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화하여 제3 재검증 데이터를 생성할 수 있다.The
도 18의 (b)를 참조하면, 제4 제어 유닛(140)이 제2 데이터에 대한 검증을 수행하여, 제4 재검증 데이터를 생성하는 과정이 나타난다.Referring to FIG. 18B, a process of generating the fourth re-validation data by the
제4 제어 유닛(140)은, 상기 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제4 재검증 데이터를 생성한다.The
제4 제어 유닛(140)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.The
제4 제어 유닛(140)과 서버(200)가 서버 난수를 공유하는 경우, 제4 제어 유닛(140)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.When the
제4 제어 유닛(140)은, 제2 데이터에 대한 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화하여 제4 재검증 데이터를 생성할 수 있다.The
도 18의 (c)를 참조하면, 제3 제어 유닛(130)이 제2 및 3 데이터에 대한 검증을 수행하여, 제1 및 2 재검증 데이터를 생성하는 과정이 나타난다.Referring to FIG. 18C, a process in which the
제3 제어 유닛(130)은, 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제1 재검증 데이터를 생성한다.The
제3 제어 유닛(130)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.The
제3 제어 유닛(130)과 서버(200)가 서버 난수를 공유하는 경우, 제3 제어 유닛(130)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.When the
제3 제어 유닛(130)은, 제2 데이터에 대한 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화하여 제1 재검증 데이터를 생성할 수 있다.The
제3 제어 유닛(130)은, 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제2 재검증 데이터를 생성한다.The
제3 제어 유닛(130)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.The
제3 제어 유닛(130)과 서버(200)가 서버 난수를 공유하는 경우, 제3 제어 유닛(130)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.When the
제3 제어 유닛(130)은, 제3 데이터에 대한 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화하여 제2 재검증 데이터를 생성할 수 있다.The
도 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
제1 제어 유닛(110)은, 제1 내지 4 재검증 데이터를 수신한다.The
도 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
제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단한다.In a fifth step, the
제1 제어 유닛(110)은, 제2 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화한다. 이에 따라 생성된 값(이하 '제1 확인 데이터'라 함.)은, 제1 검증 데이터에 대응하는 검증 확인 데이터이다. The
제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
제1 제어 유닛(110)은, 제2 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화한다. 이에 따라 생성된 값(이하 '제2 확인 데이터'라 함.)은, 제1 재검증 데이터에 대응하는 검증 확인 데이터이다. The
제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
제1 제어 유닛(110)은, 제2 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화한다. 이에 따라 생성된 값(이하 '제3 확인 데이터'라 함.)은, 제4 재검증 데이터에 대응하는 검증 확인 데이터이다. The
제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
제1 제어 유닛(110)은, 제3 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화한다. 이에 따라 생성된 값(이하 '제4 확인 데이터'라 함.)은, 제2 검증 데이터에 대응하는 검증 확인 데이터이다. The
제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
제1 제어 유닛(110)은, 제3 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화한다. 이에 따라 생성된 값(이하 '제5 확인 데이터'라 함.)은, 제2 재검증 데이터에 대응하는 검증 확인 데이터이다. The
제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
제1 제어 유닛(110)은, 제3 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화한다. 이에 따라 생성된 값(이하 '제6 확인 데이터'라 함.)은, 제3 재검증 데이터에 대응하는 검증 확인 데이터이다. The
제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
제1 제어 유닛(110)은, 제2 데이터와 제3 데이터가 동일한지 판단한다.The
제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
제1 제어 유닛(110)은, 상기 제2 데이터와 제3 데이터가 동일하지 않다고 판단되는 경우, 상기 제2 데이터와 제3 데이터 중, 오류가 없다고 판단된 검증 결과가 더 많은 데이터를 선택하고, 선택된 데이터를 사용하여 업데이트를 수행한다.When it is determined that the second data and the third data are not the same, the
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, 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 제어 유닛은,
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;
상기 서버는, 주기적으로 갱신되는 서버 난수(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 제어 유닛의 메모리 크기, 상기 제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.
상기 제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.
상기 IVN은, CAN(Controller Area Network)인, 차량용 제어 유닛의 업데이트 방법.
The method of claim 5,
The IVN is a controller area network (CAN).
상기 제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 제어 유닛은,
비대칭 암호화 방식(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.
상기 제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.
상기 제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 제어 유닛과 제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.
상기 제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.
상기 제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.
상기 제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.
상기 차량은, 상기 서버와 통신을 수행하는 제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.
상기 제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.
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)
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)
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)
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 |
-
2017
- 2017-11-24 KR KR1020170157805A patent/KR102025808B1/en active IP Right Grant
Patent Citations (3)
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)
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 |