KR102458351B1 - Authentication apparatus based on public key cryptosystem, mobile device having the same and authentication method thereof - Google Patents

Authentication apparatus based on public key cryptosystem, mobile device having the same and authentication method thereof Download PDF

Info

Publication number
KR102458351B1
KR102458351B1 KR1020150168664A KR20150168664A KR102458351B1 KR 102458351 B1 KR102458351 B1 KR 102458351B1 KR 1020150168664 A KR1020150168664 A KR 1020150168664A KR 20150168664 A KR20150168664 A KR 20150168664A KR 102458351 B1 KR102458351 B1 KR 102458351B1
Authority
KR
South Korea
Prior art keywords
authentication
counterpart
certificate
response
challenge
Prior art date
Application number
KR1020150168664A
Other languages
Korean (ko)
Other versions
KR20170040721A (en
Inventor
김기탁
강지수
배기석
신종훈
안경문
현진수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US15/212,343 priority Critical patent/US11070380B2/en
Publication of KR20170040721A publication Critical patent/KR20170040721A/en
Application granted granted Critical
Publication of KR102458351B1 publication Critical patent/KR102458351B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3263Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/3236Cryptographic 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 cryptographic hash functions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication

Abstract

본 발명에 따른 네트워크 통신을 지원하는 장치에 포함된 인증 장치는, 상대방의 인증서를 수신하고, 상기 수신된 인증서를 분석, 혹은 검증하는 인증서 핸들러, 상기 상대방의 인증 요청을 수신하고, 상기 인증 요청에 응답하여 난수를 발생하고, 상기 난수에 대응하는 챌린지를 발생하고, 상기 챌린지에 대응하는 상기 상대방의 리스판스를 검증하는 암호 프리미티브스, 상기 분석된 인증서, 상기 난수, 상기 챌린지, 상기 리스판스를 저장하는 공유 메모리, 및 인증 프로토콜에 따른 레지스터 설정을 통하여 상기 인증서 핸들러, 상기 암호 프리미티브스, 및 상기 공유 메모리를 제어하는 인증 제어기를 포함한다.The authentication device included in the device supporting network communication according to the present invention receives a certificate of a counterpart, a certificate handler that analyzes or verifies the received certificate, receives an authentication request of the counterpart, and responds to the authentication request. Storing cryptographic primitives for generating a random number in response, generating a challenge corresponding to the random number, and verifying the counterpart's response corresponding to the challenge, the analyzed certificate, the random number, the challenge, and the response and an authentication controller for controlling the certificate handler, the cryptographic primitives, and the shared memory through register setting according to an authentication protocol.

Figure R1020150168664
Figure R1020150168664

Description

공개키 암호 시스템 기반의 인증 장치, 그것을 갖는 모바일 장치 및 그것의 인증 방법{AUTHENTICATION APPARATUS BASED ON PUBLIC KEY CRYPTOSYSTEM, MOBILE DEVICE HAVING THE SAME AND AUTHENTICATION METHOD THEREOF}AUTHENTICATION APPARATUS BASED ON PUBLIC KEY CRYPTOSYSTEM, MOBILE DEVICE HAVING THE SAME AND AUTHENTICATION METHOD THEREOF

본 발명은 공개키 암호 시스템 기반의 인증 장치, 그것을 갖는 모바일 장치 및 그것의 인증 방법에 관한 것이다.The present invention relates to an authentication device based on a public key encryption system, a mobile device having the same, and an authentication method thereof.

사물 인터넷(internet of things,IoT)은 각종 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술을 의미한다. 여기서 사물이란 가전제품, 모바일 장비, 웨어러블 컴퓨터 등 다양한 임베디드 시스템이 된다. IoT 환경에서는 다양한 기기(device)가 네트워크에 접속하여 상호 통신을 하고 데이터를 공유함으로써 사용자를 위한 서비스를 제공한다. 이때 사용자의 프라이버시(privacy)와 관련된 민감한 데이터가 네트워크를 통해 전송되어 서비스에 활용된다. 개인정보를 보호하면서 서비스를 제공하기 위해서는 통신의 상대방에 대한 신원을 확인하고, 기기는 인증된 상대방과의 상호 작용을 통해 프라이버시를 보호하는 동시에 사용자가 원하는 서비스를 제공할 수 있다.The Internet of things (IoT) refers to a technology for connecting to the Internet by embedding sensors and communication functions in various things. Here, objects are various embedded systems such as home appliances, mobile devices, and wearable computers. In the IoT environment, various devices connect to the network, communicate with each other, and share data to provide services for users. At this time, sensitive data related to the user's privacy is transmitted through the network and utilized for the service. In order to provide services while protecting personal information, the identity of the communication counterpart is verified, and the device can provide the desired service while protecting privacy through interaction with the authenticated counterpart.

최근에는 인증의 대상도 확대되어 기기 내부의 부품(component) 간의 인증도 필요하다. IoT 환경의 기기가 아니더라도, 인증 없이 부품 간에 부품의 기능을 제공하면, 사용자의 민감한 데이터에 대한 공격으로 인해 프라이버시 침해 사고가 발생할 수 있다. 더불어 특정 부품의 재사용 및 도용으로 인한 위조 제품의 제작 등의 문제가 발생할 수 있다. 이러한 부품 수준에서의 인증은 상대방 즉, 부품의 신원을 확인함으로써 정품 인증의 기능을 수행할 수 있고, 나아가 사용자의 프라이버시를 보호함에 따라 더욱 안전한 서비스를 제공할 수 있다. 따라서 기기에 뿐만 아니라 부품 수준에서도 적용할 수 있는 경량의 인증 장치에 대한 필요성이 부각되고 있다.Recently, the subject of authentication has also been expanded, and authentication between components inside the device is also required. Even if it is not a device in an IoT environment, if the function of parts is provided between parts without authentication, an attack on the user's sensitive data may lead to an invasion of privacy. In addition, problems such as the manufacture of counterfeit products due to the reuse or theft of specific parts may occur. Authentication at the component level can perform the function of genuine product authentication by confirming the identity of the counterpart, that is, the component, and furthermore, a more secure service can be provided by protecting the user's privacy. Therefore, the need for a lightweight authentication device that can be applied not only to the device but also to the component level is emerging.

본 발명의 목적은 경량화시킬 수 있는 인증 장치 및 그것을 갖는 모바일 장치 및 그것의 인증 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide an authentication device capable of reducing weight, a mobile device having the same, and an authentication method thereof.

본 발명의 실시 예에 따른 네트워크 통신을 지원하는 장치에 포함된 인증 장치는, 상대방의 인증서를 수신하고, 상기 수신된 인증서를 입력, 분석, 혹은 검증하는 인증서 핸들러, 상기 상대방의 인증 요청을 수신하고, 상기 인증 요청에 응답하여 난수를 발생하고, 상기 난수에 대응하는 챌린지를 발생하고, 상기 챌린지에 대응하는 상기 상대방의 리스판스를 검증하거나 상대방의 챌린지에 대응하는 인증 장치의 리스판스를 발생하는 암호 프리미티브스, 상기 분석된 인증서, 상기 난수, 상기 챌린지, 상기 리스판스를 저장하는 공유 메모리, 및 인증 프로토콜에 따른 레지스터 설정을 통하여 상기 인증서 핸들러, 상기 암호 프리미티브스, 및 상기 공유 메모리를 제어하는 인증 제어기를 포함한다.The authentication device included in the device supporting network communication according to an embodiment of the present invention receives a certificate of a counterpart, a certificate handler that inputs, analyzes, or verifies the received certificate, receives an authentication request of the counterpart, and , an encryption for generating a random number in response to the authentication request, generating a challenge corresponding to the random number, verifying the counterpart's response corresponding to the challenge, or generating a response of the authentication device corresponding to the counterpart's challenge An authentication controller that controls the certificate handler, the cryptographic primitives, and the shared memory through a shared memory storing primitives, the analyzed certificate, the random number, the challenge, and the response, and a register setting according to an authentication protocol includes

본 발명의 실시 예에 따른 모바일 장치는, 제 1 구성 요소, 및 제 2 구성 요소를 포함하고, 상기 제 1 및 제 2 구성 요소들 중 적어도 하나는 인증 장치를 포함하고, 상기 인증 장치는, 상대방의 인증서를 입력, 분석, 혹은 검증하는 인증서 핸들러, 난수를 발생하고, 상기 난수에 대응하는 챌린지를 발생하고, 상기 챌린지에 대응하는 상기 상대방의 리스판스를 검증하거나 상대방의 챌린지에 대응하는 인증 장치의 리스판스를 발생하는 암호 프리미티브스, 상기 분석된 인증서, 상기 난수, 상기 챌린지, 상기 리스판스를 저장하는 공유 메모리, 및 상기 상대방의 인증 요청시 혹은 상대방의 인증 요청시 인증 프로토콜에 따른 레지스터 설정을 통하여 상기 인증서 핸들러, 상기 암호 프리미티브스, 및 상기 공유 메모리를 제어하는 제어기를 포함한다.A mobile device according to an embodiment of the present invention includes a first component and a second component, and at least one of the first and second components includes an authentication device, and the authentication device includes: A certificate handler that inputs, analyzes, or verifies the certificate of Cryptographic primitives that generate a response, the analyzed certificate, the random number, the challenge, and a shared memory for storing the response, and a register setting according to an authentication protocol when the counterparty's authentication request or when the counterparty's authentication request is made. and a controller controlling the certificate handler, the cryptographic primitives, and the shared memory.

본 발명의 실시 예에 따른 인증 장치의 인증 방법은, 상대방으로부터 인증 요청을 입력 받는 단계, 상기 인증 요청을 지시하는 제 1 레지스터를 읽기 및 쓰기 가능으로 설정하는 단계, 상기 인증 요청에 응답하여 제 1 챌린지를 발생하는 단계, 상기 제 1 챌린지를 저장하는 제 2 레지스터를 읽기 및 쓰기 가능으로 설정하는 단계, 상기 상대방으로부터 제 1 인증서 및 상기 제 1 챌린지에 대응하는 제 1 리스판스를 입력 받는 단계, 상기 제 1 인증서, 상기 제 1 인증서를 검증하는 값, 정보 데이터, 및 상기 제 1 리스판스를 저장하는 레지스터들을 읽기 및 쓰기 가능으로 설정하는 단계, 상기 제 1 인증서 및 상기 제 1 리스판스를 검증하는 단계, 및 상기 검증의 중간값 혹은 결과값을 저장하는 레지스터들을 읽기 쓰기 가능으로 설정하는 단계를 포함한다.An authentication method of an authentication device according to an embodiment of the present invention includes the steps of receiving an authentication request from a counterpart, setting a first register indicating the authentication request to be readable and writable, and in response to the authentication request, a first generating a challenge; setting a second register for storing the first challenge to be readable and writable; receiving a first certificate and a first response corresponding to the first challenge from the counterpart; Setting registers storing a first certificate, a value for verifying the first certificate, information data, and the first response to be readable and writable, and verifying the first certificate and the first response , and setting registers storing the intermediate value or result value of the verification to be readable and writable.

본 발명의 실시 예에 따른 인증 장치는 상대방의 인증 요청을 수신하고, 상기 인증 요청에 응답하여 상기 상대방의 리스판스를 검증하거나, 상대방의 챌린지에 대응하는 인증 장치의 리스판스를 발생할 수 있다.The authentication apparatus according to an embodiment of the present invention may receive an authentication request of the counterpart, verify the counterpart's response in response to the authentication request, or generate a response of the authentication apparatus corresponding to the counterpart's challenge.

본 발명에 따른 인증 장치, 그것을 포함하는 모바일 장치 및 그것의 인증 방법은 메모리를 공유함에 따라 구성 요소들 간에 독립적으로 사용해야 하는 종래의 메모리를 줄이고, 인증 프로토콜을 수행하는 전용 모듈을 구비함에 따라 종래의 CPU(central processing unit) 혹은 NVM(nonvolatile memory)을 제거함으로써, 경량화(light-weight) 할 수 있다.The authentication device, the mobile device including the same, and the authentication method according to the present invention reduce the conventional memory that must be used independently between components by sharing the memory, and have a dedicated module for performing the authentication protocol. By removing the central processing unit (CPU) or nonvolatile memory (NVM), it can be light-weighted.

도 1은 본 발명의 실시 예에 따른 인증 장치를 구비한 장치들의 인증 방법을 보여주는 네트워크 시스템을 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 인증 장치를 예시적으로 보여주는 블록도이다.
도 3은 도 2에 도시된 인증 제어기를 예시적으로 보여주는 블록도이다.
도 4는 도 2에 도시된 암호 프리미티브스를 예시적으로 보여주는 블록도이다.
도 5는 본 발명의 실시 예에 따른 인증 장치의 인증 프로토콜을 진행할 때 공유 메모리에 저장될 데이터 영역들을 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 다른 인증 장치가 인증 프로토콜을 진행할 때, 공유 메모리에 저장된 각 구성 요소들의 입출력 값들을 다른 구성 요소에서 재사용하는 것을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 인증 장치의 단독 인증 프로토콜 진행 과정을 예시적으로 보여주는 다이어그램이다.
도 8은 본 발명의 실시 예에 따른 인증 장치가 단독 인증 프로토콜을 진행할 경우, 내부 정보에 대한 권한 관리를 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 인증 장치의 단독 인증 프로토콜을 개념적으로 설명하는 래더 다이어그램이다.
도 10은 본 발명의 실시 예에 따른 인증 장치의 단독 인증 프로토콜 진행시, 인증 요청을 입력 받는 과정을 예시적으로 설명하는 도면이다.
도 11은 본 발명의 실시 예에 따른 인증 장치의 단독 인증 프로토콜 진행시, 인증 요청에 대응하는 챌린지를 발생하는 과정을 예시적으로 설명하는 도면이다.
도 12는 본 발명의 실시 예에 따른 인증 장치의 단독 인증 프로토콜 진행시, 상대방의 공개키 인증서와 리스판스를 입력 받는 과정을 예시적으로 설명하는 도면이다.
도 13은 본 발명의 실시 예에 따른 인증 장치의 단독 인증 프로토콜 진행시, 상대방의 공개키 인증서 및 리스판스를 검증하는 과정을 예시적으로 설명하는 도면이다.
도 14는 본 발명의 실시 예에 따른 인증 장치의 상호 인증 프로토콜 진행 과정을 예시적으로 보여주는 다이어그램이다.
도 15는 본 발명의 실시 예에 따른 인증 장치가 상호 인증 프로토콜을 진행할 경우, 내부 정보에 대한 권한 관리를 예시적으로 보여주는 도면이다.
도 16은 본 발명의 실시 예에 따른 인증 장치의 상호 인증 프로토콜을 개념적으로 설명하는 래더 다이어그램이다.
도 17은 본 발명의 실시 예에 따른 인증 장치의 상호 인증 프로토콜 진행시, 상대방으로 인증 장치의 공개키와 챌린지를 전송하는 과정을 예시적으로 설명하는 도면이다.
도 18은 본 발명의 실시 예에 따른 인증 장치의 상호 인증 프로토콜 진행시, 상대방의 공개키 인증서, 리스판스, 및 챌린지를 입력 받는 과정을 예시적으로 설명하는 도면이다.
도 19는 본 발명의 실시 예에 따른 인증 장치의 상호 인증 프로토콜 진행시, 상대방에 챌린지에 응답하여 인증 장치의 리스판스를 발생하는 과정을 예시적으로 설명하는 도면이다.
도 20은 본 발명의 실시 예에 따른 인증 장치의 상호 인증 프로토콜 진행시, 공유된 비밀키를 발생하는 과정을 예시적으로 설명하는 도면이다.
도 21은 본 발명의 실시 예에 따른 모바일 장치를 예시적으로 보여주는 도면이다.
도 22는 본 발명의 실시 예에 따른 IoT 네트워크 시스템을 예시적으로 보여주는 도면이다.
1 is a diagram exemplarily showing a network system showing an authentication method of devices having an authentication device according to an embodiment of the present invention.
2 is a block diagram illustrating an authentication apparatus according to an embodiment of the present invention.
3 is a block diagram exemplarily showing the authentication controller shown in FIG. 2 .
FIG. 4 is a block diagram exemplarily showing the cryptographic primitives shown in FIG. 2 .
5 is a diagram exemplarily showing data areas to be stored in a shared memory when an authentication protocol of an authentication device is performed according to an embodiment of the present invention.
6 is a diagram exemplarily showing that input/output values of each component stored in a shared memory are reused in other components when an authentication protocol according to another embodiment of the present invention is performed by an authentication device.
7 is a diagram exemplarily illustrating a process of a single authentication protocol in an authentication device according to an embodiment of the present invention.
8 is a diagram exemplarily illustrating authority management for internal information when an authentication device performs a single authentication protocol according to an embodiment of the present invention.
9 is a ladder diagram conceptually illustrating a single authentication protocol of an authentication device according to an embodiment of the present invention.
10 is a diagram exemplarily illustrating a process of receiving an authentication request when an authentication device performs a single authentication protocol according to an embodiment of the present invention.
11 is a diagram exemplarily illustrating a process of generating a challenge corresponding to an authentication request when an authentication device performs a single authentication protocol according to an embodiment of the present invention.
12 is a diagram exemplarily illustrating a process of receiving an input of a public key certificate and a response of a counterpart when a single authentication protocol of the authentication device is performed according to an embodiment of the present invention.
13 is a diagram exemplarily illustrating a process of verifying a public key certificate and a response of a counterpart when a single authentication protocol of an authentication device is performed according to an embodiment of the present invention.
14 is a diagram exemplarily illustrating a mutual authentication protocol progress process of an authentication device according to an embodiment of the present invention.
15 is a diagram exemplarily illustrating authority management for internal information when an authentication device performs a mutual authentication protocol according to an embodiment of the present invention.
16 is a ladder diagram conceptually illustrating a mutual authentication protocol of an authentication device according to an embodiment of the present invention.
17 is a diagram exemplarily illustrating a process of transmitting a public key and a challenge of an authentication device to a counterpart when a mutual authentication protocol of the authentication device is performed according to an embodiment of the present invention.
18 is a diagram exemplarily illustrating a process of receiving an input of a public key certificate, a response, and a challenge of a counterpart when a mutual authentication protocol of an authentication device is performed according to an embodiment of the present invention.
19 is a diagram exemplarily illustrating a process of generating a response of an authentication device in response to a challenge to a counterpart when a mutual authentication protocol of the authentication device is performed according to an embodiment of the present invention.
20 is a diagram exemplarily illustrating a process of generating a shared secret key during a mutual authentication protocol of an authentication device according to an embodiment of the present invention.
21 is a diagram exemplarily showing a mobile device according to an embodiment of the present invention.
22 is a diagram illustrating an IoT network system according to an embodiment of the present invention.

아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다. 본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 혹은 대체물을 포함한다.Hereinafter, the content of the present invention will be described clearly and in detail to the extent that a person skilled in the art can easily implement it using the drawings. Since the embodiments according to the concept of the present invention may have various changes and may have various forms, the embodiments will be illustrated in the drawings and described in detail herein. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, and includes all modifications, equivalents, or substitutes included in the spirit and scope of the present invention.

본 발명에 따른 공개키 암호 시스템 기반의 인증 장치(authentication apparatus)는 메모리를 공유함에 따라 구성 요소들 간에 독립적으로 사용해야 하는 종래의 메모리를 줄이고, 인증 프로토콜을 수행하는 전용 모듈을 구비함에 따라 종래의 CPU(central processing unit) 혹은 NVM(nonvolatile memory)을 제거함으로써, 경량화(light-weight) 할 수 있다.The public key encryption system-based authentication apparatus according to the present invention reduces the conventional memory that needs to be used independently between components as memory is shared, and has a dedicated module for performing an authentication protocol, so that the conventional CPU By eliminating a central processing unit or nonvolatile memory (NVM), it can be light-weighted.

인증 장치는 공개키 암호시스템 기반의 서비스를 제공하기 위해서 필요한 기능을 고속으로 수행하는 전용의 암호학적 하드웨어(cryptographic hardware)를 필요로 한다. 왜냐하면, 공개키 암호시스템은 높은 연산량을 요구하는 암호학적 난제(cryptographic hard problem)에 기반한 정수(integer)의 연산들, 예를 들어, modular addition/ subtraction/ multiplication/ exponentiation 및 타원 곡선(elliptic curve) 상의 point addition/ doubling, scalar multiplication과 메시지 축약(message digest) 등으로 구성된 스킴(scheme) 또는 프로토콜(protocol)을 포함하기 때문이다.The authentication device requires dedicated cryptographic hardware that performs a necessary function at high speed in order to provide a service based on a public key cryptosystem. Because, the public key cryptosystem is an integer operation based on a cryptographic hard problem that requires a high amount of computation, for example, modular addition/subtraction/multiplication/exponentiation and on an elliptic curve. This is because it includes a scheme or protocol composed of point addition/doubling, scalar multiplication, and message digest.

또한, 인증 장치는 정수 연산의 수행기와 메시지 축약을 위한 해쉬(hash) 수행기 등을 조합하여 구현할 수 있다. 이때, 각각의 기능 구성 요소들은 상호 중복된 리소스(resource)를 가지고 있을 수 있다. 예를 들어, 각각의 구성 요소들은 자신의 기능을 수행하기 위하여 개별적으로 메모리(예, SRAM(static random access memory))를 필요로 할 수 있다. 이러한 메모리는 구성 요소 간에 중복된 리소스일 수 있기 때문에, 인증 장치를 구성하는데 최적화와 경량화를 위해 공유 메모리로 사용될 수 있다. In addition, the authentication device may be implemented by combining an integer operation performer and a hash performer for message abbreviation. In this case, each functional component may have mutually redundant resources. For example, each component may individually require a memory (eg, static random access memory (SRAM)) to perform its function. Since this memory may be a resource that is duplicated between components, it may be used as a shared memory for optimization and weight reduction in configuring the authentication device.

또한, 각각의 구성 요소들의 내부 변수 또한 공유 메모리에 저장함으로써, 각각의 구성 요소의 크기가 최소화될 수 있다. 실시 예에 있어서, 스마트폰(smartphone)의 플립 커버(flip-cover), 배터리, 전력 케이블(power cable)과 같은 제품의 인증 기능은 먼저 서비스를 제공한 뒤 혹은 서비스를 제공하면서 인증을 진행하도록 구현될 수 있다. 만일, 인증이 실패하면, 대응하는 서비스가 즉시 중단될 수 있다.Also, by storing the internal variables of each component in the shared memory, the size of each component can be minimized. In an embodiment, the authentication function of a product such as a flip-cover of a smartphone, a battery, and a power cable is implemented to perform authentication after providing a service first or while providing a service can be If authentication fails, the corresponding service may be stopped immediately.

본 발명의 실시 예에 따른 인증 장치는, 공개키 암호시스템 기반의 인증을 수행하기 위한 독립적인 CPU와 인증 절차 수행을 위한 SW를 저장할 NVM을 사용하지 않을 수 있다. 또한, 본 발명의 실시 예에 따른 인증 장치의 내부 구성 요소(component)는 지속적으로 공유 메모리를 접근하며 동작할 수 있다. 또한, 배타적으로 동작하는 구성 요소들은 메모리를 서로 공유하여 사용할 수 있다. 이때 구성 요소들은 메모리를 통해 상호 필요한 데이터를 공유할 수 있다.The authentication apparatus according to an embodiment of the present invention may not use an independent CPU for performing public key encryption system-based authentication and an NVM to store SW for performing an authentication procedure. In addition, an internal component of the authentication device according to an embodiment of the present invention may operate while continuously accessing the shared memory. In addition, components that operate exclusively may share and use a memory. In this case, the components can share mutually necessary data through the memory.

도 1은 본 발명의 실시 예에 따른 인증 장치를 구비한 장치들(A, B)의 인증 방법을 보여주는 네트워크 시스템(10)을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 네트워크 시스템(10)은 장치들(A, B, C)의 유무선 연결을 위한 네트워크(11)를 포함할 수 있다. 실시 예에 있어서, 네트워크(11)는 IoT(internet of things) 네트워크일 수 있다. 도 1에서는 설명의 편의를 위하여 네트워크(11)에 3 개의 장치들(A, B, C)에 연결되었다. 하지만, 네트워크(11)에 연결된 장치들의 개수는 여기에 제한되지 않을 것이다.1 is a diagram exemplarily showing a network system 10 showing an authentication method of devices A and B having an authentication device according to an embodiment of the present invention. Referring to FIG. 1 , a network system 10 may include a network 11 for wired/wireless connection of devices A, B, and C. Referring to FIG. In an embodiment, the network 11 may be an Internet of things (IoT) network. In FIG. 1 , three devices A, B, and C are connected to the network 11 for convenience of description. However, the number of devices connected to the network 11 will not be limited thereto.

제 1 장치(A) 및 제 2 장치(B)는 각각 대응하는 인증 장치(100, 200)를 포함할 수 있다. 제 3 장치(C)는 제 1 및 제 2 장치들(A, B)과 달리 인증 장치를 포함하지 않을 수 있다. The first device A and the second device B may include corresponding authentication devices 100 and 200, respectively. Unlike the first and second devices A and B, the third device C may not include an authentication device.

본 발명의 네트워크 시스템(10)의 장치별 인증 방법은, 도 1에 도시된 바와 같이 크게 2 가지로 구분될 수 있다. 우선, 인증 장치(100, 200)를 구비한 장치들(A, B) 사이의 상호(혹은 '양방향') 인증(mutual authentication)과, 인증 장치(100 혹은 200)을 구비한 장치(A 혹은 B)와 인증 장치를 구비하지 않은 장치(C) 사이의 단독(unilateral, 혹은 '단방향') 인증이다. 실시 예에 있어서, 제 1 장치(A)는 스마트폰을 감싸는 플립 커버(flip cover)이고, 제 2 장치(B)는 스마트 폰이고, 제 3 장치(C)는 인증 장치를 포함하는 않는 장치일 수 있다.The device-specific authentication method of the network system 10 of the present invention can be largely divided into two types as shown in FIG. 1 . First, mutual (or 'two-way') authentication between the devices A and B having the authentication devices 100 and 200, and the device A or B having the authentication device 100 or 200 ) and a device (C) without an authentication device (unilateral, or 'unidirectional') authentication. In an embodiment, the first device (A) is a flip cover covering the smart phone, the second device (B) is a smart phone, and the third device (C) is a device that does not include an authentication device can

또한, 인증 장치(예, 200)는 장치(B)의 제 1 및 제 2 구성 요소들(201, 202) 사이의 내부 인증(internal authentication)을 수행하는데 이용될 수도 있다. 내부 인증은 외부 인증과 동일하게 상호 인증 혹은 단독 인증을 포함할 수 있다. 실시 예에 있어서, 제 1 구성 요소(201)는 디스플레이 드라이버 칩(display driver integrated chip, DDI) 장치이고, 제 2 구성 요소(202)는 디스플레이 장치일 수 있다. 도 1에서 장치(B)는 구성 요소(201)에 포함된 하나의 인증 장치(200)를 도시한다. 하지만, 본 발명이 여기에 제한될 필요는 없다. 도시되지 않았지만, 장치(B)의 다른 구성 요소(202)도 인증 장치를 포함할 수 있다. 한편, 도시되지 않았지만, 제 1 장치(A)의 인증 장치(100) 구성 방법도, 제 2 장치(B)의 인증 장치(200)의 구성 방법과 유사할 수 있다.Also, the authentication device (eg, 200 ) may be used to perform internal authentication between the first and second components 201 , 202 of the device B . In the same way as external authentication, internal authentication may include mutual authentication or single authentication. In an embodiment, the first component 201 may be a display driver integrated chip (DDI) device, and the second component 202 may be a display device. In FIG. 1 , device B shows one authentication device 200 included in component 201 . However, the present invention need not be limited thereto. Although not shown, other components 202 of device B may also include an authentication device. Meanwhile, although not shown, a configuration method of the authentication device 100 of the first device A may be similar to a configuration method of the authentication device 200 of the second device B. FIG.

한편, 도 1에 도시된 네트워크 시스템(10)은 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다On the other hand, it should be understood that the network system 10 shown in FIG. 1 is merely an embodiment that does not limit the present invention.

도 2는 본 발명의 실시 예에 따른 인증 장치(100)를 예시적으로 보여주는 블록도이다. 도 2를 참조하면, 인증 장치(100)는 인증 제어기(110), 인증서 핸들러(120), 암호 프리미티브스(cryptographic primitives, 130), 및 공유 메모리(140)를 포함할 수 있다.2 is a block diagram illustrating an authentication apparatus 100 according to an embodiment of the present invention. Referring to FIG. 2 , the authentication apparatus 100 may include an authentication controller 110 , a certificate handler 120 , cryptographic primitives 130 , and a shared memory 140 .

인증 제어기(110)는 공개키(public key) 암호 시스템 기반의 인증 프로토콜을 수행하도록 구현될 수 있다. 여기서 인증 프로토콜은 외부 장치와의 외부 인증 프로토콜 혹은 내부 구성 요소와 내부 인증 프로토콜일 수 있다. 인증 제어기(110)는 상대방과의 통신을 통해 인증 프로토콜 진행을 직접적으로 담당할 수 있다. 예를 들어, 인증 제어기(110)는 인증 프로토콜 진행시 필요한 연산을 수행하기 위하여 단위 연산을 수행하는 구성 요소들(120, 130)을 반복적으로 호출할 수 있다. 또한, 인증 제어기(110)는 각 구성 요소들(120, 130)의 동작 시기를 순차적으로 조절함으로써 공유 메모리(140)를 공유할 수 있다. 즉, 인증 제어기(110)는 어느 하나의 구성 요소에서 공유 메모리(140)를 통해 입출력되는 값을 다른 구성 요소에서 사용할 수 있도록, 인증서 핸들러(120), 암호 프리미티브스(130) 및 공유 메모리(140)를 제어할 수 있다. 실시 예에 있어서, 인증 제어기(110)는 레지스터 설정을 통하여 인증 프로토콜을 위한 인증서 핸들러(120), 암호 프리미티브스(130) 및 공유 메모리(140)를 제어할 수 있다.The authentication controller 110 may be implemented to perform an authentication protocol based on a public key encryption system. Here, the authentication protocol may be an external authentication protocol with an external device or an internal authentication protocol with an internal component. The authentication controller 110 may be directly in charge of proceeding with the authentication protocol through communication with the counterpart. For example, the authentication controller 110 may repeatedly call the components 120 and 130 that perform unit operations in order to perform a necessary operation when an authentication protocol is performed. In addition, the authentication controller 110 may share the shared memory 140 by sequentially adjusting the operation timing of each of the components 120 and 130 . That is, the authentication controller 110 uses the value input/output through the shared memory 140 in any one component to be used by another component, the certificate handler 120 , the cryptographic primitives 130 , and the shared memory 140 . ) can be controlled. In an embodiment, the authentication controller 110 may control the certificate handler 120 for the authentication protocol, the cryptographic primitives 130 and the shared memory 140 through register setting.

인증서 핸들러(120)는 공개키(public key) 인증서(certification)를 관리하도록 구현될 수 있다. 인증서 핸들러(120)는 인증서를 발생, 분석, 혹은 검증을 수행할 수 있다. 인증서 핸들러(120)는 상대방으로부터 입력된 인증서를 분석하고(parse), 분석된 인증서(parsed certificate)를 공유 메모리(140)에 저장할 수 있다. 예를 들어, 인증서 핸들러(120)는 상대방의 공개키 인증서를 입력 받고, 인증기관(certificate authority; CA)의 루트 인증서(root certificate)를 이용하여 상대방의 공개키 인증서가 유효한 지를 검증할 수 있다.The certificate handler 120 may be implemented to manage a public key certificate (certification). The certificate handler 120 may generate, analyze, or verify a certificate. The certificate handler 120 may parse the certificate input from the counterpart and store the parsed certificate in the shared memory 140 . For example, the certificate handler 120 may receive the counterpart's public key certificate and verify whether the counterpart's public key certificate is valid using a root certificate of a certificate authority (CA).

인증서 핸들러(120)는 공개키 인증서를 관리하기 위하여 공유 메모리(140)에 수시로, 지속적으로 접근하도록 구현될 수 있다. 즉, 인증서 핸들러(120)는 공개키 인증서를 발생 혹은 검증을 위한 내부 변수들을 공유 메모리(140)에 저장하도록 구현될 수 있다.The certificate handler 120 may be implemented to frequently and continuously access the shared memory 140 in order to manage the public key certificate. That is, the certificate handler 120 may be implemented to store internal variables for generating or verifying a public key certificate in the shared memory 140 .

암호 프리미티브스(130)는 공개키 암호 연산을 수행하거나, 해쉬(hash) 연산을 수행하거나, 혹은 난수(random number) 발생하도록 구현될 수 있다. The cryptographic primitives 130 may be implemented to perform a public key cryptographic operation, perform a hash operation, or generate a random number.

실시 예에 있어서, 암호 프리미티브스(130)는 인증 프로토콜 진행시, 상대방의 인증 요청에 응답하여 챌린지(challenge)를 발생할 수 있다. 여기서 챌린지는 난수를 해쉬 알고리즘에 입력하여 얻을 수 있다. 또한, 암호 프리미티브스(130)는 인증 장치(100)의 챌린지에 응답하여 상대방에서 발생된 리스판스(response)를 검증할 수 있다. 예를 들어, 상대방으로부터 입력된 리스판스는 인증 장치(100)의 챌린지를 상대방의 개인키로 서명시킨 값일 수 있다. 이때, 암호 프리미티브스(130)는 상대방의 리스판스(서명값)와 상대방의 공개키(인증서)를 이용하여 챌린지를 복호화함으로써, 상대방의 리스판스를 검증할 수 있다.In an embodiment, the cryptographic primitives 130 may generate a challenge in response to a counterpart's authentication request when an authentication protocol is performed. Here, the challenge can be obtained by inputting a random number into the hash algorithm. Also, the cryptographic primitives 130 may verify a response generated by the counterpart in response to the challenge of the authentication device 100 . For example, the response input from the counterpart may be a value obtained by signing the challenge of the authentication apparatus 100 with the private key of the counterpart. At this time, the encryption primitives 130 may verify the counterpart's response by decrypting the challenge using the counterpart's response (signature value) and the counterpart's public key (certificate).

또한, 암호 프리미티브스(130)는 상대방이 발행한 챌린지(challenge)에 대응하는 인증 장치의 리스판스(혹, 서명값)를 발생할 수 있다.In addition, the cryptographic primitives 130 may generate a response (or signature value) of the authentication device corresponding to a challenge issued by the counterpart.

실시 예에 있어서, 암호 프리미티브스(130)는 상호 인증 프로토콜을 진행시 발생된 난수를 이용하여 상호 공유된 비밀 값(shared secret)을 발생할 수 있다.In an embodiment, the cryptographic primitives 130 may generate a shared secret by using a random number generated when a mutual authentication protocol is performed.

암호 프리미티브스(130)는 공개키 암호 연산을 수행하거나, 해쉬(hash) 연산을 수행하거나, 혹은 난수(random number) 발생하기 위하여 공유 메모리(140)에 수시로, 지속적으로 접근하도록 구현될 수 있다. 즉, 암호 프리미티브스(130)는 암호 연산, 해쉬 연산, 혹은 난수 발생을 위한 내부 변수들을 공유 메모리(140)에 저장하도록 구현될 수 있다.The cryptographic primitives 130 may be implemented to frequently and continuously access the shared memory 140 in order to perform a public key cryptographic operation, perform a hash operation, or generate a random number. That is, the cryptographic primitives 130 may be implemented to store internal variables for cryptographic operation, hash operation, or random number generation in the shared memory 140 .

공유 메모리(140)는 인증 제어기(110), 인증서 핸들러(120), 및 암호 프리미티브스(130) 중 적어도 하나의 동작을 위한 데이터, 동작 중 발생된 데이터, 혹은 동작 결과에 따른 데이터를 저장하도록 구현될 수 있다. 실시 예에 있어서, 공유 메모리(140)는 휘발성 메모리(volatile memory), 비휘발성 메모리(nonvolatile memory), 혹은 휘발성 메모리와 비휘발성 메모리로 구성된 하이브리드 메모리(hybrid memory)로 구현될 수 있다. 예를 들어, 공유 메모리(140)는 DRAM(dynamic random access memory), SRAM(static random access memory), eMMC(embedded multimedia card) 등일 수 있다. 공유 메모리(140)의 입출력 제어 동작은 인증 제어기(120)에 의해 수행될 수 있다. 즉, 인증 제어기(120)는 공유 메모리(140)를 제어하기 위한 메모리 제어기를 포함할 수 있다.The shared memory 140 is implemented to store data for the operation of at least one of the authentication controller 110 , the certificate handler 120 , and the cryptographic primitives 130 , data generated during the operation, or data according to the operation result can be In an embodiment, the shared memory 140 may be implemented as a volatile memory, a nonvolatile memory, or a hybrid memory including a volatile memory and a nonvolatile memory. For example, the shared memory 140 may be a dynamic random access memory (DRAM), a static random access memory (SRAM), an embedded multimedia card (eMMC), or the like. The input/output control operation of the shared memory 140 may be performed by the authentication controller 120 . That is, the authentication controller 120 may include a memory controller for controlling the shared memory 140 .

실시 예에 있어서, 인증 장치(100)의 구성 요소들(110, 120, 130, 140)은 데이터 라인들(101, 102, 103, 104, 105)에 의해 서로 연결되도록 구현될 수 있다. 데이터 라인들(101, 102, 103, 104, 105) 각각은 인증 프로토콜을 수행할 때 발생되는 내부 데이터의 입출력 라인으로 이용될 수 있다.In an embodiment, the components 110 , 120 , 130 , and 140 of the authentication apparatus 100 may be implemented to be connected to each other by data lines 101 , 102 , 103 , 104 , and 105 . Each of the data lines 101 , 102 , 103 , 104 , and 105 may be used as an input/output line for internal data generated when an authentication protocol is performed.

본 발명의 인증 장치(100)의 구성 요소들(110, 120, 130)은 공유 메모리(140)를 공유할 수 있다. 이로 인해 각 구성 요소들(110, 120, 130)의 입/출력은 다른 구성 요소들과 공유하여 사용될 수 있다. 즉, 본 발명의 인증 장치(100)는 구성 요소를 독립적으로 사용하는 종래의 메모리를 줄임으로써, 인증 장치의 경량화를 달성시킬 수 있다.The components 110 , 120 , and 130 of the authentication device 100 of the present invention may share the shared memory 140 . For this reason, the input/output of each of the components 110 , 120 , and 130 may be shared and used with other components. That is, the authentication apparatus 100 of the present invention can achieve weight reduction of the authentication apparatus by reducing the conventional memory that uses components independently.

또한, 본 발명의 인증 장치(100)는 인증 프로토콜을 전용으로 수행하는 구성 요소(110)를 구비함으로써, 종래의 인증 장치에서 인증을 위한 SW(software)를 구동하기 위한 CPU 혹은 NVM을 제거시킬 수 있다. 즉, 인증 장치의 경량화시킬 수 있다. 게다가, 본 발명의 인증 장치(100)는 인증 프로토콜 진행을 위한 SW를 저장할 필요가 없기 때문에, SW의 위/변조로 인한 인증 장치의 오동작 가능성을 배제시킬 수 있다.In addition, since the authentication device 100 of the present invention includes the component 110 that exclusively performs the authentication protocol, it is possible to remove the CPU or NVM for driving SW (software) for authentication in the conventional authentication device. have. That is, the weight of the authentication device can be reduced. In addition, since the authentication device 100 of the present invention does not need to store the SW for the authentication protocol progress, the possibility of malfunction of the authentication device due to forgery/falsification of the SW can be excluded.

본 발명의 인증 장치(100)는, 인증 프로토콜을 수행하는 인증 제어기(110)와 공개키 인증서를 처리하기 위한 인증서 핸들러(120)를 이용하여, 사용자가 공개키 인증서를 인증 장치(110)에 입력하고, 인증 장치(100)를 동작시키는 것만으로 공개키 암호시스템 기반의 인증 프로토콜을 수행할 수 있다.In the authentication apparatus 100 of the present invention, the user inputs the public key certificate to the authentication apparatus 110 by using the authentication controller 110 for performing an authentication protocol and the certificate handler 120 for processing the public key certificate. And, only by operating the authentication device 100, it is possible to perform an authentication protocol based on a public key encryption system.

한편, 본 발명의 인증 장치(100)는 다양한 기기 및 부품에 적용하여 여러 가지 환경에서 다양한 인증 기능을 제공할 수 있다. 본 발명의 인증 장치(100)가 지원하는 공개키 암호시스템 기반 인증 프로토콜은 단독 인증 및 상호 인증이다. Meanwhile, the authentication apparatus 100 of the present invention may be applied to various devices and parts to provide various authentication functions in various environments. The public key encryption system-based authentication protocol supported by the authentication device 100 of the present invention is single authentication and mutual authentication.

인증 프로토콜이 수행되는 동작에 맞게 각 구성 요소들은 유기적으로 동작할 수 있다. 실시 예에 있어서, 단독 인증의 경우에, 인증 장치(100)의 동작의 결과는 상대방의 신원 확인 결과이다. 다른 실시 예에 있어서, 상호 인증의 경우에, 인증 장치(100)의 동작 결과는, 상대방의 신원 확인 결과 및 이후 비밀 통신을 위한 세션키(session key)를 발생하는데 사용될 비밀 값의 공유이다.Each component may operate organically according to the operation performed by the authentication protocol. In an embodiment, in the case of single authentication, the result of the operation of the authentication device 100 is the identification result of the counterpart. In another embodiment, in the case of mutual authentication, the operation result of the authentication device 100 is the sharing of a secret value to be used to generate a session key for secret communication and a result of verifying the identity of the counterpart.

한편, 도 2에 도시된 인증 장치(100)는 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다.On the other hand, it should be understood that the authentication apparatus 100 shown in FIG. 2 is merely an embodiment that does not limit the present invention.

도 3은 도 2에 도시된 인증 제어기(110)를 예시적으로 보여주는 블록도이다. 도 3을 참조하면, 인증 제어기(110)는 레지스터들(112) 및 원-타임 프로그래머블 메모리(114)를 포함할 수 있다.FIG. 3 is a block diagram exemplarily showing the authentication controller 110 shown in FIG. 2 . Referring to FIG. 3 , the authentication controller 110 may include registers 112 and a one-time programmable memory 114 .

레지스터들(112)은 인증 장치(100)의 인증 프로토콜 진행 시작을 지시하는 실행값을 저장하는 제 1 레지스터(112-1), 인증 요청을 입력 받을 때 설정되는 준비값을 저장하는 제 2 레지스터(112-2), 및 인증 결과값을 저장하는 제 3 레지스터(112-3)을 포함할 수 있다. 제 1 레지스터(112-1)가 설정되면, 인증 장치(100)는 인증 프로토콜 동작을 시작할 수 있다. 외부의 장치로부터 인증 요청을 입력받으면, 제 2 레지스터(112-2)가 설정될 수 있다. 인증 프로토콜이 성공적으로 완료되면, 제 3 레지스터(113-3)가 설정될 수 있다.The registers 112 include a first register 112-1 that stores an execution value instructing the start of the authentication protocol process of the authentication device 100, and a second register 112-1 that stores a preparation value set when an authentication request is received. 112-2), and a third register 112-3 for storing the authentication result value. When the first register 112-1 is set, the authentication device 100 may start an authentication protocol operation. When an authentication request is received from an external device, the second register 112 - 2 may be set. When the authentication protocol is successfully completed, the third register 113 - 3 may be set.

원-타임 프로그래머블 메모리(114)는 인증 장치(110)를 위한 인증서(certificate, 114-1)을 저장하도록 구현될 수 있다. 인증서(114-1)는 공개키 암호시스템 기반 인증 프로토콜을 수행하는데 필요한 인증 장치(110)의 공개키(public key, 114-2) 및 비밀키(secret key, 114-3)를 포함할 수 있다. 원-타임 프로그래머블 메모리(114)는 비밀키(114-3)를 보호하기 위한 보안대책(counter measure)을 구비하도록 구현될 수 있다.The one-time programmable memory 114 may be implemented to store a certificate 114 - 1 for the authentication device 110 . The certificate 114-1 may include a public key 114-2 and a secret key 114-3 of the authentication device 110 required to perform a public key cryptosystem-based authentication protocol. . The one-time programmable memory 114 may be implemented to include a counter measure for protecting the secret key 114 - 3 .

한편, 도 3에 도시된 인증 제어기(110)는 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다.On the other hand, it should be understood that the authentication controller 110 shown in FIG. 3 is merely an embodiment that does not limit the present invention.

도 4는 도 2에 도시된 암호 프리미티브스(130)를 예시적으로 보여주는 블록도이다. 도 4를 참조하면, 암호 프리미티브스(130)는 공개키 가속기(131), 해쉬 함수(132) 및 난수 발생기(133)를 포함할 수 있다.4 is a block diagram exemplarily showing the cryptographic primitives 130 shown in FIG. 2 . Referring to FIG. 4 , the cryptographic primitives 130 may include a public key accelerator 131 , a hash function 132 , and a random number generator 133 .

공개키 가속기(131)는 인증 프로토콜에 필요한 모듈러(modular) 연산 혹은 포인트(point) 연산을 수행하도록 구현될 수 있다. 실시 예에 있어서, 공개키 가속기(131) 및 인증 제어기(110)는 데이터 라인(103-1)을 통하여 연결될 수 있다. 실시 예에 있어서, 공개키 가속기(131) 및 공유 메모리(140)는 데이터 라인(104-1)을 통하여 연결될 수 있다.The public key accelerator 131 may be implemented to perform a modular operation or a point operation required for an authentication protocol. In an embodiment, the public key accelerator 131 and the authentication controller 110 may be connected through the data line 103-1. In an embodiment, the public key accelerator 131 and the shared memory 140 may be connected through the data line 104-1.

