KR20230090210A - System on chip, security system, and method for performing authentication - Google Patents

System on chip, security system, and method for performing authentication Download PDF

Info

Publication number
KR20230090210A
KR20230090210A KR1020220051028A KR20220051028A KR20230090210A KR 20230090210 A KR20230090210 A KR 20230090210A KR 1020220051028 A KR1020220051028 A KR 1020220051028A KR 20220051028 A KR20220051028 A KR 20220051028A KR 20230090210 A KR20230090210 A KR 20230090210A
Authority
KR
South Korea
Prior art keywords
key
data
slot
chip
memory
Prior art date
Application number
KR1020220051028A
Other languages
Korean (ko)
Inventor
이현욱
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US17/994,594 priority Critical patent/US20230188326A1/en
Priority to CN202211584799.4A priority patent/CN116264526A/en
Publication of KR20230090210A publication Critical patent/KR20230090210A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

A system-on-chip, a security system, and a method for performing authentication are disclosed. The system-on-chip according to the technical idea of the present disclosure includes: a non-volatile memory configured to include a key storage area and a key indicator area; and an authenticator configured to confirm the storage location using key indicator data in response to an authentication request received from an external device, obtain key data stored in the storage location from the non-volatile memory, and obtain an asymmetric key of the input key and key data received from the external device as input to perform an encryption algorithm.

Description

시스템 온 칩, 보안 시스템 및 인증을 수행하는 방법{SYSTEM ON CHIP, SECURITY SYSTEM, AND METHOD FOR PERFORMING AUTHENTICATION}SYSTEM ON CHIP, SECURITY SYSTEM, AND METHOD FOR PERFORMING AUTHENTICATION}

본 개시의 기술적 사상은 전자 장치에 관한 것이며, 더욱 상세하게는, 시스템 온 칩, 보안 시스템 및 인증을 수행하는 방법에 관한 것이다.The technical idea of the present disclosure relates to an electronic device, and more particularly, to a system on a chip, a security system, and a method for performing authentication.

시스템 온 칩(System on Chip)을 디버깅하기 위해 디버깅 장치가 마련된다. 시스템 온 칩은 외부로부터 허용되지 않은 디버깅 장치의 접근을 차단한다. 이러한 디버깅 장치는 시스템 온 칩에서 수행되는 암호 알고리즘 등을 활용한 인증(Authentication) 과정을 통과하여야 시스템 온 칩에 대한 디버깅을 수행할 수 있다. 이때 인증 과정에서 참조되는 일부 정보는, 시스템 온 칩의 제조 과정에서, 시스템 온 칩 내부에 저장되고, 저장된 정보는 시스템 온 칩이 출하된 이후에 변경되지 않는다.A debugging device is provided to debug the system on chip. The system-on-chip blocks access of unauthorized debugging devices from the outside. Such a debugging device can perform system-on-chip debugging only when it passes an authentication process using a cryptographic algorithm or the like performed in the system-on-chip. At this time, some information referred to in the authentication process is stored inside the system-on-chip during the manufacturing process of the system-on-chip, and the stored information does not change after the system-on-chip is shipped.

그러나, 한번 저장된 정보가 유출된 경우, 시스템 온 칩에 대한 보안 기능이 무력화되는 문제점이 있다. 따라서, 시스템 온 칩이 출하된 이후에도, 필요에 따라 보안 기능과 관련된 정보를 변경할 필요가 있다.However, there is a problem in that the security function for the system-on-chip is disabled when information once stored is leaked. Therefore, even after the system-on-chip is shipped, information related to the security function needs to be changed as needed.

본 개시의 기술적 사상은, 시스템 온 칩이 출하된 후에도 인증을 위한 키를 변경하기 위한 시스템 온 칩, 보안 시스템 및 인증을 수행하는 방법을 제공한다.The technical idea of the present disclosure provides a system-on-chip for changing a key for authentication even after the system-on-chip is shipped, a security system, and a method for performing authentication.

본 개시의 기술적 사상에 따른 디버깅 동작을 수행하는 디버깅 장치에 대한 인증을 수행하는 시스템 온 칩은, 디버깅 장치로부터 인증 요청 및 입력 키 데이터를 수신하도록 구성된 디버그 포트, 키 데이터가 저장된 슬롯과 비어 있는 슬롯을 포함하는 키 저장 영역, 및 키 저장 영역에서 슬롯을 가리키는 키 지시자 데이터가 저장된 키 지시자 영역을 포함하도록 구성된 비휘발성 메모리, 그리고 인증 요청에 응답하여 키 지시자 데이터를 이용하여 키 데이터가 저장된 슬롯을 확인하고, 비휘발성 메모리로부터 키 데이터를 획득하여, 입력 키 데이터의 입력 키와 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행하도록 구성된 인증기를 포함한다.A system-on-a-chip that authenticates a debugging device performing a debugging operation according to the technical idea of the present disclosure includes a debug port configured to receive an authentication request and input key data from the debugging device, a slot in which the key data is stored, and an empty slot. A non-volatile memory configured to include a key storage area including a key storage area, and a key indicator area in which key indicator data indicating a slot in the key storage area is stored, and the slot where the key data is stored is identified using the key indicator data in response to an authentication request. and an authenticator configured to obtain key data from a non-volatile memory and perform an encryption algorithm with an input key of the input key data and an asymmetric key of the key data as inputs.

또한, 본 개시의 기술적 사상에 따른 보안 시스템은, 입력 키를 전송하는 외부 장치, 및 입력 키를 기초로 외부 장치에 대한 인증을 수행하는 시스템 온 칩을 포함하고, 시스템 온 칩은, 적어도 하나의 키 데이터가 저장된 키 저장 영역, 및 키 저장 영역에서 데이터의 저장 위치를 가리키는 키 지시자 데이터가 저장된 키 지시자 영역을 포함하도록 구성된 비휘발성 메모리, 그리고 키 지시자 데이터를 이용하여 저장 위치를 확인하고, 비휘발성 메모리로부터 저장 위치에 저장된 키 데이터를 획득하여, 입력 키와 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행하도록 구성된 인증기를 포함한다.In addition, a security system according to the technical idea of the present disclosure includes an external device that transmits an input key, and a system-on-chip that performs authentication of the external device based on the input key, and the system-on-chip includes at least one A non-volatile memory configured to include a key storage area in which key data is stored, and a key indicator area in which key indicator data indicating a storage location of data in the key storage area is stored, and the storage location is identified using the key indicator data, and an authenticator configured to obtain key data stored in a storage location from a memory and perform an encryption algorithm using an input key and an asymmetric key of the key data as input.

또한, 본 개시의 기술적 사상에 따른 외부 장치에 대한 인증을 수행하는 방법은, OTP(one time programmable) 메모리로부터 키 지시자 데이터를 획득하는 단계, 키 지시자 데이터를 이용하여 OTP 메모리에 포함된 복수의 슬롯들 중 키 데이터가 저장된 슬롯을 확인하는 단계, OTP 메모리로부터 키 데이터를 리드(read)하여 비대칭 키를 획득하는 단계, 및 외부 장치로부터 수신된 입력 키와 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행하는 단계를 포함한다.In addition, a method for authenticating an external device according to the technical idea of the present disclosure includes obtaining key indicator data from a one time programmable (OTP) memory, and using the key indicator data to perform authentication on a plurality of slots included in the OTP memory. Among them, checking the slot where the key data is stored, reading the key data from the OTP memory to obtain an asymmetric key, and using the input key received from the external device and the asymmetric key of the key data as input to perform the encryption algorithm. It includes steps to perform.

본 개시의 기술적 사상에 의하면, 시스템 온 칩이 출하된 후에도 인증을 위한 키를 변경함으로써 시스템 온 칩의 보안을 더욱 강화하는 효과가 있다.According to the technical concept of the present disclosure, by changing a key for authentication even after the system-on-chip is shipped, there is an effect of further strengthening the security of the system-on-chip.

도 1은 본 개시의 일 실시예에 따른 보안 시스템을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 보안 시스템의 동작 방법을 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시예에 따른 인증 방법을 설명하기 위한 흐름도이다.
도 4는 본 개시의 일 실시예에 따라 비대칭 키를 변경하는 방법을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 비휘발성 메모리를 설명하기 위한 도면이다.
도 6a 및 도 6b는 유효한 키 데이터를 저장하는 일 실시예를 설명하기 위한 도면이다.
도 7a, 도 7b 및 도 7c는 무효한 키 데이터를 저장하는 일 실시예를 설명하기 위한 도면이다.
도 8은 본 개시의 다른 실시예에 따른 보안 시스템을 나타낸 블록도이다.
도 9는 본 개시의 또 다른 실시예에 따른 보안 시스템을 나타낸 블록도이다.
1 is a diagram for explaining a security system according to an embodiment of the present disclosure.
2 is a diagram for explaining a method of operating a security system according to an embodiment of the present disclosure.
3 is a flowchart for explaining an authentication method according to an embodiment of the present disclosure.
4 is a diagram for explaining a method of changing an asymmetric key according to an embodiment of the present disclosure.
5 is a diagram for explaining a non-volatile memory according to an embodiment of the present disclosure.
6A and 6B are diagrams for explaining an embodiment of storing valid key data.
7A, 7B and 7C are diagrams for explaining an embodiment of storing invalid key data.
8 is a block diagram illustrating a security system according to another embodiment of the present disclosure.
9 is a block diagram illustrating a security system according to another embodiment of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 본 개시의 일 실시예에 따른 보안 시스템을 설명하기 위한 도면이다.1 is a diagram for explaining a security system according to an embodiment of the present disclosure.

도 1을 참조하면, 보안 시스템(1)은 외부 장치(10) 및 시스템 온 칩(100)을 포함할 수 있다.Referring to FIG. 1 , a security system 1 may include an external device 10 and a system on chip 100 .

