KR101759133B1 - 비밀 정보 기반의 상호 인증 방법 및 장치 - Google Patents

비밀 정보 기반의 상호 인증 방법 및 장치 Download PDF

Info

Publication number
KR101759133B1
KR101759133B1 KR1020150036940A KR20150036940A KR101759133B1 KR 101759133 B1 KR101759133 B1 KR 101759133B1 KR 1020150036940 A KR1020150036940 A KR 1020150036940A KR 20150036940 A KR20150036940 A KR 20150036940A KR 101759133 B1 KR101759133 B1 KR 101759133B1
Authority
KR
South Korea
Prior art keywords
random number
key
function
generating
variable
Prior art date
Application number
KR1020150036940A
Other languages
English (en)
Other versions
KR20160111789A (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 KR1020150036940A priority Critical patent/KR101759133B1/ko
Priority to JP2015104781A priority patent/JP6556495B2/ja
Priority to US14/790,599 priority patent/US9960915B2/en
Priority to DE102015215697.4A priority patent/DE102015215697A1/de
Priority to CN201510647148.9A priority patent/CN105991644B/zh
Publication of KR20160111789A publication Critical patent/KR20160111789A/ko
Application granted granted Critical
Publication of KR101759133B1 publication Critical patent/KR101759133B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic 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 using challenge-response
    • H04L9/3273Cryptographic 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 using challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Abstract

본 발명은 비밀 정보 기반의 상호 인증 방법 및 장치에 관한 것이다. 본 발명의 일 실시예에 따른 외부 장치와 연동되는 차량 제어기에서의 상호 인증 방법은 상기 외부 장치로부터의 수신된 인증 요청 메시지에 따라 난수 S를 상기 외부 장치에 전송하는 제1 단계와 상기 난수 S를 매개 변수로 하는 제1 함수를 이용하여 변수 i를 생성하는 제2 단계와 상기 변수 i 및 미리 저장된 보안 키 K를 매개 변수로 하는 제2함수를 이용하여 제1 세션 키 Ks를 생성하는 제3 단계와 상기 외부 장치로부터 제1 응답 키를 수신하는 제4 단계와 상기 난수 S, 상기 변수 i, 상기 제1 세션 키 Ks를 매개 변수로 하는 제3함수를 이용하여 제2 응답 키를 생성하는 제5 단계와 상기 제1 응답 키와 상기 제2 응답 키의 일치 여부에 기반하여 상기 외부 장치를 인증하는 제6 단계를 포함하여 구성될 수 있다. 따라서, 본 발명은 보안 정보에 기반하여 외부 장치와 차량 제어기 사이의 상호 인증을 가능하게 하는 장점이 있다.

Description

비밀 정보 기반의 상호 인증 방법 및 장치{Method and Apparutus For Providing Cross-Authentication Based On Secret Information}
본 발명은 차량에서의 상호 인증 방법 및 장치에 관한 것으로서, 상세하게, 비밀 정보에 기반하여 차량 제어기와 외부 장치 사이의 상호 인증을 가능하게 하는 비밀 정보 기반의 상호 인증 방법 및 장치에 관한 것이다.
최근 출시되고 있는 차량에는 운전자의 편의 및 안전을 향상시키기 위한 각종 전자 제어 장치가 탑재되고 있으며, 이들 전자 제어 장치간의 상호 통신을 위한 차량 내 통신 네트워크가 기본적으로 탑재되고 있다.
차량 내 전자 제어기 개수가 지속적으로 증가하고, 다양한 외부 기기와의 연동이 가능해짐에 따라, 차량 보안을 유지하는 것은 안전 운행을 위해 매우 중요한 이슈이다.
따라서, 차량 제어기에 대한 진단 및 차량 제어기 내부의 데이터 업데이트를 수행하기 위해서는 외부 진단 장치에 대한 인증 절차가 요구된다.
종래, 차량 제어기와 진단기 사이의 인증 절차는 진단기의 인증 요청에 따라 차량 제어기가 Seed 값을 진단기에 전송하면, 진단기가 수신된 Seed 값을 이용하여 Key 값을 생성한다. 이때, 생성된 Key 값은 전자 제어기에 전송되며, 전자 제어기는 진단기로부터 수신된 Key 값과 미리 정의된 알고리즘에 따라 내부 생성된 Key 값의 일치 여부에 기반하여 진단기의 접근을 허용한다.
하지만, 종래의 Seed Key 알고리즘은 Seed 값을 받아서 Key를 생성하는 알고리즘 자체를 비밀로 유지함으로써 보안을 달성하는 방식이므로, 해당 Seed key 알고리즘이 공개되거나 분석이 되는 경우 보안에 치명적인 문제점이 있었다.
본 발명은 상술한 종래 기술의 문제점을 해결하기 위해 고안된 것으로, 본 발명의 목적은 보안 정보에 기반한 상호 인증 방법 및 장치를 제공하는 것이다.
본 발명의 다른 목적은 Seed 값에 독립적인 사전 공유된 비밀키에 기반하여 상호 인증을 수행하는 것이 가능한 보안 정보에 기반한 상호 인증 방법 및 장치를 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명은 비밀 정보 기반의 상호 인증 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 외부 장치와 연동되는 차량 제어기에서의 상호 인증 방법은 상기 외부 장치로부터의 수신된 인증 요청 메시지에 따라 난수 S를 상기 외부 장치에 전송하는 제1 단계와 상기 난수 S를 매개 변수로 하는 제1 함수를 이용하여 변수 i를 생성하는 제2 단계와 상기 변수 i 및 미리 저장된 보안 키 K를 매개 변수로 하는 제2함수를 이용하여 제1 세션 키 Ks를 생성하는 제3 단계와 상기 외부 장치로부터 제1 응답 키를 수신하는 제4 단계와 상기 난수 S, 상기 변수 i, 상기 제1 세션 키 Ks를 매개 변수로 하는 제3함수를 이용하여 제2 응답 키를 생성하는 제5 단계와 상기 제1 응답 키와 상기 제2 응답 키의 일치 여부에 기반하여 상기 외부 장치를 인증하는 제6 단계를 포함하여 구성될 수 있다.
본 발명의 다른 일 실시예에 따른 차량 제어기와 연동되는 외부 장치에서의 상호 인증 방법은 상기 차량 제어기에 인증 요청 메시지를 전송하는 제1 단계와 상기 차량 제어기로부터 난수 S를 수신하는 제2 단계와 상기 난수 S를 매개 변수로 하는 제1 함수를 이용하여 변수 i를 생성하는 제3 단계와 상기 변수 i 및 미리 저장된 보안 키 K를 매개 변수로 하는 제2함수를 이용하여 제1 세션 키 Ks를 생성하는 제4 단계와 상기 난수 S, 상기 변수 i, 상기 제1 세션 키 Ks를 매개 변수로 하는 제3함수를 이용하여 제1 응답 키를 생성하는 제5 단계와 상기 제1 응답 키를 상기 차량 제어기에 전송하는 제6 단계를 포함하여 구성될 수 있다.
본 발명의 또 다른 일 실시예에 따른 외부 장치와 상호 인증을 수행하는 상호 인증 장치는 상기 외부 장치와의 통신을 수행하는 통신부와 상기 외부 장치로부터의 수신된 인증 요청 메시지에 따라 난수 S를 생성하는 난수 생성부와 상기 난수 S를 매개 변수로 하는 제1함수를 이용하여 변수 i를 생성하는 반복 회수 생성부와 상기 변수 i 및 미리 저장된 보안 키 K를 매개 변수로 하는 제2함수를 이용하여 제1 세션 키 Ks를 생성하는 세션 키 생성부와 상기 외부 장치로부터 제1 응답 키를 수신되면, 상기 난수 S, 상기 변수 i 및 상기 제1 세션 키 Ks를 매개 변수로 하는 제3함수를 이용하여 제2 응답 키를 생성하는 응답 키 생성부와 상기 제1 응답 키와 상기 제2 응답 키의 일치 여부에 기반하여 상기 외부 장치를 인증하는 인증부를 포함할 수 있다.
본 발명의 또 다른 일 실시예에 따른 차량 제어기와 상호 인증을 수행하는 상호 인증 장치는 상기 차량 제어기에 인증 요청 메시지를 전송하고, 상기 차량 제어기로부터 난수 S를 수신하는 통신부와 상기 난수 S를 매개 변수로 하는 제1 함수를 이용하여 변수 i를 생성하는 반복 회수 생성부와 상기 변수 i 및 미리 저장된 보안 키 K를 매개 변수로 하는 제2함수를 이용하여 제1 세션 키 Ks를 생성하는 세션 키 생성부와 상기 변수 i, 상기 제1 세션 키 Ks 및 상기 난수 S를 매개 변수로 하는 제3함수를 이용하여 제1 응답 키를 생성하는 응답 키 생성부와 상기 차량 제어기에 전송된 상기 제1 응답 키와 상기 상기 차량 제어기로부터 수신된 제3 응답 키의 일치 여부를 확인하여 상기 차량 제어기를 인증하는 인증부를 포함할 수 있다.
본 발명의 또 다른 일 실시예는 상기한 상호 인증 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
상기 본 발명의 양태들은 본 발명의 바람직한 실시예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명에 따른 방법 및 장치에 대한 효과에 대해 설명하면 다음과 같다.
첫째, 본 발명은 보안 정보에 기반한 상호 인증 방법 및 장치를 제공하는 장점이 있다.
둘째, 본 발명은 Seed 값에 독립적인 사전 공유된 비밀키에 기반하여 상호 인증을 수행하는 것이 가능한 보안 정보에 기반한 상호 인증 방법 및 장치를 제공하는 장점이 있다.
셋째, 본 발명은 Seed 값에 따라 반복 회수 i가 동적으로 변경되어 비밀 키 값에 대한 보안 수준 및 연산의 복잡도가 동적으로 변경될 수 있는 장점이 있다.
넷째, 본 발명은 다양한 길이의 비밀 키를 제공함으로써 보안 수준을 제어할 수 있는 장점이 있다.
이하에 첨부되는 도면들은 본 발명에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 본 발명에 대한 실시예들을 제공한다. 다만, 본 발명의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시예로 구성될 수 있다.
도 1은 본 발명의 일 실시예에 따른 비밀 정보에 기반한 상호 인증 시스템 구성도이다.
도 2는 본 발명의 일 실시예에 따른 상호 인증 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 세션 키 생성 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 다른 일 실시예에 따른 세션 키 생성 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 응답 키 생성 절차를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 차량 제어기에서의 상호 인증 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시예에 따른 외부 장치에서의 상호 인증 방법을 설명하기 위한 순서도이다.
이하, 본 발명의 실시예들이 적용되는 장치 및 다양한 방법들에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성 요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 비밀 정보에 기반한 상호 인증 시스템 구성도이다.
도 1을 참조하면, 상호 인증 시스템은 크게 외부 장치(10)와 차량 제어기(20)를 포함하여 구성될 수 있다.
일 예로, 외부 장치(10)는 소정 접속 단자 또는 무선 연결을 통해 차량 상태를 진단하는 진단기(Tester) 또는 OBD(On-Board Diagnostics)일 수 있다.
외부 장치(10)와 차량 제어기(20)는 유선 또는 무선 연결을 통해 신호를 송수신하는 통신부(11 및 21)가 포함될 수 있다.
또한, 외부 장치(10)와 차량 제어기(20)는 상호 인증을 위한 난수 생성부(12,22), 반복 회수 생성부(13, 23), 세션 키 생성부(14, 24), 응답 키 생성부(15,25), 인증부(16, 26) 및 장치 내부의 전체적인 동작을 제어하는 제어부(17, 27)를 포함하여 구성될 수 있다.
난수 생성부(12,22)는 소정 길이를 갖는 난수를 생성하는 기능을 수행할 수 있다. 일 예로, 외부 장치(10)의 난수 생성부(12)는 소정 길이의 난수 R를 생성하고, 생성된 난수 R이 포함된 인증 요청 메시지를 차량 제어기(20)에 전송할 수 있다. 또한, 차량 제어기(20)의 난수 생성부(22)는 인증 요청 메시지가 수신되면 소정 길이의 난수 S를 생성할 수 있다.
반복 회수 생성부((13, 23)는 외부 장치(10)의 난수 생성부(12)에 의해 생성된 난수 R과 차량 제어기(20)의 난수 생성부(22)에 의해 생성된 난수 S 중 적어도 하나를 이용하여 보안 수준 및 인증 알고리즘의 연산 복잡도를 결정하는 파라메터 값인 변수 i-이하, 설명의 편의를 위해 반복 회수 i와 혼용하여 사용하기로 함-를 생성할 수 있다. 이하, 난수 R과 난수 S 중 적어도 하나를 매개 변수로 변수 i를 생성하는 함수를 설명의 편의를 위해 제1 함수(f 1 )라 명하기로 한다.
일 예로, 반복 회수 i는 하기의 수식 (1)에 의해 산출될 수 있다.
i = f 1(R, S) = L S (R) + S mod 16 수식 (1)
여기서, Ls(R)은 난수 R을 난수 S의 비트 수만큼 순환 전치(cyclic shift)시키는 함수일 수 있다. 일 예로, 난수 R의 비트 순서가 (x n -1, x n -2,..., x 1, x 0)2 인 경우, 함수 Ls(R)은 난수 S의 비트 수만큼 왼쪽으로 순환 전치되어 (x n - s -1, ..., x 1, x 0, x n -1, x n -2,..., x n - s )2 값이 생성되도록 정의될 수 있다.
세션 키 생성부(14, 24)는 반복 회수 i, 미리 공유된 비밀 키(K) 및 난수 S를 매개 변수로 하는 제2 함수(f 2 )를 이용하여 제1 세션 키 Ks를 생성하는 기능을 수행한다. 또한, 세션 키 생성부(14, 24)는 반복 변수 i, 제1 세션 키 Ks 및 후술할 제1 응답 키(A_Tester) 또는 제2 응답 키(A_ECU)를 이용하여 제2 세션 키 Ks2 를 생성할 수도 있다.
세션 키 생성 절차는 후술할 도 3 내지 도 4를 통해 상세히 설명하기로 한다.
응답 키 생성부(15, 25)는 반복 회수 i, 세션 키, 난수 R, 난수 S 중 적어도 하나를 매개 변수로 입력 받아 응답 키를 생성하는 기능을 수행할 수 있다. 이하, 설명의 편의를 위해 응답 키 생성을 위해 사용되는 함수를 제3함수라 명하기로 한다.
일 예로, 차량 제어기(20)의 응답 키 생성부(25)는 반복 회수 i, 제1 세션 키 Ks, 난수 R 및 난수 S를 매개 변수로 입력 받아, 제2 응답 키(A_ECU)를 생성할 수 있다. 유사하게, 외부 장치(10)의 응답 키 생성부(15)도 반복 회수 i, 제1 세션 키 Ks, 난수 R 및 난수 S를 매개 변수로 입력 받아, 제1 응답 키(A_Tester)를 생성할 수 있다.
또한, 차량 제어기(20)의 응답 키 생성부(25)는 외부 장치(10)로부터 제1 응답 키(A_Tester)가 수신되면, 제1 응답 키와 제2 응답 키의 동일 여부에 따라 제3 응답 키(B_ECU)를 생성할 수 있다. 유사하게, 외부 장치(10)의 응답 키 생성부(15)도 제4 응답 키(B_Tester)를 생성할 수 있다.
응답 키 생성부(15, 25)에서의 응답 키 생성 절차는 후술할 도 5를 통해 상세히 설명하기로 한다.
인증부(16, 26)는 다른 장치로부터 수신된 응답 키와 내부 생성된 응답 키의 일치 여부를 확인하여, 다른 장치에 대한 인증 성공 여부를 판단하는 기능을 수행할 수 있다.
일 예로, 외부 장치(10)의 인증부(16)는 내부 생성된 제4 응답 키(B_Tester)와 차량 제어기(10)로부터 수신된 제3 응답 키(B_ECU)가 서로 일치하는 경우, 차량 제어기(10)에 대한 인증이 성공한 것으로 판단할 수 있다.
다른 일 예로, 차량 제어기(20)의 인증부(26)는 외부 장치(10)로부터 수신된 제1 응답 키(A_Tester)와 내부 생성된 제2 응답 키(A_ECU)가 서로 일치하는 경우, 외부 장치(10)의 인증이 성공한 것으로 판단할 수 있다.
따라서, 본 발명에 따른 외부 장치(10) 및 차량 제어기(20)는 미리 공유된 비밀 키를 이용하여 응답 키를 생성한 후 생성된 응답 키를 서로 교환함으로써 상호 인증을 수행할 수 있다.
도 2는 본 발명의 일 실시예에 따른 상호 인증 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 외부 장치(10)와 차량 제어기(20)에는 미리 공유된 비밀 키(K)가 유지될 수 있다. 일 예로, 비밀 키(K)의 길이는 80 비트 또는 128 비트 중 어느 하나일 수 있다.
외부 장치(10)는 난수 R을 생성하고, 생성된 난수 R이 포함된 인증 요청 메시지를 차량 제어기(20)에 전송할 수 있다(S201 내지 S203).
차량 제어기(20)는 인증 요청 메시지가 수신되면, 난수 S를 생성하여 외부 장치(10)에 전송한다(S205 내지 S207). 이때, 차량 제어기(20)는 난수 R 및 난수 S를 매개 변수로 하는 제1 함수를 이용하여 반복 회수 i를 산출할 수 있다(S209).
연이어, 차량 제어기(20)는 반복 회수 i, 비밀 키(Secrete Key) K 및 난수 S를 제2 함수의 매개 변수로 입력하여 제1 세션 키 Ks를 생성할 수 있다(S211).
외부 장치(10)는 Seed 값인 난수 S가 수신되면, 기 생성된 난수 R 및 차량 제어기(20)로부터 수신된 난수 S를 매개 변수로 하는 제1 함수를 이용하여 반복 회수 i를 생성할 수 있다(S215).
또한, 외부 장치(10)는 반복 회수 i, 비밀 키 K 및 난수 S를 제2 함수의 매개 변수로 입력하여 제1 세션 키 Ks 생성할 수 있다(S216).
외부 장치(10)는 반복 회수 i, 제1 세션 키 Ks, 난수 R 및 난수 S를 매개 변수로 하는 제3함수를 이용하여 제1 응답 키(A_Tester)를 생성하여 차량 제어기(20)에 전송할 수 있다(S219 내지 S221).
이때, 외부 장치(20)는 생성된 제1 응답 키(A_Teseter)를 이용하여 제4 응답 키(B_Tester)를 생성할 수 있다. 상세하게, 외부 장치(10)는 제1 응답 키(A_Tester)와 반복 회수 i를 매개 변수로 하는 제4 함수를 이용하여 반복 회수 j를 생성하고, 생성된 반복 회수 j 및 기 생성된 제1 세션 키 Ks를 매개 변수로 하는 제5 함수를 이용하여 제2 세션 키 Ks2를 생성할 수 있다. 연이어, 외부 장치(10)는 변환 변수 j, 제2 세션 키 Ks2, 난수 R 및 난수 S를 매개 변수로 하는 제6 함수를 이용하여 제4 응답 키(B_Tester)를 생성할 수 있다.
차량 제어기(20)는 수신된 제1 응답 키(A_Teseter)와 내부 생성된 제2 응답 키(A_EUC)가 일치하는 여부를 확인할 수 있다(S223). 여기서, 확인 결과, 일치하면, 제1 응답 키(A_ECU)와 반복 회수 i를 매개 변수로 하는 제4 함수를 이용하여 반복 회수 j를 생성하고, 생성된 반복 회수 j 및 기 생성된 제1 세션 키 Ks를 매개 변수로 하는 제5 함수를 이용하여 제2 세션 키 Ks2를 생성할 수 있다. 연이어, 차량 제어기(20)는 변환 변수 j, 제2 세션 키 Ks2, 난수 R 및 난수 S를 매개 변수로 하는 제6 함수를 이용하여 제3 응답 키(B_ECU)를 생성할 수 있다. 만약, 상기 223 단계의 확인 결과, 일치하지 않는 경우, 차량 제어기(20)는 소정 난수 생성기를 이용하여 난수를 생성할 수 있다. 이때, 생성된 난수는 제3 응답 키(B_ECU)가 될 수 있다.
차량 제어기(20)는 제3 응답 키(B_ECU)를 외부 장치(10)에 전송할 수 있다(S225).
외부 장치(10)는 수신된 제3 응답 키(B_ECU)와 기 생성된 제4 응답 키(B_Tester) 값의 일치 여부를 확인할 수 있다(S227). 여기서, 확인 결과, 일치하면, 외부 장치(10)는 차량 제어기(20)의 인증에 성공한 것으로 판단할 수 있다. 반면, 상기 227 단계의 확인 결과, 일치하지 않으면, 외부 장치(10)는 차량 제어기(20)의 인증에 실패한 것으로 판단할 수 있다.
도 3은 본 발명의 일 실시예에 따른 세션 키 생성 방법을 설명하기 위한 도면이다.
상세하게, 도 3은 외부 장치(10)에서의 미리 할당된 비밀 키 K(301)의 길이가 80비트인 경우, 제1 세션 키 Ks를 생성하는 방법에 관한 것이다.
도 3을 참조하면, 외부 장치(10)는 차량 제어기(20)로부터 수신된 Seed 값인 난수 S(302)를 비밀 키 K(301)의 길이만큼 반복 연접한 후, XOR 연산(303)을 통해 80 비트의 길이를 갖는 K'(304)를 생성할 수 있다.
일 예로, 도면 번호 310에 도시된 바와 같이, 2개의 난수 S(302)와 난수 S(302)의 하위 16비트가 연접되어 80비트의 길이를 갖는 비트 시퀀스가 생성될 수 있다. 이때, 외부 장치(10)는 생성된 비트 시퀀스를 비밀 키 K(301)와 비트 단위 XOR 연산을 수행하여 K'(304)를 생성할 수 있다.
연이어, 도면 번호 320에 도시된 바와 같이, 외부 장치(10)는 생성된 K'(304)를 반복 회수 i만큼 왼쪽 또는 오른쪽으로 순환 전치시킨 후, 순환 전치된 K'(L i (K') 와 K'(304)를 비트 단위 XOR 연산을 수행하여 제1 세션 키 Ks를 생성할 수 있다.
도 4는 본 발명의 다른 일 실시예에 따른 세션 키 생성 방법을 설명하기 위한 도면이다.
상세하게, 도 4는 외부 장치(10)에서의 미리 할당된 비밀 키 K(401)의 길이가 128비트인 경우, 제1 세션 키 Ks를 생성하는 방법에 관한 것이다.
도 3을 참조하면, 외부 장치(10)는 차량 제어기(20)로부터 수신된 Seed 값인 난수 S(402)를 비밀 키 K(401)의 길이만큼 반복 연접한 후, XOR 연산(403)을 통해 128 비트의 길이를 갖는 K'(404)를 생성할 수 있다.
일 예로, 도면 번호 410에 도시된 바와 같이, 난수 S(402)가 32 비트의 길이를 갖는 경우, 4개의 난수 S(402)를 연접하여 128비트의 길이를 갖는 비트 시퀀스가 생성될 수 있다. 이때, 외부 장치(10)는 생성된 비트 시퀀스를 비밀 키 K(401)와 비트 단위 XOR 연산을 수행하여 K'(404)를 생성할 수 있다.
연이어, 도면 번호 420에 도시된 바와 같이, 외부 장치(10)는 생성된 K'(404)를 반복 회수 i만큼 왼쪽 또는 오른쪽으로 순환 전치시킨 후, 순환 전치된 K'(L i (K') 와 K'(404)를 비트 단위 XOR 연산을 수행하여 제1 세션 키 Ks를 생성할 수 있다.
이상에서는, 외부 장치(10)에서의 제1 세션 키 Ks를 생성하는 절차를 설명하고 있으나, 본 발명에 따른 제2 세션 키 Ks2도 상기한 도 3 내지 도 4에 개시된 방법으로 생성될 수 있음을 주의해야 한다.
도 5는 본 발명의 일 실시예에 따른 응답 키 생성 절차를 설명하기 위한 도면이다.
상세하게, 도 5는 외부 장치(10)에서의 제1 응답 키(A_Tester) 생성 절차를 설명하기 위한 도면이다.
도 5를 참조하면, 외부 장치(10)는 하기 수식 5-1과 같이 내부 생성된 난수 R과 차량 제어기(20)로부터 수신된 난수 S를 비트 단위 XOR 연산하여 4 비트 단위의 l i 를 생성할 수 있다. 여기서, i는 0부터 7의 값을 가질 수 있다.
<수식 5-1>
Figure 112015026134893-pat00001
= l 7||l 6||l 5||l 4||l 3||l 2||l 1||l 0
연이어, 외부 장치(10)는 하기 수식 5-2와 같이, 집합 h(l i )를 참조하여 l i 에 대한 치환 연산을 수행할 수 있다.
<수식 5-2>
Figure 112015026134893-pat00002
= h(l 7)|| h(l 6)|| h(l 5)|| h(l 4)|| h(l 3)|| h(l 2)|| h(l 1)|| h(l 0)
여기서, h(l i ) = {9, 4, 10, 11, 13, 1, 8, 5, 6, 2, 0, 3, 12, 14, 15, 17}
이 후, 외부 장치(10)는 상기 치환 연산 결과인 h(l 7)|| h(l 6)|| h(l 5)|| h(l 4)|| h(l 3)|| h(l 2)|| h(l 1)|| h(l 0)를 하기 수식 5-3과 같이, 소정 4X4 행렬과 곱하여
Figure 112015026134893-pat00003
를 생성할 수 있다.
< 수식 5-3>
Figure 112015026134893-pat00004
일 예로, 상기 수식 5-3을 참조하면,
Figure 112015026134893-pat00005
으로 산출될 수 있다.
여기서, 이진수 표기된 x가 (x3,x2,x1,x0)인 경우, 2x와 3x는 각각
Figure 112015026134893-pat00006
로 정의될 수 있다.
마지막으로, 외부 장치(10)는 하기 수식 5-4와 같이, 제1 응답 키(A_Tester)를 생성할 수 있다.
<수식 5-4>
Figure 112015026134893-pat00007
에 의해 산출될 수 있으며, w j (K S ) = L37 j mod ( secrete key size )(K S ) mod 232으로 정의될 수 있다. 여기서, Ks는 상기 도 3 또는 도 4에서 산출된 제1 세션 키 Ks의 값이며, j는 반복 회수 i에 4-여기서 4는 g 3 함수의 최소 반복 실행 회수임-를 더한 값일 수 있다. 또한, w j (K S )는 제1 세션 키 Ks의 하위 32 비트를 37비트 왼쪽으로 순환 전치시키는 함수일 수 있다.
이상의 실시예에서는 응답 키를 생성하기 위한 g 3 함수의 최소 반복 실행 회수가 4인 것으로 정의되어 있으나, 이는 하나의 실시예에 불과하며, 본 발명의 다른 일 실시예는 ECU의 종류 및 해당 ECU에 대해 요구되는 보안 등급에 따라 최소 반복 실행 회수가 차등적으로 지정될 수 있음을 주의해야 한다. 일 예로, 요구되는 보안 등급이 높은 ECU의 최소 반복 실행 회수가 상대적으로 보안 등급이 낮은 ECU보다 높게 설정될 수 있다.
이상의 도 3 내지 도 5에서는 외부 장치(10)에서의 세션 키 생성 절차 및 응답 키 생성 절차에 대해 설명하였으나, 차량 제어기(20)에서의 세션 키 생성 절차 및 응답 키 생성 절차도 동일 또는 그와 유사한 방법으로 생성될 수 있다.
도 6은 본 발명의 일 실시예에 따른 차량 제어기에서의 상호 인증 방법을 설명하기 위한 순서도이다.
도 6을 참조하면, 차량 제어기(20)는 외부 장치(10)로부터 인증 요청 메시지가 수신되면, 난수 S를 생성하여 외부 장치(10)에 전송할 수 있다(S601).
여기서, 인증 요청 메시지에는 외부 장치(10)에 의해 생성된 난수 R이 포함될 수 있다.
차량 제어기(20)는 난수 S를 매개 변수로 하는 제1 함수를 이용하여 반복 회수인 변수 i를 생성하고, 생성된 변수 i 및 미리 저장된 보안 키 K를 매개 변수로 하는 제2 함수를 이용하여 제1 세션 키 Ks를 생성할 수 있다(S603 내지 S605).
차량 제어기(20)는 외부 장치(10)로부터 제1 응답 키(A_Tester)가 수신되면, 난수 S, 변수 i 및 제1 세션 키 Ks를 매개 변수로 하는 제3 함수를 이용하여 제2 응답 키(A_ECU)를 생성할 수 있다(S607 내지 S609). 만약, 인증 요청 메시지에 난수 R이 포함된 경우, 차량 제어기(20)는 난수 S, 변수 i 및 제1 세션 키 Ks뿐만 아니라 난수 R을 더 이용하여 제1 응답 키(A_Tester)를 생성할 수도 있음을 주의해야 한다.
연이어, 차량 제어기(20)는 제1 응답 키(A_Tester)와 제2 응답 키(A_ECU)의 일치 여부를 확인할 수 있다(S611).
상기 확인 결과, 일치하면, 차량 제어기(20)는 제2 응답 키(A_ECU) 및 변수 i를 매개 변수로 하는 제4 함수를 이용하여 변수 j를 생성하고, 상기 605 단계에서 생성된 제1 세션 키 Ks 및 변수 j를 매개 변수로 하는 제5 함수를 이용하여 제2 세션 키 Ks 2 를 생성할 수 있다(S615).
여기서, 제4 함수는 제2 응답 키(A_ECU)를 변수 i만큼 왼쪽으로 순환 전치시키는 함수로써 제1 함수에 대응될 수 있다.
또한, 제5 함수는 변수 j, 세션 키 Ks 및 난수 S를 매개 변수로 하여 상기한 도 3 또는 도 4에 도시된 세션 키 생성 절차를 수행하는 함수로서 상기 605 단계의 제2 함수에 대응될 수 있다.
차량 제어기(20)는 난수 S, 변수 j, 제2 세션 키 Ks 2 를 매개 변수로 하는 제6 함수를 이용하여 제3 응답 키(B_ECU)를 생성한 후, 생성된 제3 응답 키(B_ECU)를 외부 장치(10)에 전송할 수 있다(S617 내지 S619). 만약, 인증 요청 메시지에 난수 R이 포함된 경우, 차량 제어기(20)는 난수 R을 더 이용하여 제3 응답 키(B_ECU)를 생성할 수도 있음을 주의해야 한다.
여기서, 제6 함수는 상기 도 5에 도시된 응답 키 생성 절차를 수행하는 함수로서, 상기 609 단계의 제3 함수에 대응될 수 있다.
상기한 611 단계의 확인 결과, 일치하지 않으면, 차량 제어기(20)는 소정 난수 생성기를 통해 난수를 생성하고, 생성된 난수를 제3 응답 키(B_ECU)로 설정하여 외부 장치(10)에 전송할 수 있다(S618 내지 S619). 이 경우, 외부 장치(10)에서는 내부 생성된 제4 응답 키(B_Tester)와 차량 제어기(20)로부터 수신된 제3 응답 키(B_ECU)가 서로 상이함을 확인하여 차량 제어기(20)의 인증에 실패한 것으로 판단할 수 있다.
도 7은 본 발명의 일 실시예에 따른 외부 장치에서의 상호 인증 방법을 설명하기 위한 순서도이다.
도 7을 참조하면, 외부 장치(10)는 인증 요청 메시지를 차량 제어기(20)에 전송할 수 있다(S701). 여기서, 인증 요청 메시지에는 외부 장치(10)에 의해 생성된 난수 R이 포함되어 전송될 수 있다.
외부 장치(10)는 차량 제어기(20)로부터 난수 S가 수신되면, 난수 S를 매개 변수로 하는 제1 함수를 이용하여 반복 회수인 변수 i를 생성할 수 있다(S703 내지 S705).
외부 장치(10)는 생성된 변수 i, 미리 저장된 보안 키 K 및 난수 S를 매개 변수로 하는 제2 함수를 이용하여 제1 세션 키 Ks를 생성할 수 있다(S707).
연이어, 외부 장치(10)는 난수 S, 변수 i 및 제1 세션 키 Ks를 매개 변수로 하는 제3 함수를 이용하여 제3 응답 키(A_Tester)를 생성한 후, 생성된 제3 응답 키(A_Tester)를 차량 제어기(200)에 전송할 수 있다(S709). 만약, 인증 요청 메시지에 난수 R이 포함된 경우, 외부 장치(10)는 난수 R을 더 이용하여 제1 응답 키(A_Tester)를 생성할 수도 있음을 주의해야 한다.
외부 장치(10)는 제1 응답 키(A_Tester) 및 변수 i를 매개 변수로 하는 제4 함수를 이용하여 변수 j를 생성하고, 상기 변수 j 및 제1 세션 키 Ks를 매개 변수로 하는 제5 함수를 이용하여 제2 세션 키 Ks 2 를 생성할 수 있다(S711).
여기서, 제4 함수는 제1 응답 키(A_Tester)를 변수 i만큼 왼쪽으로 순환 전치시키는 함수일 수 있다. 또한, 제5 함수는 상기 707 단계의 제2 함수와 유사하게, 변수 j, 제1 세션 키 Ks 및 난수 S를 매개 변수로 하여 상기한 도 3 또는 도 4에 도시된 세션 키 생성 절차를 수행하는 함수일 수 있다.
외부 장치(10)는 난수 S, 변수 j, 제2 세션 키 Ks 2 를 매개 변수로 하는 제6 함수를 이용하여 제4 응답 키(B_Tester)를 생성할 수 있다(S713). 여기서, 제6 함수는 상기 도 5에 도시된 응답 키 생성 절차를 수행하는 함수로서, 상기 709 단계의 제3 함수에 대응될 수 있다.
외부 장치(10)는 차량 제어기(20)로부터 제3 응답 키(B_ECU)가 수신되면, 기 생성된 제4 응답 키(B_Tester)와 제3 응답 키(B_ECU)가 일치하는지 확인할 수 있다(S714 내지 S715).
확인 결과, 제4 응답 키(B_Tester)와 제3 응답 키(B_ECU)가 일치하면, 외부 장치(10)는 차량 제어기(20)의 인증에 성공한 것으로 판단할 수 있다(S717). 반면, 확인 결과, 제4 응답 키(B_Tester)와 제3 응답 키(B_ECU)가 일치하지 않으면, 외부 장치(10)는 차량 제어기(20)의 인증에 실패한 것으로 판단할 수 있다(S719).
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
10: 외부 장치
20: 차량 제어기
12 및 22: 난수 생성부
13 및 23: 반복 회수 생성부
14 및 24: 세션 키 생성부
15 및 25: 응답 키 생성부
16 및 26: 인증부

Claims (40)

  1. 외부 장치와 연동되는 차량 제어기에서의 상호 인증 방법에 있어서,
    상기 외부 장치로부터의 난수 R이 포함된 인증 요청 메시지가 수신되면 난수 S를 생성하고, 상기 난수 S를 상기 외부 장치에 전송하는 제1 단계;
    상기 난수 R 및 상기 난수 S를 매개 변수로 하는 제1함수를 이용하여 변수 i를 생성하는 제2 단계;
    상기 변수 i, 미리 저장된 보안 키 K 및 상기 난수 S를 매개 변수로 하는 제2함수를 이용하여 제1 세션 키 Ks를 생성하는 제3 단계;
    상기 외부 장치로부터 제1 응답 키를 수신하는 제4 단계;
    상기 난수 S, 상기 변수 i 및 상기 제1 세션 키 Ks를 매개 변수로 하는 제3함수를 이용하여 제2 응답 키를 생성하는 제5 단계; 및
    상기 제1 응답 키와 상기 제2 응답 키의 일치 여부에 기반하여 상기 외부 장치를 인증하는 제6 단계
    를 포함하는, 상호 인증 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 변수 i는 수식:
    i= f 1(R, S) = L S (R) + S mod 16
    에 의해 생성되되, 여기서, 상기 L S (R)은 상기 난수 R을 상기 난수 S의 비트 수만큼 순환 전치하는 함수인, 상호 인증 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 제1 세션 키 Ks
    상기 보안 키 K와 상기 난수 S를 비트 단위 XOR 연산하여 생성된 제1 값과 상기 제1 값을 상기 변수 i 만큼 순환 전치하여 생성된 제2 값을 비트 단위 XOR 연산하여 생성되는, 상호 인증 방법.
  6. 제5항에 있어서,
    상기 난수 S를 상기 보안 키 K의 비트 수만큼 반복 연접한 후 비트 단위 XOR 연산하여 상기 제1 값을 생성하는, 상호 인증 방법.
  7. 제1항에 있어서,
    상기 인증 요청 메시지에 난수 R이 포함된 경우, 상기 난수 R을 더 이용하여 상기 제2 응답 키를 생성하는, 상호 인증 방법.
  8. 제7항에 있어서,
    상기 제2 응답 키는 수식:
    f 3(i, KS , R, S)= g (i+m, KS , R, S)= [g 3(wi +m(KS ), g 2(g 1(
    Figure 112017009494873-pat00008
    )))] i +m
    에 의해 산출되되, 여기서, m은 상기 차량 제어기에 요구되는 보안 수준에 따라 미리 설정 가능한 최소 반복 실행 회수이고, 상기 함수 [g3()] i +m
    Figure 112017009494873-pat00038
    Figure 112017009494873-pat00039
    의 XOR 연산을 i+m회 반복 수행하는 것을 의미하는, 상호 인증 방법.
  9. 제8항에 있어서,
    상기
    Figure 112017009494873-pat00009
    는 수식:
    Figure 112017009494873-pat00010
    = l 7||l 6||l 5||l 4||l 3||l 2||l 1||l 0
    에 의해 산출되며, 여기서, 상기 lj 는 상기 난수 R과 상기 난수 S의 비트 단위 XOR 결과를 4비트 단위로 구분하였을 때의 j번째 4비트 블록으로서 0에서 15사이의 값이고, 상기 j는 0에서 7사이의 값인, 상호 인증 방법.
  10. 제9항에 있어서,
    상기
    Figure 112015026134893-pat00011
    는 수식:
    Figure 112015026134893-pat00012
    =h(l 7)|| h(l 6)|| h(l 5)|| h(l 4)|| h(l 3)|| h(l 2)|| h(l 1)|| h(l 0)
    에 의해 산출되되, 여기서, h(l j )는 치환 연산인, 상호 인증 방법.
  11. 제10항에 있어서,
    상기 h(lj )는 수식:
    h(lj )= {9, 4, 10, 11, 13, 1, 8, 5, 6, 2, 0, 3, 12, 14, 15, 7}
    에 의해 산출되는, 상호 인증 방법.
  12. 제10항에 있어서,
    상기
    Figure 112016071621121-pat00040
    는 미리 정의된 4X4 행렬과 4비트 단위의 상기 h(lj )의 곱을 통해 산출되는, 상호 인증 방법.
  13. 제12항에 있어서,
    상기
    Figure 112016071621121-pat00041
    는 수식:
    Figure 112016071621121-pat00015

    에 의해 산출되는, 상호 인증 방법.
  14. 제13항에 있어서,
    상기 h(l j )가 (x3, x2, x1, x0)이면, 2 h(l j ) 및 3 h(l j )는
    각각 하기의 수식:
    2h(l j ) =
    Figure 112015026134893-pat00016

    3h( l j ) =
    Figure 112015026134893-pat00017

    에 의해 산출되는, 상호 인증 방법.
  15. 제13항에 있어서,
    상기
    Figure 112016071621121-pat00042
    는 상기 제1 세션 키 Ks의 하위 32 비트를 소정 비트 수만큼 순환 전치시키는 함수인, 상호 인증 방법.
  16. 제15항에 있어서,
    상기 제3함수는 상기 순환 전치된 32비트의 Ks와 8개의 4비트 블록인 상기 l 7||l 6||l 5||l 4||l 3||l 2||l 1||l 0를 비트 단위 XOR 연산하는 함수인, 상호 인증 방법.
  17. 제1항에 있어서,
    상기 제1 응답 키와 상기 제2 응답 키가 일치하는 경우,
    상기 제2 응답 키를 이용하여 제 3 응답 키를 생성하는 제7 단계; 및
    상기 제3 응답 키를 상기 외부 장치에 전송하는 제8 단계
    를 더 포함하는, 상호 인증 방법.
  18. 제17항에 있어서,
    상기 제7 단계는
    상기 제2 응답 키 및 상기 변수 i를 매개 변수로 하는 상기 제1 함수를 이용하여 변수 j를 생성하는 단계;
    상기 변수 j, 상기 제1 세션 키 Ks 및 상기 난수 S를 매개 변수로 하는 상기 제2함수를 이용하여 제2 세션 키 Ks 2 를 생성하는 단계;
    상기 변수 j, 상기 제2 세션 키 Ks 2 및 상기 난수 S를 매개 변수로 하는 상기 제3함수를 이용하여 상기 제3 응답 키를 생성하는 단계
    를 포함하는, 상호 인증 방법.
  19. 제1항에 있어서,
    상기 제1 응답 키와 상기 제2 응답 키가 일치하지 않는 경우, 난수인 제3 응답 키를 상기 외부 장치에 전송하는 단계를 더 포함하는, 상호 인증 방법.
  20. 차량 제어기와 연동되는 외부 장치에서의 상호 인증 방법에 있어서,
    상기 차량 제어기에 난수 R이 포함된 인증 요청 메시지를 전송하는 제1 단계;
    상기 차량 제어기로부터 난수 S를 수신하는 제2 단계;
    상기 난수 R 및 상기 난수 S를 매개 변수로 하는 제1 함수를 이용하여 변수 i를 생성하는 제3 단계;
    상기 변수 i, 미리 저장된 보안 키 K 및 상기 난수 S를 매개 변수로 하는 제2함수를 이용하여 제1 세션 키 Ks를 생성하는 제4 단계;
    상기 난수 S, 상기 난수 R, 상기 변수 i 및 상기 제1 세션 키 Ks를 매개 변수로 하는 제3함수를 이용하여 제1 응답 키를 생성하는 제5 단계; 및
    상기 제1 응답 키를 상기 차량 제어기에 전송하는 제6 단계
    를 포함하는, 상호 인증 방법.
  21. 삭제
  22. 제20항에 있어서,
    상기 변수 i는 수식:
    Figure 112016071621121-pat00019

    에 의해 생성되되, 여기서, 상기 L S (R)은 상기 난수 R을 상기 난수 S의 비트 수만큼 순환 전치하는 함수인, 상호 인증 방법.
  23. 삭제
  24. 제22항에 있어서,
    상기 제1 세션 키 Ks
    상기 보안 키 K와 상기 난수 S를 비트 단위 XOR 연산하여 생성된 제1 값과 상기 제1 값을 상기 변수 i 만큼 순환 전치하여 생성된 제2 값을 비트 단위 XOR 연산하여 생성되는, 상호 인증 방법.
  25. 제24항에 있어서,
    상기 난수 S를 상기 보안 키 K의 비트 수만큼 반복 연접한 후 비트 단위 XOR 연산하여 상기 제1 값을 생성하는, 상호 인증 방법.
  26. 삭제
  27. 제20항에 있어서,
    상기 제1 응답 키는 수식:
    f 3(i, KS , R, S)= g (i+m, KS , R, S)= [g 3(wi +m(KS ), g 2(g 1(
    Figure 112017009494873-pat00043
    )))] i +m
    에 의해 산출되되, 여기서, m은 상기 차량 제어기에 요구되는 보안 수준에 따라 미리 설정 가능한 최소 반복 회수이고, 상기 함수 [g3()] i +m
    Figure 112017009494873-pat00044
    Figure 112017009494873-pat00045
    의 XOR 연산을 i+m회 반복 수행하는 것을 의미하는, 상호 인증 방법.
  28. 제27항에 있어서,
    상기
    Figure 112017009494873-pat00021
    는 수식:
    Figure 112017009494873-pat00022

    에 의해 산출되며, 여기서, 상기 lj 는 상기 난수 R과 상기 난수 S의 비트 단위 XOR 결과를 4비트 단위로 구분하였을 때의 j번째 4비트 블록으로서 0에서 15사이의 값이고, 상기 j는 0에서 7사이의 값인, 상호 인증 방법.
  29. 제28항에 있어서,
    상기
    Figure 112015026134893-pat00023
    는 수식:
    Figure 112015026134893-pat00024

    에 의해 산출되되, 여기서, h(l j )는 치환 연산인, 상호 인증 방법.
  30. 제29항에 있어서,
    상기 h(lj )는 수식:
    h(lj )= {9, 4, 10, 11, 13, 1, 8, 5, 6, 2, 0, 3, 12, 14, 15, 7}
    에 의해 산출되는, 상호 인증 방법.
  31. 제29항에 있어서,
    상기
    Figure 112016071621121-pat00046
    는 미리 정의된 4X4 행렬과 4비트 단위의 상기 h(lj )의 곱을 통해 산출되는, 상호 인증 방법.
  32. 제31항에 있어서,
    상기
    Figure 112016071621121-pat00047
    는 수식:
    Figure 112016071621121-pat00027

    에 의해 산출되는, 상호 인증 방법.
  33. 제32항에 있어서,
    상기 h(l j )가 (x3, x2, x1, x0)이면, 2 h(l j ) 및 3 h(l j )는
    각각 하기의 수식:
    2h(l j ) =
    Figure 112015026134893-pat00028

    3h( l j ) =
    Figure 112015026134893-pat00029

    에 의해 산출되는, 상호 인증 방법.
  34. 제32항에 있어서,
    상기
    Figure 112016071621121-pat00048
    는 상기 제1 세션 키 Ks의 하위 32 비트를 소정 비트 수만큼 순환 전치시키는 함수인, 상호 인증 방법.
  35. 제34항에 있어서,
    상기 제3함수는 상기 순환 전치된 32비트의 Ks와 8개의 4비트 블록인 상기
    l 7||l 6||l 5||l 4||l 3||l 2||l 1||l 0를 비트 단위 XOR 연산하는 함수인, 상호 인증 방법.
  36. 제20항에 있어서,
    상기 차량 제어기로부터 제3 응답 키를 수신하는 제7 단계;
    상기 제1 응답 키를 이용하여 제4 응답 키를 생성하는 제8 단계; 및
    상기 제3 응답 키와 상기 제4 응답 키의 일치 여부에 기반하여 상기 차량 제어기를 인증하는 제9 단계
    를 더 포함하는, 상호 인증 방법.
  37. 제36항에 있어서,
    상기 제8 단계는
    상기 제1 응답 키 및 상기 변수 i를 매개 변수로 하는 상기 제1 함수를 이용하여 변수 j를 생성하는 단계;
    상기 변수 j 및 상기 제1 세션 키 Ks를 매개 변수로 하는 상기 제2함수를 이용하여 제2 세션 키 Ks2 를 생성하는 단계; 및
    상기 변수 j, 상기 제2 세션 키 Ks2 및 상기 난수 S를 매개 변수로 하는 제3함수를 이용하여 상기 제4 응답 키를 생성하는 단계
    를 포함하는, 상호 인증 방법.
  38. 상기 제1항, 제3항, 제5항 내지 제20항, 제22항, 제24항, 제25항, 제27항 내지 37항 중 어느 하나의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체.
  39. 외부 장치와 상호 인증을 수행하는 상호 인증 장치에 있어서,
    상기 외부 장치와의 통신을 수행하는 통신부;
    상기 외부 장치로부터의 난수 R이 포함된 인증 요청 메시지가 수신되면, 난수 S를 생성하는 난수 생성부;
    상기 난수 R 및 상기 난수 S를 매개 변수로 하는 제1함수를 이용하여 변수 i를 생성하는 반복 회수 생성부;
    상기 변수 i, 미리 저장된 보안 키 K 및 상기 난수 S를 매개 변수로 하는 제2함수를 이용하여 제1 세션 키 Ks를 생성하는 세션 키 생성부;
    상기 외부 장치로부터 제1 응답 키가 수신되면, 상기 난수 S, 상기 변수 i 및 상기 제1 세션 키 Ks를 매개 변수로 하는 제3함수를 이용하여 제2 응답 키를 생성하는 응답 키 생성부; 및
    상기 제1 응답 키와 상기 제2 응답 키의 일치 여부에 기반하여 상기 외부 장치를 인증하는 인증부
    를 포함하는, 상호 인증 장치.
  40. 차량 제어기와 상호 인증을 수행하는 상호 인증 장치에 있어서,
    상기 차량 제어기에 난수 R이 포함된 인증 요청 메시지를 전송하고, 상기 차량 제어기로부터 난수 S를 수신하는 통신부;
    상기 난수 R 및 상기 난수 S를 매개 변수로 하는 제1 함수를 이용하여 변수 i를 생성하는 반복 회수 생성부;
    상기 변수 i, 미리 저장된 보안 키 K 및 상기 난수 S를 매개 변수로 하는 제2함수를 이용하여 제1 세션 키 Ks를 생성하는 세션 키 생성부;
    상기 변수 i, 상기 제1 세션 키 Ks, 상기 난수 S 및 상기 난수 R 을 매개 변수로 하는 제3함수를 이용하여 제1 응답 키를 생성하는 응답 키 생성부; 및
    상기 차량 제어기에 전송된 상기 제1 응답 키와 상기 차량 제어기로부터 수신된 제3 응답 키의 일치 여부를 확인하여 상기 차량 제어기를 인증하는 인증부
    를 포함하는, 상호 인증 장치.
KR1020150036940A 2015-03-17 2015-03-17 비밀 정보 기반의 상호 인증 방법 및 장치 KR101759133B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020150036940A KR101759133B1 (ko) 2015-03-17 2015-03-17 비밀 정보 기반의 상호 인증 방법 및 장치
JP2015104781A JP6556495B2 (ja) 2015-03-17 2015-05-22 秘密情報基盤の相互認証方法及び装置
US14/790,599 US9960915B2 (en) 2015-03-17 2015-07-02 Method and apparatus for performing cross-authentication based on secret information
DE102015215697.4A DE102015215697A1 (de) 2015-03-17 2015-08-18 Verfahren und Vorrichtung zum Ausführen einer Querauthentifizierung basierend auf einer geheimen Information
CN201510647148.9A CN105991644B (zh) 2015-03-17 2015-10-08 基于秘密信息执行交叉认证的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150036940A KR101759133B1 (ko) 2015-03-17 2015-03-17 비밀 정보 기반의 상호 인증 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160111789A KR20160111789A (ko) 2016-09-27
KR101759133B1 true KR101759133B1 (ko) 2017-07-18

Family

ID=56853343

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150036940A KR101759133B1 (ko) 2015-03-17 2015-03-17 비밀 정보 기반의 상호 인증 방법 및 장치

Country Status (5)

Country Link
US (1) US9960915B2 (ko)
JP (1) JP6556495B2 (ko)
KR (1) KR101759133B1 (ko)
CN (1) CN105991644B (ko)
DE (1) DE102015215697A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101675332B1 (ko) * 2015-09-14 2016-11-11 인포뱅크 주식회사 차량용 데이터 통신 방법 및 그를 이용하는 차량용 전자 제어 장치 및 시스템
KR101838511B1 (ko) * 2016-05-17 2018-03-14 현대자동차주식회사 암호화를 적용한 제어기 보안 방법 및 그 장치
JP6683588B2 (ja) * 2016-11-10 2020-04-22 Kddi株式会社 再利用システム、サーバ装置、再利用方法、及びコンピュータプログラム
DE102017209961B4 (de) * 2017-06-13 2022-05-25 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Authentisieren eines Nutzers an einem Fahrzeug
CN109391466A (zh) * 2017-08-10 2019-02-26 比亚迪股份有限公司 汽车电子控制单元的安全访问方法、装置及系统
CN109587518B (zh) 2017-09-28 2022-06-07 三星电子株式会社 图像传输装置、操作图像传输装置的方法以及片上系统
CN108334058B (zh) * 2018-02-13 2020-03-24 安徽江淮汽车集团股份有限公司 一种基于车身控制器的诊断系统及方法
KR20200059930A (ko) * 2018-11-22 2020-05-29 현대자동차주식회사 차량 및 그 제어 방법
AU2020264092A1 (en) * 2019-04-25 2021-08-12 Deere & Company Systems, methods and controllers for secure communications
EP3965392A4 (en) * 2019-04-29 2022-12-28 Hyundai Motor Company CROSS CERTIFICATE METHOD AND DEVICE FOR ELECTRIC VEHICLE CHARGING
CN112702304A (zh) * 2019-10-23 2021-04-23 北京新能源汽车股份有限公司 一种车辆信息的校验方法、装置及汽车
US11895251B2 (en) * 2020-09-18 2024-02-06 Assa Abloy Ab Mutual authentication with pseudo random numbers
CN112182663A (zh) * 2020-09-22 2021-01-05 一汽奔腾轿车有限公司 一种乘用车的两级安全访问系统及其访问方法
KR102404884B1 (ko) 2020-12-29 2022-06-07 이규인 상황기반 페어링 장치 및 그 방법
CN113613197B (zh) * 2021-07-08 2023-09-15 中汽创智科技有限公司 车辆与数字钥匙的配对方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030070067A1 (en) 2001-09-21 2003-04-10 Shin Saito Communication processing system, communication processing method, server and computer program
JP2005080039A (ja) * 2003-09-02 2005-03-24 Sony Corp 暗号解析処理装置、暗号処理装置、および方法、並びにコンピュータ・プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3204006B2 (ja) 1994-12-09 2001-09-04 日産自動車株式会社 車両用盗難防止装置
JP3427694B2 (ja) 1997-09-19 2003-07-22 日産自動車株式会社 車両用セキュリティ装置
DE19822795C2 (de) * 1998-05-20 2000-04-06 Siemens Ag Verfahren und Anordnung zum rechnergestützten Austausch kryptographischer Schlüssel zwischen einer ersten Computereinheit und einer zweiten Computereinheit
US8489886B2 (en) * 2007-10-03 2013-07-16 International Business Machines Corporation Double authentication for controlling disruptive operations on storage resources
JP2009284086A (ja) * 2008-05-20 2009-12-03 Tokai Rika Co Ltd 暗号鍵更新システム及び暗号鍵更新方法
WO2009149760A1 (en) * 2008-06-12 2009-12-17 Telefonaktiebolaget Lm Ericsson (Publ) Random access mode control method and entity
JP5390844B2 (ja) * 2008-12-05 2014-01-15 パナソニック株式会社 鍵配布システム、鍵配布方法
CN101610452B (zh) * 2009-07-15 2011-06-01 西安西电捷通无线网络通信股份有限公司 一种传感器网络鉴别与密钥管理机制的融合方法
JP5446650B2 (ja) * 2009-09-17 2014-03-19 沖電気工業株式会社 通信データ新規性確認システム並びに送信端末及び受信端末
JP2011164912A (ja) 2010-02-09 2011-08-25 Tokai Rika Co Ltd 認証システムの暗号演算式設定装置
JP5395036B2 (ja) * 2010-11-12 2014-01-22 日立オートモティブシステムズ株式会社 車載ネットワークシステム
JP5700128B2 (ja) * 2011-07-27 2015-04-15 富士通株式会社 暗号化処理装置および認証方法
CN103138923B (zh) * 2011-11-24 2016-06-22 中国移动通信集团公司 一种节点间认证方法、装置及系统
JP2013155505A (ja) 2012-01-27 2013-08-15 Tokai Rika Co Ltd 通信対象認証システム
KR20140009665A (ko) 2012-07-12 2014-01-23 현대자동차주식회사 Ecu의 데이터 불법 개조 방지 시스템 및 방법
US8995658B2 (en) * 2013-02-13 2015-03-31 Honeywell International Inc. Physics-based key generation
KR20150036940A (ko) 2013-09-30 2015-04-08 엘지디스플레이 주식회사 액정표시장치의 제조방법
CN103560879B (zh) * 2013-10-09 2016-12-07 中国科学院信息工程研究所 一种轻量级认证与密钥协商的实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030070067A1 (en) 2001-09-21 2003-04-10 Shin Saito Communication processing system, communication processing method, server and computer program
JP2005080039A (ja) * 2003-09-02 2005-03-24 Sony Corp 暗号解析処理装置、暗号処理装置、および方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
CN105991644B (zh) 2021-03-23
US20160277189A1 (en) 2016-09-22
US9960915B2 (en) 2018-05-01
JP6556495B2 (ja) 2019-08-07
KR20160111789A (ko) 2016-09-27
JP2016174345A (ja) 2016-09-29
CN105991644A (zh) 2016-10-05
DE102015215697A1 (de) 2016-09-22

Similar Documents

Publication Publication Date Title
KR101759133B1 (ko) 비밀 정보 기반의 상호 인증 방법 및 장치
CN108352981B (zh) 被布置用于计算目标块加密的密码设备
CN111492616B (zh) 用于基于晶格的密码学的可配置设备
KR101344352B1 (ko) 대리 계산 시스템, 방법, 의뢰 장치, 프로그램 및 그 기록 매체
CN108964872B (zh) 一种基于aes的加密方法及装置
US8316235B2 (en) Method and device for manipulation-proof transmission of data
CN106850603B (zh) 一种白盒密码双向身份认证方法、终端、服务端及系统
CN110089075B (zh) 用于计算模糊提取器的矩阵的伪随机生成以及用于验证的方法
US9787475B2 (en) Device, method, and program for message authentication tag generation
CN111512590B (zh) 用于密码认证的同态加密
CN108833117B (zh) 一种私钥存储和读取方法、装置及硬件设备
EP3732822B1 (en) Whitebox computation of keyed message authentication codes
Goyat Genetic key generation for public key cryptography
EP1569381A1 (en) System and method for authentification
CN116488794A (zh) 基于fpga的高速sm4密码模组实现方法及装置
EP3471334B1 (en) Method for configuring a transponder, transponder and base station
CN101425898A (zh) 数字签名和验证数字签名的方法、系统、设备和生成器
US11042488B2 (en) Diversifying a base symmetric key based on a public key
EP2991266B1 (en) Encrypted text matching system, method, and computer readable medium
KR20190112959A (ko) 암호화 데이터를 이용하는 기계학습 모델 운영방법 및 기계학습 모델 기반 장치
CN109327466B (zh) 数据加密传输方法、电子设备、存储介质
KR20210072711A (ko) 사물인터넷 디바이스와 신뢰 서버 간 상호 인증 방법 및 장치
CN102543182B (zh) 随机化电路、存储器控制单元、存储器、通信系统及方法
JP2012049765A (ja) 秘匿性増強処理演算装置およびこれを備えた量子暗号通信端末
RU2111620C1 (ru) Способ шифрования блоков данных

Legal Events

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