해쉬 함수(132)는 해쉬(hash) 알고리즘을 수행하도록 구현될 수 있다. 실시 예에 있어서, 해쉬 함수(132) 및 인증 제어기(110)는 데이터 라인(103-2)을 통하여 연결될 수 있다. 실시 예에 있어서, 해쉬 함수(132) 및 공유 메모리(140)는 데이터 라인(104-2)를 통하여 연결될 수 있다.The hash function 132 may be implemented to perform a hash algorithm. In an embodiment, the hash function 132 and the authentication controller 110 may be connected through the data line 103-2. In an embodiment, the hash function 132 and the shared memory 140 may be connected through the data line 104 - 2 .

난수 발생기(133)는 난수를 발생하도록 구현될 수 있다. 실시 예에 있어서, 난수 발생기(133) 및 인증 제어기(110)는 데이터 라인(103-3)을 통하여 연결될 수 있다. 실시 예에 있어서, 난수 발생기(133) 및 공유 메모리(140)는 데이터 라인(104-3)을 통하여 연결될 수 있다.The random number generator 133 may be implemented to generate random numbers. In an embodiment, the random number generator 133 and the authentication controller 110 may be connected through a data line 103 - 3 . In an embodiment, the random number generator 133 and the shared memory 140 may be connected through the data line 104 - 3 .

또한, 실시 예에 있어서, 데이터 라인들(103-1, 103-2, 103-3)은 도 2에 도시된 데이터 라인(103)에 포함되고, 데이터 라인들(104-1 104-2, 104-3)은 도 2에 도시된 데이터 라인(104)에 포함될 수 있다.Further, in an embodiment, the data lines 103-1, 103-2, and 103-3 are included in the data line 103 shown in FIG. 2, and the data lines 104-1 104-2, 104 -3) may be included in the data line 104 shown in FIG. 2 .

한편, 도 4에 도시된 암호 프리미티브스(130)는 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다.On the other hand, it should be understood that the cryptographic primitives 130 shown in FIG. 4 are merely exemplary embodiments that do not limit the present invention.

도 5는 본 발명의 실시 예에 따른 인증 장치(100)의 인증 프로토콜을 진행할 때 공유 메모리(140)에 저장될 데이터 영역들을 예시적으로 보여주는 도면이다.5 is a diagram exemplarily showing data areas to be stored in the shared memory 140 when an authentication protocol of the authentication apparatus 100 is performed according to an embodiment of the present invention.

공유 메모리(130)는, 인증 프로토콜이 수행될 때 인증 제어기(110)에 의해 발생된 인증 장치(100)의 챌린지(challenge)를 저장하는 제 1 영역(141), 인증 장치(100)의 챌린지에 응답하여 상대방(opponent)에 의해 발생된 리스판스(response)를 저장하는 제 2 영역(142), 상대방으로부터 파싱된(parsed) 인증서(certificate)를 저장하는 제 3 영역(143), 상대방으로부터 전송된 챌린지를 저장하는 제 4 영역(144), 상대방의 챌린지에 응답하여 인증 장치(100)에서 발생된 리스판스를 저장하는 제 5 영역(145), 인증 프로토콜을 위한 중간값(intermediate value)을 저장하는 제 6 영역(146) 및 해쉬 함수(124, 도 4 참조)의 결과값인, 해쉬값(Hashed Value)를 저장하는 제 7 영역(147)을 포함할 수 있다. 여기서, 제 3 영역(143)은, 상대방의 공개키를 저장하는 영역(143-1), 서명 검증을 위한 값을 저장하는 영역(143-2) 및 기타 인증 프로토콜을 수행하는 데 필요한 정보 데이터를 저장하는 영역(143-3)을 포함할 수 있다.The shared memory 130 includes a first area 141 that stores a challenge of the authentication device 100 generated by the authentication controller 110 when the authentication protocol is performed, the challenge of the authentication device 100 . A second area 142 for storing a response generated by the counterpart in response in response, a third area 143 for storing a certificate parsed from the other party, and transmitted from the counterpart A fourth area 144 for storing a challenge, a fifth area 145 for storing a response generated in the authentication device 100 in response to a challenge of the counterpart, and an intermediate value for an authentication protocol are stored It may include a sixth area 146 and a seventh area 147 storing a hashed value, which is a result value of the hash function 124 (refer to FIG. 4 ). Here, the third area 143 includes an area 143-1 for storing the counterpart's public key, an area 143-2 for storing a value for signature verification, and other information data required to perform an authentication protocol. A storage area 143 - 3 may be included.

도 6은 본 발명의 실시 예에 다른 인증 장치(100)가 인증 프로토콜을 진행할 때, 공유 메모리(140)에 저장된 각 구성 요소들(110, 120,130)의 입출력 값들을 다른 구성 요소에서 재사용하는 것을 예시적으로 보여주는 도면이다.6 illustrates that the input/output values of each of the components 110 , 120 and 130 stored in the shared memory 140 are reused in other components when the authentication device 100 according to an embodiment of the present invention performs an authentication protocol. It is a drawing that shows

우선 구성 요소들(110, 120, 130)의 입출력 값들은 다음과 같이 저장될 수 있다. 공개키 가속기(131)의 입출력값들은 데이터 라인(104-1)을 통하여 공유 메모리(140)의 제 6 영역(146)에 저장될 수 있다. 해쉬 함수(132)의 입출력값들은 데이터 라인(104-2)을 통하여 공유 메모리(140)의 제 7 영역(147)에 저장될 수 있다. 난수 발생기(133)의 입출력값은 데이터 라인(104-3)을 통하여 공유 메모리(140)의 제 1 영역(141)에 저장될 수 있다. 인증서 핸들러(120)의 입출력값은 데이터 라인(102)을 통하여 공유 메모리(140)의 제 3 영역(143)에 저장될 수 있다.First, input/output values of the components 110 , 120 , and 130 may be stored as follows. Input/output values of the public key accelerator 131 may be stored in the sixth area 146 of the shared memory 140 through the data line 104 - 1 . The input/output values of the hash function 132 may be stored in the seventh area 147 of the shared memory 140 through the data line 104 - 2 . The input/output value of the random number generator 133 may be stored in the first area 141 of the shared memory 140 through the data line 104 - 3 . The input/output value of the certificate handler 120 may be stored in the third area 143 of the shared memory 140 through the data line 102 .

또한, 공유 메모리(140)에 저장된 값들은 다음과 같이 다른 구성 요소들에서 재사용될 수 있다. 실시 예에 있어서, 제 1 영역(141)에 저장된 챌린지 값은 데이터 라인(104-5)을 통하여 해쉬 함수(132)에서 재사용되고, 그 결과값이 제 7 영역(147)에 저장될 수 있다. 실시 예에 있어서, 제 7 영역(147)에 저장된 해쉬값은 데이터 라인(104-6)을 통하여 공개키 가속기(131)에서 재사용되고, 그 결과값이 제 6 영역(146)에 저장될 수 있다. 실시 예에 있어서, 제 3 영역(143)의 파싱된 인증서는 데이터 라인(104-7)을 통하여 공개키 가속기(131)에서 재사용되고, 그 결과값이 제 6 영역(146)에 저장될 수 있다. 실시 예에 있어서, 제 3 영역(143)의 파싱된 인증서는 데이터 라인(104-8)을 통하여 해쉬 함수(132)에서 재사용되고, 그 결과값이 제 7 영역(147)에 저장될 수 있다.Also, the values stored in the shared memory 140 may be reused in other components as follows. In an embodiment, the challenge value stored in the first region 141 may be reused in the hash function 132 through the data line 104 - 5 , and the result value may be stored in the seventh region 147 . In an embodiment, the hash value stored in the seventh area 147 may be reused in the public key accelerator 131 through the data line 104 - 6 , and the result value may be stored in the sixth area 146 . . In an embodiment, the parsed certificate of the third area 143 may be reused in the public key accelerator 131 through the data line 104 - 7 , and the result value may be stored in the sixth area 146 . . In an embodiment, the parsed certificate of the third region 143 may be reused in the hash function 132 through the data line 104 - 8 , and the result value may be stored in the seventh region 147 .

한편, 인증 장치(100)의 구성 요소들(110, 120, 130) 각각은, 메모리(140)를 수시로, 반복적으로 접근하며, 출력 값을 발생할 수 있다.Meanwhile, each of the components 110 , 120 , and 130 of the authentication apparatus 100 may frequently and repeatedly access the memory 140 and generate an output value.

한편, 도 2에 도시된 구성 요소들(110, 120, 130)의 입출력값의 재사용 방법은 본 발명을 제한하지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.On the other hand, it should be understood that the reuse method of the input/output values of the components 110 , 120 , and 130 illustrated in FIG. 2 are merely exemplary embodiments that do not limit the present invention.

도 7은 본 발명의 실시 예에 따른 인증 장치의 단독 인증 프로토콜 진행 과정을 예시적으로 보여주는 다이어그램이다. 도 1 내지 도 7를 참조하면, 인증 장치(100)의 단독 인증 프로토콜은 다음과 같이 진행될 수 있다.7 is a diagram exemplarily illustrating a process of a single authentication protocol in an authentication device according to an embodiment of the present invention. 1 to 7 , the single authentication protocol of the authentication device 100 may proceed as follows.

인증 장치(100)가 리셋(reset) 되면, 인증 장치(100)는 초기 상태(S110)로 될 수 있다. 또한, 종료 상태(S160)에서 초기화 동작에 의해 초기 상태(S110)로 천이 될 수도 있다. 또한, 실패 상태(S170)에서 리셋에 의해 초기 상태(S110)로 천이 될 수 있다.When the authentication device 100 is reset, the authentication device 100 may be in an initial state ( S110 ). Also, the transition from the end state S160 to the initial state S110 may be performed by an initialization operation. In addition, it may be transitioned from the failure state (S170) to the initial state (S110) by resetting.

인증 장치(100)를 포함한 장치 혹은 내부의 신호에 의거하여 실행이 되면(S111), 초기 상태(S110)에서 대기 상태(S120)로 천이 될 수 있다. 대기 상태(S120)에서 인증 프로토콜을 진행할 상대방으로부터 인증 요청을 기다릴 수 있다. 상대방으로부터 인증 요청이 입력되면(S121), 인증 장치(100)는 챌린지 발생 상태(S130)로 천이 될 수 있다. 여기서 챌린지 값은 암호 프리미티브스(130, 도 참조)의 난수 발생기(133)에서 발생될 수 있다. 발생된 챌린지 값은 인증 장치(100)의 외부, 즉 상대방에게 전송될 수 있다. 챌린지 전송이 완료되면(S131), 상대방의 공개키 및 리스판스 입력 상태(S140)로 천이 될 수 있다. S140에서, 상대방으로부터 인증을 받고자 하는 상대방의 공개키와 인증 장치(100)의 챌린지에 대한 리스판스(response)가 전송될 수 있다. 상대방의 공개키와 리스판스가 입력되면(S141), 인증 장치(100)는 공개키와 리스판스 검증 상태(S150)로 천이될 수 있다. S150 에서는, 상대방의 공개키에 대한 검증이 수행되고, 공개키 검증 결과로써 유효한 공개키라고 판별되면, 리스판스에 대한 검증이 수행될 수 있다.When it is executed based on a device including the authentication device 100 or an internal signal (S111), it may transition from the initial state (S110) to the standby state (S120). In the standby state ( S120 ), an authentication request may be awaited from the counterpart to which the authentication protocol is to be performed. When an authentication request is input from the counterpart (S121), the authentication apparatus 100 may transition to the challenge generation state (S130). Here, the challenge value may be generated by the random number generator 133 of the cryptographic primitives 130 (see FIG.). The generated challenge value may be transmitted to the outside of the authentication device 100 , that is, to the counterpart. When the challenge transmission is completed (S131), it may transition to the counterpart's public key and response input state (S140). In S140 , the public key of the counterpart to be authenticated by the counterpart and a response to the challenge of the authentication apparatus 100 may be transmitted. When the counterpart's public key and response are input (S141), the authentication apparatus 100 may transition to the public key and response verification state (S150). In S150 , verification of the counterpart's public key is performed, and when it is determined that the public key is a valid public key as a result of verification of the public key, the verification of the response may be performed.

만일, 이러한 검증이 성공하면(S151), 인증 장치(100)는 인증 프로토콜에 대한 종료 상태(S160)로 천이될 수 있다. 반면에, 이러한 검증이 실패하면(S152), 인증 장치(100)는 인증 프로토콜에 대한 실패 상태(S170)로 천이될 수 있다.If the verification is successful ( S151 ), the authentication device 100 may transition to an end state for the authentication protocol ( S160 ). On the other hand, if the verification fails ( S152 ), the authentication device 100 may transition to a failure state for the authentication protocol ( S170 ).

한편, 도 7에 도시된 단독 인증 프로토콜의 진행 과정은 본 발명을 제한하지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.On the other hand, it should be understood that the process of the single authentication protocol shown in FIG. 7 is merely an embodiment that does not limit the present invention.

한편, 본 발명의 실시 예에 따른 인증 장치(100)는 각 동작 단계에서 단독 인증 프로토콜을 진행한 동안에 발생되는 값이나, 진행을 위한 값들에 대한 읽기/쓰기 권한을 다르게 설정할 수 있다. 이로써, 공격자에 의해 특정 값이 변조됨으로써, 인증 결과에 영향을 주는 행위가 차단될 수 있다. 이를 위하여, 도 3에 도시된 인증 제어기(110)는 인증 장치(100)의 동작 단계에 따라 레지스터들(112, 도 3 참조)에 저장된 값들, 혹은 원-타임 프로그래머블 메모리(114, 도 3 참조)에 저장된 값들에 대한 접근 권한을 조절할 수 있다.On the other hand, the authentication apparatus 100 according to an embodiment of the present invention may set different read/write permissions for values generated during the single authentication protocol in each operation step or values for the process. In this way, an action that affects the authentication result by tampering with a specific value by an attacker can be blocked. To this end, the authentication controller 110 shown in FIG. 3 includes values stored in the registers 112 (see FIG. 3 ) or one-time programmable memory 114 (see FIG. 3 ) according to the operation stage of the authentication device 100 ). You can control access rights to the values stored in .

도 8은 본 발명의 실시 예에 따른 인증 장치가 단독 인증 프로토콜을 진행할 경우, 내부 정보에 대한 권한 관리를 예시적으로 보여주는 도면이다. 8 is a diagram exemplarily illustrating authority management for internal information when an authentication device performs a single authentication protocol according to an embodiment of the present invention.

