KR101992325B1 - Session key establishment method based on elliptic curve cryptography using trusted execution environment - Google Patents
Session key establishment method based on elliptic curve cryptography using trusted execution environment Download PDFInfo
- Publication number
- KR101992325B1 KR101992325B1 KR1020180132353A KR20180132353A KR101992325B1 KR 101992325 B1 KR101992325 B1 KR 101992325B1 KR 1020180132353 A KR1020180132353 A KR 1020180132353A KR 20180132353 A KR20180132353 A KR 20180132353A KR 101992325 B1 KR101992325 B1 KR 101992325B1
- Authority
- KR
- South Korea
- Prior art keywords
- key
- temporary
- temporary key
- hash function
- session
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
암호화 통신을 위한 세션키 수립 방법에 관한 것으로, 보다 상세하게는 신뢰 실행 환경(Trusted Execution Environment)을 포함하는 인포테인먼트 장치 사이에 타원 곡선 암호 기반의 암호화 세션키를 수립하는 방법에 대한 발명이 개시된다.The present invention relates to a method for establishing a session key for encrypted communication, and more particularly, to a method for establishing an encryption session key based on an elliptic curve cipher between an infotainment apparatus including a trusted execution environment.
최근 차량과 IT 기술 간 융합이 가속화 되면서 스마트 카와 관련된 기술이 발전하고 있다. 스마트 카 기술 중 하나인 인포테인먼트(Infotainment) 기술들이 활발히 연구되고 있으며, 인포테인먼트 시스템을 탑재한 차량의 수도 점차적으로 증가하고 있다. Recently, as the convergence between vehicle and IT technology accelerates, technologies related to smart cars are developing. Infotainment technologies, one of the smart car technologies, are actively being studied, and the number of vehicles equipped with infotainment systems is gradually increasing.
인포테인먼트는 정보(Information)와 오락(Entertainment)의 합성어로 차량 내에서 차량의 정보(예, 타이어 공기압, 엔진 온도 등)와 오락(예, 영화, 음악)을 한번에 즐길 수 있는 시스템이다. 차량 인포테인먼트 기술은 GENIVI에서 표준화를 진행 하였다. Infotainment is a compound of information and entertainment. It is a system that can enjoy the information of the car (eg tire pressure, engine temperature) and entertainment (eg movie, music) in the vehicle at once. Vehicle infotainment technology was standardized by GENIVI.
인포테인먼트 시스템에서 주요한 요소는 HMI(Human Machine Interface)와 TCU(Telematics Control Unit)가 있다. TCU는 차량의 내부와 외부의 통신을 중재하는 장비이고, HMI는 사용자들이 차량 인포테인먼트를 활용할 수 있도록 하는 장비이다. 인포테인먼트 시스템에 새로운 장치가 연결되기 위해서는 TCU를 통해 연결이 가능하다. 연결된 장치들은 인포테인먼트 시스템에서 할당한 서비스만 이용할 수 있게 된다. 장치가 할당된 서비스 이외의 서비스를 이용하게 되면 차량의 정보를 악용하여 차량의 사고를 유발할 수 있게 된다. The main elements of the infotainment system are Human Machine Interface (HMI) and Telematics Control Unit (TCU). TCU is a device that mediates communication between the inside and the outside of a vehicle, and HMI is a device that allows users to utilize vehicle infotainment. In order to connect a new device to the infotainment system, it is possible to connect via TCU. The connected devices will only be able to use the services assigned by the infotainment system. If a device uses a service other than the service to which the device is assigned, the information of the vehicle can be used to cause an accident of the vehicle.
이러한 인포테인먼트 기술은 추가적인 장치를 차량에 연결하여 서비스를 확장하여 사용할 수 있다. 시스템에 연결된 다수의 장치들은 각 장치별 할당된 서비스들을 제공받게 된다. 그러나 인포테인먼트 시스템의 취약점들이 계속해서 알려지고 있으며, 최근에는 공격자가 인포테인먼트 시스템을 장악하여 핸들 조작이 가능함을 시연하기도 하였다. 이 시연은 차량 내부 통신과정에서의 안전하지 않은 세션을 통해 차량 핸들을 조작하는 것이 가능함을 보여주었다. 차량 내에서 인포테인먼트 시스템의 역할이 커지고 있고 이에 따른 보안성도 커져야 필요성이 대두되고 있다.These infotainment technologies can be extended by connecting additional devices to the vehicle. A plurality of devices connected to the system are provided with services assigned to each device. However, the vulnerabilities of the infotainment system continue to be known, and in recent years, the attacker has taken control of the infotainment system and demonstrated the ability to manipulate the handle. This demonstration showed that it is possible to manipulate the vehicle handles through an unsafe session during the vehicle's internal communication process. The infotainment system is becoming more and more important in the vehicle, and security has to be increased accordingly.
본 발명의 목적은 차량에 설치된 인포테인먼트 시스템의 신뢰 실행 환경을 포함하는 장치 간에 암호화된 통신 세션을 통해 안전하게 통신할 수 있는 방법을 제공함에 있다.It is an object of the present invention to provide a method for securely communicating through an encrypted communication session between devices including a trusted execution environment of an infotainment system installed in a vehicle.
과제를 해결하기 위한 일 양상에 따른 신뢰 실행 환경을 포함하는 인포테인먼트 시스템의 제1 장치와 제2 장치 사이의 암호화 세션을 수립하는 방법은 암호화 파라미터를 등록하는 절차와, 암호화 세션키를 분배하는 절차를 포함한다.A method for establishing a cryptographic session between a first device and a second device of an infotainment system including a trusted execution environment in accordance with one aspect for solving the task, comprises a procedure for registering the cryptographic parameters, a procedure for distributing the cryptographic session key .
암호화 파라미터를 등록하는 절차는 신뢰 실행 환경을 포함하는 제1 장치와 제2 장치 사이의 세션키 생성을 위한 암호화 파라미터 등록하는 방법으로, 트러스트 앵커가 마스터 키 등을 선택하는 단계와, 트러스트 앵커가 트러스트 앵커의 공개키를 생성하는 단계와, 트러스트 앵커가 시스템 파라미터를 전송하는 단계와, 제1 장치가 제1 장치 아이디를 전송하는 단계와, 제2 장치가 제2 장치 아이디를 전송하는 단계와, 트러스트 앵커가 제1 장치의 개인키를 전송하는 단계와, 트러스트 앵커가 제2 장치의 개인키를 전송하는 단계를 포함한다.The procedure for registering encryption parameters is a method for registering an encryption parameter for generating a session key between a first device including a trusted execution environment and a second device, the method comprising the steps of: selecting a master key or the like by a trust anchor; The method comprising: generating a public key of an anchor; transmitting a system parameter by a trust anchor; transmitting a first device ID by a first device; transmitting a second device ID by a second device; The anchor transmitting the private key of the first device, and the trust anchor transmitting the private key of the second device.
트러스트 앵커가 마스터 키 등을 선택하는 단계는 트러스트 앵커가 제1 소수와, 제2 소수와, 유한체로 정의된 타원 곡선 상의 생성점과, 마스터 키를 선택하는 단계이고, 트러스트 앵커가 트러스트 앵커의 공개키를 생성하는 단계는 트러스트 앵커가 마스터 키와 생성점을 이용하여 트러스트 앵커의 공개키를 생성하는 단계이고, 트러스트 앵커가 시스템 파라미터를 전송하는 단계는 트러스트 앵커가 제1 소수와, 제2 소수와, 상기 타원 곡선을 정의하는 타원 곡선 방정식과, 생성점과, 트러스트 앵커의 공개키를 포함하는 시스템 파라미터를 생성하여 제1 장치 및 제2 장치의 보안 영역으로 전송하는 단계이고, 제1 장치가 제1 장치 아이디를 전송하는 단계는 제1 장치가 장치를 식별할 수 있는 제1 장치 아이디를 트러스트 앵커로 전송하는 단계이고, 제2 장치가 제2 장치 아이디를 전송하는 단계는 제2 장치가 장치를 식별할 수 있는 제2 장치 아이디를 트러스트 앵커로 전송하는 단계이고, 트러스트 앵커가 제1 장치의 개인키를 전송하는 단계는 트러스트 앵커가 제1 난수를 생성하고, 제1 장치 아이디와, 생성점과, 제1 난수를 기초로 상기 타원 곡선을 정의하는 타원 곡선 방정식 및 암호화 해시 함수를 이용하여 제1 장치의 개인키를 생성하여 제1 장치의 보안 영역으로 전송하는 단계이고, 트러스트 앵커가 제2 장치의 개인키를 전송하는 단계는 트러스트 앵커가 제2 난수를 생성하고, 제2 장치 아이디와, 생성점과, 제2 난수를 기초로 상기 타원 곡선을 정의하는 타원 곡선 방정식 및 암호화 해시 함수를 이용하여 제2 장치의 개인키를 생성하여 제2 장치의 보안 영역으로 전송하는 단계이다.The step of the trust anchor selecting the master key or the like is a step of selecting a master key and a generation point on an elliptic curve defined by a trust anchor, a first prime number, a second prime number, a finite element, and the trust anchor is a public trust anchor The step of generating the key is a step in which the trust anchor generates the public key of the trust anchor using the master key and the generation point, and the step of transmitting the system parameter by the trust anchor is a step in which the trust anchor transmits the first prime number, Generating a system parameter including an elliptic curve equation defining the elliptic curve, a generation point, and a public key of a trust anchor, and transmitting the system parameter to a secure area of the first device and the second device, The step of transmitting the device ID is a step in which the first device transmits a first device ID to the trust anchor for identifying the device, Wherein the step of transmitting the second device ID is a step in which the second device transmits a second device ID to the trust anchor which is capable of identifying the device and the step of transmitting the private key of the first device by the trust anchor Generating a first random number and generating a private key of the first device using an elliptic curve equation and a cryptographic hash function defining the elliptic curve based on a first device ID, a generating point, and a first random number, Wherein the step of transmitting the private key of the second device by the trust anchor generates the second random number and the step of transmitting the second device ID, the generating point, and the second random number on the basis of the second random number Generating a private key of the second device using the elliptic curve equation and the cryptographic hash function defining the elliptic curve, and transmitting the private key to the secure area of the second device.
암호화 세션키를 분배하는 절차는 신뢰 실행 환경을 포함하는 제1 장치와 제2 장치 사이의 세션키 수립을 위한 세션키를 분배하는 방법으로, 제1 장치가 제1 메시지를 전송하는 단계와, 제2 장치가 제4 임시키를 생성하는 단계와, 제2 장치가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제2 장치가 제2 메시지를 전송하는 단계와, 제1 장치가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제1 장치가 세션키를 생성하는 단계와, 제2 장치가 세션키를 생성하는 단계를 포함한다.The procedure for distributing a cryptographic session key is a method for distributing a session key for establishing a session key between a first device comprising a trusted execution environment and a second device, the method comprising the steps of: a first device transmitting a first message; 2 device generates a fourth temporary key, the second device generates a first common key and a second common key, the second device transmits a second message, 1 common key and a second common key; generating a session key by the first device; and generating the session key by the second device.
제1 장치가 제1 메시지를 전송하는 단계는 제1 장치가 제3 난수를 생성하고 제3 난수와 유한체로 정의된 타원 곡선 상의 생성점을 이용하여 생성한 제3 임시키를 포함하는 제1 메시지를 제2 장치의 보안 영역으로 전송하는 단계이고, 제2 장치가 제4 임시키를 생성하는 단계는 제2 장치가 제4 난수를 생성하고 제4 난수와, 생성점을 이용하여 제4 임시키를 생성하는 단계이고, 제2 장치가 제1 공통키 및 제2 공통키를 생성하는 단계는 제2 장치가 제4 난수와 제3 임시키를 이용하여 제1 공통키를 생성하고, 제2 장치 개인키와 제3 임시키를 이용하여 제2 공통키를 생성하는 단계이고, 제2 장치가 제2 메시지를 전송하는 단계는 제2 장치가 제4 임시키와 제2 임시키를 포함하는 제2 메시지를 제1 장치의 보안 영역으로 전송하는 단계이고, 제1 장치가 제1 공통키 및 제2 공통키를 생성하는 단계는 제1 장치가 제3 난수와 제4 임시키를 이용하여 제1 공통키를 생성하고, 제2 임시키와 제2 장치 아이디와 트러스트 앵커의 공개키와 제1 암호화 해시 함수를 이용하여 제2 공통키를 생성하는 단계이고, 제1 장치가 세션키를 생성하는 단계는 제1 장치가 제3 임시키와 제4 임시키와 제1 공통키와 제3 암호화 해시 함수를 이용하여 세션키를 생성하는 단계이고, 제2 장치가 세션키를 생성하는 단계는 제2 장치가 제3 임시키와 제4 임시키와 제1 공통키와 제3 암호화 해시 함수를 이용하여 세션키를 생성하는 단계이다.The first device transmitting the first message may include a first message including a third temporary key generated by the first device using a third random number and a generation point on an elliptic curve defined by a third random number and a finite field, To the secure area of the second device, the second device generating the fourth temporary key is a step of the second device generating the fourth random number and using the fourth random number and the fourth temporary key Wherein generating a first common key and a second common key comprises generating a first common key using a fourth random number and a third temporary key by a second device, Wherein the step of generating the second common key using the private key and the third temporary key and the step of transmitting the second message by the second device includes the step of transmitting the second message by using the second temporary key and the second temporary key, Sending a message to the secure area of the first device, wherein the first device is transmitting the first common key and the second Generating a public key comprises: generating a first common key using a third random number and a fourth temporary key by a first device, generating a public key of the second temporary key, a second device ID, a trust anchor, Wherein the step of generating the session key by the first device uses the third temporary key, the fourth temporary key, the first common key and the third cryptographic hash function Wherein the step of generating the session key by the second device includes the step of generating the session key by the second device using the third temporary key, the fourth temporary key, the first common key and the third cryptographic hash function .
본 발명에 의하면 차량에 설치된 인포테인먼트 시스템의 장치가 신뢰 실행 환경을 기반으로 하여 Secure Storage, RoT, Secure Boot 등을 활용하여 펌웨어를 관리하고, 타원 곡선 암호를 기반으로 세션키를 생성하여 세션키가 노출되지 않고 암호화 세션을 수립하므로 장치 간에 안전하게 통신할 수 있는 효과를 달성할 수 있다.According to the present invention, a device of an infotainment system installed in a vehicle manages firmware by utilizing Secure Storage, RoT, Secure Boot, etc. based on a trusted execution environment, generates a session key based on an elliptic curve password, It is possible to achieve an effect of securely communicating between the devices.
도 1은 본 발명의 세션키 수립 방법을 사용하는 장치가 포함하는 신뢰 실행 환경의 기본 구조를 도시한 것이다.
도 2는 일 실시 예에 따른 세션키 생성을 위한 암호화 파라미터 등록 절차를 도시한 것이다.
도 3은 또 다른 실시 예에 따른 장치와 텔레매틱스 제어 유닛 사이의 세션키 생성을 위한 암호화 파라미터 등록 절차를 도시한 것이다.
도 4는 일 실시 예에 따른 암호화 세션 수립을 위한 세션키 분배 절차를 도시한 것이다.
도 5는 또 다른 실시 예에 따른 장치와 텔레매틱스 제어 유닛 사이의 세션키 생성을 위한 암호화 세션 수립을 위한 세션키 분배 절차를 도시한 것이다.1 shows a basic structure of a trusted execution environment included in an apparatus using the session key establishment method of the present invention.
2 illustrates an encryption parameter registration procedure for generating a session key according to an exemplary embodiment of the present invention.
3 illustrates a procedure for registering an encryption parameter for generating a session key between a telematics control unit and a device according to another embodiment.
4 illustrates a session key distribution procedure for establishing an encryption session according to an embodiment.
5 illustrates a session key distribution procedure for establishing an encrypted session for generating a session key between a device and a telematics control unit according to another embodiment.
전술한, 그리고 추가적인 양상들은 첨부된 도면을 참조하여 설명하는 실시 예들을 통해 구체화된다. 각 실시 예들의 구성 요소들은 다른 언급이나 상호간에 모순이 없는 한 실시 예 내에서 다양한 조합이 가능한 것으로 이해된다. 블록도의 각 블록은 어느 경우에 있어서 물리적인 부품을 표현할 수 있으나 또 다른 경우에 있어서 하나의 물리적인 부품의 기능의 일부 혹은 복수의 물리적인 부품에 걸친 기능의 논리적인 표현일 수 있다. 때로는 블록 혹은 그 일부의 실체는 프로그램 명령어들의 집합(set)일 수 있다. 이러한 블록들은 전부 혹은 일부가 하드웨어, 소프트웨어 혹은 이들의 결합에 의해 구현될 수 있다.The foregoing and further aspects are embodied through the embodiments described with reference to the accompanying drawings. It is to be understood that the components of each embodiment are capable of various combinations within an embodiment as long as no other mention or mutual contradiction exists. Each block of the block diagram may in some instances represent a physical part, but in other cases it may be a part of the function of one physical part or a logical representation of the function across a plurality of physical parts. Sometimes the entity of a block or part thereof may be a set of program instructions. These blocks may be implemented in whole or in part by hardware, software, or a combination thereof.
일 실시 예에 따른 신뢰 실행 환경을 포함하는 제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법은 트러스트 앵커(300)가 마스터 키 등을 선택하는 단계와, 트러스트 앵커(300)가 트러스트 앵커의 공개키를 생성하는 단계와, 트러스트 앵커(300)가 시스템 파라미터를 전송하는 단계와, 제1 장치(100)가 제1 장치 아이디를 전송하는 단계와, 제2 장치(200)가 제2 장치 아이디를 전송하는 단계와, 트러스트 앵커(300)가 제1 장치의 개인키를 전송하는 단계와, 트러스트 앵커(300)가 제2 장치의 개인키를 전송하는 단계를 포함한다.The encryption parameter registration method for generating a session key between the
일 실시 예에 따르면 제1 장치(100) 및 제2 장치(200)는 차량의 인포테인먼트 시스템의 장치이다. 제1 장치(100)는 차량에 설치되는 장치로 엔터테인먼트를 위한 A/V 장치, DMB 장치 등이거나 정보를 위한 카메라 등의 장치일 수 있으며, 제2 장치(200)는 텔레메틱스 제어 유닛(TCU) 일 수 있다.According to one embodiment, the
제1 장치(100) 및 제2 장치(200)에 포함된 신뢰 실행 환경은 민감한 데이터를 보호하기 위해 실행 환경을 분리하는 기술로 일반적인 어플리케이션이 실행되는 일반 영역(Normal World)와 신뢰할 수 있는 어플리케이션이 실행되는 보안 영역(Secure World)로 분리되어 구성된다.The trusted execution environment included in the
도 1은 본 발명의 세션키 수립 방법을 사용하는 장치가 포함하는 신뢰 실행 환경의 기본 구조를 도시한 것이다. 도 1에 도시된 구조에서 민감한 데이터는 보안 영역(Secure World)에 저장하고, 일반 영역(Normal World)에서 실행되는 어플리케이션 등은 모니터 모드(Monitor Mode)를 통해서만 민감한 데이터를 이용할 수 있다. 이러한 신뢰 실행 환경의 대표적인 구현(Implementation)으로 ARM 사의 TrustZone과 인텔(Intel)사의 SGX가 있다. 제1 장치(100)와 제2 장치(200)에 포함되는 신뢰 실행 환경의 구현으로 ARM 사의 TrustZone과 인텔(Intel)사의 SGX가 사용될 수 있으나 이에 한정되지 않는다. 제1 장치(100)와 제2 장치(200)에 포함되는 신뢰 실행 환경의 구현으로 ARM 사의 TrustZone이 사용될 경우, 일반 영역(Normal World)과 보안 영역(Secure World) 간의 통신은 NS(Non Secure) bit를 이용하여 NSC(Non-Secure Call)을 통해 이루어진다. 신뢰 실행 환경은 일반 영역(Normal World)과 보안 영역(Secure World)을 완전하게 분리하여 안전하게 운용이 가능한 구조를 가지고 있다. 보안 영역에서 실행되는 어플리케이션은 일반 영역에 존재하는 네트워크 인터페이스를 통하여 외부 인터넷과 통신할 수 있다. 이때 생길 수 있는 보안 문제는 Transport Layer Security(TLS)를 통해 보호된다.1 shows a basic structure of a trusted execution environment included in an apparatus using the session key establishment method of the present invention. In the structure shown in FIG. 1, sensitive data may be stored in a secure area, and applications executed in a normal area may use sensitive data only through a monitor mode. Typical implementations of this trusted execution environment are TrustZone by ARM and SGX by Intel. TrustZone from ARM and SGX from Intel may be used in the implementation of the trusted execution environment included in the
제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법에 있어서, 트러스트 앵커(300)가 마스터 키 등을 선택하는 단계는 트러스트 앵커(300)가 제1 소수와, 제2 소수와, 유한체로 정의된 타원 곡선 상의 생성점과, 마스터 키를 선택하는 단계이다.In the encryption parameter registration method for session key generation between the
트러스트 앵커(200, Trusted Anchor, TA)는 암호화 통신에서 신뢰할 수 있는 제 3 자이며 타원 곡선 암호 방식에서 사용되는 마스터 키 및 시스템 파라미터를 생성한다. 또한 제1 장치(100) 및 제2 장치(200)의 장치 아이디를 기반으로 제1 장치와 제2 장치의 개인키를 생성한다. 트러스트 앵커(300)와 제1 장치(100) 및 트러스트 앵커(300)와 제2 장치(200)는 모두 사전에 설정된 보안 채널을 통해 통신한다.A Trust Anchor (TA) is a trusted third party in encrypted communications and generates master keys and system parameters used in elliptic curve cryptography. And generates the private key of the first device and the second device based on the device IDs of the
트러스트 앵커(300)는 마스터 키 및 시스템 파라미터를 생성하기 위해 큰 소수(large prime number)인 제1 소수(p)를 선택한다. 또한 트러스트 앵커(300)는 소수에 의해 결정되는 유한체(Fp)로 정의된 타원 곡선(E(Fp))와 타원 곡선 상의 생성점(P)을 선택한다. 생성점(P)는 q · P = O(무한 원점)을 만족하는 제2 소수(q)가 큰 소수가 되는 타원 곡선 상의 점으로 선택된다. 제2 소수(q) 타원 곡선 방정식은 아래 수학식1과 같다.
트러스트 앵커(300)는 난수를 생성하여 마스터 키()로 선택한다.The
제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법에 있어서, 트러스트 앵커(300)가 트러스트 앵커의 공개키를 생성하는 단계는 트러스트 앵커(300)가 마스터 키와 생성점을 이용하여 트러스트 앵커의 공개키를 생성하는 단계 이다. 트러스트 앵커의 공개키를 계산하는 식은 아래 수학식2와 같다.A method for registering an encryption parameter for session key generation between a first device (100) and a second device (200), the step of the trust anchor (300) generating a public key of a trust anchor And generating the public key of the trust anchor using the key and the generation point. The equation for calculating the public key of the trust anchor is shown in
Ppub는 트러스트 앵커의 공개키, s는 마스터 키, P는 생성점이다.P pub is the public key of the trust anchor, s is the master key, and P is the generation point.
제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법에 있어서, 트러스트 앵커(300)가 시스템 파라미터를 전송하는 단계는 트러스트 앵커(300)가 제1 소수와, 제2 소수와, 상기 타원 곡선을 정의하는 타원 곡선 방정식과, 생성점과, 트러스트 앵커의 공개키를 포함하는 시스템 파라미터를 생성하여 제1 장치(100) 및 제2 장치(200)의 보안 영역으로 전송하는 단계이다. 제1 장치(100) 및 제2 장치(200)는 수신한 시스템 파라미터를 저장하여 후술할 세션키 생성이나 상호 인증 등에 사용할 수 있다.In the encryption parameter registration method for session key generation between the
제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법에 있어서, 제1 장치(100)가 제1 장치 아이디를 전송하는 단계는 제1 장치(100)가 장치를 식별할 수 있는 제1 장치 아이디를 트러스트 앵커(300)로 전송하는 단계이다. 이때 제1 장치 아이디는 제1 장치(100)에 포함된 신뢰 실행 환경의 보안 영역(Secure World)에서 일반 영역(Normal World)를 거쳐 트러스트 앵커(300)로 전송된다. 제1 장치(100)와 트러스트 앵커(300) 사이는 사전에 설정된 보안 채널을 통해 통신한다.In the encryption parameter registration method for generating a session key between the
제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법에 있어서, 제2 장치(200)가 제2 장치 아이디를 전송하는 단계는 제2 장치(200)가 장치를 식별할 수 있는 제2 장치 아이디를 트러스트 앵커(300)로 전송하는 단계이다. 이때 제2 장치 아이디는 제2 장치(200)에 포함된 신뢰 실행 환경의 보안 영역(Secure World)에서 일반 영역(Normal World)를 거쳐 트러스트 앵커(300)로 전송된다. 제2 장치(200)와 트러스트 앵커(300) 사이는 사전에 설정된 보안 채널을 통해 통신한다.In the encryption parameter registration method for generating a session key between the
제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법에 있어서, 트러스트 앵커(300)가 제1 장치의 개인키를 전송하는 단계는 트러스트 앵커(300)가 제1 난수()를 생성하고, 제1 장치 아이디와, 생성점과, 제1 난수를 기초로 상기 타원 곡선을 정의하는 타원 곡선 방정식 및 암호화 해시 함수를 이용하여 제1 장치의 개인키를 생성하여 제1 장치(100)의 보안 영역으로 전송하는 단계이다. 트러스트 앵커(300)는 아래의 수학식3으로 제1 장치의 개인키를 생성한다.In the encryption parameter registration method for generating a session key between the
RDev1은 제1 임시키이고, rDev1은 제1 난수이고, sDev1은 제1 장치의 개인키이고, h1은 암호화 해시 함수이다.R Dev1 is a first temporary key, r Dev1 is a first random number, s Dev1 is a private key of the first device, and h 1 is a cryptographic hash function.
트러스트 앵커(300)는 생성된 개인키를 제1 장치(100)로 전송한다. 이때 신뢰 실행 환경을 포함하는 제1 장치(100)의 보안 영역으로 제1 장치의 개인키가 전송되며, 제1 장치의 개인키는 사전에 설정된 보안 채널을 통해 제1 장치(100)의 일반 영역을 거쳐 전송된다.The
제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법에 있어서, 트러스트 앵커(300)가 제2 장치의 개인키를 전송하는 단계는 트러스트 앵커(300)가 제2 난수(rDev2 ∈ Zq *)를 생성하고, 제2 장치 아이디와, 생성점과, 제2 난수를 기초로 상기 타원 곡선을 정의하는 타원 곡선 방정식 및 암호화 해시 함수를 이용하여 제2 장치의 개인키를 생성하여 제2 장치(200)의 보안 영역으로 전송하는 단계이다. 트러스트 앵커(300)는 아래의 수학식4로 제2 장치의 개인키를 생성한다.In the encryption parameter registration method for generating a session key between the
RDev2는 제2 임시키이고, rDev2는 제2 난수이고, sDev2는 제2 장치의 개인키이고, h1은 암호화 해시 함수이다.R Dev2 is a second temporary key, r Dev2 is a second random number, s Dev2 is a private key of the second device, and h 1 is a cryptographic hash function.
트러스트 앵커(300)는 생성된 개인키를 제2 장치(200)로 전송한다. 이때 신뢰 실행 환경을 포함하는 제2 장치(200)의 보안 영역으로 제2 장치의 개인키가 전송되며, 제2 장치의 개인키는 사전에 설정된 보안 채널을 통해 제2 장치(200)의 일반 영역을 거쳐 전송된다.The
또 다른 실시 예에 따른 신뢰 실행 환경을 포함하는 제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법에서 트러스트 앵커(300)가 전송하는 시스템 파라미터는 제1 암호화 해시 함수와, 제2 암호화 해시 함수와, 제3 암호화 해시 함수와, 제4 암호화 해시 함수를 더 포함할 수 있다. 트러스트 앵커(300)는 를 만족하는 암호화 해시 함수인 제1 암호화 해시 함수와, 제2 암호화 해시 함수와, 제3 암호화 해시 함수와, 제4 암호화 해시 함수를 선택하고 이를 시스템 파라미터를 통해 제1 장치(100) 및 제2 장치(200)에 알려줄 수 있다. 제1 암호화 해시 함수와, 제2 암호화 해시 함수와, 제3 암호화 해시 함수와, 제4 암호화 해시 함수는 입력 파라미터를 달리 하는 일방향의 암호화 해시 함수이며, 발명의 양상에 따라서는 동일한 해시 알고리즘을 사용하는 함수일 수 있다. 이에 한정되는 것은 아니며 각 암호화 해시 함수가 다른 해시 알고리즘을 사용할 수도 있다.The system parameter transmitted by the
트러스트 앵커(300)가 제1 장치(100) 및 제2 장치(200)의 개인키 생성시 이용하는 암호화 해시 함수는 제1 암호화 해시 함수이다.The cryptographic hash function used by the
또 다른 실시 예에 따른 신뢰 실행 환경을 포함하는 제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법에서 트러스트 앵커(300)가 제1 장치의 개인키를 제1 장치(100)의 보안 영역으로 전송 시 제1 난수와 생성점을 이용하여 계산한 제1 임시키를 더 포함할 수 있다. 트러스트 앵커(300)는 제1 임시키를 수학식3 또는 수학식4를 이용하여 생성한다.In the encryption parameter registration method for generating a session key between the
도 2는 일 실시 예에 따른 세션키 생성을 위한 암호화 파라미터 등록 절차를 도시한 것이다. 도 2를 참조하여 제1 장치(100)와 제2 장치(200) 사이의 세션키 생성을 위한 암호화 파라미터 등록 방법을 설명하면, 트러스트 앵커(300)가 큰 소수인 제1 소수와 제2 소수와 유한체로 정의된 타원 곡선 상의 생성점과 마스터 키를 선택하고(S1000), 트러스트 앵커(300)가 수학식2를 통해 트러스트 앵커의 공개키를 생성하고(S1020), 트러스트 앵커(300)가 제1 내지 제4 암호화 해시 함수를 선택하고, 트러스트 앵커(300)가 타원 곡선 암호 방식에 사용되는 제1 소수와 제2 소수와 타원 곡선 방정식과 생성점과 트러스트 앵커의 공개키와 제1 내지 제4 암호화 해시 함수를 포함하는 시스템 파라미터를 생성하여 제1 장치(100) 및 제2 장치(200)의 보안 영역으로 전송하고(S1040), 시스템 파라미터를 수신한 제1 장치(100)는 제1 장치 아이디를 트러스트 앵커(300)로 전송하고(S1060), 시스템 파라미터를 수신한 제2 장치(200)는 제2 장치 아이디를 트러스트 앵커(300)로 전송하고(S1080), 트러스트 앵커(300)는 수학식3을 통해 제1 장치의 개인키를 생성하고, 함께 생성된 제1 임시키를 제1 장치의 개인키와 함께 제1 장치(100)의 보안 영역으로 전송하고(S1100), 트러스트 앵커(300)는 수학식4를 통해 제2 장치의 개인키를 생성하고, 함께 생성된 제2 임시키를 제2 장치의 개인키와 함께 제2 장치(200)의 보안 영역으로 전송한다(S1120).2 illustrates an encryption parameter registration procedure for generating a session key according to an exemplary embodiment of the present invention. Referring to FIG. 2, a method of registering an encryption parameter for generating a session key between the
도 3은 또 다른 실시 예에 따른 장치와 텔레매틱스 제어 유닛 사이의 세션키 생성을 위한 암호화 파라미터 등록 절차를 도시한 것이다. 도 3이 도시한 실시 예에서는 제1 장치(100)는 텔레매틱스 장치의 하나로 Device로 표현하고, 제2 장치(200)는 텔레매틱스 제어 유닛(Telematics Control Unit)으로 TCU로 표현한다. 트러스트 앵커(300)와 Device 사이는 사전에 설정된 보안 채널을 통해 통신하고, 트러스트 앵커(300)와 TCU 사이 또한 사전에 설정된 보안 채널을 통해 통신한다. 도 3을 참조하여 Device와 TCU의 세션키 생성을 위한 암호화 파라미터 등록 절차를 설명하면, 트러스트 앵커(300)는 큰 소수 p와 유한체 Fp에 의해 정의되는 타원 곡선 E(Fp)와 q·P(생성점) = O(무한 원점)을 만족하는 큰 소수 q와 q를 order로 타원 곡선 E(Fp) 상의 생성점 P를 선택한다(S2000). 또한 트러스트 앵커(300)는 난수 s(s ∈ Zq *)를 마스터 키로 선택한다(S2020). 또한 트러스트 앵커(300)는 마스터 키 s와 생성점을 기초로 트러스트 앵커의 공개키 Ppub (Ppub = s·P)를 생성한다(S2040). 또한 트러스트 앵커(300)는 Device와 TCU 사이의 세션 수립에 사용될 암호화 해시 함수 h1, h2, h3, h4 (h1, h2, h3, h4 : 0, 1* → Zq *)를 선택한다(S2060). 또한 트러스트 앵커(300)는 p, E(Fp), P, q, Ppub, h1, h2, h3, h4를 포함하는 시스템 파라미터를 생성하고(S2080) 이를 Device의 보안 영역 및 TCU의 보안 영역으로 전송한다(S2100, S2105, S2110, S2115). 3 illustrates a procedure for registering an encryption parameter for generating a session key between a telematics control unit and a device according to another embodiment. In the embodiment shown in FIG. 3, the
시스템 파라미터를 수신한 Device는 장치 식별자인 IDDev를 트러스트 앵커(300)로 전송하고(S2120, S2125), TCU 또한 장치 식별자인 IDTCU를 트러스트 앵커(300)로 전송한다(S2130, S2135).The Device receiving the system parameter transmits the ID Dev , which is the device identifier, to the trust anchor 300 (S2120, S2125), and the TCU also transmits the ID TCU , which is the device identifier, to the trust anchor 300 (S2130, S2135).
트러스트 앵커(300)는 난수 rDev와 rTCU (rDev, rTCU ∈ Zq *)를 생성하고(S2140) RDev(RDev = rDev·P)와 RTCU(RDev = rDev·P)를 계산하고(S2160, S2180), IDDev와 RDev를 h1 함수로 암호화 해시하여 αDev를 생성하며(S2200) IDTCU와 RTCU를 h1 함수로 암호화 해시하여 αTCU를 생성한다(S2220). 또한 트러스트 앵커(300)는 rDev와 αDev와 s와 q를 기초로 Device의 개인키인 sDev(sDev = rDev·αDev·s mod q)를 생성하여(S2240) RDev와 함께 Device로 전송하고(S2280, S2320, S2325), rTCU와 αTCU와 s와 q를 기초로 TCU의 개인키인 sTCU(sTCU = rTCU·αTCU· s mod q)를 생성하여(S2260) RTCU와 함께 TCU로 전송한다(S2300, S2330, S2335).
일 실시 예에 따른 신뢰 실행 환경을 포함하는 제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법은 제1 장치(100)가 제1 메시지를 전송하는 단계와, 제2 장치(200)가 제4 임시키를 생성하는 단계와, 제2 장치(200)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제2 장치(200)가 제2 메시지를 전송하는 단계와, 제1 장치(100)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제1 장치(100)가 세션키를 생성하는 단계와, 제2 장치(200)가 세션키를 생성하는 단계를 포함한다.A session key distribution method for establishing an encryption session between a
제1 장치(100) 및 제2 장치(200)는 난수 생성, 해시 함수, 암호화 및 복호화 등의 암호화와 관련된 연산을 신뢰 실행 환경에서 수행한다.The
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 제1 장치(100)가 제1 메시지를 전송하는 단계는 제1 장치(100)가 제3 난수(a ∈ Zq *)를 생성하고 제3 난수와 유한체로 정의된 타원 곡선 상의 생성점(P)을 이용하여 생성한 제3 임시키를 포함하는 제1 메시지를 제2 장치(200)의 보안 영역으로 전송하는 단계이다. 제3 임시키를 계산하는 식은 아래 수학식5와 같다.In the session key distribution method for establishing an encryption session between a first device (100) and a second device (200), the step of the first device (100) (A ∈ Z q * ) and generates a first message including a third random number and a third temporary key generated using an elliptic curve generation point P defined by the finite field, to the
A는 제3 임시키이고, a는 제3 난수이고, P는 생성점이다.A is the third temporary key, a is the third random number, and P is the generation point.
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 제2 장치(200)가 제4 임시키를 생성하는 단계는 제2 장치(200)가 제4 난수(b ∈ Zq *)를 생성하고 제4 난수와, 생성점을 이용하여 제4 임시키를 생성하는 단계이다. 제4 임시키를 계산하는 식은 아래 수학식6과 같다.In the session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of the second device (200) generating a fourth temporary key comprises: Generates a fourth random number b ∈ Z q * , and generates a fourth temporary key using the fourth random number and the generation point. The equation for calculating the fourth temporary key is shown in Equation (6) below.
B는 제4 임시키이고, b는 제4 난수이고, P는 생성점이다.B is the fourth temporary key, b is the fourth random number, and P is the generation point.
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 제2 장치(200)가 제1 공통키 및 제2 공통키를 생성하는 단계는 제2 장치(200)가 제4 난수와 제3 임시키를 이용하여 제1 공통키를 생성하고, 제2 장치 개인키와 제3 임시키를 이용하여 제2 공통키를 생성 하는 단계이다. 제2 장치(200)는 다음의 수학식7을 이용하여 제1 공통키와 제2 공통키를 생성한다.A session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of the second device (200) generating a first common key and a second common key comprises: The
는 제1 공통키이고, 는 제2 공통키이고, A는 제3 임시키이고, b는 제4 난수이고, sDev2는 제2 장치의 개인키이다. Is a first common key, Is a second common key, A is a third temporary key, b is a fourth random number, and s Dev2 is the private key of the second device.
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 제2 장치(200)가 제2 메시지를 전송하는 단계는 제2 장치(200)가 제4 임시키와 제2 임시키를 포함하는 제2 메시지를 제1 장치(100)의 보안 영역으로 전송하는 단계이다.In the session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of the second device (200) And transmitting the second message including the fourth temporary key and the second temporary key to the secure area of the
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 제1 장치(100)가 제1 공통키 및 제2 공통키를 생성하는 단계는 제1 장치(100)가 제3 난수와 제4 임시키를 이용하여 제1 공통키를 생성하고, 제2 임시키와 제2 장치 아이디와 트러스트 앵커의 공개키와 제1 암호화 해시 함수를 이용하여 제2 공통키를 생성하는 단계이다. 제1 장치(100)는 다음의 수학식8을 이용하여 제1 공통키와 제2 공통키를 생성한다. 이때 제2 장치의 아이디는 제1 장치(100)가 항상 연결하는 장치로 제1 장치(100)는 제2 장치의 아이디를 미리 저장하고 있다.A session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of the first device (100) generating a first common key and a second common key comprises: The
는 제1 공통키이고, 는 제2 공통키이고, B는 제4 임시키이고, a는 제3 난수이고, IDDev2는 제2 장치의 아이디이고, Ppub는 트러스트 앵커의 공개키이고, RDev2는 제2 임시키이고, h1은 제1 암호화 해시 함수이다. Is a first common key, Is a second public key, B is a fourth temporary key, a is a third random number, ID Dev2 is the ID of the second device, P pub is the public key of the trust anchor, R Dev2 is the second temporary key , h 1 is the first cryptographic hash function.
수학식7의 과 수학식8의 는 동일한 제1 공통키이나, 계산 방법이 다르다. 하지만 수학식9와 같이 동일한 값으로 계산된다.Equation (7) And Equation (8) Have the same first common key or calculation method. However, it is calculated as the same value as in Equation (9).
수학식7의 와 수학식8의 는 동일한 제2 공통키이나, 계산 방법이 다르다. 하지만 수학식10와 같이 동일한 값으로 계산된다.Equation (7) And Equation 8 Have the same second common key or calculation method. However, it is calculated as the same value as in Equation (10).
제1 장치(100) 및 제2 장치(200)는 서로 상대방이 생성한 난수(a, b)를 알지 못하여도 동일한 제1 공통키를 생성한다. 또한, 제1 장치(100)는 제2 장치의 개인키를 모르더라도 제2 장치(200)가 제2 장치의 개인키를 이용하여 생성한 제2 공통키를 제2 장치(200)와 동일하게 생성할 수 있다.The
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 제1 장치(100)가 세션키를 생성하는 단계는 제1 장치(100)가 제3 임시키와 제4 임시키와 제1 공통키와 제3 암호화 해시 함수를 이용하여 세션키를 생성하는 단계이다. 제1 장치(100)는 수학식11을 이용하여 세션키를 생성한다.A session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of the first device (100) generating a session key comprising: The session key is generated using the temporary key, the fourth temporary key, the first common key, and the third encrypted hash function. The
SKDev1 - Dev2는 세션키이고, A는 제3 임시키이고, B는 제4 임시키이고, 은 제1 공통키이고, h3은 제3 암호화 해시 함수이다.SK Dev1 - Dev2 is the session key, A is the third temporary key, B is the fourth temporary key, It is a first common key, h 3 is a third cryptographic hash function.
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 제2 장치(200)가 세션키를 생성하는 단계는 제2 장치(200)가 제3 임시키와 제4 임시키와 제1 공통키와 제3 암호화 해시 함수를 이용하여 세션키를 생성하는 단계이다. 제1 장치(100)는 수학식11을 이용하여 세션키를 생성한다.A session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), wherein the step of generating a session key by a second device (200) The session key is generated using the temporary key, the fourth temporary key, the first common key, and the third encrypted hash function. The
SKDev1 - Dev2는 세션키이고, A는 제3 임시키이고, B는 제4 임시키이고, 은 제1 공통키이고, h3은 제3 암호화 해시 함수이다.SK Dev1 - Dev2 is the session key, A is the third temporary key, B is the fourth temporary key, It is a first common key, h 3 is a third cryptographic hash function.
또 다른 실시 예에 따른 신뢰 실행 환경을 포함하는 제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법은 제1 장치(100)가 제1 메시지를 전송하는 단계와, 제2 장치(200)가 제4 임시키를 생성하는 단계와, 제2 장치(200)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제2 장치(200)가 제2 메시지를 전송하는 단계와, 제1 장치(100)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제1 장치(100)가 세션키를 생성하는 단계와, 제2 장치(200)가 세션키를 생성하는 단계를 포함하고, 제2 장치(200)가 제1 인증문을 생성하는 단계를 더 포함할 수 있다.A session key distribution method for establishing an encryption session between a
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제2 장치(200)가 제1 인증문을 생성하는 단계는 제2 장치(200)가 제2 장치 아이디와 제2 임시키와 제3 임시키와 제4 임시키와 제1 공통키와 제2 공통키를 제2 암호화 해시 함수로 해시하여 제1 인증문을 생성하는 단계이다. 제2 장치(200)가 다음 수학식13을 이용하여 제1 인증문을 생성한다.In a session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of generating a first authentication statement by a second device (200) (200) hashes a second device ID, a second temporary key, a third temporary key, a fourth temporary key, a first common key and a second common key into a second cryptographic hash function to generate a first authentication statement to be. The
βDev2는 제1 인증문이고, IDDev2는 제2 장치 아이디이고, RDev2는 제2 임시키이고, A는 제3 임시키이고, B는 제4 임시키이고, 은 제1 공통키이고, 는 제2 공통키이고, h2은 제2 암호화 해시 함수이다.beta Dev2 is a first authentication statement, ID Dev2 is a second device ID, R Dev2 is a second temporary key, A is a third temporary key, B is a fourth temporary key, Is a first common key, Is the second common key, and h 2 is the second cryptographic hash function.
생성된 제1 인증문은 제2 장치(200)가 제1 장치(100)의 보안 영역으로 전송하는 제2 메시지에 추가되어 전송된다.The generated first authentication statement is transmitted in addition to the second message transmitted by the
또 다른 실시 예에 따른 신뢰 실행 환경을 포함하는 제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법은 제1 장치(100)가 제1 메시지를 전송하는 단계와, 제2 장치(200)가 제4 임시키를 생성하는 단계와, 제2 장치(200)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제2 장치(200)가 제1 인증문을 생성하는 단계와, 제2 장치(200)가 제2 메시지를 전송하는 단계와, 제1 장치(100)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제1 장치(100)가 세션키를 생성하는 단계와, 제2 장치(200)가 세션키를 생성하는 단계를 포함하고, 제1 장치(100)가 제1 인증문을 생성하는 단계와 제1 장치(100)가 수신한 제1 인증문과 생성한 제1 인증문을 비교하는 단계를 더 포함할 수 있다.A session key distribution method for establishing an encryption session between a
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제1 장치(100)가 제1 인증문을 생성하는 단계는 제1 장치(100)가 제2 장치 아이디와 제2 임시키와 제3 임시키와 제4 임시키와 제1 공통키와 제2 공통키를 제2 암호화 해시 함수로 해시하여 제1 인증문을 생성하는 단계이다. 제1 장치(100)가 다음 수학식14을 이용하여 제1 인증문을 생성한다.A session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of the first device (100) (100) hashes a second device ID, a second temporary key, a third temporary key, a fourth temporary key, a first common key and a second common key into a second cryptographic hash function to generate a first authentication statement to be. The
βDev2는 제1 인증문이고, IDDev2는 제2 장치 아이디이고, RDev2는 제2 임시키이고, A는 제3 임시키이고, B는 제4 임시키이고, 은 제1 공통키이고, 는 제2 공통키이고, h2은 제2 암호화 해시 함수이다.beta Dev2 is a first authentication statement, ID Dev2 is a second device ID, R Dev2 is a second temporary key, A is a third temporary key, B is a fourth temporary key, Is a first common key, Is the second common key, and h 2 is the second cryptographic hash function.
제2 암호화 해시에 입력되는 파라미터가 동일하므로 제2 장치(200)에서 생성한 제1 인증문과 제2 장치(200)에서 생성한 제1 인증문은 동일하여야 한다.The first authentication statement generated by the
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제1 장치(100)가 수신한 제1 인증문과 생성한 제1 인증문을 비교하는 단계는 제1 장치(100)가 제2 장치(200)로부터 수신한 제1 인증문과 생성한 제1 인증문을 비교하여 제2 장치(200)를 인증하는 단계이다. 제2 장치(200)는 제1 장치(100)와 동일한 제1 공통키 및 제2 공통키를 생성하므로 제1 장치(100)는 제2 장치(200)를 인증할 수 있다. 비교결과 일치하지 않으면 세션 수립 절차를 중단된다.A session key distribution method for establishing an encryption session between a first device (100) and a second device (200), the method comprising the steps of: Is a step for the
또 다른 실시 예에 따른 신뢰 실행 환경을 포함하는 제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법은 제1 장치(100)가 제1 메시지를 전송하는 단계와, 제2 장치(200)가 제4 임시키를 생성하는 단계와, 제2 장치(200)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제2 장치(200)가 제1 인증문을 생성하는 단계와, 제2 장치(200)가 제2 메시지를 전송하는 단계와, 제1 장치(100)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제1 장치(100)가 제1 인증문을 생성하는 단계와, 제1 장치(100)가 수신한 제1 인증문과 생성한 제1 인증문을 비교하는 단계와, 제1 장치(100)가 세션키를 생성하는 단계와, 제2 장치(200)가 세션키를 생성하는 단계를 포함하고, 제1 장치(100)가 제2 인증문을 생성하는 단계와 제1 장치(100)가 제1 서명을 생성하는 단계와, 제1 장치(100)가 제1 암호문을 생성하는 단계와, 제1 장치(100)가 제3 메시지를 전송하는 단계를 더 포함할 수 있다.A session key distribution method for establishing an encryption session between a
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제1 장치(100)가 제2 인증문을 생성하는 단계는 제1 장치(100)가 제1 장치 아이디와 제1 임시키와 제3 임시키와 제4 임시키와 제1 공통키와 제2 공통키를 제2 암호화 해시 함수로 해시하여 제2 인증문을 생성하는 단계이다. 제1 장치(100)가 다음 수학식15를 이용하여 제1 인증문을 생성한다.A session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of the first device (100) (100) hashes a first device ID, a first temporary key, a third temporary key, a fourth temporary key, a first common key and a second common key into a second cryptographic hash function to generate a second authentication statement to be. The
βDev1는 제2 인증문이고, IDDev1은 제1 장치 아이디이고, RDev1은 제1 임시키이고, A는 제3 임시키이고, B는 제4 임시키이고, 은 제1 공통키이고, 는 제2 공통키이고, h2은 제2 암호화 해시 함수이다.? Dev1 is a second authentication statement, ID Dev1 is a first device ID, R Dev1 is a first temporary key, A is a third temporary key, B is a fourth temporary key, Is a first common key, Is the second common key, and h 2 is the second cryptographic hash function.
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제1 장치(100)가 제1 서명을 생성하는 단계는 제1 장치(100)가 제2 인증문을 제1 장치 개인키로 암호화하여 제1 서명을 생성하는 단계이다. 제1 장치(100)가 다음 수학식16을 이용하여 제1 서명을 생성한다.In a session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of the first device (100) 100) encrypts the second authentication statement with the first device private key to generate the first signature. The
은 제1 서명이고, sDev1는 제1 장치의 개인키이고, βDev1은 제2 인증문이고, a는 제3 난수이고, q는 제2 소수이다. Is a first signature, s Dev1 is a private key of the first device, beta Dev1 is a second authentication statement, a is a third random number, and q is a second prime number.
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제1 장치(100)가 제1 암호문을 생성하는 단계는 제1 장치(100)가 제1 공통키와 제2 공통키를 제4 암호화 해시 함수로 해시하여 생성한 임시키를 이용하여 제1 장치 아이디와 제1 임시키와 제1 서명을 암호화하여 제1 암호문을 생성하는 단계이다. 제1 장치(100)가 다음 수학식17을 이용하여 제1 암호문을 생성한다.In a session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of the first device (100) 100 generates a first cipher text by encrypting the first device ID, the first temporary key, and the first signature using the temporary key generated by hashing the first common key and the second common key as the fourth cryptographic hash function . The
ΨDev1은 제1 암호문이고, 는 임시키이고, KDev1 1은 제1 공개키이고, 은 제2 공개키이고, IDDev1은 제1 장치의 아이디이고, RDev1은 제1 임시키이고, 은 제1 서명이다.[Delta] Dev1 is a first cipher text, Is a temporary key, K Dev1 1 is a first public key, ID Dev1 is the ID of the first device, R Dev1 is the first temporary key, Is a first signature.
제1 암호문은 제1 장치(100)의 익명성을 위해 제1 장치의 아이디를 암호화하여 전달하는 데 사용된다. 또한 제1 장치(100)의 제1 서명을 제2 장치(200)가 확인할 수 있도록 제1 임시키와 제1 서명을 암호화하여 전달하는 데 사용된다. 즉, 제1 암호문을 수신한 장치만 제1 장치(100)와 동일하게 생성한 공통키를 이용하여 해당 암호문을 복호화하여 제1 장치의 제1 서명을 확인할 수 있다.The first cipher text is used to encrypt and convey the identity of the first device for the anonymity of the
또 다른 실시 예에 따른 신뢰 실행 환경을 포함하는 제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법은 제1 장치(100)가 제1 메시지를 전송하는 단계와, 제2 장치(200)가 제4 임시키를 생성하는 단계와, 제2 장치(200)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제2 장치(200)가 제1 인증문을 생성하는 단계와, 제2 장치(200)가 제2 메시지를 전송하는 단계와, 제1 장치(100)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제1 장치(100)가 제1 인증문을 생성하는 단계와, 제1 장치(100)가 수신한 제1 인증문과 생성한 제1 인증문을 비교하는 단계와, 제1 장치(100)가 세션키를 생성하는 단계와, 제1 장치(100)가 제2 인증문을 생성하는 단계와 제1 장치(100)가 제1 서명을 생성하는 단계와, 제1 장치(100)가 제1 암호문을 생성하는 단계와, 제1 장치(100)가 제3 메시지를 전송하는 단계와, 제2 장치(200)가 세션키를 생성하는 단계를 포함하고, 제2 장치(200)가 제1 서명을 획득하는 단계와 제2 장치(200)가 제2 인증문을 생성하는 단계와, 제2 장치(200)가 제1 서명을 확인하는 단계를 더 포함할 수 있다.A session key distribution method for establishing an encryption session between a
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제2 장치(200)가 제1 서명을 획득하는 단계는 제2 장치(200)가 제1 공통키와 제2 공통키를 제4 암호화 해시 함수로 해시하여 생성한 임시키를 이용하여 제1 암호문을 복호화하여 제1 장치 아이디와 제1 임시키와 제1 서명을 획득하는 단계이다. 제2 장치(200)가 다음 수학식18을 이용하여 제1 서명을 획득한다.In a session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of obtaining a first signature by a second device (200) 200 decrypts the first cipher text using the temporary key generated by hashing the first common key and the second common key as the fourth cryptographic hash function to obtain the first device ID, the first temporary key, and the first signature . The
ΨDev1은 제1 암호문이고, 는 임시키이고, 은 제1 공개키이고, 은 제2 공개키이고, IDDev1은 제1 장치의 아이디이고, RDev1은 제1 임시키이고, 은 제1 서명이다.[Delta] Dev1 is a first cipher text, Is a temporary key, Is a first public key, ID Dev1 is the ID of the first device, R Dev1 is the first temporary key, Is a first signature.
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제2 장치(200)가 제2 인증문을 생성하는 단계는 제2 장치(200)가 제1 장치 아이디와 제1 임시키와 제3 임시키와 제4 임시키와 제1 공통키와 제2 공통키를 제2 암호화 해시 함수로 해시하여 제2 인증문을 생성하는 단계이다. 제2 장치(200)가 다음 수학식19를 이용하여 제2 인증문을 획득한다.A session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of generating a second authentication statement by a second device (200) (200) hashes the first device ID, the first temporary key, the third temporary key, the fourth temporary key, the first common key and the second common key into a second cryptographic hash function to generate a second authentication statement to be. The
βDev1는 제2 인증문이고, IDDev1은 제1 장치 아이디이고, RDev1은 제1 임시키이고, A는 제3 임시키이고, B는 제4 임시키이고, 은 제1 공통키이고, 는 제2 공통키이고, h2은 제2 암호화 해시 함수이다.? Dev1 is a second authentication statement, ID Dev1 is a first device ID, R Dev1 is a first temporary key, A is a third temporary key, B is a fourth temporary key, Is a first common key, Is the second common key, and h 2 is the second cryptographic hash function.
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제2 장치(200)가 제1 서명을 확인하는 단계는 제2 장치(200)가 제1 장치 아이디와 제1 임시키와 생성점과 트러스트 앵커의 공개키와 제3 임시키와 제1 암호화 해시 함수를 이용하여 제1 서명을 확인하는 단계이다. 제2 장치(200)가 수신한 제1 아이디 등이 제1 장치(100)가 전송한 것임을 확인하는 절차이다. 제2 장치(200)가 다음 수학식20을 이용하여 제1 서명을 확인한다.In a session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the step of verifying the first signature by the second device (200) 200 confirms the first signature using the first device ID, the first temporary key, the generation point, the public key of the trust anchor, the third temporary key, and the first cryptographic hash function. And the first ID received by the
βDev1는 제2 인증문이고, IDDev1은 제1 장치 아이디이고, RDev1은 제1 임시키이고, A는 제3 임시키이고, P는 생성점이고, Ppub은 트러스트 앵커의 공개키이고, h1은 제1 암호화 해시 함수이고, 은 제1 서명이다.beta Dev1 is the second authentication statement, ID Dev1 is the first device ID, R Dev1 is the first temporary key, A is the third temporary key, P is the generation point, P pub is the public key of the trust anchor, h 1 is a first cryptographic hash function, Is a first signature.
수학식20에서의 제1 서명 확인은 수학식21을 통해 확인할 수 있다.The first signature verification in Equation (20) can be confirmed through Equation (21).
도 4는 일 실시 예에 따른 암호화 세션 수립을 위한 세션키 분배 절차를 도시한 것이다. 도 4를 참조하여 제1 장치(100)와 제2 장치(200) 사이의 세션 수립을 위한 세션키 분배 방법을 설명하면, 제1 장치(100)가 제3 난수를 생성하고 제3 난수와 생성점을 이용하여 제3 임시키를 생성한다. 제1 장치(100)는 생성된 제3 임시키를 포함하는 제1 메시지를 제2 장치(200)의 보안 영역으로 전송한다(S3000). 제2 장치(200)는 제4 난수를 생성하고 제4 난수와 생성점을 이용하여 제4 임시키를 생성한다(S3020). 제2 장치(200)는 제4 난수와 제3 임시키를 이용하여 제1 공통키를 생성하고, 제2 장치의 개인키와 제3 임시키를 이용하여 제2 공통키를 생성한다(S3040). 제2 장치(200)는 제1 장치(100)가 제2 장치(200)를 인증할 수 있는 제1 인증문을 생성하고(S3060), 제4 임시키와 제2 임시키와 생성된 제1 인증문을 포함하는 제2 메시지를 제1 장치(100)의 보안 영역으로 전송한다(S3080). 제1 장치(100)는 제3 난수와 제4 임시키를 이용하여 제2 장치(200)가 생성한 제1 공통키와 동일한 제1 공통키를 생성하고, 제2 임시키와 제2 장치 아이디와 트러스트 앵커의 공개키와 제1 암호화 해시 함수를 이용하여 제2 장치(200)가 생성한 제2 공통키와 동일한 제2 공통키를 생성한다(S3100). 제1 장치(100)는 제2 장치(200)로부터 수신한 제1 인증문과 비교할 제1 인증문을 생성하여 비교한다(S3120). 제1 장치(100)는 제3 임시키와 제4 임시키와 제1 공통키와 제3 암호화 해시 함수를 이용하여 세션키를 생성한다(S3160). 제1 장치(100)는 제2 인증문을 생성하고 제2 인증문을 제1 장치의 개인키로 암호화하여 제1 서명을 생성한다(S3180). 제1 장치(100)는 제1 공통키와 제2 공통키로 임시키를 생성하고 생성된 임시키를 이용하여 제1 장치 아이디와 제1 임시키와 제1 서명을 암호화하여 제1 암호문을 생성하고(S3200), 제1 암호문을 포함하는 제3 메시지를 제2 장치(200)의 보안 영역으로 전송한다(S3220). 제2 장치(200)는 제1 공통키와 제2 공통키로 임시키를 생성하고 생성된 임시키를 이용하여 제1 암호문을 복호화하여 제1 장치 아이디와 제1 임시키와 제1 서명을 획득한다(S3240). 제2 장치(200)는 제1 서명 인증에 사용될 제2 인증문은 생성하고(S3260), 제2 인증문과 제1 임시키와 생성점과 트러스트 앵커의 공개키와 제3 임시키와 제1 암호화 해시 함수를 이용하여 제1 서명을 확인한다(S3280). 제2 장치(200)는 제3 임시키와 제4 임시키와 제1 공통키와 제3 암호화 해시 함수를 이용하여 세션키를 생성한다(S3300).4 illustrates a session key distribution procedure for establishing an encryption session according to an embodiment. A session key distribution method for establishing a session between the
또 다른 실시 예에 따른 신뢰 실행 환경을 포함하는 제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법은 제1 장치(100)가 제1 메시지를 전송하는 단계와, 제2 장치(200)가 제4 임시키를 생성하는 단계와, 제2 장치(200)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제2 장치(200)가 제1 인증문을 생성하는 단계와, 제2 장치(200)가 제2 메시지를 전송하는 단계와, 제1 장치(100)가 제1 공통키 및 제2 공통키를 생성하는 단계와, 제1 장치(100)가 제1 인증문을 생성하는 단계와, 제1 장치(100)가 수신한 제1 인증문과 생성한 제1 인증문을 비교하는 단계와, 제1 장치(100)가 세션키를 생성하는 단계와, 제1 장치(100)가 제2 인증문을 생성하는 단계와 제1 장치(100)가 제1 서명을 생성하는 단계와, 제1 장치(100)가 제1 암호문을 생성하는 단계와, 제1 장치(100)가 제3 메시지를 전송하는 단계와, 제2 장치(200)가 제1 서명을 획득하는 단계와 제2 장치(200)가 제2 인증문을 생성하는 단계와, 제2 장치(200)가 제1 서명을 확인하는 단계와, 제2 장치(200)가 세션키를 생성하는 단계를 포함하고, 제1 장치(100) 및 제2 장치(200)가 메시지에 포함된 난수를 확인하는 단계를 더 포함할 수 있다.A session key distribution method for establishing an encryption session between a
제1 장치(100)와 제2 장치(200)는 중간자 공격을 방지하기 위해서 생성한 난수를 메시지에 포함시켜 전송하고 메시지 전송 시 해당 난수 값을 증가시킨다.The
제1 장치(100)가 제2 장치(200)의 보안 영역으로 전송하는 제1 메시지는 제1 장치(100)가 생성한 제5 난수를 더 포함하고, 제2 장치(200)가 제1 장치(100)의 보안 영역으로 전송하는 제2 메시지는 제5 난수에 1을 더한 값을 더 포함하고, 제1 장치(100)가 제2 장치(200)의 보안 영역으로 전송하는 제3 메시지는 제5 난수에 2를 더한 값을 더 포함한다.The first message transmitted by the
제1 장치(100)와 제2 장치(200) 사이의 암호화 세션 수립을 위한 세션키 분배 방법에 있어서, 추가되는 단계인 제1 장치(100) 및 제2 장치(200)가 메시지에 포함된 난수를 확인하는 단계는 제1 장치(100)가 제2 메시지 수신 시 메시지에 포함된 제5 난수에 1을 더한 값을 확인하는 단계와 제2 장치(200)가 제3 메시지 수신 시 메시지에 포함된 제5 난수에 2를 더한 값을 확인하는 단계를 포함한다.A session key distribution method for establishing a cryptographic session between a first device (100) and a second device (200), the method comprising: a first device (100) and a second device (200) Includes checking that the
도 5는 또 다른 실시 예에 따른 장치와 텔레매틱스 제어 유닛 사이의 세션키 생성을 위한 암호화 세션 수립을 위한 세션키 분배 절차를 도시한 것이다. 도 5가 도시한 실시 예에서는 제1 장치(100)는 텔레매틱스 장치의 하나로 Device로 표현하고, 제2 장치(200)는 텔레매틱스 제어 유닛(Telematics Control Unit)으로 TCU로 표현한다. 도 5를 참조하여 Device와 TCU의 암호화 세션 수립을 위한 세션키 분배 절차를 설명하면, Device는 신뢰 실행 환경의 보안 영역에서 난수 a(a ∈ Zq *)를 생성하고(S4000), A(A = a·P)를 생성한다(S4020). 또한 중간자 공격 방지에 사용할 난수 r을 생성한다(S4000). Device는 A와 r을 포함하는 메시지 M3을 생성하여(S4040) 일반 영역을 거쳐 TCU의 신뢰 실행 환경의 보안 영역으로 전송한다(S4060, S4070, S4075). TCU는 신뢰 실행 환경의 보안 영역에서 난수 b(b ∈ Zq *)를 생성하고(S4080) B(B = b·P)를 생성한다(S4100). TCU는 와 를 생성한다(S4120, S4140). 또한 TCU는 βTCU()를 생성하고(S4160), B와 RTCU, βTCU와 r+1을 포함하는 메시지 M4를 생성하여(S4180) 일반 영역을 거쳐 Device의 신뢰 실행 환경의 보안 영역으로 전송한다(S4200, S4210, S4215).5 illustrates a session key distribution procedure for establishing an encrypted session for generating a session key between a device and a telematics control unit according to another embodiment. In the embodiment shown in FIG. 5, the
Device는 r+1을 체크하여 값이 유효하지 않으면 절차를 종료한다(S4220). Device는 과 αTCU(αTCU = h1(IDTCU, RTCU)를 생성하고(S4240, 4260), αTCU를 이용하여 를 생성한다(S4280).The device checks r + 1, and if the value is not valid, ends the procedure (S4220). Device And α TCU (α TCU = h 1 (ID TCU , R TCU ) are generated (S 4240, 4260), and α TCU is used (S4280).
Device는 TCU로부터 수신한 βTCU를 와 일치하는지 비교한다(S4300). 비교 결과 일치하지 않으면 Device는 절차를 종료한다.Device receives β TCU received from TCU (S4300). If the comparison result does not match, the device terminates the procedure.
Device는 βDev()와, 를 계산하고(S4320, S4340), 세션키인 SKDev-TCU()를 생성한다(S4360). 또한 Device는 ΨDev ()를 생성한다(S4380). Device는 ΨDev와 r + 2를 포함하는 메시지 M5를 생성하여(S4400) 일반 영역을 거쳐 TCU의 신뢰 실행 환경의 보안 영역으로 전송한다(S4420, S4430, S4435).Device is β Dev ( )Wow, (S4320, S4340), and the session key SK Dev-TCU ( (S4360). Device also has Ψ Dev ( (S4380). The Device generates a message M 5 including Ψ Dev and r + 2 (S 4400), and transmits the message M 5 to the security area of the trusted execution environment of the TCU (S 4420, S 4430, S 4435).
TCU는 r+2를 체크하여 값이 유효하지 않으면 절차를 종료한다(S4440).The TCU checks r + 2 and terminates the procedure if the value is not valid (S4440).
TCU는 로 생성한 임시키와 ΨDev로부터 IDDev와, RDev와, 를 획득()하고(S4460), αDev(αDev = h1(IDDev, RDev))와 βDev()를 구한다(S4480, S4500). 또한 TCU는 와 RDev + αDev ·Ppub + βDev ·A의 계산 값이 동일한지 확인하여 동일하지 않으면 절차를 종료한다(S4520).The TCU And Dev ID from the temporary key generated in the Ψ Dev, R and Dev, ( ) And (S4460), α Dev (α Dev = h 1 (ID Dev, R Dev)) and β Dev ( (S4480, S4500). Also, And R Dev Dev + α · β + and P pub Dev · Check the calculated value of A is equal to the end unless the same procedure (S4520).
TCU는 세션키 SKDev-TCU ()를 생성하여 세션을 수립한다(S4540).The TCU uses the session key SK Dev-TCU ( ) To establish a session (S4540).
이상에서 본 발명을 첨부된 도면을 참조하는 실시 예들을 통해 설명하였지만 이에 한정되는 것은 아니며, 이들로부터 당업자라면 자명하게 도출할 수 있는 다양한 변형 예들을 포괄하도록 해석되어야 한다. 특허청구범위는 이러한 변형 예들을 포괄하도록 의도되었다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and similarities that may occur to those skilled in the art. The claims are intended to cover such modifications.
Claims (9)
트러스트 앵커로부터 제1 장치 및 제2 장치가 각각의 보안 영역으로 타원 곡선을 정의하는 타원 곡선 방정식과, 생성점을 포함하는 시스템 파라미터를 수신하는 단계;
트러스트 앵커가 제1 장치 아이디와 생성점을 기초로 타원 곡선 방정식 및 암호화 해시 함수를 이용하여 생성한 제1 장치의 개인키와, 제1 난수와 생성점을 이용하여 계산한 제1 임시키를 제1 장치가 그 보안 영역으로 수신하는 단계;
트러스트 앵커가 제2 장치 아이디와 생성점을 기초로 타원 곡선 방정식 및 암호화 해시 함수를 이용하여 생성한 제2 장치의 개인키와, 제2 난수와 생성점을 이용하여 계산한 제2 임시키를 제2 장치가 그 보안 영역으로 수신하는 단계;
제1 장치가 제3 난수를 생성하고 제3 난수와 생성점을 이용하여 생성한 제3 임시키를 포함하는 제1 메시지를 제2 장치의 보안 영역으로 전송하는 단계;
제2 장치가 제4 난수를 생성하고 제4 난수와, 생성점을 이용하여 제4 임시키를 생성하는 단계;
제2 장치가 제4 난수와 제3 임시키를 이용하여 제1 공통키를 생성하고, 제2 장치 개인키와 제3 임시키를 이용하여 제2 공통키를 생성하는 단계;
제2 장치가 제4 임시키와 제2 임시키를 포함하는 제2 메시지를 제1 장치의 보안 영역으로 전송하는 단계;
제1 장치가 제3 난수와 제4 임시키를 이용하여 제1 공통키를 생성하고, 제2 임시키와 제2 장치 아이디와 트러스트 앵커의 공개키와 제1 암호화 해시 함수를 이용하여 제2 공통키를 생성하는 단계;
제1 장치가 제3 임시키와 제4 임시키와 제1 공통키와 제3 암호화 해시 함수를 이용하여 세션키를 생성하는 단계;
제2 장치가 제3 임시키와 제4 임시키와 제1 공통키와 제3 암호화 해시 함수를 이용하여 세션키를 생성하는 단계;
를 포함하는 타원 곡선 암호 기반 암호화 세션 수립을 위한 세션키 분배 방법.
A session key distribution method for establishing a cryptographic session between a first device and a second device including a trusted execution environment,
Receiving, from the trust anchor, an elliptic curve equation defining an elliptic curve for each security area by the first device and the second device, and a system parameter including a generation point;
The trust anchor uses the private key of the first device generated using the elliptic curve equation and the cryptographic hash function based on the first device ID and the generation point and the first temporary key calculated using the first random number and the generation point 1 < / RTI > device to its security zone;
The trust anchor uses the private key of the second device generated using the elliptic curve equation and the cryptographic hash function based on the second device ID and the generation point and the second temporary key calculated using the second random number and the generation point 2 < / RTI > device to its security zone;
Transmitting a first message to the secure area of the second device, the first message including a third temporary key generated by the first device using the third random number and the generating point, and generating a third random number;
The second device generating a fourth random number and generating a fourth temporary key using a fourth random number and a generation point;
The second device generating the first common key using the fourth random number and the third temporary key, generating the second common key using the second device private key and the third temporary key,
The second device sending a second message including a fourth temporary key and a second temporary key to the secure area of the first device;
The first device generates the first common key using the third random number and the fourth temporary key, and the second common key is generated using the second temporary key, the second device ID, the public key of the trust anchor and the first cryptographic hash function, Generating a key;
The first device generating a session key using a third temporary key, a fourth temporary key, a first common key and a third cryptographic hash function;
The second device generating a session key using a third temporary key, a fourth temporary key, a first common key and a third cryptographic hash function;
A session key distribution method for establishing an encryption session based on an elliptic curve cryptosystem.
트러스트 앵커가 전송하는 시스템 파라미터는 제1 암호화 해시 함수와, 제2 암호화 해시 함수와, 제3 암호화 해시 함수와, 제4 암호화 해시 함수를 더 포함하고,
트러스트 앵커가 제1 장치 및 제2 장치의 개인키 생성시 이용하는 암호화 해시 함수는 제1 암호화 해시 함수인 타원 곡선 암호 기반 암호화 세션 수립을 위한 세션키 분배 방법.
The method according to claim 1,
The system parameters transmitted by the trust anchor further include a first cryptographic hash function, a second cryptographic hash function, a third cryptographic hash function, and a fourth cryptographic hash function,
Wherein the cryptographic hash function used by the trust anchor in generating the private key of the first device and the second device is a first cryptographic hash function.
제2 장치가 제2 장치 아이디와 제2 임시키와 제3 임시키와 제4 임시키와 제1 공통키와 제2 공통키를 제2 암호화 해시 함수로 해시하여 제1 인증문을 생성하는 단계;
를 더 포함하되,
제2 장치가 제1 장치의 보안 영역으로 전송하는 제2 메시지는 제1 인증문을 더 포함하는 타원 곡선 암호 기반 암호화 세션 수립을 위한 세션키 분배 방법.
The method of claim 1,
The second device hashes the second device ID, the second temporary key, the third temporary key, the fourth temporary key, the first common key and the second common key into a second cryptographic hash function to generate a first authentication statement ;
Further comprising:
Wherein the second message transmitted by the second device to the secure area of the first device further comprises a first authentication statement.
제1 장치가 제2 장치 아이디와 제2 임시키와 제3 임시키와 제4 임시키와 제1 공통키와 제2 공통키를 제2 암호화 해시 함수로 해시하여 제1 인증문을 생성하는 단계;
제1 장치가 수신한 제1 인증문과 생성한 제1 인증문을 비교하여 제2 장치를 인증하는 단계;
를 더 포함하는 타원 곡선 암호 기반 암호화 세션 수립을 위한 세션키 분배 방법.
6. The method of claim 5,
The first device hashes the second device ID, the second temporary key, the third temporary key, the fourth temporary key, the first common key and the second common key into a second cryptographic hash function to generate a first authentication statement ;
Authenticating the second device by comparing the first authentication statement received by the first device with the generated first authentication statement;
Wherein the session key distribution method further comprises:
제1 장치가 제1 장치 아이디와 제1 임시키와 제3 임시키와 제4 임시키와 제1 공통키와 제2 공통키를 제2 암호화 해시 함수로 해시하여 제2 인증문을 생성하는 단계;
제1 장치가 제2 인증문을 제1 장치 개인키로 암호화하여 제1 서명을 생성하는 단계;
제1 장치가 제1 공통키와 제2 공통키를 제4 암호화 해시 함수로 해시하여 생성한 임시키를 이용하여 제1 장치 아이디와 제1 임시키와 제1 서명을 암호화하여 제1 암호문을 생성하는 단계;
제1 장치가 제1 암호문을 포함하는 제3 메시지를 제2 장치의 보안 영역으로 전송하는 단계;
를 더 포함하는 타원 곡선 암호 기반 암호화 세션 수립을 위한 세션키 분배 방법.
7. The method of claim 6,
The first device hashes the first device ID, the first temporary key, the third temporary key, the fourth temporary key, the first common key and the second common key into a second cryptographic hash function to generate a second authentication statement ;
The first device encrypting the second authentication statement with the first device private key to generate a first signature;
The first device encrypts the first device ID, the first temporary key, and the first signature using the temporary key generated by hashing the first common key and the second common key as a fourth encrypted hash function to generate a first cipher text ;
The first device sending a third message including a first ciphertext to the secure area of the second device;
Wherein the session key distribution method further comprises:
제2 장치가 제1 공통키와 제2 공통키를 제4 암호화 해시 함수로 해시하여 생성한 임시키를 이용하여 제1 암호문을 복호화하여 제1 장치 아이디와 제1 임시키와 제1 서명을 획득하는 단계;
제2 장치가 제1 장치 아이디와 제1 임시키와 제3 임시키와 제4 임시키와 제1 공통키와 제2 공통키를 제2 암호화 해시 함수로 해시하여 제2 인증문을 생성하는 단계;
제2 장치가 제1 장치 아이디와 제1 임시키와 생성점과 트러스트 앵커의 공개키와 제3 임시키와 제1 암호화 해시 함수를 이용하여 제1 서명을 확인하는 단계;
를 더 포함하는 타원 곡선 암호 기반 암호화 세션 수립을 위한 세션키 분배 방법.
8. The method of claim 7,
The second device decrypts the first cipher text using the temporary key generated by hashing the first common key and the second common key as the fourth cryptographic hash function to acquire the first device ID, the first temporary key, and the first signature ;
The second device hashes the first device ID, the first temporary key, the third temporary key, the fourth temporary key, the first common key and the second common key into a second cryptographic hash function to generate a second authentication statement ;
The second device verifying the first signature using the first device identity, the first temporary key, the generating point, the public key of the trust anchor, the third temporary key, and the first cryptographic hash function;
Wherein the session key distribution method further comprises:
제1 장치가 제2 장치의 보안 영역으로 전송하는 제1 메시지는 제1 장치가 생성한 제5 난수를 더 포함하고,
제2 장치가 제1 장치의 보안 영역으로 전송하는 제2 메시지는 제5 난수에 1을 더한 값을 더 포함하고,
제1 장치가 제2 장치의 보안 영역으로 전송하는 제3 메시지는 제5 난수에 2를 더한 값을 더 포함하고,
상기 방법은
제1 장치가 제2 메시지 수신 시 메시지에 포함된 제5 난수에 1을 더한 값을 확인하는 단계;
제2 장치가 제3 메시지 수신 시 메시지에 포함된 제5 난수에 2를 더한 값을 확인하는 단계;
를 더 포함하는 타원 곡선 암호 기반 암호화 세션 수립을 위한 세션키 분배 방법.9. The method of claim 8,
The first message transmitted by the first device to the secure area of the second device further comprises a fifth random number generated by the first device,
The second message transmitted by the second device to the secure area of the first device further comprises a value obtained by adding 1 to the fifth random number,
The third message transmitted by the first device to the secure area of the second device further comprises a value obtained by adding 2 to the fifth random number,
The method
Confirming a value obtained by adding 1 to the fifth random number included in the message when the first device receives the second message;
Confirming a value obtained by adding 2 to the fifth random number included in the message when the second device receives the third message;
Wherein the session key distribution method further comprises:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180132353A KR101992325B1 (en) | 2018-10-31 | 2018-10-31 | Session key establishment method based on elliptic curve cryptography using trusted execution environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180132353A KR101992325B1 (en) | 2018-10-31 | 2018-10-31 | Session key establishment method based on elliptic curve cryptography using trusted execution environment |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101992325B1 true KR101992325B1 (en) | 2019-06-24 |
Family
ID=67055725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180132353A KR101992325B1 (en) | 2018-10-31 | 2018-10-31 | Session key establishment method based on elliptic curve cryptography using trusted execution environment |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101992325B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030008182A (en) * | 2002-12-24 | 2003-01-24 | 학교법인 한국정보통신학원 | Method of id-based blind signature by using bilinear parings |
KR20150080061A (en) * | 2013-12-30 | 2015-07-09 | 삼성에스디에스 주식회사 | System and method for identity based key management |
KR20180039922A (en) * | 2016-10-11 | 2018-04-19 | 홍익대학교세종캠퍼스산학협력단 | Function encryption system and method for outputting inner product values |
-
2018
- 2018-10-31 KR KR1020180132353A patent/KR101992325B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030008182A (en) * | 2002-12-24 | 2003-01-24 | 학교법인 한국정보통신학원 | Method of id-based blind signature by using bilinear parings |
KR20150080061A (en) * | 2013-12-30 | 2015-07-09 | 삼성에스디에스 주식회사 | System and method for identity based key management |
KR20180039922A (en) * | 2016-10-11 | 2018-04-19 | 홍익대학교세종캠퍼스산학협력단 | Function encryption system and method for outputting inner product values |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10652015B2 (en) | Confidential communication management | |
KR102020898B1 (en) | Session key establishment method based on trusted execution environment | |
US9847880B2 (en) | Techniques for ensuring authentication and integrity of communications | |
US7343014B2 (en) | Method for sharing the authorization to use specific resources | |
EP2461564A1 (en) | Key transport protocol | |
CN108604985B (en) | Data transfer method, method for controlling data use, and cryptographic apparatus | |
US20200320178A1 (en) | Digital rights management authorization token pairing | |
US20080010242A1 (en) | Device authentication method using broadcast encryption (BE) | |
US20140281493A1 (en) | Provisioning sensitive data into third party | |
KR20170139570A (en) | Method, apparatus and system for cloud-based encryption machine key injection | |
CA2551113A1 (en) | Authentication system for networked computer applications | |
US20130159704A1 (en) | System and method of enforcing a computer policy | |
JP2009529832A (en) | Undiscoverable, ie secure data communication using black data | |
CN109905384B (en) | Data migration method and system | |
CN112926046A (en) | Method and system for authenticating anonymous identification information of mobile terminal equipment for protecting equipment identification information | |
US20220171832A1 (en) | Scalable key management for encrypting digital rights management authorization tokens | |
KR102198178B1 (en) | Session key establishment method using blockchain | |
WO2017008556A1 (en) | Authentication method and device for wireless access point and management platform | |
KR101992325B1 (en) | Session key establishment method based on elliptic curve cryptography using trusted execution environment | |
KR20200060930A (en) | Cryptographic communication method between telematics devices | |
JP5376663B2 (en) | TRANSMITTING DEVICE, RECEIVING DEVICE, AND MANAGEMENT SERVER FOR ENCRYPTED DATA DISTRIBUTION, TRANSMITTING PROGRAM, RECEIVING PROGRAM, AND MANAGING PROGRAM FOR ENCRYPTED DATA DISTRIBUTION, ENCRYPTED DATA DISTRIBUTION SYSTEM, AND ENCRYPTED DATA DISTRIBUTION METHOD | |
JP2015186101A (en) | Key exchange device and key exchange method | |
KR101657936B1 (en) | Key management and user authentication method using identity based encryption | |
KR20190067316A (en) | One-Way Encryption Storage Method for Password Protection of Guard-on Solution | |
JP2005217665A (en) | Communications system, transmitter, receiver and communication method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |