KR20150068264A - Processor having a variable pipeline, and system-on-chip - Google Patents
Processor having a variable pipeline, and system-on-chip Download PDFInfo
- Publication number
- KR20150068264A KR20150068264A KR1020140003933A KR20140003933A KR20150068264A KR 20150068264 A KR20150068264 A KR 20150068264A KR 1020140003933 A KR1020140003933 A KR 1020140003933A KR 20140003933 A KR20140003933 A KR 20140003933A KR 20150068264 A KR20150068264 A KR 20150068264A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- decryption
- processor
- block
- security level
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
Abstract
프로세서는 보안 레벨 판단부 및 가변 파이프라인을 포함한다. 보안 레벨 판단부는 프로세서에서 처리될 암호화된 데이터의 보안 레벨을 판단한다. 가변 파이프라인은 암호화된 데이터를 수신하고, 보안 레벨 판단부에 의해 판단된 보안 레벨에 상응하는 클록 사이클 동안 암호화된 데이터에 대한 복호화 동작을 수행하여 원본 데이터를 생성하며, 원본 데이터를 처리한다. 이에 따라, 동작 성능이 거의 저하되지 않으면서 강력한 암호화 동작이 수행되어 데이터가 안전하게 보호될 수 있다.The processor includes a security level determination unit and a variable pipeline. The security level determination unit determines the security level of the encrypted data to be processed by the processor. The variable pipeline receives encrypted data, decrypts the encrypted data during a clock cycle corresponding to the security level determined by the security level determination unit, generates original data, and processes the original data. Thus, a strong encryption operation can be performed without substantially degrading the operation performance, so that the data can be safely protected.
Description
본 발명은 프로세서에 관한 것으로서, 더욱 상세하게는 가변 파이프라인을 가지는 프로세서, 및 이를 포함하는 시스템-온-칩에 관한 것이다.The present invention relates to a processor, and more particularly, to a processor having a variable pipeline and a system-on-chip comprising the same.
스마트 카드(Smart Card), 신뢰 플랫폼 모듈(Trusted Platform Module; TPM) 등과 같은 보안 제품(Security Product)에서는 명령어(instruction) 및/또는 데이터가 암호화되어 저장된다. 이러한 보안 제품에서 프로세서가 이와 같이 암호화되어 저장된 명령어 및/또는 데이터를 실행하기 위하여, 프로세서 외부에 배치된 암호화부가 암호화된 명령어 및/또는 데이터를 복호화하여 프로세서에 제공한다. 한편, 시스템의 동작 성능(또는 동작 속도)에 영향을 미치지 않기 위해서는 프로세서 외부에 배치된 암호화부가 1 클록 사이클 미만의 연산 시간을 가지는 간단한 암호화/복호화 동작을 수행하여야 한다. 그러나, 해킹(또는 부정 조작(tampering)) 기술이 정교해짐에 따라, 이와 같이 간단한 암호화 동작에 의해 암호화된 데이터 및/또는 명령어가 해커(또는 공격자(attacker))에 의해 보다 용이하게 원복 데이터로 복원되고 있다. 이러한 데이터 누설을 방지하도록, 프로세서 외부에 배치된 암호화부가 1 클록 사이클 이상의 암호화/복호화 동작을 수행할 수 있다. 그러나, 이 경우, 동작 성능이 크게 저하될 수 있다.Instructions and / or data are encrypted and stored in a security product such as a smart card, a Trusted Platform Module (TPM), and the like. In such a security product, the encryption unit disposed outside the processor decrypts and provides the encrypted instructions and / or data to the processor in order for the processor to execute such stored encrypted instructions and / or data. On the other hand, in order not to affect the operation performance (or operation speed) of the system, the encryption unit disposed outside the processor must perform a simple encryption / decryption operation having an operation time of less than one clock cycle. However, as hacking (or tampering) techniques become more sophisticated, data and / or instructions encrypted by such simple encryption operations may be more easily restored to raw data by hackers (or attackers) . To prevent such data leakage, the encryption unit disposed outside the processor can perform encryption / decryption operations of one clock cycle or more. However, in this case, the operation performance may be greatly deteriorated.
상기와 같은 문제점을 해결하기 위하여, 본 발명의 일 목적은 가변 파이프라인을 가지는 프로세서를 제공하는 것이다.In order to solve the above problems, it is an object of the present invention to provide a processor having a variable pipeline.
또한, 본 발명의 다른 목적은 상기 프로세서를 포함하는 시스템-온-칩(System-On-Chip; SOC)을 제공하는 것이다.Another object of the present invention is to provide a system-on-chip (SOC) including the processor.
다만, 본 발명의 해결하고자 하는 과제는 상기 언급된 과제에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.It is to be understood, however, that the present invention is not limited to the above-described embodiments and various modifications may be made without departing from the spirit and scope of the invention.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 프로세서는, 프로세서에서 처리될 암호화된 데이터의 보안 레벨을 판단하는 보안 레벨 판단부, 및 상기 암호화된 데이터를 수신하고, 상기 보안 레벨 판단부에 의해 판단된 상기 보안 레벨에 상응하는 클록 사이클 동안 상기 암호화된 데이터에 대한 복호화 동작을 수행하여 원본 데이터를 생성하며, 상기 원본 데이터를 처리하는 가변 파이프라인을 포함한다. In order to achieve the above object, a processor according to embodiments of the present invention includes: a security level determination unit that determines a security level of encrypted data to be processed in a processor; and a security level determination unit that receives the encrypted data, And a variable pipeline for performing a decryption operation on the encrypted data during a clock cycle corresponding to the security level determined by the security level to generate original data and processing the original data.
일 실시예에서, 상기 가변 파이프라인은, 상기 암호화된 데이터의 상기 보안 레벨에 따라 상기 복호화 동작의 연산 시간을 변경하는 가변 복호화 블록을 포함할 수 있다.In one embodiment, the variable pipeline may include a variable decryption block that changes the computation time of the decryption operation according to the security level of the encrypted data.
일 실시예에서, 상기 가변 복호화 블록은, 상기 암호화된 데이터의 상기 보안 레벨이 낮은 보안 레벨인 경우 상기 복호화 동작을 수행하지 않고, 상기 암호화된 데이터의 상기 보안 레벨이 일반 보안 레벨인 경우 1 클록 사이클의 상기 연산 시간 동안 상기 복호화 동작을 수행하며, 상기 암호화된 데이터의 상기 보안 레벨이 높은 보안 레벨인 경우 2 이상의 클록 사이클들의 상기 연산 시간 동안 상기 복호화 동작을 수행할 수 있다.In one embodiment, the variable decryption block does not perform the decryption operation when the security level of the encrypted data is a low security level, and when the security level of the encrypted data is a general security level, And perform the decryption operation during the computation time of two or more clock cycles when the security level of the encrypted data is a high security level.
일 실시예에서, 상기 가변 파이프라인은, 상기 프로세서에 입력되는 상기 암호화된 데이터를 상기 보안 레벨에 상응하는 상기 클록 사이클 동안 복호화하여 상기 원본 데이터를 생성하는 가변 복호화 블록, 상기 원본 데이터를 레지스터에 저장하는 페치 블록, 상기 원본 데이터를 해독하는 디코드 블록, 및 상기 해독된 원본 데이터를 실행하는 익스큐트 블록을 포함할 수 있다.In one embodiment, the variable pipeline includes: a variable decryption block for decrypting the encrypted data input to the processor during the clock cycle corresponding to the security level to generate the original data; A decode block for decrypting the original data, and an execution block for executing the decrypted original data.
일 실시예에서, 상기 가변 파이프라인은, 상기 프로세서에 입력되는 상기 암호화된 데이터를 레지스터에 저장하는 페치 블록, 상기 레지스터에 저장된 상기 암호화된 데이터를 상기 보안 레벨에 상응하는 상기 클록 사이클 동안 복호화하여 상기 원본 데이터를 생성하는 가변 복호화 블록, 상기 원본 데이터를 해독하는 디코드 블록, 및 상기 해독된 원본 데이터를 실행하는 익스큐트 블록을 포함할 수 있다.In one embodiment, the variable pipeline includes a fetch block for storing the encrypted data input to the processor in a register, a decryption unit for decrypting the encrypted data stored in the register during the clock cycle corresponding to the security level, A variable decoding block for generating original data, a decode block for decoding the original data, and an execution block for executing the decoded original data.
일 실시예에서, 상기 가변 파이프라인은, 직렬로 연결된 복수의 복호화 블록들, 및 상기 복호화 블록들의 전단에 각각 배치되고, 각각이 데이터 경로를 상기 복호화 블록들 중 상응하는 복호화 블록 또는 다음 스테이지의 블록에 선택적으로 연결하는 복수의 스위치들을 포함할 수 있다.In one embodiment, the variable pipeline includes a plurality of decryption blocks connected in series and a plurality of decryption blocks, respectively disposed in front of the decryption blocks, each having a data path corresponding to a corresponding decryption block of the decryption blocks, And may include a plurality of switches that selectively connect the plurality of switches.
일 실시예에서, 상기 복수의 스위치들 중 상기 보안 레벨에 상응하는 상기 클록 사이클에 상응하는 개수의 스위치들 각각은 상기 데이터 경로를 상기 상응하는 복호화 블록에 연결하고, 상기 복수의 스위치들 중 나머지 스위치들 각각은 상기 데이터 경로를 상기 다음 스테이지의 블록에 연결할 수 있다.In one embodiment, each of the plurality of switches corresponding to the clock cycle corresponding to the security level connects the data path to the corresponding decryption block, and the remaining of the plurality of switches Each of which may connect the data path to a block of the next stage.
일 실시예에서, 상기 가변 파이프라인은, 서로 다른 연산 시간 동안 상기 복호화 동작을 수행하는 복수의 복호화 블록들, 및 데이터 경로를 상기 복호화 블록들 중 상기 보안 레벨에 상응하는 상기 클록 사이클의 상기 연산 시간을 가지는 복호화 블록에 연결하는 스위치를 포함할 수 있다.In one embodiment, the variable pipeline includes a plurality of decryption blocks that perform the decryption operation for different computation times, and a decryption unit that decrypts the data path using the computation time of the clock cycle corresponding to the security level of the decryption blocks And a switch for connecting the decoding block to the decoding block.
일 실시예에서, 상기 가변 파이프라인은, 서로 다른 복호화 알고리즘의 상기 복호화 동작을 수행하는 복수의 복호화 블록들, 및 데이터 경로를 상기 복호화 블록들 중 상기 보안 레벨에 상응하는 상기 복호화 알고리즘의 복호화 블록에 연결하는 스위치를 포함할 수 있다.In one embodiment, the variable pipeline includes a plurality of decryption blocks for performing the decryption operation of different decryption algorithms, and a decryption block for decrypting the data path to a decryption block of the decryption algorithm corresponding to the security level of the decryption blocks And may include a switch for connecting.
일 실시예에서, 상기 가변 파이프라인은, 상기 원본 데이터의 처리 결과를 상기 보안 레벨에 상응하는 상기 클록 사이클 동안 암호화하여 외부로 출력할 수 있다.In one embodiment, the variable pipeline may encrypt the processing result of the original data during the clock cycle corresponding to the security level and output the encrypted data to the outside.
일 실시예에서, 상기 가변 파이프라인은, 상기 보안 레벨에 따라 암호화 동작의 연산 시간을 변경하는 가변 암호화 블록을 포함할 수 있다.In one embodiment, the variable pipeline may include a variable encryption block that alters the computation time of the encryption operation according to the security level.
일 실시예에서, 상기 보안 레벨 판단부는, 상기 암호화된 데이터에 대한 어드레스 범위, 및 상기 어드레스 범위에 상응하는 클록 사이클 수를 저장하는 보안 정책 저장부, 및 상기 프로세서에서 처리될 상기 암호화된 데이터의 어드레스를 수신하고, 상기 보안 정책 저장부로부터 상기 수신된 어드레스가 속하는 상기 어드레스 범위에 상응하는 상기 클록 사이클 수를 독출하고, 상기 독출된 클록 사이클 수에 상응하는 연산 시간 동안 상기 복호화 동작을 수행하도록 상기 가변 파이프라인을 제어하는 파이프라인 제어부를 포함할 수 있다.In one embodiment, the security level determination unit includes: a security policy storage unit that stores an address range for the encrypted data and a number of clock cycles corresponding to the address range; and an address of the encrypted data to be processed in the processor To read the number of clock cycles corresponding to the address range to which the received address belongs from the security policy storage unit, and to perform the decryption operation for an operation time corresponding to the number of read clock cycles And a pipeline control unit for controlling the pipeline.
일 실시예에서, 상기 보안 정책 저장부는, 상기 어드레스 범위에 상응하는 암호화 키를 더욱 저장하고, 상기 파이프라인 제어부는, 상기 수신된 어드레스가 속하는 상기 어드레스 범위에 상응하는 상기 암호화 키를 이용하여 상기 복호화 동작을 수행하도록 상기 가변 파이프라인을 제어할 수 있다.In one embodiment, the security policy storage unit further stores an encryption key corresponding to the address range, and the pipeline control unit controls the encryption key corresponding to the encryption key corresponding to the address range to which the received address belongs, And to control the variable pipeline to perform an operation.
일 실시예에서, 상기 보안 정책 저장부는, 상기 어드레스 범위에 상응하는 복호화 알고리즘의 종류를 더욱 저장하고, 상기 파이프라인 제어부는, 상기 수신된 어드레스가 속하는 상기 어드레스 범위에 상응하는 상기 복호화 알고리즘의 상기 복호화 동작을 수행하도록 상기 가변 파이프라인을 제어할 수 있다.In one embodiment, the security policy storage further stores a type of a decryption algorithm corresponding to the address range, and the pipeline control unit controls the decryption algorithm of the decryption algorithm corresponding to the address range to which the received address belongs, And to control the variable pipeline to perform an operation.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 시스템-온-칩은, 암호화된 데이터를 저장하는 메모리부, 및 상기 메모리부로부터 상기 암호화된 데이터를 수신하고, 상기 암호화된 데이터의 보안 레벨을 판단하며, 상기 판단된 보안 레벨에 상응하는 클록 사이클 동안 상기 암호화된 데이터에 대한 복호화 동작을 수행하여 원본 데이터를 생성하며, 상기 원본 데이터를 처리하는 프로세서를 포함한다.To achieve these and other advantages and in accordance with the purpose of the present invention, as embodied and broadly described herein, there is provided a system-on-chip comprising a memory unit for storing encrypted data and a memory unit for receiving the encrypted data from the memory unit, And a processor for decrypting the encrypted data during a clock cycle corresponding to the determined security level to generate original data, and processing the original data.
본 발명의 실시예들에 따른 프로세서 및 시스템-온-칩은, 처리될 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 동작 성능이 거의 저하되지 않으면서 강력한 암호화/복호화 동작을 수행할 수 있다.The processor and system-on-chip according to embodiments of the present invention include a variable pipeline that adjusts the computation time of the encryption / decryption operation according to the security level of the data to be processed, Strong encryption / decryption operations can be performed.
또한, 본 발명의 실시예들에 따른 프로세서 및 시스템-온-칩은, 프로세서의 파이프라인에서 데이터에 대한 암호화/복호화 동작이 수행됨으로써, 데이터를 안전하게 보호할 수 있다.In addition, the processor and the system-on-chip according to embodiments of the present invention are capable of safely protecting data by performing an encryption / decryption operation on data in a pipeline of the processor.
다만, 본 발명의 효과는 상기 언급한 효과에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.However, the effects of the present invention are not limited to the above-mentioned effects, and may be variously expanded without departing from the spirit and scope of the present invention.
도 1은 본 발명의 실시예들에 따른 프로세서를 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 프로세서를 나타내는 블록도이다.
도 3은 도 2의 프로세서의 실행 사이클을 나타내는 타이밍도이다.
도 4는 본 발명의 다른 실시예에 따른 프로세서를 나타내는 블록도이다.
도 5는 도 4의 프로세서의 실행 사이클을 나타내는 타이밍도이다.
도 6은 본 발명의 또 다른 실시예에 따른 프로세서를 나타내는 블록도이다.
도 7은 본 발명의 또 다른 실시예에 따른 프로세서를 나타내는 블록도이다.
도 8은 본 발명의 또 다른 실시예에 따른 프로세서를 나타내는 블록도이다.
도 9는 본 발명의 또 다른 실시예에 따른 프로세서를 나타내는 블록도이다.
도 10은 도 9의 프로세서의 실행 사이클을 나타내는 타이밍도이다.
도 11은 본 발명의 실시예들에 따른 시스템-온-칩을 나타내는 블록도이다.
도 12 및 도 13은 본 발명의 실시예들에 따른 시스템-온-칩이 스마트 카드에 채용된 예들을 나타내는 도면들이다.
도 14는 본 발명의 실시예들에 따른 시스템-온-칩이 신뢰 플랫폼 모듈(Trusted Platform Module; TPM)에 채용된 예를 나타내는 도면이다.
도 15는 본 발명의 실시예들에 따른 시스템-온-칩이 어플리케이션 프로세서(Application Processor; AP)에 채용된 예를 나타내는 도면이다.1 is a block diagram illustrating a processor in accordance with embodiments of the present invention.
2 is a block diagram illustrating a processor in accordance with one embodiment of the present invention.
3 is a timing diagram showing an execution cycle of the processor of Fig.
4 is a block diagram illustrating a processor in accordance with another embodiment of the present invention.
5 is a timing diagram showing an execution cycle of the processor of Fig.
6 is a block diagram illustrating a processor in accordance with another embodiment of the present invention.
7 is a block diagram illustrating a processor in accordance with another embodiment of the present invention.
8 is a block diagram illustrating a processor in accordance with another embodiment of the present invention.
9 is a block diagram illustrating a processor in accordance with another embodiment of the present invention.
10 is a timing diagram showing an execution cycle of the processor of Fig.
11 is a block diagram illustrating a system-on-chip in accordance with embodiments of the present invention.
12 and 13 are views showing examples in which a system-on-chip according to embodiments of the present invention is employed in a smart card.
14 is a diagram showing an example in which a system-on-chip according to embodiments of the present invention is employed in a Trusted Platform Module (TPM).
15 is a diagram showing an example in which a system-on-chip according to embodiments of the present invention is employed in an application processor (AP).
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.For the embodiments of the invention disclosed herein, specific structural and functional descriptions are set forth for the purpose of describing an embodiment of the invention only, and it is to be understood that the embodiments of the invention may be practiced in various forms, The present invention should not be construed as limited to the embodiments described in Figs.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention is capable of various modifications and various forms, and specific embodiments are illustrated in the drawings and described in detail in the text. It is to be understood, however, that the invention is not intended to be limited to the particular forms disclosed, but on the contrary, is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.
제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제1 구성 요소로 명명될 수 있다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprise", "having", and the like are intended to specify the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, , Steps, operations, components, parts, or combinations thereof, as a matter of principle.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be construed as meaning consistent with meaning in the context of the relevant art and are not to be construed as ideal or overly formal in meaning unless expressly defined in the present application .
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예들을 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성 요소에 대해서는 동일하거나 유사한 참조 부호를 사용한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same or similar reference numerals are used for the same components in the drawings.
여기서, 용어 “데이터(data)”는 프로세서에 의해 실행되는 “명령어(instruction)”(또는 프로그램 데이터, 프로그램 코드 등으로 불릴 수 있음)를 의미하거나, 상기 명령어에 의해 사용, 수정 또는 생성되는 “일반 데이터(normal data)”를 의미하거나, 또는 상기 명령어와 상기 데이터를 총괄하여 의미하도록 사용될 수 있다.Here, the term " data " refers to an " instruction " (also referred to as program data, program code, etc.) executed by a processor, Quot; normal data ", or may be used to refer collectively to the instruction and the data.
또한, 여기서, 용어 “파이프라인(pipeline)”은 직렬 연결된 각각의 스테이지들에 의해 복수의 데이터들이 병렬적으로 처리되는 데이터 처리 방식을 의미하거나, 또는 이러한 병렬 데이터 처리 방식을 수행하는 하드웨어적인 구성을 의미하도록 사용될 수 있다.Here, the term " pipeline " means a data processing method in which a plurality of data are processed in parallel by respective stages connected in series, or a hardware configuration for performing such a parallel data processing method Can be used to mean.
도 1은 본 발명의 실시예들에 따른 프로세서를 나타내는 블록도이다.1 is a block diagram illustrating a processor in accordance with embodiments of the present invention.
도 1을 참조하면, 프로세서(100)는 가변 파이프라인(110) 및 보안 레벨 판단부(150)를 포함한다.Referring to FIG. 1, the
보안 레벨 판단부(150)는 프로세서(100)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단한다. 여기서, 암호화된 데이터(ENC-DATA)는 프로세서(100)에 의해 실행되는 프로그램 데이터(또는 암호화된 명령어(instruction), 암호화된 프로그램 코드 등으로 불릴 수 있음)가 암호화된 것을 나타내거나, 이러한 프로그램 데이터에 의해 사용, 수정 또는 생성되는 일반 데이터(normal data)가 암호화된 것을 나타낼 수 있다. 보안 레벨 판단부(150)는 암호화된 데이터(ENC-DATA)가 외부 메모리에 저장된 위치에 따라 암호화된 데이터(ENC-DATA)의 보안 레벨을 결정할 수 있다. 예를 들어, 보안 레벨 판단부(150)에는 외부 메모리의 소정의 어드레스 범위에 대하여 설정된 보안 레벨이 저장되고, 프로세서(100)에 입력된 암호화된 데이터(ENC-DATA)가 상기 어드레스 범위에 속하는 어드레스를 가진 경우, 보안 레벨 판단부(150)는 암호화된 데이터(ENC-DATA)의 보안 레벨을 상기 설정된 보안 레벨로 판단할 수 있다.The security
가변 파이프라인(110)은 암호화된 데이터(ENC-DATA)를 수신하고, 암호화된 데이터(ENC-DATA)에 대한 복호화 동작을 수행하여 원본 데이터를 생성할 수 있다. 이와 같이, 암호화된 데이터(ENC-DATA)에 대한 복호화 동작이 프로세서(100) 내부, 즉 가변 파이프라인(110)에서 수행되므로, 프로세서(100)의 외부에서는 데이터가 암호화된 상태를 가지고, 원본 데이터가 노출되지 않는다. 이에 따라, 데이터가 안전하게 보호될 수 있다.The
또한, 가변 파이프라인(110)은 보안 레벨 판단부(150)에 의해 판단된 상기 보안 레벨에 상응하는 클록 사이클 동안 암호화된 데이터(ENC-DATA)에 대한 복호화 동작을 수행하여 원본 데이터를 생성할 수 있다. 각 암호화된 데이터(ENC-DATA)는 복수의 보안 레벨들 중 하나를 가질 수 있고, 가변 파이프라인(110)은 서로 다른 보안 레벨들의 암호화된 데이터들(ENC-DATA)에 대하여 서로 다른 클록 사이클의 상기 복호화 동작을 수행할 수 있다. 예를 들어, 각 암호화된 데이터(ENC-DATA)는 세 개의 보안 레벨들 중 하나를 가질 수 있고, 가변 파이프라인(110)은, 암호화된 데이터(ENC-DATA)의 보안 레벨이 낮은 보안 레벨(low security level)인 경우 상기 복호화 동작을 수행하지 않고, 암호화된 데이터(ENC-DATA)의 보안 레벨이 일반 보안 레벨(normal security level)인 경우 1 클록 사이클의 연산 시간 동안 상기 복호화 동작을 수행하며, 암호화된 데이터(ENC-DATA)의 보안 레벨이 높은 보안 레벨(high security level)인 경우 2 이상의 클록 사이클들의 연산 시간 동안 상기 복호화 동작을 수행할 수 있다. 이와 같이, 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨에 따라 복호화 동작의 연산 시간이 변경되고, 가변 파이프라인(110)의 실행 클록 사이클 수가 변경될 수 있다. 이에 따라, 각 데이터의 보안 레벨에 적합한 암호화/복호화 알고리즘의 암호화/복호화 동작이 수행될 수 있다.In addition, the
각 데이터의 보안 레벨에 적합한 암호화/복호화 동작을 수행하도록, 일 실시예에서, 가변 파이프라인(100)은 암호화된 데이터(ENC-DATA)의 보안 레벨에 따라 복호화 동작의 연산 시간을 변경하는 가변 복호화 블록을 포함할 수 있다. 다른 실시예에서, 가변 파이프라인(100)은 직렬로 연결된 복수의 복호화 블록들을 포함하고, 암호화된 데이터(ENC-DATA)가 상기 복수의 복호화 블록들 중 상기 보안 레벨에 상응하는 클록 사이클의 수의 복호화 블록을 지나도록 할 수 있다. 또 다른 실시예에서, 가변 파이프라인(100)은 서로 다른 연산 시간을 가지는 복수의 복호화 블록들을 포함하고, 암호화된 데이터(ENC-DATA)가 상기 복호화 블록들 중 상기 보안 레벨에 상응하는 클록 사이클의 상기 연산 시간을 가지는 복호화 블록을 지나도록 할 수 있다. 실시예에 따라, 상기 서로 다른 연산 시간을 가지는 복호화 블록들은 동일한 복호화 알고리즘의 복호화 동작을 수행하거나, 서로 다른 복호화 알고리즘의 복호화 동작을 수행할 수 있다.In one embodiment, the
또한, 가변 파이프라인(110)은 상기 원본 데이터를 처리할 수 있다. 예를 들어, 가변 파이프라인(110)은 상기 원본 데이터에 대하여 페치(fetch) 동작, 디코드(decode) 동작 및 익스큐트(execute) 동작을 수행함으로써 상기 원본 데이터를 처리할 수 있다. 다른 예에서, 상기 원본 데이터를 처리하도록, 가변 파이프라인(110)은 페치(fetch) 동작, 디코드(decode) 동작, 익스큐트(execute) 동작, 버퍼(buffer)/데이터(data) 동작, 및 라이트-백(write-back) 동작을 수행할 수 있다.In addition, the
일 실시예에서, 상기 원본 데이터의 처리 결과가 외부 메모리에 저장되어야 하는 경우, 가변 파이프라인(110)은 상기 원본 데이터의 처리 결과를 상기 보안 레벨에 상응하는 클록 사이클 동안 암호화하여 암호화된 결과 데이터(ENC-RES-DATA)를 외부로 출력할 수 있다. 예를 들어, 가변 파이프라인(110)은, 상기 보안 레벨이 낮은 보안 레벨인 경우 상기 암호화 동작을 수행하지 않고, 상기 보안 레벨이 일반 보안 레벨인 경우 1 클록 사이클의 연산 시간 동안 상기 암호화 동작을 수행하며, 상기 보안 레벨이 높은 보안 레벨인 경우 2 이상의 클록 사이클들의 연산 시간 동안 상기 암호화 동작을 수행할 수 있다. 각 데이터의 보안 레벨에 적합한 암호화/복호화 동작을 수행하도록, 일 실시예에서, 가변 파이프라인(110)은 상기 보안 레벨에 따라 상기 암호화 동작의 연산 시간을 변경하는 가변 암호화 블록을 포함할 수 있다. 이와 같이, 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨 또는 저장될 암호화된 결과 데이터(ENC-RES-DATA)의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간이 변경되고, 가변 파이프라인(110)의 실행 클록 사이클 수가 변경될 수 있다. 이에 따라, 각 데이터의 보안 레벨에 적합한 암호화/복호화 알고리즘의 암호화/복호화 동작이 수행될 수 있다.In one embodiment, when the processing result of the original data is to be stored in the external memory, the
이와 같이, 프로세서(100)는 데이터의 암호화/복호화를 포함하는 데이터 처리를 가변 파이프라인(110)을 이용하여 수행할 수 있다. 즉, 페치 동작, 디코드 동작 및 익스큐트 동작과 함께 암호화/복호화 동작이 파이프라인 방식으로 수행될 수 있다. 이에 따라, 연속적으로 처리되는 데이터들에 대하여 1 클록 사이클 이상의 강력한 암호화/복호화 알고리즘의 암호화/복호화 동작이 수행되는 경우, 초기에 처리되는 데이터에 대한 시간 지연이 발생할 수 있으나, 그 후 처리되는 데이터들에 대하여 시간 지연 및/또는 동작 성능(또는 동작 속도) 저하가 발생하지 않는다. 즉, 본 발명의 실시예들에 따른 프로세서(100)는 동작 성능을 거의 저하시키지 않으면서 강력한 암호화/복호화 동작을 수행할 수 있다.As such, the
상술한 바와 같이, 본 발명의 실시예들에 따른 프로세서(100)는 프로세서(100)의 내부, 즉 가변 파이프라인(110)에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 실시예들에 따른 프로세서(100)는 데이터의 암호화/복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(100) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 실시예들에 따른 프로세서(100)는, 처리될 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 암호화/복호화 알고리즘의 암호화/복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the
도 2는 본 발명의 일 실시예에 따른 프로세서를 나타내는 블록도이고, 도 3은 도 2의 프로세서의 실행 사이클을 나타내는 타이밍도이다.Figure 2 is a block diagram illustrating a processor in accordance with one embodiment of the present invention, and Figure 3 is a timing diagram illustrating an execution cycle of the processor of Figure 2;
도 2를 참조하면, 프로세서(200)는 가변 파이프라인(210) 및 보안 레벨 판단부(250)를 포함한다.Referring to FIG. 2, the
보안 레벨 판단부(250)는 프로세서(200)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단한다. 보안 레벨 판단부(250)는 암호화된 데이터들(ENC-DATA)에 대한 보안 정책을 저장하고, 저장된 보안 정책에 기초하여 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단하며, 판단된 보안 레벨에 기초하여 가변 파이프라인(210)을 제어할 수 있다. 일 실시예에서, 보안 레벨 판단부(250)는 암호화된 데이터들(ENC-DATA)에 대한 보안 정책을 저장하는 보안 정책 저장부(260), 및 보안 정책 저장부(260)에 저장된 보안 정책에 기초하여 가변 파이프라인(210)을 제어하는 파이프라인 제어부(280)를 포함할 수 있다.The security
예를 들어, 보안 정책 저장부(260)에는 암호화된 데이터들(ENC-DATA)에 대한 적어도 하나의 보안 정책 레코드(270)가 저장될 수 있다. 일 예로서, 보안 정책 레코드(270)는 외부 메모리의 어드레스의 범위(272), 이러한 어드레스의 범위(272)에 저장된 암호화된 데이터들(ENC-DATA)에 대하여 수행될 암호화/복호화 연산의 클록 사이클 수(274), 및 어드레스의 범위(272)에 저장된 암호화된 데이터들(ENC-DATA)에 대하여 수행될 암호화/복호화 연산에서 이용되는 암호화 키(276)를 포함할 수 있다. 일 실시예에서, 소정의 어플리케이션 또는 프로그램이 실행되도록 외부 메모리에 로드될 때, 보안 정책 저장부(260)에 보안 정책 레코드(270)가 기입될 수 있다.For example, the security
파이프라인 제어부(280)는 프로세서(200)에서 처리될 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)를 수신할 수 있다. 예를 들어, 파이프라인 제어부(280)는 프로세서(200)에 포함된 소정의 레지스터, 예를 들어 프로그램 카운터(Program Counter; PC), 명령어 포인터(Instruction Pointer; IP), 또는 명령어 레지스터(Instruction Register; IR)로부터 가변 파이프라인(210)에 입력되는 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)를 수신할 수 있다.The
파이프라인 제어부(280)는 보안 정책 저장부(260)에서 수신된 어드레스(ADDR)가 속하는 어드레스의 범위(272)를 포함하는 보안 정책 레코드(270)를 탐색하고, 보안 정책 저장부(260)로부터 보안 정책 레코드(270)에 포함된 클록 사이클 수(274)를 독출할 수 있다. 파이프라인 제어부(280)는 클록 사이클 수(274)를 나타내는 사이클 수 신호(NCYC)를 가변 파이프라인(210)에 제공함으로써, 가변 파이프라인(210)이 클록 사이클 수(274)에 상응하는 연산 시간 동안 복호화 동작을 수행하도록 가변 파이프라인(210)을 제어할 수 있다. 또한, 파이프라인 제어부(280)는 보안 정책 저장부(260)로부터 보안 정책 레코드(270)에 포함된 암호화 키(276)를 더욱 독출할 수 있다. 파이프라인 제어부(280)는 암호화 키(276)를 가변 파이프라인(210)에 제공함으로써, 가변 파이프라인(210)이 암호화 키(276)를 이용하여 복호화 동작을 수행하도록 가변 파이프라인(210)을 제어할 수 있다.The
가변 파이프라인(210)은 암호화된 데이터(ENC-DATA)를 수신하고, 보안 레벨 판단부(250)에 의해 판단된 보안 레벨에 상응하는 클록 사이클 동안 암호화된 데이터(ENC-DATA)에 대한 복호화 동작을 수행하여 원본 데이터를 생성하며, 원본 데이터를 처리할 수 있다. 일 실시예에서, 가변 파이프라인(210)은 가변 복호화 블록(220), 페치 블록(230), 디코드 블록(232) 및 익스큐트 블록(234)을 포함할 수 있다.The
가변 복호화 블록(220)은 프로세서(200)에 입력되는 암호화된 데이터(ENC_DATA)를 이의 보안 레벨에 상응하는 클록 사이클 동안 복호화하여 원본 데이터를 생성할 수 있다. 즉, 가변 복호화 블록(220)은 암호화된 데이터(ENC_DATA)의 보안 레벨에 따라 복호화 동작의 연산 시간을 변경할 수 있다. 일 실시예에서, 파이프라인 제어부(280)는 암호화된 데이터(ENC_DATA)의 보안 레벨에 상응하는 클록 사이클 수를 나타내는 사이클 수 신호(NCYC)를 가변 복호화 블록(220)에 제공할 수 있고, 가변 복호화 블록(220)은 파이프라인 제어부(280)로부터 입력된 사이클 수 신호(NCYC)가 지시하는 클록 사이클 수 동안 복호화 동작을 수행할 수 있다. 예를 들어, 암호화된 데이터(ENC_DATA)의 보안 레벨이 낮은 보안 레벨인 경우, 사이클 수 신호(NCYC)는 0 클록 사이클을 나타낼 수 있고, 가변 복호화 블록(220)은 복호화 동작을 수행하지 않을 수 있다. 또한, 암호화된 데이터(ENC_DATA)의 보안 레벨이 일반 보안 레벨인 경우, 사이클 수 신호(NCYC)는 1 클록 사이클을 나타낼 수 있고, 가변 복호화 블록(220)은 1 클록 사이클의 연산 시간 동안 복호화 동작을 수행할 수 있다. 또한, 암호화된 데이터(ENC_DATA)의 보안 레벨이 높은 보안 레벨인 경우, 사이클 수 신호(NCYC)는 2 클록 사이클을 나타낼 수 있고, 가변 복호화 블록(220)은 2 클록 사이클들의 연산 시간 동안 복호화 동작을 수행할 수 있다. 또한, 가변 복호화 블록(220)은 파이프라인 제어부(280)로부터 암호화 키(KEY)를 더욱 수신할 수 있고, 수신된 암호화 키(KEY)를 이용하여 상기 복호화 동작을 수행할 수 있다. 한편, 이와 같이, 상기 복호화 동작이 프로세서(200) 내부, 즉 가변 복호화 블록(220)에 의해 수행됨으로써, 프로세서(200) 외부로 원본 데이터가 노출되지 않아 데이터가 보다 안전하게 보호될 수 있다.The
페치 블록(230)은 가변 복호화 블록(220)에 의해 생성된 원본 데이터를 프로세서(200)에 포함된 레지스터에 저장할 수 있다. 예를 들어, 페치 블록(230)은 상기 원본 데이터를 명령어 레지스터(Instruction Register; IR)에 저장할 수 있다. 디코드 블록(232)은 상기 원본 데이터를 해독(decoding)할 수 있다. 예를 들어, 디코드 블록(232)은 상기 명령어 레지스터에 저장된 상기 원본 데이터를 해독하여 익스큐트 블록(234)에서 수행될 동작을 파악할 수 있다. 익스큐트 블록(234)은 상기 해독된 원본 데이터를 실행(execute)할 수 있다.The fetch
이러한 가변 파이프라인(210)은 파이프라인 방식으로 암호화된 데이터들(ENC_DATA)을 병렬적으로 처리할 수 있다. 도 3에는 가변 파이프라인(210)의 파이프라인 방식의 처리의 예가 도시되어 있다. 도 3에서, 310은 일반 보안 레벨을 가지는 제1 암호화된 데이터(ENC-DATA1)에 대한 실행 타이밍을 나타내고, 330은 일반 보안 레벨을 가지는 제2 암호화된 데이터(ENC-DATA2)에 대한 실행 타이밍을 나타내며, 350은 높은 보안 레벨을 가지는 제3 암호화된 데이터(ENC-DATA3)에 대한 실행 타이밍을 나타내고, 370은 높은 보안 레벨을 가지는 제4 암호화된 데이터(ENC-DATA4)에 대한 실행 타이밍을 나타낼 수 있다.This
도 3에 도시된 바와 같이, 제1 클록 사이클에서 제1 암호화된 데이터(ENC-DATA1)가 프로세서(200)에 입력될 수 있다. 한편, 프로세서(200)에 데이터가 정확하게 입력되는 것이 보장되도록 상기 데이터는 상기 데이터에 대한 처리가 수행되는 시점으로부터 소정의 셋업 시간(예를 들어, CPU 셋업 시간) 전에 프로세서(200)에 도착할 수 있다. 제2 클록 사이클에서, 제1 암호화된 데이터(ENC-DATA1)에 대한 복호화 동작이 수행되면서, 제2 암호화된 데이터(ENC-DATA2)가 프로세서(200)에 입력될 수 있다. 제3 클록 사이클에서, 제1 암호화된 데이터(ENC-DATA1)(또는 제1 암호화된 데이터(ENC-DATA1)의 원본 데이터)에 대한 페치 동작, 제2 암호화된 데이터(ENC-DATA2)에 대한 복호화 동작, 및 제3 암호화된 데이터(ENC-DATA3)의 입력이 동시에 수행될 수 있다. 또한, 제4 클록 사이클에서, 제1 암호화된 데이터(ENC-DATA1)에 대한 디코드 동작, 제2 암호화된 데이터(ENC-DATA2)에 대한 페치 동작, 제3 암호화된 데이터(ENC-DATA3)에 대한 복호화 동작, 및 제4 암호화된 데이터(ENC-DATA4)의 입력이 동시에 수행될 수 있다. 이러한 방식으로, 가변 파이프라인(210)의 각 스테이지, 즉 가변 복호화 블록(220), 페치 블록(230), 디코드 블록(232) 및 익스큐트 블록(234) 각각이 서로 다른 데이터들(ENC-DATA1, ENC-DATA2, ENC-DATA3, ENC-DATA4)을 병렬적으로 처리함으로써, 프로세서(200) 및 이를 포함하는 시스템의 동작 성능이 향상될 수 있다.As shown in FIG. 3, the first encrypted data (ENC-DATA1) may be input to the
한편, 암호화/복호화 동작이 수행되지 않는 경우와 비교하여, 연속적으로 처리되는 데이터들(ENC-DATA1, ENC-DATA2, ENC-DATA3, ENC-DATA4) 중 첫 번째로 처리되는 데이터(ENC-DATA1)의 처리 시간이 1 클록 사이클만큼 지연되고, 복호화 동작의 연산 시간이 증가될 때(예를 들어, 제3 암호화된 데이터(ENC-DATA3)가 처리될 때) 처리 시간이 지연될 수 있다. 그러나, 페치 동작, 디코드 동작 및 익스큐트 동작과 함께 암호화/복호화 동작이 파이프라인 방식으로 수행되므로, 후속된 처리에서는 지연이 발생하지 않을 수 있다. 따라서, 이러한 파이프라인 방식의 처리에 의해 연속적으로 처리되는 데이터들(ENC-DATA1, ENC-DATA2, ENC-DATA3, ENC-DATA4)의 전체 처리 시간의 지연은 미미한 수준일 수 있다.(ENC-DATA1) among the data (ENC-DATA1, ENC-DATA2, ENC-DATA3 and ENC-DATA4) which are successively processed as compared with the case where the encryption / The processing time may be delayed by one clock cycle and the computation time of the decryption operation is increased (for example, when the third encrypted data (ENC-DATA3) is processed). However, since the encryption / decryption operation is performed in a pipelined manner together with the fetch operation, the decode operation, and the exhaust operation, no delay may occur in the subsequent processing. Therefore, the delay in the overall processing time of the data (ENC-DATA1, ENC-DATA2, ENC-DATA3, and ENC-DATA4) continuously processed by this pipelined processing may be insignificant.
또한, 도 3에 도시된 예에서와 같이, 일반 보안 레벨을 가지는 암호화된 데이터들(ENC-DATA1, ENC-DATA2)에 대한 복호화 동작은 1 클록 사이클 동안 수행되고, 높은 보안 레벨을 가지는 암호화된 데이터들(ENC-DATA3, ENC-DATA4)에 대한 복호화 동작은 2 클록 사이클 동안 수행될 수 있다. 이와 같이, 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간이 조절될 수 있다. 이에 따라, 각 데이터의 보안 레벨에 적합한 암호화/복호화 알고리즘의 암호화/복호화 동작이 수행될 수 있다.Also, as in the example shown in Fig. 3, the decryption operation for the encrypted data (ENC-DATA1, ENC-DATA2) having the general security level is performed for one clock cycle, and the encrypted data (ENC-DATA3, ENC-DATA4) may be performed for two clock cycles. Thus, the computation time of the encryption / decryption operation can be adjusted according to the security level of the data. Accordingly, the encryption / decryption operation of the encryption / decryption algorithm suitable for the security level of each data can be performed.
상술한 바와 같이, 본 발명의 일 실시예에 따른 프로세서(200)는 프로세서(200)의 내부, 즉 가변 복호화 블록(220)에서 데이터에 대한 복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 일 실시예에 따른 프로세서(200)는 데이터의 복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(200) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 일 실시예에 따른 프로세서(200)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화 알고리즘의 복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the
도 4는 본 발명의 다른 실시예에 따른 프로세서를 나타내는 블록도이고, 도 5는 도 4의 프로세서의 실행 사이클을 나타내는 타이밍도이다.FIG. 4 is a block diagram illustrating a processor according to another embodiment of the present invention, and FIG. 5 is a timing diagram illustrating an execution cycle of the processor of FIG.
도 4를 참조하면, 프로세서(400)는 가변 파이프라인(410) 및 보안 레벨 판단부(450)를 포함한다. 도 4의 프로세서(400)는, 가변 복호화 블록(420)이 페치 블록(430)과 디코드 블록(432) 사이에 배치된 것 외에, 도 2의 프로세서(200)와 유사한 구성을 가질 수 있다.Referring to FIG. 4, the
보안 레벨 판단부(450)는 프로세서(400)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단한다. 보안 레벨 판단부(450)는 보안 정책 저장부(460) 및 파이프라인 제어부(480)를 포함할 수 있다. 보안 정책 저장부(460)에는 암호화된 데이터들(ENC-DATA)에 대한 적어도 하나의 보안 정책 레코드(470)가 저장될 수 있다. 일 예로서, 보안 정책 레코드(470)는 어드레스의 범위(472), 클록 사이클 수(474), 및 암호화 키(476)를 포함할 수 있다. 파이프라인 제어부(480)는 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)를 수신하고, 보안 정책 저장부(460)에서 수신된 어드레스(ADDR)가 속하는 어드레스의 범위(472)를 포함하는 보안 정책 레코드(470)를 탐색할 수 있다. 파이프라인 제어부(480)는 탐색된 보안 정책 레코드(470)에 포함된 클록 사이클 수(474) 및 암호화 키(476)를 가변 파이프라인(410)에 포함된 가변 복호화 블록(420)에 제공할 수 있다.The security
가변 파이프라인(410)은 페치 블록(430), 가변 복호화 블록(420), 디코드 블록(432) 및 익스큐트 블록(434)을 포함할 수 있다. 페치 블록(430)은 외부 메모리로부터 암호화된 데이터(ENC-DATA)를 페치하여 프로세서(400)에 포함된 레지스터에 저장할 수 있다. 예를 들어, 페치 블록(430)은 암호화된 데이터(ENC-DATA)를 명령어 레지스터(Instruction Register; IR)에 저장할 수 있다. 가변 복호화 블록(420)은 상기 레지스터에 저장된 암호화된 데이터(ENC-DATA)를 암호화된 데이터(ENC-DATA)의 보안 레벨에 상응하는 클록 사이클 동안 복호화하여 원본 데이터를 생성할 수 있다. 예를 들어, 가변 복호화 블록(420)은 파이프라인 제어부(480)로부터 입력된 사이클 수 신호(NCYC)가 지시하는 클록 사이클 수 동안 복호화 동작을 수행할 수 있다. 또한, 가변 복호화 블록(420)은 파이프라인 제어부(480)로부터 입력된 암호화 키(KEY)를 이용하여 상기 복호화 동작을 수행할 수 있다. 예를 들어, 가변 복호화 블록(420)에 의해 생성된 상기 원본 데이터는 상기 명령어 레지스터 또는 다른 레지스터에 저장될 수 있다. 디코드 블록(432)은 상기 원본 데이터를 해독하고, 익스큐트 블록(434)은 상기 해독된 원본 데이터를 실행할 수 있다.The
이러한 가변 파이프라인(410)은 파이프라인 방식으로 암호화된 데이터들(ENC_DATA)을 병렬적으로 처리할 수 있다. 도 5에는 가변 파이프라인(410)의 파이프라인 방식의 처리의 예가 도시되어 있다. 도 5에서, 510은 일반 보안 레벨을 가지는 제1 암호화된 데이터(ENC-DATA1)에 대한 실행 타이밍을 나타내고, 530은 일반 보안 레벨을 가지는 제2 암호화된 데이터(ENC-DATA2)에 대한 실행 타이밍을 나타내며, 550은 높은 보안 레벨을 가지는 제3 암호화된 데이터(ENC-DATA3)에 대한 실행 타이밍을 나타내고, 570은 높은 보안 레벨을 가지는 제4 암호화된 데이터(ENC-DATA4)에 대한 실행 타이밍을 나타낼 수 있다.This
도 5에 도시된 바와 같이, 각 암호화된 데이터(ENC-DATA1, ENC-DATA2, ENC-DATA3, ENC-DATA4)에 대하여 페치 동작, 복호화 동작, 디코드 동작 및 익스큐트 동작이 순차적으로 수행될 수 있다. 한편, 가변 파이프라인(410)의 각 스테이지, 즉 페치 블록(430), 가변 복호화 블록(420), 디코드 블록(432) 및 익스큐트 블록(434) 각각이 서로 다른 데이터들(ENC-DATA1, ENC-DATA2, ENC-DATA3, ENC-DATA4)을 병렬적으로 처리함으로써, 프로세서(400) 및 이를 포함하는 시스템의 동작 성능이 향상될 수 있다. 또한, 페치 동작, 디코드 동작 및 익스큐트 동작과 함께 암호화/복호화 동작이 파이프라인 방식으로 수행되므로, 동작 성능이 거의 저하되지 않을 수 있다. 게다가, 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간이 조절될 수 있다. 이에 따라, 각 데이터의 보안 레벨에 적합한 암호화/복호화 알고리즘의 암호화/복호화 동작이 수행될 수 있다.As shown in FIG. 5, a fetch operation, a decryption operation, a decode operation, and an excitation operation may be sequentially performed on each of the encrypted data (ENC-DATA1, ENC-DATA2, ENC-DATA3 and ENC-DATA4) . Each of the stages of the
상술한 바와 같이, 본 발명의 다른 실시예에 따른 프로세서(400)는 프로세서(400)의 내부, 즉 가변 복호화 블록(420)에서 데이터에 대한 복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 다른 실시예에 따른 프로세서(400)는 데이터의 복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(400) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 다른 실시예에 따른 프로세서(400)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화 알고리즘의 복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the
한편, 도 2 및 도 4에는 복호화 블록을 제외한 파이프라인의 스테이지들이 페치 스테이지, 디코드 스테이지 및 익스큐트 스테이지의 세 개의 스테이지들인 예가 도시되어 있으나, 실시예에 따라, 프로세서의 파이프라인은 임의의 수의 스테이지들을 포함할 수 있다. 또한, 도 2 및 도 4에는 프로세서가 하나의 파이프라인을 포함하는 예가 도시되어 있으나, 실시예에 따라, 프로세서는 2 이상의 파이프라인들을 포함할 수 있다. 또한, 도 2에는 가변 복호화 블록(220)이 페치 블록(230)의 전단에 배치된 예가 도시되어 있고, 도 4에는 가변 복호화 블록(420)이 페치 블록(430)과 디코드 블록(432) 사이에 배치된 예가 도시되어 있으나, 가변 복호화 블록(220) 또는 후술될 적어도 하나의 복호화 블록은 가변 파이프라인 상의 임의의 위치에 배치될 수 있다. 이하에서는, 적어도 하나의 복호화 블록이 페치 블록(230)의 전단에 배치된 실시예들에 대하여 예시적으로 설명한다.On the other hand, although FIGS. 2 and 4 show an example in which the stages of the pipeline excluding the decryption block are three stages of a fetch stage, a decode stage, and an execute stage, according to an embodiment, Stages. 2 and 4 show an example in which the processor includes one pipeline, however, according to an embodiment, the processor may include more than one pipeline. 4 shows an example in which the
도 6은 본 발명의 또 다른 실시예에 따른 프로세서를 나타내는 블록도이다.6 is a block diagram illustrating a processor in accordance with another embodiment of the present invention.
도 6을 참조하면, 프로세서(600)는 가변 파이프라인(610) 및 보안 레벨 판단부(650)를 포함한다. 도 6의 프로세서(600)는, 도 2에 도시된 가변 복호화 블록(220)을 대신하여 직렬 연결된 복수의 복호화 블록들(621, 623, 625), 및 복수의 스위치들(622, 624, 626, 628)을 포함하는 것 외에, 도 2의 프로세서(200)와 유사한 구성을 가질 수 있다.Referring to FIG. 6, the
보안 레벨 판단부(650)는 프로세서(600)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단한다. 보안 레벨 판단부(650)는 보안 정책 저장부(660) 및 파이프라인 제어부(680)를 포함할 수 있다. 보안 정책 저장부(660)에는 암호화된 데이터들(ENC-DATA)에 대한 적어도 하나의 보안 정책 레코드(670)가 저장될 수 있다. 일 예로서, 보안 정책 레코드(670)는 어드레스의 범위(672), 클록 사이클 수(674), 및 암호화 키(676)를 포함할 수 있다. 파이프라인 제어부(680)는 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)를 수신하고, 보안 정책 저장부(660)에서 수신된 어드레스(ADDR)가 속하는 어드레스의 범위(672)를 포함하는 보안 정책 레코드(670)를 탐색할 수 있다. 파이프라인 제어부(680)는 탐색된 보안 정책 레코드(670)에 포함된 클록 사이클 수(674)에 기초하여 복수의 스위치들(622, 624, 626, 628)을 제어하기 위한 복수의 스위칭 신호들(SWS1, SWS2, SWSN, SWSO)을 생성하고, 탐색된 보안 정책 레코드(670)에 포함된 암호화 키(676)를 가변 파이프라인(610)에 포함된 복호화 블록들(621, 623, 625)에 제공할 수 있다.The security
가변 파이프라인(610)은 직렬 연결된 복수의 복호화 블록들(621, 623, 625), 복호화 블록들(621, 623, 625)의 전단에 각각 배치된 복수의 스위치들(622, 624, 626), 페치 블록(630), 디코드 블록(632) 및 익스큐트 블록(634)을 포함할 수 있다. 복호화 블록들(621, 623, 625) 각각은 1 클록 사이클의 복호화 동작을 수행할 수 있다. 스위치들(622, 624, 626) 각각은 이의 입력에 연결된 데이터 경로를 복호화 블록들(621, 623, 625) 중 상응하는 복호화 블록 또는 다음 스테이지의 블록(즉, 페치 블록(630))에 선택적으로 연결할 수 있다. 예를 들어, 제1 스위치(622)는 제1 스위칭 신호(SWS1)에 응답하여 데이터 경로를 제1 복호화 블록(621) 또는 페치 블록(630)에 선택적으로 연결할 수 있고, 제2 스위치(624)는 제2 스위칭 신호(SWS2)에 응답하여 데이터 경로를 제2 복호화 블록(623) 또는 페치 블록(630)에 선택적으로 연결할 수 있으며, 제N 스위치(626)는 제N 스위칭 신호(SWSN)에 응답하여 데이터 경로를 제N 복호화 블록(625) 또는 페치 블록(630)에 선택적으로 연결할 수 있다. 일 실시예에서, 가변 파이프라인(610)은 페치 블록(630)의 전단에 배치된 스위치(628)를 더 포함할 수 있다. 스위치(628)는 스위칭 신호(SWSO)에 응답하여 복수의 데이터 경로들 중 하나를 페치 블록(630)에 연결할 수 있다.The
파이프라인 제어부(680)는 복수의 스위치들(622, 624, 626) 중, 앞부분에 위치하고, 클록 사이클 수(674)에 상응하는 수의 스위치들이 데이터 경로를 상응하는 복호화 블록들에 연결하고, 나머지 스위치들이 데이터 경로를 페치 블록(630)에 연결하도록 스위칭 신호들(SWS1, SWS2, SWSN)을 생성할 수 있다.The
예를 들어, 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)가 속하는 어드레스 범위(672)에 상응하는 클록 사이클 수(674)가 1인 경우, 파이프라인 제어부(680)는 제1 스위칭 신호(SWS1)를 제1 로직 레벨로 생성하고, 나머지 스위칭 신호들(SWS2, SWSN)을 제2 로직 레벨로 생성할 수 있다. 제1 스위치(622)는 제1 로직 레벨의 제1 스위칭 신호(SWS1)에 응답하여 암호화된 데이터(ENC-DATA)의 데이터 경로를 제1 복호화 블록(621)에 연결하고, 나머지 스위치들(624, 626)(또는 바로 다음 스위치로서 제2 스위치(624))은 제2 로직 레벨의 스위칭 신호들(SWS2, SWSN)에 응답하여 데이터 경로를 페치 블록(630)에 연결할 수 있다. 이에 따라, 암호화된 데이터(ENC-DATA)에 대하여 제1 복호화 블록(621)에 의해 1 클록 사이클의 복호화 동작이 수행되어 원본 데이터가 생성될 수 있다. 한편, 제1 복호화 블록(621)은 파이프라인 제어부(680)로부터 제공된 암호화 키(KEY)를 이용하여 상기 복호화 동작을 수행할 수 있다. 다른 예에서, 클록 사이클 수(674)가 2인 경우, 제1 및 제2 스위칭 신호들(SWS1, SWS2)이 제1 로직 레벨을 가지고, 나머지 스위칭 신호들(SWSN)은 제2 로직 레벨을 가질 수 있다. 이에 따라, 암호화된 데이터(ENC-DATA)에 대하여 제1 및 제2 복호화 블록들(621, 623)에 의해 2 클록 사이클의 복호화 동작이 수행되어 원본 데이터가 생성될 수 있다. 한편, 제1 및 제2 복호화 블록들(621, 623)은 파이프라인 제어부(680)로부터 제공된 암호화 키(KEY)를 이용하여 상기 복호화 동작을 수행할 수 있다.For example, when the number of clock cycles 674 corresponding to the
페치 블록(630)은 원본 데이터를 프로세서(600)에 포함된 소정의 레지스터에 저장할 수 있다. 디코드 블록(632)은 상기 원본 데이터를 해독하고, 익스큐트 블록(634)은 상기 해독된 원본 데이터를 실행할 수 있다.The fetch
상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로세서(600)는 프로세서(600)의 내부, 즉 직렬 연결된 복수의 복호화 블록들(621, 623, 625)에서 데이터에 대한 복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 또 다른 실시예에 따른 프로세서(600)는 데이터의 복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(600) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 또 다른 실시예에 따른 프로세서(600)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화 알고리즘의 복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the
도 7은 본 발명의 또 다른 실시예에 따른 프로세서를 나타내는 블록도이다.7 is a block diagram illustrating a processor in accordance with another embodiment of the present invention.
도 7을 참조하면, 프로세서(700)는 가변 파이프라인(710) 및 보안 레벨 판단부(750)를 포함한다. 도 7의 프로세서(700)는, 도 2에 도시된 가변 복호화 블록(220)을 대신하여 서로 다른 연산 시간 동안 복호화 동작을 수행하는 복수의 복호화 블록들(721, 723, 725), 및 스위치(722)를 포함하는 것 외에, 도 2의 프로세서(200)와 유사한 구성을 가질 수 있다.Referring to FIG. 7, the
보안 레벨 판단부(750)는 프로세서(700)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단한다. 보안 레벨 판단부(750)는 보안 정책 저장부(760) 및 파이프라인 제어부(780)를 포함할 수 있다. 보안 정책 저장부(760)에는 암호화된 데이터들(ENC-DATA)에 대한 적어도 하나의 보안 정책 레코드(770)가 저장될 수 있다. 일 예로서, 보안 정책 레코드(770)는 어드레스의 범위(772), 클록 사이클 수(774), 및 암호화 키(776)를 포함할 수 있다. 파이프라인 제어부(780)는 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)를 수신하고, 보안 정책 저장부(760)에서 수신된 어드레스(ADDR)가 속하는 어드레스의 범위(772)를 포함하는 보안 정책 레코드(770)를 탐색할 수 있다. 파이프라인 제어부(780)는 탐색된 보안 정책 레코드(770)에 포함된 클록 사이클 수(774)에 기초하여 스위치(722)를 제어하기 위한 스위칭 신호(SWS)를 생성하고, 탐색된 보안 정책 레코드(770)에 포함된 암호화 키(776)를 가변 파이프라인(710)에 포함된 복호화 블록들(721, 723, 725)에 제공할 수 있다.The security
가변 파이프라인(710)은 서로 다른 연산 시간을 가지는 복수의 복호화 블록들(721, 723, 725), 복호화 블록들(721, 723, 725)의 전단에 배치된 스위치(722), 페치 블록(730), 디코드 블록(732) 및 익스큐트 블록(734)을 포함할 수 있다. 복호화 블록들(721, 723, 725)은 서로 다른 연산 시간 동안 복호화 동작을 수행할 수 있다. 예를 들어, 제1 복호화 블록(721)은 1 클록 사이클의 복호화 동작을 수행하고, 제2 복호화 블록(723)은 2 클록 사이클의 복호화 동작을 수행하며, 제N 복호화 블록(725)은 N 클록 사이클의 복호화 동작을 수행할 수 있다. 스위치(722)는 스위칭 신호(SWS)에 응답하여 암호화된 데이터(ENC-DATA)의 데이터 경로를 복호화 블록들(721, 723, 725) 중 하나 또는 다음 스테이지의 블록(예를 들어, 페치 블록(730))에 연결할 수 있다. 일 실시예에서, 가변 파이프라인(710)은 페치 블록(730)의 전단에 배치된 스위치(728)를 더 포함할 수 있다. 스위치(728)는 스위칭 신호(SWSO)에 응답하여 복수의 데이터 경로들 중 하나를 페치 블록(730)에 연결할 수 있다.The
파이프라인 제어부(780)는 암호화된 데이터(ENC-DATA)가 복호화 블록들(721, 723, 725) 중 클록 사이클 수(774)에 상응하는 연산 시간을 가지는 복호화 블록에 인가되도록 스위칭 신호(SWS)를 생성할 수 있다.The
예를 들어, 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)가 속하는 어드레스 범위(772)에 상응하는 클록 사이클 수(774)가 1인 경우, 파이프라인 제어부(780)는 암호화된 데이터(ENC-DATA)의 데이터 경로가 1 클록 사이클의 복호화 동작을 수행하는 제1 복호화 블록(721)에 연결되도록 스위칭 신호(SWS)를 생성할 수 있다. 이에 따라, 암호화된 데이터(ENC-DATA)에 대하여 제1 복호화 블록(721)에 의해 1 클록 사이클의 복호화 동작이 수행되어 원본 데이터가 생성될 수 있다. 한편, 제1 복호화 블록(721)은 파이프라인 제어부(780)로부터 제공된 암호화 키(KEY)를 이용하여 상기 복호화 동작을 수행할 수 있다. 다른 예에서, 클록 사이클 수(774)가 2인 경우, 파이프라인 제어부(780)는 암호화된 데이터(ENC-DATA)의 데이터 경로가 2 클록 사이클의 복호화 동작을 수행하는 제2 복호화 블록(723)에 연결되도록 스위칭 신호(SWS)를 생성할 수 있다. 이에 따라, 암호화된 데이터(ENC-DATA)에 대하여 제2 복호화 블록(723)에 의해 2 클록 사이클의 복호화 동작이 수행되어 원본 데이터가 생성될 수 있다. 한편, 제2 복호화 블록(723)은 파이프라인 제어부(780)로부터 제공된 암호화 키(KEY)를 이용하여 상기 복호화 동작을 수행할 수 있다.For example, when the number of clock cycles 774 corresponding to the
페치 블록(730)은 원본 데이터를 프로세서(700)에 포함된 소정의 레지스터에 저장할 수 있다. 디코드 블록(732)은 상기 원본 데이터를 해독하고, 익스큐트 블록(734)은 상기 해독된 원본 데이터를 실행할 수 있다.The fetch
상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로세서(700)는 프로세서(700)의 내부, 즉 복수의 복호화 블록들(721, 723, 725)에서 데이터에 대한 복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 또 다른 실시예에 따른 프로세서(700)는 데이터의 복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(700) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 또 다른 실시예에 따른 프로세서(700)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화 알고리즘의 복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the
도 8은 본 발명의 또 다른 실시예에 따른 프로세서를 나타내는 블록도이다.8 is a block diagram illustrating a processor in accordance with another embodiment of the present invention.
도 8을 참조하면, 프로세서(800)는 가변 파이프라인(810) 및 보안 레벨 판단부(850)를 포함한다. 도 8의 프로세서(800)는, 도 2에 도시된 가변 복호화 블록(820)을 대신하여 서로 다른 복호화 알고리즘의 복호화 동작을 수행하는 복수의 복호화 블록들(821, 823, 825), 및 스위치(822)를 포함하는 것 외에, 도 2의 프로세서(200)와 유사한 구성을 가질 수 있다.Referring to FIG. 8, the
보안 레벨 판단부(850)는 프로세서(800)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단한다. 보안 레벨 판단부(850)는 보안 정책 저장부(860) 및 파이프라인 제어부(880)를 포함할 수 있다. 보안 정책 저장부(860)에는 암호화된 데이터들(ENC-DATA)에 대한 적어도 하나의 보안 정책 레코드(870)가 저장될 수 있다. 일 예로서, 보안 정책 레코드(870)는 어드레스의 범위(872), 클록 사이클 수(874), 및 암호화 키(876)를 포함할 수 있고, 수행될 복호화/암호화 알고리즘의 종류를 나타나는 알고리즘 종류(878)를 더욱 포함할 수 있다. 파이프라인 제어부(880)는 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)를 수신하고, 보안 정책 저장부(860)에서 수신된 어드레스(ADDR)가 속하는 어드레스의 범위(872)를 포함하는 보안 정책 레코드(870)를 탐색할 수 있다. 파이프라인 제어부(880)는 탐색된 보안 정책 레코드(770)에 포함된 알고리즘 종류(878) 및/또는 클록 사이클 수(874)에 기초하여 스위치(822)를 제어하기 위한 스위칭 신호(SWS)를 생성하고, 탐색된 보안 정책 레코드(870)에 포함된 암호화 키(876)를 가변 파이프라인(810)에 포함된 복호화 블록들(821, 823, 825)에 제공할 수 있다.The security
가변 파이프라인(810)은 서로 다른 복호화 알고리즘을 가지는 복수의 복호화 블록들(821, 823, 825), 복호화 블록들(821, 823, 825)의 전단에 배치된 스위치(822), 페치 블록(830), 디코드 블록(832) 및 익스큐트 블록(834)을 포함할 수 있다. 복호화 블록들(821, 823, 825)은 서로 다른 복호화 알고리즘의 복호화 동작을 수행할 수 있다. 예를 들어, 제1 복호화 블록(821)은 제1 복호화 알고리즘의 복호화 동작을 수행하고, 제2 복호화 블록(823)은 제2 복호화 알고리즘의 복호화 동작을 수행하며, 제N 복호화 블록(825)은 제N 복호화 알고리즘의 복호화 동작을 수행할 수 있다. 스위치(822)는 스위칭 신호(SWS)에 응답하여 암호화된 데이터(ENC-DATA)의 데이터 경로를 복호화 블록들(821, 823, 825) 중 하나 또는 다음 스테이지의 블록(예를 들어, 페치 블록(830))에 연결할 수 있다. 일 실시예에서, 가변 파이프라인(810)은 페치 블록(830)의 전단에 배치된 스위치(828)를 더 포함할 수 있다. 스위치(828)는 스위칭 신호(SWSO)에 응답하여 복수의 데이터 경로들 중 하나를 페치 블록(830)에 연결할 수 있다.The
파이프라인 제어부(880)는 암호화된 데이터(ENC-DATA)가 복호화 블록들(821, 823, 825) 중 알고리즘 종류(878)가 나타내는 복호화 알고리즘을 가지는 복호화 블록에 인가되도록 스위칭 신호(SWS)를 생성할 수 있다.The
예를 들어, 암호화된 데이터(ENC-DATA)의 어드레스(ADDR)가 속하는 어드레스 범위(872)에 상응하는 알고리즘 종류(878)가 제1 복호화 알고리즘을 나타내는 경우, 파이프라인 제어부(880)는 암호화된 데이터(ENC-DATA)의 데이터 경로가 상기 제1 복호화 알고리즘의 복호화 동작을 수행하는 제1 복호화 블록(821)에 연결되도록 스위칭 신호(SWS)를 생성할 수 있다. 이에 따라, 암호화된 데이터(ENC-DATA)에 대하여 제1 복호화 블록(821)에 의해 상기 제1 복호화 알고리즘의 복호화 동작이 수행되어 원본 데이터가 생성될 수 있다. 한편, 제1 복호화 블록(821)은 파이프라인 제어부(880)로부터 제공된 암호화 키(KEY)를 이용하여 상기 복호화 동작을 수행할 수 있다. 다른 예에서, 알고리즘 종류(878)가 제2 복호화 알고리즘을 나타내는 경우, 파이프라인 제어부(880)는 암호화된 데이터(ENC-DATA)의 데이터 경로가 상기 제2 복호화 알고리즘의 복호화 동작을 수행하는 제2 복호화 블록(823)에 연결되도록 스위칭 신호(SWS)를 생성할 수 있다. 이에 따라, 암호화된 데이터(ENC-DATA)에 대하여 제2 복호화 블록(823)에 의해 상기 제2 복호화 알고리즘의 복호화 동작이 수행되어 원본 데이터가 생성될 수 있다. 한편, 제2 복호화 블록(823)은 파이프라인 제어부(880)로부터 제공된 암호화 키(KEY)를 이용하여 상기 복호화 동작을 수행할 수 있다.For example, if the
한편, 도 8에는 복호화 알고리즘의 종류와 복호화 블록이 1:1로 대응되는 예가 도시되어 있으나, 실시예에 따라, 가변 파이프라인(810)은 한 종류의 복호화 알고리즘을 수행하는 2 이상의 복호화 블록들을 포함할 수 있고, 상기 2 이상의 복호화 블록들은 서로 다른 연산 시간을 가질 수 있다. 이 경우, 파이프라인 제어부(880)는 알고리즘 종류(878) 및 클록 사이클 수(874)에 기초하여 적당한 복호화 블록에 의해 복호화 동작이 수행되도록 스위칭 신호(SWS)를 생성할 수 있다.8 illustrates an example in which types of decryption algorithms correspond to decryption blocks 1: 1. However, according to an embodiment, the
페치 블록(830)은 원본 데이터를 프로세서(800)에 포함된 소정의 레지스터에 저장할 수 있다. 디코드 블록(832)은 상기 원본 데이터를 해독하고, 익스큐트 블록(834)은 상기 해독된 원본 데이터를 실행할 수 있다.The fetch
상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로세서(800)는 프로세서(800)의 내부, 즉 복수의 복호화 블록들(821, 823, 825)에서 데이터에 대한 복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 또 다른 실시예에 따른 프로세서(800)는 데이터의 복호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(800) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 또 다른 실시예에 따른 프로세서(800)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화 알고리즘의 복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the
도 9는 본 발명의 또 다른 실시예에 따른 프로세서를 나타내는 블록도이고, 도 10은 도 9의 프로세서의 실행 사이클을 나타내는 타이밍도이다.FIG. 9 is a block diagram illustrating a processor according to another embodiment of the present invention, and FIG. 10 is a timing diagram illustrating an execution cycle of the processor of FIG.
도 9을 참조하면, 프로세서(900)는 가변 파이프라인(910) 및 보안 레벨 판단부(950)를 포함한다. 도 9의 프로세서(900)는, 가변 암호화 블록(940)을 더 포함하는 것 외에, 도 2의 프로세서(200)와 유사한 구성을 가질 수 있다.Referring to FIG. 9, the
보안 레벨 판단부(950)는 프로세서(900)에서 처리될 암호화된 데이터(ENC-DATA)의 보안 레벨을 판단하고, 판단된 보안 레벨에 상응하는 클록 상이클 동안 복호화 동작 및 암호화 동작이 수행되도록 가변 파이프라인(910)에 포함된 가변 복호화 블록(920) 및 가변 암호화 블록(940)을 제어할 수 있다.The security
가변 파이프라인(910)은 가변 복호화 블록(920), 페치 블록(930), 디코드 블록(932), 익스큐트 블록(934) 및 가변 암호화 블록(940)을 포함할 수 있다. 가변 복호화 블록(920)은 프로세서(900)에 입력되는 암호화된 데이터(ENC_DATA)를 이의 보안 레벨에 상응하는 클록 사이클 동안 복호화하여 원본 데이터를 생성할 수 있다. 페치 블록(930)은 상기 원본 데이터를 레지스터에 저장할 수 있고, 디코드 블록(932)은 상기 레지스터에 저장된 원복 데이터를 해독할 수 있고, 익스큐트 블록(934)은 상기 해독된 원본 데이터를 실행할 수 있다.The
가변 암호화 블록(940)은, 상기 원본 데이터의 처리 결과가 외부 메모리에 저장되어야 하는 경우, 상기 원본 데이터의 처리 결과를 보안 레벨 판단부(950)에 의해 판단된 보안 레벨에 상응하는 클록 사이클 동안 암호화하여 암호화된 결과 데이터(ENC-RES-DATA)를 외부로 출력할 수 있다. 일 실시예에서, 보안 레벨 판단부(950)는 암호화된 데이터(ENC_DATA)의 보안 레벨에 기초하여 가변 암호화 블록(940)을 제어할 수 있다. 다른 실시예에서, 보안 레벨 판단부(950)는 외부 메모리에 저장될 암호화된 결과 데이터(ENC-RES-DATA)의 보안 레벨에 기초하여 가변 암호화 블록(940)을 제어할 수 있다. 예를 들어, 보안 레벨 판단부(950)는 암호화된 결과 데이터(ENC-RES-DATA)가 저장될 외부 메모리의 어드레스를 포함하는 어드레스 범위를 탐색하고, 탐색된 어드레스 범위에 상응하는 클록 사이클 수를 독출하여, 상기 독출된 클록 사이클 수의 연산 시간 동안 암호화 동작을 수행하도록 가변 암호화 블록(940)을 제어할 수 있다.When the processing result of the original data is to be stored in the external memory, the
이러한 가변 파이프라인(910)은 파이프라인 방식으로 암호화된 데이터들(ENC_DATA)을 병렬적으로 처리할 수 있다. 도 10에는 가변 파이프라인(910)의 파이프라인 방식의 처리의 예가 도시되어 있다. 도 10에서, 1010은 일반 보안 레벨을 가지는 제1 암호화된 데이터(ENC-DATA1)에 대한 실행 타이밍을 나타내고, 1030은 일반 보안 레벨을 가지는 제2 암호화된 데이터(ENC-DATA2)에 대한 실행 타이밍을 나타내며, 1050은 높은 보안 레벨을 가지는 제3 암호화된 데이터(ENC-DATA3)에 대한 실행 타이밍을 나타내고, 1070은 높은 보안 레벨을 가지는 제4 암호화된 데이터(ENC-DATA4)에 대한 실행 타이밍을 나타낼 수 있다.This
도 10에 도시된 바와 같이, 각 암호화된 데이터(ENC-DATA1, ENC-DATA2, ENC-DATA3, ENC-DATA4)에 대하여 복호화 동작, 페치 동작, 디코드 동작, 익스큐트 동작 및 암호화 동작이 순차적으로 수행될 수 있다. 한편, 가변 파이프라인(910)의 각 스테이지, 즉 가변 복호화 블록(920), 페치 블록(930), 디코드 블록(932), 익스큐트 블록(934) 및 가변 암호화 블록(940) 각각이 서로 다른 데이터들(ENC-DATA1, ENC-DATA2, ENC-DATA3, ENC-DATA4)을 병렬적으로 처리함으로써, 프로세서(900) 및 이를 포함하는 시스템의 동작 성능이 향상될 수 있다. 또한, 페치 동작, 디코드 동작 및 익스큐트 동작과 함께 암호화/복호화 동작이 파이프라인 방식으로 수행되므로, 동작 성능이 거의 저하되지 않을 수 있다. 게다가, 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간이 조절될 수 있다. 이에 따라, 각 데이터의 보안 레벨에 적합한 암호화/복호화 알고리즘의 암호화/복호화 동작이 수행될 수 있다.As shown in FIG. 10, a decryption operation, a fetch operation, a decode operation, an excitation operation and an encryption operation are sequentially performed on each of the encrypted data (ENC-DATA1, ENC-DATA2, ENC-DATA3 and ENC- . In other words, each stage of the
상술한 바와 같이, 본 발명의 또 다른 실시예에 따른 프로세서(900)는 프로세서(900)의 내부, 즉 가변 복호화 블록(920) 및 가변 암호화 블록(940)에서 데이터에 대한 복호화 동작 및 암호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 본 발명의 또 다른 실시예에 따른 프로세서(900)는 데이터의 복호화 및 암호화를 페치, 디코드, 익스큐트 등과 함께 파이프라인 방식으로 수행함으로써, 프로세서(900) 및 이를 포함하는 시스템의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 본 발명의 또 다른 실시예에 따른 프로세서(900)는, 처리될 데이터의 보안 레벨에 따라 복호화 동작 및 암호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 복호화/암호화 알고리즘의 복호화/암호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.As described above, the
한편, 도 9에는 가변 암호화 블록(940)이 익스큐트 블록(930)의 후단에 배치된 예가 도시되어 있으나, 가변 암호화 블록(940)은 가변 파이프라인 상의 임의의 위치에 배치될 수 있다. 또한, 실시예에 따라, 프로세서(900)는 가변 암호화 블록(940)과 함께, 또는 이를 대신하여, 도 6과 유사하게 직렬 연결된 복수의 암호화 블록들을 포함하거나, 도 7과 유사하게 서로 다른 연산 시간의 복수의 암호화 블록들을 포함하거나, 도 8과 유사하게 서로 다른 암호화 알고리즘의 복수의 암호화 블록들을 포함할 수 있다.9 shows an example in which the
도 11은 본 발명의 실시예들에 따른 시스템-온-칩을 나타내는 블록도이다.11 is a block diagram illustrating a system-on-chip in accordance with embodiments of the present invention.
도 11을 참조하면, 시스템-온-칩(1100)은 프로세서(1110) 및 메모리부(1120)를 포함할 수 있다. 실시예에 따라, 시스템-온-칩(1100)은 입출력 인터페이스(1130), 암호화부(1140), 파워 제어부(1150) 및 버스(1160)를 더 포함할 수 있다. 실시예에 따라, 시스템-온-칩(1100)은 스마트 카드(smart card) 칩, 신뢰 플랫폼 모듈(Trusted Platform Module; TPM) 칩 또는 어플리케이션 프로세서(Application Processor; AP)일 수 있다.Referring to FIG. 11, the system-on-
프로세서(1110)는 시스템-온-칩(1100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(1110)는 메모리부(1120), 입출력 인터페이스(1130), 암호화부(1140), 파워 제어부(1150) 등의 동작을 제어할 수 있다. 또한, 프로세서(1110)는 암호화된 데이터(예를 들어, 암호화된 프로그램 데이터 또는 암호화된 일반 데이터)를 페치하고, 페치된 데이터를 처리할 수 있다. 프로세서(1110)는 중앙 처리 장치(Central Processing Unit; CPU) 또는 마이크로프로세서일 수 있다. 프로세서(1110)는 버스(1160)를 통하여 메모리부(1120)에 연결될 수 있다.
메모리부(1120)에는 데이터가 암호화되어 저장될 수 있다. 메모리부(1120)는 랜덤 액세스 메모리(Random Access Memory; RAM)(1122)와 같은 휘발성 메모리 및/또는 리드 온리 메모리(Read Only Memory; ROM)(1124), 플래시 메모리(1126) 등과 같은 비휘발성 메모리를 포함할 수 있다. 랜덤 액세스 메모리(1122)는 프로세서(1110)에 대한 작업 메모리(Working Memory)로 동작할 수 있다. 예를 들어, 랜덤 액세스 메모리(1122)는 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM) 등으로 구현될 수 있다. 리드 온리 메모리(1124) 및 플래시 메모리(1126)에는 부트 이미지가 저장하거나, 암호키(cryptographic key), 주요 데이터(sensitive data), 주요 코드 등의 보안 데이터 및/또는 그 밖의 일반 데이터가 저장될 수 있다.In the
입출력 인터페이스(1130)는 외부 장치와 연결되고, 프로세서(1110)는 입출력 인터페이스(1130)를 통하여 상기 외부 장치와 통신할 수 있다. 예를 들어, 입출력 인터페이스(1130)는 USB(Universal Serial Bus), MMC(Multi-Media Card), PCI-E(Peripheral Component Interconnect-Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 상기 외부 장치와 통신하도록 구성될 수 있다.The input /
암호화부(1140)는 입출력 인터페이스(1130)를 통한 외부의 암호화/복호화 요청에 응답하여 암호화/복호화 동작을 수행할 수 있다. 암호화부(1140)는 AES(Advanced Encryption Standard)부(1142), DES(Data Encryption Standard)부(1144), RSA(Rivest Shamir Adleman)부(1146) 등을 포함하여 다양한 알고리즘의 암호화/복호화 동작을 수행할 수 있다. 파워 제어부(1150)는 시스템-온-칩(1100)의 파워를 제어 및 관리할 수 있다.The
한편, 메모리부(1120)에는 데이터가 암호화되어 저장될 수 있다. 프로세서(1110)는 메모리부(1120)로부터 상기 암호화된 데이터를 수신할 수 있다. 또한, 프로세서(1110)는 상기 암호화된 데이터의 보안 레벨을 판단하여 상기 판단된 보안 레벨에 상응하는 클록 사이클 동안 상기 암호화된 데이터에 대한 복호화 동작을 수행하여 원본 데이터를 생성할 수 있고, 상기 원본 데이터를 처리할 수 있다. 프로세서(1110)는 프로세서(100)의 내부에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 프로세서(1110)는 데이터의 암호화/복호화를 프로세서(1110)의 파이프라인에서 수행함으로써, 프로세서(1110) 및 이를 포함하는 시스템(1100)의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 프로세서(1110)는 처리될 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 암호화/복호화 알고리즘의 암호화/복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.Meanwhile, data may be encrypted and stored in the
도 12 및 도 13은 본 발명의 실시예들에 따른 시스템-온-칩이 스마트 카드에 채용된 예들을 나타내는 도면들이다.12 and 13 are views showing examples in which a system-on-chip according to embodiments of the present invention is employed in a smart card.
도 12는 본 발명의 실시예들에 따른 시스템-온-칩(1100)을 포함하는 스마트 카드(1200)를 나타내는 분해 사시도이다. 도 12를 참조하면, 스마트 카드(1200)는 시스템-온-칩(1100), 제1 및 제2 베이스 부재들(1210, 1220), 접촉부(1230) 및 안테나(1240)를 포함한다.12 is an exploded perspective view illustrating a
제1 및 제2 베이스 부재들(1210, 1220)은 플라스틱 또는 이와 유사한 물질로 형성될 수 있다. 시스템-온-칩(1100)은 제1 및 제2 베이스 부재들(1210, 1220) 사이에 형성된다. 시스템-온-칩(1100)은 스마트 카드(1200)에 포함된 스마트 카드 칩일 수 있다. 제1 베이스 부재(1210)에는 복수의 핀들을 포함하는 접촉부(1230)가 형성된다. 접촉부(1230)는 카드 단말과 같은 외부 장치와 직접적으로 접촉하여 데이터를 교환하는 인터페이스일 수 있다. 예를 들어, 접촉부(1230)는 ISO(International Standardization Organization) 7816과 같은 표준을 따를 수 있다. 안테나(1240)는 제1 및 제2 베이스 부재들(1210, 1220) 사이에 코일로서 형성될 수 있다. 안테나(1240)는 외부 장치와 소정의 주파수의 무선 신호를 송수신할 수 있다. 예를 들어, 안테나(1240)는 ISO 14443과 같은 표준을 따를 수 있다.The first and
시스템-온-칩(1100)에 포함된 프로세서는 상기 프로세서의 내부에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 프로세서 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 시스템-온-칩(1100)에 포함된 프로세서는 데이터의 암호화/복호화를 프로세서의 파이프라인에서 수행함으로써, 프로세서 및 이를 포함하는 시스템(1100)의 동작 성능을 거의 저하시키지 않을 수 있다. 게다가, 시스템-온-칩(1100)에 포함된 프로세서는 처리될 데이터의 보안 레벨에 따라 암호화/복호화 동작의 연산 시간을 조절하는 가변 파이프라인을 포함함으로써, 높은 수준의 보안이 요구되는 데이터에 대하여 강력한 암호화/복호화 알고리즘의 암호화/복호화 동작을 수행할 수 있고, 낮은 수준의 보안이 요구되는 데이터에 대하여 보다 신속한 처리를 수행할 수 있다.The processor included in the system-on-
도 12에는 접촉부(1230) 및 안테나(1240)를 포함하는 콤비 카드(즉, 듀얼 인터페이스 카드)의 예가 도시되어 있으나, 실시예에 따라, 스마트 카드(1200)는 접촉식 인터페이스 또는 비접촉식 인터페이스 중 어느 하나만을 포함할 수 있다. 다른 실시예에서, 스마트 카드(1200)는 접촉식 집적 회로 및 비접촉식 집적 회로를 포함하는 하이브리드 카드(hybrid card)일 수 있다.12 shows an example of a combi card (i.e., a dual interface card) including a
도 13의 예에서, 본 발명의 실시예들에 따른 시스템-온-칩을 포함하는 카드(1350)는 휴대 기기(1300)에 탈부착 가능하게 장착되는 가입자 인증 모듈(Subscriber Identity Module; SIM) 카드(1350)일 수 있다.13, a
한편, 실시예에 따라, 본 발명의 실시예들에 따른 시스템-온-칩을 포함하는 카드는 스마트 카드(Smart Card), 멀티미디어 카드(MultiMedia Card; MMC), 임베디드 멀티미디어 카드(embedded MultiMedia Card; eMMC), 하이브리드 임베디드 멀티미디어 카드(hybrid embedded MultiMedia Card; hybrid eMMC), SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA(Personal Computer Memory Card International Association) 카드, 칩 카드(Chip Card), USB 카드, CF 카드(Compact Flash Card)등과 같은 다양한 형태의 카드로 구현될 수 있다.On the other hand, according to the embodiment, the card including the system-on-chip according to the embodiments of the present invention may be a Smart Card, a MultiMedia Card (MMC), an embedded MultiMedia Card (eMMC ), A hybrid embedded MultiMedia Card (SDM), a Secure Digital (SD) card, a Micro SD card, a Memory Stick, an ID card, a PCMCIA (Personal Computer Memory Card International Association) A USB card, a CF card (Compact Flash Card), and the like.
실시예에 따라, 휴대 기기(1300)는 휴대폰(Cellular Phone), 스마트 폰(Smart Phone), 태블릿(Tablet) PC, 노트북(Laptop Computer), 개인 정보 단말기(personal digital assistant; PDA), 휴대형 멀티미디어 플레이어(portable multimedia player; PMP), 디지털 카메라(Digital Camera), 음악 재생기(Music Player), 휴대용 게임 콘솔(portable game console), 네비게이션(Navigation) 등과 같은 임의의 휴대 기기일 수 있다.The
도 14는 본 발명의 실시예들에 따른 시스템-온-칩이 신뢰 플랫폼 모듈(Trusted Platform Module; TPM)에 채용된 예를 나타내는 도면이다.14 is a diagram showing an example in which a system-on-chip according to embodiments of the present invention is employed in a Trusted Platform Module (TPM).
도 14를 참조하면, 컴퓨팅 시스템(1400)은 CPU(1410), 시스템 메모리(1430), 칩셋(1450) 및 신뢰 플랫폼 모듈(Trusted Platform Module; TPM)(1470)을 포함할 수 있다. 실시예에 따라, 컴퓨팅 시스템(1400)은 개인용 컴퓨터(Personal Computer; PC), 서버 컴퓨터(Server Computer), 워크스테이션(Workstation), 노트북(Laptop), 휴대폰(Cellular Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(personal digital assistant; PDA), 휴대형 멀티미디어 플레이어(portable multimedia player; PMP), 디지털 카메라(Digital Camera), 디지털 TV(Digital Television), 셋-탑 박스(Set-Top Box), 음악 재생기(Music Player), 휴대용 게임 콘솔(portable game console), 네비게이션(Navigation) 등과 같은 임의의 컴퓨팅 시스템일 수 있다.14, a
CPU(1410)는 마더보드(Motherboard) 또는 메인보드(Mainboard)와 같은 보드 상에 장착되고, 특정 계산들 또는 태스크들을 실행할 수 있다. CPU(1410)는 시스템 메모리(1430)의 동작을 제어하는 메모리 컨트롤러를 포함할 수 있다. 시스템 메모리(1430)에는 CPU(1410)에 의해 처리되는 데이터가 저장될 수 있다. 또한, CPU(1410)는 칩셋(1450)에 연결될 수 있다. 칩셋(1450)은 주변 장치들에 대한 인터페이스를 제공할 수 있다. 칩셋(1450)은 컨트롤러 칩셋으로서 입출력 허브 및 입출력 컨트롤러 허브를 포함할 수 있다.The
신뢰 플랫폼 모듈(1470)은 마더보드(Motherboard) 또는 메인보드(Mainboard)와 같은 보드 상에 장착되고, 직렬 주변 인터페이스(Serial Peripheral Interface; SPI) 버스 또는 PCIe(Peripheral Component Interconnect Express) 버스를 통해 칩셋(1450)에 연결될 수 있다. 신뢰 플랫폼 모듈(1470)은 데이터 암호화/복호화, 해싱(Hashing), 난수(Random Number) 생성, 암호화 키 생성 등과 같은 보안 기능들을 제공할 수 있다.
한편, 신뢰 플랫폼 모듈(1470)에 프로세서는 상기 프로세서의 내부에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 프로세서 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 신뢰 플랫폼 모듈(1470)의 프로세서는 적응적으로 조절되는 연산 시간 동안 암호화/복호화 동작을 수행하는 암호화/복호화 스테이지를 포함하는 가변 파이프라인(1490)을 포함할 수 있다. 이에 따라, 신뢰 플랫폼 모듈(1470)의 프로세서는 동작 성능이 거의 저하되지 않으면서 강력한 암호화/복호화 동작을 수행할 수 있다.Meanwhile, in the trusted
도 15는 본 발명의 실시예들에 따른 시스템-온-칩이 어플리케이션 프로세서(Application Processor; AP)에 채용된 예를 나타내는 도면이다.15 is a diagram showing an example in which a system-on-chip according to embodiments of the present invention is employed in an application processor (AP).
도 15를 참조하면, 휴대 기기(1500)는 어플리케이션 프로세서(1510), 메모리(1520), 사용자 인터페이스(1530), 파워 서플라이(1540), 신뢰 플랫폼 모듈(1550) 및 저장 장치(1560)를 포함할 수 있다. 실시예에 따라, 휴대 기기(1500)는 베이스밴드 칩 셋(Baseband chipset)과 같은 모뎀, 이미지 프로세서 등을 더 포함할 수 있다. 한편, 실시예에 따라, 휴대 기기(1500)는 휴대폰(Cellular Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(Personal Digital Assistant; PDA), 휴대형 멀티미디어 플레이어(Portable Multimedia Player; PMP), 디지털 카메라(Digital Camera), 음악 재생기(Music Player), 휴대용 게임 콘솔(Portable Game Console), 네비게이션(Navigation) 시스템, 랩탑 컴퓨터(laptop computer) 등과 같은 임의의 휴대 기기일 수 있다.15, the
어플리케이션 프로세서(1510)는 휴대 기기(1500)의 전반적인 동작을 제어할 수 있다. 일 실시예에서, 어플리케이션 프로세서(1510)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 실시예에 따라, 어플리케이션 프로세서(1510)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 프로세서(910)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다.The
한편, 어플리케이션 프로세서(1510)는 시스템-온-칩(System-On-Chip)으로 구현될 수 있다. 상기 시스템-온-칩에 포함된 프로세서는 상기 프로세서의 내부에서 데이터에 대한 암호화/복호화 동작을 수행함으로써, 프로세서 외부로 원본 데이터가 노출되지 않아 데이터를 안전하게 보호할 수 있다. 또한, 상기 시스템-온-칩의 프로세서는 적응적으로 조절되는 연산 시간 동안 암호화/복호화 동작을 수행하는 암호화/복호화 스테이지를 포함하는 가변 파이프라인(1515)을 포함할 수 있다. 이에 따라, 상기 시스템-온-칩의 프로세서는 동작 성능이 거의 저하되지 않으면서 강력한 암호화/복호화 동작을 수행할 수 있다.On the other hand, the
메모리(1520)는 휴대 기기(1500)의 동작에 필요한 데이터를 저장한다. 예를 들어, 메모리(1520)는 휴대 기기(1500)을 부팅하기 위한 부트 이미지를 저장할 수 있고, 외부 장치에 송수신되는 데이터를 저장할 수 있다. 예를 들어, 메모리(1520)는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), 모바일 DRAM, DDR SDRAM, LPDDR SDRAM, GDDR SDRAM, RDRAM 등과 같은 휘발성 메모리로 구현되거나, EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(Flash Memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같은 비휘발성 메모리로 구현될 수 있다.The
사용자 인터페이스(1530)는 키패드, 터치 스크린과 같은 하나 이상의 입력 장치 및/또는 스피커, 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함할 수 있다. 파워 서플라이(1540)는 휴대 기기(1500)의 구동 전원을 공급할 수 있다.The
신뢰 플랫폼 모듈(1550)은 데이터 암호화/복호화, 해싱(Hashing), 난수(Random Number) 생성, 암호화 키 생성 등과 같은 보안 기능들을 제공할 수 있다. 신뢰 플랫폼 모듈(1550)에 포함된 프로세서 또한 적응적으로 조절되는 연산 시간 동안 암호화/복호화 동작을 수행하는 암호화/복호화 스테이지를 포함하는 가변 파이프라인을 포함할 수 있다.
저장 장치(1560)는 메모리 카드(Memory Card), 솔리드 스테이트 드라이브(Solid State Drive; SSD), 하드 디스크 드라이브(Hard Disk Drive; HDD), 씨디롬(CD-ROM) 등을 포함할 수 있다. 한편, 저장 장치(1560)는 스마트 카드를 포함할 수 있고, 스마트 카드의 프로세서 또한 적응적으로 조절되는 연산 시간 동안 암호화/복호화 동작을 수행하는 암호화/복호화 스테이지를 포함하는 가변 파이프라인을 포함할 수 있다.The
휴대 기기(1500)의 구성 요소들은 다양한 형태들의 패키지를 이용하여 실장될 수 있는데, 예를 들어, PoP(Package on Package), BGAs(Ball grid arrays), CSPs(Chip scale packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-Line Package), MQFP(Plastic Metric Quad Flat Pack), TQFP(Thin Quad Flat-Pack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), TQFP(Thin Quad Flat-Pack), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등과 같은 패키지들을 이용하여 실장될 수 있다.The components of the
본 발명은 임의의 프로세서 및 프로세서를 포함하는 시스템-온-칩에 적용될 수 있다. 예를 들어, 본 발명은 스마트 카드(smart card) 칩, 신뢰 플랫폼 모듈(Trusted Platform Module; TPM) 칩, 어플리케이션 프로세서(Application Processor; AP) 등에 적용될 수 있다.The present invention can be applied to a system-on-chip that includes any processor and processor. For example, the present invention can be applied to a smart card chip, a trusted platform module (TPM) chip, an application processor (AP), and the like.
상기에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술분야에서 통상의 지식을 가진 자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. You will understand.
100, 200, 400, 600, 700, 800, 900: 프로세서
110, 210, 410, 610, 710, 810, 910: 가변 파이프라인
150, 250, 450, 650, 750, 850, 950: 보안 레벨 판단부
1100: 시스템-온-칩100, 200, 400, 600, 700, 800, 900: Processor
110, 210, 410, 610, 710, 810, 910: variable pipelines
150, 250, 450, 650, 750, 850, 950:
1100: System-on-Chip
Claims (10)
상기 암호화된 데이터를 수신하고, 상기 보안 레벨 판단부에 의해 판단된 상기 보안 레벨에 상응하는 클록 사이클 동안 상기 암호화된 데이터에 대한 복호화 동작을 수행하여 원본 데이터를 생성하며, 상기 원본 데이터를 처리하는 가변 파이프라인을 포함하는 프로세서.A security level determination unit for determining a security level of encrypted data to be processed by the processor; And
Generating encrypted data by performing a decryption operation on the encrypted data during a clock cycle corresponding to the security level determined by the security level deciding unit to generate original data, A processor including a pipeline.
상기 암호화된 데이터의 상기 보안 레벨에 따라 상기 복호화 동작의 연산 시간을 변경하는 가변 복호화 블록을 포함하는 것을 특징으로 하는 프로세서.2. The apparatus of claim 1,
And a variable decryption block for changing an operation time of the decryption operation according to the security level of the encrypted data.
상기 프로세서에 입력되는 상기 암호화된 데이터를 상기 보안 레벨에 상응하는 상기 클록 사이클 동안 복호화하여 상기 원본 데이터를 생성하는 가변 복호화 블록;
상기 원본 데이터를 레지스터에 저장하는 페치 블록;
상기 원본 데이터를 해독하는 디코드 블록; 및
상기 해독된 원본 데이터를 실행하는 익스큐트 블록을 포함하는 것을 특징으로 하는 프로세서.2. The apparatus of claim 1,
A variable decryption block for decrypting the encrypted data input to the processor during the clock cycle corresponding to the security level to generate the original data;
A fetch block for storing the original data in a register;
A decoding block for decoding the original data; And
And an execution block for executing the decrypted original data.
상기 프로세서에 입력되는 상기 암호화된 데이터를 레지스터에 저장하는 페치 블록;
상기 레지스터에 저장된 상기 암호화된 데이터를 상기 보안 레벨에 상응하는 상기 클록 사이클 동안 복호화하여 상기 원본 데이터를 생성하는 가변 복호화 블록;
상기 원본 데이터를 해독하는 디코드 블록; 및
상기 해독된 원본 데이터를 실행하는 익스큐트 블록을 포함하는 것을 특징으로 하는 프로세서.2. The apparatus of claim 1,
A fetch block for storing the encrypted data input to the processor in a register;
A variable decryption block for decrypting the encrypted data stored in the register during the clock cycle corresponding to the security level to generate the original data;
A decoding block for decoding the original data; And
And an execution block for executing the decrypted original data.
직렬로 연결된 복수의 복호화 블록들; 및
상기 복호화 블록들의 전단에 각각 배치되고, 각각이 데이터 경로를 상기 복호화 블록들 중 상응하는 복호화 블록 또는 다음 스테이지의 블록에 선택적으로 연결하는 복수의 스위치들을 포함하는 것을 특징으로 하는 프로세서.2. The apparatus of claim 1,
A plurality of decryption blocks connected in series; And
And a plurality of switches, respectively disposed at the front ends of the decoding blocks, each of the switches selectively connecting the data path to a corresponding decoding block or a block of the next stage among the decoding blocks.
서로 다른 연산 시간 동안 상기 복호화 동작을 수행하는 복수의 복호화 블록들; 및
데이터 경로를 상기 복호화 블록들 중 상기 보안 레벨에 상응하는 상기 클록 사이클의 상기 연산 시간을 가지는 복호화 블록에 연결하는 스위치를 포함하는 것을 특징으로 하는 프로세서.2. The apparatus of claim 1,
A plurality of decryption blocks for performing the decryption operation during different computation times; And
And a switch for connecting the data path to a decryption block having the computation time of the clock cycle corresponding to the security level among the decryption blocks.
서로 다른 복호화 알고리즘의 상기 복호화 동작을 수행하는 복수의 복호화 블록들; 및
데이터 경로를 상기 복호화 블록들 중 상기 보안 레벨에 상응하는 상기 복호화 알고리즘의 복호화 블록에 연결하는 스위치를 포함하는 것을 특징으로 하는 프로세서.2. The apparatus of claim 1,
A plurality of decryption blocks for performing the decryption operation of different decryption algorithms; And
And a switch for connecting the data path to a decryption block of the decryption algorithm corresponding to the security level among the decryption blocks.
상기 암호화된 데이터에 대한 어드레스 범위, 및 상기 어드레스 범위에 상응하는 클록 사이클 수를 저장하는 보안 정책 저장부; 및
상기 프로세서에서 처리될 상기 암호화된 데이터의 어드레스를 수신하고, 상기 보안 정책 저장부로부터 상기 수신된 어드레스가 속하는 상기 어드레스 범위에 상응하는 상기 클록 사이클 수를 독출하고, 상기 독출된 클록 사이클 수에 상응하는 연산 시간 동안 상기 복호화 동작을 수행하도록 상기 가변 파이프라인을 제어하는 파이프라인 제어부를 포함하는 것을 특징으로 하는 프로세서.The apparatus of claim 1,
A security policy storage unit for storing an address range for the encrypted data and a number of clock cycles corresponding to the address range; And
Wherein the processor receives the address of the encrypted data to be processed by the processor, reads the number of clock cycles corresponding to the address range to which the received address belongs from the security policy storage, And a pipeline control unit for controlling the variable pipeline to perform the decoding operation during the computation time.
상기 메모리부로부터 상기 암호화된 데이터를 수신하고, 상기 암호화된 데이터의 보안 레벨을 판단하며, 상기 판단된 보안 레벨에 상응하는 클록 사이클 동안 상기 암호화된 데이터에 대한 복호화 동작을 수행하여 원본 데이터를 생성하며, 상기 원본 데이터를 처리하는 프로세서를 포함하는 시스템-온-칩.A memory unit for storing encrypted data; And
Receives the encrypted data from the memory unit, determines a security level of the encrypted data, decrypts the encrypted data during a clock cycle corresponding to the determined security level, and generates original data And a processor for processing the original data.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/533,810 US20150161401A1 (en) | 2013-12-10 | 2014-11-05 | Processor having a variable pipeline, and system-on-chip |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201361914021P | 2013-12-10 | 2013-12-10 | |
| US61/914,021 | 2013-12-10 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20150068264A true KR20150068264A (en) | 2015-06-19 |
Family
ID=53515874
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020140003933A Withdrawn KR20150068264A (en) | 2013-12-10 | 2014-01-13 | Processor having a variable pipeline, and system-on-chip |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR20150068264A (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018080132A1 (en) * | 2016-10-28 | 2018-05-03 | 주식회사 아이리시스 | Circuit module for processing biological information and biological information processing device comprising same |
| KR20180046832A (en) * | 2016-10-28 | 2018-05-09 | 주식회사 아이리시스 | A circuit module for processing biometric code and a biometric code processing device comprising thereof |
| CN113994334A (en) * | 2019-06-19 | 2022-01-28 | 脸谱科技有限责任公司 | Scalable encryption engine with partitionable data paths |
-
2014
- 2014-01-13 KR KR1020140003933A patent/KR20150068264A/en not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018080132A1 (en) * | 2016-10-28 | 2018-05-03 | 주식회사 아이리시스 | Circuit module for processing biological information and biological information processing device comprising same |
| KR20180046832A (en) * | 2016-10-28 | 2018-05-09 | 주식회사 아이리시스 | A circuit module for processing biometric code and a biometric code processing device comprising thereof |
| CN113994334A (en) * | 2019-06-19 | 2022-01-28 | 脸谱科技有限责任公司 | Scalable encryption engine with partitionable data paths |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12341870B2 (en) | Encryption interface | |
| US11354423B2 (en) | Cryptographic isolation of memory compartments in a computing environment | |
| US10291390B2 (en) | Endecryptor preventing side channel attack, driving method thereof and control device having the same | |
| EP3757858A1 (en) | Memory write for ownership access in a core | |
| US10810138B2 (en) | Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME) | |
| US9740863B2 (en) | Protecting a secure boot process against side channel attacks | |
| US20170054550A1 (en) | Crypto devices, storage devices having the same, and encryption and decryption methods thereof | |
| US20200117811A1 (en) | Processor hardware and instructions for sha3 cryptographic operations | |
| KR102186609B1 (en) | Electronic system having integrity verification device | |
| CN107924444B (en) | Secure modular exponentiation processor, method, system, and instructions | |
| US9104890B2 (en) | Data processing device and a secure memory device including the same | |
| US20240104027A1 (en) | Temporal information leakage protection mechanism for cryptographic computing | |
| US20220121447A1 (en) | Hardening cpu predictors with cryptographic computing context information | |
| US20150161401A1 (en) | Processor having a variable pipeline, and system-on-chip | |
| CN108027864A (en) | Biaffine-mapped s-box hardware accelerator | |
| EP4445283A1 (en) | Cryptographic computing with context information for transient side channel security | |
| US10210350B2 (en) | Electronic device against side channel attacks | |
| US10891396B2 (en) | Electronic circuit performing encryption/decryption operation to prevent side- channel analysis attack, and electronic device including the same | |
| KR20150068264A (en) | Processor having a variable pipeline, and system-on-chip | |
| US9384368B2 (en) | Instruction and logic for mid-level caching of random numbers distributed to multiple units | |
| US9182943B2 (en) | Methods and devices for prime number generation | |
| EP4202700A1 (en) | Transient side-channel aware architecture for cryptographic computing | |
| US20230400996A1 (en) | Apparatus, Device, and Method for a Memory Controller, Memory Controller, and System | |
| KR102335203B1 (en) | Electronic device against side channel attack | |
| KR101810044B1 (en) | Apparatus and method for updating encryption key |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20140113 |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination | ||
| WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |