KR102021567B1 - 분산 네트워크 시스템의 전자 제어 장치 및 상기 전자 제어 장치의 분산 합의 프로토콜 방법 - Google Patents

분산 네트워크 시스템의 전자 제어 장치 및 상기 전자 제어 장치의 분산 합의 프로토콜 방법 Download PDF

Info

Publication number
KR102021567B1
KR102021567B1 KR1020170170557A KR20170170557A KR102021567B1 KR 102021567 B1 KR102021567 B1 KR 102021567B1 KR 1020170170557 A KR1020170170557 A KR 1020170170557A KR 20170170557 A KR20170170557 A KR 20170170557A KR 102021567 B1 KR102021567 B1 KR 102021567B1
Authority
KR
South Korea
Prior art keywords
message
electronic control
state
encryption key
consensus
Prior art date
Application number
KR1020170170557A
Other languages
English (en)
Other versions
KR20190070076A (ko
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 KR1020170170557A priority Critical patent/KR102021567B1/ko
Publication of KR20190070076A publication Critical patent/KR20190070076A/ko
Application granted granted Critical
Publication of KR102021567B1 publication Critical patent/KR102021567B1/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/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
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

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

Abstract

본 발명은 분산 네트워크 시스템의 전자 제어 장치 및 상기 전자 제어 장치의 분산 합의 프로토콜 방법에 관한 것이다. 상기 전자 제어 장치는, 서로 메시지를 송수신하는 다수 개의 전자 제어 장치들이 동일한 암호화 키를 유지하도록 구성된 분산 네트워크 시스템의 전자 제어 장치에 관한 것으로서, 전자 제어 장치의 제어에 필요한 동작을 수행하는 마이크로 제어 유닛(Micro Controller Unit:MCU); 다른 전자 제어 장치들과 메시지를 송수신하는 트랜시버; 블록체인을 기반으로 하여, 상기 트랜시버를 통해 송수신되는 메시지를 인증하기 위한 암호화 키를 동적으로 생성하는 키 생성 모듈; 상기 키 생성 모듈과 연결되어, 전자 제어 장치가 종료되기 전에 가장 마지막으로 생성된 암호화 키와 메시지를 저장하는 비휘발성 메모리; 상기 키 생성 모듈과 연결되어, 사용중인 암호화 키 및 암호화 키 생성에 필요한 주요 메시지(primary message)를 저장하는 레지스터; 를 구비하고, 상기 키 생성 모듈은, 초기 상태에는 정상 상태로 진입하고, 주기적으로 메시지를 수신하고, 메시지의 수신 여부와 수신한 메시지 타입에 따라 정상 상태, 에러 상태 및 합의 상태 중 하나의 상태로 전이하며, 전이된 상태에 대응되게 사전 설정된 프로토콜에 따라 동작된다.

Description

분산 네트워크 시스템의 전자 제어 장치 및 상기 전자 제어 장치의 분산 합의 프로토콜 방법{Electric control unit and method of appling a distributed consensus protocol of distributed network system}
본 발명은 분산 네트워크의 분산합의 프로토콜 및 분산 합의 프로토콜이 적용된 전자 제어 장치에 관한 것으로서, 더욱 구체적으로는 차량 내부 네트워크과 같이 버스(bus) 형태의 분산 네트워크에서 블록체인을 기반으로 하여 암호화 인증키를 동적으로 생성하는 환경에 있어서, 시스템의 참여자들이 동일한 인증키를 유지할 수 있도록 하는 분산 합의 프로토콜 방법 및 이러한 분산 합의 프로토콜을 구현하는 전자 제어 장치에 관한 것이다.
자동차의 내부에서는 전자 제어 장치(Electric Control Unit;ECU)이라고 불리는 제어 장치들이 버스(bus) 형태의 분산 네트워크로 구성되어 차량을 제어한다. 또한 차량 내부 네트워크는 CAN(Controller Area Network)라는 프로토콜을 기반으로 통신하는 것이 그 특징이다. 그러나 차량 내부에서만 통신하던 네트워크가 커넥티드 카, 자율 주행 등의 등장으로 외부망과 연결되는 경우가 많아지고 있다. 이러한 상황 아래 차량 내부 네트워크는 버스라는 구조적 특성상 누구나 접근하여 메시지를 전송할 수 있기 때문에 해킹의 위험에 노출되어 있다.
특히, 차량 해킹은 인명피해로 직결될 수 있는 문제이기 때문에 해커가 전송하는 비인가된 메시지를 방어할 수 있는 다양한 연구들이 진행되고 있다. 이와 관련하여, 데이터의 위·변조 및 무결성에 강점을 보이는 블록체인 기술을 응용한 차량 내부 메시지 인증 기술에 대한 연구가 진행되고 있다. 해당 연구에서는 블록체인 기술의 특징을 활용하여 메시지 내역을 기반으로 암호화 인증키를 동적으로 생성한다. 그러나 어느 한 ECU가 메시지 수신에 실패할 경우 메시지 내역이 달라지게 되어, 차량 내부 네트워크의 인증키가 일치하지 않게 되는 문제점을 갖고 있다.
차량 내부 네트워크와 같이 분산된 환경에서 시스템의 참여자(노드)들이 동일한 값을 유지하기 위한 방법으로는 분산 합의 프로토콜이 대표적이다. 그러나 기존 분산합의 프로토콜에 관한 연구들은 차량 내부 네트워크의 특성(CAN)과 실시간성에 대한 고려가 부족하다.
본 발명에서는 차량 내부 네트워크에서 동작하는 블록체인 기반 동적 키 생성 환경에서 모든 ECU들이 메시지 수신 실패에도 동일한 키를 유지 할 수 있는 분산 합의 프로토콜을 제시한다. 이 프로토콜은 차량 내부 네트워크의 특성을 반영하였고 실시간성을 유지하는 것을 실험적으로 검증하였으며, 또한 분산 합의 프로토콜이 만족해야 하는 속성들에 대한 이론적 검증을 수행하여 모든 ECU들이 프로토콜의 실행으로 동일한 키 값을 가지는 것을 보장하였다.
자동차는 여러 개의 ECU(Electronic Control Unit)로 구성된 분산 시스템이다. 각각의 ECU는 Bus형태로 연결된 자동차 내부 네트워크를 통해 서로 통신하며 동작한다. 최근 커넥티드 자동차, 무인 자율 주행 자동차 등이 활발히 연구됨에 따라 자동차의 내부 네트워크가 외부 인터넷에 연결되어 자동차 내부 네트워크의 해킹에 대한 위험이 높아지고 있다. 자동차 내부 네트워크는 실시간성을 확보하고자 네트워크의 복잡도를 간소화 시키기 위해 bus형태를 취하고 있으며 자동차 내부 네트워크의 특성상 해커가 일단 네트워크에 접근하면 엔진을 제어하는 ECU를 포함한 어느 ECU로든지 메시지를 보낼 수 있기 때문에 그 문제가 더욱 심각하다고 할 수 있다. 따라서 해커가 전송한 비 인가된 메시지를 걸러낼 수 있는 방안에 대한 요구가 증가하고 있다.
최근 차량 내부 네트워크에서 비 인가된 메시지를 걸러내기 위해 다양한 연구가 진행되고 있다. 특히 블록체인을 이용한 동적 키 기반의 연구에서는 최근 주목을 받고 있는 블록체인 기술의 핵심 개념 중 분산 원장 개념과 데이터 연결성을 응용하여 송수신되는 메시지를 기반으로 각각의 ECU가 동적으로 키를 생성하고 이를 공유하기 위한 방안을 제시하였다. 해당 연구는 키의 노출이 없고 메시지 간의 연결성을 알지 못하면 키를 생성할 수 없어 인가된 메시지를 보낼 수 없다는 점에서 기존의 연구들보다 우수하다. 하지만 송수신되는 메시지를 기반으로 하기 때문에 이 과정에서 어떤 ECU가 하나의 메시지라도 수신에 실패 했을 경우 해당 ECU는 다른 키를 생성하게 되어 인증을 위한 프로세스 전체가 마비될 수 있다. 즉, 해당 연구가 제시하고 있는 메시지 인증 시스템은 신뢰성의 한계를 가지고 있다.
< CAN(Controller Area Network) 프로토콜 >
CAN 프로토콜은 bus 형태로 동작하는 차량 내부 네트워크에서 가장 많이 사용되고 있는 네트워크 프로토콜이다. CAN 프로토콜은 1980년대 자동차 부품회사인 bosch에 의해 처음 등장했으며, CAN-high, CAN-low 두 개의 구리 선을 사용하는 bus 형태로 설계되어 있다. 특히 power-train과 같은 차량 엔진 제어 등의 부분에서 많이 응용되고 있는 차량 네트워크 프로토콜이다. 이러한 CAN 프로토콜에서는 통신을 위한 별도의 메시지 프레임이 존재하며 각각 식별자(identifier)를 통해 구분된다. 가장 큰 특징은 메시지 프레임 별로 우선순위(priority)가 존재한다. 이 우선순위에 따라 bus를 점유할 수 있는 권한이 메시지 별로 차등 부여된다. 도 1은 CAN의 데이터 프레임을 보여준다. CAN 메시지 프레임에서 64bit (8bytes)의 데이터 공간에는 임의의 정보를 담아 전송할 수 있으며 이 부분에 실질적인 차량 제어를 위한 메시지가 저장되게 된다.
또한 CSMA/CA(carrier sense multiple access / collision avoidance) 방식이 내재되어 있어 우선순위에 따라 한 번에 하나의 메시지가 bus를 통해 전송됨을 보장한다. 데이터 프레임에서 볼 수 있듯이 CRC 또한 내재되어 있어 송수신 데이터의 무결성을 확인할 수 있다.
<분산 합의 프로토콜(Distributed Consensus) >
분산 합의 프로토콜은 분산 컴퓨팅 분야에서 널리 알려진 분야이다. 분산 합의 프로토콜의 목적은 분산 환경에서 동작하는 시스템의 신뢰성(reliability)과 일치성(consistency)을 위하여 서로 다른 n개의 프로세서들이 하나의 값을 선택하기 위함이며 다음과 같은 속성들을 만족하는 프로토콜을 설계하는 것을 목표로 한다.
1. 타당성(Validity): 만약 한 프로세서가 특정한 값 를 결정한다면, 는 다른 프로세서에 의해 제안된 값이다.
2. 동일성(Agreement): 서로 다른 적법한 두 개의 프로세서는 다른 값을 선택하지 않는다.
3. 결정성(Termination): 모든 적법한 프로세서들은 최종적으로 합의를 위한 값을 결정한다.
분산 합의 프로토콜은 그 적합성(correctness)를 증명하기 위해 위 3가지의 속성을 만족하여야 한다.

분산 시스템에서 신뢰성을 달성하고 네트워크 노드 간의 데이터 불일치성을 극복하기 위한 합의 프로토콜은 무수히 많은 연구들이 수행되었으며, 그 결과로 다양한 방식의 프로토콜들이 제시되었다. 특히 멀티 에이전트 시스템이나 스마트 그리드 등의 시스템 환경을 두루 고려한 합의 프로토콜들이 존재하고 있으나, CAN 프로토콜을 사용하는 네트워크 환경에서 연구된 합의 프로토콜은 많지 않다. 이하, 기존의 합의 프로토콜들에 대하여 간략하게 설명하고 그 문제점들을 살펴 본다.

< CAN 통신을 사용하는 네트워크 환경에서의 합의 프로토콜 >
Lima는 CAN 통신을 기반으로 하는 실시간 시스템에서의 합의 프로토콜을 제시하였다. 해당 연구에서는 CAN 네트워크 환경을 구성하는 프로세서들이 수신한 메시지의 개수와 수신한 순서를 유지하며 동작하는 환경을 가정하였다. 이러한 가정 하에 CAN 프로토콜을 사용하는 네트워크에서 발생 할 수 있는 실패 시나리오들을 정의하였다. 이 연구에서 정의하는 실패 시나리오는 메시지의 수신 실패, 중복 수신 등의 상황을 서술하고 있고 실패 시나리오로 인한 네트워크 불일치를 해결할 수 있는 합의 프로토콜을 제시하였다. Lima의 연구에서 제시하고 있는 합의 프로토콜의 내용은 다음과 같다. 합의를 위한 프로토콜은 임의로 설정된 라운드 별로 진행되며 메시지 불일치가 일어났을 시 모든 프로세서가 하나의 올바른 메시지를 선택하기 위해 자신이 가지고 있는 메시지의 수와 순서로 추정 값을 생성한다. 추정 값이 생성되면 이 값을 다른 프로세서들에게 전송하고 이를 수신한 다른 프로세서들은 자신이 생성한 추정 값과 비교하여 올바른 메시지 하나를 채택하게 된다. 그러나 이와 같은 프로토콜은 통신으로 인한 메시지의 오버헤드와 추정 값을 구하기 위한 연산 시간이 추가적으로 소요된다는 한계점을 가지고 있다.

< 메시지 내역을 이용하는 합의 프로토콜 >
Azim은 실시간 통신 환경에서 통신 내역과 합의를 기반으로 시스템의 일치성을 유지하기 위한 방법을 제안하였다. Azim의 연구에서는 메시지의 내역을 추적하기 위한 별도의 buffer table을 구성하였다. 이 buffer table은 시스템에서 송수신되는 메시지의 실제 값을 저장하고 있으며, 어떤 변수들을 유지할 것인가는 설계 단계에서 엔지니어가 임의로 정의하여 유지할 수 있도록 하였다. 노드가 메시지를 수신 할 때마다 이 buffer table에 저장되어 있는 값과 수신한 값들 간의 일치성을 검증한다. 최초로 통신이 시작되면 buffer table에서 유지하는 변수들에게 초기값을 할당한다. 이후 메시지를 수신하면 메시지에 담긴 변수와 이에 해당하는 값들로 분해하여 자신이 가지고 있는 buffer table과의 일치성을 확인한다. 만약 특정 변수가 다른 변수에 종속적일 경우 buffer table을 사용하여 종속여부를 확인한다. 이 과정에서 불일치가 발생 했을 경우에 다른 노드들에게 에러 플래그를 송신하게 되는 구조이다. 해당 연구는 시스템의 일치성 유지를 위하여 메시지의 내역을 이용한다는 점에서 본 연구와 유사하지만 CAN 프로토콜의 특성을 반영하지 못하고 있다. 또한 메시지 수신 시점마다 consistency를 위한 추가적인 연산이 필요하고 메시지 값들의 추적을 위한 buffer table을 메시지 저장과는 별도로 유지해야 하는 한계가 존재한다.

< 실시간 분산 환경에서의 합의 프로토콜 >
Hermant는 이더넷 기반의 분산환경 시스템에서 장애를 탐지하는 방법과 발생한 장애 극복을 위한 합의 프로토콜을 제시하였다. 특히 실시간성을 요구하는 시스템을 위하여 합의에 필요한 시간을 최소 시간으로 보장하는 방식을 제안하였다. 이를 위하여 Hermant의 연구에서는 SRC(Single Round Consensus)라 정의된 Distributed Algorithm을 기반으로 합의 프로토콜을 구성하였다. 이 방법은 시스템을 구성하고 있는 프로세서들이 합의를 이루고자 하는 값을 제안하는 메시지를 전파한다. 네트워크에 전파된 이 메시지들을 각각의 프로세서들이 특정 조건이 만족될 때까지 축적하고 합의를 이루기 위한 값을 도출하기 위해 대기한다. 이러한 과정을 진행 하는 도중에 어떤 하나의 프로세서가 win이라고 정의된 프로세서로 선출이 되게 되는데 이 win프로세서가 전파한 값이 최종적으로 합의를 위한 값으로 정해지게 된다. 그러나 해당 연구는 이더넷 기반의 환경에서 동작하는 프로토콜로 차량 내부 네트워크와 같이 bus 형태를 가지는 환경과 CAN 프로토콜에 대한 특성을 고려하지 않는 문제점을 지니고 있다.

< 이더넷 등의 네트워크 통신을 기반으로 하는 분산 환경에서의 합의 프로토콜 >
분산 환경에서 발생하는 시스템의 불일치와 안정성을 해결하기 위하여 혹은byzantine failure라고 알려진 문제를 해결하기 위한 방법으로 합의 프로토콜은 많은 연구가 진행되어 왔다. 대표적으로 lamport가 제안한 paxos 시리즈의 프로토콜이 존재한다. 이 프로토콜은 서로 다른 4개의 메시지 종류를 사용하는 메시지 통신 기반의 합의 프로토콜이며 2PC(Two-Phase Commit)과 3PC(Three-Phase Commit)과 유사하다. Paxos는 크게 준비, 승인의 두 단계로 진행되며 각 진행 단계마다 통신을 위해 사용되는 메시지의 종류가 다르다. 준비 단계에서는 합의를 이루기 위한 값을 임의의 노드가 제안을 하게 되며 이 제안이 합당하다고 판단한 노드들은 이에 대한 응답을 다시 네트워크에 전송하게 된다. 이후 승인 단계에서 최종적으로 합의를 이룬 값을 지정하게 된다. 그러나 paxos 시리즈의 프로토콜은 앞서 서술한 바와 같이 합의를 이루기 위한 통신으로 인한 네트워크에 오버헤드가 크다. 차량 내부네트워크와 같이 bus 형태를 가지는 네트워크 환경에서 오직 합의만을 위한 메시지들이 통신 트래픽의 대부분을 가져갈 경우 실제 차량 제어나 운행에 필요한 메시지들이 bus에 전송되지 못하는 문제점이 발생 할 수 있다.
또한 위에서 서술한 Paxos를 기반으로 하여 서버-클라이언트 구조에서 동작하는 합의 프로토콜로 Ongaro가 고안한 Raft 합의 알고리즘이 있다. Raft의 합의 방식은 leader로 정해진 서버가 클라이언트 간의 합의를 이끌어내는 leader-based 방식의 프로토콜이다. 해당 연구는 paxos와 마찬가지로 클라이언트들이 leader를 선출하기 위한 투표 메시지를 포함하여 4가지의 각각 다른 메시지 타입을 정의하여 합의 프로토콜에 사용한다. 투표를 거쳐leader로 지정된 서버가 중심이 되어 합의를 진행함으로써 paxos보다 간략한 프로세스를 가지고 있다. 그러나 raft consensus는 차량 내부 네트워크와 같은 bus 형태의 네트워크 환경과 CAN 프로토콜의 특성을 고려하지 않았고 서버-클라이언트 구조와 같은 large-scale 컴퓨팅 환경에 적합하도록 고안된 합의 프로토콜이다. 또한 leader 선출 시 최대 150ms~300ms까지의 worst-case가 존재하여 차량 내부 망에서 사용하기에는 한계가 존재한다.
한국등록특허공보 제 10-0871857 호
전술한 문제점을 해결하기 위한 본 발명은 블록체인 개념이 접목된 차량 내부 네트워크의 동적 키 생성 환경에서 실시간성을 유지하는 한편 일치된 암호화 키를 위한 새로운 합의 프로토콜을 제안하는 것을 목표로 한다. 이를 위해 본 발명에서는 아래와 같은 기여를 하고자 한다.
1. 인증 시스템의 메시지 누락에 대한 대응을 위한 ECU들의 상태 및 전이조건을 나타내는 상태 다이어그램(state transition diagram)을 정의한다.
2. 메시지 수신 실패가 발생했을 시에만 합의를 수행하는 Lazy한 방식의 프로토콜 제시한다.
3. 차량 내부 네트워크의 실시간성을 훼손하지 않고, ECU들 간의 일치된 암호화 키를 가지고 차량 내부 네트워크의 신뢰성을 위한 합의 방법을 제시한다.
전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 전자 제어 장치는, 서로 메시지를 송수신하는 다수 개의 전자 제어 장치들이 동일한 암호화 키를 유지하도록 구성된 분산 네트워크 시스템의 전자 제어 장치에 관한 것으로서, 전자 제어 장치의 제어에 필요한 동작을 수행하는 마이크로 제어 유닛(Micro Controller Unit:MCU); 다른 전자 제어 장치들과 메시지를 송수신하는 트랜시버; 블록체인을 기반으로 하여, 상기 트랜시버를 통해 송수신되는 메시지를 인증하기 위한 암호화 키를 동적으로 생성하는 키 생성 모듈; 상기 키 생성 모듈과 연결되어, 전자 제어 장치가 종료되기 전에 가장 마지막으로 생성된 암호화 키와 메시지를 저장하는 비휘발성 메모리; 상기 키 생성 모듈과 연결되어, 사용중인 암호화 키 및 암호화 키 생성에 필요한 주요 메시지(primary message)를 저장하는 레지스터; 를 구비하고, 상기 키 생성 모듈은, 초기 상태에는 정상 상태로 진입하고, 주기적으로 메시지를 수신하고, 메시지의 수신 여부와 수신한 메시지 타입에 따라 정상 상태, 에러 상태 및 합의 상태 중 하나의 상태로 전이하며, 전이된 상태에 대응되게 사전 설정된 프로토콜에 따라 동작된다.
전술한 제1 특징에 따른 전자 제어 장치에 있어서, 상기 키 생성 모듈은, 정상 상태에서 메시지의 정상적인 수신이 확인되고 수신한 메시지의 타입이 사전 설정된 주요 메시지이면, 수신한 메시지를 MCU에게 전송하고, 주요 메시지를 저장하고, 메시지 인증을 위한 암호화 키를 정상적으로 생성하며,
정상 상태에서 메시지의 정상적인 수신이 확인되고 수신한 메시지의 타입이 에러 플래그 메시지이면, 수신된 메시지의 저장 및 메시지 인증을 위한 암호화 키의 생성을 중단하고, 에러 상태로 전이하며,
정상 상태에서 메시지의 정상적인 수신이 확인되지 않으면, 에러 상태로 전이하는 것이 바람직하다.
전술한 제1 특징에 따른 전자 제어 장치에 있어서, 상기 키 생성 모듈은, 에러 상태에서는, 에러 플래그 메시지를 다른 전자 제어 장치들로 전송하며, 지속적으로 메시지를 수신하고 처리하되, 수신된 메시지의 저장 및 메시지 인증을 위한 암호화 키의 생성을 중단하는 것이 바람직하다.
전술한 제1 특징에 따른 전자 제어 장치에 있어서, 상기 키 생성 모듈은, 주요 메시지의 수신에 실패한 후 에러 상태에서 복구되어 주요 메시지의 정상적인 수신에 성공하면, 합의 요청 메시지를 생성하여 다른 전자 제어 장치들에게 전송하고 키 불일치에 대한 합의 상태로 전이하는 것이 바람직하다.
전술한 제1 특징에 따른 전자 제어 장치에 있어서, 상기 키 생성 모듈은, 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하면 정상 상태로 전이하고,
합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하지 못하면 에러 상태로 전이하는 것이 바람직하다.
전술한 제1 특징에 따른 전자 제어 장치에 있어서, 상기 분산 네트워크 시스템은 CAN(Controller Area Network) 프로토콜을 기반으로 통신하는 차량 내부 네트워크 시스템이며, 상기 트랜시버는 CAN 트랜시버이며, 상기 전자 제어 장치는 차량 내부의 제어 장치들이며, 상기 분산 네트워크 시스템을 구성하는 모든 전자 제어 장치들은 동일한 암호화키를 유지하도록 구성된 분산 합의 프로토콜에 따라 동작되는 것이 바람직하다.
본 발명의 제2 특징에 따른 분산 합의 프로토콜 방법은, 분산 네트워크 시스템을 구성하는 모든 전자 제어 장치들이 동일한 암호화키를 유지하도록 구성된 전자 제어 장치의 분산 합의 프로토콜 방법에 관한 것으로서, (a) 초기 실행되면, 정상 상태로 진입하고 초기화시키는 단계; (b) 주기적으로 메시지를 수신하고, 메시지의 수신 여부 및 수신된 메시지의 타입에 따라 정상 상태, 에러 상태 및 합의 상태 중 하나의 상태로 전이하고, 전이된 상태에 대응되게 사전 설정된 프로토콜에 따라 동작하는 단계; (c) 종료시에는 현재의 암호화키 및 암호화키 생성에 사용된 주요 메시지를 전자 제어 장치의 비휘발성 메모리에 저장하고 종료하는 단계;를 구비한다.
전술한 제2 특징에 따른 전자 제어 장치의 분산 합의 프로토콜 방법에 있어서, 상기 (b) 단계에서, (b1) 주기적으로 메시지를 수신하는 단계; (b2) 정상 상태에서 메시지의 정상적인 수신이 확인되고, 수신한 메시지의 타입이 사전 설정된 주요 메시지이면, 수신한 메시지를 전자 제어 장치의 마이크로 제어 유닛(MCU)에게 전송하고, 주요 메시지를 저장하고, 메시지 인증을 위한 암호화 키를 정상적으로 생성하는 단계; (b3) 정상 상태에서 메시지의 정상적인 수신이 확인되고, 수신한 메시지의 타입이 에러 상태를 나타내는 에러 플래그 메시지이면, 해당 메시지를 저장하지 않고, 메시지 인증을 위한 암호화 키의 생성을 중단하고, 에러 상태로 전이하는 단계; 및 (b4) 정상 상태에서 메시지의 정상적인 수신이 확인되지 않으면, 에러 상태로 전이하는 단계;를 구비하는 것이 바람직하다.
전술한 제2 특징에 따른 전자 제어 장치의 분산 합의 프로토콜 방법에 있어서, 상기 (b) 단계에서, (b5) 메시지의 수신이 실패되어 에러 상태로 진입된 후 복구되어 정상적인 메시지의 수신에 성공하면, 자신의 비휘발성 메모리에 저장되어 있는 데이터 및 이전 암호화 키를 사용하여 합의 요청 메시지를 생성한 후 송신하고, 키 불일치에 대한 합의 상태로 전이하는 단계; 를 구비하는 것이 바람직하다.
전술한 제2 특징에 따른 전자 제어 장치의 분산 합의 프로토콜 방법에 있어서, 상기 (b) 단계에서, (b6) 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하면 정상 상태로 전이하고, 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하지 못하면 에러 상태로 전이하는 단계;를 구비하는 것이 바람직하다.
전술한 제2 특징에 따른 전자 제어 장치의 분산 합의 프로토콜 방법에 있어서, 상기 (b) 단계에서, (b7) 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하면, 현재 레지스터에 저장된 값들을 삭제하고 비휘발성 메모리에 저장되어 있는 데이터를 레지스터로 옮겨 비휘발성 메모리에 저장되어 있던 초기 암호화키를 암호화 키 값으로 할당한 후, 정상 상태로 전이하는 단계;를 구비하는 것이 바람직하다.
본 발명에서는 차량 내부 네트워크에서 블록체인 메커니즘을 기반으로 한 동적 키 생성 및 메시지 인증 시스템에서 신뢰성과 일치성을 위한 합의 프로토콜을 제안하였다. 본 발명에 따른 분산 합의 프로토콜은 메시지 누락이 발생했을 때에만 동작하는 lazy한 방식의 프로토콜이며 이전 주행에서 저장되었던 EEPROM의 데이터와 3가지의 새로운 메시지 타입을 사용하여 동작한다. 이는 종래의 분산 합의 프로트콜에 대한 연구들과 비교하였을 때, 사용되는 메시지의 타입을 줄여 추가적인 오버헤드를 감소시켰으며 CAN 프로토콜의 특성을 반영하여 차량 네트워크에서 효율적으로 운용될 수 있도록 한다.
또한, 본 발명에서는 주요 ECU들의 상태를 정의하고 상태에 기반한 합의 프로토콜을 구성한다. 또한, 합의 프로토콜이 만족해야 할 모든 속성들인 타당성, 일치성, 결정성에 대해 각각 이론적 검증을 수행하였으며 실시간성을 알아보기 위한 방법으로 차량 네트워크와 유사한 환경을 구성하여 실험하였다. 실험의 결과, 평균 소요시간은 11ms로 차량 네트워크에서 요구되는 네트워크 요구사항 또한 만족시킴을 보였다. 결론적으로 암호화 키를 이용하는 인증 시스템에서 모든 Critical ECU 들이 같은 암호화 키를 가짐을 보장함으로써 기존의 분산 합의 프로토콜에 대한 연구에서 제시한 인증 시스템의 신뢰성을 강화할 수 있다.
도 1은 차량 내부 네트워크으로 사용되는 CAN의 데이터 프레임을 도시한 것이다.
도 2는 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)로 구성된 분산 네트워크 시스템을 전체적으로 도시한 구성도이다.
도 3은 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)로 구성된 분산 네트워크 시스템에 있어서, 실패 모델의 시나리오를 바탕으로 하여 작성한 구성도이다.
도 4는 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)에 있어서, 송수신되는 메시지 형식들을 도시한 것이다.
도 5는 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)에 있어서, 분산 합의 프로토콜을 설명하기 위하여 사용되는 정형적인 표현을 위한 기호를 정의한 도표이다.
도 6은 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)에 있어서, 분산 합의 프로토콜의 수행을 위한 ECU들의 상태 전이 다이어그램으로서 ECU 상태 간의 관계 및 전이 조건들을 도시한 다이어그램이다.
도 7은 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)에 있어서, 분산 합의 프로토콜의 초기화 과정에 대한 알고리즘을 도시한 것이다.
도 8은 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)에 있어서, 분산 합의 프로토콜의 상태 전이 과정에 대한 알고리즘을 도시한 것이다.
도 9는 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)에 있어서, 분산 합의 프로토콜의 합의 과정에 대한 알고리즘을 도시한 것이다.
도 10은 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)에 있어서, 합의 과정에서 에러를 복구하는 방법들인 롤백, 복제, 회귀방법 간의 비교 분석 결과를 도시한 도표이다.
도 11은 본 발명의 바람직한 실시예에 따른 전자 제어 장치들(ECUs)에 있어서, 분산 합의 프로토콜의 성능을 실험하기 위하여 구성된 차량 내부 네트워크를 이용한 실험 구성도이다.
도 12는 도 11의 실험에 따라, 시간 측정 구간을 도시한 그래프이다.
도 13은 도 11의 실험에 따른 결과를 도시한 도표이다.
도 14는 ECU 종류에 따른 차량 내부 네트워크의 메시지 속도 요구사항을 보여주는 도표이다.
이하, 본 발명에 따른 분산 합의 프로토콜이 적용되어, 서로 메시지를 송수신하는 다수 개의 전자 제어 장치들이 동일한 암호화 키를 유지하도록 구성된 분산 네트워크 시스템의 전자 제어 장치 및 분산 합의 프로토콜에 대하여 구체적으로 설명한다.
본 발명에 따른 전자 제어 장치는, 전자 제어 장치의 제어에 필요한 동작을 수행하는 마이크로 제어 유닛(Micro Controller Unit:MCU); 다른 전자 제어 장치들과 메시지를 송수신하는 트랜시버; 블록체인을 기반으로 하여, 상기 트랜시버를 통해 송수신되는 메시지를 인증하기 위한 암호화 키를 동적으로 생성하는 키 생성 모듈; 상기 키 생성 모듈과 연결되어, 전자 제어 장치가 종료되기 전에 가장 마지막으로 생성된 암호화 키와 메시지를 저장하는 비휘발성 메모리; 상기 키 생성 모듈과 연결되어, 사용중인 암호화 키 및 암호화 키 생성에 필요한 주요 메시지(primary message)를 저장하는 레지스터;를 구비한다.
상기 키 생성 모듈은, 초기 상태에는 정상 상태로 진입하고, 주기적으로 메시지를 수신하고, 메시지의 수신 여부와 수신한 메시지 타입에 따라 정상 상태, 에러 상태 및 합의 상태 중 하나의 상태로 전이하며, 전이된 상태에 대응되게 사전 설정된 프로토콜에 따라 동작된다.
본 발명에 따른 전자 제어 장치의 분산 합의 프로토콜에 따라 사용되는 메시지의 형태는 다음과 같다. 에러 플래그 메시지는 분산 네트워크 시스템을 구성하는 하나의 전자 제어 장치가 에러 상태로 전이한 것을 다른 전자 제어 장치에게 알리는 메시지이다. 에러 플래그 메시지는 분산 네트워크 시스템을 구성하는 하나의 전자 제어 장치가 에러 상태로 전이한 것을 다른 전자 제어 장치에게 알리는 메시지로서, 비휘발성 메모리에 저장되어 있는 임의의 값을 이전 암호화 키로 암호화하여 나온 값을 포함하는 것이 바람직하다. 합의 요청 메시지는 합의를 요청하는 메시지로서, 비휘발성 메모리에 저장되어 있는 임의의 값을 이전 암호화키로 암호화한 값을 포함하는 것이 바람직하다. 합의 메시지는 합의 요청 메시지를 수신한 전자 제어 장치들이 합의를 위하여 사용하는 메시지이다.
이하, 정상 상태, 에러 상태 및 합의 상태에 대해 설정된 프로토콜들에 대하여 구체적으로 설명한다.
먼저, 정상 상태에서의 동작에 대하여 설명한다.
정상 상태에서는 주기적으로 트랜시버를 통해 다른 전자 제어 장치들로부터 메시지를 수신한다.
정상 상태에서, 메시지의 정상적인 수신이 확인되고 수신한 메시지의 타입이 사전 설정된 주요 메시지이면, 수신한 메시지를 MCU에게 전송하고, 주요 메시지를 저장하고, 메시지 인증을 위한 암호화 키를 정상적으로 생성한다. 정상 상태에서 메시지의 정상적인 수신이 확인되고 수신한 메시지의 타입이 에러 플래그 메시지이면, 수신된 메시지의 저장 및 메시지 인증을 위한 암호화 키의 생성을 중단하고, 에러 상태로 전이한다. 정상 상태에서 메시지의 정상적인 수신이 확인되지 않으면, 에러 상태로 전이하게 된다.
다음, 에러 상태에서의 동작에 대하여 설명한다.
에러 상태에서는, 에러 플래그 메시지를 다른 전자 제어 장치들로 전송하며, 지속적으로 메시지를 수신하고 처리하되, 수신된 메시지의 저장 및 메시지 인증을 위한 암호화 키의 생성을 중단한다.
주요 메시지의 수신에 실패하여 에러 상태로 진입한 후, 에러 상태에서 복구되어 주요 메시지의 정상적인 수신에 성공하면, 합의 요청 메시지를 생성하여 다른 전자 제어 장치들에게 전송하고 키 불일치에 대한 합의 상태로 전이한다.
다음, 합의 상태에서의 동작에 대하여 설명한다.
합의 상태에서는, 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하면, 현재 레지스터에 저장된 값들을 삭제하고 비휘발성 메모리에 저장되어 있는 데이터를 레지스터로 옮겨 비휘발성 메모리에 저장되어 있던 초기 암호화키를 암호화 키 값으로 할당한 후, 정상 상태로 전이한다. 한편, 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하지 못하면 에러 상태로 전이한다.
전술한 구성을 갖는 본 발명에 따른 분산 합의 프로토콜을 구비하는 전자 제어 장치들로 구성된 분산 네트워크 시스템은 CAN 프로토콜을 사용하는 차량 내부 네트워크 뿐만 아니라 이와 유사한 실시간 분산 시스템 환경에서 응용될 수 있다. 따라서, 본 발명에 따른 시스템에 사용되는 분산 합의 프로토콜은 기존의 분산 합의 프로토콜들과의 비교를 통하여 차량 네트워크 환경과 같은 실시간 시스템에서의 통신을 위한 효율성을 제고할 수 있다.