외부 장치(10)는 통신 인터페이스를 통해 시스템 온 칩(100)과 통신을 수행할 수 있다. 외부 장치(10)는 시스템 온 칩(100)에 접근(access)하여 시스템 온 칩(100)에 내장된 파라미터, 시스템 온 칩(100)의 내부 정보 등을 변경하거나 정정할 수 있다. 이러한 외부 장치(10)는, 예를 들어, 호스트(host), 디버깅 장치(debugging device)로 구현될 수 있다.The external device 10 may communicate with the system on chip 100 through a communication interface. The external device 10 may access the system-on-chip 100 and change or correct parameters built into the system-on-chip 100 and internal information of the system-on-chip 100 . Such an external device 10 may be implemented as, for example, a host or a debugging device.

외부 장치(10)가 시스템 온 칩(100)의 내부 정보 등을 변경하기 위해서, 외부 장치(10)는 시스템 온 칩(100)에 의해 인증되어야 한다. 일 실시예에서, 외부 장치(10)는 시스템 온 칩(100)에 인증 요청을 전송할 수 있다. 또한, 외부 장치(10)는 인증 동작에 필요한 입력 키를 전송할 수도 있다.In order for the external device 10 to change internal information of the system on chip 100, the external device 10 must be authenticated by the system on chip 100. In one embodiment, the external device 10 may transmit an authentication request to the system on chip 100 . Also, the external device 10 may transmit an input key required for an authentication operation.

일 실시예에서, 외부 장치(10)가 디버깅 장치로 구현되는 경우, 외부 장치(10)는 JTAG(Joint Test Action Group)일 수 있다. JTAG은 디지털 회로에서 특정 노드의 디지털 입출력을 위해 직렬 통신 방식으로 출력 데이터를 전송하거나 입력데이터를 수신하는 방식을 말한다. JTAG은 임베디드 시스템(embedded system) 개발에 사용되는 디버깅 장치일 수 있다.In one embodiment, when the external device 10 is implemented as a debugging device, the external device 10 may be a Joint Test Action Group (JTAG). JTAG refers to a method of transmitting output data or receiving input data in a serial communication method for digital input/output of a specific node in a digital circuit. JTAG may be a debugging device used for developing an embedded system.

시스템 온 칩(100)은 디버그 포트(110), 인증기(120), 보안 프로세서(130), 및 비휘발성 메모리(140)를 포함할 수 있다. The system on chip 100 may include a debug port 110 , an authenticator 120 , a security processor 130 , and a non-volatile memory 140 .

디버그 포트(110)는 외부 장치(10)로부터 인증 동작 및/또는 디버깅 동작과 관련된 신호를 수신하거나 송신할 수 있다. 예를 들면, 인증 요청 및 입력 키는 디버그 포트(110)를 통해 시스템 온 칩(100)에 제공될 수 있다. The debug port 110 may receive or transmit a signal related to an authentication operation and/or a debugging operation from the external device 10 . For example, authentication requests and input keys may be provided to system on chip 100 through debug port 110 .

인증기(120)는 외부 장치(10)에 대한 인증을 수행할 수 있다. 예를 들면, 인증기(120)는 외부 장치(10)로부터 수신한 입력 키와, 미리 저장된 비대칭 키를 이용하여 인증 동작을 수행할 수 있다. 구체적으로 예를 들면, 인증기(120)는 입력 키와 비대칭 키를 입력으로, 암호화 알고리즘을 수행할 수 있다. 만약, 입력 키와 비대칭 키가 암호화 알고리즘에 의해 서로 매칭(matching)되는 경우, 외부 장치(10)에 대한 인증이 성공된 것으로 판단될 수 있다.The authenticator 120 may perform authentication on the external device 10 . For example, the authenticator 120 may perform an authentication operation using an input key received from the external device 10 and a previously stored asymmetric key. Specifically, for example, the authenticator 120 may perform an encryption algorithm using an input key and an asymmetric key. If the input key and the asymmetric key match each other by an encryption algorithm, it may be determined that authentication of the external device 10 is successful.

일 실시예에서, 인증기(120)는, 비휘발성 메모리(140)에 저장된 데이터를 획득하도록, 비휘발성 메모리(140)를 제어할 수 있다. 구체적으로 예를 들면, 인증기(120)는 리드 커맨드 및 어드레스를 비휘발성 메모리(140)에 제공하고, 비휘발성 메모리(140)가 데이터를 리드하고 리드된 데이터를 인증기(120)에 제공할 수 있다. 구체적으로 다른 예를 들면, 시스템 온 칩(100)이 부팅(또는 파워 온(power on)된 경우), 비휘발성 메모리(140)에 저장된 데이터가 인증기(120)에 제공되며 인증기(120)에 임시 저장될 수 있다.In one embodiment, the authenticator 120 may control the non-volatile memory 140 to obtain data stored in the non-volatile memory 140 . Specifically, for example, the authenticator 120 provides a read command and address to the non-volatile memory 140, the non-volatile memory 140 reads data and provides the read data to the authenticator 120. can Specifically, for another example, when the system on chip 100 is booted (or powered on), data stored in the non-volatile memory 140 is provided to the authenticator 120, and the authenticator 120 can be temporarily stored in

본 개시의 "인증기"는 "인증 프로토콜 모듈(authentication protocol module)"로 지칭될 수 있다.An "authenticator" of the present disclosure may be referred to as an "authentication protocol module".

보안 프로세서(130)는 비휘발성 메모리(140)를 제어할 수 있다. 구체적으로 예를 들면, 보안 프로세서(130)는 데이터, 쓰기 커맨드 및 어드레스를 비휘발성 메모리(140)에 제공할 수 있다. 이에 따라 데이터가 비휘발성 메모리(140)에 저장될 수 있다.The security processor 130 may control the non-volatile memory 140 . Specifically, for example, the secure processor 130 may provide data, a write command, and an address to the non-volatile memory 140 . Accordingly, data may be stored in the non-volatile memory 140 .

비휘발성 메모리(140)는 메모리 셀들 중 어드레스에 의해 선택된 메모리 셀에 대해 커맨드가 지시하는 동작을 수행할 수 있다. 여기서, 커맨드는, 예를 들어 쓰기 커맨드(또는 프로그램 커맨드), 리드 커맨드, 또는 이레이즈 커맨드일 수 있고, 커맨드가 지시하는 동작은 예를 들어 쓰기 동작(또는 프로그램 동작), 리드 동작 또는 소거 동작일 수 있다. The nonvolatile memory 140 may perform an operation indicated by a command on a memory cell selected by an address among memory cells. Here, the command may be, for example, a write command (or program command), a read command, or an erase command, and an operation indicated by the command may be, for example, a write operation (or program operation), a read operation, or an erase operation. can

비휘발성 메모리(140)는, 예를 들어, 플래시 메모리(flash memory)일 수 있다. 플래시 메모리에는, 예를 들어 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리(Vertical NAND), 노어 플래시 메모리(NOR flash memory), 저항성 램(Resistive Random Access Memory), 상변화 메모리(Phase-Change Memory), 자기저항 메모리(Magnetoresistive Random Access Memory) 등이 포함될 수 있다. 일 실시예에서, 비휘발성 메모리(140)는, OTP(one time programmable) 메모리일 수 있다.The nonvolatile memory 140 may be, for example, a flash memory. Flash memory includes, for example, NAND flash memory, vertical NAND, NOR flash memory, resistive random access memory, and phase-change memory. Change Memory), Magnetoresistive Random Access Memory, and the like may be included. In one embodiment, the non-volatile memory 140 may be one time programmable (OTP) memory.

일 실시예에서, 비휘발성 메모리(140)는 키 저장 영역(141) 및 키 지시자 영역(142)을 포함할 수 있다. 키 저장 영역(141)은 적어도 하나의 키 데이터가 저장된 영역일 수 있다. 키 지시자 영역(142)는 키 지시자 데이터가 저장된 영역일 수 있다. 키 지시자 데이터는, 키 저장 영역(141)에서 데이터의 저장 위치를 가리키는 데이터일 수 있다. 본 개시의 "저장 위치"는 키 데이터의 저장 단위일 수 있다. 본 개시의 "저장 위치"는 "슬롯"으로 지칭될 수 있다. 즉, 비휘발성 메모리(140)는 키 데이터를 저장하기 위한 복수의 슬롯들을 포함할 수 있다. 본 개시의 "키 지시자 데이터"는 "레보케이션 정보(revocation information)"으로 지칭될 수 있다.In one embodiment, the non-volatile memory 140 may include a key storage area 141 and a key indicator area 142 . The key storage area 141 may be an area in which at least one key data is stored. The key indicator area 142 may be an area where key indicator data is stored. The key indicator data may be data indicating a storage location of data in the key storage area 141 . A “storage location” of the present disclosure may be a storage unit of key data. A "storage location" in this disclosure may be referred to as a "slot". That is, the non-volatile memory 140 may include a plurality of slots for storing key data. The "key indicator data" of this disclosure may be referred to as "revocation information".

일 실시예에서, 비휘발성 메모리(140)는 키 저장 영역(141) 및 키 지시자 영역(142)을 포함하는 경우, 인증기(120)는 키 지시자 데이터를 이용하여 저장 위치를 확인할 수 있다. 그리고, 인증기(120)는 비휘발성 메모리(140)로부터 저장 위치에 저장된 키 데이터를 획득할 수 있다. 그리고, 인증기(120)는 입력 키와 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행할 수 있다.In one embodiment, when the non-volatile memory 140 includes the key storage area 141 and the key indicator area 142, the authenticator 120 may check the storage location using the key indicator data. Also, the authenticator 120 may obtain key data stored in a storage location from the non-volatile memory 140 . Then, the authenticator 120 may perform an encryption algorithm by inputting an input key and an asymmetric key of key data.

도 2는 본 개시의 일 실시예에 따른 보안 시스템의 동작 방법을 설명하기 위한 도면이다.2 is a diagram for explaining a method of operating a security system according to an embodiment of the present disclosure.