초기 상태(S110)에서는, 실행 값에 대하여는 읽기 및 쓰기가 모두 가능하다. 대기 상태(S120)에서는, 실행 값에 대하여는 읽기 가능하고, 요청 준비 값에 대하여는 읽기 및 쓰기 모두 가능하다. 챌린지 발생 상태(S130)에서는, 실행 값 및 요청 준비 값에 대하여는 읽기 가능하고, 인증 장치(100)의 챌린지에 대하여는 읽기 및 쓰기가 모두 가능하다. 공개키 및 리스판스 입력 상태(S140)에서는, 실행 값 및 요청 준비 값에 대하여는 읽기 가능하고, 상대방의 공개키 값, 인증서 검증 값, 정보 데이터, 상대방의 리스판스 값에 대하여는 읽기 및 쓰기 모두가 가능하다. 공개키 및 리스판스 검증 상태(S150)에서는, 실행 값, 요청 준비 값, 인증 장치의 챌린지 값, 상대방의 공개키 값, 인증서 검증 값, 정보 데이터, 상대방의 리스판스 값에 대하여는 읽기 가능하고, 인증 프로토콜을 위한 중간 값, 해쉬 값, 인증 결과 값에 대하여는 읽기 및 쓰기 모두 가능하다. 종료 상태(S160) 및 실패 상태(S170)에서는, 인증 결과 값에 대하여는 읽기 가능하고, 쓰기는 불가능하다.In the initial state S110, both reading and writing are possible with respect to the execution value. In the standby state (S120), it is possible to read the execution value, and both read and write the request preparation value. In the challenge generation state ( S130 ), the execution value and the request preparation value are readable, and both reading and writing are possible with respect to the challenge of the authentication device 100 . In the public key and response input state (S140), the execution value and the request preparation value are readable, and both read and write are possible for the counterpart's public key value, certificate verification value, information data, and counterpart's response value. do. In the public key and response verification state (S150), the execution value, the request preparation value, the challenge value of the authentication device, the public key value of the other party, the certificate verification value, information data, and the response value of the other party are readable and authenticated Both reading and writing are possible for the intermediate value, hash value, and authentication result value for the protocol. In the end state ( S160 ) and the failure state ( S170 ), the authentication result value is readable and cannot be written.

실시 예에 있어서, 읽기 및 쓰기 권한 설정은 대응하는 비트값을 저장하는 상태 레지스터에 의해 구현될 수 있다.In an embodiment, the read and write permission settings may be implemented by a status register that stores a corresponding bit value.

한편, 도 8에 테이블에 도시된 값들을 제외한 값들은 읽기 혹은 쓰기를 허용하지 않을 수 있다.Meanwhile, reading or writing of values other than the values shown in the table in FIG. 8 may not be allowed.

도 9는 본 발명의 실시 예에 따른 인증 장치(100)의 단독 인증 프로토콜을 개념적으로 설명하는 래더 다이어그램이다. 도 9를 참조하면, 인증 장치(100)의 단독 인증 프로토콜은 다음과 같이 진행될 수 있다. 인증 장치(100)는 상대방(300)으로 인증 요청을 입력 받고(S11), 인증 요청에 응답한 챌린지를 발생하고, 챌린지를 상대방(300)에 전송할 수 있다(S12). 상대방(300)은 전송된 챌린지를 이용하여 리스판스를 발생할 수 있다. 인증 장치(100)는 상대방(300)의 공개키와 리스판스를 입력 받고(S13), 이것들을 인증 장치의 비밀키를 이용하여 검증할 수 있다(S14). 이로써, 단독 인증 프로토콜이 종료될 수 있다.9 is a ladder diagram conceptually illustrating a single authentication protocol of the authentication apparatus 100 according to an embodiment of the present invention. Referring to FIG. 9 , the single authentication protocol of the authentication device 100 may proceed as follows. The authentication device 100 may receive an authentication request from the counterpart 300 (S11), generate a challenge in response to the authentication request, and transmit the challenge to the counterpart 300 (S12). The counterpart 300 may generate a response using the transmitted challenge. The authentication device 100 may receive the public key and response of the counterpart 300 (S13), and verify these using the private key of the authentication device (S14). Thereby, the standalone authentication protocol can be terminated.

실시 예에 있어서, 상대방(300)은 인증 장치(100)를 포함한 장치(B, 도 1 참조)의 다른 구성 요소이거나, 인증 장치(100)를 포함한 장치 외부의 장치(C, 도 1 참조)일 수 있다.In an embodiment, the counterpart 300 may be another component of the device (B, see FIG. 1 ) including the authentication device 100 or an external device (C, see FIG. 1 ) including the authentication device 100 . can

도 10은 본 발명의 실시 예에 따른 인증 장치(100)의 단독 인증 프로토콜 진행시, 인증 요청을 입력 받는 과정을 예시적으로 설명하는 도면이다. 도 7 내지 도 10을 참조하면, 인증 요청은 다음과 같이 입력 될 수 있다. 인증 장치(100)는 대기 상태(S120, 도 7 참조)에서 인증 요청(authentication request)을 받을 수 있다(S11). 여기서 인증 요청은 장치(A)로부터 입력 될 수 있다. 장치(A)는 장치(A)의 다른 구성 요소로부터 인증 요청을 입력 받거나, 장치(A)의 외부 장치로부터 인증 요청을 입력 받을 수 있고, 이를 인증 장치(100)에 전송할 수 있다. 실시 예에 있어서, 인증 요청은 인증 제어기(110)에 입력될 수 있다.FIG. 10 is a diagram exemplarily illustrating a process of receiving an authentication request when the authentication apparatus 100 proceeds with a single authentication protocol according to an embodiment of the present invention. 7 to 10 , the authentication request may be input as follows. The authentication apparatus 100 may receive an authentication request in the standby state (S120, see FIG. 7) (S11). Here, the authentication request may be input from the device (A). The device A may receive an authentication request from another component of the device A or may receive an authentication request from an external device of the device A, and transmit it to the authentication device 100 . In an embodiment, the authentication request may be input to the authentication controller 110 .

도 11은 본 발명의 실시 예에 따른 인증 장치(100)의 단독 인증 프로토콜 진행시, 인증 요청에 대응하는 챌린지를 발생하는 과정을 예시적으로 설명하는 도면이다. 도 7 내지 도 11을 참조하면, 챌린지 발생 과정은 다음과 같다. 챌린지 발생을 위하여, 인증 제어기(110)는 인증 요청에 응답하여 해쉬 함수(132) 및 난수 발생기(133)을 제어할 수 있다(S12-1). 난수 발생기(133)는 인증 제어기(110)의 제어에 따라 챌린지에 대응하는 씨드값(seed value)를 발생하고, 이를 공유 메모리(140)에 전송할 수 있다(S12-2). 해쉬 함수(132)는 인증 제어기(110)의 제어에 따라 씨드값을 이용하여 랜덤값(random value)을 발생하고, 이를 공유 메모리(140)에 전송할 수 있다(S12-3). 여기서 랜덤값이 챌린지 값일 수 있다. 한편, 도 11에 도시된 바와 같이, 해쉬 함수(132)와 난수 발생기(133)를 이용한 챌린지 값 발생 과정은 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다.11 is a diagram exemplarily illustrating a process of generating a challenge corresponding to an authentication request when the authentication apparatus 100 performs a single authentication protocol according to an embodiment of the present invention. 7 to 11 , a process of generating a challenge is as follows. To generate the challenge, the authentication controller 110 may control the hash function 132 and the random number generator 133 in response to the authentication request (S12-1). The random number generator 133 may generate a seed value corresponding to the challenge under the control of the authentication controller 110 and transmit it to the shared memory 140 (S12-2). The hash function 132 may generate a random value using the seed value under the control of the authentication controller 110 and transmit it to the shared memory 140 (S12-3). Here, the random value may be a challenge value. Meanwhile, as shown in FIG. 11 , it should be understood that the process of generating a challenge value using the hash function 132 and the random number generator 133 is merely an embodiment that does not limit the present invention.

실시 예에 있어서, 인증 제어기(110)는 공유 메모리(140)의 입출력을 제어할 수 있다(S12-4).In an embodiment, the authentication controller 110 may control the input/output of the shared memory 140 (S12-4).

도 12는 본 발명의 실시 예에 따른 인증 장치(100)의 단독 인증 프로토콜 진행시, 상대방의 공개키 인증서와 리스판스를 입력 받는 과정을 예시적으로 설명하는 도면이다. 도 7 내지 도 12를 참조하면, 상대방의 공개키 인증서와 리스판스를 입력 받는 과정은 다음과 같다.12 is a diagram exemplarily illustrating a process of receiving an input of a public key certificate and a response of a counterpart when a single authentication protocol of the authentication apparatus 100 is performed according to an embodiment of the present invention. 7 to 12 , the process of receiving the counterpart's public key certificate and response is as follows.

인증 장치(100)는 상대방(300)의 인증서(공개키 포함)와 챌린지에 대한 리스판스를 입력 받을 수 있다. 상대방(300)의 인증서는 인증서 핸들러(120)에 입력되었다가 공유 메모리(140)에 저장될 수 있다(S13-1). 인증서 핸들러(120)는 공유 메모리(140)에 저장된 상대방의 인증서를 정해진 절차에 따라 처리할 수 있다(S13-2). 또한, 상대방의 리스판스는 인증서 제어기(110)를 경유하여 공유 메모리(140)에 저장될 수 있다(S13-3). 인증 제어기(110)는 공개키 인증서 및 리스판스 입력을 위하여 공유 메모리(140)의 전반적인 동작을 제어할 수 있다(S13-4).The authentication device 100 may receive a certificate (including a public key) of the counterpart 300 and a response to the challenge. The certificate of the counterpart 300 may be input to the certificate handler 120 and then stored in the shared memory 140 (S13-1). The certificate handler 120 may process the counterpart's certificate stored in the shared memory 140 according to a predetermined procedure (S13-2). In addition, the counterpart's response may be stored in the shared memory 140 via the certificate controller 110 (S13-3). The authentication controller 110 may control the overall operation of the shared memory 140 for public key certificate and response input (S13-4).

도 13은 본 발명의 실시 예에 따른 인증 장치(100)의 단독 인증 프로토콜 진행시, 상대방의 공개키 인증서 및 리스판스를 검증하는 과정을 예시적으로 설명하는 도면이다. 도 7 내지 도 13을 참조하면, 상대방(300)의 공개키 인증서와 리스판스를 검증하는 과정은 다음과 같다.13 is a diagram exemplarily illustrating a process of verifying a public key certificate and a response of a counterpart when a single authentication protocol of the authentication device 100 is performed according to an embodiment of the present invention. 7 to 13 , the process of verifying the public key certificate and response of the counterpart 300 is as follows.

인증 제어기(110)는 암호 프리미티브스(120) 및 공유 메모리(140)을 반복적으로 동작시킴으로써 공개키 인증서 및 리스판스를 검증할 수 있다(S14-1). 공개키 가속기(131)는 공개키 인증서 및 리스판스 검증 동작시 반복적으로 공유 메모리(140)를 접근할 수 있다(S14-2). 해쉬 함수(132)는 공개키 인증서 및 리스판스 검증 동작시 반복적으로 공유 메모리(140)를 접근할 수 있다(S14-3).The authentication controller 110 may verify the public key certificate and the response by repeatedly operating the cryptographic primitives 120 and the shared memory 140 (S14-1). The public key accelerator 131 may repeatedly access the shared memory 140 during the public key certificate and response verification operation (S14-2). The hash function 132 may repeatedly access the shared memory 140 during public key certificate and response verification operations (S14-3).

한편, 본 발명의 실시 예에 따른 인증 장치(100)는 상호 인증 프로토콜에 적용 가능하다.Meanwhile, the authentication apparatus 100 according to an embodiment of the present invention is applicable to a mutual authentication protocol.

도 14는 본 발명의 실시 예에 따른 인증 장치의 상호 인증 프로토콜 진행 과정을 예시적으로 보여주는 다이어그램이다. 도 1 내지 도 6 및 도 14를 참조하면, 인증 장치(100)의 상호 인증 프로토콜은 다음과 같이 진행될 수 있다.14 is a diagram exemplarily illustrating a mutual authentication protocol progress process of an authentication device according to an embodiment of the present invention. 1 to 6 and 14 , the mutual authentication protocol of the authentication apparatus 100 may proceed as follows.

S210, S220, S230 각각은 도 7에 도시된 제 S110, S120, S130에 동일하거나 유사하게 진행될 수 있기에, 여기서는 설명을 생략하겠다.Since each of S210, S220, and S230 may be the same or similar to that of S110, S120, and S130 shown in FIG. 7, a description thereof will be omitted.

상호 인증 프로토콜을 진행하기 위한 챌린지가 발생 되면(S231), 인증 장치(100)는 인증 장치(100)의 공개키를 갖는 인증서 및 챌린지를 상대방에서 전송할 수 있다(S240).When a challenge for performing the mutual authentication protocol is generated (S231), the authentication device 100 may transmit a certificate and a challenge having the public key of the authentication device 100 from the counterpart (S240).

인증 장치(100)의 공개키를 갖는 인증서 및 챌린지가 상대방에게 전송되면(S241), 상대방은 인증 장치(100)의 공개키 인증서 및 챌린지를 입력 받고, 이것들을 검증한 뒤, 상대방의 공개키 인증서 및 챌린지와, 인증 장치(100)의 챌린지에에 대응하는 리스판스를 발생할 수 있다. 인증 장치(100)는 상대방의 공개키 인증서 및 리스판스를 입력 받을 수 있다(S250).When the certificate and challenge having the public key of the authentication device 100 are transmitted to the counterpart (S241), the counterpart receives the public key certificate and challenge of the authentication apparatus 100, verifies these, and then the public key certificate of the counterpart and a challenge and a response corresponding to the challenge of the authentication device 100 may be generated. The authentication device 100 may receive the counterpart's public key certificate and response (S250).

인증 장치(100)가 상대방의 공개키 인증서 및 챌린지와 리스판스를 입력 받으면(S251), 인증 장치(100)는 상대방의 공개키 인증서 및 리스판스가 유효한 지를 검증할 수 있다(S260). 반면에, 인증 장치(100)가 사전에 결정된 시간 동안에 상대방의 공개키 인증서 및 챌린지와 리스판스를 입력 받지 못하면(S252), 인증 장치(100)는 상호 인증 프로토콜의 실패 상태(295)로 진입할 수 있다.When the authentication device 100 receives the counterpart's public key certificate, challenge, and response (S251), the authentication device 100 may verify whether the counterpart's public key certificate and response are valid (S260). On the other hand, if the authentication device 100 does not receive the counterpart's public key certificate, challenge, and response for a predetermined time (S252), the authentication device 100 enters the mutual authentication protocol failure state 295. can

검증이 성공하면(S261), 인증 장치(100)는 리스판스 발생 및 그것을 상대방에게 전송할 수 있다(S270). 반면에 검증이 실패하면(S262), 인증 장치(100)는 상호 인증 프로토콜의 실패 상태(S295)로 진입할 수 있다.If the verification is successful (S261), the authentication apparatus 100 may generate a response and transmit it to the counterpart (S270). On the other hand, if the verification fails ( S262 ), the authentication apparatus 100 may enter the mutual authentication protocol failure state ( S295 ).

인증 장치(100)의 리스판스 발생 및 전송이 완료되면(S271), 인증 장치(100)는 공유 비밀키(shared secret key)를 발생할 수 있다(S280). 공유 비밀키 발생이 완료되면(S281), 인증 장치(100)는 상호 인증 프로토콜을 종료시킬 수 있다(S290).When the response generation and transmission of the authentication device 100 is completed (S271), the authentication device 100 may generate a shared secret key (S280). When generation of the shared secret key is completed (S281), the authentication apparatus 100 may terminate the mutual authentication protocol (S290).

한편, 도 14에 도시된 상호 인증 프로토콜의 진행 과정은 본 발명을 제한하지 않는 실시 예들에 불과하다고 이해되어야 할 것이다.Meanwhile, it should be understood that the process of the mutual authentication protocol shown in FIG. 14 is merely an embodiment that does not limit the present invention.

한편, 본 발명의 실시 예에 따른 인증 장치(100)는 각 동작 단계에서 상호 인증 프로토콜을 진행한 동안에 발생되는 값이나, 진행을 위한 값들에 대한 읽기/쓰기 권한을 다르게 설정할 수 있다.Meanwhile, the authentication apparatus 100 according to an embodiment of the present invention may set different read/write permissions for values generated during the mutual authentication protocol in each operation step or values for the process.

도 15는 본 발명의 실시 예에 따른 인증 장치가 상호 인증 프로토콜을 진행할 경우, 내부 정보에 대한 권한 관리를 예시적으로 보여주는 도면이다.15 is a diagram exemplarily illustrating authority management for internal information when an authentication device performs a mutual authentication protocol according to an embodiment of the present invention.

초기 상태(S210)에서는, 실행 값에 대하여는 읽기 및 쓰기가 모두 가능하다. 대기 상태(S220)에서는, 실행 값에 대하여는 읽기 가능하고, 요청 준비 값에 대하여는 읽기 및 쓰기 모두 가능하다. 챌린지 발생 상태(S230)에서는, 실행 값 및 요청 준비 값에 대하여는 읽기 가능하고, 인증 장치(100)의 챌린지에 대하여는 읽기 및 쓰기가 모두 가능하다.In the initial state ( S210 ), both reading and writing of the execution value are possible. In the standby state ( S220 ), it is possible to read the execution value, and read and write the request preparation value. In the challenge generation state ( S230 ), it is possible to read the execution value and the request preparation value, and both reading and writing are possible with respect to the challenge of the authentication device 100 .

공개키 및 챌린지 전송 상태(S240)에서는, 실행 값, 요청 준비 값, 인증 장치(100)의 챌린지 값, 인증 장치(100)의 공개키 인증서에 대하여는 읽기 가능하고, 쓰기는 불가능하다.In the public key and challenge transmission state ( S240 ), the execution value, the request preparation value, the challenge value of the authentication device 100 , and the public key certificate of the authentication device 100 are readable and not writable.

공개키 및 리스판스 입력 상태(S250)에서는, 실행 값, 요청 준비 값에 대하여 읽기 가능하고, 상대방의 공개키 인증서, 인증서 검증 값, 정보 데이터, 인증 장치(100)의 챌린지에 대응하는 리스판스 값에 대하여는 읽기 및 쓰기 모두 가능하다. In the public key and response input state ( S250 ), the execution value and the request preparation value are readable, and the counterpart's public key certificate, certificate verification value, information data, and response value corresponding to the challenge of the authentication device 100 . Both read and write are possible.

공개키 및 리스판스 검증 상태(S260)에서는, 실행 값, 요청 준비 값, 인증 장치의 챌린지 값, 상대방의 공개키 인증서, 인증서 검증 값, 정보 데이터, 인증 장치(100)의 챌린지에 대응하는 상대방의 리스판스 값에 대하여는 읽기 가능하고, 인증 프로토콜을 위한 중간 값, 해쉬 값, 인증 결과 값에 대하여는 읽기 및 쓰기 모두 가능하다.In the public key and response verification state ( S260 ), the execution value, the request preparation value, the challenge value of the authentication device, the public key certificate of the other party, the certificate verification value, information data, the counterpart's corresponding to the challenge of the authentication device 100 The response value is readable, and the intermediate value for the authentication protocol, the hash value, and the authentication result value are both readable and writable.

리스판스 발생 및 전송 상태(S270)에서는, 실행 값, 요청 준비 값, 인증 장치(100)의 챌린지 값, 인증 장치(100)의 비밀 키 값, 상대방의 공개키 인증서, 정보 데이터에 대하여는 읽기 가능하고, 인증 프로토콜을 위한 중간 값, 해쉬 값, 인증 결과 값에 대하여는 읽기 및 쓰기 모두 가능하다.In the response generation and transmission state (S270), the execution value, the request preparation value, the challenge value of the authentication device 100, the private key value of the authentication device 100, the public key certificate of the other party, and information data are readable, and , it is possible to read and write the intermediate value, hash value, and authentication result value for the authentication protocol.

공유 비밀키 발생 상태(S280)에서는, 실행 값, 요청 준비 값, 인증 장치(100)의 챌린지 값, 상대방의 챌린지 값에 대하여는 읽기 가능하고, 인증 프로토콜을 위한 중간 값, 해쉬 값, 인증 결과 값에 대하여는 읽기 및 쓰기 모두 가능하다.In the shared secret key generation state (S280), the execution value, the request preparation value, the challenge value of the authentication device 100, and the challenge value of the other party are readable, and the intermediate value for the authentication protocol, the hash value, and the authentication result value Both read and write are possible.

종료 상태(S290) 및 실패 상태(S295)에서는, 인증 결과 값에 대하여는 읽기 가능하고, 쓰기는 불가능하다.In the end state ( S290 ) and the failure state ( S295 ), the authentication result value is readable, but cannot be written.

도 16은 본 발명의 실시 예에 따른 인증 장치(100)의 상호 인증 프로토콜을 개념적으로 설명하는 래더 다이어그램이다. 도 16을 참조하면, 인증 장치(100)의 상호 인증 프로토콜은 다음과 같이 진행될 수 있다. 인증 장치(100)는 상대방(400)으로 인증 요청을 입력 받고(S21), 인증 요청에 응답한 챌린지(Challenge_A)를 발생할 수 있다(S23). 인증 장치(100)는 상호 인증 프로토콜을 위하여 인증 장치(100)의 공개키를 갖는 인증서(Certificate_A) 및 챌린지(Challenge_A)을 상대방(400)에 전송할 수 있다(S24).16 is a ladder diagram conceptually illustrating a mutual authentication protocol of the authentication apparatus 100 according to an embodiment of the present invention. Referring to FIG. 16 , the mutual authentication protocol of the authentication device 100 may proceed as follows. The authentication device 100 may receive an authentication request from the counterpart 400 (S21), and may generate a challenge (Challenge_A) in response to the authentication request (S23). The authentication device 100 may transmit a certificate (Certificate_A) and a challenge (Challenge_A) having the public key of the authentication device 100 to the counterpart 400 for the mutual authentication protocol ( S24 ).

상대방(400)은 전송된 인증 장치(100)의 인증서(Certificate_A)를 검증하고, 인증 장치(100)의 챌린지(Challenge_A)에 대응하는 리스판스를 발생할 수 있다. 검증 결과, 인증 장치(100)의 인증서(Certificate_A)가 유효하다면, 상대방(400)은 인증 장치(100)의 챌린지에 대응하는 리스판스(Response_O), 및 상대방(400)의 챌린지(Challenge_O)를 발생할 수 있다.The counterpart 400 may verify the transmitted certificate (Certificate_A) of the authentication device 100 and generate a response corresponding to the challenge (Challenge_A) of the authentication device 100 . As a result of the verification, if the certificate (Certificate_A) of the authentication device 100 is valid, the counterpart 400 generates a response (Response_O) corresponding to the challenge of the authentication device 100 and a challenge (Challenge_O) of the counterpart 400 . can

인증 장치(100)는 상대방(400)의 공개키를 갖는 인증서(Certificate_O), 상대방(400)의 리스판스(Response_O), 및 상대방(400)의 챌린지(Challenge_O)를 입력 받을 수 있다(S25). 이후, 인증 장치(100)는 상대방(400)의 인증서(400) 및 상대방의 리스판스(Response_O)를 검증할 수 있다(S26). 이후, 상대방(400)의 검증이 유효하다면, 인증 장치(100)는 인증 장치(100)의 리스판스(Response_A)를 발생할 수 있다(S27). 이후, 인증 장치(100)는 상대방(400)과 공유된 비밀키(shared secret key)를 발생할 수 있다(S28). 이후에 인증 장치(100)는 상호 인증 프로토콜의 성공 여부를 알리는 리스판스(Response_0) 및 공유된 비밀키를 상대방(400)으로 전송할 수 있다. 여기서 공유된 비밀키는 세션키(session key)일 수 있다.The authentication apparatus 100 may receive a certificate (Certificate_O) having the public key of the counterpart 400 , a response_O of the counterpart 400 , and a challenge_O of the counterpart 400 ( S25 ). Thereafter, the authentication apparatus 100 may verify the certificate 400 of the counterpart 400 and the counterpart's response (Response_O) (S26). Thereafter, if the verification of the counterpart 400 is valid, the authentication apparatus 100 may generate a response Response_A of the authentication apparatus 100 ( S27 ). Thereafter, the authentication device 100 may generate a shared secret key with the counterpart 400 (S28). Thereafter, the authentication device 100 may transmit a response Response_0 indicating whether the mutual authentication protocol succeeds or not and the shared secret key to the counterpart 400 . Here, the shared secret key may be a session key.

도 17은 본 발명의 실시 예에 따른 인증 장치(100)의 상호 인증 프로토콜 진행시, 상대방(400)으로 인증 장치(100)의 공개키와 챌린지를 전송하는 과정을 예시적으로 설명하는 도면이다.17 is a diagram exemplarily illustrating a process of transmitting a public key and a challenge of the authentication device 100 to the counterpart 400 during the mutual authentication protocol of the authentication device 100 according to an embodiment of the present invention.

인증 장치(100)는 상대방(400)의 인증 요청에 응답하여 챌린지(Challenge_A)를 발생할 수 있다. 챌린지 발생 방법은 도 11에서 설명된 바와 같이 진행될 수 있다. 발생된 챌린지(Challenge_A)는 공유 메모리(140)에 저장될 수 있다. 상호 인증 프로토콜을 진행하기 위하여 인증 장치(100)는 인증 제어기(110)에 저장된 인증서(Certificate_A)를 상대방(400)으로 전송할 수 있다(S24-1). 또한, 인증 장치(100)는 공유 메모리(140)에 저장된 인증 장치(100)의 챌린지(Challenge_A)를 인증 제어기(110)를 경유하여 상대방(400)으로 전송할 수 있다(S24-2).The authentication device 100 may generate a challenge Challenge_A in response to the authentication request of the counterpart 400 . The challenge generating method may proceed as described in FIG. 11 . The generated challenge (Challenge_A) may be stored in the shared memory 140 . In order to proceed with the mutual authentication protocol, the authentication device 100 may transmit the certificate (Certificate_A) stored in the authentication controller 110 to the counterpart 400 (S24-1). In addition, the authentication device 100 may transmit the challenge (Challenge_A) of the authentication device 100 stored in the shared memory 140 to the counterpart 400 via the authentication controller 110 (S24-2).

도 18은 본 발명의 실시 예에 따른 인증 장치(100)의 상호 인증 프로토콜 진행시, 상대방의 공개키 인증서, 리스판스, 및 챌린지를 입력 받는 과정을 예시적으로 설명하는 도면이다. 도 14 내지 도 18을 참조하면, 상대방의 공개키 인증서(Certificate_O), 리스판스(Response_O) 및 챌린지(Challenge_O)를 입력 받는 과정은 다음과 같다.18 is a diagram exemplarily illustrating a process of receiving an input of a public key certificate, a response, and a challenge of a counterpart when a mutual authentication protocol of the authentication device 100 is performed according to an embodiment of the present invention. 14 to 18 , the process of receiving the counterpart's public key certificate (Certificate_O), response (Response_O), and challenge (Challenge_O) is as follows.

인증 장치(100)는 상대방(400)의 공개키 인증서(Certificate_O)와 리스판스(Response_O) 및 챌린지(Challenge_O)를 입력 받을 수 있다. 상대방(400)의 인증서(Certificate_O)는 인증서 핸들러(120)를 경유하여 공유 메모리(140)에 저장될 수 있다(S25-1). 인증서 핸들러(120)는 공유 메모리(140)에 저장된 상대방의 인증서(Certificate_O)를 정해진 절차에 따라 처리할 수 있다(S25-2).The authentication device 100 may receive a public key certificate (Certificate_O), a response (Response_O), and a challenge (Challenge_O) of the counterpart 400 as inputs. The certificate (Certificate_O) of the counterpart 400 may be stored in the shared memory 140 via the certificate handler 120 (S25-1). The certificate handler 120 may process the counterpart's certificate (Certificate_O) stored in the shared memory 140 according to a predetermined procedure (S25-2).

또한, 상대방(400)의 리스판스(Response_O) 및 챌린지(Challenge_O)는 인증서 제어기(110)를 경유하여 공유 메모리(140)에 저장될 수 있다(S25-3). 인증 제어기(110)는 공개키 인증서(Certificate_O), 리스판스(Response_O) 및 챌린지(Challenge_O)의 입력을 위하여 공유 메모리(140)의 전반적인 동작을 제어할 수 있다(S25-4).In addition, the response (Response_O) and the challenge (Challenge_O) of the counterpart 400 may be stored in the shared memory 140 via the certificate controller 110 (S25-3). The authentication controller 110 may control the overall operation of the shared memory 140 to input the public key certificate (Certificate_O), the response (Response_O), and the challenge (Challenge_O) (S25-4).

도 19는 본 발명의 실시 예에 따른 인증 장치(100)의 상호 인증 프로토콜 진행시, 상대방에 챌린지에 응답하여 인증 장치(100)의 리스판스를 발생하는 과정을 예시적으로 설명하는 도면이다. 도 14 내지 도 19를 참조하면, 상대방(400)의 챌린지(Challenge_O)에 응답하여 인증 장치(100)의 리스판스(Response_A)를 발생하는 과정은 다음과 같다.19 is a diagram exemplarily illustrating a process of generating a response of the authentication device 100 in response to a challenge to a counterpart when the authentication device 100 performs a mutual authentication protocol according to an embodiment of the present invention. 14 to 19 , a process of generating a response Response_A of the authentication device 100 in response to the challenge_O of the counterpart 400 is as follows.

인증 제어기(110)는 상대방(400)의 챌린지(Challenge_O)에 응답하여 리스판스(Response_A)를 발생하기 위하여 암호 프리미티브스(120) 및 공유 메모리(140)를 제어할 수 있다(S27-1). 공개키 가속기(131)는 인증 장치(100)의 리스판스(Response_A)를 발생하기 위하여 공유 메모리(140)를 반복적으로 접근할 수 있다(S27-2). 또한, 해쉬 함수(132)는 인증 장치(100)의 리스판스(Response_A)를 발생하기 위하여 공유 메모리(140)를 반복적으로 접근할 수 있다(S27-3). 발생된 리스판스(Response_A)는 인증 제어기(110)을 경유하여 상대방(400)으로 전송될 수 있다(S27-4).The authentication controller 110 may control the cryptographic primitives 120 and the shared memory 140 to generate a response Response_A in response to the challenge_O of the counterpart 400 (S27-1). The public key accelerator 131 may repeatedly access the shared memory 140 in order to generate a response (Response_A) of the authentication device 100 (S27-2). In addition, the hash function 132 may repeatedly access the shared memory 140 in order to generate a response (Response_A) of the authentication device 100 (S27-3). The generated response Response_A may be transmitted to the counterpart 400 via the authentication controller 110 (S27-4).

