KR20150027677A - Data processing system including key manager and operating method of key manager - Google Patents

Data processing system including key manager and operating method of key manager Download PDF

Info

Publication number
KR20150027677A
KR20150027677A KR20140049450A KR20140049450A KR20150027677A KR 20150027677 A KR20150027677 A KR 20150027677A KR 20140049450 A KR20140049450 A KR 20140049450A KR 20140049450 A KR20140049450 A KR 20140049450A KR 20150027677 A KR20150027677 A KR 20150027677A
Authority
KR
South Korea
Prior art keywords
key
command
memory
user
manager
Prior art date
Application number
KR20140049450A
Other languages
Korean (ko)
Other versions
KR102240830B1 (en
Inventor
이혜수
박재철
염윤호
김경애
홍동표
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/251,120 external-priority patent/US9935768B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20150027677A publication Critical patent/KR20150027677A/en
Application granted granted Critical
Publication of KR102240830B1 publication Critical patent/KR102240830B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals

Abstract

The purpose of the present invention is to provide a data processing system including key manager that has improved security and manages keys for encryption and decryption, and an operating method of the key manager. The present invention relates to a data processing system. The data processing system includes a memory, a central processing unit, and a key manager. The key manager includes a first register configured to store commands, a second register configured to store user settings, a unique value storage unit configured to output unique values, and a main controller configured to generate keys using user settings and unique values. The unique value is used only in the key manager without being output to the outside of the key manager. The key manager generates same keys using same user settings, and generates different keys using different user settings.

Description

키 관리자를 포함하는 데이터 프로세싱 시스템 및 및 키 관리자의 동작 방법{DATA PROCESSING SYSTEM INCLUDING KEY MANAGER AND OPERATING METHOD OF KEY MANAGER}TECHNICAL FIELD [0001] The present invention relates to a data processing system including a key manager and a method of operating the key manager.

본 발명은 반도체 장치에 관한 것으로, 더 상세하게는 키 관리자를 포함하는 데이터 프로세싱 시스템 및 및 키 관리자의 동작 방법에 관한 것이다.The present invention relates to a semiconductor device, and more particularly, to a data processing system including a key manager and a method of operating the key manager.

반도체 기술이 발전하면서, 개인용 컴퓨터, 노트북 컴퓨터, 스마트폰, 스마트패드 등과 같은 개인 전자 장치들의 성능이 고도화되고 있다. 개인 전자 장치들의 성능이 고도화되면서, 개인 전자 장치들에서 구동되는 콘텐츠의 종류가 다양해지고, 용량이 증가하고 있다.BACKGROUND OF THE INVENTION With the advancement of semiconductor technology, the performance of personal electronic devices such as personal computers, notebook computers, smart phones, smart pads, and the like is being advanced. As the performance of personal electronic devices becomes more sophisticated, the kinds of contents that are driven in personal electronic devices become diverse and capacity is increasing.

개인 전자 장치들에서 구동되는 콘텐츠는 개인 정보를 포함할 수 있다. 예를 들어, 개인 전자 장치들은 메모, 일기 등과 같은 개인 정보, 공인인증서, 신용카드 결재정보 등과 같은 개인 금융 정보 등을 저장할 수 있다. 이러한 개인 정보가 개인 전자 장치의 분실, 해킹 등을 통해 유출되면, 금융 사고까지 초래될 수 있다.Content running on personal electronic devices may include personal information. For example, personal electronic devices may store personal financial information such as personal information such as memos, diaries, etc., authorized certificates, credit card payment information, and the like. If such personal information is leaked through the loss or hacking of personal electronic devices, financial accidents may result.

개인 전자 장치들에서 구동되는 콘텐츠의 보안성을 향상시키기 위하여, 암호화 및 복호화 스킴이 사용될 수 있다. 암호화 및 복호화 스킴에 따르면, 개인 전자 장치들에 저장되는 데이터는 암호화된다. 개인 전자 장치가 데이터를 사용하고자 할 때, 암호화된 데이터는 복호화된다. 데이터를 암호화하여 저장함으로써, 개인 정보의 유출이 방지될 수 있다.An encryption and decryption scheme may be used to improve the security of the content that is run on personal electronic devices. According to the encryption and decryption scheme, the data stored in the personal electronic devices is encrypted. When the personal electronic device wants to use the data, the encrypted data is decrypted. By encrypting and storing the data, leakage of personal information can be prevented.

그러나, 기존의 암호화 및 복호화 스킴을 무력화할 수 있는 해킹 수단들이 발견되고 있다. 따라서, 해킹을 차단하고, 더 높은 수준의 보안성을 달성할 수 있는 암호화 및 복호화 스킴에 대한 요구가 지속적으로 증가하고 있다.However, hacking means have been found that can disable existing encryption and decryption schemes. Thus, there is a continuing need for encryption and decryption schemes to block hacking and achieve higher levels of security.

본 발명의 목적은, 향상된 보안성을 갖는 암호화 및 복호화를 위한 키를 관리하는 키 관리자를 포함하는 데이터 프로세싱 시스템 및 및 키 관리자의 동작 방법을 제공하는 데에 있다.It is an object of the present invention to provide a data processing system and a method of operating a key manager including a key manager for managing keys for encryption and decryption having improved security.

본 발명의 실시 예에 따른 데이터 프로세싱 시스템은, 메모리; 상기 메모리를 제어하도록 구성되는 중앙 처리부; 그리고 상기 중앙 처리부의 제어에 따라 키를 관리하도록 구성되는 키 관리자를 포함하고, 상기 키 관리자는, 상기 중앙 처리부로부터 수신되는 커맨드를 저장하도록 구성되는 제1 레지스터; 상기 중앙 처리부로부터 수신되는 사용자 설정 값을 저장하도록 구성되는 제2 레지스터; 고유값을 출력하도록 구성되는 고유값 저장부; 그리고 상기 제1 레지스터에 저장된 상기 커맨드에 응답하여, 상기 제2 레지스터에 저장된 상기 사용자 설정 값 및 상기 고유값을 이용하여 상기 키를 생성하도록 구성되는 메인 컨트롤러를 포함하고, 상기 고유값은 상기 키 관리자의 외부로 출력되지 않고 상기 키 관리자의 내부에서만 사용되고, 상기 키 관리자는, 동일한 사용자 설정 값들을 이용하여 동일한 키들을 생성하고, 서로 다른 사용자 설정 값들을 이용하여 서로 다른 키들을 생성한다.A data processing system according to an embodiment of the present invention includes: a memory; A central processing unit configured to control the memory; And a key manager configured to manage a key under the control of the central processing unit, the key manager including: a first register configured to store a command received from the central processing unit; A second register configured to store a user setting value received from the central processing unit; An eigenvalue storage unit configured to output eigenvalues; And a main controller configured to generate the key using the user setting value and the eigenvalue stored in the second register in response to the command stored in the first register, And the key manager generates the same keys using the same user set values and generates different keys using different user set values.

실시 예로서, 상기 메인 컨트롤러는, 상기 고유값 및 상기 사용자 설정 값을 이용하여 블록 암호화(block cipher) 또는 키 해시(key hash)를 수행하여 상기 키를 도출하도록 구성된다.In an embodiment, the main controller is configured to derive the key by performing block cipher or key hash using the eigenvalue and the user setting value.

실시 예로서, 난수를 출력하도록 구성되는 난수 발생기를 더 포함하고, 상기 메인 컨트롤러는 상기 난수 발생기로부터 출력되는 상기 난수를 상기 키로 선택하도록 구성된다.The embodiment further includes a random number generator configured to output a random number, and the main controller is configured to select the random number output from the random number generator as the key.

실시 예로서, 키 메모리를 더 포함하고, 상기 메인 컨트롤러는 상기 키로 선택된 상기 난수를 상기 사용자 설정 값과 연관하여 상기 키 메모리에 저장하도록 구성된다.As an embodiment, the apparatus further includes a key memory, and the main controller is configured to store the random number selected by the key in the key memory in association with the user setting value.

실시 예로서, 상기 메인 컨트롤러는, 상기 제1 레지스터에 저장된 상기 커맨드가 미리 생성된 키의 로딩을 요청하는 커맨드이고 상기 사용자 설정 값이 상기 키 메모리에 저장되어 있으면, 상기 사용자 설정 값에 대응하는 키를 상기 키 메모리로부터 출력하도록 구성된다.In one embodiment, the main controller is a command for requesting loading of a key generated in advance in the command stored in the first register, and if the user setting value is stored in the key memory, a key corresponding to the user setting value From the key memory.

실시 예로서, 상기 메인 컨트롤러는, 상기 제1 레지스터에 저장된 상기 커맨드가 미리 생성된 키의 백업을 요청하는 커맨드이고 상기 사용자 설정 값이 상기 키 메모리에 저장되어 있으면, 상기 사용자 설정 값에 대응하는 키를 상기 키 메모리로부터 읽어 백업하도록 구성된다.In an embodiment, the main controller is a command for requesting a backup of a key generated in advance in the command stored in the first register, and if the user setting value is stored in the key memory, a key corresponding to the user setting value From the key memory and back up.

실시 예로서, 상기 고유값을 이용하여 상기 사용자 설정 값 및 상기 키 메모리로부터 읽힌 키를 암호화하도록 구성되는 블록 암호화부를 더 포함하고, 상기 백업을 요청하는 커맨드에 응답하여, 상기 블록 암호화부에 의해 암호화된 데이터가 백업된다.The apparatus further comprises a block encryption unit configured to encrypt the user set value and the key read from the key memory using the eigenvalue, wherein in response to the command requesting the backup, Data is backed up.

실시 예로서, 상기 사용자 설정 값 및 상기 키 메모리로부터 읽어진 상기 키의 해시를 생성하도록 구성되는 해시부를 더 포함하고, 상기 백업을 요청하는 커맨드에 응답하여, 상기 해시가 상기 키 메모리로부터 읽어진 상기 키와 함께 백업된다.As an embodiment, the apparatus further comprises a hash unit configured to generate the user set value and a hash of the key read from the key memory, wherein in response to the command requesting the backup, the hash is read from the key memory Key.

실시 예로서, 상기 제1 레지스터에 저장된 커맨드가 복원을 요청하는 커맨드일 때, 상기 해시부는 상기 제2 레지스터에 저장된 상기 사용자 설정 값 및 상기 백업된 키의 해시를 생성하도록 구성되고, 상기 백업된 해시 및 상기 생성된 해시가 동일할 때, 상기 백업된 키가 복원된다.As an embodiment, when the command stored in the first register is a command requesting restoration, the hash unit is configured to generate a hash of the backed up key and the user set value stored in the second register, And when the generated hash is the same, the backed up key is restored.

실시 예로서, 상기 사용자 설정 값은 상기 중앙 처리부에서 구동되는 어플리케이션들 별로 다르게 설정된다.In an embodiment, the user setting value is set differently for each of applications executed in the central processing unit.

실시 예로서, 상기 사용자 설정 값은 상기 중앙 처리부에서 구동되는 어플리케이션들의 식별자(ID) 정보에 기반하여 생성되는 값이다.In an embodiment, the user setting value is a value generated based on identifier (ID) information of applications executed in the central processing unit.

실시 예로서, 상기 고유값 저장부는, 상기 고유값을 저장 및 출력하는 원-타임 프로그램(OTP, One-Time Program) 회로를 포함한다.In an embodiment, the eigenvalue storage unit includes a One-Time Program (OTP) circuit for storing and outputting the eigenvalue.

실시 예로서, 상기 고유값 저장부는, 상기 고유값을 저장 및 출력하는 전기퓨즈(electrical fuse)를 포함한다.In an embodiment, the eigenvalue storage unit includes an electrical fuse storing and outputting the eigenvalue.

데이터를 암호화 또는 복호화하기 위한 키를 관리하는 본 발명의 실시 예에 따른 키 관리자의 동작 방법은, 키 요청 커맨드 및 사용자 설정 값을 수신하는 단계; 그리고 상기 키 요청 커맨드에 응답하여, 고유값 및 상기 사용자 설정 값을 이용하여 상기 키를 출력하는 단계를 포함하고, 상기 고유값은 상기 키 관리자의 외부로 출력되지 않고 상기 키 관리자의 내부에서만 사용되고, 동일한 사용자 설정 값들을 이용하여 동일한 키들이 생성되고, 서로 다른 사용자 설정 값들을 이용하여 서로 다른 키들이 생성된다.An operation method of a key manager according to an embodiment of the present invention for managing a key for encrypting or decrypting data includes the steps of: receiving a key request command and a user setting value; And outputting the key using the eigenvalue and the user setting value in response to the key request command, wherein the eigenvalue is not output to the outside of the key manager but is used only within the key manager, The same keys are generated using the same user settings, and different keys are generated using different user settings.

실시 예로서, 상기 키를 출력하는 단계는, 상기 키 요청 커맨드가 제1 타입일 때, 제1 스킴에 따라 상기 키를 출력하고, 상기 키 요청 커맨드가 상기 제1 타입과 다른 제2 타입일 때, 상기 제1 스킴과 다른 제2 스킴에 따라 상기 키를 출력하는 단계를 포함하고, 동일한 사용자 설정 값들에 응답하여, 상기 제1 스킴에 따라 출력되는 키와 상기 제2 스킴에 따라 출력된다.In an embodiment, the step of outputting the key may include outputting the key according to a first scheme when the key request command is the first type, and when the key request command is a second type different from the first type And outputting the key according to a second scheme different from the first scheme, and in response to the same user settings, output according to the second scheme and the key output according to the first scheme.

본 발명에 따르면, 사용자 설정 값 및 고유값을 이용하여 키가 생성된다. 고유값 및 키는 중앙 처리부에서 구동되는 어플리케이션에 의한 액세스가 허용되지 않는다. 따라서, 향상된 보안성을 갖는 키 관리자를 포함하는 데이터 프로세싱 시스템 및 및 키 관리자의 동작 방법이 제공된다.According to the present invention, a key is generated using a user-set value and an eigenvalue. The eigenvalue and the key are not allowed to be accessed by the application running on the central processing unit. Accordingly, a data processing system including a key manager with enhanced security and a method of operating the key manager are provided.

도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템을 보여주는 블록도이다.
도 2는 도 1의 키 관리자를 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 키 관리자의 동작 방법을 보여주는 순서도이다.
도 4는 커맨드를 분석하는 단계를 더 상세하게 보여주는 순서도이다.
도 5는 제1 스킴의 선택된 때의 키 관리자의 동작을 설명하기 위한 도면이다.
도 6은 제1 스킴의 예를 보여주는 순서도이다.
도 7은 제2 스킴의 제1 예를 보여주는 순서도이다.
도 8은 키 메모리의 예를 보여주는 블록도이다.
도 9는 제2 스킴의 제2 예를 보여주는 순서도이다.
도 10은 제2 스킴의 제3 예를 보여주는 순서도이다.
도 11은 제2 스킴의 제4 예를 보여주는 순서도이다.
도 12는 도 1의 데이터 프로세싱 시스템의 동작 방법의 제1 예를 보여주는 순서도이다.
도 13은 도 1의 데이터 프로세싱 시스템의 동작 방법의 제2 예를 보여주는 순서도이다.
도 14는 도 11의 컴퓨팅 장치의 동작 방법의 제3 예를 보여주는 순서도이다.
도 15는 도 1의 컴퓨팅 장치의 동작 방법의 제4 예를 보여주는 순서도이다.
1 is a block diagram showing a data processing system according to an embodiment of the present invention.
2 is a block diagram illustrating the key manager of FIG.
3 is a flowchart illustrating an operation method of a key manager according to an embodiment of the present invention.
Figure 4 is a flow chart showing in more detail the step of analyzing the command.
5 is a diagram for explaining the operation of the key manager when the first scheme is selected.
6 is a flow chart showing an example of the first scheme.
7 is a flowchart showing a first example of the second scheme.
8 is a block diagram showing an example of a key memory.
9 is a flowchart showing a second example of the second scheme.
10 is a flowchart showing a third example of the second scheme.
11 is a flowchart showing a fourth example of the second scheme.
12 is a flowchart showing a first example of a method of operation of the data processing system of FIG.
13 is a flowchart showing a second example of a method of operation of the data processing system of FIG.
14 is a flowchart showing a third example of the operation method of the computing device of FIG.
15 is a flowchart showing a fourth example of the operation method of the computing device of FIG.

이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out the technical idea of the present invention. .

도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템(10)을 보여주는 블록도이다. 도 1을 참조하면, 데이터 처리 시스템(10)은 시스템-온-칩(SoC, 100), 표시 장치(135), 그리고 외부 메모리(155)를 포함한다. 데이터 처리 시스템(10)은 모바일 장치, 스마트폰, PDA, 개인용 컴퓨터, 태블릿 PC, 노트북 컴퓨터, 넷북, e-리더, PMP, MP3 플레이어, MP4 플레이어 등일 수 있수 있으나, 이들에 한정되지 않는다.1 is a block diagram illustrating a data processing system 10 in accordance with an embodiment of the present invention. Referring to FIG. 1, a data processing system 10 includes a system-on-chip (SoC) 100, a display 135, and an external memory 155. The data processing system 10 may be, but is not limited to, a mobile device, a smartphone, a PDA, a personal computer, a tablet PC, a notebook computer, a netbook, an e-reader, a PMP, an MP3 player,

시스템-온-칩(100)은 어플리케이션 프로세서일 수 있다. 어플리케이션 프로세서는 데이터 처리 시스템(10)의 제반 동작을 제어할 수 있다. 시스템-온-칩(100)은 중앙 처리부(110), 키 관리자(120), 표시 제어기(130), ROM (140), RAM (160), 메모리 컨트롤러(150), 그리고 버스를 포함한다. 시스템-온-칩(100)은 전원 관리부, 텔레비전 프로세서, 그래픽 프로세싱 유닛, 클럭 유닛 등과 같은 다른 구성 요소들을 더 포함할 수 있다.The system-on-chip 100 may be an application processor. The application processor can control all operations of the data processing system 10. The system-on-chip 100 includes a central processing unit 110, a key manager 120, a display controller 130, a ROM 140, a RAM 160, a memory controller 150, and a bus. The system-on-chip 100 may further include other components such as a power management unit, a television processor, a graphics processing unit, a clock unit, and the like.

중앙 처리부(110)은 동작 클럭 주파수에 따라, 메모리(140, 160 또는 155)에 저장된 프로그램들 또는 데이터를 처리하거나 실행할 수 있다. 중앙 처리부(110)는 멀티코어 프로세서로 구현될 수 있다. 멀티코어 프로세서는 둘 또는 그 이상의 독립적인 프로세서들(예를 들어, 코어들)을 갖는 단일 연산 장치일 수 있다. 프로세서들 각각은 프로그램 명령들을 읽고 실행할 수 있다. 멀티코어 프로세서들은 한 번데 복수의 가속기들을 구동할 수 있고, 따라서, 멀티코어 프로세서들을 포함하는 데이터 처리 시스템은 멀티 가속을 수행할 수 있다.The central processing unit 110 may process or execute programs or data stored in the memory 140, 160 or 155, depending on the operating clock frequency. The central processing unit 110 may be implemented as a multi-core processor. A multicore processor may be a single computing device having two or more independent processors (e.g., cores). Each of the processors may read and execute program instructions. The multi-core processors can drive a plurality of accelerators at once, and thus a data processing system including multi-core processors can perform multi-acceleration.

키 관리자(120)는 암호화에 사용되는 키들을 관리하고, 데이터 및 키들을 암호화 및 복호화할 수 있다. 보안 스토리지는 허가된 사용자 또는 프로그램만이 중요 데이터를 액세스하도록 허용하는 기술이다. 보안 스토리지를 위해, 데이터는 암호화되어 메모리에 안전하게 저징되고 필요할 때에 복호화된다. 따라서, 데이터는 불법적인 사용자 또는 프로그램으로부터 보호된다. 불법적인 액세스에 대한 판단은, 해당 액세스가 암호화 또는 복호화 키를 사용할 권한을 가졌는지에 따라 수행될 수 있다.The key manager 120 manages the keys used for encryption, and can encrypt and decrypt the data and keys. Secure storage is a technology that allows only authorized users or programs to access sensitive data. For secure storage, data is encrypted and securely stored in memory and decrypted when needed. Thus, the data is protected from illegal users or programs. The determination of illegal access may be performed depending on whether the access has authority to use an encryption or decryption key.

키 관리자(120)는 키를 가로채는 공격 및 키를 오염시키는 공격으로부터 키를 보호한다. 키를 가로채는 공격은 키를 불법적으로 액세스하는 공격이고,키를 오염시키는 공격은 키를 손상하거나 파괴하는 공격이다. 따라서, 키를 안전하게 관리하기 위하여, 키 관리자(120)는 키에 대한 이러한 불법적인 공격을 차단하고, 키의 무결성을 보장할 수 있다.Key manager 120 protects keys from attacks that intercept keys and attacks that contaminate keys. An attack that intercepts a key is an attack that illegally accesses a key, while an attack that contaminates a key is an attack that destroys or destroys a key. Thus, in order to securely manage the key, the key manager 120 can block this illegal attack on the key and ensure the integrity of the key.

키 관리자(120)는 키 관리 기능을 제공한다. 기 관리 기능은 키의 생성, 사용, 저장, 암호화 및 파괴를 포함하는 키의 전체 주기의 관리와 연관된 기능이다. 키 관리 기능은 파워 오프에 대비하여 키를 암호화하여 불휘발성 메모리 저장하고, 필요할 때에 복호화하는 기능을 포함한다. 키 관리 기능은 키 암호화, 키 해싱(key hashing), 그리고 호스트(예를 들어, 호스트에서 구동되는 소프트웨어 또는 어플리케이션)가 키를 액세스하는 것을 금지하는 접근 제어를 포함할 수 있다.The key manager 120 provides a key management function. The key management function is a function associated with the management of the entire period of the key including the generation, use, storage, encryption and destruction of the key. The key management function includes a function of encrypting a key in preparation for power-off and storing it in a nonvolatile memory, and decrypting it when necessary. The key management function may include key encryption, key hashing, and access control to prohibit the host (e.g., hosted software or application) from accessing the key.

예시적으로, 호스트는 커맨드를 통해서만 키 관리자(120)를 구동할 수 있고, 소프트웨어(예를 들어, 호스트)는 키를 액세스하는 것이 금지된다.By way of example, the host can only run the key manager 120 via a command, and software (e.g., a host) is prohibited from accessing the key.

외부 메모리(155)에 저장된 프로그램 또는 데이터는, 필요할 때에 시스템-온-칩(100) 내의 메모리 또는 중앙 처리부(110)에 로드될 수 있다.The program or data stored in the external memory 155 may be loaded into the memory or the central processing unit 110 in the system-on-chip 100 when necessary.

ROM (140)는 영구적인 프로그램들 또는 데이터를 저장할 수 있다. ROM (140)은 EPROM 또는 EEPROM으로 구현될 수 있다.The ROM 140 may store persistent programs or data. The ROM 140 may be implemented as an EPROM or an EEPROM.

RAM (160)은 프로그램, 데이터 또는 명령을 임시로 저장할 수 있다. ROM (140)에 저장된 프로그램 또는 데이터는 중앙 처리부(110) 또는 ROM (140)에 저장된 부트 코드의 제어에 따라, RAM (160)에 임시로 저장될 수 있다. RAM (160)은 DRAM 또는 SRAM으로 구현될 수 있다.The RAM 160 may temporarily store programs, data, or instructions. The program or data stored in the ROM 140 may be temporarily stored in the RAM 160 under the control of the central processing unit 110 or the boot code stored in the ROM 140. [ The RAM 160 may be implemented as a DRAM or SRAM.

메모리 컨트롤러(150)는 외부 메모리(155)와의 인터페이스를 위해 사용될 수 있다. 메모리 컨트롤러(150)는 외부 메모리(155)의 제반 동작을 제어하고, 호스트 및 외부 메모리(155) 사이의 데이터 통신을 제어할 수 있다. 메모리 컨트롤러(150)는 외부 메모리(155)가 호스트의 요청에 따라 데이터를 읽거나 쓰도록 제어할 수 있다. 호스트는 중앙 처리부(110) 또는 표시 제어기(130)와 같은 마스터 장치일 수 있다.The memory controller 150 may be used for interfacing with the external memory 155. [ The memory controller 150 can control all operations of the external memory 155 and can control data communication between the host and the external memory 155. [ The memory controller 150 can control the external memory 155 to read or write data at the request of the host. The host may be a master device such as the central processing unit 110 or the display controller 130.

외부 메모리(155)는 데이터, 운영체제, 그리고 다양한 프로그램들을 저장하는 저장 장치일 수 있다. 외부 메모리(155)는 DRAM과 같은 휘발성 메모리, 또는 플래시 메모리, PRAM, MRAM, RRAM, FRAM 등과 같은 불휘발성 메모리로 구현될 수 있다. 다른 예로서, 외부 메모리(155)는 시스템-온-칩(100)에 실장될 수 있다.The external memory 155 may be a storage device that stores data, an operating system, and various programs. The external memory 155 may be implemented as a volatile memory such as a DRAM, or a nonvolatile memory such as a flash memory, PRAM, MRAM, RRAM, FRAM, or the like. As another example, external memory 155 may be implemented in system-on-chip 100.

데이터 처리 시스템(10)의 구성 요소들(110~160)은 버스를 통해 상호 통신할 수 있다.The components 110 to 160 of the data processing system 10 may communicate with each other via a bus.

표시 장치(135)는 멀티미디어 데이터를 표시할 수 있다. 표시 장치(135)는 LCD일 수 있으나, 그에 한정되지 않는다. 다른 예로서, 표시 장치(135)는 LED 표시 장치, OLED 표시 장치 등으로 구현될 수 있다. 표시 제어기(130)는 표시 장치(135)의 동작을 제어할 수 있다.The display device 135 may display the multimedia data. The display device 135 may be an LCD, but is not limited thereto. As another example, the display device 135 may be implemented as an LED display device, an OLED display device, or the like. The display controller 130 can control the operation of the display device 135. [

도 2는 도 1의 키 관리자(120)를 보여주는 블록도이다.2 is a block diagram illustrating the key manager 120 of FIG.

도 1 및 도 2를 참조하면, 키 관리자(120)는 키 관리 코어(200), 난수 발생기(250), 고유값 저장부(260), 키 메모리(270), 그리고 암호화된 키 메모리(280)를 포함한다.1 and 2, the key manager 120 includes a key management core 200, a random number generator 250, a unique value storage 260, a key memory 270, and an encrypted key memory 280. [ .

키 관리 코어(200)는 다양한 키 사이즈들을 갖는 블록 암호화부(230)를 지원하고, 키 생성 기능, 키 암호화 기능, 키 복호화 기능, 키 로드 기능, 키 파괴 기능을 제공할 수 있다. 키 관리 코어(200)는 하드웨어로 구현될 수 있다. The key management core 200 supports the block encryption unit 230 having various key sizes and can provide a key generation function, a key encryption function, a key decryption function, a key load function, and a key destruction function. The key management core 200 may be implemented in hardware.

난수 발생기(250)는 진성 난수(pure random number) 또는 의사 난수(pseudo random number)를 생성할 수 있다. 난수 발생기(250)는 생성된 난수(DEK)를 키 관리 코어(200)로 제공할 수 있다. 난수 발생기(250)는 생성된 난수(DEK)를 호스트 인터페이스(22)를 통해 데이터 처리 시스템(10)의 다른 구성 요소로 전송할 수 있다. 난수 발생기(250)는 키 관리자(120)에 위치하는 것으로 도시되어 있으나, 난수 발생기(250)는 키 관리자(120)의 외부에 위치할 수 있다.The random number generator 250 may generate a pure random number or a pseudo random number. The random number generator 250 may provide the generated random number DEK to the key management core 200. [ The random number generator 250 may transmit the generated random number DEK to the other components of the data processing system 10 via the host interface 22. Although the random number generator 250 is shown as being located in the key manager 120, the random number generator 250 may be located outside the key manager 120.

고유값 저장부(260)는 고유값(KEK)을 저장할 수 있다. 고유값(KEK)은 데이터 처리 시스템(10)에 대응하는 고유한 값일 수 있다. 복수의 서로 다른 데이터 처리 시스템들의 고유값들은 서로 다를 수 있다. 예시적으로, 고유값 저장부(260)는 고유값(KEK)을 저장하도록 구성되는 원-타임 프로그램(OTP, One-Time Program) 회로, 전기 퓨즈(electric fuse), 레이저 퓨즈(laser fuse) 등을 포함할 수 있다. 고유값 저장부(260)는 고유값(KEK)을 저장하도록 구성되는 불휘발성 메모리를 포함할 수 있다. 고유값 저장부(260)는 고유값(KEK)을 키 관리 코어(200)로 출력할 수 있다.The eigenvalue storage unit 260 may store the eigenvalue (KEK). The eigenvalue (KEK) may be a unique value corresponding to the data processing system 10. The eigenvalues of a plurality of different data processing systems may be different. Illustratively, the eigenvalue storage 260 may include a One-Time Program (OTP) circuit configured to store an eigenvalue (KEK), an electric fuse, a laser fuse, . ≪ / RTI > The eigenvalue storage unit 260 may include a nonvolatile memory configured to store an eigenvalue (KEK). The eigenvalue storage unit 260 may output the eigenvalue (KEK) to the key management core 200.

고유값 저장부(260)는 데이터 처리 시스템(10)에서 구동되는 운영체제, 어플리케이션 등과 같은 소프트웨어에 의한 액세스가 불능일(또는 금지될) 수 있다. 예를 들어, 고유값 저장부(260)는 소프트웨어에 의해 액세스가 가능한 어드레스가 할당되지 않는 블록일 수 있다. 고유값 저장부(260)에 어드레스가 할당되는 경우에도, 고유값 저장부(260)에 대한 소프트웨어의 액세스 요청(읽기, 쓰기 또는 소거 요청)은 무시될 수 있다.The eigenvalue storage unit 260 may be disabled (or prohibited) by software, such as an operating system, an application, or the like, which is driven in the data processing system 10. [ For example, the eigenvalue storage unit 260 may be a block in which addresses that can be accessed by software are not allocated. Even when an address is assigned to the eigenvalue storage unit 260, the access request (read, write or erase request) of the software to the eigenvalue storage unit 260 can be ignored.

도 2에서, 고유값 저장부(260)는 키 관리자(120) 내부에 위치하는 것으로 도시되어 있으나, 고유값 저장부(260)는 키 관리자(120)의 외부에 위치할 수 있다.2, the eigenvalue storage unit 260 is located inside the key manager 120, but the eigenvalue storage unit 260 may be located outside the key manager 120.

키 메모리(270)는 암호화되지 않은 키를 저장하고, 암호화된 키 메모리(280)는 암호화된 키를 저장할 수 있다.The key memory 270 stores the unencrypted key, and the encrypted key memory 280 stores the encrypted key.

키 관리 코어(200)는 레지스터(210), 메인 컨트롤러(220), 블록 암호화부(230), 그리고 해시부(240)를 포함한다.The key management core 200 includes a register 210, a main controller 220, a block encryption unit 230, and a hash unit 240.

레지스터(210)는 커맨드 레지스터(211), 사용자 설정 값 레지스터(213) 및 상태 레지스터를 포함한다. 커맨드 레지스터(211)는 호스트(21)로부터 수신되는 커맨드를 저장한다. 상태 레지스터(212)는 호스트(21)의 커맨드를 실행한 결과를 저장한다. 상태 레지스터(212)의 데이터는 인터럽트 또는 폴링을 통해 호스트(21)로 보고된다. 사용자 설정 값 레지스터(213)는 호스트(21)로부터 수신되는 사용자 설정 값(USV)을 저장한다.The register 210 includes a command register 211, a user setting value register 213, and a status register. The command register 211 stores commands received from the host 21. The status register 212 stores the result of executing the command of the host 21. The data in the status register 212 is reported to the host 21 via an interrupt or poll. The user setting value register 213 stores a user setting value (USV) received from the host 21.

커맨드 및 사용자 설정 값(USV)은 호스트(21)에 의해 구동되는 운영체제 또는 어플리케이션에 의해 발행(issue)될 수 있다. 커맨드(CMD)는 키 관리자(120)에 키를 요청하는 커맨드, 키의 백업을 요청하는 커맨드, 그리고 키의 복원(restore)를 요청하는 커맨드를 포함할 수 있다. 커맨드(CMD)는 키 관리자(120)에 제1 스킴에 따른 키를 요청하는 커맨드, 그리고 제1 스킴과 다른 제2 스킴에 따른 키를 요청하는 커맨드를 포함할 수 있다.The command and user set value USV may be issued by an operating system or application driven by the host 21. The command CMD may include a command requesting the key manager 120 for a key, a command requesting a backup of the key, and a command requesting a restore of the key. The command CMD may include a command to the key manager 120 to request a key according to the first scheme and a command to request a key according to a second scheme different from the first scheme.

사용자 설정 값(USV)은 사용자에 의해 설정된 값일 수 있다. 동일한 사용자 설정 값은 동일한 사용자에 대응하고, 상이한 사용자 설정 값은 상이한 사용자에 대응할 수 있다. 예시적으로, 사용자는 호스트(21)에서 구동되는 어플리케이션일 수 있다. 호스트(21)에서 구동되는 어플리케이션들은 각각 서로 다른 사용자 설정 값들을 사용할 수 있다. 예를 들어, 어플리케이션들의 식별자들(ID)이 사용자 설정 값들로 사용될 수 있다.The user setting value (USV) may be a value set by the user. The same user settings correspond to the same user, and different user settings correspond to different users. Illustratively, the user may be an application running on the host 21. Applications running on the host 21 may use different user settings. For example, identifiers (IDs) of applications may be used as user settings.

사용자는 호스트(21)에서 구동되는 운영체제에 설정된 계정들일 수 있다. 동일한 계정은 동일한 사용자 설정 값을 사용하고, 서로 다른 계정들은 서로 다른 사용자 설정 값들을 사용할 수 있다. 사용자 설정 값은 계정에 설정된 패스워드, 계정에 설정된 패스워드로부터 생성된 데이터, 계정의 명칭, 계정의 명칭으로부터 생성된 데이터 등을 포함할 수 있다.The user may be an account set in the operating system running on the host 21. [ The same account can use the same user settings, and different accounts can use different user settings. The user setting value may include a password set in the account, data generated from the password set in the account, name of the account, data generated from the name of the account, and the like.

사용자는 데이터 처리 시스템(10)을 포함하는 단말기일 수 있다. 동일한 단말기는 동일한 사용자 설정 값을 사용할 수 있다. 사용자 설정 값은 단말기를 사용하는 사용자에 의해 설정된 잠금 패스워드일 수 있다.The user may be a terminal including the data processing system 10. The same terminal can use the same user setting value. The user setting value may be a lock password set by the user using the terminal.

사용자는 호스트(21)에서 구동되는 소프트웨어들의 그룹들일 수 있다. 동일한 그룹은 동일한 사용자 설정 값을 사용하고, 서로 다른 그룹들은 서로 다른 사용자 설정 값들을 사용할 수 있다. 소프트웨어의 그룹들은 소프트웨어의 카테고리 또는 소프트웨어가 배치된 폴더 등에 따라 분류될 수 있다.The user may be groups of software running on the host 21. [ The same group can use the same user settings, and different groups can use different user settings. The groups of software can be classified according to the category of the software or the folder where the software is placed.

사용자는 일반 사람(User)일 수 있다. 동일한 사람은 동일한 사용자 설정 값을 사용할 수 있다.The user may be a general user. The same person can use the same user settings.

메인 컨트롤러(220)는 호스트(21)로부터의 커맨드를 번역하고 실행한다. 메인 컨트롤러(220)는 유한 스테이트 머신(FSM, Finite State Machine)으로 구현될 수 있다.The main controller 220 translates and executes the command from the host 21. [ The main controller 220 may be implemented as a finite state machine (FSM).

메인 컨트롤러(220)는 커맨드 레지스터(211)에 저장된 커맨드에 응답하여 동작할 수 있다. 메인 컨트롤러(220)는 사용자 설정 값 레지스터(213)에 저장된 사용자 설정 값(USV)을 이용하여 동작할 수 있다. 메인 컨트롤러(220)는 커맨드의 실행 결과를 상태 레지스터(212)에 저장할 수 있다. 예를 들어, 실행 결과는 제어 신호(CTRL)로서 상태 레지스터(212)에 저장될 수 있다.The main controller 220 can operate in response to the command stored in the command register 211. [ The main controller 220 may operate using the user setting value USV stored in the user setting value register 213. [ The main controller 220 can store the execution result of the command in the status register 212. [ For example, the execution result may be stored in the status register 212 as the control signal CTRL.

메인 컨트롤러(220)는 난수 발생기(250)로부터 난수(DEK)를 수신할 수 있다. 메인 컨트롤러(220)는 고유값 저장부(260)로부터 고유값(KEK)을 수신할 수 있다. 사용자 설정 값(USV), 난수(DEK), 그리고 고유값(KEK)에 기반하여, 메인 컨트롤러(220)는 키를 생성할 수 있다.The main controller 220 can receive the random number DEK from the random number generator 250. [ The main controller 220 may receive the eigenvalue (KEK) from the eigenvalue storage 260. [ Based on the user set value USV, the random number DEK, and the eigenvalue (KEK), the main controller 220 can generate a key.

예를 들어, 제1 스킴에 따라, 메인 컨트롤러(220)는 블록 암호화(block cipher) 또는 키 해시(key hash)를 이용하여 사용자 설정 값(USV) 및 고유값(KEK)으로부터 키를 도출할 수 있다. 메인 컨트롤러(220)는 출력값으로부터 입력값을 추출 또는 유추할 수 없는 다양한 도출 방법들 중 하나를 이용하여, 사용자 설정 값(USV) 및 고유값(KEK)으로부터 키를 도출할 수 있다.For example, according to a first scheme, the main controller 220 can derive a key from a user-set value USV and a unique value KEK using a block cipher or a key hash have. The main controller 220 may derive the key from the user set value USV and the unique value KEK using one of various derivation methods that can not extract or infer an input value from the output value.

예를 들어, 제2 스킴에 따라, 메인 컨트롤러(220)는 난수 발생기(250)로부터 수신된 난수(DEK)를 키로 선택할 수 있다. 메인 컨트롤러(220)는 키로 선택된 난수(DEK) 및 사용자 설정 값(USV)을 상호 연관하여 관리할 수 있다. 메인 컨트롤러(220)는 상호 연관된 키 및 사용자 설정 값(USV)을 키 메모리(270)에 저장할 수 있다. 메인 컨트롤러(220)는 상호 연관된 키 및 사용자 설정 값(USV)을 블록 암호화부(230) 및 해시부(240)로 전달할 수 있다.For example, according to the second scheme, the main controller 220 can select a random number (DEK) received from the random number generator 250 as a key. The main controller 220 can correlate and manage the random number (DEK) and the user setting value (USV) selected by the key. The main controller 220 may store the correlated key and user set value (USV) in the key memory 270. The main controller 220 may transmit the mutually related keys and the user setting value USV to the block encryption unit 230 and the hash unit 240. [

메인 컨트롤러(290)는 사용자 체크 블록(290)을 포함한다. 사용자 체크 블록(290)은 사용자 설정 값 레지스터(213)로부터 수신되는 사용자 설정 값(USV)이, 키 메모리(270)에 저장된 사용자 설정 값들 중 하나와 일치하는지 판별할 수 있다. 사용자 체크 블록(290)에서 사용자 체크가 수행되면, 메인 컨트롤러(220)는 사용자 체크의 결과에 따라 후속 동작을 수행할 수 있다.The main controller 290 includes a user check block 290. The user check block 290 may determine whether the user setting value USV received from the user setting value register 213 matches one of the user setting values stored in the key memory 270. [ When the user check is performed in the user check block 290, the main controller 220 may perform a subsequent operation according to the result of the user check.

예를 들어, 커맨드 레지스터(211)로부터 수신되는 커맨드가 제1 타입의 키를 요청하는 커맨드일 때, 메인 컨트롤러(220)는 고유값(KEK) 및 사용자 설정 값(USV)으로부터 키를 도출할 수 있다. 예를 들어, 제1 타입의 키가 필요할 때, 호스트(21)는 제1 타입의 키를 요청하는 커맨드 및 사용자 설정 값(USV)을 레지스터(210)로 전송할 수 있다.For example, when the command received from the command register 211 is a command requesting a key of the first type, the main controller 220 can derive the key from the unique value KEK and the user set value USV have. For example, when a first type of key is needed, the host 21 may send a command to request a key of the first type and a user set value USV to the register 210.

예를 들어, 커맨드 레지스터(211)로부터 수신되는 커맨드가 제2 타입의 키를 요청(예를 들어, 생성 요청)하는 커맨드일 때, 메인 컨트롤러(220)는 난수(DEK)를 키로서 선택하고, 선택된 키 및 사용자 설정 값(USV)을 연관하여 키 메모리(270)에 저장할 수 있다. 즉, 제2 타입의 키가 필요할 때, 호스트(21)는 제2 타입의 키를 요청하는 커맨드 및 사용자 설정 값(USV)을 레지스터(210)로 전송할 수 있다.For example, when the command received from the command register 211 is a command for requesting (e.g., generating request) a key of the second type, the main controller 220 selects the random number DEK as a key, The selected key and the user set value USV may be stored in the key memory 270 in association with each other. That is, when a second type of key is needed, the host 21 may send a command to request a second type of key and a user set value USV to the register 210.

예를 들어, 커맨드 레지스터(211)로부터 수신되는 커맨드가 제2 타입의 키를 요청(예를 들어, 미리 생성된 키의 로드를 요청)하는 커맨드일 때, 사용자 체크 블록(290)은 사용자 설정 값 레지스터(213)로부터 수신되는 사용자 설정 값(USV)과 대응하는(예를 들어, 동일한) 사용자 설정 값이 키 메모리(270)에 존재하는지 판별한다. 대응하는 사용자 설정 값이 키 메모리(270)에 존재하는 경우, 메인 컨트롤러(220)는 대응하는 사용자 설정 값과 연관되어 키 메모리(250)에 저장된 키, 즉 난수(DEK)를 선택할 수 있다. 즉, 제2 타입의 키가 필요할 때, 호스트(21)는 제2 타입의 키를 요청하는 커맨드 및 사용자 설정 값(USV)을 레지스터(210)로 전송할 수 있다.For example, when the command received from the command register 211 is a command to request a second type of key (e.g., request loading of a pre-generated key), the user check block 290 returns a user- (For example, the same) user setting value corresponding to the user setting value USV received from the register 213 is present in the key memory 270. [ The main controller 220 can select the key stored in the key memory 250, i.e., the random number DEK, in association with the corresponding user setting value, if a corresponding user setting value exists in the key memory 270. [ That is, when a second type of key is needed, the host 21 may send a command to request a second type of key and a user set value USV to the register 210.

예를 들어, 커맨드 레지스터(211)로부터 수신되는 커맨드가 제2 타입의 키의 백업을 요청하는 커맨드일 때, 사용자 체크 블록(290)은 사용자 설정 값 레지스터(213)로부터 수신되는 사용자 설정 값(USV)과 대응하는(예를 들어, 동일한) 사용자 설정 값이 키 메모리(270)에 존재하는지 판별한다. 대응하는 사용자 설정 값이 키 메모리(270)에 존재하는 경우, 메인 컨트롤러(220)는 대응하는 사용자 설정 값(USV) 및 연관된 키(KEY)를 블록 암호화부(230) 및 해시부(240)로 전송할 수 있다. 블록 암호화부(230) 및 해시부(240)를 통해 암호화된 키는 암호화된 키 메모리(280)에 저장될 수 있다. 즉, 제2 타입의 키의 백업이 필요할 때, 호스트(21)는 제2 타입의 키를 요청하는 커맨드 및 사용자 설정 값(USV)을 레지스터(210)로 전송할 수 있다.For example, when the command received from the command register 211 is a command requesting a backup of a second type of key, the user check block 290 receives a user set value (USV (E.g., the same) user setting value is present in the key memory 270. [ The main controller 220 sends the corresponding user setting value USV and the associated key KEY to the block encryption unit 230 and the hash unit 240 Lt; / RTI > The encrypted key through the block encryption unit 230 and the hash unit 240 may be stored in the encrypted key memory 280. [ That is, when a backup of the second type of key is needed, the host 21 may send a command to request the second type of key and a user set value USV to the register 210.

블록 암호화부(230)는 메인 컨트롤러(220)의 제어에 따라, 데이터 및 키를 암호화 또는 복호화(또는 복원)할 수 있다. 예를 들어, 블록 암호화부(230)는 메인 컨트롤러(220)로부터 키 및 사용자 설정 값(USV)을 수신할 수 있다. 블록 암호화부(230)는 해시부(240)로부터 해시를 수신할 수 있다. 블록 암호화부(230)는 고정값을 이용하여, 키, 사용자 설정 값(USV) 및 해시를 암호화할 수 있다. 암호화된 데이터는 암호화된 키 메모리(280)에 저장될 수 있다. 또한, 블록 암호화부(230)는 암호화된 키 메모리(280)로부터 암호화된 데이터를 읽고, 고정값을 이용하여 복호를 수행할 수 있다. 블록 암호화부(230)는 복호를 수행하여 키, 사용자 설정 값(USV) 및 해시를 복원할 수 있다. 예시적으로, 고정값은 고유값 저자장부(260)로부터 출력되는 고유값(KEK)을 포함할 수 있다.The block encryption unit 230 can encrypt or decrypt (or restore) the data and the key under the control of the main controller 220. For example, the block encryption unit 230 may receive a key and a user setting value (USV) from the main controller 220. The block encryption unit 230 may receive a hash from the hash unit 240. [ The block encryption unit 230 can encrypt a key, a user set value (USV), and a hash using a fixed value. The encrypted data may be stored in the encrypted key memory 280. In addition, the block encryption unit 230 may read the encrypted data from the encrypted key memory 280 and perform decryption using the fixed value. The block encryption unit 230 may perform a decryption to recover a key, a user set value (USV), and a hash. Illustratively, the fixed value may include a unique value (KEK) output from the eigenvalue author book 260.

블록 암호화부(230)는 코어 로직(231), 키 레지스터(232), 입력 데이터 레지스터(233) 및 출력 데이터 레지스터(234)를 포함한다.The block encryption unit 230 includes a core logic 231, a key register 232, an input data register 233, and an output data register 234.

코어 로직(231)은 암호화 및 복호화를 수행하는 로직일 수 있다. 키 레지스터(232)는 키(예를 들어, DEK 는 KEK)를 임시로 저장할 수 있다. 입력 데이터 레지스터(233)는 암호화 또는 복호화될 데이터를 임시로 저장할 수 있다. 출력 데이터 레지스터(234)는 암호화 또는 복호화된 데이터를 임시로 저장할 수 있다.Core logic 231 may be logic that performs encryption and decryption. The key register 232 may temporarily store a key (e.g., DEK KEK). The input data register 233 may temporarily store data to be encrypted or decrypted. The output data register 234 may temporarily store the encrypted or decrypted data.

해시부(240)는 메인 컨트롤러(220)의 제어에 따라 키 및 사용자 설정 값(USV)의 해시를 생성할 수 있다. 해시부(240)의 해시 알고리즘은 임의의 길이의 입력값을 고정된 길이의 출력값으로 변환할 수 있다. 출력값은 해시일 수 있다. 해시부(240)는 해시를 생성하는 코어(232), 입력 데이터를 저장하는 입력 데이터 레지스터(242) 및 출력 데이터(예를 들어, 해시)를 저장하는 출력 데이터 레지스터(243)를 포함할 수 있다.The hash unit 240 may generate a hash of the key and the user set value USV according to the control of the main controller 220. [ The hash algorithm of the hash unit 240 may convert an input value having an arbitrary length into an output value having a fixed length. The output value may be a hash. The hash portion 240 may include a core 232 that generates a hash, an input data register 242 that stores input data, and an output data register 243 that stores output data (e.g., a hash) .

키 관리자(120)는 호스트 인터페이스(22)를 통해 호스트(21)와 인터페이스한다. 호스트 인터페이스(22)는 커맨드, 상태 및 키를 호스트(21) 및 키 관리자(120) 사이에서 전송할 수 있다. 호스트 인터페이스(22)는 AMBA, AHB 등을 포함할 수 있으나, 한정되지 않는다.The key manager 120 interfaces with the host 21 via the host interface 22. The host interface 22 may send commands, status and keys between the host 21 and the key manager 120. The host interface 22 may include, but is not limited to, AMBA, AHB, and the like.

도 3는 본 발명의 실시 예에 따른 키 관리 블록(170)의 동작 방법을 보여주는 순서도이다. 도 2 및 도 3을 참조하면, S110 단계에서, 키 관리자(120)는 호스트(21)로부터 커맨드(CMD) 및 사용자 설정 값(USV)을 수신한다. 예를 들어, 키 관리자(120)는 호스트(21)에서 구동되는 운영체제 또는 어플리케이션에 의해 발행된 커맨드(CMD) 및 사용자 설정 값(USV)을 수신할 수 있다.3 is a flowchart illustrating an operation method of the key management block 170 according to an embodiment of the present invention. Referring to FIGS. 2 and 3, in step S110, the key manager 120 receives a command CMD and a user setting value USV from the host 21. For example, the key manager 120 may receive a command (CMD) and a user setting value (USV) issued by an operating system or application running on the host 21.

S120 단계에서, 키 관리자(120)는 수신된 커맨드(CMD)를 분석한다. 예를 들어, 메인 컨트롤러(220)는 커맨드 레지스터(211)에 저장된 커맨드를 분석할 수 있다.In step S120, the key manager 120 analyzes the received command CMD. For example, the main controller 220 may analyze the command stored in the command register 211. [

S130 단계에서, 키 관리자(120)는 커맨드(CMD)의 분석 결과에 따라, 사용자 설정 값(USV)을 이용하여 키(KEY)를 생성한다. 예를 들어, 메인 컨트롤러(220)는 제1 스킴에 따라 사용자 설정 값(USV) 및 고유값(KEK)으로부터 키(KEY)를 도출할 수 있다. 메인 컨트롤러(220)는 제2 스킴에 따라 난수 발생기(250)로부터 출력되는 난수(DEK)를 키(KEY)로 선택할 수 있다. 메인 컨트롤러(220)는 제2 스킴에 따라 키 메모리(270)에 저장된 사용자 설정 값(USV)에 대응하는 키(KEY)를 선택할 수 있다.In step S130, the key manager 120 generates a key KEY using the user set value USV according to the analysis result of the command CMD. For example, the main controller 220 may derive a key KEY from a user setting value USV and an eigenvalue (KEK) according to a first scheme. The main controller 220 can select the random number DEK output from the random number generator 250 as the key KEY according to the second scheme. The main controller 220 may select the key KEY corresponding to the user set value USV stored in the key memory 270 according to the second scheme.

예시적으로, 키(KEY)의 생성은 사용자 설정 값(USV)의 인증에 기반하여 수행될 수 있다. 사용자 설정 값(USV)이 올바른 값이 아닌 경우, 메인 컨트롤러(220)는 사용자 설정 값(USV) 및 고유값(KEK)으로부터 부적절한 키를 생성한다. 사용자 설정 값(USV)이 올바른 값이 아닌 경우, 메인 컨트롤러(220)는 키 메모리(270)에서 올바른 키(KEY)를 선택할 수 없다. 올바른 키가 선택되지 않으면, 정상적으로 암호화 또는 복호화가 수행될 수 없다. 즉, 암호화된 데이터에 대한 부적절한 접근이 방지된다.Illustratively, the generation of the key KEY may be performed based on authentication of the user set value USV. If the user setting value USV is not a correct value, the main controller 220 generates an improper key from the user setting value USV and the eigenvalue KEK. If the user set value USV is not a correct value, the main controller 220 can not select the correct key (KEY) in the key memory 270. If the correct key is not selected, encryption or decryption can not be performed normally. That is, improper access to the encrypted data is prevented.

본 발명에 따르면, 사용자 설정 값(USV)을 이용하여 인증이 수행되고, 인증이 성공한 경우에, 소프트웨어에 의해 액세스될 수 없는 키를 사용하여 데이터의 암호화 및 복호화가 수행된다. 키는 소프트웨어에 의해 액세스될 수 없는 고유값(KEK)을 이용하여 생성되거나, 난수(KEK)를 이용하여 생성된다. 따라서, 해킹과 같은 부적절한 방법으로 키를 획득하거나 데이터를 획득하고자 하는 시도가 차단되므로, 키 관리자(120) 및 키 관리자(120)를 포함하는 데이터 프로세싱 시스템(10)의 보안성이 향상된다.According to the present invention, authentication is performed using a user setting value (USV), and when authentication is successful, encryption and decryption of data is performed using a key that can not be accessed by software. The key is generated using a unique value (KEK) that can not be accessed by software, or is generated using a random number (KEK). Thus, the security of the data processing system 10 including the key manager 120 and the key manager 120 is improved because an attempt to acquire or acquire the key in an improper manner such as hacking is blocked.

도 4는 커맨드(CMD)를 분석하는 단계(S120)를 더 상세하게 보여주는 순서도이다. 도 2 내지 도 4를 참조하면, S121 단계에서, 수신된 커맨드(CMD)가 제1 타입인지 판별된다. 예를 들어, 메인 컨트롤러(220)는 커맨드 레지스터(211)로부터 수신된 커맨드(CMD)가 제1 타입인지 판별할 수 있다.4 is a flow chart showing in more detail the step of analyzing the command CMD (S120). Referring to Figs. 2 to 4, in step S121, it is determined whether the received command CMD is the first type. For example, the main controller 220 can determine whether the command CMD received from the command register 211 is the first type.

수신된 커맨드(CMD)가 제1 타입이면, S123 단계에서, 키(KEY)를 관리하기 위한 제1 스킴이 선택된다. 예를 들어, 메인 컨트롤러(220)는 고유값(KEK) 및 사용자 설정 값(USB)을 이용하여 키(KEY)를 생성하는 제1 스킴을 선택할 수 있다.If the received command CMD is the first type, the first scheme for managing the key KEY is selected in step S123. For example, the main controller 220 may select a first scheme for generating a key KEY using a unique value KEK and a user set value USB.

수신된 커맨드(CMD)가 제1 타입이 아니면, S125 단계에서, 키(KEY)를 관리하기 위한 제2 스킴이 선택된다. 예를 들어, 메인 컨트롤러(220)는 난수 발생기(250)로부터 출력되는 난수(DEK)를 키로 선택하거나, 키 메모리(270)에 에 저장된 난수(DEK)를 키로 선택하는 제2 스킴을 선택할 수 있다.If the received command CMD is not the first type, the second scheme for managing the key KEY is selected in step S125. For example, the main controller 220 may select a random number (DEK) output from the random number generator 250 as a key or a second scheme for selecting a random number (DEK) stored in the key memory 270 as a key .

도 5는 제1 스킴이 선택된 때의 키 관리자(120)의 동작을 설명하기 위한 도면이다. 예시적으로, 도 2의 키 관리자(120)와 비교하면, 제1 스킴이 선택된 때에 사용되지 않는 블록들이 점선으로 도시되어 있다. 도 5를 참조하면, 제1 스킴이 선택된 때에, 블록 암호화부(230), 해시부(240), 난수 발생기(250), 키 메모리(270), 암호화된 키 메모리(280), 그리고 사용자 체크 블록(290)이 사용되지 않을 수 있다.5 is a diagram for explaining the operation of the key manager 120 when the first scheme is selected. Illustratively, compared to the key manager 120 of FIG. 2, the blocks that are not used when the first scheme is selected are shown in dashed lines. 5, when the first scheme is selected, the block encryption unit 230, the hash unit 240, the random number generator 250, the key memory 270, the encrypted key memory 280, (290) may not be used.

도 6은 제1 스킴의 예를 보여주는 순서도이다. 예시적으로, 제1 스킴을 이용하여 키를 생성하는 동작이 도 6에 도시된다. 예를 들어, 호스트(21)로부터 수신되는 커맨드(CMD)는 제1 타입의 커맨드일 수 있다. 6 is a flow chart showing an example of the first scheme. Illustratively, the operation of generating a key using the first scheme is shown in FIG. For example, the command CMD received from the host 21 may be a command of the first type.

도 5 및 도 6을 참조하면, S141 단계에서, 고유값(KEK)이 읽어진다. 예를 들어, 메인 컨트롤러(220)는 고유값 저장부(260)로부터 고유값(KEK)을 읽을 수 있다. 예를 들어, 키 도출 블록(173)은 고유값 저장부(260)에 저장된 고유값 중 일부분을 고유값(KEK)으로 읽을 수 있다.Referring to FIGS. 5 and 6, in step S141, the eigenvalue (KEK) is read. For example, the main controller 220 may read the eigenvalue (KEK) from the eigenvalue storage 260. [ For example, the key derivation block 173 may read a portion of the eigenvalues stored in the eigenvalue storage unit 260 as an eigenvalue (KEK).

S143 단계에서, 사용자 설정 값(USV1) 및 고유값(KEK)을 이용하여 키(KEY)가 생성된다. 예를 들어, 메인 컨트롤러(220)는 사용자 설정 값(USV) 및 고유값(KEK)에 대해 미리 정의된 알고리즘을 적용하여, 키(KEY)를 생성할 수 있다. 메인 컨트롤러(220)는 블록 암호화(block cipher) 또는 키 해시(key hash)를 이용하여 사용자 설정 값(USV) 및 고유값(KEK)으로부터 키(KEY)를 도출할 수 있다. 메인 컨트롤러(220)는 출력값으로부터 입력값을 추출 또는 유추할 수 없는 다양한 도출 알고리즘들 중 하나를 이용하여, 사용자 설정 값(USV) 및 고유값(KEK)으로부터 키(KEY)를 도출할 수 있다. 메인 컨트롤러(220)는 동일한 입력에 대해 동일한 출력을 생성하는 알고리즘을 이용하여 키(KEY)를 생성할 수 있다.In step S143, the key KEY is generated using the user setting value USV1 and the eigenvalue (KEK). For example, the main controller 220 may generate a key KEY by applying a predefined algorithm to the user set value USV and the unique value KEK. The main controller 220 may derive the key KEY from the user set value USV and the unique value KEK using a block cipher or a key hash. The main controller 220 can derive the key KEY from the user set value USV and the unique value KEK using one of various derivation algorithms that can not extract or infer an input value from the output value. The main controller 220 may generate the key KEY using an algorithm that produces the same output for the same input.

예시적으로, 생성된 키(KEY)는 호스트(21)로 출력되거나, 또는 블록 암호화부(230)로 전송될 수 있다. 호스트(21) 또는 블록 암호화부(230)에서, 키(KEY)는 데이터의 암호화를 위해 사용될 수 있다.Illustratively, the generated key (KEY) may be output to the host (21) or transmitted to the block encryption unit (230). In the host 21 or the block encryption unit 230, the key KEY may be used for encrypting the data.

상술된 바와 같이, 제1 스킴은 키(KEY)가 필요할 때마다 즉시(instantly) 키(KEY)를 생성하는 방식을 사용한다. 고유값 저장부(260)는 항상 동일한 값을 갖는 고유값(KEK)을 출력한다. 따라서, 동일한 제1 값을 갖는 사용자 설정 값(USV)이 입력되면 항상 동일한 제1 값을 갖는 키(KEY)가 출력된다. 제1 값과 상이한 제2 값을 갖는 사용자 설정 값(USV)이 입력되면 제1 값과 상이한 제2 값을 갖는 키(KEY)가 출력된다. 따라서, 올바른 사용자에 대해서만 적절한 키(KEY)가 생성되므로, 사용자 인증에 기반한 향상된 보안성을 갖는 키 관리자(120) 및 키 관리자(120)를 포함하는 데이터 처리 시스템(10), 그리고 데이터 관리 방법이 제공된다. 또한, 고유값(KEK)은 호스트(21)에서 구동되는 소프트웨어에 의해 액세스되지 않는다. 따라서, 향상된 보안성을 갖는 키 관리자(120) 및 키 관리자(120)를 포함하는 데이터 처리 시스템(10), 그리고 데이터 관리 방법이 제공된다.As described above, the first scheme uses a method of instantly generating a key (KEY) whenever a key (KEY) is needed. The eigenvalue storage unit 260 always outputs an eigenvalue (KEK) having the same value. Accordingly, when the user set value USV having the same first value is input, the key KEY having the same first value is always output. When a user set value (USV) having a second value different from the first value is input, a key (KEY) having a second value different from the first value is output. Therefore, since the appropriate key (KEY) is generated only for the right user, the data processing system 10 including the key manager 120 and the key manager 120 having the improved security based on the user authentication, and the data management method / RTI > In addition, the eigenvalue (KEK) is not accessed by the software running on the host 21. Accordingly, a data processing system 10 including a key manager 120 and a key manager 120 with improved security, and a data management method are provided.

도 7은 제2 스킴의 제1 예를 보여주는 순서도이다. 예시적으로, 제2 스킴을 이용하여 키를 생성하는 동작이 도 7에 도시된다. 예를 들어, 호스트(21)로부터 수신된 커맨드(CMD)는 제2 타입이고, 키(KEY)의 생성을 요청하는 커맨드일 수 있다.7 is a flowchart showing a first example of the second scheme. Illustratively, the operation of generating a key using the second scheme is shown in FIG. For example, the command CMD received from the host 21 is of the second type, and may be a command requesting the generation of the key KEY.

도 2 및 도 7을 참조하면, S151 단계에서, 난수(DEK) 및 사용자 설정 값(USV)이 수신된다. 메인 컨트롤러(220)는 난수 발생기(250)로부터 난수(DEK)를 수신하고, 사용자 설정 값 레지스터(213)로부터 사용자 설정 값(USV)을 수신할 수 있다.2 and 7, in step S151, the random number DEK and the user setting value USV are received. The main controller 220 may receive the random number DEK from the random number generator 250 and receive the user setting value USV from the user setting value register 213. [

S153 단계에서, 난수(DEK)가 사용자 설정 값(USV)과 연관된 키로 선택된다. 예를 들어, 난수(DEK)는 사용자 설정 값(USV)에 대응하는 키로 선택될 수 있다. 키로 선택된 난수(DEK)는 연관된 사용자 설정 값(USV)과 함께 키 메모리(270)에 저장될 수 있다.In step S153, the random number DEK is selected with a key associated with the user setting value USV. For example, the random number DEK may be selected with a key corresponding to the user setting value USV. The random number DEK selected with the key may be stored in the key memory 270 together with the associated user setting value USV.

예시적으로, 사용자 설정 값(USV) 및 키(KEY)로 선택된 난수(DEK)는 해시부(240)로 전송될 수 있다. 해시부(240)는 사용자 설정 값(USV) 및 키(KEY)에 기반하여 해시를 생성할 수 있다. 생성된 해시는 블록 암호화부(230)로 전송될 수 있다.Illustratively, the random number DEK selected by the user setting value USV and the key KEY may be transmitted to the hash portion 240. [ The hash unit 240 may generate a hash based on the user setting value USV and the key KEY. The generated hash can be transmitted to the block encryption unit 230.

사용자 설정 값(USV) 및 키(KEY)로 선택된 난수(DEK)는 블록 암호화부(230)로도 전송될 수 있다. 블록 암호화부(230)는 해시부(240)로부터 해시를 수신할 수 있다. 블록 암호화부(230)는 고정값을 이용하여, 사용자 설정 값(USV), 키로 선택된 난수(DEK), 그리고 해시를 암호화할 수 있다. 고정된 값은 고유값 저장부(260)로부터 출력되는 고유값(KEK)일 수 있다. 암호화된 데이터는 암호화된 키 메모리(280)에 저장될 수 있다. 즉, 키는 암호화되어 백업된다. 예시적으로, 키의 백업은 키의 생성에 후속하여 또는 호스트(21)의 요청에 따라 수행될 수 있다.The random number DEK selected by the user setting value USV and the key KEY may also be transmitted to the block encryption unit 230. [ The block encryption unit 230 may receive a hash from the hash unit 240. [ The block encryption unit 230 may encrypt a user set value (USV), a random number (DEK) selected by a key, and a hash using a fixed value. The fixed value may be a unique value (KEK) output from the eigenvalue storage unit 260. [ The encrypted data may be stored in the encrypted key memory 280. That is, the key is encrypted and backed up. Illustratively, a backup of the key may be performed following the creation of the key or upon the request of the host 21.

다른 예로서, 사용자 체크 블록(290)은 사용자 설정 값(USV)을 이용하여 사용자 체크를 수행할 수 있다. 즉, 사용자 체크 블록(290)은 사용자 설정 값(USV)이 키 메모리(270)에 저장되어 있는지 확인할 수 있다. 사용자 설정 값(USV)이 키 메모리(270)에 저장되어 있지 않은 경우, 메인 컨트롤러(220)는 난수 발생기(250)로부터 출력되는 난수(DEK)를 키(KEY)로 선택할 수 있다. 사용자 설정 값(USV)이 키 메모리(270)에 저장되어 있는 경우, 메인 컨트롤러(220)는 사용자 설정 값(USV)에 대응하는 키(KEY)가 이미 생성되어 있음을 호스트(21)에 통지할 수 있다. 다른 예로서, 사용자 설정 값(USV)이 키 메모리(270)에 저장되어 있는 경우, 메인 컨트롤러(220)는 사용자 설정 값(USV)에 대응하며 키 메모리(270)에 저장되어 있는 난수(DEK)를 키로 선택할 수 있다.As another example, the user check block 290 may perform a user check using a user set value (USV). That is, the user check block 290 can check whether the user setting value USV is stored in the key memory 270. [ If the user set value USV is not stored in the key memory 270, the main controller 220 can select the random number DEK output from the random number generator 250 as a key KEY. If the user setting value USV is stored in the key memory 270, the main controller 220 notifies the host 21 that the key KEY corresponding to the user setting value USV has already been generated . As another example, when the user set value USV is stored in the key memory 270, the main controller 220 generates a random number DEK corresponding to the user set value USV and stored in the key memory 270, Can be selected by the key.

예시적으로, 생성된 키(KEY)는 호스트(21)로 출력되거나, 또는 블록 암호화부(230)로 전송될 수 있다. 호스트(21) 또는 블록 암호화부(230)에서, 키(KEY)는 데이터의 암호화를 위해 사용될 수 있다.Illustratively, the generated key (KEY) may be output to the host (21) or transmitted to the block encryption unit (230). In the host 21 or the block encryption unit 230, the key KEY may be used for encrypting the data.

도 8은 키 메모리(270)의 예를 보여주는 블록도이다. 도 8을 참조하면, 키 메모리(270)는 사용자 설정 값 리스트(UL) 및 키 리스트(KL)를 저장할 수 있다. 사용자 설정 값 리스트(UL)는 복수의 사용자 설정 값들(USV_1~USV_n)을 포함할 수 있다. 키 리스트(KL)는 복수의 키들(KEY_1~KEY_n)을 포함할 수 있다. 복수의 사용자 설정 값들(USV_1~USV_n)은 복수의 키들(KEY_1~KEY_n)에 각각 대응할 수 있다. 예를 들어, 사용자 설정 값(USV_k) 및 키(KEY_k)가 사용자 설정 값 리스트(UL) 및 키 리스트(KL)에 각각 등록될 때, 사용자 설정 값(USV_k) 및 키(KEY_k)가 상호 연관되어 있음을 가리키는 정보가 함께 생성 및 저장될 수 있다. 다른 예로서, 상호 연관된 사용자 설정 값(USB_k) 및 키(KEY_k)는 미리 정해진 규칙에 따라 미리 정해진 위치(예를 들어, 미리 정해진 어드레스 등)에 저장될 수 있다.FIG. 8 is a block diagram showing an example of the key memory 270. FIG. Referring to FIG. 8, the key memory 270 may store a user set value list (UL) and a key list (KL). The user set value list UL may include a plurality of user set values USV_1 to USV_n. The key list KL may include a plurality of keys KEY_1 to KEY_n. The plurality of user setting values USV_1 to USV_n may correspond to the plurality of keys KEY_1 to KEY_n, respectively. For example, when the user setting value USV_k and the key KEY_k are respectively registered in the user setting list UL and the key list KL, the user setting value USV_k and the key KEY_k are correlated May be created and stored together. As another example, the correlated user setting value USB_k and the key KEY_k may be stored in a predetermined position (e.g., a predetermined address, etc.) according to a predetermined rule.

도 9는 제2 스킴의 제2 예를 보여주는 순서도이다. 예시적으로, 제2 스킴을 이용하여 미리 생성된 키를 선택(또는 로딩)하는 동작이 도 9에 도시된다. 예를 들어, 호스트(21)로부터 수신된 커맨드(CMD)는 제2 타입이고, 미리 생성된 키(KEY)를 요청하는 커맨드일 수 있다.9 is a flowchart showing a second example of the second scheme. Illustratively, the operation of selecting (or loading) a pre-generated key using the second scheme is shown in FIG. For example, the command CMD received from the host 21 is of the second type, and may be a command requesting the key KEY generated in advance.

도 2 및 도 9를 참조하면, S161 단계에서, 사용자 설정 값(USV)이 키 메모리(270)에 저장되어 있는지 판별된다. 예를 들어, 사용자 체크 블록(290)은 사용자 설정 값 레지스터(213)로부터 수신되는 사용자 설정 값(USV)이 키 메모리(270)에 저장되어 있는지 판별할 수 있다.Referring to FIGS. 2 and 9, in step S161, it is determined whether the user setting value USV is stored in the key memory 270. For example, the user check block 290 can determine whether the user setting value USV received from the user setting value register 213 is stored in the key memory 270.

사용자 설정 값(USV)이 키 메모리(270)에 존재하면, S163 단계에서, 사용자 설정 값(USV)에 대응하는 키(KEY)가 키 메모리(270)로부터 읽어진다. 사용자 설정 값(USV)이 키 메모리(270)에 존재하지 않으면, 사용자 체크 블록(290) 또는 메인 컨트롤러(220)는 에러가 발생한 것으로 처리할 수 있다. 메인 컨트롤 블록(220)은 사용자 설정 값(USV)에 대응하는 키(KEY)가 생성되어 있지 않음을 호스트(21)에 통지할 수 있다.If the user set value USV is present in the key memory 270, the key KEY corresponding to the user set value USV is read from the key memory 270 in step S163. If the user set value USV is not present in the key memory 270, the user check block 290 or the main controller 220 can treat the error as occurring. The main control block 220 may notify the host 21 that no key KEY corresponding to the user set value USV has been generated.

다른 예로서, 사용자 설정 값(USV)이 키 메모리(270)에 존재하지 않을 때, 메인 컨트롤러(220)는 도 7을 참조하여 설명된 바와 같이 키(KEY)를 생성할 수 있다.As another example, when the user setting value USV is not present in the key memory 270, the main controller 220 may generate the key KEY as described with reference to FIG.

예시적으로, 읽어진 키(KEY)는 호스트(21)로 출력되거나, 또는 블록 암호화부(230)로 전송될 수 있다. 호스트(21) 또는 블록 암호화부(230)에서, 키(KEY)는 데이터의 암호화를 위해 사용될 수 있다.Illustratively, the read key KEY may be output to the host 21, or may be transmitted to the block encryption unit 230. In the host 21 or the block encryption unit 230, the key KEY may be used for encrypting the data.

도 10은 제2 스킴의 제3 예를 보여주는 순서도이다. 예시적으로, 제2 스킴을 이용하여 키를 백업하는 동작이 도 10에 도시된다. 예를 들어, 호스트(21)로부터 수신된 커맨드(CMD)는 제2 타입이고, 키(KEY)의 백업을 요청하는 커맨드일 수 있다.10 is a flowchart showing a third example of the second scheme. Illustratively, the operation of backing up a key using the second scheme is shown in FIG. For example, the command CMD received from the host 21 is of the second type, and may be a command requesting a backup of the key KEY.

도 2 및 도 10을 참조하면, S171 단계에서, 사용자 설정 값(USV)이 키 메모리(270)에 존재하는지 판별된다.Referring to FIGS. 2 and 10, in step S171, it is determined whether a user setting value USV exists in the key memory 270. FIG.

사용자 설정 값(USV)이 키 메모리(270)에 저장되어 있지 않으면, S179 단계에서, 백업이 수행되지 않고 종료된다. 메인 컨트롤러(220)는 사용자 설정 값(USV)에 대응하는 키(KEY)가 생성되어 있지 않음을 호스트(21)에 통지할 수 있다.If the user setting value USV is not stored in the key memory 270, the backup is not performed in step S179 and is terminated. The main controller 220 can notify the host 21 that no key KEY corresponding to the user set value USV has been generated.

사용자 설정 값(USV)이 키 메모리(270)에 저장되어 있으면, S173 단계에서, 사용자 설정 값(USV) 및 키(KEY)를 이용하여 해시가 생성된다. 예를 들어, 메인 컨트롤러(220)는 키(KEY) 및 사용자 설정 값(USV)을 해시부(240)로 전송할 수 있다. 해시부(230)는 키(KEY) 및 사용자 설정 값(USV)을 이용하여 해시를 생성할 수 있다.If the user set value USV is stored in the key memory 270, a hash is generated using the user set value USV and the key KEY in step S173. For example, the main controller 220 may transmit the key KEY and the user setting value USV to the hash unit 240. The hash unit 230 may generate the hash using the key KEY and the user set value USV.

S175 단계에서, 고정값을 이용하여 사용자 설정 값(USV), 키(KEY) 및 해시가 암호화된다. 예를 들어, 메인 컨트롤러(220)는 사용자 설정 값(USV) 및 키(KEY)를 블록 암호화부(230)로 전송한다. 해시부(240)는 해시를 블록 암호화부(230)로 전송한다. 블록 암호화부(230)는 고정값을 이용하여 사용자 설정 값(USV), 키(KEY) 및 해시를 암호화한다. 고정값은 블록 암호화부(230) 내부에서 생성되는 고정된 값 또는 고유값 저장부(260)로부터 출력되는 고유값(KEK)일 수 있다.In step S175, the user setting value USV, the key KEY, and the hash are encrypted using the fixed value. For example, the main controller 220 transmits the user setting value USV and the key KEY to the block encryption unit 230. The hash unit 240 transmits the hash to the block encryption unit 230. The block encryption unit 230 encrypts the user set value USV, the key KEY and the hash using the fixed value. The fixed value may be a fixed value generated in the block encryption unit 230 or an eigenvalue (KEK) output from the eigenvalue storage unit 260. [

S177 단계에서, 암호화된 데이터가 저장된다. 예를 들어, 암호화된 데이터는 암호화된 키 메모리(280)에 저장될 수 있다. 다른 예로서, 암호화된 데이터는 호스트 인터페이스(22)를 통해 호스트 인터페이스(22)에 연결된 불휘발성 메모리에 저장될 수 있다. 즉, 암호화된 데이터는 키 관리자(120)에서 내부적으로 또는 키 관리자(120) 외부의 불휘발성 메모리에 백업될 수 있다.In step S177, the encrypted data is stored. For example, the encrypted data may be stored in the encrypted key memory 280. As another example, the encrypted data may be stored in a non-volatile memory connected to the host interface 22 via the host interface 22. That is, the encrypted data may be backed up internally in the key manager 120 or in non-volatile memory outside the key manager 120.

도 11은 제2 스킴의 제4 예를 보여주는 순서도이다. 예시적으로, 제2 스킴을 이용하여 백업된 키를 복원하는 동작이 도 11에 도시된다. 예를 들어, 호스트(21)로부터 수신된 커맨드(CMD)는 제2 타입이고, 백업된 키(KEY)의 복원을 요청하는 커맨드일 수 있다.11 is a flowchart showing a fourth example of the second scheme. Illustratively, the operation of restoring a backed up key using the second scheme is shown in FIG. For example, the command CMD received from the host 21 is of the second type and may be a command requesting restoration of the backed-up key KEY.

도 2 및 도 11을 참조하면, S181 단계에서, 암호화된 데이터가 수신된다. 예를 들어, 암호화된 데이터는 백업된 저장소로부터 읽어질 수 있다. 암호화된 데이터는 암호화된 키 메모리(280) 또는 호스트 인터페이스(22)에 연결된 불휘발성 메모리로부터 읽어질 수 있다.2 and 11, in step S181, the encrypted data is received. For example, encrypted data can be read from the backed-up repository. The encrypted data may be read from the encrypted key memory 280 or from a non-volatile memory connected to the host interface 22. [

S183 단계에서, 암호화된 데이터가 복호된다. 블록 암호화부(230)는 암호화된 데이터를 수신하고, 암호화된 데이터를 고정값을 이용하여 복호할 수 있다. 고정값은 고유값 저장부(260)로부터 출력되는 고유값(KEK)일 수 있다.In step S183, the encrypted data is decrypted. The block encryption unit 230 receives the encrypted data and can decrypt the encrypted data using a fixed value. The fixed value may be an eigenvalue (KEK) output from the eigenvalue storage 260.

S185 단계에서, 해시 체크가 수행된다. 예를 들어, 메인 컨트롤러(220)는 사용자 설정 값 레지스터(213)에 저장된 사용자 설정 값(USV) 및 암호화된 데이터로부터 블록 암호화부(230)에 의해 복호된 키(KEY)를 해시부(240)로 전송할 수 있다. 해시부(240)는 사용자 설정 값 레지스터(213)로부터 전송된 사용자 설정 값(USV) 및 암호화된 데이터로부터 복호된 키(KEY)를 이용하여 해시를 생성할 수 있다. 메인 컨트롤러(220)는 해시부(240)에서 생성된 해시 및 암호화된 데이터로부터 블록 암호화부(230)에 의해 복호된 해시를 비교할 수 있다.In step S185, a hash check is performed. For example, the main controller 220 transmits the user setting value USV stored in the user setting value register 213 and the key KEY decrypted by the block encryption unit 230 from the encrypted data to the hash unit 240, Lt; / RTI > The hash unit 240 may generate a hash using the user set value USV sent from the user setting value register 213 and the key KEY decrypted from the encrypted data. The main controller 220 can compare the hash decrypted by the block encrypting unit 230 from the hash generated in the hash unit 240 and the encrypted data.

S187 단계에서, 해시 체크가 성공하는지 판별된다. 예를 들어, 비교되는 두 개의 해시들이 동일할 때, 메인 컨트롤러(220)는 해시 체크가 성공하는 것으로 판별할 수 있다. 비교되는 두 개의 해시들이 동일하지 않을 때, 메인 컨트롤러(220)는 해시 체크가 실패하는 것으로 판별할 수 있다.In step S187, it is determined whether or not the hash check succeeds. For example, when the two hashes to be compared are the same, the main controller 220 can determine that the hash check is successful. When the two hashes to be compared are not the same, the main controller 220 can determine that the hash check has failed.

해시 체크가 성공하면, S189 단계에서, 키(KEY) 및 사용자 설정 값(USV)이 키 메모리(280)에 저장된다. 해시 체크가 성공하지 않으면, S188 단계에서, 에러가 발생한 것으로 판별된다. 키(KEY)는 복원되지 않고, 메인 컨트롤러(220)는 복원이 실패하였음을 호스트(21)에 통지할 수 있다.If the hash check is successful, the key KEY and the user set value USV are stored in the key memory 280 in step S189. If the hash check is not successful, it is determined in step S188 that an error has occurred. The key KEY is not restored, and the main controller 220 can notify the host 21 that the restoration has failed.

예시적으로, 키(KEY)의 복원을 요청하는 커맨드와 함께 수신된 사용자 설정 값(USV)이 키(KEY)의 암호화 시에 사용된 사용자 설정 값(USV)과 동일할 때, 비교되는 두 개의 해시들은 동일할 수 있다. 또한, 암호화된 데이터로부터 복호된 키(KEY)에 에러가 존재하지 않을 때, 비교되는 두 개의 해시들은 동일할 수 있다. 즉, 권한을 갖는 사용자를 가리키는 올바는 사용자 설정 값이 입력될 때, 그리고 키(KEY)에 에러가 존재하지 않을 때, 키(KEY)는 백업된 저장소로부터 복원되어 키 메모리(270)에 저장된다. 권한을 갖지 않은 사용자를 가리키는 올바르지 않은 사용자 설정 값이 입력될 때, 또는 키(KEY)에 에러가 존재할 때, 키(KEY)는 복원되지 않는다.Illustratively, when the user set value USV received with the command requesting the restoration of the key KEY is equal to the user set value USV used in encrypting the key KEY, Hashes can be the same. Further, when there is no error in the key (KEY) decrypted from the encrypted data, the two hashes to be compared can be the same. That is, when a correct user setting value indicating a user with authority is input, and when there is no error in the key KEY, the key KEY is restored from the backed-up store and stored in the key memory 270 . When an invalid user setting value indicating an unauthorized user is input, or when an error exists in the key (KEY), the key (KEY) is not restored.

상술된 바와 같이, 제2 스킴에 따르면, 호스트(21)로부터 올바른 사용자 설정 값(USV)이 입력될 때에만, 대응하는 키(KEY)가 출력된다. 따라서, 사용자 인증에 기반하여 향상된 보안성을 갖는 키 관리자(120), 키 관리자를 포함하는 데이터 프로세싱 시스템(10), 그리고 데이터 관리 방법이 제공된다.As described above, according to the second scheme, only when a correct user setting value (USV) is inputted from the host 21, the corresponding key KEY is output. Accordingly, a key manager 120 having improved security based on user authentication, a data processing system 10 including a key manager, and a data management method are provided.

도 12는 도 1의 데이터 프로세싱 시스템(10)의 동작 방법의 제1 예를 보여주는 순서도이다. 예시적으로, 데이터 프로세싱 시스템(10)이 외부 메모리(155)에 데이터를 기입하는 방법이 도 12에 도시되어 있다.12 is a flowchart showing a first example of a method of operation of the data processing system 10 of FIG. Illustratively, the manner in which the data processing system 10 writes data to the external memory 155 is shown in FIG.

도 1 및 도 12를 참조하면, S210 단계에서, 데이터 쓰기 이벤트가 발생한다. 쓰기 이벤트는 외부 메모리(155)에 데이터를 기입할 것이 요구되는 상황을 의미한다. 예를 들어, 중앙 처리부(110)에서 구동되는 운영체제, 어플리케이션 등과 같은 소프트웨어에 의해 쓰기 이벤트가 발생할 수 있다.Referring to FIGS. 1 and 12, in step S210, a data write event occurs. The write event refers to a situation in which it is required to write data in the external memory 155. For example, a write event may be generated by software such as an operating system, an application, or the like, which is driven by the central processing unit 110.

쓰기 이벤트가 발생하면, S220 단계에서, 중앙 처리부(110)는 키 관리자(120)로 사용자 설정 값(USV) 및 커맨드(CMD)를 전송한다. 커맨드(CMD)는 키(KEY)를 요청하는 커맨드일 수 있다. 예를 들어, 커맨드(CMD)는 제1 스킴에 따라 키(KEY)를 생성할 것을 요청하는 커맨드, 제2 스킴에 따라 키(KEY)를 생성하거나 로드할 것을 요청하는 커맨드일 수 있다. 사용자 설정 값은, 데이터의 기입을 요청한 운영체제 또는 어플리케이션의 식별자일 수있다.The central processing unit 110 transmits the user setting value USV and the command CMD to the key manager 120 in step S220. The command CMD may be a command for requesting a key KEY. For example, the command CMD may be a command requesting to generate a key KEY according to a first scheme, or a command requesting to generate or load a key KEY according to a second scheme. The user setting value may be an identifier of the operating system or application requesting the writing of data.

S230 단계에서, 키 관리자(120)은 키(KEY)를 출력한다. 예를 들어, 키 관리자(120)는 사용자 설정 값(USV)에 기반하여, 제1 스킴에 따라 키(KEY)를 생성하거나, 제2 스킴에 따라 키(KEY)를 생성 또는 로드하여 출력할 수 있다. S230 단계에서, 상술된 에러 없이, 키(KEY)가 정상적으로 출력되는 것으로 가정된다. 예시적으로, 키 관리자(120)는 외부 메모리(155)에 기입될 데이터를 암호화하는 구성 요소로 키(KEY)를 출력할 수 있다. 중앙 처리부(110)가 암호화를 수행하는 경우, 키 관리자(120)는 중앙 처리부(110)로 키(KEY)를 출력할 수 있다. 키 관리자(120)가 데이터의 암호화까지 수행하는 경우, 즉 블록 암호화부(230)가 외부 메모리(155)에 기입될 데이터의 암호화까지 수행하는 경우, 키 관리자(120)는 키(KEY)를 출력하지 않고 내부적으로 사용할 수 있다. 외부 메모리(155)에 기입될 데이터의 암호화를 수행하는 별도의 회로 또는 로직이 데이터 프로세싱 시스템(10)에 제공되는 경우, 키 관리자(120)는 별도의 회로 또는 로직으로 키(KEY)를 출력할 수 있다. 도 12에서, 키 관리자(120)는 중앙 처리부(110)로 키(KEY)를 출력하는 것으로 가정되나, 본 발명의 기술적 사상은 이에 한정되지 않는다.In step S230, the key manager 120 outputs a key KEY. For example, the key manager 120 may generate the key KEY according to the first scheme or generate or load the key KEY according to the second scheme, based on the user setting value USV have. In step S230, it is assumed that the key KEY is normally output without the error described above. Illustratively, the key manager 120 may output a key KEY to an element that encrypts data to be written to the external memory 155. [ When the central processing unit 110 performs encryption, the key manager 120 may output the key KEY to the central processing unit 110. [ The key manager 120 outputs the key KEY when the key manager 120 performs the encryption of the data, that is, when the block encryption unit 230 performs the encryption of the data to be written in the external memory 155 But can be used internally. When separate circuits or logic for performing encryption of data to be written to the external memory 155 is provided to the data processing system 10, the key manager 120 outputs a key KEY to a separate circuit or logic . In FIG. 12, it is assumed that the key manager 120 outputs the key KEY to the central processing unit 110, but the technical idea of the present invention is not limited thereto.

S240 단계에서, 중앙 처리부 (110)는 외부 메모리(155)로 쓰기 커맨드, 어드레스 및 암호화된 데이터를 전송한다. 예시적으로, 중앙 처리부 (110)는 키 관리자(120)로부터 수신된 키(KEY)를 이용하여 데이터를 암호화할 수 있다. 중앙 처리부(110)는 암호화된 데이터를 쓰기 커맨드 및 어드레스와 함께 외부 메모리(155)로 전달할 수 있다. 예시적으로, 외부 메모리(155)의 기입될 데이터의 암호화가 별도의 회로 또는 로직 의해 수행되는 경우, 암호화된 데이터는 중앙 처리부(110)가 아닌 별도의 회로 또는 로직으로부터 외부 메모리(155)로 전달될 수 있다. 외부 메모리(155)에 기입될 데이터의 암호화가 키 관리자(120)에 의해 수행되는 경우, 암호화된 데이터는 키 관리자(120)로부터 외부 메모리(155)로 전달될 수 있다.In step S240, the central processing unit 110 transmits the write command, the address, and the encrypted data to the external memory 155. [ Illustratively, the central processing unit 110 may encrypt the data using the key (KEY) received from the key manager 120. The central processing unit 110 may transmit the encrypted data to the external memory 155 together with the write command and the address. Illustratively, when the encryption of the data to be written in the external memory 155 is performed by a separate circuit or logic, the encrypted data is transferred from the separate circuit or logic other than the central processing unit 110 to the external memory 155 . When the encryption of the data to be written in the external memory 155 is performed by the key manager 120, the encrypted data can be transferred from the key manager 120 to the external memory 155. [

S250 단계에서, 외부 메모리(155)에 암호화된 데이터가 기입된다.In step S250, the encrypted data is written in the external memory 155. [

도 12를 참조하여 설명된 바와 같이, 외부 메모리(155)에 기입되는 데이터는 키(KEY)를 이용하여 암호화된다. 키(KEY)는 사용자 설정 값(USV)에 기반한 사용자 인증을 통해 생성된다. 따라서, 외부 메모리(155)에 저장되는 데이터의 보안성이 향상된다.As described with reference to Fig. 12, the data written in the external memory 155 is encrypted using the key KEY. The key KEY is generated through user authentication based on a user setting value (USV). Therefore, the security of the data stored in the external memory 155 is improved.

도 13은 도 1의 데이터 프로세싱 시스템(10)의 동작 방법의 제2 예를 보여주는 순서도이다. 예시적으로, 데이터 프로세싱 시스템(10)이 외부 메모리(155)로부터 데이터를 읽는 방법이 도 13에 도시되어 있다.13 is a flowchart showing a second example of a method of operation of the data processing system 10 of FIG. Illustratively, the manner in which the data processing system 10 reads data from the external memory 155 is shown in FIG.

도 1 및 도 13을 참조하면, S310 단계에서, 데이터 읽기 이벤트가 발생한다. 데이터 읽기 이벤트는 외부 메모리(155)로부터 데이터를 읽는 것이 요구되는 상황을 의미한다. 예를 들어, 데이터 프로세싱 시스템(10)의 중앙 처리부(110)에서 구동되는 운영체제, 어플리케이션 등과 같은 소프트웨어에 의해 데이터 읽기 이벤트가 발생할 수 있다.Referring to FIGS. 1 and 13, in step S310, a data read event occurs. The data read event refers to a situation where it is required to read data from the external memory 155. [ For example, a data read event may be generated by software such as an operating system, an application, or the like, which is driven in the central processing unit 110 of the data processing system 10. [

S320 단계에서, 중앙 처리부(110)는 키 관리자(120)로 사용자 설정 값(USV) 및 커맨드(CMD)를 전송한다. 커맨드(CMD)는 키(KEY)를 요청하는 커맨드일 수 있다.In step S320, the central processing unit 110 transmits the user setting value USV and the command CMD to the key manager 120. The command CMD may be a command for requesting a key KEY.

S330 단계에서, 키 관리자(120)는 중앙 처리부(110)로 키(KEY)를 전송할 수 있다. 예를 들어, 키 관리자(120)는 사용자 설정 값(USV)에 기반하여, 제1 스킴에 따라 키(KEY)를 생성하거나, 제2 스킴에 따라 키(KEY)를 생성 또는 로드하여 출력할 수 있다. In step S330, the key manager 120 may transmit a key KEY to the central processing unit 110. [ For example, the key manager 120 may generate the key KEY according to the first scheme or generate or load the key KEY according to the second scheme, based on the user setting value USV have.

S330 단계에서, 상술된 에러 없이 키(KEY)가 정상적으로 출력되는 것으로 가정된다. 예시적으로, 키 관리자(120)는 외부 메모리(155)로부터 읽히는 데이터를 복호화하는 구성 요소로 키(KEY)를 출력할 수 있다. 중앙 처리부(110)가 복호화를 수행하는 경우, 키 관리자(120)는 중앙 처리부(110)로 키(KEY)를 출력할 수 있다. 키 관리자(120)가 데이터의 복호화까지 수행하는 경우, 즉 블록 암호화부(230)가 외부 메모리(155)로부터 읽히는 데이터의 복호화까지 수행하는 경우, 키 관리자(120)는 키(KEY)를 출력하지 않고 내부적으로 사용할 수 있다. 외부 메모리(155)로부터 읽히는 데이터의 복호화를 수행하는 별도의 회로 또는 로직이 데이터 프로세싱 시스템(10)에 제공되는 경우, 키 관리자(120)는 별도의 회로 또는 로직으로 키(KEY)를 출력할 수 있다. 도 13에서, 키 관리자(120)는 중앙 처리부(110)로 키(KEY)를 출력하는 것으로 가정되나, 본 발명의 기술적 사상은 이에 한정되지 않는다.In step S330, it is assumed that the key KEY is normally output without the error described above. Illustratively, the key manager 120 may output a key (KEY) as an element for decrypting data read from the external memory 155. When the central processing unit 110 performs decoding, the key manager 120 may output the key KEY to the central processing unit 110. [ When the key manager 120 performs the decryption of data, that is, when the block encryption unit 230 decrypts the data read from the external memory 155, the key manager 120 does not output the key KEY It can be used internally. The key manager 120 may output the key KEY to a separate circuit or logic when the data processing system 10 is provided with a separate circuit or logic for performing the decryption of the data read from the external memory 155 have. 13, it is assumed that the key manager 120 outputs the key KEY to the central processing unit 110, but the technical idea of the present invention is not limited thereto.

S340 단계에서, 중앙 처리부(110)는 외부 메모리(155)로 읽기 커맨드 및 어드레스를 전송할 수 있다.In step S340, the central processing unit 110 may transmit a read command and an address to the external memory 155. [

S350 단계에서, 외부 메모리(155)는, S340 단계에서 수신된 읽기 커맨드에 응답하여, S340 단계에서 수신된 어드레스에 대응하는 위치에 저장된 암호화된 데이터를 읽을 수 있다.In step S350, the external memory 155 may read the encrypted data stored in the position corresponding to the address received in step S340, in response to the read command received in step S340.

S360 단계에서, 외부 메모리(155)는 읽어진 데이터, 즉 암호화된 데이터를 중앙 처리부(10)로 전송한다. 상술된 바와 같이, 외부 메모리(155)는 암호화된 데이터를 복호화하는 구성 요소로 암호화된 데이터를 전송할 수 있다. 외부 메모리(155)는 키(KEY)가 전송된 구성 요소로 암호화된 데이터를 전송할 수 있다. 중앙 처리부(110)가 복호화를 수행하는 경우, 외부 메모리(155)는 암호화된 데이터를 중앙 처리부(110)로 전송할 수 있다.In step S360, the external memory 155 transmits the read data, that is, the encrypted data, to the central processing unit 10. [ As described above, the external memory 155 may transmit the encrypted data to the component that decrypts the encrypted data. The external memory 155 may transmit the encrypted data to the component to which the key KEY is transmitted. When decryption is performed by the central processing unit 110, the external memory 155 may transmit the encrypted data to the central processing unit 110. [

예시적으로, S320 단계 및 S330 단계는 순차적으로 수행될 수 있다. S340 단계 내지 S360 단계는 순차적으로 수행될 수 있다. S320 단계 및 S330 단계의 각 단계는 S340 단계 내지 S360 단계의 각 단계와 병렬적으로, 또는 각 단계의 이전에 또는 이후에 수행될 수 있다. S340 단계 내지 S360 단계의 각 단계는 S320 단계 및 S330 단계의 각 단계와 병렬적으로, 또는 각 단계의 이전에 또는 이후에 수행될 수 있다.Illustratively, steps S320 and S330 may be performed sequentially. Steps S340 to S360 may be performed sequentially. Steps S320 and S330 may be performed in parallel with each of steps S340 through S360, or before or after each step. Steps S340 through S360 may be performed in parallel with each of steps S320 and S330, or before or after each step.

도 13을 참조하여 설명된 바와 같이, 외부 메모리(155)로부터 읽어지는 데이터는 키(KEY)를 이용하여 복호화된다. 키(KEY)는 사용자 설정 값(USV)에 기반한 사용자 인증을 통해 출력된다. 따라서, 외부 메모리(155)에 저장되는 데이터의 보안성이 향상된다.As described with reference to Fig. 13, the data read from the external memory 155 is decrypted using the key KEY. The key (KEY) is output through user authentication based on the user setting value (USV). Therefore, the security of the data stored in the external memory 155 is improved.

도 14는 도 1의 데이터 프로세싱 시스템(10)의 동작 방법의 제3 예를 보여주는 순서도이다. 예시적으로, 데이터 프로세싱 시스템(10)이 제2 스킴에 따라 키(KEY)를 외부 메모리(155)에 백업하는 방법이 도 14에 도시되어 있다.14 is a flowchart showing a third example of a method of operation of the data processing system 10 of FIG. Illustratively, the manner in which the data processing system 10 backs up the keys KEY to the external memory 155 in accordance with the second scheme is shown in FIG.

도 1 및 도 14를 참조하면, S410 단계에서, 백업 이벤트가 발생한다. 백업 이벤트는 제2 스킴에 따라 키(KEY)를 외부 메모리(155)에 백업하는 것이 요구되는 상황을 의미한다. 예를 들어, 데이터 프로세싱 시스템(10)의 중앙 처리부(110)에서 구동되는 운영체제, 어플리케이션 등과 같은 소프트웨어에 의해 백업 이벤트가 발생할 수 있다.Referring to FIGS. 1 and 14, in step S410, a backup event occurs. The backup event refers to a situation where it is required to back up the key KEY to the external memory 155 according to the second scheme. For example, a backup event may be generated by software, such as an operating system, an application, or the like, which is driven in the central processing unit 110 of the data processing system 10. [

S420 단계에서, 중앙 처리부(110)는 사용자 설정 값(USV) 및 커맨드(CMD)를 키자(120)로 전송한다. 예시적으로, 커맨드(CMD)는 키(KEY)의 백업을 요청하는 커맨드일 수 있다.In step S420, the central processing unit 110 transmits a user setting value (USV) and a command (CMD) to the keyer 120. Illustratively, the command CMD may be a command requesting a backup of the key KEY.

S430 단계에서, 키 관리자(120)는 사용자 설정 값(USV) 및 키(KEY)를 이용하여 해시를 생성한다. 해시는 해시부(240)에 의해 생성될 수 있다. 키 관리자(120)는 사용자 설정 값(USV), 키(KEY) 및 해시(H)를 암호화하여 암호화된 데이터를 생성한다. 암호화는 블록 암호화부(230)에 의해 수행될 수 있다.In step S430, the key manager 120 generates a hash using the user setting value USV and the key KEY. The hash can be generated by the hash unit 240. The key manager 120 encrypts the user setting value USV, the key KEY, and the hash H to generate encrypted data. The encryption may be performed by the block encryption unit 230.

S440 단계에서, 키 관리자(120)은 암호화된 데이터를 외부 메모리(155)로 전송한다.In step S440, the key manager 120 transmits the encrypted data to the external memory 155. [

S450 단계에서, 중앙 처리부(110)는 쓰기 커맨드 및 어드레스를 외부 메모리(155)로 전송한다. 예시적으로, S450 단계는 S420 단계 내지 S440 단계 중 적어도 하나의 단계와 병렬적으로 수행될 수 있다. S450 단계는 S420 단계 내지 S440 단계 중 각 단계의 이전에 또는 이후에 수행될 수 있다.In step S450, the central processing unit 110 transmits the write command and the address to the external memory 155. [ Illustratively, step S450 may be performed in parallel with at least one of steps S420 through S440. Step S450 may be performed before or after each of steps S420 to S440.

예시적으로, 키 관리자(120)는 키(KEY)를 외부 메모리(155)로 출력하는 대신, 중앙 처리부(110)로 출력할 수 있다. 중앙 처리부(110)는 쓰기 커맨드 및 어드레스와 함께 키(KEY)를 외부 메모리(155)로 전송할 수 있다.For example, the key manager 120 may output the key KEY to the central processing unit 110 instead of outputting the key KEY to the external memory 155. The central processing unit 110 can transmit the key KEY to the external memory 155 together with the write command and the address.

S460 단계에서, 외부 메모리(155)는, S450 단계에서 수신된 쓰기 커맨드에 응답하여, S450 단계에서 수신된 어드레스에 대응하는 위치에 암호화된 데이터를 기입한다.In step S460, the external memory 155 writes the encrypted data in a position corresponding to the address received in step S450, in response to the write command received in step S450.

도 14를 참조하여 설명된 바와 같이, 제2 스킴에 따라 생성 및 관리되는 키들은 사용자 설정 값(USV)에 기반한 사용자 인증을 통해 백업된다. 따라서, 해킹과 같은 불법적인 수단을 통해 키(KEY)가 복원될 수 없으므로, 키(KEY)의 보안성이 향상된다.As described with reference to FIG. 14, the keys created and managed according to the second scheme are backed up via user authentication based on user settings (USV). Therefore, since the key KEY can not be restored through an illegal means such as hacking, the security of the key KEY is improved.

도 14에서, 키(KEY)는 외부 메모리(155)로 백업되는 것으로 설명되었다. 그러나, 키(KEY)는 외부 메모리(155)가 아닌 암호화된 키 메모리(280)로 백업될 수 있다. 즉, 키(KEY)는 키 관리자(120) 내부에서 백업될 수 있다.In Fig. 14, the key KEY has been described as being backed up to the external memory 155. However, the key KEY may be backed up to the encrypted key memory 280 rather than to the external memory 155. [ In other words, the key KEY can be backed up in the key manager 120.

도 15는 도 1의 데이터 프로세싱 시스템(10)의 동작 방법의 제4 예를 보여주는 순서도이다. 예시적으로, 데이터 프로세싱 시스템(10)이 제2 스킴에 따라 키(KEY)를 외부 메모리(155)로부터 복원하는 방법이 도 15에 도시되어 있다.15 is a flowchart showing a fourth example of a method of operation of the data processing system 10 of FIG. Illustratively, a method by which data processing system 10 retrieves a key KEY from external memory 155 in accordance with a second scheme is shown in FIG.

도 1 및 도 15를 참조하면, S510 단계에서, 복원 이벤트가 발생한다. 복원 이벤트는 제2 스킴에 따라 키(KEY)를 외부 메모리(155)로부터 복원하는 것이 요구되는 상황을 의미한다. 예를 들어, 데이터 프로세싱 시스템(10)의 중앙 처리부(110)에서 구동되는 운영체제, 어플리케이션 등과 같은 소프트웨어에 의해 복원 이벤트가 발생할 수 있다.Referring to FIGS. 1 and 15, a restore event occurs in step S510. The restoration event refers to a situation where it is required to restore the key KEY from the external memory 155 according to the second scheme. For example, a restore event may be generated by software, such as an operating system, an application, or the like, which is driven in the central processing unit 110 of the data processing system 10. [

S520 단계에서, 중앙 처리부(110)는 키 관리자(120)로 사용자 설정 값 및 커맨드(CMD)를 전송할 수 있다. 커맨드(CMD)는 키(KEY)의 복원을 요청하는 커맨드일 수 있다.In step S520, the central processing unit 110 may transmit the user setting value and the command CMD to the key manager 120. [ The command CMD may be a command requesting the restoration of the key KEY.

S530 단계에서, 중앙 처리부(110)는 외부 메모리(155)로 읽기 커맨드 및 어드레스를 전송한다.In step S530, the central processing unit 110 transmits a read command and an address to the external memory 155. [

S540 단계에서, 외부 메모리(155)는, S530 단계에서 수신된 읽기 커맨드에 응답하여, S530 단계에서 수신된 어드레스에 대응하는 위치로부터 암호화된 데이터를 읽을 수 있다.In step S540, the external memory 155 may read the encrypted data from the location corresponding to the address received in step S530, in response to the read command received in step S530.

S550 단계에서, 외부 메모리(155)는 읽어진 데이터, 즉 암호화된 데이터를 키 관리자(120)로 전송할 수 있다.In step S550, the external memory 155 may transmit the read data, that is, the encrypted data to the key manager 120. [

예시적으로, S520 단계는 S530 단계 내지 S550 단계 중 적어도 하나의 단계와 병렬적으로 수행될 수 있다. S520 단계는 S530 단계 내지 S550 단계의 각 단계의 이전에 또는 이후에 수행될 수 있다.Illustratively, step S520 may be performed in parallel with at least one of steps S530 through S550. Step S520 may be performed before or after each of the steps S530 through S550.

예시적으로, 외부 메모리(155)는 암호화된 데이터를 키 관리자(120)로 출력하는 대신, 중앙 처리부(110)로 출력할 수 있다. 중앙 처리부(110)는 암호화된 데이터를 키 관리자(120)로 전송할 수 있다. 키 관리자(120)는 암호화된 데이터를 복호화하여, 키 메모리(270)에 저장할 수 있다.For example, the external memory 155 may output the encrypted data to the central processing unit 110, instead of outputting the encrypted data to the key manager 120. The central processing unit 110 may transmit the encrypted data to the key manager 120. [ The key manager 120 may decrypt the encrypted data and store the decrypted data in the key memory 270.

도 15를 참조하여 설명된 바와 같이, 제2 스킴에 따라 생성 및 관리되는 키들은 사용자 설정 값(USV)에 기반한 사용자 인증을 통해 복원된다. 따라서, 해킹과 같은 불법적인 수단을 통해 키(KEY)가 복원될 수 없으므로, 키(KEY)의 보안성이 향상된다.As described with reference to Fig. 15, the keys generated and managed according to the second scheme are restored through user authentication based on the user set value (USV). Therefore, since the key KEY can not be restored through an illegal means such as hacking, the security of the key KEY is improved.

도 15에서, 키(KEY)는 외부 메모리(155)로부터 복원되는 것으로 설명되었다. 그러나, 키(KEY)는 외부 메모리(155)가 아닌 암호화된 키 메모리(280)로부터 복원될 수 있다. 즉, 키(KEY)는 키 관리자(120) 내부에서 복원될 수 있다.In Fig. 15, it is described that the key (KEY) is restored from the external memory 155. However, the key KEY can be recovered from the encrypted key memory 280 rather than from the external memory 155. [ That is, the key KEY can be restored in the key manager 120.

본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the equivalents of the claims of the present invention as well as the claims of the following.

10; 데이터 처리 시스템
100; 시스템-온-칩
135; 표시 장치
155; 외부 메모리
110; 중앙 처리부
120; 키 관리자
130; 표시 제어기
140; ROM
150; 메모리 컨트롤러
160; RAM
10; Data processing system
100; System-on-Chip
135; Display device
155; External memory
110; Central processing unit
120; Key Manager
130; Display controller
140; ROM
150; Memory controller
160; RAM

Claims (10)

메모리;
상기 메모리를 제어하도록 구성되는 중앙 처리부; 그리고
상기 중앙 처리부의 제어에 따라 키를 관리하도록 구성되는 키 관리자를 포함하고,
상기 키 관리자는,
상기 중앙 처리부로부터 수신되는 커맨드를 저장하도록 구성되는 제1 레지스터;
상기 중앙 처리부로부터 수신되는 사용자 설정 값을 저장하도록 구성되는 제2 레지스터;
고유값을 출력하도록 구성되는 고유값 저장부; 그리고
상기 제1 레지스터에 저장된 상기 커맨드에 응답하여, 상기 제2 레지스터에 저장된 상기 사용자 설정 값 및 상기 고유값을 이용하여 상기 키를 생성하도록 구성되는 메인 컨트롤러를 포함하고,
상기 고유값은 상기 키 관리자의 외부로 출력되지 않고 상기 키 관리자의 내부에서만 사용되고,
상기 키 관리자는, 동일한 사용자 설정 값들을 이용하여 동일한 키들을 생성하고, 서로 다른 사용자 설정 값들을 이용하여 서로 다른 키들을 생성하는 데이터 프로세싱 시스템.
Memory;
A central processing unit configured to control the memory; And
And a key manager configured to manage a key under the control of the central processing unit,
The key manager,
A first register configured to store a command received from the central processing unit;
A second register configured to store a user setting value received from the central processing unit;
An eigenvalue storage unit configured to output eigenvalues; And
And a main controller configured to generate the key using the user setting value and the eigenvalue stored in the second register in response to the command stored in the first register,
Wherein the eigenvalue is not output to the outside of the key manager but used only inside the key manager,
Wherein the key manager generates the same keys using the same user set values and generates different keys using different user set values.
제1 항에 있어서,
상기 메인 컨트롤러는, 상기 고유값 및 상기 사용자 설정 값을 이용하여 블록 암호화(block cipher) 또는 키 해시(key hash)를 수행하여 상기 키를 도출하도록 구성되는 데이터 프로세싱 시스템.
The method according to claim 1,
Wherein the main controller is configured to derive the key by performing a block cipher or a key hash using the eigenvalue and the user set value.
제1 항에 있어서,
난수를 출력하도록 구성되는 난수 발생기를 더 포함하고,
상기 메인 컨트롤러는 상기 난수 발생기로부터 출력되는 상기 난수를 상기 키로 선택하도록 구성되는 데이터 프로세싱 시스템.
The method according to claim 1,
And a random number generator configured to output a random number,
And the main controller is configured to select the random number output from the random number generator with the key.
제3 항에 있어서,
키 메모리를 더 포함하고,
상기 메인 컨트롤러는 상기 키로 선택된 상기 난수를 상기 사용자 설정 값과 연관하여 상기 키 메모리에 저장하도록 구성되는 데이터 프로세싱 시스템.
The method of claim 3,
Further comprising a key memory,
Wherein the main controller is configured to store the random number selected with the key in the key memory in association with the user setting value.
제4 항에 있어서,
상기 메인 컨트롤러는, 상기 제1 레지스터에 저장된 상기 커맨드가 미리 생성된 키의 로딩을 요청하는 커맨드이고 상기 사용자 설정 값이 상기 키 메모리에 저장되어 있으면, 상기 사용자 설정 값에 대응하는 키를 상기 키 메모리로부터 출력하도록 구성되는 데이터 프로세싱 시스템.
5. The method of claim 4,
Wherein the main controller is a command for requesting loading of a key generated in advance in the command stored in the first register and if the user setting value is stored in the key memory, And outputting the data from the data processing system.
제4 항에 있어서,
상기 메인 컨트롤러는, 상기 제1 레지스터에 저장된 상기 커맨드가 미리 생성된 키의 백업을 요청하는 커맨드이고 상기 사용자 설정 값이 상기 키 메모리에 저장되어 있으면, 상기 사용자 설정 값에 대응하는 키를 상기 키 메모리로부터 읽어 백업하도록 구성되는 데이터 프로세싱 시스템.
5. The method of claim 4,
Wherein the main controller is a command for requesting a backup of a key generated in advance in the command stored in the first register, and if the user setting value is stored in the key memory, And to back up the data.
제6 항에 있어서,
상기 고유값을 이용하여 상기 사용자 설정 값 및 상기 키 메모리로부터 읽힌 키를 암호화하도록 구성되는 블록 암호화부를 더 포함하고,
상기 백업을 요청하는 커맨드에 응답하여, 상기 블록 암호화부에 의해 암호화된 데이터가 백업되는 데이터 프로세싱 시스템.
The method according to claim 6,
And a block encryption unit configured to encrypt the user set value and the key read from the key memory using the eigenvalue,
And in response to the command requesting the backup, the data encrypted by the block encryption unit is backed up.
제6 항에 있어서,
상기 사용자 설정 값 및 상기 키 메모리로부터 읽어진 상기 키의 해시를 생성하도록 구성되는 해시부를 더 포함하고,
상기 백업을 요청하는 커맨드에 응답하여, 상기 해시가 상기 키 메모리로부터 읽어진 상기 키와 함께 백업되는 데이터 프로세싱 시스템.
The method according to claim 6,
Further comprising a hash unit configured to generate the user set value and a hash of the key read from the key memory,
And in response to the command requesting the backup, the hash is backed up with the key read from the key memory.
데이터를 암호화 또는 복호화하기 위한 키를 관리하는 키 관리자의 동작 방법에 있어서:
키 요청 커맨드 및 사용자 설정 값을 수신하는 단계; 그리고
상기 키 요청 커맨드에 응답하여, 고유값 및 상기 사용자 설정 값을 이용하여 상기 키를 출력하는 단계를 포함하고,
상기 고유값은 상기 키 관리자의 외부로 출력되지 않고 상기 키 관리자의 내부에서만 사용되고,
동일한 사용자 설정 값들을 이용하여 동일한 키들이 생성되고, 서로 다른 사용자 설정 값들을 이용하여 서로 다른 키들이 생성되는 동작 방법.
1. An operation method of a key manager for managing a key for encrypting or decrypting data, comprising:
Receiving a key request command and a user set value; And
In response to the key request command, outputting the key using the eigenvalue and the user setting value,
Wherein the eigenvalue is not output to the outside of the key manager but used only inside the key manager,
Wherein the same keys are generated using the same user set values and different keys are generated using different user set values.
제 9 항에 있어서,
상기 키를 출력하는 단계는,
상기 키 요청 커맨드가 제1 타입일 때, 제1 스킴에 따라 상기 키를 출력하고, 상기 키 요청 커맨드가 상기 제1 타입과 다른 제2 타입일 때, 상기 제1 스킴과 다른 제2 스킴에 따라 상기 키를 출력하는 단계를 포함하고,
동일한 사용자 설정 값들에 응답하여, 상기 제1 스킴에 따라 출력되는 키와 상기 제2 스킴에 따라 출력되는 키는 서로 다른 동작 방법.
10. The method of claim 9,
Wherein the outputting of the key comprises:
Outputting the key according to a first scheme when the key request command is of a first type and outputting the key according to a second scheme different from the first scheme when the key request command is a second type different from the first type And outputting the key,
Wherein the key output in accordance with the first scheme and the key output in accordance with the second scheme are in response to the same user settings.
KR1020140049450A 2013-08-30 2014-04-24 Data processing system including key manager and operating method of key manager KR102240830B1 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20130104382 2013-08-30
KR1020130104382 2013-08-30
US201361885840P 2013-10-02 2013-10-02
US61/885,840 2013-10-02
US14/251,120 2014-04-11
US14/251,120 US9935768B2 (en) 2012-08-06 2014-04-11 Processors including key management circuits and methods of operating key management circuits

Publications (2)

Publication Number Publication Date
KR20150027677A true KR20150027677A (en) 2015-03-12
KR102240830B1 KR102240830B1 (en) 2021-04-19

Family

ID=53022952

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140049450A KR102240830B1 (en) 2013-08-30 2014-04-24 Data processing system including key manager and operating method of key manager

Country Status (1)

Country Link
KR (1) KR102240830B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200092421A (en) * 2015-10-06 2020-08-03 마이크론 테크놀로지, 인크. Secure subsystem

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009135890A (en) * 2007-10-31 2009-06-18 Hitachi Ltd Encryption apparatus, decryption apparatus, and cryptography system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009135890A (en) * 2007-10-31 2009-06-18 Hitachi Ltd Encryption apparatus, decryption apparatus, and cryptography system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200092421A (en) * 2015-10-06 2020-08-03 마이크론 테크놀로지, 인크. Secure subsystem

Also Published As

Publication number Publication date
KR102240830B1 (en) 2021-04-19

Similar Documents

Publication Publication Date Title
KR102013841B1 (en) Method of managing key for secure storage of data, and and apparatus there-of
KR101712784B1 (en) System and method for key management for issuer security domain using global platform specifications
US20190026117A1 (en) System and method for wiping encrypted data on a device having file-level content protection
US10069629B2 (en) Controlled access to data in a sandboxed environment
US8433901B2 (en) System and method for wiping encrypted data on a device having file-level content protection
US20170046281A1 (en) Address dependent data encryption
US9935768B2 (en) Processors including key management circuits and methods of operating key management circuits
JP6072091B2 (en) Secure access method and secure access device for application programs
TW202036347A (en) Method and apparatus for data storage and verification
US20200082088A1 (en) User/Enterprise Data Protection Preventing Non-Authorized Firmware Modification
US11222144B2 (en) Self-encrypting storage device and protection method
CN101582109A (en) Data encryption method and device, data decryption method and device and solid state disk
US10454679B2 (en) File system support for rolling keys on file extents
US10592679B2 (en) Support for changing encryption classes of files
US20150227755A1 (en) Encryption and decryption methods of a mobile storage on a file-by-file basis
US11354415B2 (en) Warm boot attack mitigations for non-volatile memory modules
US11019098B2 (en) Replay protection for memory based on key refresh
US11520859B2 (en) Display of protected content using trusted execution environment
US11934539B2 (en) Method and apparatus for storing and processing application program information
US11533172B2 (en) Apparatus and method for securely managing keys
US11308238B2 (en) Server and method for identifying integrity of application
KR102240830B1 (en) Data processing system including key manager and operating method of key manager
CN111357003A (en) Data protection in a pre-operating system environment
US20160299854A1 (en) Techniques for preventing physical attacks on contents of memory
CN115455378A (en) Software license control method and device, electronic equipment and storage medium

Legal Events

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