도 2를 참조하면, 외부 장치(210) 및 시스템 온 칩(220)은 도 1에 도시된 외부 장치(10) 및 시스템 온 칩(100)에 각각 대응될 수 있다.Referring to FIG. 2 , the external device 210 and the system on chip 220 may respectively correspond to the external device 10 and the system on chip 100 shown in FIG. 1 .

단계 S100에서, 외부 장치(210)는 시스템 온 칩(220)에 인증 요청을 전송한다. In step S100, the external device 210 transmits an authentication request to the system on chip 220.

단계 S110에서, 시스템 온 칩(220)은 인증 요청에 응답하여 인증 동작을 수행한다.In step S110, the system on chip 220 performs an authentication operation in response to the authentication request.

단계 S120에서, 시스템 온 칩(220)은 인증이 성공했는지 여부를 판단한다. In step S120, the system on chip 220 determines whether authentication is successful.

인증이 실패하면(S120, 아니오), 단계 S130에서, 시스템 온 칩(220)은 접근 불가를 나타내는 신호를 외부 장치(210)에 전송한다.If authentication fails (S120, No), in step S130, the system on chip 220 transmits a signal indicating inaccessibility to the external device 210.

인증이 성공하면(S120, 예), 단계 S140에서, 시스템 온 칩(220)은 접근 허용을 나타내는 신호를 외부 장치(210)에 전송한다.If the authentication succeeds (S120, Yes), in step S140, the system on chip 220 transmits a signal indicating permission of access to the external device 210.

단계 S150에서, 외부 장치(210)는 내부 정보를 획득하기 위하여 시스템 온 칩(220)에 접근 요청을 전송한다. In step S150, the external device 210 transmits an access request to the system on chip 220 to obtain internal information.

단계 S160에서, 시스템 온 칩(220)은 내부 정보를 외부 장치(210)에 송신한다.In step S160 , the system on chip 220 transmits internal information to the external device 210 .

단계 S170에서, 외부 장치(210)는 내부 정보를 기초로 디버깅 동작을 수행한다.In step S170, the external device 210 performs a debugging operation based on internal information.

단계 S180에서, 외부 장치(210)는 디버깅 정보를 시스템 온 칩(220)에 전송한다.In step S180 , the external device 210 transmits debugging information to the system on chip 220 .

이하에서는 단계 S110에 도시된 시스템 온 칩(220)의 인증 동작을 수행하는 방법을 구체적으로 설명한다.Hereinafter, a method of performing the authentication operation of the system on chip 220 shown in step S110 will be described in detail.

도 3은 본 개시의 일 실시예에 따른 인증 방법을 설명하기 위한 흐름도이다.3 is a flowchart for explaining an authentication method according to an embodiment of the present disclosure.

도 1 및 도 3을 참조하면, 단계 S111에서, 인증기(120)는 비휘발성 메모리(140)로부터 키 지시자 데이터를 획득한다. 구체적으로 예를 들면, 인증기(120)는, 리드 커맨드 및 어드레스를 비휘발성 메모리(140)에 전송하고, 비휘발성 메모리(140)는 키 지시자 데이터를 인증기(120)에 제공한다. 일 실시예에서, 비휘발성 메모리(140)가 OTP 메모리로 구현된 경우, 인증기(120)는 OTP 메모리부터 키 지시자 데이터를 획득한다.Referring to FIGS. 1 and 3 , in step S111, the authenticator 120 obtains key indicator data from the non-volatile memory 140. Specifically, for example, the authenticator 120 transmits a read command and an address to the non-volatile memory 140, and the non-volatile memory 140 provides key indicator data to the authenticator 120. In one embodiment, when non-volatile memory 140 is implemented as an OTP memory, authenticator 120 obtains key indicator data from the OTP memory.

단계 S112에서, 인증기(120)는, 키 지시자 데이터를 기초로, 인증 동작에서 사용될 키 데이터가 저장된 저장 위치를 확인한다. 일 실시예에서, 비휘발성 메모리(140)가 OTP 메모리로 구현된 경우, 인증기(120)는, 키 지시자 데이터를 이용하여 OTP 메모리에 포함된 복수의 슬롯들 중 키 데이터가 저장된 슬롯을 확인한다.In step S112, the authenticator 120 checks the storage location where the key data to be used in the authentication operation is stored, based on the key indicator data. In one embodiment, when the non-volatile memory 140 is implemented as an OTP memory, the authenticator 120 identifies a slot in which key data is stored among a plurality of slots included in the OTP memory using key indicator data. .

단계 S113에서, 인증기(120)는 비휘발성 메모리로부터 키 데이터를 획득한다. 일 실시예에서, 비휘발성 메모리(140)가 OTP 메모리로 구현된 경우, 인증기(120)는 OTP 메모리로부터 키 데이터를 리드(read)하여 비대칭 키를 획득한다. 여기서, 비대칭 키는 인증 동작에 사용될 키의 값일 수 있다.In step S113, the authenticator 120 obtains key data from the non-volatile memory. In one embodiment, when the non-volatile memory 140 is implemented as an OTP memory, the authenticator 120 reads key data from the OTP memory to obtain an asymmetric key. Here, the asymmetric key may be a value of a key to be used for an authentication operation.

단계 S114에서, 인증기(120)는 입력 키와 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행한다. 여기서, 입력 키는 외부 장치(10)로부터 수신된 키일 수 있다.In step S114, the authenticator 120 performs an encryption algorithm by inputting an input key and an asymmetric key of key data. Here, the input key may be a key received from the external device 10 .

도 4는 본 개시의 일 실시예에 따라 비대칭 키를 변경하는 방법을 설명하기 위한 도면이다.4 is a diagram for explaining a method of changing an asymmetric key according to an embodiment of the present disclosure.

도 1 및 도 4를 참조하면, 외부 장치(410) 및 시스템 온 칩(420)은 도 1에 도시된 외부 장치(10) 및 시스템 온 칩(100)에 각각 대응될 수 있다. 또는, 외부 장치(410) 및 시스템 온 칩(420)은 도 2에 도시된 외부 장치(210) 및 시스템 온 칩(220)에 각각 대응될 수 있다. 도 4에 도시된 외부 장치(410)는 시스템 온 칩(420)에 대하여 인증된 것으로 가정한다.Referring to FIGS. 1 and 4 , the external device 410 and the system on chip 420 may respectively correspond to the external device 10 and the system on chip 100 shown in FIG. 1 . Alternatively, the external device 410 and the system on chip 420 may respectively correspond to the external device 210 and the system on chip 220 shown in FIG. 2 . It is assumed that the external device 410 shown in FIG. 4 is authenticated with respect to the system on chip 420 .

단계 S200에서, 외부 장치(410)는 키 변경 커맨드 및 새로운 키 데이터를 전송한다. 도 1을 참조하여 예를 들면, 인증기(120)는, 외부 장치(10)가 인증됨에 응답하여, 디버그 포트(110)를 통해 키 변경 커맨드 및 새로운 키 데이터를 수신한다. 일 실시예에서, 새로운 키 데이터는 유효 데이터(valid data)일 수 있다. 다른 실시예에서, 새로운 키 데이터는 무효 데이터(invalid data)일 수 있다. In step S200, the external device 410 transmits a key change command and new key data. Referring to FIG. 1 , for example, the authenticator 120 receives a key change command and new key data through the debug port 110 in response to the external device 10 being authenticated. In one embodiment, the new key data may be valid data. In another embodiment, the new key data may be invalid data.

단계 S210에서, 시스템 온 칩(420)은, 키 지시자 데이터를 기초로, 비어 있는 슬롯(empty slot)을 확인한다. 도 1을 참조하여 예를 들면, 인증기(120)는 키 지시자 데이터를 이용하여 비휘발성 메모리(예를 들면, OPT 메모리)에 포함된 복수의 슬롯들 중 비어 있는 슬롯을 확인한다.In step S210, the system on a chip 420 checks an empty slot based on the key indicator data. Referring to FIG. 1 , for example, the authenticator 120 identifies an empty slot among a plurality of slots included in a non-volatile memory (eg, OPT memory) using key indicator data.

단계 S220에서, 시스템 온 칩(420)은 비어 있는 슬롯에 새로운 키 데이터를 저장한다.In step S220, the system on chip 420 stores new key data in an empty slot.

단계 S230에서, 시스템 온 칩(420)은, 새로운 키 데이터가 저장된 슬롯을 가리키기 위해, 키 지시자 데이터를 업데이트한다. In step S230, the system on chip 420 updates the key indicator data to point to the slot where the new key data is stored.

단계 S240에서, 시스템 온 칩(420)은 변경 완료 응답을 전송한다.In step S240, the system on chip 420 transmits a change completion response.

일 실시예에서, 키 지시자 데이터가 업데이트되면, 인증기(120)는 비인증된 장치로부터 새로운 인증 요청에 응답하여 새로운 키 데이터를 획득할 수 있다. 여기서, 비인증된 장치는 인증된 외부 장치(410)와 다른 장치일 수 있다.In one embodiment, when the key indicator data is updated, authenticator 120 may obtain new key data in response to a new authentication request from an unauthenticated device. Here, the unauthenticated device may be a device different from the authenticated external device 410 .

도 5는 본 개시의 일 실시예에 따른 비휘발성 메모리를 설명하기 위한 도면이다.5 is a diagram for explaining a non-volatile memory according to an embodiment of the present disclosure.

도 5를 참조하면, 비휘발성 메모리(500)는 도 1에 도시된 비휘발성 메모리(140)에 대응될 수 있다.Referring to FIG. 5 , the nonvolatile memory 500 may correspond to the nonvolatile memory 140 shown in FIG. 1 .

비휘발성 메모리(500)는 키 저장 영역(510) 및 키 지시자 영역(520)을 포함할 수 있다.The nonvolatile memory 500 may include a key storage area 510 and a key indicator area 520 .