이하, 전술한 구성을 갖는 본 발명에 따른 전자 제어 장치에서의 분산 합의 프로토콜 방법에 대하여 구체적으로 설명한다.
본 발명에 따른 전자 제어 장치의 분산 합의 프로토콜 방법은, 분산 네트워크 시스템을 구성하는 모든 전자 제어 장치들이 동일한 암호화키를 유지하도록 구성된 것을 특징으로 한다.
상기 전자 제어 장치의 분산 합의 프로토콜 방법은, (a) 초기 실행되면, 정상 상태로 진입하고 초기화시키는 단계; (b) 주기적으로 메시지를 수신하고, 메시지의 수신 여부 및 수신된 메시지의 타입에 따라 정상 상태, 에러 상태 및 합의 상태 중 하나의 상태로 전이하고, 전이된 상태에 대응되게 사전 설정된 프로토콜에 따라 동작하는 단계; (c) 종료시에는 현재의 암호화키 및 암호화키 생성에 사용된 주요 메시지를 전자 제어 장치의 비휘발성 메모리에 저장하고 종료하는 단계;를 구비한다.
상기 (b) 단계는 정상 상태에서의 프로토콜을 구비하며, 정상 상태의 프로토콜 방법은, (b1) 주기적으로 메시지를 수신하는 단계; (b2) 정상 상태에서 메시지의 정상적인 수신이 확인되고, 수신한 메시지의 타입이 사전 설정된 주요 메시지이면, 수신한 메시지를 전자 제어 장치의 마이크로 제어 유닛(MCU)에게 전송하고, 주요 메시지를 저장하고, 메시지 인증을 위한 암호화 키를 정상적으로 생성하는 단계; (b3) 정상 상태에서 메시지의 정상적인 수신이 확인되고, 수신한 메시지의 타입이 에러 상태를 나타내는 에러 플래그 메시지이면, 해당 메시지를 저장하지 않고, 메시지 인증을 위한 암호화 키의 생성을 중단하고, 에러 상태로 전이하는 단계; 및 (b4) 정상 상태에서 메시지의 정상적인 수신이 확인되지 않으면, 에러 상태로 전이하는 단계;를 구비하는 것이 바람직하다.
또한, 상기 (b) 단계는 에러 상태에서의 프로토콜을 구비하며, 에러 상태의 프로토콜 방법은, (b5) 메시지의 수신이 실패되어 에러 상태로 진입된 후 복구되어 정상적인 메시지의 수신에 성공하면, 자신의 비휘발성 메모리에 저장되어 있는 데이터 및 이전 암호화 키를 사용하여 합의 요청 메시지를 생성한 후 송신하고, 키 불일치에 대한 합의 상태로 전이하는 단계; 를 구비하는 것이 바람직하다.
또한, 상기 (b) 단계는 합의 상태에서의 프로토콜을 구비하며, 합의 상태의 프로토콜 방법은, (b6) 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하면, 현재 레지스터에 저장된 값들을 삭제하고 비휘발성 메모리에 저장되어 있는 데이터를 레지스터로 옮겨 비휘발성 메모리에 저장되어 있던 초기 암호화키를 암호화 키 값으로 할당한 후, 정상 상태로 전이하고, 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하지 못하면 에러 상태로 전이하는 단계;를 구비하는 것이 바람직하다.

