KR20230090210A - System on chip, security system, and method for performing authentication - Google Patents
System on chip, security system, and method for performing authentication Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000003860 storage Methods 0.000 claims abstract description 60
- 230000004044 response Effects 0.000 claims abstract description 15
- 230000008859 change Effects 0.000 claims description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005728 strengthening Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
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
Description
본 개시의 기술적 사상은 전자 장치에 관한 것이며, 더욱 상세하게는, 시스템 온 칩, 보안 시스템 및 인증을 수행하는 방법에 관한 것이다.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
외부 장치(10)는 통신 인터페이스를 통해 시스템 온 칩(100)과 통신을 수행할 수 있다. 외부 장치(10)는 시스템 온 칩(100)에 접근(access)하여 시스템 온 칩(100)에 내장된 파라미터, 시스템 온 칩(100)의 내부 정보 등을 변경하거나 정정할 수 있다. 이러한 외부 장치(10)는, 예를 들어, 호스트(host), 디버깅 장치(debugging device)로 구현될 수 있다.The
외부 장치(10)가 시스템 온 칩(100)의 내부 정보 등을 변경하기 위해서, 외부 장치(10)는 시스템 온 칩(100)에 의해 인증되어야 한다. 일 실시예에서, 외부 장치(10)는 시스템 온 칩(100)에 인증 요청을 전송할 수 있다. 또한, 외부 장치(10)는 인증 동작에 필요한 입력 키를 전송할 수도 있다.In order for the
일 실시예에서, 외부 장치(10)가 디버깅 장치로 구현되는 경우, 외부 장치(10)는 JTAG(Joint Test Action Group)일 수 있다. JTAG은 디지털 회로에서 특정 노드의 디지털 입출력을 위해 직렬 통신 방식으로 출력 데이터를 전송하거나 입력데이터를 수신하는 방식을 말한다. JTAG은 임베디드 시스템(embedded system) 개발에 사용되는 디버깅 장치일 수 있다.In one embodiment, when the
시스템 온 칩(100)은 디버그 포트(110), 인증기(120), 보안 프로세서(130), 및 비휘발성 메모리(140)를 포함할 수 있다. The system on
디버그 포트(110)는 외부 장치(10)로부터 인증 동작 및/또는 디버깅 동작과 관련된 신호를 수신하거나 송신할 수 있다. 예를 들면, 인증 요청 및 입력 키는 디버그 포트(110)를 통해 시스템 온 칩(100)에 제공될 수 있다. The
인증기(120)는 외부 장치(10)에 대한 인증을 수행할 수 있다. 예를 들면, 인증기(120)는 외부 장치(10)로부터 수신한 입력 키와, 미리 저장된 비대칭 키를 이용하여 인증 동작을 수행할 수 있다. 구체적으로 예를 들면, 인증기(120)는 입력 키와 비대칭 키를 입력으로, 암호화 알고리즘을 수행할 수 있다. 만약, 입력 키와 비대칭 키가 암호화 알고리즘에 의해 서로 매칭(matching)되는 경우, 외부 장치(10)에 대한 인증이 성공된 것으로 판단될 수 있다.The
일 실시예에서, 인증기(120)는, 비휘발성 메모리(140)에 저장된 데이터를 획득하도록, 비휘발성 메모리(140)를 제어할 수 있다. 구체적으로 예를 들면, 인증기(120)는 리드 커맨드 및 어드레스를 비휘발성 메모리(140)에 제공하고, 비휘발성 메모리(140)가 데이터를 리드하고 리드된 데이터를 인증기(120)에 제공할 수 있다. 구체적으로 다른 예를 들면, 시스템 온 칩(100)이 부팅(또는 파워 온(power on)된 경우), 비휘발성 메모리(140)에 저장된 데이터가 인증기(120)에 제공되며 인증기(120)에 임시 저장될 수 있다.In one embodiment, the
본 개시의 "인증기"는 "인증 프로토콜 모듈(authentication protocol module)"로 지칭될 수 있다.An "authenticator" of the present disclosure may be referred to as an "authentication protocol module".
보안 프로세서(130)는 비휘발성 메모리(140)를 제어할 수 있다. 구체적으로 예를 들면, 보안 프로세서(130)는 데이터, 쓰기 커맨드 및 어드레스를 비휘발성 메모리(140)에 제공할 수 있다. 이에 따라 데이터가 비휘발성 메모리(140)에 저장될 수 있다.The
비휘발성 메모리(140)는 메모리 셀들 중 어드레스에 의해 선택된 메모리 셀에 대해 커맨드가 지시하는 동작을 수행할 수 있다. 여기서, 커맨드는, 예를 들어 쓰기 커맨드(또는 프로그램 커맨드), 리드 커맨드, 또는 이레이즈 커맨드일 수 있고, 커맨드가 지시하는 동작은 예를 들어 쓰기 동작(또는 프로그램 동작), 리드 동작 또는 소거 동작일 수 있다. The
비휘발성 메모리(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
일 실시예에서, 비휘발성 메모리(140)는 키 저장 영역(141) 및 키 지시자 영역(142)을 포함할 수 있다. 키 저장 영역(141)은 적어도 하나의 키 데이터가 저장된 영역일 수 있다. 키 지시자 영역(142)는 키 지시자 데이터가 저장된 영역일 수 있다. 키 지시자 데이터는, 키 저장 영역(141)에서 데이터의 저장 위치를 가리키는 데이터일 수 있다. 본 개시의 "저장 위치"는 키 데이터의 저장 단위일 수 있다. 본 개시의 "저장 위치"는 "슬롯"으로 지칭될 수 있다. 즉, 비휘발성 메모리(140)는 키 데이터를 저장하기 위한 복수의 슬롯들을 포함할 수 있다. 본 개시의 "키 지시자 데이터"는 "레보케이션 정보(revocation information)"으로 지칭될 수 있다.In one embodiment, the
일 실시예에서, 비휘발성 메모리(140)는 키 저장 영역(141) 및 키 지시자 영역(142)을 포함하는 경우, 인증기(120)는 키 지시자 데이터를 이용하여 저장 위치를 확인할 수 있다. 그리고, 인증기(120)는 비휘발성 메모리(140)로부터 저장 위치에 저장된 키 데이터를 획득할 수 있다. 그리고, 인증기(120)는 입력 키와 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행할 수 있다.In one embodiment, when the
도 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
단계 S100에서, 외부 장치(210)는 시스템 온 칩(220)에 인증 요청을 전송한다. In step S100, the
단계 S110에서, 시스템 온 칩(220)은 인증 요청에 응답하여 인증 동작을 수행한다.In step S110, the system on
단계 S120에서, 시스템 온 칩(220)은 인증이 성공했는지 여부를 판단한다. In step S120, the system on
인증이 실패하면(S120, 아니오), 단계 S130에서, 시스템 온 칩(220)은 접근 불가를 나타내는 신호를 외부 장치(210)에 전송한다.If authentication fails (S120, No), in step S130, the system on
인증이 성공하면(S120, 예), 단계 S140에서, 시스템 온 칩(220)은 접근 허용을 나타내는 신호를 외부 장치(210)에 전송한다.If the authentication succeeds (S120, Yes), in step S140, the system on
단계 S150에서, 외부 장치(210)는 내부 정보를 획득하기 위하여 시스템 온 칩(220)에 접근 요청을 전송한다. In step S150, the
단계 S160에서, 시스템 온 칩(220)은 내부 정보를 외부 장치(210)에 송신한다.In step S160 , the system on
단계 S170에서, 외부 장치(210)는 내부 정보를 기초로 디버깅 동작을 수행한다.In step S170, the
단계 S180에서, 외부 장치(210)는 디버깅 정보를 시스템 온 칩(220)에 전송한다.In step S180 , the
이하에서는 단계 S110에 도시된 시스템 온 칩(220)의 인증 동작을 수행하는 방법을 구체적으로 설명한다.Hereinafter, a method of performing the authentication operation of the system on
도 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
단계 S112에서, 인증기(120)는, 키 지시자 데이터를 기초로, 인증 동작에서 사용될 키 데이터가 저장된 저장 위치를 확인한다. 일 실시예에서, 비휘발성 메모리(140)가 OTP 메모리로 구현된 경우, 인증기(120)는, 키 지시자 데이터를 이용하여 OTP 메모리에 포함된 복수의 슬롯들 중 키 데이터가 저장된 슬롯을 확인한다.In step S112, the
단계 S113에서, 인증기(120)는 비휘발성 메모리로부터 키 데이터를 획득한다. 일 실시예에서, 비휘발성 메모리(140)가 OTP 메모리로 구현된 경우, 인증기(120)는 OTP 메모리로부터 키 데이터를 리드(read)하여 비대칭 키를 획득한다. 여기서, 비대칭 키는 인증 동작에 사용될 키의 값일 수 있다.In step S113, the
단계 S114에서, 인증기(120)는 입력 키와 키 데이터의 비대칭 키를 입력으로 암호화 알고리즘을 수행한다. 여기서, 입력 키는 외부 장치(10)로부터 수신된 키일 수 있다.In step S114, the
도 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
단계 S200에서, 외부 장치(410)는 키 변경 커맨드 및 새로운 키 데이터를 전송한다. 도 1을 참조하여 예를 들면, 인증기(120)는, 외부 장치(10)가 인증됨에 응답하여, 디버그 포트(110)를 통해 키 변경 커맨드 및 새로운 키 데이터를 수신한다. 일 실시예에서, 새로운 키 데이터는 유효 데이터(valid data)일 수 있다. 다른 실시예에서, 새로운 키 데이터는 무효 데이터(invalid data)일 수 있다. In step S200, the
단계 S210에서, 시스템 온 칩(420)은, 키 지시자 데이터를 기초로, 비어 있는 슬롯(empty slot)을 확인한다. 도 1을 참조하여 예를 들면, 인증기(120)는 키 지시자 데이터를 이용하여 비휘발성 메모리(예를 들면, OPT 메모리)에 포함된 복수의 슬롯들 중 비어 있는 슬롯을 확인한다.In step S210, the system on a
단계 S220에서, 시스템 온 칩(420)은 비어 있는 슬롯에 새로운 키 데이터를 저장한다.In step S220, the system on
단계 S230에서, 시스템 온 칩(420)은, 새로운 키 데이터가 저장된 슬롯을 가리키기 위해, 키 지시자 데이터를 업데이트한다. In step S230, the system on
단계 S240에서, 시스템 온 칩(420)은 변경 완료 응답을 전송한다.In step S240, the system on
일 실시예에서, 키 지시자 데이터가 업데이트되면, 인증기(120)는 비인증된 장치로부터 새로운 인증 요청에 응답하여 새로운 키 데이터를 획득할 수 있다. 여기서, 비인증된 장치는 인증된 외부 장치(410)와 다른 장치일 수 있다.In one embodiment, when the key indicator data is updated,
도 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
비휘발성 메모리(500)는 키 저장 영역(510) 및 키 지시자 영역(520)을 포함할 수 있다.The
일 실시예에서, 키 저장 영역(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
키 지시자 영역(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
제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 (
도 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
인증된 외부 장치(예를 들어, 도 1에 도시된 외부 장치(10))가 제2 키 데이터(Ket_2) 및 키 변경 커맨드(CCMD)를 시스템 온 칩(600)에 제공할 수 있다. 이 경우, 제2 키 데이터(Ket_2) 및 키 변경 커맨드(CCMD)는 디버그 포트(610)를 통해 인증기(620)에 전달될 수 있다. 일 실시예에서, 제2 키 데이터(Ket_2)는 유효한 데이터(valid data)일 수 있다.An authenticated external device (eg, the
인증기(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
보안 프로세서(630)는, 비어 있는 저장 위치(예를 들면, 제2 슬롯(Slot#2))에 대응되는 어드레스(ADD), 유효한 키 데이터(예를 들면, 제2 키 데이터(Ket_2)), 및 쓰기 커맨드(WCMD)를 비휘발성 메모리(640)에 제공할 수 있다. 비휘발성 메모리(640)는 쓰기 커맨드(WCMD)에 응답하여 비어 있는 저장 위치(예를 들면, 제2 슬롯(Slot#2))에 유효한 키 데이터(예를 들면, 제2 키 데이터(Ket_2))를 저장할 수 있다.The
한편, 현재 키 지시자 데이터는 제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
인증기(620)는 키 변경 커맨드(CCMD)에 대한 응답(RPN)을 디버그 포트(610)를 통해 인증된 외부 장치(예를 들어, 도 1에 도시된 외부 장치(10))에 전송할 수 있다.The
키 지시자 데이터가 업데이트되면, 인증기(620)는, 새로운 인증 요청에 응답하여, 비휘발성 메모리(640)로부터 제2 키 데이터(Ket_2)를 획득할 수 있다. When the key indicator data is updated, the
전술한 바에 의하면, 시스템 온 칩(600)이 출하된 후, 인증을 위한 키를 변경함으로써 시스템 온 칩(600)의 보안을 더욱 강화하는 효과가 있다.As described above, there is an effect of further strengthening the security of the system on
도 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
도 7b를 참조하면, 인증된 외부 장치(예를 들어, 도 1에 도시된 외부 장치(10))가 무효한 키 데이터(IVD_KEY) 및 키 변경 커맨드(CCMD)를 시스템 온 칩(600)에 제공할 수 있다. 일 실시예에서, 무효한 키 데이터(IVD_KEY)는 예를 들어 임의의 값을 갖는 데이터일 수 있다. 또는, 일 실시예에서, 무효한 키 데이터(IVD_KEY)는 더미 데이터(dummy data)일 수 있다.Referring to FIG. 7B , an authenticated external device (eg, the
인증기(620)는 디버그 포트(610)를 통해 키 변경 커맨드(CCMD) 및 무효한 키 데이터(IVD_KEY)를 수신할 수 있다. 그리고, 인증기(620)는 키 지시자 데이터를 이용하여 키 저장 영역(641)에서 비어 있는 저장 위치(예를 들면, 제2 슬롯(Slot#2))를 확인할 수 있다. 인증기(620)는 슬롯 데이터(Slot_INFO)와 무효한 키 데이터(IVD_KEY)를 보안 프로세서(630)에 제공할 수 있다 도 7a를 참조하면, 슬롯 데이터(Slot_INFO)는 제2 슬롯(Slot#2)을 나타낼 수 있다.The
보안 프로세서(630)는, 비어 있는 저장 위치(예를 들면, 도 7a에 도시된 제2 슬롯(Slot#2))에 대응되는 어드레스(ADD), 무효한 키 데이터(IVD_KEY), 및 쓰기 커맨드(WCMD)를 비휘발성 메모리(640)에 제공할 수 있다. The
도 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
인증기(620)는 키 변경 커맨드(CCMD)에 대한 응답(RPN)을 디버그 포트(610)를 통해 인증된 외부 장치(예를 들어, 도 1에 도시된 외부 장치(10))에 전송할 수 있다.The
시스템 온 칩(600)은 무효한 키 데이터(IVD_KEY)를 이용하여 인증 동작을 수행하므로, 비인증된 외부 장치의 인증을 방지할 수 있다.Since the system on
전술한 바에 의하면, 시스템 온 칩(600)이 출하된 후, 인증을 위한 키를 무효 데이터로 변경함으로써 해킹을 방지하는 효과가 있다.As described above, after the system on
도 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
외부 디버거(1051)는 도 1에 도시된 외부 장치(10)에 대응될 수 있다. 외부 디버거(1051)는 시스템 온 칩(1000)에 인증 요청 및 입력 키 데이터를 송신할 수 있다. 외부 디버거(1051)가 인증되면, 외부 디버거(1051)는 시스템 온 칩(1000)의 내부 정보를 획득하고 내부 정보를 기초로 디버깅 동작을 수행할 수 있다.The
시스템 온 칩(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
시스템 온 칩(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-
인증 프로토콜 모듈(1001)은 도 1에 도시된 인증기(120)에 대응될 수 있다.The
CPU(1100)는 프로세서(processor)라고도 불릴 수 있고, 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(1100)는 CMU(1900)로부터 출력된 동작 클럭 신호에 응답하여 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다.The
CPU(1100)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. ROM(1700), RAM(1600), 및/또는 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(1100)의 메모리(미도시)에 로드(load)될 수 있다.The
보안 컨트롤러(1101)는 CPU(1100)의 제어에 의해, ROM(1700), RAM(1600), 및/또는 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터를 읽을 수 있다. 또는, 보안 컨트롤러(1101)는 CPU(1100)의 제어에 의해, ROM(1700), RAM(1600), 및/또는 외부 메모리(1850)에 저장된 프로그램들 및/또는 데이터를 저장할 수 있다. CPU(1100) 및 보안 컨트롤러(1101)는 도 1에 도시된 보안 프로세서(130)에 포함될 수 있다.The
NPU(1200)는 인공 신경망을 이용하여 대규모 연산을 효율적으로 처리할 수 있다. NPU(1200)는 동시다발적인 행렬 연산을 지원함으로써 딥 러닝(deep learning)을 수행할 수 있다. The
GPU(1300)는 메모리 컨트롤러(1800)에 의해 외부 메모리(1850)로부터 리드 된 데이터(read data)를 디스플레이 장치(1550)에 적합한 신호로 변환할 수 있다.The
타이머(1400)는 CMU(1900)로부터 출력된 동작 클럭 신호에 기초하여 시간을 나타내는 카운트 값을 출력할 수 있다.The
디스플레이 장치(1550)는 디스플레이 컨트롤러(1500)로부터 출력된 이미지 신호들을 디스플레이할 수 있다. 예컨대, 디스플레이 장치(1550)는 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 또는 플렉시블(flexible) 디스플레이로 구현될 수 있다. 디스플레이 컨트롤러(1500)는 디스플레이 장치(1550)의 동작을 제어할 수 있다.The
RAM(1600)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리에 저장된 프로그램들 및/또는 데이터는 CPU(1100)의 제어에 따라 또는 ROM(1700)에 저장된 부팅 코드(booting code)에 따라 RAM(1600)에 일시적으로 저장될 수 있다. RAM(1600)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
ROM(1700)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(1700)은 EPROM(erasable programmable read-only memory) 또는 EEPROM (electrically erasable programmable read-only memory)으로 구현될 수 있다.
일 실시예에서, ROM(1700)은 OTP 메모리로 구현될 수 있다. ROM(1700)은 도 1에 도시된 비휘발성 메모리(140)에 대응될 수 있다.In one embodiment,
메모리 컨트롤러(1800)는 인터페이스를 통해 외부 메모리(1850)와 통신할 수 있다. 메모리 컨트롤러(1800)는 외부 메모리(1850)의 동작을 전반적으로 제어하며, 호스트와 외부 메모리(1850) 사이의 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(1800)는 호스트의 요청에 따라 외부 메모리(1850)에 데이터를 쓰거나 외부 메모리(1850)로부터 데이터를 읽을 수 있다. 여기서, 호스트는 CPU(1100), GPU(1300), 또는 디스플레이 컨트롤러(1500)와 같은 마스터(master) 장치일 수 있다.The
외부 메모리(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
CMU(1900)는 동작 클럭 신호를 생성한다. CMU(1900)는 위상 동기 루프(PLL; phase locked loop), 지연 동기 루프(DLL; delayed locked loop), 또는 크리스탈 오실레이터 등과 같은 클럭 신호 생성 장치를 포함할 수 있다.The
동작 클럭 신호는 GPU(1300)로 공급될 수 있다. 물론, 동작 클럭 신호는 다른 구성 요소(예컨대, CPU(1100) 또는 메모리 컨트롤러(1800) 등)로 공급될 수도 있다. CMU(1900)는 동작 클럭 신호의 주파수를 변경할 수 있다.An operating clock signal may be supplied to the
CPU(1100), NPU(1200), GPU(1300), 타이머(1400), 디스플레이 컨트롤러(1500), RAM(1600), ROM(1700), 메모리 컨트롤러(1800), CMU(1900) 각각은 버스(1050)를 통하여 서로 통신할 수 있다.Each of the
PMIC(1950)가 시스템 온 칩(1000)의 외부에 구현될 수 있다. 하지만, 이에 한정되는 것은 아니며, PMIC(1950)의 기능을 수행할 수 있는 전력 관리 유닛(PMU; power management unit)이 시스템 온 칩(1000)에 포함될 수도 있다.The
도 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
카메라 모듈(2100)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈로부터 출력된 전기적인 이미지는 스토리지(2600), 메모리(2500), 또는 외부 메모리(2700)에 저장될 수 있다. 또한, 카메라 모듈로부터 출력된 전기적인 이미지는 디스플레이(2200)를 통하여 표시될 수 있다.The
디스플레이(2200)는 스토리지(2600), 메모리(2500), 입출력 포트(2400), 외부 메모리(2700), 또는 네트워크 장치(2800)로부터 출력된 데이터를 디스플레이(2200)할 수 있다. 디스플레이(2200)는 도 8에 도시된 디스플레이 장치(1550)일 수 있다.The
파워 소스(2300)는 구성 요소들 중 적어도 하나로 동작 전압을 공급할 수 있다. 파워 소스(2300)는 도 8에 도시된 PMIC(1950)에 의해 제어될 수 있다.The
입출력 포트(2400)는 보안 시스템(4)으로 데이터를 전송하거나 또는 보안 시스템(4)로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트(2400)는 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.The input/
메모리(2500)는 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있다. 실시 예에 따라, 메모리(2500)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 시스템 온 칩(2000)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 메모리 컨트롤러는 시스템 온 칩(2000)과 메모리(2500) 사이에 구현될 수 있다.The
스토리지(2600)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.The
외부 메모리(2700)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 외부 메모리(2700)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity module) 카드일 수 있다.The
네트워크 장치(2800)는 보안 시스템(4)를 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.The
전술한 바에 의하면, 시스템 온 칩이 출하된 후에도 인증을 위한 키를 변경함으로써 시스템 온 칩의 보안을 더욱 강화하는 효과가 있다.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 내지 제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.
상기 키 데이터가 저장된 슬롯은,
상기 제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.
상기 비휘발성 메모리를 제어하도록 구성된 보안 프로세서를 더 포함하는 것을 특징으로 하는, 시스템 온 칩.According to claim 1,
and a secure processor configured to control the non-volatile memory.
상기 인증기는,
상기 디버깅 장치가 인증되면, 상기 디버깅 장치로부터 키 변경 커맨드 및 유효한 키 데이터를 수신하고,
상기 키 지시자 데이터를 이용하여 상기 키 저장 영역에서 상기 비어 있는 슬롯을 확인하고,
상기 비어 있는 슬롯을 가리키는 슬롯 데이터 및 상기 유효한 키 데이터를 상기 보안 프로세서에 제공하고,
상기 보안 프로세서는,
상기 비어 있는 슬롯에 대응되는 어드레스, 상기 유효한 키 데이터, 및 쓰기 커맨드를 상기 비휘발성 메모리에 제공하고,
상기 키 지시자 데이터를 업데이트하도록 상기 비휘발성 메모리를 제어하는 것을 특징으로 하는, 시스템 온 칩.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.
상기 인증기는,
상기 키 지시자 데이터가 업데이트되면, 상기 디버그 포트를 통해 수신된 새로운 인증 요청에 응답하여 상기 유효한 키 데이터를 획득하는 것을 특징으로 하는, 시스템 온 칩.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.
상기 인증기는,
상기 디버깅 장치가 인증되면, 상기 디버깅 장치로부터 키 변경 커맨드 및 무효한 키 데이터를 수신하고,
상기 키 지시자 데이터를 이용하여 상기 키 저장 영역에서 비어 있는 슬롯을 확인하고,
상기 비어 있는 슬롯을 가리키는 슬롯 데이터 및 상기 무효한 키 데이터를 상기 보안 프로세서에 제공하고,
상기 보안 프로세서는,
상기 비어 있는 슬롯에 대응되는 어드레스, 상기 무효한 키 데이터, 및 쓰기 커맨드를 상기 비휘발성 메모리에 제공하고,
상기 키 지시자 데이터를 업데이트하도록 상기 비휘발성 메모리를 제어하는 것을 특징으로 하는, 시스템 온 칩.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.
상기 비휘발성 메모리는,
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.
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) |
-
2022
- 2022-04-25 KR KR1020220051028A patent/KR20230090210A/en unknown
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 |