일 실시예에서, 키 저장 영역(510)은 제1 내지 제N 슬롯들을 포함할 수 있다. N은 2 이상 정수일 수 있다. 도 5를 참조하여 예를 들면 키 저장 영역(510)은 제1 내지 제3 슬롯들(Slot#1, Slot#2, Slot#3)을 포함할 수 있다. 하지만, 이에 한정되는 것은 아니다. 이하에서는 슬롯의 개수가 3개인 것으로 가정한다. 키 저장 영역(510)은 적어도 하나의 키 데이터를 저장할 수 있다. 도 5를 참조하여 예를 들면, 제1 키 데이터(Key_1)가 제1 슬롯(Slot#1)에 저장되고, 제2 및 제3 슬롯들(Slot#2, Slot#3)은 비어 있을 수 있다. 하지만, 이에 한정되는 것은 아니다.In one embodiment, the key storage area 510 may include first through Nth slots. N may be an integer greater than or equal to 2. Referring to FIG. 5 , for example, the key storage area 510 may include first to third slots (Slot#1, Slot#2, and Slot#3). However, it is not limited thereto. Hereinafter, it is assumed that the number of slots is three. The key storage area 510 may store at least one key data. Referring to FIG. 5 , for example, the first key data (Key_1) may be stored in the first slot (Slot#1), and the second and third slots (Slot#2 and Slot#3) may be empty. . However, it is not limited thereto.

키 지시자 영역(520)은 제1 내지 제N 비트 셀들을 포함할 수 있다. 제1 내지 제N 비트 셀들은 제1 내지 제N 비트 자리에 각각 대응할 수 있다. 예를 들면, 제k 비트 셀은 제k 비트 자리에 대응될 수 있다. 여기서, k는 N 이하의 자연수일 수 있다. 도 5를 참조하여 예를 들면, 키 지시자 영역(520)은 제1 내지 제3 비트 셀들(Bit#1, Bit#2, Bit#3)을 포함할 수 있다. 하지만, 이에 한정되는 것은 아니다. 이하에서는 비트 셀의 개수가 3개인 것으로 가정한다. 이때, 키 지시자 데이터가 키 지시자 영역(520)에 저장되는 것은 제1 내지 제3 비트 셀들(Bit#1, Bit#2, Bit#3)이 각각 프로그램되거나 프리(free) 상태인 것에 대응될 수 있다. 제1 내지 제3 비트 셀들(Bit#1, Bit#2, Bit#3) 중 제1 비트 셀(Bit#1)은 MSB(Most Significant Bit)일 수 있고, 제3 비트 셀(Bit#3)은 LSB(Least Significant Bit) 대응될 수 있으나, 이에 한정되는 것은 아니다. The key indicator region 520 may include first through Nth bit cells. The first to Nth bit cells may respectively correspond to the first to Nth bit positions. For example, the kth bit cell may correspond to the kth bit position. Here, k may be a natural number less than or equal to N. Referring to FIG. 5 , for example, the key indicator area 520 may include first to third bit cells Bit#1, Bit#2, and Bit#3. However, it is not limited thereto. Hereinafter, it is assumed that the number of bit cells is three. At this time, the key indicator data being stored in the key indicator area 520 may correspond to the fact that the first to third bit cells Bit#1, Bit#2, and Bit#3 are programmed or free. there is. Among the first to third bit cells Bit#1, Bit#2, and Bit#3, the first bit cell Bit#1 may be a most significant bit (MSB), and the third bit cell Bit#3 may correspond to a least significant bit (LSB), but is not limited thereto.

제3 비트 셀(Bit#3), 제2 비트 셀(Bit#2), 및 제1 비트 셀(Bit#1)이 순차적으로 프로그램될 수 있다.The third bit cell (Bit#3), the second bit cell (Bit#2), and the first bit cell (Bit#1) may be sequentially programmed.

일 실시예에서, 제1 내지 제N 비트 셀들 중 제1 내지 제k 비트 셀들이 프로그램되면, 키 데이터가 저장된 저장 위치, 구체적으로 인증 동작에 사용될 키가 저장된 저장 위치는 제1 내지 제N 슬롯들 중 제k 슬롯일 수 있다. 제1 내지 제k 비트 셀들은 제1 내지 제k 비트 자리(k는 N 이하의 자연수)에 대응될 수 있다. 도 5를 참조하여 예를 들면, 제1 내지 제3 비트 셀들(Bit#1, Bit#2, Bit#3) 중 제3 비트 셀(Bit#3)만 프로그램되면, 인증 동작에 사용될 키가 저장된 저장 위치는 제1 내지 제3 슬롯들(Slot#1, Slot#2, Slot#3) 중 제1 슬롯((Slot#1)일 수 있다. 다른 예를 들면, 제2 비트 셀(Bit#2) 및 제3 비트 셀(Bit#3)이 프로그램되면, 인증 동작에 사용될 키가 저장된 저장 위치는 제1 내지 제3 슬롯들(Slot#1, Slot#2, Slot#3) 중 제2 슬롯((Slot#2)일 수 있다. 또 다른 예를 들면, 제1 내지 제3 비트 셀들(Bit#1, Bit#2, Bit#3)이 프로그램되면, 인증 동작에 사용될 키가 저장된 저장 위치는 제1 내지 제3 슬롯들(Slot#1, Slot#2, Slot#3) 중 제3 슬롯((Slot#3)일 수 있다.In one embodiment, when the first to kth bit cells of the first to Nth bit cells are programmed, the storage location where the key data is stored, specifically, the storage location where the key to be used for the authentication operation is stored is in the first to Nth slots. Of these, it may be the k-th slot. The first to k th bit cells may correspond to the first to k th bit positions (k is a natural number less than or equal to N). Referring to FIG. 5 , for example, when only the third bit cell (Bit#3) among the first to third bit cells (Bit#1, Bit#2, and Bit#3) is programmed, a key to be used for authentication operation is stored. The storage location may be the first slot (Slot#1) among the first to third slots (Slot#1, Slot#2, and Slot#3). For another example, the second bit cell (Bit#2 ) and the third bit cell (Bit#3) are programmed, the storage location in which the key to be used for the authentication operation is stored is the second slot (of the first to third slots (Slot#1, Slot#2, Slot#3) (Slot # 2) For another example, if the first to third bit cells (Bit # 1, Bit # 2, and Bit # 3) are programmed, the storage location where the key to be used for the authentication operation is stored is It may be the third slot ((Slot#3) among the first to third slots (Slot#1, Slot#2, and Slot#3).

도 6a 및 도 6b는 유효한 키 데이터를 저장하는 일 실시예를 설명하기 위한 도면이다.6A and 6B are diagrams for explaining an embodiment of storing valid key data.

도 6a를 참조하면, 제1 키 데이터(Key_1)는, 시스템 온 칩(600)의 제조 과정에서 비휘발성 메모리(640)에 저장된 것으로 가정한다. 제1 키 데이터(Key_1)는, 예를 들어, 키 저장 영역(641)의 제1 슬롯(Slot#1)에 저장될 수 있다. 시스템 온 칩(600)이 출하될 때, 키 저장 영역(641)의 제2 및 제3 슬롯들(Slot#2, Slot#3)은 비어 있는 것으로 가정한다. 키 지시자 영역(642)에 저장된 키 지시자 데이터는 제1 슬롯(Slot#1)을 가리킬 수 있다. 구체적으로, 키 지시자 영역(642)에 포함된 제1 내지 제3 비트 셀들(Bit#1, Bit#2, Bit#3) 중 제3 비트 셀(Bit#3)만 프로그램되고 제1 및 제1 비트 셀들(Bit#1, Bit#1)은 프리일 수 있다. Referring to FIG. 6A , it is assumed that the first key data Key_1 is stored in the non-volatile memory 640 during the manufacturing process of the system on chip 600 . The first key data Key_1 may be stored, for example, in the first slot Slot#1 of the key storage area 641 . When the system on chip 600 is shipped, it is assumed that the second and third slots Slot#2 and Slot#3 of the key storage area 641 are empty. Key indicator data stored in the key indicator area 642 may indicate the first slot (Slot#1). Specifically, only the third bit cell (Bit#3) among the first to third bit cells (Bit#1, Bit#2, and Bit#3) included in the key indicator area 642 is programmed, and the first and first Bit cells Bit#1 and Bit#1 may be free.

인증된 외부 장치(예를 들어, 도 1에 도시된 외부 장치(10))가 제2 키 데이터(Ket_2) 및 키 변경 커맨드(CCMD)를 시스템 온 칩(600)에 제공할 수 있다. 이 경우, 제2 키 데이터(Ket_2) 및 키 변경 커맨드(CCMD)는 디버그 포트(610)를 통해 인증기(620)에 전달될 수 있다. 일 실시예에서, 제2 키 데이터(Ket_2)는 유효한 데이터(valid data)일 수 있다.An authenticated external device (eg, the external device 10 shown in FIG. 1 ) may provide the second key data Ket_2 and the key change command CCMD to the system on chip 600 . In this case, the second key data Ket_2 and the key change command CCMD may be transferred to the authenticator 620 through the debug port 610 . In one embodiment, the second key data (Ket_2) may be valid data.

인증기(620)는 키 변경 커맨드(CCMD) 및 제2 키 데이터(Ket_2)를 수신할 수 있다. 그리고, 인증기(620)는 키 지시자 데이터를 이용하여 키 저장 영역(641)에서 비어 있는 저장 위치를 확인할 수 있다. 예를 들면, 키 지시자 영역(642)에서 제3 비트 셀(Bit#3)이 프로그램되고 제1 및 제2 비트 셀들(Bit#1, Bit#2)이 프리이므로, 현재 키 지시자 데이터는 제1 슬롯(Slot#1)을 가리킬 수 있다. 인증기(620)는 적어도 제2 슬롯(Slot#2)이 비어있는 것을 확인할 수 있다. 따라서, 제2 슬롯(Slot#2)이 비어 있는 저장 위치일 수 있다. 인증기(620)는 슬롯 데이터(Slot_INFO)와 제2 키 데이터(Ket_2)를 보안 프로세서(630)에 제공할 수 있다. 슬롯 데이터(Slot_INFO)는 비어 있는 저장 위치, 즉 비어 있는 슬롯을 나타내는 데이터일 수 있다. 도 6a를 참조하면, 슬롯 데이터(Slot_INFO)는 제2 슬롯(Slot#2)을 나타낼 수 있다.The authenticator 620 may receive a key change command (CCMD) and second key data (Ket_2). Also, the authenticator 620 may check an empty storage location in the key storage area 641 using the key indicator data. For example, since the third bit cell (Bit#3) is programmed in the key indicator area 642 and the first and second bit cells (Bit#1, Bit#2) are free, the current key indicator data is It may point to the slot (Slot#1). The authenticator 620 may confirm that at least the second slot (Slot#2) is empty. Accordingly, the second slot (Slot#2) may be an empty storage location. The authenticator 620 may provide slot data Slot_INFO and second key data Ket_2 to the security processor 630 . The slot data (Slot_INFO) may be data indicating an empty storage location, that is, an empty slot. Referring to FIG. 6A , slot data (Slot_INFO) may indicate a second slot (Slot#2).

보안 프로세서(630)는, 비어 있는 저장 위치(예를 들면, 제2 슬롯(Slot#2))에 대응되는 어드레스(ADD), 유효한 키 데이터(예를 들면, 제2 키 데이터(Ket_2)), 및 쓰기 커맨드(WCMD)를 비휘발성 메모리(640)에 제공할 수 있다. 비휘발성 메모리(640)는 쓰기 커맨드(WCMD)에 응답하여 비어 있는 저장 위치(예를 들면, 제2 슬롯(Slot#2))에 유효한 키 데이터(예를 들면, 제2 키 데이터(Ket_2))를 저장할 수 있다.The security processor 630 includes an address (ADD) corresponding to an empty storage location (eg, the second slot (Slot # 2)), valid key data (eg, second key data (Ket_2)), And the write command WCMD may be provided to the non-volatile memory 640 . The non-volatile memory 640 stores valid key data (eg, second key data (Ket_2)) in an empty storage location (eg, second slot (Slot#2)) in response to the write command (WCMD). can be saved.

한편, 현재 키 지시자 데이터는 제1 슬롯(Slot#1)을 가리키는데 인증 동작에 사용될 키 데이터는 제2 키 데이터(Ket_2)이므로, 키 지시자 데이터를 업데이트할 필요가 있다.Meanwhile, the current key indicator data points to the first slot (Slot#1), and since the key data to be used for the authentication operation is the second key data (Ket_2), it is necessary to update the key indicator data.

도 6b를 참조하면, 보안 프로세서(630)는 키 지시자 데이터를 업데이트하도록 비휘발성 메모리(640)를 제어할 수 있다. 구체적으로 예를 들면, 보안 프로세서(630)는 데이터(DATA), 프리 상태의 비트 셀(예를 들면, 제2 비트 셀(Bit#2))에 대응되는 어드레스(ADD), 및 쓰기 커맨드(WCMD)를 비휘발성 메모리(640)에 제공할 수 있다. 여기서, 데이터(DATA)는 프리 상태의 비트 셀을 프로그램하기 위한 것일 수 있다. 비휘발성 메모리(640)는 프리 상태의 비트 셀(예를 들면, 제2 비트 셀(Bit#2))을 프로그램할 수 있다. 제1 내지 제3 비트 셀들(Bit#1, Bit#2, Bit#3) 중 제2 및 제3 비트 셀들(Bit#2, Bit#3)이 프로그램되고 제1 비트 셀(Bit#1)은 프리이므로, 키 지시자 데이터는 제2 슬롯(Slot#2)을 가리킬 수 있다.Referring to FIG. 6B , the security processor 630 may control the non-volatile memory 640 to update key indicator data. Specifically, for example, the security processor 630 includes data DATA, an address ADD corresponding to a bit cell in a free state (eg, the second bit cell Bit#2), and a write command WCMD. ) can be provided to the non-volatile memory 640. Here, the data DATA may be for programming a bit cell in a free state. The nonvolatile memory 640 may program a bit cell (eg, the second bit cell Bit#2) in a free state. Among the first to third bit cells Bit#1, Bit#2, and Bit#3, the second and third bit cells Bit#2 and Bit#3 are programmed, and the first bit cell Bit#1 Since it is free, the key indicator data may indicate the second slot (Slot#2).

인증기(620)는 키 변경 커맨드(CCMD)에 대한 응답(RPN)을 디버그 포트(610)를 통해 인증된 외부 장치(예를 들어, 도 1에 도시된 외부 장치(10))에 전송할 수 있다.The authenticator 620 may transmit a response (RPN) to the key change command (CCMD) to an authenticated external device (eg, the external device 10 shown in FIG. 1) through the debug port 610. .

키 지시자 데이터가 업데이트되면, 인증기(620)는, 새로운 인증 요청에 응답하여, 비휘발성 메모리(640)로부터 제2 키 데이터(Ket_2)를 획득할 수 있다. When the key indicator data is updated, the authenticator 620 may obtain second key data Ket_2 from the non-volatile memory 640 in response to the new authentication request.

전술한 바에 의하면, 시스템 온 칩(600)이 출하된 후, 인증을 위한 키를 변경함으로써 시스템 온 칩(600)의 보안을 더욱 강화하는 효과가 있다.As described above, there is an effect of further strengthening the security of the system on chip 600 by changing a key for authentication after the system on chip 600 is shipped.

도 7a, 도 7b, 및 도 7c는 무효한 키 데이터를 저장하는 일 실시예를 설명하기 위한 도면이다.7A, 7B, and 7C are diagrams for explaining an embodiment of storing invalid key data.

도 7a를 참조하면, 제1 키 데이터(Key_1)는 시스템 온 칩(600)의 제조 과정에서 키 저장 영역(641)의 제1 슬롯(Slot#1)에 저장된 것으로 가정한다. 또한, 키 저장 영역(641)의 제2 및 제3 슬롯들(Slot#2, Slot#3)은, 시스템 온 칩(600)이 출하될 때, 비어 있었던 것으로 가정한다.Referring to FIG. 7A , it is assumed that the first key data (Key_1) is stored in the first slot (Slot#1) of the key storage area 641 during the manufacturing process of the system on chip 600. Also, it is assumed that the second and third slots Slot#2 and Slot#3 of the key storage area 641 are empty when the system on chip 600 is shipped.

도 7b를 참조하면, 인증된 외부 장치(예를 들어, 도 1에 도시된 외부 장치(10))가 무효한 키 데이터(IVD_KEY) 및 키 변경 커맨드(CCMD)를 시스템 온 칩(600)에 제공할 수 있다. 일 실시예에서, 무효한 키 데이터(IVD_KEY)는 예를 들어 임의의 값을 갖는 데이터일 수 있다. 또는, 일 실시예에서, 무효한 키 데이터(IVD_KEY)는 더미 데이터(dummy data)일 수 있다.Referring to FIG. 7B , an authenticated external device (eg, the external device 10 shown in FIG. 1 ) provides invalid key data (IVD_KEY) and a key change command (CCMD) to the system-on-chip 600. can do. In one embodiment, the invalid key data (IVD_KEY) may be data having an arbitrary value, for example. Alternatively, in one embodiment, the invalid key data (IVD_KEY) may be dummy data.

인증기(620)는 디버그 포트(610)를 통해 키 변경 커맨드(CCMD) 및 무효한 키 데이터(IVD_KEY)를 수신할 수 있다. 그리고, 인증기(620)는 키 지시자 데이터를 이용하여 키 저장 영역(641)에서 비어 있는 저장 위치(예를 들면, 제2 슬롯(Slot#2))를 확인할 수 있다. 인증기(620)는 슬롯 데이터(Slot_INFO)와 무효한 키 데이터(IVD_KEY)를 보안 프로세서(630)에 제공할 수 있다 도 7a를 참조하면, 슬롯 데이터(Slot_INFO)는 제2 슬롯(Slot#2)을 나타낼 수 있다.The authenticator 620 may receive a key change command (CCMD) and invalid key data (IVD_KEY) through the debug port 610 . Also, the authenticator 620 may check an empty storage location (eg, the second slot (Slot #2)) in the key storage area 641 using the key indicator data. The authenticator 620 may provide slot data (Slot_INFO) and invalid key data (IVD_KEY) to the security processor 630. Referring to FIG. 7A, the slot data (Slot_INFO) is the second slot (Slot#2). can represent

보안 프로세서(630)는, 비어 있는 저장 위치(예를 들면, 도 7a에 도시된 제2 슬롯(Slot#2))에 대응되는 어드레스(ADD), 무효한 키 데이터(IVD_KEY), 및 쓰기 커맨드(WCMD)를 비휘발성 메모리(640)에 제공할 수 있다. The security processor 630 includes an address (ADD) corresponding to an empty storage location (eg, the second slot (Slot # 2) shown in FIG. 7A), invalid key data (IVD_KEY), and a write command ( WCMD) to the non-volatile memory 640.

도 7c를 참조하면, 보안 프로세서(630)는 키 지시자 데이터를 업데이트하도록 비휘발성 메모리(640)를 제어할 수 있다. 구체적으로 예를 들면, 보안 프로세서(630)는 데이터(DATA), 프리 상태의 비트 셀(예를 들면, 제2 비트 셀(Bit#2))에 대응되는 어드레스(ADD), 및 쓰기 커맨드(WCMD)를 비휘발성 메모리(640)에 제공할 수 있다. 제1 내지 제3 비트 셀들(Bit#1, Bit#2, Bit#3) 중 제2 및 제3 비트 셀들(Bit#2, Bit#3)이 프로그램되고 제1 비트 셀(Bit#1)은 프리이므로, 키 지시자 데이터는 제2 슬롯(Slot#2)을 가리킬 수 있다.Referring to FIG. 7C , the security processor 630 may control the non-volatile memory 640 to update key indicator data. Specifically, for example, the security processor 630 includes data DATA, an address ADD corresponding to a bit cell in a free state (eg, the second bit cell Bit#2), and a write command WCMD. ) can be provided to the non-volatile memory 640. Among the first to third bit cells Bit#1, Bit#2, and Bit#3, the second and third bit cells Bit#2 and Bit#3 are programmed, and the first bit cell Bit#1 Since it is free, the key indicator data may indicate the second slot (Slot#2).

인증기(620)는 키 변경 커맨드(CCMD)에 대한 응답(RPN)을 디버그 포트(610)를 통해 인증된 외부 장치(예를 들어, 도 1에 도시된 외부 장치(10))에 전송할 수 있다.The authenticator 620 may transmit a response (RPN) to the key change command (CCMD) to an authenticated external device (eg, the external device 10 shown in FIG. 1) through the debug port 610. .

시스템 온 칩(600)은 무효한 키 데이터(IVD_KEY)를 이용하여 인증 동작을 수행하므로, 비인증된 외부 장치의 인증을 방지할 수 있다.Since the system on chip 600 performs an authentication operation using invalid key data (IVD_KEY), authentication of an unauthorized external device can be prevented.

전술한 바에 의하면, 시스템 온 칩(600)이 출하된 후, 인증을 위한 키를 무효 데이터로 변경함으로써 해킹을 방지하는 효과가 있다.As described above, after the system on chip 600 is shipped, the key for authentication is changed to invalid data, thereby preventing hacking.

도 8은 본 개시의 다른 실시예에 따른 보안 시스템을 나타낸 블록도이다.8 is a block diagram illustrating a security system according to another embodiment of the present disclosure.

도 8을 참조하면, 보안 시스템(3)은 시스템 온 칩(1000), 외부 디버거(1051), 디스플레이 장치(1550), 외부 메모리(1850), 및 전원 관리 집적 회로(PMIC; power management integrated circuit)(1950)를 포함할 수 있다.Referring to FIG. 8 , the security system 3 includes a system on chip 1000, an external debugger 1051, a display device 1550, an external memory 1850, and a power management integrated circuit (PMIC). (1950).

외부 디버거(1051)는 도 1에 도시된 외부 장치(10)에 대응될 수 있다. 외부 디버거(1051)는 시스템 온 칩(1000)에 인증 요청 및 입력 키 데이터를 송신할 수 있다. 외부 디버거(1051)가 인증되면, 외부 디버거(1051)는 시스템 온 칩(1000)의 내부 정보를 획득하고 내부 정보를 기초로 디버깅 동작을 수행할 수 있다.The external debugger 1051 may correspond to the external device 10 shown in FIG. 1 . The external debugger 1051 may transmit an authentication request and input key data to the system on chip 1000 . If the external debugger 1051 is authenticated, the external debugger 1051 may obtain internal information of the system on chip 1000 and perform a debugging operation based on the internal information.

시스템 온 칩(1000), 디스플레이 장치(1550), 외부 메모리(1850), 및 PMIC (1950)는, 휴대 가능한 장치(handheld device)로 구현될 수 있다. 휴대 가능한 장치는, 이동 전화기, 스마트폰, 태블릿 PC (tablet personal computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대 가능한 게임 콘솔(handheld game console), 또는 e-북(e-book) 등을 포함할 수 있다.The system on chip 1000, the display device 1550, the external memory 1850, and the PMIC 1950 may be implemented as a handheld device. Portable devices include a mobile phone, a smart phone, a tablet personal computer (PDA), a personal digital assistant (PDA), an enterprise digital assistant (EDA), a digital still camera, and a digital video camera. , a portable multimedia player (PMP), a personal navigation device or portable navigation device (PND), a handheld game console, or an e-book.

시스템 온 칩(1000)은 인증 프로토콜 모듈(1001), 중앙 처리 장치(CPU; central processing unit)(1100), 보안 컨트롤러(1101), 뉴럴 네트워크 처리 장치(NPU; neural processing unit)(1200), 그래픽 처리 장치(GPU; Graphics Processing Unit)(1300), 타이머(1400), 디스플레이 컨트롤러(1500), RAM(random access memory)(1600), ROM(read only memory)(1700), 메모리 컨트롤러(1800), 클럭 관리 유닛(CMU; clock management unit)(1900), 및 버스(1050)를 포함할 수 있다. 시스템 온 칩(1000)은 도시된 구성 요소 이외에 다른 구성 요소들을 더 포함할 수 있다. The system-on-chip 1000 includes an authentication protocol module 1001, a central processing unit (CPU) 1100, a security controller 1101, a neural processing unit (NPU) 1200, graphics A graphics processing unit (GPU) 1300, a timer 1400, a display controller 1500, a random access memory (RAM) 1600, a read only memory (ROM) 1700, a memory controller 1800, A clock management unit (CMU) 1900 and a bus 1050 may be included. The system on chip 1000 may further include other components in addition to the illustrated components.

인증 프로토콜 모듈(1001)은 도 1에 도시된 인증기(120)에 대응될 수 있다.The authentication protocol module 1001 may correspond to the authenticator 120 shown in FIG. 1 .

CPU(1100)는 프로세서(processor)라고도 불릴 수 있고, 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(1100)는 CMU(1900)로부터 출력된 동작 클럭 신호에 응답하여 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다.The CPU 1100 may also be called a processor and may process or execute programs and/or data stored in the external memory 1850 . For example, the CPU 1100 may process or execute programs and/or data in response to an operation clock signal output from the CMU 1900 .

CPU(1100)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. ROM(1700), RAM(1600), 및/또는 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(1100)의 메모리(미도시)에 로드(load)될 수 있다.The CPU 1100 may be implemented as a multi-core processor. A multi-core processor is a computing component having two or more independent substantive processors (called 'cores'), each of which executes program instructions. can read and execute. Programs and/or data stored in the ROM 1700, the RAM 1600, and/or the external memory 1850 may be loaded into a memory (not shown) of the CPU 1100 as needed.

보안 컨트롤러(1101)는 CPU(1100)의 제어에 의해, ROM(1700), RAM(1600), 및/또는 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터를 읽을 수 있다. 또는, 보안 컨트롤러(1101)는 CPU(1100)의 제어에 의해, ROM(1700), RAM(1600), 및/또는 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터를 저장할 수 있다. CPU(1100) 및 보안 컨트롤러(1101)는 도 1에 도시된 보안 프로세서(130)에 포함될 수 있다.The security controller 1101 may read programs and/or data stored in the ROM 1700 , the RAM 1600 , and/or the external memory 1850 under the control of the CPU 1100 . Alternatively, the security controller 1101 may store programs and/or data stored in the ROM 1700 , the RAM 1600 , and/or the external memory 1850 under the control of the CPU 1100 . The CPU 1100 and the security controller 1101 may be included in the security processor 130 shown in FIG. 1 .

NPU(1200)는 인공 신경망을 이용하여 대규모 연산을 효율적으로 처리할 수 있다. NPU(1200)는 동시다발적인 행렬 연산을 지원함으로써 딥 러닝(deep learning)을 수행할 수 있다. The NPU 1200 can efficiently process large-scale calculations using an artificial neural network. The NPU 1200 may perform deep learning by supporting simultaneous matrix operations.

GPU(1300)는 메모리 컨트롤러(1800)에 의해 외부 메모리(1850)로부터 리드 된 데이터(read data)를 디스플레이 장치(1550)에 적합한 신호로 변환할 수 있다.The GPU 1300 may convert read data read from the external memory 1850 by the memory controller 1800 into a signal suitable for the display device 1550 .

타이머(1400)는 CMU(1900)로부터 출력된 동작 클럭 신호에 기초하여 시간을 나타내는 카운트 값을 출력할 수 있다.The timer 1400 may output a count value representing time based on an operation clock signal output from the CMU 1900 .

디스플레이 장치(1550)는 디스플레이 컨트롤러(1500)로부터 출력된 이미지 신호들을 디스플레이할 수 있다. 예컨대, 디스플레이 장치(1550)는 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 또는 플렉시블(flexible) 디스플레이로 구현될 수 있다. 디스플레이 컨트롤러(1500)는 디스플레이 장치(1550)의 동작을 제어할 수 있다.The display device 1550 may display image signals output from the display controller 1500 . For example, the display device 1550 may be implemented as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic LED (OLED) display, an active-matrix OLED (AMOLED) display, or a flexible display. . The display controller 1500 may control the operation of the display device 1550.

RAM(1600)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리에 저장된 프로그램들 및/또는 데이터는 CPU(1100)의 제어에 따라 또는 ROM(1700)에 저장된 부팅 코드(booting code)에 따라 RAM(1600)에 일시적으로 저장될 수 있다. RAM(1600)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.RAM 1600 may temporarily store programs, data, or instructions. For example, programs and/or data stored in the memory may be temporarily stored in the RAM 1600 under the control of the CPU 1100 or according to booting codes stored in the ROM 1700 . The RAM 1600 may be implemented as dynamic RAM (DRAM) or static RAM (SRAM).

ROM(1700)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(1700)은 EPROM(erasable programmable read-only memory) 또는 EEPROM (electrically erasable programmable read-only memory)으로 구현될 수 있다. ROM 1700 may store permanent programs and/or data. The ROM 1700 may be implemented as an erasable programmable read-only memory (EPROM) or electrically erasable programmable read-only memory (EEPROM).

일 실시예에서, ROM(1700)은 OTP 메모리로 구현될 수 있다. ROM(1700)은 도 1에 도시된 비휘발성 메모리(140)에 대응될 수 있다.In one embodiment, ROM 1700 may be implemented as an OTP memory. The ROM 1700 may correspond to the nonvolatile memory 140 shown in FIG. 1 .

메모리 컨트롤러(1800)는 인터페이스를 통해 외부 메모리(1850)와 통신할 수 있다. 메모리 컨트롤러(1800)는 외부 메모리(1850)의 동작을 전반적으로 제어하며, 호스트와 외부 메모리(1850) 사이의 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(1800)는 호스트의 요청에 따라 외부 메모리(1850)에 데이터를 쓰거나 외부 메모리(1850)로부터 데이터를 읽을 수 있다. 여기서, 호스트는 CPU(1100), GPU(1300), 또는 디스플레이 컨트롤러(1500)와 같은 마스터(master) 장치일 수 있다.The memory controller 1800 may communicate with the external memory 1850 through an interface. The memory controller 1800 controls overall operations of the external memory 1850 and controls data exchange between the host and the external memory 1850 . For example, the memory controller 1800 may write data to or read data from the external memory 1850 according to a request of a host. Here, the host may be a master device such as the CPU 1100 , the GPU 1300 , or the display controller 1500 .

외부 메모리(1850)는 데이터를 저장하기 위한 저장 매체(storage medium)로서, OS(Operating System), 각종 프로그램들, 및/또는 각종 데이터를 저장할 수 있다. 외부 메모리(1850)는 예컨대 DRAM 일수 있으나 이에 한정되는 것은 아니다. 예를 들어, 외부 메모리(1850)는 비휘발성 메모리 장치(예컨대, 플래시 메모리, PRAM(phase change RAM), MRAM(magnetic RAM), RRAM (resistive RAM), 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시 예에서 외부 메모리(1850)는 시스템 온 칩(1000)의 내부에 구비되는 내장 메모리일 수 있다. 또한, 외부 메모리(1850)는 플래시 메모리, eMMC(embedded multimedia card), 또는 UFS(universal flash storage)일 수 있다.The external memory 1850 is a storage medium for storing data, and may store an Operating System (OS), various programs, and/or various data. The external memory 1850 may be, for example, DRAM, but is not limited thereto. For example, the external memory 1850 may be a nonvolatile memory device (eg, a flash memory, phase change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM), or FeRAM device). In another embodiment of the present invention, the external memory 1850 may be a built-in memory provided inside the system on chip 1000. Also, the external memory 1850 may be a flash memory, an embedded multimedia card (eMMC), or universal flash storage (UFS).

CMU(1900)는 동작 클럭 신호를 생성한다. CMU(1900)는 위상 동기 루프(PLL; phase locked loop), 지연 동기 루프(DLL; delayed locked loop), 또는 크리스탈 오실레이터 등과 같은 클럭 신호 생성 장치를 포함할 수 있다.The CMU 1900 generates an operating clock signal. The CMU 1900 may include a clock signal generator such as a phase locked loop (PLL), a delayed locked loop (DLL), or a crystal oscillator.

동작 클럭 신호는 GPU(1300)로 공급될 수 있다. 물론, 동작 클럭 신호는 다른 구성 요소(예컨대, CPU(1100) 또는 메모리 컨트롤러(1800) 등)로 공급될 수도 있다. CMU(1900)는 동작 클럭 신호의 주파수를 변경할 수 있다.An operating clock signal may be supplied to the GPU 1300 . Of course, the operation clock signal may be supplied to other components (eg, the CPU 1100 or the memory controller 1800). The CMU 1900 may change the frequency of the operating clock signal.

CPU(1100), NPU(1200), GPU(1300), 타이머(1400), 디스플레이 컨트롤러(1500), RAM(1600), ROM(1700), 메모리 컨트롤러(1800), CMU(1900) 각각은 버스(1050)를 통하여 서로 통신할 수 있다.Each of the CPU 1100, NPU 1200, GPU 1300, timer 1400, display controller 1500, RAM 1600, ROM 1700, memory controller 1800, and CMU 1900 is a bus ( 1050) to communicate with each other.

PMIC(1950)가 시스템 온 칩(1000)의 외부에 구현될 수 있다. 하지만, 이에 한정되는 것은 아니며, PMIC(1950)의 기능을 수행할 수 있는 전력 관리 유닛(PMU; power management unit)이 시스템 온 칩(1000)에 포함될 수도 있다.The PMIC 1950 may be implemented outside the system on a chip 1000 . However, it is not limited thereto, and a power management unit (PMU) capable of performing the function of the PMIC 1950 may be included in the system-on-chip 1000 .

도 9는 본 개시의 또 다른 실시예에 따른 보안 시스템을 나타낸 블록도이다.9 is a block diagram illustrating a security system according to another embodiment of the present disclosure.

도 9를 참조하면, 보안 시스템(4)은 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치로 구현될 수 있다.Referring to FIG. 9 , the security system 4 may be implemented as a personal computer (PC), a data server, or a portable electronic device.

보안 시스템(4)은 시스템 온 칩(2000), 카메라 모듈(2100), 디스플레이(2200), 파워 소스(2300), 입출력 포트(2400), 메모리(2500), 스토리지(2600), 외부 메모리(2700), 및 네트워크 장치(2800)를 포함할 수 있다.The security system 4 includes a system on chip 2000, a camera module 2100, a display 2200, a power source 2300, an input/output port 2400, a memory 2500, a storage 2600, and an external memory 2700. ), and a network device 2800.

카메라 모듈(2100)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈로부터 출력된 전기적인 이미지는 스토리지(2600), 메모리(2500), 또는 외부 메모리(2700)에 저장될 수 있다. 또한, 카메라 모듈로부터 출력된 전기적인 이미지는 디스플레이(2200)를 통하여 표시될 수 있다.The camera module 2100 refers to a module capable of converting an optical image into an electrical image. Accordingly, the electrical image output from the camera module may be stored in the storage 2600 , the memory 2500 , or the external memory 2700 . Also, an electrical image output from the camera module may be displayed through the display 2200 .

디스플레이(2200)는 스토리지(2600), 메모리(2500), 입출력 포트(2400), 외부 메모리(2700), 또는 네트워크 장치(2800)로부터 출력된 데이터를 디스플레이(2200)할 수 있다. 디스플레이(2200)는 도 8에 도시된 디스플레이 장치(1550)일 수 있다.The display 2200 may display 2200 data output from the storage 2600 , the memory 2500 , the input/output port 2400 , the external memory 2700 , or the network device 2800 . The display 2200 may be the display device 1550 shown in FIG. 8 .

파워 소스(2300)는 구성 요소들 중 적어도 하나로 동작 전압을 공급할 수 있다. 파워 소스(2300)는 도 8에 도시된 PMIC(1950)에 의해 제어될 수 있다.The power source 2300 may supply an operating voltage to at least one of the components. Power source 2300 may be controlled by PMIC 1950 shown in FIG. 8 .

입출력 포트(2400)는 보안 시스템(4)으로 데이터를 전송하거나 또는 보안 시스템(4)로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트(2400)는 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.The input/output port 2400 refers to ports capable of transmitting data to the security system 4 or data output from the security system 4 to an external device. For example, the input/output port 2400 may be a port for connecting a pointing device such as a computer mouse, a port for connecting a printer, or a port for connecting a USB drive.

메모리(2500)는 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있다. 실시 예에 따라, 메모리(2500)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 시스템 온 칩(2000)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 메모리 컨트롤러는 시스템 온 칩(2000)과 메모리(2500) 사이에 구현될 수 있다.The memory 2500 may be implemented as volatile memory or non-volatile memory. According to an embodiment, a memory controller capable of controlling a data access operation for the memory 2500, eg, a read operation, a write operation (or program operation), or an erase operation, is integrated or embedded in the system-on-chip 2000. It can be. According to another embodiment, the memory controller may be implemented between the system on chip 2000 and the memory 2500 .

스토리지(2600)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.The storage 2600 may be implemented as a hard disk drive or a solid state drive (SSD).

외부 메모리(2700)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 외부 메모리(2700)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity module) 카드일 수 있다.The external memory 2700 may be implemented as a secure digital (SD) card or a multimedia card (MMC). According to embodiments, the external memory 2700 may be a subscriber identification module (SIM) card or a universal subscriber identity module (USIM) card.

네트워크 장치(2800)는 보안 시스템(4)를 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.The network device 2800 refers to a device capable of connecting the security system 4 to a wired network or a wireless network.

전술한 바에 의하면, 시스템 온 칩이 출하된 후에도 인증을 위한 키를 변경함으로써 시스템 온 칩의 보안을 더욱 강화하는 효과가 있다.As described above, there is an effect of further strengthening the security of the system on chip by changing a key for authentication even after the system on chip is shipped.

이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As above, exemplary embodiments have been disclosed in the drawings and specifications. Although the embodiments have been described using specific terms in this specification, they are only used for the purpose of explaining the technical idea of the present disclosure, and are not used to limit the scope of the present disclosure described in the claims. . Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical scope of protection of the present disclosure should be determined by the technical spirit of the appended claims.

Claims (10)

디버깅 동작을 수행하는 디버깅 장치에 대한 인증을 수행하는 시스템 온 칩에 있어서,
상기 디버깅 장치로부터 인증 요청 및 입력 키 데이터를 수신하도록 구성된 디버그 포트;
키 데이터가 저장된 슬롯과 비어 있는 슬롯을 포함하는 키 저장 영역, 및 상기 키 저장 영역에서 슬롯을 가리키는 키 지시자 데이터가 저장된 키 지시자 영역을 포함하도록 구성된 비휘발성 메모리; 및
상기 인증 요청에 응답하여 상기 키 지시자 데이터를 이용하여 상기 키 데이터가 저장된 슬롯을 확인하고, 상기 비휘발성 메모리로부터 상기 키 데이터를 획득하고, 상기 입력 키 데이터의 입력 키와 상기 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행하도록 구성된 인증기를 포함하는, 시스템 온 칩.
In a system-on-chip that authenticates a debugging device performing a debugging operation,
a debug port configured to receive an authentication request and input key data from the debugging device;
a nonvolatile memory configured to include a key storage area including a slot in which key data is stored and an empty slot, and a key indicator area in which key indicator data indicating a slot in the key storage area is stored; and
In response to the authentication request, a slot in which the key data is stored is identified using the key indicator data, the key data is obtained from the non-volatile memory, and an input key of the input key data and an asymmetric key of the key data are obtained. A system on a chip comprising an authenticator configured to perform a cryptographic algorithm on input.
제1 항에 있어서,
상기 키 저장 영역은,
제1 내지 제N 슬롯들을 포함하고(N은 2 이상의 정수),
상기 키 지시자 영역은,
제1 내지 제N 비트 자리에 각각 대응하는 제1 내지 제N 비트 셀들을 포함하는 것을 특징으로 하는, 시스템 온 칩.
According to claim 1,
The key storage area,
It includes first to Nth slots (N is an integer greater than or equal to 2),
The key indicator area,
A system on a chip comprising first to Nth bit cells corresponding to first to Nth bit positions, respectively.
제2 항에 있어서,
상기 키 데이터가 저장된 슬롯은,
상기 제1 내지 제N 비트 셀들 중 제1 내지 제k 비트 자리(k는 N 이하의 자연수)에 대응되는 제1 내지 제k 비트 셀들이 프로그램되면, 상기 제1 내지 제N 슬롯들 중 제k 슬롯인 것을 특징으로 하는, 시스템 온 칩.
According to claim 2,
The slot where the key data is stored,
When the first to kth bit cells corresponding to the first to kth bit positions (k is a natural number less than or equal to N) among the first to Nth bit cells are programmed, the kth slot among the first to Nth slots is programmed. Characterized in that, a system on a chip.
제1 항에 있어서,
상기 비휘발성 메모리를 제어하도록 구성된 보안 프로세서를 더 포함하는 것을 특징으로 하는, 시스템 온 칩.
According to claim 1,
and a secure processor configured to control the non-volatile memory.
제4 항에 있어서,
상기 인증기는,
상기 디버깅 장치가 인증되면, 상기 디버깅 장치로부터 키 변경 커맨드 및 유효한 키 데이터를 수신하고,
상기 키 지시자 데이터를 이용하여 상기 키 저장 영역에서 상기 비어 있는 슬롯을 확인하고,
상기 비어 있는 슬롯을 가리키는 슬롯 데이터 및 상기 유효한 키 데이터를 상기 보안 프로세서에 제공하고,
상기 보안 프로세서는,
상기 비어 있는 슬롯에 대응되는 어드레스, 상기 유효한 키 데이터, 및 쓰기 커맨드를 상기 비휘발성 메모리에 제공하고,
상기 키 지시자 데이터를 업데이트하도록 상기 비휘발성 메모리를 제어하는 것을 특징으로 하는, 시스템 온 칩.
According to claim 4,
The authenticator,
When the debugging device is authenticated, receiving a key change command and valid key data from the debugging device;
Checking the empty slot in the key storage area using the key indicator data;
providing the slot data indicating the empty slot and the valid key data to the secure processor;
The security processor,
providing an address corresponding to the empty slot, the valid key data, and a write command to the non-volatile memory;
and controlling the non-volatile memory to update the key indicator data.
제5 항에 있어서,
상기 인증기는,
상기 키 지시자 데이터가 업데이트되면, 상기 디버그 포트를 통해 수신된 새로운 인증 요청에 응답하여 상기 유효한 키 데이터를 획득하는 것을 특징으로 하는, 시스템 온 칩.
According to claim 5,
The authenticator,
and obtaining the valid key data in response to a new authentication request received through the debug port when the key indicator data is updated.
제4 항에 있어서,
상기 인증기는,
상기 디버깅 장치가 인증되면, 상기 디버깅 장치로부터 키 변경 커맨드 및 무효한 키 데이터를 수신하고,
상기 키 지시자 데이터를 이용하여 상기 키 저장 영역에서 비어 있는 슬롯을 확인하고,
상기 비어 있는 슬롯을 가리키는 슬롯 데이터 및 상기 무효한 키 데이터를 상기 보안 프로세서에 제공하고,
상기 보안 프로세서는,
상기 비어 있는 슬롯에 대응되는 어드레스, 상기 무효한 키 데이터, 및 쓰기 커맨드를 상기 비휘발성 메모리에 제공하고,
상기 키 지시자 데이터를 업데이트하도록 상기 비휘발성 메모리를 제어하는 것을 특징으로 하는, 시스템 온 칩.
According to claim 4,
The authenticator,
When the debugging device is authenticated, receiving a key change command and invalid key data from the debugging device;
Checking an empty slot in the key storage area using the key indicator data;
providing slot data indicating the empty slot and invalid key data to the secure processor;
The security processor,
providing an address corresponding to the empty slot, the invalid key data, and a write command to the non-volatile memory;
and controlling the non-volatile memory to update the key indicator data.
제1 항에 있어서,
상기 비휘발성 메모리는,
OTP(one time programmable) 메모리인 것을 특징으로 하는, 시스템 온 칩.
According to claim 1,
The non-volatile memory,
A system on a chip, characterized in that it is a one time programmable (OTP) memory.
입력 키를 전송하는 외부 장치; 및
상기 입력 키를 기초로 상기 외부 장치에 대한 인증을 수행하는 시스템 온 칩을 포함하고,
상기 시스템 온 칩은,
적어도 하나의 키 데이터가 저장된 키 저장 영역, 및 상기 키 저장 영역에서 데이터의 저장 위치를 가리키는 키 지시자 데이터가 저장된 키 지시자 영역을 포함하도록 구성된 비휘발성 메모리; 및
상기 키 지시자 데이터를 이용하여 상기 저장 위치를 확인하고, 상기 비휘발성 메모리로부터 상기 저장 위치에 저장된 키 데이터를 획득하고, 상기 입력 키와 상기 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행하도록 구성된 인증기를 포함하는, 보안 시스템.
an external device that transmits an input key; and
A system-on-chip performing authentication of the external device based on the input key;
The system on a chip,
a nonvolatile memory configured to include a key storage area in which at least one key data is stored, and a key indicator area in which key indicator data indicating a storage location of data in the key storage area is stored; and
Authentication configured to identify the storage location using the key indicator data, obtain key data stored in the storage location from the non-volatile memory, and perform an encryption algorithm using the input key and an asymmetric key of the key data as inputs. A security system that includes a ki.
외부 장치에 대한 인증을 수행하는 방법에 있어서,
OTP(one time programmable) 메모리로부터 키 지시자 데이터를 획득하는 단계;
상기 키 지시자 데이터를 이용하여 상기 OTP 메모리에 포함된 복수의 슬롯들 중 키 데이터가 저장된 슬롯을 확인하는 단계;
상기 OTP 메모리로부터 상기 키 데이터를 리드(read)하여 비대칭 키를 획득하는 단계; 및
상기 외부 장치로부터 수신된 입력 키와 상기 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행하는 단계를 포함하는, 방법.
A method for authenticating an external device,
obtaining key indicator data from a one time programmable (OTP) memory;
checking a slot in which key data is stored among a plurality of slots included in the OTP memory using the key indicator data;
obtaining an asymmetric key by reading the key data from the OTP memory; and
And performing an encryption algorithm with an input key received from the external device and an asymmetric key of the key data as an input.
KR1020220051028A 2021-12-14 2022-04-25 System on chip, security system, and method for performing authentication KR20230090210A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/994,594 US20230188326A1 (en) 2021-12-14 2022-11-28 System on chip, security system, and method of performing authentication
CN202211584799.4A CN116264526A (en) 2021-12-14 2022-12-09 System on chip, security system and method for performing authentication

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210178880 2021-12-14
KR20210178880 2021-12-14

Publications (1)

Publication Number Publication Date
KR20230090210A true KR20230090210A (en) 2023-06-21

Family

ID=86989916

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220051028A KR20230090210A (en) 2021-12-14 2022-04-25 System on chip, security system, and method for performing authentication

Country Status (1)

Country Link
KR (1) KR20230090210A (en)

Similar Documents

Publication Publication Date Title
US10747687B2 (en) Storage system and method for performing and authenticating write-protection thereof
US9094190B2 (en) Method of managing key for secure storage of data and apparatus therefor
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
US8914627B2 (en) Method for generating a secured boot image including an update boot loader for a secured update of the version information
US9658858B2 (en) Multi-threaded low-level startup for system boot efficiency
US11070380B2 (en) Authentication apparatus based on public key cryptosystem, mobile device having the same and authentication method
US20090285390A1 (en) Integrated circuit with secured software image and method therefor
CN101276389B (en) Separation of logical trusted platform modules within a single physical trusted platform module
US10311236B2 (en) Secure system memory training
CN112789574B (en) Secure boot via system and power management microcontroller
US20230059382A1 (en) Electronic device
US11068599B2 (en) Secure initialization using embedded controller (EC) root of trust
KR20210091585A (en) Electronic device performing firmware update based on user authentication and operating method thereof
TW201543491A (en) System and method for modification of coded instructions in read-only memory using one-time programmable memory
US20230259629A1 (en) Secure programming of one-time-programmable (otp) memory
KR20230090210A (en) System on chip, security system, and method for performing authentication
US20230188326A1 (en) System on chip, security system, and method of performing authentication
US11726795B2 (en) Concurrent image measurement and execution
US11113399B2 (en) Electronic apparatus and control method of electronic apparatus
JP2016038779A (en) Information processing device, information processing system and processing program
EP4184280A1 (en) Electronic device and operating method thereof
US11061587B2 (en) Memory system switching between a locked and unlocked state and memory control method
US11620108B1 (en) Random number generation systems and methods
TW202341162A (en) Secure programming of one-time-programmable (otp) memory
WO2022253706A1 (en) Device identity keys