이하, 전술한 구성을 갖는 본 발명에 따른 실시간 분산 네트워크 시스템 및 분산 합의 프로토콜 방법을 구체적으로 적용하여 구성한 본 발명의 바람직한 실시예에 따른 차량 내부 네트워크에 대하여 상세하게 설명한다.
본 발명의 바람직한 실시예에 따른 차량 내부 네트워크를 위한 시스템 모델을 구성하기 위해 차량 내부 네트워크에서 가장 널리 사용되는 통신 프로토콜인 CAN 프로토콜(Controller Area Network)을 사용한다. 일반적인 CAN 프로토콜 상에서는 ECU들이 bus에 연결된 CAN 트랜시버를 사용하여 통신하는 구조이다. CAN 트랜시버는 bus로부터 데이터를 송수신하며 수신 데이터는 ECU에 탑재된 MCU(Micro Controller Unit)에 전달되고 MCU가 실제 차량 제어에 필요한 동작을 수행하는 구조를 가지고 있다.
CAN 통신 프로토콜을 응용하여 본 발명에서 제안하는 합의 프로토콜이 동작할 수 있는 시스템 모델을 도 2와 같이 구성한다. 도 2는 본 발명의 바람직한 실시예에 따른 시스템 모델의 구성도이다. 도 2를 참조하면, 이 시스템 모델은 차량에 탑재되어 있는 ECU들 중에서 엔지니어가 보안이 중요하다고 판단되는 ECU들을 주요ECU(Critical ECU)로 선정하고, 이들 간의 통신에 사용되는 중요 메시지들을 주요메시지(Primary message)로 정의한다.
Critical ECU로 선정된 ECU들은 하나의 bus를 통해 통신하며, 메시지 인증 및 키 생성을 위한 보안 모듈인 키 생성 모듈(KeyGen Module)을 CAN 트랜시버와 MCU 사이에 추가한다. 키 생성 모듈은 블록체인을 기반으로 한 동적 키 생성 방법이 탑재되어 있고, 이 모듈은 Primary message, 인증 키의 저장을 위한 비휘발성 메모리 및 레지스터(Register)와 연결되어 있다. 비휘발성 메모리로는 전원 공급이 끊기더라도 데이터를 장기간 저장할 수 있도록 하는 저장 장치로서, EEPROM 등이 사용될 수 있다.
비휘발성 메모리에는 이전 주행 종료 시 가장 마지막으로 생성된 암호화 키와 메시지가 저장되어 있다. Register는 차량의 주행 중 사용하고 있는 인증 키를 비롯하여 키 생성에 기반이 되는 Primary message 들을 저장하고 있다. 또한 차량의 운행 종료 시에는 모든 Critical ECU 들은 각각 자신이 종료시점에 가지고 있던 암호화 키와 메시지들의 동일 여부를 확인하고 EEPROM 에 저장한 후 종료하게 된다.
위와 같이 구성된 시스템에서 차량 내부 네트워크에서 동작하는 CAN 프로토콜의 특성을 반영하고자 다음과 같은 시스템 모델을 가정한다.
1.Primary message 는 주기적으로 송신됨을 가정한다.
2. CAN 통신은 fail-safe 모드가 존재하여 수신에 실패하였을 경우, 가장 최근의 수신 값을 다시 처리하도록 설계되어 있다.
3. critlcal ECU 는 Primary message 의 수신 여부를 주기적으로 확인한다.
4. EEPROM 에 저장되어 있는 데이터는 위·변조 되지 않는다.
5. KeyGen module 은 오직 Primary message 만을 처리하며 그 외의 메시지는 별도의 과정 없이 MCU로 통과 시킨다.
다음, 실패 모델(Failure model)에 대하여 설명한다.
이하, 실패 모델을 구성하여 합의 프로토콜이 동작해야 하는 상황에 대해 정의한다. 시스템의 실패는 메시지의 누락으로 인한 잘못된 키 생성으로 정의한다. 메시지 누락은 Critical ECU 들 중 어느 한 ECU가 주기적으로 수신 되었어야 할 Primary ECU 를 받지 못했을 때 발생하며 이 경우 송수신되는 메시지를 기반으로 동작하는 KeyGen module 에게 치명적인 악영향을 미친다. 왜냐하면 KeyGen module 은 primary message들을 Register에 저장하고 이를 사용하여 메시지 인증을 위한 새로운 암호화 키를 생성하기 때문에 한 ECU가 Primary message 수신에 실패하면 해당 ECU만 전혀 다른 암호화 키를 생성하는 문제가 발생한다. 서로 다른 키를 생성하게 되면 이후 통신에 사용되는 메시지들의 인증에 실패하게 될 것이다. 도 3은 실패 모델의 시나리오를 바탕으로 하여 작성한 도식이다.
도 3을 참조하면, 3번 Critical ECU 는 가장 최근의 Primary message 인 n번째 primary message 수신에 실패하여 다른 Critical ECU 들과 메시지 내역이 불일치함을 알 수 있다. 메시지 내역이 일치해야 동일한 키를 생성할 수 있는 시스템 모델의 특성 상 이처럼 메시지 내역이 Critical ECU 간 불일치 하는 경우 다른 암호화 키를 생성하는 문제가 발생한다. 이하, 이와 같은 키 불일치 문제를 해결하기 위해 본 발명에서 구성한 상태 전이 다이어그램과 합의 프로토콜에 대해 상세히 기술하겠다.
< 합의 프로토콜의 상태 전이 다이어그램 >
이하, 전술한 실패 모델의 문제점을 해결하기 위하여 새로운 합의 프로토콜을 정의한다. 우선 합의 프로토콜의 효율적인 동작을 위하여 Critical ECU 의 상태를 아래와 같이 정의한다.
1. 정상 상태(Normal state)
2. 에러 상태(Error state)
3. 합의 상태(Consensus state)
Normal state는 ECU들이 정상적으로 primary message 를 주고 받는 상태이다. 이 상태에서는 키 생성을 위한 메시지 저장 및 키 생성 프로세스가 정상적으로 이루어 지고 있음을 나타낸다. error state는 primary message 수신에 실패 시 normal state로부터 전이되며 메시지 저장과 동적 키 생성이 정지되어 있는 상태이다. 그러나 키 생성을 위한 프로세스만 정지되었을 뿐 error state에서도 지속적인 메시지 수신 및 처리는 가능하다.
Consensus state는 암호화 키에 대해 합의를 하기 위한 상태이며 다른 ECU들과의 메시지 송수신을 통하여 합의 프로세스를 진행한다. 상태 전이 시 메시지 송수신을 통하여 critical ECU들 간의 상태가 동일하게 유지 될 수 있도록 하기 위해 상태 전이 메시지 형식을 정의하였다. 메시지 형식은 CAN 통신에서 사용되는 데이터 프레임 중 8 바이트 크기의 메시지 필드를 사용하여 구성하였다. 메시지의 종류는 1) 한 ECU가 error state로 전이 시 이를 다른 ECU들에게 알리기 위한 메시지와 2) 합의를 요청하는 메시지 및 3) 합의 프로세스 시 사용되는 메시지까지 3가지의 메시지 형식을 정의하였다. 메시지의 타입은 CAN 메시지의 데이터 필드 가장 앞쪽의 4byte의 문자로서 구분된다.
도 4는 본 발명의 바람직한 실시예에 따른 분산 합의 프로토콜에서 사용되는 메시지 형식들을 도시한 것이다. 도 4의 (a)는 error flag 메시지로 어떤 ECU가 error state로 전이시 다른 ECU들에게 전송하게 되는 메시지이다. error flag 메시지는 EEPROM 에 저장되어 있는 임의의 값을 이전 키로 암호화 하여 나온 값을 전송한다. error flag를 수신한 ECU들도 마찬가지로 키 생성 및 메시지 저장을 중지하고 error state로 전이한다. 도 4의 (b)는 합의를 시작하기 위한 메시지로 primary message 의 수신을 실패한 ECU가 복구되어 이후 주기적으로 primary message 에 수신 성공 시 다른 ECU들에게 합의를 요청하는 메시지이다. 이 메시지 또한 EEPROM 에 저장되어 있는 임의의 값을 이전 키로 암호화한 값을 담아 전송한다. Request consensus message를 송신한 ECU는 consensus state로 전이하고 이를 수신한 ECU들도 consensus state로 전이하여 합의 프로세스를 시작한다. 도 4의 (c)는 Request consensus message를 수신한 ECU들이 합의를 위하여 사용하는 메시지이다. 각각의 메시지 형식에서 사용되는 EEPROM 의 데이터(EEPROM[θ])는 엔지니어가 시스템의 설계 단계에서 취사선택할 수 있다. 더불어 제시하고자 하는 합의 프로토콜을 설명하기 의한 ECU의 상태 및 합의 프로토콜의 좀 더 정형화된 표현을 위하여 도 5와 같이 기호를 정의한다. 도 5는 본 발명의 바람직한 실시예에 따른 분산 합의 프로토콜에서 사용되는 정형적인 표현을 위한 기호를 정의한 도표이다.
차량이 운행을 시작하면 Critical ECU들은 최초 상태인 Normal state로 진입하며 메시지의 수신여부, 수신한 메시지 타입에 따라 상태가 전이된다. 도 6은 본 발명의 바람직한 실시예에 따른 분산 합의 프로토콜이 적용된 ECU들의 상태 전이 다이어그램으로서, ECU 상태 간의 관계 및 전이 조건들을 보여준다.
< 키 일치를 위한 합의 프로토콜 >
이하, 본 발명의 바람직한 실시예에 따라, 앞서 정의한 ECU의 상태와 메시지 프레임을 바탕으로 하여 합의 프로토콜에 대해 설명한다. 합의 프로토콜이 동작하기 위해서는 먼저 ECU들의 상태 정보와 암호화 키의 초기화 과정이 선행되어야 한다.
도 7은 본 발명의 바람직한 실시예에 따른 분산 합의 프로토콜이 적용된 전자 제어 장치에 있어서, 초기화 알고리즘을 도시한 것이다.
도 7을 참조하면, 초기화 알고리즘은 각각의 ECU들이 시스템 시작시 수행하는 초기화 프로토콜을 보여준다. 최초 실행 시 가장 먼저 ECU의 상태를 normal state로 설정한다. 이후 EEPROM 으로부터 이전 실행의 종료 직전 저장하였던 KEYprev 와 KEYcurrent 값을 register 로 읽어온다. 이후 register 에 마찬가지로 이전 실행의 메시지를 옮겨온다. 만약 올바른 ECU들이 초기화 프로토콜을 정상적으로 실행하였다면, 결과적으로는 각각의 register 에는 모두 동일한 키 값과 메시지 내역을 가진 상태가 된다.
ECU가 이와 같은 초기화 프로토콜을 정상적으로 수행하고 나면, Algorithm 2와 같은 상태 전이 프로토콜에 의해 동작을 이어간다. 도 8은 본 발명의 바람직한 실시예에 따른 분산 합의 프로토콜이 적용된 전자 제어 장치에 있어서, 상태 전이 프로토콜에 대한 알고리즘을 도시한 것이다.
상기 상태 전이 프로토콜은 크게 ECU의 primary message 수신 여부와 합의 성공여부에 따라 상태가 변경되며, 자세한 동작을 설명하기 전에 메시지 생성 및 통신을 위한 세 가지의 함수를 정의한다.
1. CreateMsg(type,key,θ): 매개변수로 입력한 type의 메시지 프레임을 생성하며 key를 이용하여 data를 암호화한 후 메시지 프레임에 적재한다. θ는 EEPROM 에 저장되어있는 임의의 데이터로 엔지니어가 취사선택 후 적재할 수 있다.
2. Send(M) : 매개변수로 넘어온 메시지 M 를 CAN bus에 전송하는 함수이다.
3. Dec(M,key) : 메시지에서 타입을 정의하는 부분을 제거하고 매개변수로 주어진 key를 사용하여 데이터를 복호화 하는 함수이다.
우선 ECU는 주기적으로 메시지의 수신을 확인한다. 정상적인 수신이 확인 되었을 경우, Normal state 상에서는 메시지 타입을 확인한다. 메시지 타입이 MPM 일 경우(메시지 타입이 MEF이 아닐 경우) 상태 전이 프로토콜은 수신한 메시지를 MCU에게 전송한다. 만일 Normal state에서 수신한 메시지의 타입이 MEF일 경우는 Dec()함수로 메시지 복호화를 수행한다. 복호화한 메시지의 결과가 자신의 EEPROM 에 저장되어 있는 데이터와 동일하다면, 현재 동작하고 있는 적법한 ECU들 중 어느 하나가 에러를 발생 시킨 것으로 간주되어 register 로 메시지를 저장하지 않고 키 생성 과정을 중단하고 ECU의 상태를 consensus state로 전이한다.
한편, 메시지 수신에 실패하여 error state로 전이된 ECU가 다시금 정상적인 MPM수신에 성공하면 CreateMsg()함수와 이전 인증 키 및 자신의 EEPROM 에 저장되어 있는 데이터를 사용하여 합의 요청을 위한 메시지 형식(MRC)을 생성한 후 bus에 송신한다. 이후 송신을 완료하면 Consensus state로 전이하여 키 불일치에 대한 합의 과정을 시작한다. consensus state로 전이된 ECU들은 consensus protocol을 실행하게 되며 동작 방식은 합의 알고리즘과 같다.
도 9는 본 발명의 바람직한 실시예에 따른 분산 합의 프로토콜이 적용된 전자 제어 장치에 있어서, 합의 프로토콜에 대한 알고리즘을 도시한 것이다. 이하, 도 9를 참조하여 합의 프로토콜의 알고리즘에 대하여 구체적으로 설명한다.
합의 프로토콜의 시작과 동시에 이전 키 값인 KEY_prev와 EEPROM[θ], createMsg()함수를 이용해서 consensus message를 전송하고 수신한 consensus message의 수를 저장하는 변수인 NumCM의 값을 1로 저장한다. 이후 △만큼의 time out을 지정한다. △는 임의의 값이며 최소한 Critical ECU 들 간의 1회 메시지 송수신이 보장되는 시간이 되어야 한다. 이후 ECU는 설정된 △의 시간 동안 다른 ECU들의 consensus message를 처리한다. 메시지의 타입이 MCM일 경우 Dec()함수를 사용하여 이를 복호화하고 이를 EEPROM[2]의 값과 비교한다. 동일한 결과를 얻을 시 NumCM을 1씩 증가 시킨다. 이 값이 Critical ECU 의 수와 같아지면 모든 Critical ECU 들이 동의한 것으로 간주한다. 만일 △ 이후까지 line 9의 조건을 만족시키지 못하면 자동적으로 consensus protocol을 종료하고 다시 error state로 전이한다. Line 9의 조건이 충족되면 현재 register에 저장되어 있는 값들을 삭제하고 EEPROM 에 저장되어 있던 데이터를 register로 옮긴다. 이 때, EEPROM 에 저장되어 있던 초기 키 값을 현재 키 값으로 할당한다. 이후 normal state로 전이함으로써 프로토콜 수행이 완료된다. 결과적으로 모든 Critical ECU 들이 EEPROM 에 저장되어 있던 이전 주행 메시지 및 암호화 키를 사용하게 된다. 이러한 consensus protocol의 과정은 메시지의 누락으로 인해 발생한 키 생성 프로세스의 에러를 가장 초기 단계로 회귀(recurrence)한다고 볼 수 있다. 에러를 복구하는 방식은 제안한 방법인 회귀 포함하여 크게 1) 롤백(rollback)과 2) 복제(replication)이 추가적으로 고려될 수 있다. 롤백은 에러가 발생하기 이전 상태로 프로세스를 되돌리는 방식이고 replication은 별도의 백업 데이터를 유지하는 방식이다. 그러나 1)과 2)의 방법은 본 발명의 시스템 모델에 적용하기에는 적합하지 않다. 이를 각 방식들에서 요구되는 시간과 메모리 크기 간의 정량적 비교 및 증명을 위해 아래와 같은 기호를 정의하였다.
1. 메시지 전송에 걸리는 지연 시간: N
2. 조건문 실행의 걸리는 시간: Tif
3. 키 생성에 걸리는 시간: Tkey
4. EEPROM으로부터 데이터 전송 시간: t
5. Register 크기: s
각각의 방법들을 적용 시 합의에 소요되는 시간 및 메모리 크기를 이론적으로 도출한 결과는 도 10과 같다. 도 10은 롤백, 복제, 회귀방법 간의 비교 분석 결과를 도시한 도표이다.
도 10의 도표에서 이론적으로 도출한 소요 시간을 비교를 해보자면, 롤백 방식은 총 3N + Tif + Tkey 의 시간이 걸리게 된다. 이에 반해 복제나 회귀의 경우를 보면 2N + t 의 시간이 걸림을 알 수 있다. 여기서 Tkey 의 값은 t 값보다 명백히 큼을 알 수 있다. 왜냐하면 키 생성에는 별도의 연산이 필요하고 이에 걸리는 시간은 평균 17ms가 걸리는데 반해 t 는 추가적인 연산 과정 없이 단순히 데이터를 EEPROM 에서 읽어오는 시간이기 때문이다. 따라서 시간적으로 비교했을 시 롤백은 적합하지 않은 방법임을 알 수 있다. 롤백을 제외한 복제나 회귀는 동일한 시간이 걸림을 알 수 있으나 복제의 경우 레지스터의 크기가 s + a 로 a 는 복제 데이터를 저장하는데 필요한 추가적인 공간이 요구됨을 알 수 있다. 따라서 이 세 가지의 방법을 미루어봤을 때 회귀 방법이 소요 시간 및 레지스터 사이즈로 볼 때 가장 효율적임을 알 수 있다.
이하, 본 발명에 따른 합의 프로토콜의 이론적 검증과 더불어 차량 내부 네트워크와 유사한 환경을 구성하여 실시간성을 훼손하는지를 알아보기 위한 합의 소요 시간을 실험적으로 측정한다. 이를 위해 임베디드 소프트웨어 실험에 널리 사용되는 아두이노와 CAN bus 네트워크의 구축을 위한 아두이노 용 CAN shield를 사용하였다.
실험 환경 구성 및 측정 방법은 아래와 같다. 도 11은 차량 내부 네트워크를 이용한 실험 구성도이다. 도 11을 참조하면, Bus 형태를 가지는 차량 내부 네트워크 구성을 위해 아두이노-CAN shield의 쌍을 하나의 ecu처럼 구성한 후 이들을 bus 방식으로 통신하도록 설계하였다. 또한 ecu를 ECUsend와 ECUreceiver 두 개의 그룹으로 구성하였다. ECUsend는 에러 플래그 후 합의 요청 메시지가 수신 되었을 때만 실행되는 합의 프로토콜의 특성 상, 실험을 위한 강제 에러 플래그 및 합의 요청 메시지를 전송하는 ECU이다. ECUreceiver는 에러 플래그, 합의 요청 메시지에 따라 합의 프로토콜을 수행하는 ECU이다.
합의에 소요되는 시간을 알아보기 위해 ECUsend가 consensus state로 전이된 시점을 시작으로 하여 다시 normal state로 전이되는 시점을 종료 시간으로 정의하여 측정하였다. 도 12는 시간 측정 구간을 도시한 그래프이다.
실험 결과 및 분석은 아래와 같다. 위와 같은 실험 환경에서 δ 구간의 소요 시간을 반복하여 측정한 결과는 도 13과 같다. 도 13은 실험 결과를 도시한 도표이다. 약 19000회의 시도 결과 δ는 평균 11.62ms의 시간이 소요됨을 측정할 수 있었다. 측정된 시간이 차량 내부 네트워크의 실시간성을 훼손하지 않음을 알아보도록 하겠다. 도 14는 ECU 종류에 따른 차량 내부 네트워크의 메시지 속도 요구사항을 보여주는 도표이다.
시스템 모델에서 서술한 바와 같이 Critical ECU 는 엔지니어에 의해 설정되며 주로 차량 제어에 핵심적인 역할을 하는 ECU들이 포함될 것이다. 대표적으로 차량 제어의 핵심적인 역할을 하는 power-train ecu는 최소 10ms에서 최대 10s의 요구사항을 가진다. 합의 프로토콜의 평균 소요시간과 비교해보면 11ms의 시간이 걸리므로 통상 1개~2개 정도의 메시지를 합의 과정으로 인하여 처리하지 않게 된다. 그러나 이는 차량 내부 네트워크에서 충분히 감안할 만한 수준이다. 우선 CAN 프로토콜은 특성 상 fail-safe mode를 지원하고 있어 1~2개의 제어 메시지 생략을 이상 없이 견딜 수 있다. 또한 CAN 네트워크에서 메시지 누락이 발생할 확률은 시간 당 3.98 × 10-9 ~ 2.94 × 10-6 으로 그 확률이 매우 낮음을 알 수 있다. 즉, 본 발명에서 제시하는 합의 프로토콜은 11ms의 시간이 소요되지만 동작할 확률이 매우 작다. 이는 차량 네트워크의 요구사항 및 메시지 수신 실패 확률로 미루어 볼 때 실시간성을 훼손하지 않는다고 할 수 있다.
본 발명에서는 차량 내부 네트워크에서 블록체인 메커니즘을 기반으로 한 동적 키 생성 및 메시지 인증 시스템에서 신뢰성과 일치성 위한 합의 프로토콜을 제안하였다. 제시된 합의 프로토콜은 메시지 누락이 발생했을 때에만 동작하는 lazy한 방식의 프로토콜이며 이전 주행에서 저장되었던 EEPROM의 데이터와 3가지의 새로운 메시지 타입을 사용하여 동작한다. 이는 기존 연구들과 비교하여 사용되는 메시지의 타입을 줄여 추가적인 오버헤드를 감소시켰으며 CAN 프로토콜의 특성을 반영하여 차량 네트워크에서 효율적으로 운용될 수 있도록 설계하였다. 더불어 주요 ECU들의 상태를 정의하고 상태에 기반한 합의 프로토콜을 구성하였다.
또한 합의 프로토콜이 만족해야 할 모든 속성들인 타당성, 일치성, 결정성 대해 각각 이론적 검증을 수행하였으며 실시간성을 알아보기 위한 방법으로 차량 네트워크와 유사한 환경을 구성하여 실험하였다. 실험의 결과 평균 소요시간은 11ms로 차량 네트워크에서 요구되는 네트워크 요구사항 또한 만족시킴을 보였다. 결론적으로 암호화 키를 이용하는 인증 시스템에서 모든 Critical ECU 들이 같은 암호화 키를 가짐을 보장함으로써 기존 연구에서 제시한 인증 시스템의 신뢰성을 강화하였다.
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (12)

  1. 서로 메시지를 송수신하는 다수 개의 전자 제어 장치들이 동일한 암호화 키를 유지하도록 구성된 분산 네트워크 시스템의 전자 제어 장치에 있어서,
    전자 제어 장치의 제어에 필요한 동작을 수행하는 마이크로 제어 유닛(Micro Controller Unit:MCU);
    다른 전자 제어 장치들과 메시지를 송수신하는 트랜시버;
    블록체인을 기반으로 하여, 상기 트랜시버를 통해 송수신되는 메시지를 인증하기 위한 암호화 키를 동적으로 생성하는 키 생성 모듈;
    상기 키 생성 모듈과 연결되어, 전자 제어 장치가 종료되기 전에 가장 마지막으로 생성된 암호화 키와 메시지를 저장하는 비휘발성 메모리;
    상기 키 생성 모듈과 연결되어, 사용중인 암호화 키 및 암호화 키 생성에 필요한 주요 메시지(primary message)를 저장하는 레지스터;
    를 구비하고, 상기 키 생성 모듈은,
    초기 상태에는 정상 상태로 진입하고, 주기적으로 메시지를 수신하고, 메시지의 수신 여부와 수신한 메시지 타입에 따라 정상 상태, 에러 상태 및 합의 상태 중 하나의 상태로 전이하며, 전이된 상태에 대응되게 사전 설정된 프로토콜에 따라 동작되는 것을 특징으로 하는 전자 제어 장치.
  2. 제1항에 있어서, 상기 키 생성 모듈은,
    정상 상태에서 메시지의 정상적인 수신이 확인되고 수신한 메시지의 타입이 사전 설정된 주요 메시지이면, 수신한 메시지를 MCU에게 전송하고, 주요 메시지를 저장하고, 메시지 인증을 위한 암호화 키를 정상적으로 생성하며,
    정상 상태에서 메시지의 정상적인 수신이 확인되고 수신한 메시지의 타입이 에러 플래그 메시지이면, 수신된 메시지의 저장 및 메시지 인증을 위한 암호화 키의 생성을 중단하고, 에러 상태로 전이하며,
    정상 상태에서 메시지의 정상적인 수신이 확인되지 않으면, 에러 상태로 전이하는 것을 특징으로 하며,
    상기 에러 플래그 메시지는 분산 네트워크 시스템을 구성하는 하나의 전자 제어 장치가 에러 상태로 전이한 것을 다른 전자 제어 장치에게 알리는 메시지인 것을 특징으로 하는 전자 제어 장치.
  3. 제1항에 있어서, 상기 키 생성 모듈은,
    에러 상태에서는, 에러 플래그 메시지를 다른 전자 제어 장치들로 전송하며, 지속적으로 메시지를 수신하고 처리하되, 수신된 메시지의 저장 및 메시지 인증을 위한 암호화 키의 생성을 중단하는 것을 특징으로 하며,
    상기 에러 플래그 메시지는 분산 네트워크 시스템을 구성하는 하나의 전자 제어 장치가 에러 상태로 전이한 것을 다른 전자 제어 장치에게 알리는 메시지로서, 비휘발성 메모리에 저장되어 있는 임의의 값을 이전 암호화 키로 암호화하여 나온 값을 포함하는 것을 특징으로 하는 전자 제어 장치.
  4. 제1항에 있어서, 상기 키 생성 모듈은,
    주요 메시지의 수신에 실패한 후 에러 상태에서 복구되어 주요 메시지의 정상적인 수신에 성공하면, 합의 요청 메시지를 생성하여 다른 전자 제어 장치들에게 전송하고 키 불일치에 대한 합의 상태로 전이하는 것을 특징으로 하며,
    상기 합의 요청 메시지는 합의를 요청하는 메시지로서, 비휘발성 메모리에 저장되어 있는 임의의 값을 이전 암호화키로 암호화한 값을 포함한 것을 특징으로 하는 전자 제어 장치.
  5. 제1항에 있어서, 상기 키 생성 모듈은,
    합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하면 정상 상태로 전이하고,
    합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하지 못하면 에러 상태로 전이하는 것을 특징으로 하며;
    상기 합의 메시지는 합의 요청 메시지를 수신한 전자 제어 장치들이 합의를 위하여 사용하는 메시지인 것을 특징으로 하는 전자 제어 장치.
  6. 제5항에 있어서, 상기 키 생성 모듈은,
    합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하면, 현재 레지스터에 저장된 값들을 삭제하고 비휘발성 메모리에 저장되어 있는 데이터를 레지스터로 옮겨 비휘발성 메모리에 저장되어 있던 초기 암호화키를 암호화 키 값으로 할당한 후, 정상 상태로 전이하는 것을 특징으로 하는 전자 제어 장치.
  7. 제1항에 있어서, 상기 분산 네트워크 시스템은 CAN(Controller Area Network) 프로토콜을 기반으로 통신하는 차량 내부 네트워크 시스템이며,
    상기 트랜시버는 CAN 트랜시버이며,
    상기 전자 제어 장치는 차량 내부의 제어 장치들이며,
    상기 분산 네트워크 시스템을 구성하는 모든 전자 제어 장치들은 동일한 암호화키를 유지하도록 구성된 분산 합의 프로토콜에 따라 동작되는 것을 특징으로 하는 전자 제어 장치.
  8. 분산 네트워크 시스템을 구성하는 모든 전자 제어 장치들이 동일한 암호화키를 유지하도록 구성된 전자 제어 장치의 분산 합의 프로토콜 방법에 있어서,
    (a) 초기 실행되면, 정상 상태로 진입하고 초기화시키는 단계;
    (b) 주기적으로 메시지를 수신하고, 메시지의 수신 여부 및 수신된 메시지의 타입에 따라 정상 상태, 에러 상태 및 합의 상태 중 하나의 상태로 전이하고, 전이된 상태에 대응되게 사전 설정된 프로토콜에 따라 동작하는 단계;
    (c) 종료시에는 현재의 암호화키 및 암호화키 생성에 사용된 주요 메시지를 전자 제어 장치의 비휘발성 메모리에 저장하고 종료하는 단계;
    를 구비하는 것을 특징으로 하는 전자 제어 장치의 분산 합의 프로토콜 방법.
  9. 제8항에 있어서, 상기 (b) 단계에서,
    (b1) 주기적으로 메시지를 수신하는 단계;,
    (b2) 정상 상태에서 메시지의 정상적인 수신이 확인되고, 수신한 메시지의 타입이 사전 설정된 주요 메시지이면, 수신한 메시지를 전자 제어 장치의 마이크로 제어 유닛(MCU)에게 전송하고, 주요 메시지를 저장하고, 메시지 인증을 위한 암호화 키를 정상적으로 생성하는 단계;
    (b3) 정상 상태에서 메시지의 정상적인 수신이 확인되고, 수신한 메시지의 타입이 에러 상태를 나타내는 에러 플래그 메시지이면, 해당 메시지를 저장하지 않고, 메시지 인증을 위한 암호화 키의 생성을 중단하고, 에러 상태로 전이하는 단계; 및
    (b4) 정상 상태에서 메시지의 정상적인 수신이 확인되지 않으면, 에러 상태로 전이하는 단계;를 구비하는 것을 특징으로 하며,
    상기 에러 플래그 메시지는 분산 네트워크 시스템을 구성하는 하나의 전자 제어 장치가 에러 상태로 전이한 것을 다른 전자 제어 장치에게 알리는 메시지로서, 비휘발성 메모리에 저장되어 있는 임의의 값을 이전 암호화 키로 암호화하여 나온 값을 포함하는 것을 특징으로 하는 전자 제어 장치의 분산 합의 프로토콜 방법.
  10. 제8항에 있어서, 상기 (b) 단계에서,
    (b5) 메시지의 수신이 실패되어 에러 상태로 진입된 후 복구되어 정상적인 메시지의 수신에 성공하면, 자신의 비휘발성 메모리에 저장되어 있는 데이터 및 이전 암호화 키를 사용하여 합의 요청 메시지를 생성한 후 송신하고, 키 불일치에 대한 합의 상태로 전이하는 단계; 를 구비하는 것을 특징으로 하며,
    상기 합의 요청 메시지는 합의를 요청하는 메시지로서, 비휘발성 메모리에 저장되어 있는 임의의 값을 이전 암호화키로 암호화한 값을 포함한 것을 특징으로 하는 전자 제어 장치의 분산 합의 프로토콜 방법.
  11. 제8항에 있어서, 상기 (b) 단계에서,
    (b6) 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하면 정상 상태로 전이하고,
    합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하지 못하면 에러 상태로 전이하는 단계;를 구비하는 것을 특징으로 하며,
    상기 합의 메시지는 합의 요청 메시지를 수신한 전자 제어 장치들이 합의를 위하여 사용하는 메시지인 것을 특징으로 하는 전자 제어 장치의 분산 합의 프로토콜 방법.
  12. 제8항에 있어서, 상기 (b) 단계에서,
    (b7) 합의 상태가 시작된 후 사전 설정된 합의 시간동안 사전 설정된 모든 주요 전자 제어 장치들로부터 합의 메시지를 수신하면, 현재 레지스터에 저장된 값들을 삭제하고 비휘발성 메모리에 저장되어 있는 데이터를 레지스터로 옮겨 비휘발성 메모리에 저장되어 있던 초기 암호화키를 암호화 키 값으로 할당한 후, 정상 상태로 전이하는 단계;를 구비하는 것을 특징으로 하는 전자 제어 장치의 분산 합의 프로토콜 방법.





