KR20160144597A - 차량용 진단통신 시스템 및 그의 데이터 보안방법 - Google Patents

차량용 진단통신 시스템 및 그의 데이터 보안방법 Download PDF

Info

Publication number
KR20160144597A
KR20160144597A KR1020150080936A KR20150080936A KR20160144597A KR 20160144597 A KR20160144597 A KR 20160144597A KR 1020150080936 A KR1020150080936 A KR 1020150080936A KR 20150080936 A KR20150080936 A KR 20150080936A KR 20160144597 A KR20160144597 A KR 20160144597A
Authority
KR
South Korea
Prior art keywords
data
security
seed
vehicle
unit
Prior art date
Application number
KR1020150080936A
Other languages
English (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 KR1020150080936A priority Critical patent/KR20160144597A/ko
Publication of KR20160144597A publication Critical patent/KR20160144597A/ko

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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 차량용 진단통신 시스템 및 그의 데이터 보안방법에 관한 것으로서, 본 데이터 보안방법은, 차량에 설치된 차량용 CAN 통신 장치에서 차량의 진단을 위한 진단장치로 시드를 요청하는 단계, 진단장치에서 차량용 CAN 통신 장치로 시드가 전송되는 단계, 시드와 데이터 마스크를 논리연산하는 단계, 시드와 데이터 마스크의 논리연산 결과값을 이용하여 데이터의 보안방법을 결정하는 단계, 보안방법에 따라 데이터를 보안하는 단계, 보안방법에 의해 보안된 데이터를 압축하는 단계를 포함한다. 이에 의해, CAN 통신에 사용되는 데이터를 안전하게 송수신할 수 있다.

Description

차량용 진단통신 시스템 및 그의 데이터 보안방법{DIAGNOSIS COMMUNICATION SYSTEM FOR VEHICLE AND DATA SECURITY METHOD THEREOF}
본 발명은 차량용 진단통신 시스템 및 그의 데이터 보안방법에 관한 것으로서, 보다 상세하게는, 차량용 CAN 통신장치에서는 진단장치로부터 제공된 시드를 이용하여 데이터의 보안방법을 설정하여 데이터를 보안하고, 진단장치에서는 시드를 이용하여 보안방법을 판단하고 데이터의 보안을 해제하도록 함으로써, CAN 통신에 사용되는 데이터를 안전하게 송수신할 수 있도록 하는 차량용 진단통신 시스템 및 그의 데이터 보안방법에 관한 것이다.
ECU(Electronic Control Unit)는 차량의 주요 어셈블리를 제어하고 관리하는 기능을 가진 제어장치로서, 차량에는 어셈블리에 따라 다수의 ECU가 설치되어 각 어셈블리를 제어한다.
이러한 각 ECU에는 각 어셈블리를 제어하기 위한 프로그램들이 설치된다. 초기에 ECU에 프로그램들이 설치되면, 프로그램들이 제대로 동작하는지 시험하기 위해서 진단장치를 이용한 진단공정이 수행된다. 그리고 각 프로그램들에 이상이 발생하여 프로그램을 수정할 필요가 있거나 프로그램들을 업데이트하기 위한 튜닝을 위해서는 진단장치를 이용한 튜닝공정이 수행된다.
진단장치를 이용한 진단공정 및 튜닝공정의 수행시, 차량용 CAN 통신 장치는 각 ECU로부터 데이터를 수집하여 CAN 통신 라인을 이용하여 진단장치로 전송하고, 진단장치는 프로그램의 수정 및 업데이트 데이터를 차량용 CAN 통신 장치로 제공하게 된다. 이렇게 차량용 CAN 통신 장치와 진단장치 사이에 데이터를 송수신할 때, CAN 통신방식이 일대다 통신방식을 기본으로하기 때문에 데이터의 보안이 취약하다는 단점이 있다. 뿐만 아니라, 데이터의 사이즈가 크면 통신시간이 증가되고, 통신상 오류가 발생할 확률이 커지며, CAN 통신라인을 점유하는 부하의 증가로 다른 어셈블리의 통신에 영향을 미치게 된다.
본 발명은, 차량용 CAN 통신 장치와 진단장치와의 CAN 통신시 데이터를 암호화하여 송수신함으로써, 데이터의 보안을 확보할 수 있는 차량용 진단통신 시스템 및 그의 데이터 보안방법을 제안한다.
또한, 본 발명은, 차량용 CAN 통신 장치와 진단장치와의 CAN 통신시 데이터를 압축하여 송수신함으로써, 통신시간과 통신오류를 감소시키고 CAN 통신의 부하를 감소시킬 수 있는 차량용 진단통신 시스템 및 그의 데이터 보안방법을 제안한다.
상기 목적은, 차량의 각 ECU에서 수집된 데이터를 미리 설정된 보안 알고리즘을 이용하여 암호화하는 보안모듈; 상기 보안모듈에서 암호화된 데이터를 압축하는 압축모듈; 및 상기 보안모듈에서 암호화되고 상기 압축모듈에서 압축된 데이터를 외부의 진단장치로 제공하는 제어부;를 포함하는 차량용 진단통신 시스템에 의해 달성될 수 있다.
상기 목적은, 차량에 설치된 차량용 CAN 통신 장치에서 상기 차량의 진단을 위한 진단장치로 시드를 요청하는 단계; 상기 진단장치에서 상기 차량용 CAN 통신 장치로 시드가 전송되는 단계; 상기 시드와 데이터 마스크를 논리연산하는 단계; 상기 시드와 데이터 마스크의 논리연산 결과값을 이용하여 데이터의 보안방법을 결정하는 단계; 상기 보안방법에 따라 데이터를 보안하는 단계; 및 상기 보안방법에 의해 보안된 데이터를 압축하는 단계;를 포함하는 것을 특징으로 하는 차량용 진단통신 데이터의 보안방법에 의해서도 달성될 수 있다.
본 발명에 따르면, 차량용 CAN 통신 장치에서는 데이터의 보안을 설정하고, 진단장치에서는 데이터의 보안을 해제할 수 있도록 함으로써, 데이터의 안정성을 보장할 수 있다. 뿐만 아니라, 보안 설정된 데이터를 압축하여 송수신함으로써, 데이터의 통신 시간 및 오류 확률을 감소시키고 CAN 통신 라인의 부하율을 개선할 수 있다.
도 1은 본 발명에 따른 차량용 진단통신 시스템의 구성블럭도,
도 2는 도 1의 보안모듈의 구성블럭도,
도 3은 도 1의 보안해제모듈의 구성블럭도,
도 4는 본 발명에 따른 차량용 진단통신 시스템에서 데이터를 보안 및 보안해제하는 과정을 보인 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명에 따른 차량용 진단통신 시스템의 구성블럭도이고, 도 2는 도 1의 보안모듈의 구성블럭도이고, 도 3은 도 1의 보안해제모듈의 구성블럭도이다.
본 발명에 따른 차량용 진단통신 시스템은, 차량과 진단장치(50) 간의 데이터 송수신시 데이터를 보안처리 및 압축함으로써, 데이터의 보안을 향상시키고 통신 효율을 향상시킬 수 있도록 한다.
본 차량용 진단통신 시스템은, CAN 통신을 기반으로 하며, 차량의 ECU에 마련되어 미리 설정된 보안 및 압축 알고리즘에 따라 각 ECU에서 수집된 데이터를 보안처리 및 압축하는 차량용 CAN 통신 장치(10)와, 차량용 CAN 통신 장치(10)로부터 제공된 데이터를 보안해제 및 압축해제하여 차량의 상태를 진단하거나 튜닝하는 진단장치(50)를 포함할 수 있다.
차량용 CAN 통신 장치(10)는, ECU에서 수집된 데이터를 보안처리하는 보안모듈(11), 암호화된 데이터를 압축하는 압축모듈(13), ECU에서 수집된 데이터를 저장하는 차량측 저장부(15), 외부의 진단장치(50)와의 통신을 지원하는 차량측 통신부(17), 데이터의 처리과정을 제어하는 차량측 제어부(19)를 포함할 수 있다.
보안모듈(11)은, 도 2에 도시된 바와 같이, ECU에서 수집된 데이터를 보안 알고리즘을 이용하여 보안처리하며, 진단장치(50)로부터 제공받은 시드를 처리하여 보안방법을 결정하는 시드 처리유닛(20)과, 시드 처리유닛(20)에서 결정된 보안방법에 따라 데이터를 보안처리하는 데이터 처리유닛(30)을 포함할 수 있다.
시드 처리유닛(20)은, 16진수 형식의 시드를 2진수로 변환하는 바이너리 변환부(21), 2진수의 시드를 데이터 마스크와 논리연산하는 논리연산부(23), 논리연산된 시드를 이용하여 데이터의 보안방법을 결정하는 해석부(25)를 포함할 수 있다.
일반적으로 차량과 진단장치(50) 간에 송수신되는 정보는, 데이터 패킷 형태로 마련되어 CAN 통신을 통해 송수신되며, 데이터 패킷은 우선순위 및 식별자 기능을 가지는 고유의 패킷 ID, 데이터의 바이트 수를 나타내는 신호길이, 최대 8 바이트로 이루어진 데이터를 포함할 수 있다.
보안모듈(11)에서 보안처리 과정이 시작되면, 차량측 제어부(19)는 차량측 통신부(17)를 통해 진단장치(50)로 시드(Seed)를 요청할 수 있다. 본 발명에서 시드를 이용하여 데이터를 보안처리하는 방법을 결정할 수 있다.
차량측 제어부(19)는 진단장치(50)로부터 시드를 제공받으면, 보안모듈(11)로 시드를 제공한다.
시드 처리유닛(20)의 바이너리 변환부(21)는 16진수 형식으로 제공된 시드를 2진수로 변환한다. 예를 들어, 시드가 B0B0B0B0이면, 바이너리 변환부(21)는 데이터를 1011 0000 1011 0000 1011 0000 1011 0000로 변환한다.
논리연산부(23)는, 2진수로 변환된 시드를 데이터 마스크와 XOR 논리연산한다. 이를 위해, 논리연산부(23)는 복수의 데이터 마스크에 대한 정보를 가지고 있으며, 데이터 마스크의 개수는 설계자에 의해 다양하게 설계될 수 있다. 본 실시예에서는 데이터 마스크의 개수가 16개로 설정되어 있으며, 각 데이터 마스크에는 0부터 15의 마스크 ID가 부여되어 있다. 각 데이터 마스크는 설계자에 의해 설정되고, 차량용 CAN 통신 장치(10)와 진단장치(50)는 각각 데이터 마스크에 대한 정보를 보유하고 있다.
다음의 표 1에는 데이터 마스크의 실시예를 보여준다.
마스크 ID 데이터 마스크
0 12345678
1 0AB12345
2 35795CD1
3 564AE829
4 55468C73
5 BE254D36
6 2D658CA3
7 958A357D
8 26485BDE
9 4737A687
10 CAC34596
11 256FE800
12 F3826B48
13 7576ED84
14 6318AC62
15 89BA64D6
논리연산부(23)에서는 바이너리 변환부(21)로부터 데이터를 제공받으면, 데이터 마스크를 선택하며, 이때, 시드의 LSB(Least Significant Bit)의 니블(nibble)을 사용한다. LSB의 니블은 데이터의 마지막 4비트를 지칭하며, 논리연산부(23)는 LSB의 니블을 10진수로 변환한 숫자와, 마스크 ID를 매칭시켜 데이터 마스크를 선택한다. 즉, LSB의 니블이 0001 경우, 논리연산부(23)는 마스크 ID가 0인 데이터 마스크를 선택하고, LSB의 니블이 0011인 경우에는 마스크 ID가 3인 데이터 마스크를 선택하는 것이다.
예를 들어, 시드가 1011 0000 1011 0000 1011 0000 1011 0000인 경우, LSB의 니블은 0000이 되므로, 논리연산부(23)는 마스크 ID가 0인 데이터 마스크 12345678을 선택하게 된다. 여기서 데이터 마스크 12345678은 2진수로 0001 0010 0011 0100 0101 0110 0111 1000 이 된다.
논리연산부(23)에서 시드와 데이터 마스크를 XOR 논리연산하는 과정은 다음과 같다.
시드 1011 0000 1011 0000 1011 0000 1011 0000
데이터 마스크 0001 0010 0011 0100 0101 0110 0111 1000
XOR 1010 0010 1000 0100 1110 0110 1100 1000
본 실시예에서는 데이터 마스크를 16개로 설정하였으나, 데이터 마스크를 256개로 설정하고, 시드의 마지막 1바이트를 이용하여 데이터 마스크를 선택하도록 설정할 수도 있음은 물론이다. 또한, 본 실시예의 논리연산부(23)에서는 논리연산으로 XOR 논리연산을 수행하였으나, AND, OR, NAND, NOR, NOT 연산 중 하나를 수행할 수도 있음은 물론이다.
해석부(25)는 논리연산부(23)에서 논리연산된 2진수의 시드를 미리 설정된 변환규칙으로 해석하여 데이터를 보안처리할 보안방법을 결정할 수 있다. 해석부(25)는 먼저 미리 설정된 복수의 비트를 선택하며, 이때, 복수의 비트는 4개의 비트, 1개의 니블일 수 있다. 해석부(25)는 미리 설정된 니블이 선택되면, 해당 니블을 변환규칙에 따라 해석한다.
이때, 변환규칙은 설계자에 의해 자유롭게 설계될 수 있다. 예를 들어, 변환규칙이 데이터를 왼쪽 또는 오른쪽으로 일정 비트만큼 시프트시키는 것으로 설정되었다고 보자. 여기서, 왼쪽 또는 오른쪽을 선택하기 위한 첫번째 기준과, 데이터를 시프트시키는 비트 개수를 선택하기 위한 두번째 기준이 필요하다. 이를 위해, 해석부(25)는 선택된 니블의 첫번째 비트가 0이면 왼쪽으로 시프트하도록 하고 1이면 오른쪽으로 시프트하도록 하며, 니블을 10진수화한 숫자를 데이터가 시프트되는 비트 개수로 선택할 수 있다.
예를 들어, 해석부(25)에서 4번째 니블을 선택하도록 설정된 경우, 해석부(25)는 논리연산부(23)에서 출력된 1010 0010 1000 0100 1110 0110 1100 1000 에서 4번째 니블인 0100을 선택한다. 해석부(25)는, 0100의 첫번째 비트가 0이므로 데이터가 왼쪽으로 시프트되어야 한다고 해석하고, 0100을 10진수화하면 4이므로, 데이터가 4비트만큼 시프트되어야 한다고 해석할 수 있다. 즉, 해석부(25)는 데이터를 왼쪽으로 4비트만큼 시프트하도록 해석할 수 있다.
데이터 처리유닛(30)은, 해석부(25)에서 해석된 결과를 이용하여 데이터를 변환하는 데이터 변환부(31), 데이터를 16진수화하는 Hex 변환부(33)를 포함할 수 있다.
데이터 변환부(31)는 해석부(25)에서 해석된 결과를 이용하여 ECU에서 수집된 2진수 데이터를 변환할 수 있다. 즉, 데이터 변환부(31)는 해석부(25)에서 해석된 방향과 비트 수를 이용하여 데이터를 시프트시켜 변환한다.
예를 들어, 논리연산부(23)에서 출력된 데이터가 1이고, 해석부(25)에서 왼쪽으로 4비트만큼 시프트하는 것으로 해석된 경우, 데이터 변환부(31)에서는 데이터를 왼쪽으로 4비트만큼 시프트하고, 제일 앞 4비트는 마지막 4비트로 이동시키도록 한다. 이에 따라, ECU에서 수집된 데이터와 데이터 변환부(31)에서 각각 출력된 데이터는 다음과 같다.
논리연산부 출력 데이터 0000 0000 0000 0000 0000 0000 0000 0001
데이터 변환부 출력 데이터 0000 0000 0000 0000 0000 0000 0001 0000
Hex 변환부(33)는 데이터 변환부(31)에서 변환된 2진수 데이터를 16진수로 변환할 수 있다. 이에 따라, 데이터 변환부(31)에서 출력된 데이터는 Hex 변환부(33)에서 다음과 같이 출력될 수 있다.
데이터 변환부 출력 데이터 0000 0000 0000 0000 0000 0000 0001 0000
Hex 변환부 출력 데이터 00 00 00 10
이렇게 보안모듈(11)의 데이터 처리유닛(30)에서 데이터의 보안처리가 완료되면, 데이터 패킷은 압축모듈(13)로 전달된다.
압축모듈(13)에서는 CAN 통신에서 일반적으로 사용되는 다양한 압축 알고리즘을 사용하여 데이터 패킷을 압축할 수 있다. 예를 들어, 압축모듈(13)은 전송하려는 데이터와 이전 데이터의 변화량을 비교하고, 변화량이 미리 정해진 범위내에 있을 경우에는 변화량만으로 구성된 데이터로 압축하여 데이터를 전송하는 압축방법을 사용할 수 있다. 압축모듈(13)에서는 이외에도 다양한 방법을 이용하여 데이터를 압축할 수
차량측 저장부(15)는, 각 ECU에서 제공된 데이터, 진단장치(50)로부터 제공받은 시드, 데이터 마스크가 저장될 수 있다. 차량측 저장부(15)에는 ECU에서 수집한 데이터 원본이 저장될 수도 있고, 보안모듈(11)에서 보안처리가 완료된 데이터가 저장될 수도 있고, 압축모듈(13)에서 압축이 완료된 데이터가 저장될 수도 있다. 다만, 압축모듈(13)에서 사용하는 압축 알고리즘이 전송하려는 데이터와 이전 데이터를 비교하는 경우에는 데이터의 보안처리가 되기 전의 데이터를 사용하는 것이 간편할 수 있으므로, 차량측 저장부(15)에 데이터 원본을 저장하는 것이 바람직할 수 있다. 이에 따라, 차량측 저장부(15)에 저장되는 데이터의 상태는 데이터의 처리가 편리한 상태로 저장되는 것이 바람직하다.
차량측 통신부(17)는 CAN(Controller Area Network) 프로토콜을 이용하여 각 ECU 및 진단장치(50)와 통신할 수 있다. 차량측 통신부(17)는 차량측 제어부(19)로부터의 제어에 따라 보안모듈(11)에서 보안처리되고 압축모듈(13)에서 압축된 데이터를 진단장치(50)로 전송할 수 있다.
차량측 제어부(19)는, 각 ECU에서 제공된 정보를 차량측 저장부(15)에 저장하는 한편, 데이터 패킷을 생성하여 보안모듈(11)로 전달함으로써 데이터가 보안처리되도록 한다. 데이터의 보안처리가 완료되면, 차량측 제어부(19)는 압축모듈(13)을 작동시켜 데이터를 압축하고, 압축된 데이터 패킷을 차량측 통신부(17)를 통해 진단장치(50)로 전송한다.
또한, 차량측 제어부(19)는 데이터 패킷을 보안처리할 때, 진단장치(50)로 시드를 요청하고, 진단장치(50)로부터 제공된 시드를 보안모듈(11)로 제공함으로써, 시드를 이용하여 데이터의 압축을 위한 보안방법이 결정되도록 한다.
진단장치(50)는, 장치측 통신부(51), 압축해제부(53), 보안해제모듈(55), 장치측 저장부(57), 진단부(59), 장치측 제어부(61)를 포함할 수 있다.
장치측 통신부(51)는 CAN 프로토콜을 이용하여 차량측 통신부(17)와 통신하며, 차량측 통신부(17)로부터 데이터 패킷을 수신할 수 있다.
장치측 저장부(57)는 차량용 CAN 통신 장치(10)로부터 진단장치(50)로 제공되는 시드, 데이터 변환을 위한 데이터 마스크, 차량용 CAN 통신 장치(10)로부터 제공되는 데이터를 저장할 수 있다. 여기서, 시드는 다수개가 저장되며, 장치측 제어부(61)는 차량용 CAN 통신 장치(10)로부터의 요청에 따라 장치측 저장부(57)에 저장된 시드 중 하나를 랜덤하게 선택하여 차량용 CAN 통신 장치(10)로 제공할 수 있다. 한편, 데이터 마스크는 차량용 CAN 통신 장치(10)에 저장된 데이터 마스크와 동일하다.
진단부(59)는 차량용 CAN 통신 장치(10)로부터 제공된 데이터를 이용하여 차량을 진단하고 진단결과를 외부로 표시할 수 있다.
장치측 제어부(61)는 차량용 CAN 통신 장치(10)와의 데이터 송수신과, 진단장치(50)에서의 진단과정을 제어할 수 있다. 장치측 제어부(61)는 차량용 CAN 통신 장치(10)로부터 시드가 요청되면, 장치측 저장부(57)에 저장된 시드를 랜덤으로 선택하여 차량용 CAN 통신 장치(10)로 전송한다. 장치측 제어부(61)는 차량용 CAN 통신 장치(10)로 전송한 시드에 대한 정보를 압축해제부(53)로 전달한다.
압축해제부(53)는 차량용 CAN 통신 장치(10)로부터 제공된 데이터 패킷의 압축을 해제하며, 압축해제부(53)는 차량용 CAN 통신 장치(10)의 압축모듈(13)에서 사용한 압축 알고리즘에 대한 압축해제 알고리즘을 가지고 있다. 압축해제부(53)에서 압축이 해제된 데이터 패킷은 보안해제모듈(55)로 전달된다.
보안해제모듈(55)은, 차량용 CAN 통신 장치(10)의 보안모듈(11)에서 보안처리된 데이터 패킷을 보안해제한다. 보안해제모듈(55)은, 진단장치(50)에서 차량용 CAN 통신 장치(10)로 제공된 시드에 대한 정보를 이용하여 데이터의 보안해제방법을 결정하는 보안해제방법결정부(63)와, 결정된 보안해제방법을 이용하여 보안을 해제하는 보안해제부(65)를 포함할 수 있다.
보안해제방법결정부(63)는, 장치측 제어부(61)에서 차량용 CAN 통신 장치(10)로 제공한 시드에 대한 정보를 장치측 제어부(61)로부터 제공받으며, 제공받은 시드를 이용하여 데이터 마스크를 파악하고, 시드와 데이터 마스크를 논리연산하여 데이터의 보안방법을 판단할 수 있다. 보안해제방법결정부(63)는 데이터 마스크를 시드의 마지막 니블을 이용한다는 규칙과, 데이터 마스크와 시드의 논리연산값에서 4번째 니블을 이용하여 데이터를 변환한다는 규칙과, 4번째 니블의 첫번째 비트가 0이면 왼쪽으로 시프트하도록 하고 1이면 오른쪽으로 시프트한다는 규칙과, 4번째 니블을 10진수화한 숫자만큼 데이터가 시프트된다는 규칙에 대한 정보를 이미 가지고 있다.
보안해제방법결정부(63)는 이미 가지고 있는 상술한 규칙을 이용하여 암호해제방법을 판단한다. 먼저, 보안해제방법결정부(63)는 시드의 마지막 니블을 이용하여 데이터 마스크를 선택하고, 시드와 데이터 마스크를 XOR 논리연산한다. 그리고 논리연산된 결과값에서 4번째 니블의 첫번째 비트를 이용하여 데이터의 시프트 방향을 결정하고, 4번째 니블의 10진수를 시프트 비트 수로 하여 보안방법을 판단한다. 그런 다음, 보안방법을 반대로 이용하여 보안해제방법을 판단한다. 즉, 보안해제방법결정부(63)는 4번째 니블에 의해 데이터가 오른쪽으로 4비트만큼 시프트되었다고 보안방법이 파악되면, 보안해제방법은 데이터를 왼쪽으로 4비트만큼 시프트하는 것으로 결정한다.
보안해제부(65)에서는 압축해제된 데이터를 보안해제방법결정부(63)에서 결정된 바와 같은 보안해제방법을 이용하여 처리함으로써, 데이터의 보안을 해제할 수 있다. 예를 들어, 보안해제부(65)는 보안해제방법결정부(63)에서 데이터를 오른쪽으로 10비트만큼 시프트하도록 보안해제방법이 결정되면, 데이터를 오른쪽으로 10비트만큼 시프트시켜서 보안을 해제한다. 보안이 해제된 데이터는 진단부(59)로 전달된다.
이러한 구성에 따른 차량용 진단통신 시스템에서 차량용 CAN 통신 장치(10)와 진단장치(50) 간에 데이터를 보안압축하여 송수신하는 과정을 도 4를 참조하여 설명하면 다음과 같다.
차량용 CAN 통신 장치(10)에서 ECU로부터 데이터를 수집하고, 진단장치(50)로부터 데이터의 전송을 요청하면, 차량용 CAN 통신 장치(10)의 차량측 제어부(19)에서는 진단장치(50)로 시드를 요청한다(S400).
그러면, 진단장치(50)의 장치측 제어부(61)에서는 장치측 저장부(57)에 저장된 시드를 랜덤으로 선택하여 차량용 CAN 통신 장치(10)로 제공한다(S405). 차량용 CAN 통신 장치(10)의 보안모듈(11)에서는 진단장치(50)로부터 제공받은 시드를 2진수로 변환하고(S410), 마지막 니블을 이용하여 데이터 마스크를 선택한 다음(S415), 시드와 데이터 마스크를 XOR 논리연산한다(S420).
보안모듈(11)에서는 논리연산된 값에서 미리 설정된 특정 니블을 선택하고, 니블을 이용하여 데이터의 시프트 방향과 시프트 비트 수를 판단한다(S425). 그런 다음, 보안모듈(11)에서는 판단된 시프트 방향과 비트 수에 따라 데이터를 시프트시켜 데이터를 보안처리하고(S430), 압축모듈(13)에서는 보안 처리된 데이터를 압축한다(S435). 차량측 제어부(19)에서는 보안처리 및 압축된 데이터를 진단장치(50)로 전송한다(S440).
진단장치(50)에서는 데이터를 수신하면, 압축해제부(53)를 이용하여 데이터를 압축해제하고(S445), 보안해제모듈(55)에서는 진단장치(50)에서 차량용 CAN 통신 장치(10)로 제공한 시드를 이용하여 데이터의 보안방법을 판단한다.
보안해제모듈(55)에서는, 시드를 이용하여 데이터 마스크를 선택한 다음(S450), 시드와 데이터 마스크를 논리연산하여 2진수값을 산출한다(S455). 그런 다음, 보안해제모듈(55)은 2진수값에서 미리 설정된 니블을 선택하고, 해당 니블을 이용하여 데이터의 시프트 방향과 시프트 비트 수를 파악한다(S460). 그런 다음, 보안방법을 반대로 이용하여 보안해제방법을 결정한다(S465). 즉, 보안해제모듈(55)에서는 시프트 방향을 반대로 하여 시프트 비트 수만큼 데이터를 시프트시킴으로써(S470), 데이터의 보안을 해제할 수 있다. 진단부(59)는 압축 및 보안이 해제된 데이터를 진단처리한다(S475).
이와 같이, 본 발명에 따른 차량용 진단통신 시스템에서는 차량용 CAN 통신 장치(10)와 진단장치(50) 간에 데이터를 송수신할 때, 차량용 CAN 통신 장치(10)에서는 데이터의 보안을 설정하고, 진단장치(50)에서는 데이터의 보안을 해제할 수 있도록 함으로써, 데이터의 안정성을 보장할 수 있다. 뿐만 아니라, 보안 설정된 데이터를 압축하여 송수신함으로써, 데이터의 통신 시간 및 오류 확률을 감소시키고 CAN 통신 라인의 부하율을 개선할 수 있다.
전술한 실시예에서 언급한 표준내용 또는 표준문서들은 명세서의 설명을 간략하게 하기 위해 생략한 것으로 본 명세서의 일부를 구성한다. 따라서, 위 표준내용 및 표준문서들의 일부의 내용을 본 명세서에 추가하거나 청구범위에 기재하는 것은 본 발명의 범위에 해당하는 것으로 해석되어야 한다.
이상의 설명은 본 발명의 기술사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 아래의 청구범위에 의하여 해석되어야하며, 그와 동등한 범위내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10 : 차량용 CAN 통신 장치 11 : 보안모듈
13 : 압축모듈 15 : 차량측 저장부
17 : 차량측 통신부 19 : 차량측 제어부
20 : 시드 처리유닛 21 : 바이너리 변환부
23 : 논리연산부 25 : 해석부
30 : 데이터 처리유닛 31 : 데이터 변환부
33 : Hex 변환부 50 : 진단장치
51 : 장치측 통신부 53 : 압축해제부
55 : 보안해제모듈 57 : 장치측 저장부
59 : 진단부 61 : 장치측 제어부
63 : 보안해제방법결정부 65 : 보안해제부

Claims (18)

  1. 차량의 각 ECU에서 수집된 데이터를 미리 설정된 보안 알고리즘을 이용하여 보안처리하는 보안모듈;
    상기 보안모듈에서 보안처리된 데이터를 압축하는 압축모듈; 및
    상기 보안모듈에서 보안처리되고 상기 압축모듈에서 압축된 데이터를 외부의 진단장치로 제공하는 제어부;를 갖는 차량용 CAN 통신 장치를 포함하는 차량용 진단통신 시스템.
  2. 제1항에 있어서,
    상기 보안모듈은,
    상기 진단장치로부터 제공받은 시드를 처리하여 보안방법을 결정하는 시드 처리유닛과,
    상기 시드 처리유닛에서 결정된 보안방법에 따라 데이터를 보안처리하는 데이터 처리유닛을 포함하는 것을 특징으로 하는 차량용 진단통신 시스템.
  3. 제2항에 있어서,
    상기 시드 처리유닛은,
    상기 시드를 16진수에서 2진수로 변환하는 바이너리 변환부;
    상기 시드를 데이터 마스크와 논리연산하는 논리연산부;
    상기 논리연산부에서 논리연산된 결과값에서 복수의 비트를 선택하고, 상기 복수의 비트를 미리 설정된 보안규칙에 따라 해석하여 보안방법을 설정하는 해석부;를 포함하는 것을 특징으로 하는 차량용 진단통신 시스템.
  4. 제3항에 있어서,
    상기 데이터 처리유닛은,
    상기 시드 처리유닛에서 설정된 보안방법에 따라, 상기 데이터를 보안처리하는 데이터 변환부;
    상기 데이터 변환부에서 보안처리된 데이터를 2진수에서 16진수로 변환하는 Hex 변환부;를 포함하는 것을 특징으로 하는 차량용 진단통신 시스템.
  5. 제3항에 있어서,
    상기 데이터 마스크는, 적어도 16의 1배수에 해당하는 개수만큼 구비되며, 2진수로 변환된 상기 시드의 비트 수와 동일한 비트 수를 갖는 것을 특징으로 하는 차량용 진단통신 시스템.
  6. 제3항에 있어서,
    상기 논리연산부는 상기 시드의 마지막 니블을 이용하여 상기 데이터 마스크 중 하나를 선택하는 것을 특징으로 하는 차량용 진단통신 시스템.
  7. 제3항에 있어서,
    상기 논리연산부는 XOR, AND, OR, NAND, NOR, NOT 중 하나를 선택하여 상기 데이터 마스크와 상기 시드의 논리연산을 수행하는 것을 특징으로 하는 차량용 진단통신 시스템.
  8. 제3항에 있어서,
    상기 해석부는, 상기 논리연산된 결과값에서 미리 약속된 니블을 선택하고, 상기 니블의 첫번째 비트를 이용하여 상기 데이터를 좌우 중 어느 쪽으로 시프트할지 여부를 결정하고, 상기 니블을 10진수로 변환하여 상기 데이터를 시프트할 비트의 개수를 결정하는 것을 특징으로 하는 차량용 진단통신 시스템.
  9. 제1항에 있어서,
    상기 보안모듈에서 보안처리된 데이터를 보안해제하는 보안해제모듈과, 상기 압축모듈에서 압축된 데이터를 압축해제하는 압축해제부를 포함하는 진단장치;를 더 포함하는 것을 특징으로 하는 차량용 진단통신 시스템.
  10. 제9항에 있어서,
    상기 보안해제모듈은,
    상기 차량용 CAN 통신 장치로 제공된 시드를 이용하여 상기 데이터의 보안해제방법을 결정하는 보안해제방법결정부와, 상기 보안해제방법결정부에서 결정된 보안해제방법을 이용하여 상기 데이터의 보안을 해제하는 보안해제부를 포함하는 것을 특징으로 하는 차량용 진단통신 시스템.
  11. 제10항에 있어서,
    상기 보안해제방법결정부는, 상기 시드의 마지막 니블에 대응되는 데이터 마스크를 선택하여 상기 시드와 상기 데이터 마스크를 논리연산하고, 논리연산 결과값에서 미리 약속된 니블을 선택하여 상기 데이터가 시프트된 방향과 비트 수를 판단하는 것을 특징으로 하는 차량용 진단통신 시스템.
  12. 제10항에 있어서,
    상기 보안해제부는, 상기 데이터가 시프트된 방향에 대해 반대방향으로 상기 데이터가 시프트된 비트 수만큼 상기 데이터를 시프트시켜 보안을 해제하는 것을 특징으로 하는 차량용 진단통신 시스템.
  13. 차량에 설치된 차량용 CAN 통신 장치에서 상기 차량의 진단을 위한 진단장치로 시드를 요청하는 단계;
    상기 진단장치에서 상기 차량용 CAN 통신 장치로 시드가 전송되는 단계;
    상기 시드와 데이터 마스크를 논리연산하는 단계;
    상기 시드와 데이터 마스크의 논리연산 결과값을 이용하여 데이터의 보안방법을 결정하는 단계;
    상기 보안방법에 따라 데이터를 보안하는 단계; 및
    상기 보안방법에 의해 보안된 데이터를 압축하는 단계;를 포함하는 것을 특징으로 하는 차량용 진단통신 데이터의 보안방법.
  14. 제13항에 있어서,
    상기 시드를 상기 진단장치로부터 제공받으면, 상기 시드를 16진수에서 2진수로 변환하는 단계와,
    상기 시드의 마지막 4비트의 10진수에 대응되는 ID를 갖는 데이터 마스크를 선택하는 단계를 더 포함하는 것을 특징으로 하는 차량용 진단통신 데이터의 보안방법.
  15. 제13항에 있어서,
    상기 보안방법을 결정하는 단계는, 논리연산된 결과값에서 미리 약속된 니블을 선택한 다음, 상기 니블의 첫번째 비트를 이용하여 상기 데이터를 좌우 중 어느 쪽으로 시프트할지 여부를 결정하고, 상기 니블을 10진수로 변화하여 상기 데이터를 시프트할 비트의 개수를 결정하는 단계인 것을 특징으로 하는 차량용 진단통신 데이터의 보안방법.
  16. 제13항에 있어서,
    압축된 상기 데이터를 상기 진단장치로 전송하는 단계;
    상기 압축된 데이터를 압축해제하는 단계;
    상기 진단장치에서 상기 시드를 이용하여 상기 보안방법을 파악하는 단계;
    상기 보안방법을 이용하여 상기 데이터의 보안을 해제하기 위한 보안해제방법을 결정하는 단계;
    상기 보안해제방법에 따라 상기 데이터의 보안을 해제하는 단계;를 포함하는 것을 특징으로 하는 차량용 진단통신 데이터의 보안방법.
  17. 제13항에 있어서,
    상기 보안방법을 파악하는 단계는,
    상기 시드의 마지막 니블을 이용하여 상기 데이터 마스크 중 하나를 선택하는 단계;
    상기 시드와 상기 데이터 마스크를 논리연산하는 단계;
    논리연산된 결과값에서 미리 약속된 니블을 선택한 다음, 상기 니블의 첫번째 비트를 이용하여 상기 데이터가 좌우 중 어느 쪽으로 시프트되었는지 판단하고, 상기 니블을 10진수로 변화하여 상기 데이터가 시프트된 비트의 개수를 판단하여 상기 보안방법을 파악하는 단계를 포함하는 것을 특징으로 하는 차량용 진단통신 데이터의 보안방법.
  18. 제13항에 있어서,
    상기 보안을 해제하는 단계는, 상기 데이터가 시프트된 방향에 대해 반대방향으로 상기 데이터가 시프트된 비트 수만큼 상기 데이터를 시프트시켜 보안을 해제하는 단계인 것을 특징으로 하는 차량용 진단통신 데이터의 보안방법.
KR1020150080936A 2015-06-09 2015-06-09 차량용 진단통신 시스템 및 그의 데이터 보안방법 KR20160144597A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150080936A KR20160144597A (ko) 2015-06-09 2015-06-09 차량용 진단통신 시스템 및 그의 데이터 보안방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150080936A KR20160144597A (ko) 2015-06-09 2015-06-09 차량용 진단통신 시스템 및 그의 데이터 보안방법

Publications (1)

Publication Number Publication Date
KR20160144597A true KR20160144597A (ko) 2016-12-19

Family

ID=57735291

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150080936A KR20160144597A (ko) 2015-06-09 2015-06-09 차량용 진단통신 시스템 및 그의 데이터 보안방법

Country Status (1)

Country Link
KR (1) KR20160144597A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020080572A1 (ko) * 2018-10-16 2020-04-23 주식회사 디젠 차량 네트워크 보안 장치 및 그 방법
US11550326B2 (en) 2018-10-15 2023-01-10 Samsung Electronics Co., Ltd. Method and apparatus for controlling vehicle

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11550326B2 (en) 2018-10-15 2023-01-10 Samsung Electronics Co., Ltd. Method and apparatus for controlling vehicle
WO2020080572A1 (ko) * 2018-10-16 2020-04-23 주식회사 디젠 차량 네트워크 보안 장치 및 그 방법

Similar Documents

Publication Publication Date Title
US7307552B2 (en) Method and apparatus for efficient hardware based deflate
CN110460573A (zh) 一种应用于汽车ecu安全升级管理系统及方法
CN111865743A (zh) 车辆can总线模糊测试方法、系统、电子设备及存储介质
US11128650B2 (en) Detection of manipulations in a CAN network by checking CAN identifiers
CN108881454B (zh) 文件传输方法、移动终端及存储介质
US11514731B2 (en) Method and system for remote vehicle diagnostics
CN111552268B (zh) 一种车辆远程诊断方法、设备连接器及车辆连接器
US11139999B2 (en) Method and apparatus for processing signals from messages on at least two data buses, particularly CAN buses; preferably in a vehicle; and system
KR20160144597A (ko) 차량용 진단통신 시스템 및 그의 데이터 보안방법
CN111506047A (zh) 车辆诊断方法、装置及存储介质
CN102255687A (zh) 速率匹配方法与装置
CN113453188A (zh) 一种智能网联汽车无线安全监测系统、方法及存储介质
CN113672478A (zh) 日志获取方法、装置、终端、服务器和存储介质
CN111402456B (zh) 一种开锁方法及装置
US20230004519A1 (en) Multi-antenna channel device and configuration method for multi-antenna channel device
CN112732982A (zh) 一种故障码存储方法、装置、终端设备及可读存储介质
CN112803950A (zh) 一种数据压缩方法、装置、设备及计算机存储介质
US8693481B2 (en) Communication device
CN114978898B (zh) 数据传输控制方法、装置、抬头显示器和存储介质
JP7005201B2 (ja) 通信メッセージ変換装置
CN112003624B (zh) 无线电监测数据无损压缩与在线解压缩方法、装置
CN114641000A (zh) 一种智能网联汽车无线安全监测系统
DE102020002293A1 (de) Verfahren zum Ausführen von Sicherheitsfunktionen eines Fahrzeugs
CN114442590A (zh) 车辆诊断方法、设备、诊断通信装置、服务器及存储介质
CN112124287B (zh) 一种epb按键的故障识别方法、装置、设备和介质