도 20은 본 발명의 실시 예에 따른 인증 장치(100)의 상호 인증 프로토콜 진행시, 공유된 비밀키(shared secret key)를 발생하는 과정을 예시적으로 설명하는 도면이다. 도 14 내지 도 20을 참조하면, 인증 장치(100)의 공유된 비밀키 발생 과정은 다음과 같다.20 is a diagram exemplarily illustrating a process of generating a shared secret key when a mutual authentication protocol of the authentication apparatus 100 is performed according to an embodiment of the present invention. 14 to 20 , the process of generating the shared secret key of the authentication device 100 is as follows.

인증 제어기(110)는 공개키 가속기(131)와 공유 메모리(140)를 반복적으로 접근함으로써 공유된 비밀키(shared secret key)를 발생할 수 있다(S28-1). 공개키 가속기(131)는 공유된 비밀키를 발생하기 위하여 공유 메모리(140)를 반복적으로 접근할 수 있다(S28-2).The authentication controller 110 may generate a shared secret key by repeatedly accessing the public key accelerator 131 and the shared memory 140 (S28-1). The public key accelerator 131 may repeatedly access the shared memory 140 to generate a shared secret key (S28-2).

도 21은 본 발명의 실시 예에 따른 모바일 장치를 예시적으로 보여주는 도면이다. 도 21을 참조하면, 모바일 장치(1000)는 보안 칩(1020), 프로세서(AP/ModAP, 1100), 버퍼 메모리(1200), 디스플레이/터치 모듈(1300) 및 저장 장치(1400)를 포함한다.21 is a diagram exemplarily showing a mobile device according to an embodiment of the present invention. Referring to FIG. 21 , the mobile device 1000 includes a security chip 1020 , a processor (AP/ModAP, 1100 ), a buffer memory 1200 , a display/touch module 1300 , and a storage device 1400 .