KR1020170170557A 2017-12-12 2017-12-12 분산 네트워크 시스템의 전자 제어 장치 및 상기 전자 제어 장치의 분산 합의 프로토콜 방법 KR102021567B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170170557A KR102021567B1 (ko) 2017-12-12 2017-12-12 분산 네트워크 시스템의 전자 제어 장치 및 상기 전자 제어 장치의 분산 합의 프로토콜 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170170557A KR102021567B1 (ko) 2017-12-12 2017-12-12 분산 네트워크 시스템의 전자 제어 장치 및 상기 전자 제어 장치의 분산 합의 프로토콜 방법

Publications (2)

Publication Number Publication Date
KR20190070076A KR20190070076A (ko) 2019-06-20
KR102021567B1 true KR102021567B1 (ko) 2019-09-16

Family

ID=67104085

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170170557A KR102021567B1 (ko) 2017-12-12 2017-12-12 분산 네트워크 시스템의 전자 제어 장치 및 상기 전자 제어 장치의 분산 합의 프로토콜 방법

Country Status (1)

Country Link
KR (1) KR102021567B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022076310A (ja) * 2020-11-09 2022-05-19 株式会社デンソー 車両用データ保存方法、車両用データ保存システム
KR102256861B1 (ko) * 2020-11-20 2021-05-28 주식회사 스마트엠투엠 항만물류 시스템과 블록체인 네트워크 간의 인터워킹 방법 및 시스템
KR102571338B1 (ko) * 2021-03-15 2023-08-29 엔지엘 주식회사 블록체인 기반의 환적운송 서비스 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005354264A (ja) 2004-06-09 2005-12-22 Kddi Corp 個人情報提供システムおよび方法
KR100871857B1 (ko) 2007-06-11 2008-12-03 성균관대학교산학협력단 차량 내부의 네트워크 시스템 및 그 제어방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101417097B1 (ko) * 2008-08-12 2014-07-09 현대자동차주식회사 차량 네트워크에서의 메시지 전송 상태 진단 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005354264A (ja) 2004-06-09 2005-12-22 Kddi Corp 個人情報提供システムおよび方法
KR100871857B1 (ko) 2007-06-11 2008-12-03 성균관대학교산학협력단 차량 내부의 네트워크 시스템 및 그 제어방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Gordon, Gilroy. "Provenance and authentication of oracle sensor data with block chain lightweight wireless network authentication scheme for constrained oracle sensors," Saint Mary's University (2017)
Irina Hossain 외 1명, Analysis of Group Key Management Protocols for Secure Multicasting in ehicular Software Distribution Network, WiMob 2007 (2007)

