1 |
1
CAN FD(Controller Area Network with Flexible Data rate) 통신 시스템을 이용하여 차량용 데이터를 전송하는 제1 전자제어장치 및 상기 차량용 데이터를 수신하는 제2 전자제어장치가 차량용 데이터를 인증하고 획득하는 방법에 있어서, 상기 제1 전자제어장치 및 상기 제2 전자제어장치가 차량 제조 단계에서 미리 저장되어 있는 대칭키를 기반으로 게이트웨이 전자제어장치(GECU)와 세션 암호키 및 세션 인증키를 포함하는 세션키를 분배하는 세션키 분배 단계;상기 제1 전자제어장치가 상기 제1 전자제어장치의 데이터 프레임 카운터 및 암호화 함수를 이용하여 전송하고자 하는 데이터(M)를 암호화하여 암호문(C)을 생성하는 단계;상기 제1 전자제어장치가 상기 데이터 프레임 카운터, 상기 암호문(C), 및 암호학적 해쉬 함수를 이용하여 메시지 인증 코드를 생성하는 단계;상기 제1 전자제어장치가 상기 메시지 인증 코드, 상기 데이터 프레임 카운터, 및 상기 암호문(C)을 상기 제2 전자제어장치에 전송하는 단계;상기 제2 전자제어장치가 상기 데이터 프레임 카운터, 상기 암호문(C), 및 상기 암호학적 해쉬 함수를 이용하여 상기 메시지 인증 코드를 검증하는 단계; 및상기 메시지 인증 코드 검증에 통과하면, 상기 제2 전자제어장치가 상기 데이터 프레임 카운터, 상기 암호문(C), 및 상기 암호학적 해쉬 함수를 이용하여 상기 암호문(C)을 복호화하여 상기 데이터(M)를 획득하는 단계;를 포함하는 상기 세션키 분배 단계는,상기 제1 전자제어장치 또는 상기 제2 전자제어장치가 제1 난수를 선택하는 단계;상기 제1 전자제어장치 또는 상기 제2 전자제어장치가 상기 제1 난수를 상기 게이트웨이 전자제어장치(GECU)에 전송하는 단계;상기 게이트웨이 전자제어장치(GECU)가 제2 난수를 선택하고, 아래의 수학식1에 의해 제1 인증값을 생성하는 단계;(수학식1) MACik_1 = HSK_i(R_i_k||Seed_k)(여기서, i는 ECU의 ID, MACik_1는 ECU_i에 대한 k번쩨 세션에서의 제1 인증값, HSK_i는 ECU_i의 인증용 대칭키인 SK_i를 키로 사용하는 일 방향 해쉬 함수, R_i_k는 ECU_i에 대한 k번쩨 세션에서의 제1 난수, Seed_k는 ECU_i에 대한 k번쩨 세션에서의 제2 난수)상기 게이트웨이 전자제어장치(GECU)가 상기 제2 난수 및 상기 제1 인증값을 상기 제1 전자제어장치 또는 상기 제2 전자제어장치에 전송하는 단계;상기 제1 전자제어장치 또는 상기 제2 전자제어장치가 상기 제1 인증값을 상기 수학식1을 이용하여 검증하는 단계;상기 제1 전자제어장치 또는 상기 제2 전자제어장치가 아래의 수학식2에 의해 세션 암호키(EK_k) 및 세션 인증키(AK_k)를 포함하는 k번째 세션에서의 세션키를 생성하는 단계;(수학식2) KDFSK_G(Seed_k) = EK_k||AK_k(여기서 KDFSK_G는 키 생성용 대칭키인 SK_G를 키로 사용하는 키생성함수)상기 제1 전자제어장치 또는 상기 제2 전자제어장치가 아래의 수학식3에 의해 제2 인증값을 생성하는 단계;(수학식3) MACik_2 = HSK_i(Seed_k)(여기서, MACik_2는 ECU_i에 대한 k번쩨 세션에서의 제2 인증값)상기 제1 전자제어장치 또는 상기 제2 전자제어장치가 상기 제2 인증값을 상기 게이트웨이 전자제어장치(GECU)에 전송하는 단계;상기 게이트웨이 전자제어장치(GECU)가 상기 제2 인증값을 상기 수학식3을 이용하여 검증하는 단계; 및상기 게이트웨이 전자제어장치(GECU)가 상기 수학식2에 의해 상기 세션 암호키(EK_k) 및 상기 세션 인증키(AK_k)를 포함하는 k번째 세션에서의 상기 세션키를 생성하는 단계;를 포함하는 차량용 데이터의 인증 및 획득 방법
|
2 |
2
제1항에 있어서, 상기 세션키 분배 단계 수행하기 전,상기 제1 전자제어장치 및 상기 제2 전자제어장치가 상기 암호화 함수 및 상기 암호학적 해쉬 함수를 저장하는 단계를 더 포함하는 차량용 데이터의 인증 및 획득 방법
|
3 |
3
제1항에 있어서,상기 제1 전자제어장치가 상기 메시지 인증 코드, 상기 데이터 프레임 카운터, 및 상기 암호문(C)을 CAN FD 데이터 프레임의 데이터페이로드 영역에 적재하여 상기 제2 전자제어장치에 전송하며, 상기 데이터페이로드 영역은 상기 메시지 인증 코드를 적재하는 제1 영역, 상기 데이터 프레임 카운터를 적재하는 제2 영역, 및 상기 암호문(C)을 적재하는 제3 영역을 포함하는 차량용 데이터의 인증 및 획득 방법
|
4 |
4
제1항에 있어서, 상기 제1 전자제어장치 또는 상기 제2 전자제어장치가 상기 세션키의 업데이트를 수행할지 여부를 결정하는 단계; 및상기 세션키 업데이트를 수행하기로 결정한 경우, 상기 제1 전자제어장치 및 상기 제2 전자제어장치가 상기 대칭키를 기반으로 업데이트 세션 암호키 및 업데이트 세션 인증키를 포함하는 업데이트 세션키를 분배하는 단계;를 더 포함하는 차량용 데이터의 인증 및 획득 방법
|
5 |
5
제4항에 있어서, 상기 암호화 함수는 상기 제1 전자제어장치가 차량용 데이터를 송신하는 세션에 대응하는 세션 암호키 또는 업데이트 세션 암호키로 암호화를 수행하고,상기 암호학적 해쉬 함수는 상기 제1 전자제어장치가 차량용 데이터를 송신하는 세션에 대응하는 세션 인증키 또는 업데이트 세션 인증키로 상기 메시지 인증 코드를 생성하는 차량용 데이터의 인증 및 획득 방법
|
6 |
6
적어도 하나 이상의 일반 전자제어장치와 게이트웨이 전자제어장치(GECU) 및 이를 연결하는 통신 버스를 포함하는 차량용 통신 시스템에서 상기 게이트웨이 전자제어장치(GECU) 및 일반 전자제어장치(ECU_i)가 차량용 데이터를 인증하고 획득하는 방법에 있어서, 상기 게이트웨이 전자제어장치(GECU) 및 상기 일반 전자제어장치(ECU_i)가 차량 제조 단계에서 미리 저장되어 있는 대칭키를 기반으로 세션 암호키 및 세션 인증키를 포함하는 세션키를 분배하는 세션키 분배 단계; 및상기 게이트웨이 전자제어장치(GECU) 또는 상기 일반 전자제어장치(ECU_i) 중 어느 하나의 장치가 메시지 인증 코드, 데이터 프레임 카운터, 및 암호문(C)을 포함하는 차량용 데이터를 전송하고, 상기 게이트웨이 전자제어장치(GECU) 또는 상기 일반 전자제어장치(ECU_i) 중 다른 하나의 장치가 상기 메시지 인증 코드를 검증하고 상기 암호문을 복호화함으로써, 상기 차량용 데이터를 인증하고 획득하는 단계;를 포함하고,상기 세션키 분배 단계는,상기 일반 전자제어장치(ECU_i)가 제1 난수를 선택하는 단계;상기 일반 전자제어장치(ECU_i)가 상기 제1 난수를 상기 게이트웨이 전자제어장치(GECU)에 전송하는 단계;상기 게이트웨이 전자제어장치(GECU)가 제2 난수를 선택하고, 아래의 수학식1에 의해 제1 인증값을 생성하는 단계;(수학식1) MACik_1 = HSK_i(R_i_k||Seed_k)(여기서, MACik_1는 ECU_i에 대한 k번쩨 세션에서의 제1 인증값, HSK_i는 ECU_i의 인증용 대칭키인 SK_i를 키로 사용하는 일 방향 해쉬 함수, R_i_k는 ECU_i에 대한 k번쩨 세션에서의 제1 난수, Seed_k는 ECU_i에 대한 k번쩨 세션에서의 제2 난수)상기 게이트웨이 전자제어장치(GECU)가 상기 제2 난수 및 상기 제1 인증값을 상기 일반 전자제어장치(ECU_i)에 전송하는 단계;상기 일반 전자제어장치(ECU_i)가 상기 제1 인증값을 상기 수학식1을 이용하여 검증하는 단계;상기 일반 전자제어장치(ECU_i)가 아래의 수학식2에 의해 세션 암호키(EK_k) 및 세션 인증키(AK_k)를 포함하는 k번째 세션에서의 세션키를 생성하는 단계;(수학식2) KDFSK_G(Seed_k) = EK_k||AK_k(여기서 KDFSK_G는 키 생성용 대칭키인 SK_G를 키로 사용하는 키생성함수)상기 일반 전자제어장치(ECU_i)가 아래의 수학식3에 의해 제2 인증값을 생성하는 단계;(수학식3) MACik_2 = HSK_i(Seed_k)(여기서, MACik_2는 ECU_i에 대한 k번쩨 세션에서의 제2 인증값)상기 일반 전자제어장치(ECU_i)가 상기 제2 인증값을 상기 게이트웨이 전자제어장치(GECU)에 전송하는 단계;상기 게이트웨이 전자제어장치(GECU)가 상기 제2 인증값을 상기 수학식3을 이용하여 검증하는 단계; 및상기 게이트웨이 전자제어장치(GECU)가 상기 수학식2에 의해 상기 세션 암호키(EK_k) 및 상기 세션 인증키(AK_k)를 포함하는 k번째 세션에서의 상기 세션키를 생성하는 단계;를 포함하는 차량용 데이터의 인증 및 획득 방법
|
7 |
7
제6항에 있어서,상기 게이트웨이 전자제어장치(GECU) 및 상기 일반 전자제어장치(ECU_i)는 CAN FD(Controller Area Network with Flexible Data rate) 통신 시스템을 이용하여 통신하며,상기 게이트웨이 전자제어장치(GECU) 또는 상기 일반 전자제어장치(ECU_i)가 메시지 인증 코드, 데이터 프레임 카운터, 및 암호문(C)을 CAN FD 데이터 프레임의 데이터페이로드 영역에 적재하여 상기 일반 전자제어장치(ECU_i) 또는 상기 게이트웨이 전자제어장치(GECU)에 전송하고,상기 데이터페이로드 영역은 상기 메시지 인증 코드를 적재하는 제1 영역, 상기 데이터 프레임 카운터를 적재하는 제2 영역, 및 상기 암호문(C)을 적재하는 제3 영역을 포함하는 차량용 데이터의 인증 및 획득 방법
|
8 |
8
제6항에 있어서, 상기 일반 전자제어장치(ECU_i)에 저장된 대칭키는 상기 일반 전자제어장치(ECU_i) 고유의 인증용 대칭키(SK_i) 및 키 생성용 대칭키(SK_G)를 포함하고, 상기 게이트웨이 전자제어장치(GECU)에 저장된 대칭키는 상기 게이트웨이 전자제어장치(GECU)와 통신을 수행하는 일반 전자제어장치(ECU_i)들의 인증용 대칭키(SK_i)들 및 상기 키 생성용 대칭키(SK_G)를 포함하는 차량용 데이터의 인증 및 획득 방법
|
9 |
9
제6항에 있어서,상기 게이트웨이 전자제어장치(GECU) 또는 상기 일반 전자제어장치(ECU_i)가 상기 세션키의 업데이트를 수행할지 여부를 결정하는 단계를 포함하고,상기 세션키의 업데이트를 수행하기로 결정한 경우, 상기 게이트웨이 전자제어장치(GECU) 및 상기 일반 전자제어장치(ECU_i)가 상기 세션키를 분배하는 단계를 반복하여 수행하는 차량용 데이터의 인증 및 획득 방법
|