보안 칩(1020)은 모바일 장치(1000)의 전반적인 보안 기능을 제공하도록 구현될 수 있다. 보안 칩(1020)은, 소프트웨어 및/혹 변조 방지 하드웨어(tamper resistant hardware)로 구성되고, 높은 수준의 보안을 허용하고, 프로세서(1100)의TEE(trusted execution environment)에 협력하여 작업할 수 있다. 보안 칩(1020)은 운영 체제인 Native OS(operation system), 내부의 데이터 저장소인 보안 저장 장치, 보안칩(1020)에 접근 권을 제어하는 접근 제어 블록, 오너십 관리(ownership management), 키 관리(key management), 디지털 서명(digital signature), 암호/복호 등을 수행하는 보안 기능 블록과 보안 칩(1020)의 펌웨어를 업데이트하기 위한 펌웨어 업데이트 블록을 포함할 수 있다. 보안 칩(1020)는, 예를 들어, UICC(universal IC card, 예, USIM, CSIM, ISIM), SIM(subscriber identity module) 카드, eSE(embedded secure elements), MicroSD, Stikers 등 일 수 있다.The security chip 1020 may be implemented to provide an overall security function of the mobile device 1000 . The secure chip 1020 is configured with software and/or tamper resistant hardware, allows a high level of security, and can work cooperatively with a trusted execution environment (TEE) of the processor 1100 . The security chip 1020 is an operating system Native OS (operation system), an internal data storage security storage device, an access control block for controlling access rights to the security chip 1020, ownership management, key management ( It may include a security function block for performing key management, digital signature, encryption/decryption, and the like, and a firmware update block for updating the firmware of the security chip 1020 . The security chip 1020 may be, for example, a universal IC card (UICC, eg, USIM, CSIM, ISIM), a subscriber identity module (SIM) card, embedded secure elements (eSE), MicroSD, Stikers, or the like.

또한, 본 발명의 보안 칩(1020)은 도 1 내지 도 20에서 설명한 인증 장치(100)를 포함할 수 있다. 도 21에서 인증 장치는 프로세서(1100)의 외부에 존재하도록 도시된다. 하지만, 본 발명의 인증 장치의 위치가 여기에 제한될 필요는 없다. 본 발명의 인증 장치는 프로세서(1100)의 내부에 존재할 수도 있다.In addition, the security chip 1020 of the present invention may include the authentication device 100 described with reference to FIGS. 1 to 20 . In FIG. 21 , the authentication device is illustrated to exist outside the processor 1100 . However, the location of the authentication device of the present invention need not be limited thereto. The authentication device of the present invention may exist inside the processor 1100 .

프로세서(1100)는 모바일 장치(1000)의 전반적인 동작 및 외부와의 유선/무선 통신을 제어하도록 구현될 수 있다. 예를 들어, 프로세서(1100)는 어플리케이션 프로세서(AP, application processor), 통합 모뎀 어플리케이션 프로세서(ModAP) 등 일 수 있다.The processor 1100 may be implemented to control the overall operation of the mobile device 1000 and wired/wireless communication with the outside. For example, the processor 1100 may be an application processor (AP), an integrated modem application processor (ModAP), or the like.

버퍼 메모리(1200)는 모바일 장치(1000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다. 디스플레이/터치 모듈(1300)은 프로세서(1100)에서 처리된 데이터를 디스플레이하거나, 터치 패널로부터 데이터를 입력받도록 구현될 수 있다. 저장 장치(1400)는 사용자의 데이터를 저장하도록 구현될 수 있다. 저장 장치(1400)는 eMMC(embedded multimedia card), SSD(solid state drive), UFS(universal flash storage) 등 일 수 있다. 저장 장치(1400)는 적어도 하나의 비휘발성 메모리 장치를 포함할 수 있다.The buffer memory 1200 may be implemented to temporarily store data necessary for a processing operation of the mobile device 1000 . The display/touch module 1300 may be implemented to display data processed by the processor 1100 or to receive data from a touch panel. The storage device 1400 may be implemented to store user data. The storage device 1400 may be an embedded multimedia card (eMMC), a solid state drive (SSD), a universal flash storage (UFS), or the like. The storage device 1400 may include at least one nonvolatile memory device.

비휘발성 메모리 장치는, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다.Non-volatile memory devices include NAND flash memory (NAND flash memory), vertical NAND flash memory (VNAND), NOR flash memory (NOR flash memory), resistive random access memory (RRAM), phase change memory (Phase-Change Memory: PRAM), Magnetoresistive Random Access Memory (MRAM), Ferroelectric Random Access Memory (FRAM), Spin Transfer Torque Random Access Memory (STT-RAM), etc. this can be

또한, 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명의 실시 예로서, 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.Also, the nonvolatile memory device may be implemented as a three-dimensional array structure. In an embodiment of the present invention, a three-dimensional memory array is monolithically at one or more physical levels of an array of memory cells having an active area disposed over a silicon substrate and circuitry associated with the operation of the memory cells. ) can be formed. The circuitry involved in the operation of the memory cells may be located in or on the substrate. The term monolithic means that the layers of each level of the three-dimensional array are deposited directly over the layers of the lower level of the three-dimensional array.

본 발명의 개념에 따른 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.As an embodiment according to the concept of the present invention, the 3D memory array has vertical directionality and includes vertical NAND strings in which at least one memory cell is positioned on another memory cell. At least one memory cell includes a charge trap layer. Each vertical NAND string may include at least one select transistor positioned over memory cells. The at least one selection transistor may have the same structure as the memory cells, and may be monolithically formed together with the memory cells.

3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖는다. 3차원 메모리 어레이에 적합한 구성은, 삼성전자에서 출원하였으며, 이 출원의 참고문헌으로 결합된 US 7,679,133, US 8,553,466, US 8,654,587, US 8,559,235, 및 US 2011/0233648에 설명될 것이다. 본 발명의 비휘발성 메모리 장치(NVM)는 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다. A three-dimensional memory array is composed of a plurality of levels, with word lines or bit lines shared between the levels. A suitable configuration for a three-dimensional memory array, filed by Samsung Electronics, will be described in US 7,679,133, US 8,553,466, US 8,654,587, US 8,559,235, and US 2011/0233648, which are incorporated by reference in this application. The nonvolatile memory device (NVM) of the present invention is applicable not only to a flash memory device in which the charge storage layer includes a conductive floating gate, but also to a charge trap flash (CTF) in which the charge storage layer includes an insulating layer.

본 발명의 공개키 암호 시스템 기반의 인증 장치의 구성 방법은 하위 구성 요소들이 리소스를 공유하여 사용하는 방식, 구성 요소 내부의 저장장치를 제한하고 공유 리소스를 활용하는 방식, 공개키 암호시스템 기반 인증 프로토콜을 절차에 맞게 진행하는 하위 구성 요소를 포함하고 있는 구조, 및 공개키 인증서를 하위 구성 요소에 의해 처리하는 구조를 제안한다.The method of configuring an authentication device based on a public key cryptographic system of the present invention includes a method in which sub-components share and use resources, a method in which internal storage devices are restricted and shared resources are utilized, and an authentication protocol based on a public key cryptographic system. We propose a structure that includes sub-components that proceed according to the procedure, and a structure that processes public key certificates by sub-components.

본 발명의 공개키 암호 시스템 기반의 인증 장치의 하드웨어 구조는 공개키 암호시스템 기반의 인증 프로토콜을 수행 하드웨어 장치와 공개키 인증서를 관리하는 장치를 제안한다.The hardware structure of the public key cryptographic system-based authentication device of the present invention proposes a hardware device for performing an authentication protocol based on a public key cryptographic system and a device for managing public key certificates.

도 22는 본 발명의 실시 예에 따른 IoT 네트워크 시스템을 예시적으로 보여주는 도면이다. 도 22를 참조하면, 모바일 장치(22-1), 웨어러블 장치(22-2), 혹은 스마트 글래스(22-3), 센서(22-4), 기타 등등은 본 발명의 인증 장치(100)를 구비할 수 있다.22 is a diagram illustrating an IoT network system according to an embodiment of the present invention. Referring to FIG. 22 , the mobile device 22-1, the wearable device 22-2, or the smart glasses 22-3, the sensor 22-4, and the like use the authentication device 100 of the present invention. can be provided

발명이 적용될 수 있는 제품은 공개키 암호시스템 기반 인증을 지원해야 하는 기기, 일예로, 스마트폰, IoT 환경을 지원하는 전구/온도계/동작감지센서, 프린터 토너, 스마트폰 플립커버, 어플리케이션 프로세서, 디스플레이 드라이버 집적회로(Display driver IC, DDI) 등을 모두 포함할 수 있다. 또한, 상술한 장치들 이외에 공개키 암호시스템 기반 인증을 지원해야 하는 다른 모든 기기들에도 적용될 수 있다.Products to which the invention can be applied are devices that need to support public key encryption system-based authentication, for example, smartphones, light bulbs/thermometers/motion sensors that support IoT environments, printer toners, smartphone flip covers, application processors, and displays. It may include all of the driver integrated circuits (Display driver IC, DDI) and the like. In addition, it can be applied to all other devices that need to support public key encryption system-based authentication in addition to the above-described devices.

한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be defined by not only the claims described below, but also the claims and equivalents of the present invention.

Claims (20)

네트워크 통신을 지원하는 장치에 포함된 인증 장치에 있어서:
인증 요청을 상대방으로부터 인증 프로토콜에 따라 수신하고, 그리고 상기 인증 요청에 의해 설정되는 제 1 레지스터를 포함하는 인증 제어기;
상기 인증 요청에 응답하여 난수를 발생하고, 상기 난수에 대응하는 챌린지를 발생하고, 상기 챌린지에 대응하는 상기 상대방으로부터의 리스판스를 검증하는 암호 프리미티브스;
인증서를 상기 상대방으로부터 수신하고, 그리고 상기 인증서를 검증하는 인증서 핸들러;
상기 인증 제어기, 상기 암호 프리미티브스, 및 상기 인증서 핸들러에 의해 공유되나 상기 상대방에 의해서는 공유되지 않는 공유 메모리를 포함하되,
상기 인증 장치는 상기 인증 프로토콜 동안 생성되는 제1 값들 또는 상기 인증 프로토콜을 수행하기 위한 제2 값들에 대한 읽기 또는 쓰기 권한을 다르게 설정하고,
상기 암호 프리미티브스는 상기 난수 및 상기 챌린지를 상기 공유 메모리에 상기 인증 제어기의 제어 하에 저장하고, 그리고
상기 인증서 핸들러는 상기 인증서를 상기 공유 메모리에 상기 인증 제어기의 제어 하에 저장하는 인증 장치.
For an authentication device included in a device supporting network communication:
an authentication controller for receiving an authentication request from a counterpart according to an authentication protocol, and including a first register set by the authentication request;
cryptographic primitives for generating a random number in response to the authentication request, generating a challenge corresponding to the random number, and verifying a response from the counterpart corresponding to the challenge;
a certificate handler for receiving a certificate from the counterpart and verifying the certificate;
a shared memory shared by the authentication controller, the cryptographic primitives, and the certificate handler but not by the counterpart;
The authentication device differently sets read or write permission for first values generated during the authentication protocol or second values for performing the authentication protocol,
the cryptographic primitive stores the random number and the challenge in the shared memory under the control of the authentication controller; and
and the certificate handler stores the certificate in the shared memory under the control of the authentication controller.
제 1 항에 있어서,
상기 인증 제어기는,
상기 인증 프로토콜을 진행하기 위한 값들을 저장하는 레지스터들; 및
상기 인증 장치의 인증서를 저장하는 원-타임 프로그래머블 메모리를 포함하는 인증 장치.
The method of claim 1,
The authentication controller,
registers for storing values for performing the authentication protocol; and
and a one-time programmable memory for storing the certificate of the authentication device.
제 2 항에 있어서,
상기 레지스터들은,
상기 인증 프로토콜의 시작을 지시하는 제 2 레지스터; 및
상기 인증 프로토콜의 결과값을 저장하는 제 3 레지스터를 포함하는 인증 장치.
3. The method of claim 2,
The registers are
a second register indicating the start of the authentication protocol; and
and a third register for storing a result value of the authentication protocol.
제 2 항에 있어서,
상기 인증 장치의 상기 인증서는 상기 인증 장치의 공개키와 상기 인증 장치의 비밀키를 포함하는 인증 장치.
3. The method of claim 2,
The authentication device, wherein the certificate of the authentication device includes a public key of the authentication device and a private key of the authentication device.
제 1 항에 있어서,
상기 암호 프리미티브스는,
상기 챌린지를 발생하거나 혹은 상기 리스판스를 검증하는데 필요한 모듈러 연산 혹은 포인트 연산을 수행하는 공개키 가속기;
상기 난수를 입력 받고 해쉬 알고리즘에 의거하여 상기 챌린지를 발생하는 해쉬 함수; 및
상기 인증 요청에 응답하여 상기 난수를 발생하는 난수 발생기를 포함하는 인증 장치.
The method of claim 1,
The cryptographic primitives are
a public key accelerator for generating the challenge or performing a modular operation or a point operation necessary for verifying the response;
a hash function that receives the random number and generates the challenge based on a hash algorithm; and
and a random number generator for generating the random number in response to the authentication request.
제 5 항에 있어서,
상기 공개키 가속기는 제 1 데이터 라인을 통하여 상기 공유 메모리에 반복적으로 접근하고,
상기 해쉬 함수는 제 2 데이터 라인을 통하여 상기 공유 메모리에 반복적으로 접근하고,
상기 난수 발생기는 제 3 데이터 라인을 통하여 상기 공유 메모리에 반복적으로 접근하는 인증 장치.
6. The method of claim 5,
The public key accelerator repeatedly accesses the shared memory through a first data line,
The hash function repeatedly accesses the shared memory through a second data line,
The random number generator repeatedly accesses the shared memory through a third data line.
제 5 항에 있어서,
상기 공유 메모리는,
상기 인증 장치의 상기 챌린지를 저장하는 제 1 영역;
상기 인증 장치의 리스판스를 저장하는 제 2 영역;
상기 상대방의 상기 인증서를 저장하는 제 3 영역;
상기 상대방의 챌린지를 저장하는 제 4 영역;
상기 상대방의 상기 리스판스를 저장하는 제 5 영역;
상기 인증 프로토콜의 진행 시 중간 값을 저장하는 제 6 영역; 및
상기 해쉬 함수의 해쉬 값을 저장하는 제 7 영역 중 적어도 하나를 포함하는 인증 장치.
6. The method of claim 5,
The shared memory is
a first area for storing the challenge of the authentication device;
a second area storing a response of the authentication device;
a third area for storing the certificate of the counterpart;
a fourth area for storing the opponent's challenge;
a fifth area storing the response of the counterpart;
a sixth area for storing an intermediate value when the authentication protocol is performed; and
and at least one of a seventh area storing a hash value of the hash function.
제 7 항에 있어서,
상기 제 1 내지 상기 제 7 영역에 저장된 적어도 하나의 값은, 상기 인증서 핸들러, 상기 암호 프리미티브스, 및 상기 인증 제어기 중 적어도 하나에서 재사용되는 인증 장치.
8. The method of claim 7,
The at least one value stored in the first to the seventh areas is reused in at least one of the certificate handler, the cryptographic primitives, and the authentication controller.
제 8 항에 있어서,
상기 적어도 하나의 값을 전송하기 위한 미리 결정된 데이터 라인을 더 포함하는 인증 장치.
9. The method of claim 8,
and a predetermined data line for transmitting the at least one value.
제 1 구성 요소; 및
제 2 구성 요소를 포함하고,
상기 제 1 구성 요소는 인증 장치를 포함하고,
상기 인증 장치는,
상기 제 2 구성 요소인 상대방으로부터 인증 요청을 인증 프로토콜에 따라 수신하고, 그리고 상기 인증 요청에 의해 설정되는 제 1 레지스터를 포함하는 인증 제어기;
난수를 발생하고, 상기 난수에 대응하는 챌린지를 발생하고, 그리고 상기 챌린지에 대응하는 상기 상대방의 리스판스를 검증하는 암호 프리미티브스;
상기 상대방으로부터 인증서를 수신하고 그리고 상기 인증서를 검증하는 인증서 핸들러; 및
상기 인증 제어기, 상기 암호 프리미티브스, 및 상기 인증서 핸들러에 의해 공유되나, 상기 상대방에 의해서는 공유되지 않는 공유 메모리를 포함하되,
상기 인증 장치는 상기 인증 프로토콜 동안 생성되는 제1 값들 또는 상기 인증 프로토콜을 수행하기 위한 제2 값들에 대한 읽기 또는 쓰기 권한을 다르게 설정하고,
상기 암호 프리미티브스는 상기 난수 및 상기 챌린지를 상기 공유 메모리에 상기 인증 제어기의 제어 하에 저장하고, 그리고
상기 인증서 핸들러는 상기 인증서를 상기 공유 메모리에 상기 인증 제어기의 제어 하에 저장하는 모바일 장치.
a first component; and
a second component;
The first component comprises an authentication device,
The authentication device is
an authentication controller that receives an authentication request from a counterpart, which is the second component, according to an authentication protocol, and includes a first register set by the authentication request;
cryptographic primitives for generating a random number, generating a challenge corresponding to the random number, and verifying a response of the counterpart corresponding to the challenge;
a certificate handler for receiving a certificate from the counterpart and verifying the certificate; and
a shared memory shared by the authentication controller, the cryptographic primitives, and the certificate handler, but not shared by the counterpart,
The authentication device differently sets read or write permission for first values generated during the authentication protocol or second values for performing the authentication protocol,
the cryptographic primitive stores the random number and the challenge in the shared memory under the control of the authentication controller; and
wherein the certificate handler stores the certificate in the shared memory under the control of the authentication controller.
제 10 항에 있어서,
상기 인증 프로토콜은 공개키 암호 시스템 기반의 단독 인증 프로토콜이고,
상기 인증 장치는,
상기 상대방으로부터 상기 인증 요청을 입력 받기 위한 동작을 수행하고,
상기 인증 요청에 응답하여 상기 챌린지를 발생하고,
상기 챌린지를 상기 상대방에 전송하고,
상기 상대방으로부터 상기 상대방의 상기 인증서 및 상기 상대방의 상기 리스판스를 입력 받고,
상기 상대방의 상기 인증서 및 상기 상대방의 상기 리스판스를 검증하는 모바일 장치.
11. The method of claim 10,
The authentication protocol is an independent authentication protocol based on a public key encryption system,
The authentication device is
performing an operation for receiving the authentication request from the counterpart;
generating the challenge in response to the authentication request;
sending the challenge to the counterpart,
receiving the certificate of the counterpart and the response of the counterpart from the counterpart,
The mobile device for verifying the certificate of the counterpart and the response of the counterpart.
제 11 항에 있어서,
상기 인증 제어기는 상기 상대방으로부터 상기 인증 요청을 입력 받고, 상기 인증 요청에 응답하여 대응하는 레지스터를 설정하는 모바일 장치.
12. The method of claim 11,
The authentication controller receives the authentication request from the counterpart, and sets a corresponding register in response to the authentication request.
제 11 항에 있어서,
상기 암호 프리미티브스는 난수 발생기 및 해쉬 함수를 더 포함하고,
상기 인증 제어기는, 상기 인증 요청에 응답하여 상기 난수 발생기에서 상기 난수를 발생하도록, 상기 공유 메모리에 상기 난수를 저장하도록, 그리고 상기 해쉬 함수에서 상기 공유 메모리에 저장된 상기 난수를 재사용하여 상기 챌린지를 발생하도록, 상기 난수 발생기, 상기 해쉬 함수, 및 상기 공유 메모리를 제어 하는 모바일 장치.
12. The method of claim 11,
The cryptographic primitives further include a random number generator and a hash function,
The authentication controller generates the challenge by generating the random number in the random number generator in response to the authentication request, storing the random number in the shared memory, and reusing the random number stored in the shared memory in the hash function to control the random number generator, the hash function, and the shared memory.
제 11 항에 있어서,
상기 인증서 핸들러는 상기 상대방의 상기 인증서를 분석(parse)하고, 상기 인증서를 상기 공유 메모리에 저장하고,
상기 인증 제어기는 상기 상대방의 상기 리스판스를 입력 받고, 상기 리스판스를 상기 공유 메모리에 저장하는 모바일 장치.
12. The method of claim 11,
The certificate handler parses the certificate of the counterpart, stores the certificate in the shared memory,
The authentication controller receives the response of the counterpart, and stores the response in the shared memory.
제 14 항에 있어서,
상기 인증서 핸들러는 상기 공유 메모리에 저장된 인증서가 유효한 지를 검증하고,
상기 인증 제어기는 상기 상대방의 인증서가 유효할 때 상기 암호 프리미티브스를 이용하여 상기 공유 메모리에 저장된 리스판스가 유효한 지를 판별하는 모바일 장치.
15. The method of claim 14,
The certificate handler verifies whether the certificate stored in the shared memory is valid,
The authentication controller determines whether the response stored in the shared memory is valid by using the encryption primitive when the counterpart's certificate is valid.
제 10 항에 있어서,
상기 인증 프로토콜은 공개키 암호 시스템 기반의 상호 인증 프로토콜이고,
상기 상호 인증 프로토콜은,
상기 상대방으로부터 상기 인증 요청을 입력 받는 동작,
상기 인증 요청에 응답하여 상기 챌린지를 발생하는 동작,
상기 챌린지 및 상기 인증 장치의 상기 인증서를 상기 상대방에 전송하는 동작,
상기 상대방으로부터 상기 상대방의 상기 인증서, 상기 상대방의 상기 리스판스, 및 상기 상대방의 상기 챌린지를 입력 받는 동작,
상기 상대방의 상기 인증서 및 상기 상대방의 상기 리스판스를 검증하는 동작,
상기 상대방의 상기 챌린지에 응답하여 상기 인증 장치의 상기 리스판스를 발생하는 동작, 그리고
인증 동작이 성공할 때, 공유된 비밀키를 발생하는 동작을 포함하는 모바일 장치.
11. The method of claim 10,
The authentication protocol is a mutual authentication protocol based on a public key encryption system,
The mutual authentication protocol is
receiving the authentication request from the counterpart;
generating the challenge in response to the authentication request;
transmitting the challenge and the certificate of the authentication device to the counterpart;
receiving from the counterpart the certificate of the counterpart, the response of the counterpart, and the challenge of the counterpart;
verifying the certificate of the counterpart and the response of the counterpart;
generating the response of the authentication device in response to the challenge of the counterpart; and
and generating the shared secret key when the authentication operation is successful.
제 10 항에 있어서,
상기 모바일 장치는 스마트폰이고,
상기 상대방은 상기 스마트폰을 감싸는 플립 커버(flip cover)인 모바일 장치.
11. The method of claim 10,
The mobile device is a smartphone,
The mobile device is a flip cover (flip cover) that wraps the smartphone.
인증 장치에 있어서:
상대방으로부터 수신된 인증 요청에 응답하여 챌린지를 생성하는 해쉬 함수;
상기 챌린지를 저장하는 공유 메모리 장치;
상기 챌린지를 상기 공유 메모리 장치로부터 수신하고, 상기 챌린지를 상기 상대방으로 전송하고, 그리고 상기 챌린지에 응답하여 상기 상대방으로부터 전송된 리스판스를 상기 메모리 장치에 저장하는 제어 회로;
상기 챌린지에 응답하여 상기 상대방으로부터 수신된 인증서를 상기 공유 메모리 장치에 저장하고, 그리고 상기 공유 메모리 장치의 상기 인증서를 검증하는 인증서 핸들러; 및
상기 메모리 장치의 상기 리스판스를 수신하고 그리고 상기 리스판스를 검증하는 공개키 가속기를 포함하되,
상기 인증 장치는 인증 프로토콜 동안 생성되는 제1 값들 또는 상기 인증 프로토콜을 수행하기 위한 제2 값들에 대한 읽기 또는 쓰기 권한을 다르게 설정하고,
상기 메모리 장치는 상기 해쉬 함수, 상기 제어 회로, 상기 인증서 핸들러, 및 상기 공개키 가속기에 의해 공유되나, 상기 상대방에 의해서는 공유되지 않는 인증 장치.
In the authentication device:
a hash function for generating a challenge in response to an authentication request received from a counterpart;
a shared memory device for storing the challenge;
a control circuit configured to receive the challenge from the shared memory device, transmit the challenge to the counterpart, and store, in the memory device, a response transmitted from the counterpart in response to the challenge;
a certificate handler that stores the certificate received from the counterpart in the shared memory device in response to the challenge, and verifies the certificate of the shared memory device; and
a public key accelerator receiving the response of the memory device and verifying the response;
The authentication device sets read or write permission differently for first values generated during an authentication protocol or second values for performing the authentication protocol,
The memory device is shared by the hash function, the control circuit, the certificate handler, and the public key accelerator, but is not shared by the counterpart.
제 18 항에 있어서,
상기 공개키 가속기는 상기 리스판스 및 상기 인증서를 검증할 때, 인증 결과를 생성하고 그리고 상기 인증 결과를 상기 메모리 장치에 저장하는 인증 장치.
19. The method of claim 18,
when the public key accelerator verifies the response and the certificate, generates an authentication result and stores the authentication result in the memory device.
삭제delete
KR1020150168664A 2015-10-02 2015-11-30 Authentication apparatus based on public key cryptosystem, mobile device having the same and authentication method thereof KR102458351B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/212,343 US11070380B2 (en) 2015-10-02 2016-07-18 Authentication apparatus based on public key cryptosystem, mobile device having the same and authentication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150139168 2015-10-02
KR1020150139168 2015-10-02

Publications (2)

Publication Number Publication Date
KR20170040721A KR20170040721A (en) 2017-04-13
KR102458351B1 true KR102458351B1 (en) 2022-10-26

Family

ID=58580094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150168664A KR102458351B1 (en) 2015-10-02 2015-11-30 Authentication apparatus based on public key cryptosystem, mobile device having the same and authentication method thereof

Country Status (1)

Country Link
KR (1) KR102458351B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102384678B1 (en) * 2019-12-24 2022-04-08 한전케이디엔주식회사 Cryptographic entity management device for power distribution security device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126458A1 (en) * 2000-12-28 2003-07-03 Kabushiki Kaisha Toshiba Method for sharing encrypted data region among processes in tamper resistant processor
JP2013236376A (en) * 2012-05-04 2013-11-21 Samsung Electronics Co Ltd System on chip, method of operating the same, and system in package including the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126458A1 (en) * 2000-12-28 2003-07-03 Kabushiki Kaisha Toshiba Method for sharing encrypted data region among processes in tamper resistant processor
JP2013236376A (en) * 2012-05-04 2013-11-21 Samsung Electronics Co Ltd System on chip, method of operating the same, and system in package including the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Alfred J. Menezes 외 1명, Handbook of Applied Cryptography, CRC Press (1996.)*

Also Published As

Publication number Publication date
KR20170040721A (en) 2017-04-13

Similar Documents

Publication Publication Date Title
US11070380B2 (en) Authentication apparatus based on public key cryptosystem, mobile device having the same and authentication method
US10839391B2 (en) Method and apparatus for secure offline payment
JP7416775B2 (en) Peripheral device
US11777926B2 (en) Internet of things (IoT) device management
US9875368B1 (en) Remote authorization of usage of protected data in trusted execution environments
TWI740409B (en) Verification of identity using a secret key
KR101608510B1 (en) System and method for key management for issuer security domain using global platform specifications
JP5497171B2 (en) System and method for providing a secure virtual machine
US8468361B2 (en) System and method for securely provisioning and generating one-time-passwords in a remote device
TWI391864B (en) Critical security parameter generation and exchange system and method for smart-card memory modules
JP2022527757A (en) Generating the ID of a computing device using a physical duplication difficulty function
KR20190104401A (en) System access using a mobile device
CN107925567A (en) For optimizing the systems, devices and methods of symmetric key cache using the ticket that service provider's issue is checked by certificate status
JP7332087B2 (en) Systems and methods for signing transactions using air-gapped private keys
CN107846396B (en) Memory system and binding method between memory system and host
TW201428535A (en) Policy-based techniques for managing access control
JP2004104539A (en) Memory card
US11853438B2 (en) Providing cryptographically secure post-secrets-provisioning services
JP2007512787A (en) Trusted mobile platform architecture
KR20210017083A (en) Electronic device and method for generating attestation certificate based on fused key
US11615207B2 (en) Security processor configured to authenticate user and authorize user for user data and computing system including the same
US20210279307A1 (en) Method for the secure interaction of a user with a mobile terminal and a further entity
KR102458351B1 (en) Authentication apparatus based on public key cryptosystem, mobile device having the same and authentication method thereof
KR20210132721A (en) Secure communication when accessing the network
RU2633186C1 (en) Personal device for authentication and data protection

Legal Events

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