Also Published As

Publication number Publication date
KR20190070076A (ko) 2019-06-20

Similar Documents

Publication Publication Date Title
CN107846395B (zh) 确保车载总线上的通信安全的方法、系统、介质和车辆
Zeng et al. In-vehicle networks outlook: Achievements and challenges
WO2018127199A1 (zh) 一种基于智能门锁系统的离线验证码的生成方法及其系统
KR102021567B1 (ko) 분산 네트워크 시스템의 전자 제어 장치 및 상기 전자 제어 장치의 분산 합의 프로토콜 방법
CN104118392A (zh) 一种发动机防盗系统的发动机防盗认证方法及装置
US10862670B2 (en) Automotive nonce-misuse-resistant authenticated encryption
Groza et al. LiBrA-CAN: Lightweight broadcast authentication for controller area networks
US10812261B2 (en) Vehicle system and key distribution method
EP4319080A1 (en) Method and apparatus for remote control
EP3982587A1 (en) Authentication method, device, and system
Kimm et al. Integrated fault tolerant system for automotive bus networks
CN113542265B (zh) 局部网络安全管理、装置、计算机设备及存储介质
Szilagy et al. A flexible approach to embedded network multicast authentication
US20230037778A1 (en) Method and system for data exchange on a network to enhance security measures of the network, vehicle comprising such system
Rosenstatter et al. Extending AUTOSAR's Counter-Based Solution for Freshness of Authenticated Messages in Vehicles
JP6468133B2 (ja) 車載ネットワークシステム
CN113448299A (zh) 一种车载网关控制器、信息处理方法及汽车
CN113630445B (zh) 一种基于区块链网络的数据存储方法及装置
CN114157489B (zh) 基于周期性鉴权握手机制的通信域控制器安全通信方法
Khemissa et al. Centralized architecture for ECU security management in connected and autonomous vehicles
WO2022110688A1 (zh) 基于现场总线的数据传输方法、身份识别方法及系统
Koopman et al. Integrity in embedded control networks
JP2020137009A (ja) ネットワークシステム
CN112977331A (zh) 汽车远程控制装置、车身控制设备、系统及控制方法
KR102398762B1 (ko) 차량 상태에 따른 차량용 네트워크의 보안 방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant